From 9e7373fe66e6ffce5f7bed0ac979dee2d15a2aad Mon Sep 17 00:00:00 2001 From: shunohearthstone-hash Date: Tue, 10 Feb 2026 03:23:10 +0100 Subject: [PATCH 1/2] py script threading --- main/main.c | 19 ++++-- tools/serial_binary.py | 140 ++++++++++++++++++++++++----------------- 2 files changed, 98 insertions(+), 61 deletions(-) diff --git a/main/main.c b/main/main.c index 6ed7942..a60e8e9 100644 --- a/main/main.c +++ b/main/main.c @@ -56,9 +56,9 @@ static const char *TAG = "adc_fft"; #define SPIKE_RATIO_THRESHOLD 8.0f #define SPIKE_MIN_AVG_LINEAR 1e-7f -DRAM_ATTR __attribute__((aligned(16))) static float ch0[FFT_SIZE]; -DRAM_ATTR __attribute__((aligned(16))) static float ch1[FFT_SIZE]; -DRAM_ATTR __attribute__((aligned(16))) static float win[FFT_SIZE]; +static float *ch0 = NULL; +static float *ch1 = NULL; +static float *win = NULL; static adc_cali_handle_t cali_handle; @@ -583,7 +583,8 @@ static void adc_fft_task(void *arg) { CONFIG_ADC_CH0, CONFIG_ADC_CH0 + 1, CONFIG_ADC_CH1, CONFIG_ADC_CH1 + 1, (unsigned)per_channel_sps, FFT_SIZE); - const size_t read_len = FFT_SIZE * CHANNELS * sizeof(adc_digi_output_data_t); + // Reduce DMA buffer size to save Internal RAM; we loop to fill the FFT buffer anyway. + const size_t read_len = 2048 * sizeof(adc_digi_output_data_t); uint8_t *raw = heap_caps_aligned_alloc(16, read_len, MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL); if (!raw) { @@ -767,6 +768,16 @@ void app_main(void) { ESP_ERROR_CHECK(wave_gen_sdm_start()); #endif + size_t fft_mem_sz = FFT_SIZE * sizeof(float); + ch0 = heap_caps_aligned_alloc(16, fft_mem_sz, MALLOC_CAP_SPIRAM); + ch1 = heap_caps_aligned_alloc(16, fft_mem_sz, MALLOC_CAP_SPIRAM); + win = heap_caps_aligned_alloc(16, fft_mem_sz, MALLOC_CAP_SPIRAM); + + if (!ch0 || !ch1 || !win) { + ESP_LOGE(TAG, "Failed to allocate FFT buffers"); + abort(); + } + /* Initialize DSP before any task can call FFT/window code. */ ESP_ERROR_CHECK(dsps_fft4r_init_fc32(NULL, FFT_SIZE >> 1)); #if CONFIG_ADC_ENABLE_WINDOW diff --git a/tools/serial_binary.py b/tools/serial_binary.py index dd41020..e5598ab 100644 --- a/tools/serial_binary.py +++ b/tools/serial_binary.py @@ -6,6 +6,7 @@ import sys import time import threading +import queue from pathlib import Path from typing import Optional, TextIO, Any @@ -112,6 +113,11 @@ def main() -> int: buffer = bytearray() last_seq = None dropped = 0 + + # Thread communication + reader_stop_event = threading.Event() + frame_queue: queue.Queue = queue.Queue() + count = 0 start = time.time() last_stats_time = start @@ -294,6 +300,55 @@ def read_serial_nonblocking(ser_obj: serial.Serial, buf: bytearray) -> None: buf.extend(chunk) read_budget -= len(chunk) + # Threaded Serial Reader to prevent GUI blocking from causing buffer overflows + + def serial_reader_thread(): + local_buffer = bytearray() + ser = open_serial_port() + next_reconnect = time.time() + + while not reader_stop_event.is_set(): + if ser is None: + if args.reconnect and time.time() >= next_reconnect: + ser = open_serial_port() + next_reconnect = time.time() + args.reconnect_delay + if ser is not None: + local_buffer.clear() + # Reset sequence tracking in main thread? + # We can't access last_seq easily but main thread handles gaps. + # Just clearing buffer is enough. + else: + time.sleep(0.1) + continue + + try: + read_serial_nonblocking(ser, local_buffer) + # Parse frames off the buffer + new_frames = parse_frames(local_buffer) + for nf in new_frames: + frame_queue.put(nf) + except serial.SerialException as exc: + print(f"Serial error: {exc}", file=sys.stderr) + try: + ser.close() + except Exception: + pass + ser = None + next_reconnect = time.time() + args.reconnect_delay + except Exception as e: + print(f"Reader error: {e}", file=sys.stderr) + time.sleep(1) + + # Avoid 100% CPU + time.sleep(0.001) + + if ser: + ser.close() + + # Start the reader thread + t_reader = threading.Thread(target=serial_reader_thread, daemon=True) + t_reader.start() + if args.plot: import matplotlib.pyplot as plt import matplotlib.animation as animation @@ -396,28 +451,15 @@ def on_key(event): next_reconnect = time.time() def update(_): - nonlocal ser, next_reconnect, buffer, last_seq - if ser is None: - if args.reconnect and time.time() >= next_reconnect: - ser = open_serial_port() - next_reconnect = time.time() + args.reconnect_delay - if ser is not None: - buffer.clear() - last_seq = None - return lines + # Drain queue + frames_local = [] try: - read_serial_nonblocking(ser, buffer) - except serial.SerialException as exc: - print(f"Serial error while reading {args.port}: {exc}", file=sys.stderr) - try: - ser.close() - except Exception: - pass - ser = None - next_reconnect = time.time() + args.reconnect_delay - return lines - frames = parse_frames(buffer) - for version, seq, payload in frames: + while True: + frames_local.append(frame_queue.get_nowait()) + except queue.Empty: + pass + + for version, seq, payload in frames_local: row = payload_to_row(version, payload) if row is None: continue @@ -679,45 +721,28 @@ def update_dummy(_): ) plt.show() else: - ser = open_serial_port() - next_reconnect = time.time() + # Non-plotting mode: just consume the queue while True: - if ser is None: - if args.reconnect and time.time() >= next_reconnect: - ser = open_serial_port() - next_reconnect = time.time() + args.reconnect_delay - if ser is not None: - buffer.clear() - last_seq = None - time.sleep(0.05) - continue try: - if ser is not None: - read_serial_nonblocking(ser, buffer) - except serial.SerialException as exc: - print(f"Serial error while reading {args.port}: {exc}", file=sys.stderr) - try: - ser.close() - except Exception: - pass - ser = None - next_reconnect = time.time() + args.reconnect_delay + version, seq, payload = frame_queue.get(timeout=0.1) + except queue.Empty: + if stop_requested: + raise KeyboardInterrupt continue - frames = parse_frames(buffer) - for version, seq, payload in frames: - row = payload_to_row(version, payload) - if row is None: - continue - handle_row(seq, row) - if args.audio and audio_synth is not None: - label = str(row[3]) - if args.audio_channel in label: - payload_bytes = row[4] - if isinstance(payload_bytes, (bytes, bytearray, memoryview)): - bins_list = list(struct.unpack("<%df" % (len(payload_bytes)//4), payload_bytes)) - else: - bins_list = list(payload_bytes) - audio_synth.update(bins_list, int(row[1]), int(row[2])) + + row = payload_to_row(version, payload) + if row is None: + continue + handle_row(seq, row) + if args.audio and audio_synth is not None: + label = str(row[3]) + if args.audio_channel in label: + payload_bytes = row[4] + if isinstance(payload_bytes, (bytes, bytearray, memoryview)): + bins_list = list(struct.unpack("<%df" % (len(payload_bytes)//4), payload_bytes)) + else: + bins_list = list(payload_bytes) + audio_synth.update(bins_list, int(row[1]), int(row[2])) if stop_requested: raise KeyboardInterrupt @@ -730,6 +755,7 @@ def update_dummy(_): print(f"Serial error opening {args.port}: {exc}", file=sys.stderr) return 1 finally: + reader_stop_event.set() if file_handle is not None: file_handle.close() if audio_stream is not None: From c06a8792479798afc2982d1e6e204f8a2296e691 Mon Sep 17 00:00:00 2001 From: shunohearthstone-hash Date: Thu, 5 Mar 2026 17:37:52 +0100 Subject: [PATCH 2/2] doxygen docs --- docs/html/aes3__tie__log_8c.html | 144 + docs/html/aes3__tie__log_8c.js | 4 + docs/html/aes3__tie__log_8c__incl.md5 | 1 + docs/html/aes3__tie__log_8c__incl.svg | 218 ++ docs/html/aes3__tie__log_8c__incl_org.svg | 192 + docs/html/aes3__tie__log_8c_source.html | 238 ++ docs/html/annotated.html | 145 + docs/html/annotated_dup.js | 39 + ...aphics_2main_23d__graphics__demo_8cpp.html | 684 ++++ ...graphics_2main_23d__graphics__demo_8cpp.js | 12 + ...s_2main_23d__graphics__demo_8cpp__incl.md5 | 1 + ...s_2main_23d__graphics__demo_8cpp__incl.svg | 1744 +++++++++ ...ain_23d__graphics__demo_8cpp__incl_org.svg | 1661 +++++++++ ...edd8bfc49beafeacd3540ba291680c3_cgraph.md5 | 1 + ...edd8bfc49beafeacd3540ba291680c3_cgraph.svg | 195 + ...bfc49beafeacd3540ba291680c3_cgraph_org.svg | 112 + ...dd8bfc49beafeacd3540ba291680c3_icgraph.md5 | 1 + ...dd8bfc49beafeacd3540ba291680c3_icgraph.svg | 65 + ...fc49beafeacd3540ba291680c3_icgraph_org.svg | 39 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 | 1 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.svg | 65 + ...8d7e9de0fd62d17e02ce70a52c_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 83 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 57 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 384 ++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 301 ++ ...3debef909dca35dbf0b6f842df6def3_cgraph.md5 | 1 + ...3debef909dca35dbf0b6f842df6def3_cgraph.svg | 258 ++ ...ef909dca35dbf0b6f842df6def3_cgraph_org.svg | 175 + ...debef909dca35dbf0b6f842df6def3_icgraph.md5 | 1 + ...debef909dca35dbf0b6f842df6def3_icgraph.svg | 65 + ...f909dca35dbf0b6f842df6def3_icgraph_org.svg | 39 + ...c7c47eff81b6719e589256c8799d5e_icgraph.md5 | 1 + ...c7c47eff81b6719e589256c8799d5e_icgraph.svg | 65 + ...7eff81b6719e589256c8799d5e_icgraph_org.svg | 39 + ...2main_23d__graphics__demo_8cpp_source.html | 364 ++ ...lter_2main_2kalman__filter__demo_8cpp.html | 1513 ++++++++ ...filter_2main_2kalman__filter__demo_8cpp.js | 26 + ...2main_2kalman__filter__demo_8cpp__incl.md5 | 1 + ...2main_2kalman__filter__demo_8cpp__incl.svg | 1915 ++++++++++ ...n_2kalman__filter__demo_8cpp__incl_org.svg | 1832 ++++++++++ ...450ba4dd28ea2acb105a3ece7db976_icgraph.md5 | 1 + ...450ba4dd28ea2acb105a3ece7db976_icgraph.svg | 65 + ...a4dd28ea2acb105a3ece7db976_icgraph_org.svg | 39 + ...967e917dafd16b5f02410c5b10c1d90_cgraph.md5 | 1 + ...967e917dafd16b5f02410c5b10c1d90_cgraph.svg | 303 ++ ...917dafd16b5f02410c5b10c1d90_cgraph_org.svg | 220 ++ ...67e917dafd16b5f02410c5b10c1d90_icgraph.md5 | 1 + ...67e917dafd16b5f02410c5b10c1d90_icgraph.svg | 65 + ...17dafd16b5f02410c5b10c1d90_icgraph_org.svg | 39 + ...955b9e77f5bd23f109feaaed1496af5_cgraph.md5 | 1 + ...955b9e77f5bd23f109feaaed1496af5_cgraph.svg | 303 ++ ...9e77f5bd23f109feaaed1496af5_cgraph_org.svg | 220 ++ ...55b9e77f5bd23f109feaaed1496af5_icgraph.md5 | 1 + ...55b9e77f5bd23f109feaaed1496af5_icgraph.svg | 218 ++ ...e77f5bd23f109feaaed1496af5_icgraph_org.svg | 192 + ...cb3a970d903b791f523902ab06d694_icgraph.md5 | 1 + ...cb3a970d903b791f523902ab06d694_icgraph.svg | 65 + ...970d903b791f523902ab06d694_icgraph_org.svg | 39 + ...69aa0d08a5e85a5016ab08dbdc20fb_icgraph.md5 | 1 + ...69aa0d08a5e85a5016ab08dbdc20fb_icgraph.svg | 65 + ...0d08a5e85a5016ab08dbdc20fb_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 239 ++ ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 156 + ...cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 | 1 + ...cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg | 66 + ...0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg | 40 + ...bec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.md5 | 1 + ...bec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.svg | 65 + ...bc78cfb4326f8b5c19d7f9a5bb_icgraph_org.svg | 39 + ...4145b69708f61a94696cd081386d5a_icgraph.md5 | 1 + ...4145b69708f61a94696cd081386d5a_icgraph.svg | 65 + ...b69708f61a94696cd081386d5a_icgraph_org.svg | 39 + ...35410bb6759629444f03a95bbd7c98_icgraph.md5 | 1 + ...35410bb6759629444f03a95bbd7c98_icgraph.svg | 65 + ...0bb6759629444f03a95bbd7c98_icgraph_org.svg | 39 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 420 +++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 337 ++ ...02d1479863a05aa4759131e408264e_icgraph.md5 | 1 + ...02d1479863a05aa4759131e408264e_icgraph.svg | 65 + ...479863a05aa4759131e408264e_icgraph_org.svg | 39 + ...43b34764385f3f1ad35ce1c00db220f_cgraph.md5 | 1 + ...43b34764385f3f1ad35ce1c00db220f_cgraph.svg | 330 ++ ...4764385f3f1ad35ce1c00db220f_cgraph_org.svg | 247 ++ ...3b34764385f3f1ad35ce1c00db220f_icgraph.md5 | 1 + ...3b34764385f3f1ad35ce1c00db220f_icgraph.svg | 200 + ...764385f3f1ad35ce1c00db220f_icgraph_org.svg | 174 + ...bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 | 1 + ...bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg | 65 + ...0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg | 39 + ...c7c47eff81b6719e589256c8799d5e_icgraph.md5 | 1 + ...c7c47eff81b6719e589256c8799d5e_icgraph.svg | 65 + ...7eff81b6719e589256c8799d5e_icgraph_org.svg | 39 + ...ain_2kalman__filter__demo_8cpp_source.html | 720 ++++ ...ix_23d__matrix__data_2cube__matrix_8h.html | 285 ++ ...trix_23d__matrix__data_2cube__matrix_8h.js | 10 + ...d__matrix__data_2cube__matrix_8h__incl.md5 | 1 + ...d__matrix__data_2cube__matrix_8h__incl.svg | 101 + ...atrix__data_2cube__matrix_8h__incl_org.svg | 75 + ..._matrix__data_2cube__matrix_8h_source.html | 166 + ...atrix_23d__matrix__data_2esp__logo_8c.html | 121 + ..._23d__matrix__data_2esp__logo_8c__incl.md5 | 1 + ..._23d__matrix__data_2esp__logo_8c__incl.svg | 101 + ...__matrix__data_2esp__logo_8c__incl_org.svg | 75 + ...3d__matrix__data_2esp__logo_8c_source.html | 399 ++ ...atrix_23d__matrix__data_2esp__logo_8h.html | 180 + ..._matrix_23d__matrix__data_2esp__logo_8h.js | 5 + ..._matrix__data_2esp__logo_8h__dep__incl.md5 | 1 + ..._matrix__data_2esp__logo_8h__dep__incl.svg | 65 + ...rix__data_2esp__logo_8h__dep__incl_org.svg | 39 + ..._23d__matrix__data_2esp__logo_8h__incl.md5 | 1 + ..._23d__matrix__data_2esp__logo_8h__incl.svg | 83 + ...__matrix__data_2esp__logo_8h__incl_org.svg | 57 + ...3d__matrix__data_2esp__logo_8h_source.html | 129 + ...atrix_23d__matrix__data_2esp__text_8c.html | 435 +++ ..._matrix_23d__matrix__data_2esp__text_8c.js | 5 + ..._23d__matrix__data_2esp__text_8c__incl.md5 | 1 + ..._23d__matrix__data_2esp__text_8c__incl.svg | 83 + ...__matrix__data_2esp__text_8c__incl_org.svg | 57 + ...3d__matrix__data_2esp__text_8c_source.html | 365 ++ ...atrix_23d__matrix__data_2esp__text_8h.html | 424 +++ ..._matrix_23d__matrix__data_2esp__text_8h.js | 5 + ..._matrix__data_2esp__text_8h__dep__incl.md5 | 1 + ..._matrix__data_2esp__text_8h__dep__incl.svg | 65 + ...rix__data_2esp__text_8h__dep__incl_org.svg | 39 + ..._23d__matrix__data_2esp__text_8h__incl.md5 | 1 + ..._23d__matrix__data_2esp__text_8h__incl.svg | 65 + ...__matrix__data_2esp__text_8h__incl_org.svg | 39 + ...3d__matrix__data_2esp__text_8h_source.html | 124 + ...atrix__data_2image__to__3d__matrix_8c.html | 121 + ...__data_2image__to__3d__matrix_8c__incl.md5 | 1 + ...__data_2image__to__3d__matrix_8c__incl.svg | 101 + ...ta_2image__to__3d__matrix_8c__incl_org.svg | 75 + ...data_2image__to__3d__matrix_8c_source.html | 447 +++ ...atrix__data_2image__to__3d__matrix_8h.html | 180 + ..._matrix__data_2image__to__3d__matrix_8h.js | 5 + ...a_2image__to__3d__matrix_8h__dep__incl.md5 | 1 + ...a_2image__to__3d__matrix_8h__dep__incl.svg | 65 + ...mage__to__3d__matrix_8h__dep__incl_org.svg | 39 + ...__data_2image__to__3d__matrix_8h__incl.md5 | 1 + ...__data_2image__to__3d__matrix_8h__incl.svg | 83 + ...ta_2image__to__3d__matrix_8h__incl_org.svg | 57 + ...data_2image__to__3d__matrix_8h_source.html | 126 + ...__matrix__src_2graphics__support_8cpp.html | 523 +++ ...3d__matrix__src_2graphics__support_8cpp.js | 9 + ...rix__src_2graphics__support_8cpp__incl.md5 | 1 + ...rix__src_2graphics__support_8cpp__incl.svg | 716 ++++ ..._src_2graphics__support_8cpp__incl_org.svg | 633 ++++ ...5dfc8616993b1485635978ec29513d_icgraph.md5 | 1 + ...5dfc8616993b1485635978ec29513d_icgraph.svg | 345 ++ ...8616993b1485635978ec29513d_icgraph_org.svg | 319 ++ ...61f858eac611923f3e090a2a4837c8_icgraph.md5 | 1 + ...61f858eac611923f3e090a2a4837c8_icgraph.svg | 465 +++ ...58eac611923f3e090a2a4837c8_icgraph_org.svg | 382 ++ ...3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 | 1 + ...3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg | 227 ++ ...bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg | 201 ++ ...c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 | 1 + ...c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg | 65 + ...601603a6d1b586b8ad9aa7ee98_icgraph_org.svg | 39 + ...ddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 | 1 + ...ddf00a5f71e067190147e3ecdb49d3f_cgraph.svg | 119 + ...0a5f71e067190147e3ecdb49d3f_cgraph_org.svg | 93 + ...df00a5f71e067190147e3ecdb49d3f_icgraph.md5 | 1 + ...df00a5f71e067190147e3ecdb49d3f_icgraph.svg | 509 +++ ...a5f71e067190147e3ecdb49d3f_icgraph_org.svg | 426 +++ ...x__src_2graphics__support_8cpp_source.html | 248 ++ ...3d__matrix__src_2graphics__support_8h.html | 662 ++++ ..._23d__matrix__src_2graphics__support_8h.js | 20 + ...__src_2graphics__support_8h__dep__incl.md5 | 1 + ...__src_2graphics__support_8h__dep__incl.svg | 65 + ...c_2graphics__support_8h__dep__incl_org.svg | 39 + ...atrix__src_2graphics__support_8h__incl.md5 | 1 + ...atrix__src_2graphics__support_8h__incl.svg | 1672 +++++++++ ...x__src_2graphics__support_8h__incl_org.svg | 1589 ++++++++ ...rix__src_2graphics__support_8h_source.html | 189 + ..._2templates_2template__img__to__3d_8c.html | 121 + ...plates_2template__img__to__3d_8c__incl.md5 | 1 + ...plates_2template__img__to__3d_8c__incl.svg | 65 + ...es_2template__img__to__3d_8c__incl_org.svg | 39 + ...ates_2template__img__to__3d_8c_source.html | 119 + ..._2templates_2template__img__to__3d_8h.html | 173 + ...ix_2templates_2template__img__to__3d_8h.js | 5 + ...plates_2template__img__to__3d_8h__incl.md5 | 1 + ...plates_2template__img__to__3d_8h__incl.svg | 83 + ...es_2template__img__to__3d_8h__incl_org.svg | 57 + ...ates_2template__img__to__3d_8h_source.html | 126 + ...board__app_2main_2audio__amp__main_8c.html | 1479 ++++++++ ...__board__app_2main_2audio__amp__main_8c.js | 47 + ...__app_2main_2audio__amp__main_8c__incl.md5 | 1 + ...__app_2main_2audio__amp__main_8c__incl.svg | 1735 +++++++++ ...p_2main_2audio__amp__main_8c__incl_org.svg | 1652 +++++++++ ...1b7404dd661c25c3fba8503b22d2d7_icgraph.md5 | 1 + ...1b7404dd661c25c3fba8503b22d2d7_icgraph.svg | 137 + ...04dd661c25c3fba8503b22d2d7_icgraph_org.svg | 111 + ...1a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 | 1 + ...1a7e6affe758e24d45f22bade3f7ac3_cgraph.svg | 119 + ...6affe758e24d45f22bade3f7ac3_cgraph_org.svg | 93 + ...a7e6affe758e24d45f22bade3f7ac3_icgraph.md5 | 1 + ...a7e6affe758e24d45f22bade3f7ac3_icgraph.svg | 119 + ...affe758e24d45f22bade3f7ac3_icgraph_org.svg | 93 + ...2facc4884e8a7bb96fe161d64a12da_icgraph.md5 | 1 + ...2facc4884e8a7bb96fe161d64a12da_icgraph.svg | 65 + ...c4884e8a7bb96fe161d64a12da_icgraph_org.svg | 39 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 | 1 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg | 302 ++ ...4a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg | 219 ++ ...b37162177a4acfc9abcc52ca620736c_cgraph.md5 | 1 + ...b37162177a4acfc9abcc52ca620736c_cgraph.svg | 83 + ...62177a4acfc9abcc52ca620736c_cgraph_org.svg | 57 + ...37162177a4acfc9abcc52ca620736c_icgraph.md5 | 1 + ...37162177a4acfc9abcc52ca620736c_icgraph.svg | 119 + ...2177a4acfc9abcc52ca620736c_icgraph_org.svg | 93 + ...091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 | 1 + ...091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg | 209 ++ ...1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg | 183 + ...91c1cbf0cdee1a9e75495e68236ab6_icgraph.md5 | 1 + ...91c1cbf0cdee1a9e75495e68236ab6_icgraph.svg | 65 + ...cbf0cdee1a9e75495e68236ab6_icgraph_org.svg | 39 + ...bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 | 1 + ...bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg | 137 + ...245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg | 111 + ...fa0ee2b0d2e41a702707315faa5e10_icgraph.md5 | 1 + ...fa0ee2b0d2e41a702707315faa5e10_icgraph.svg | 137 + ...e2b0d2e41a702707315faa5e10_icgraph_org.svg | 111 + ...app_2main_2audio__amp__main_8c_source.html | 556 +++ ...aphics_2main_23d__graphics__demo_8cpp.html | 555 +++ ...graphics_2main_23d__graphics__demo_8cpp.js | 13 + ...s_2main_23d__graphics__demo_8cpp__incl.md5 | 1 + ...s_2main_23d__graphics__demo_8cpp__incl.svg | 1735 +++++++++ ...ain_23d__graphics__demo_8cpp__incl_org.svg | 1652 +++++++++ ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 | 1 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.svg | 65 + ...8d7e9de0fd62d17e02ce70a52c_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 65 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 39 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 367 ++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 284 ++ ...2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 | 1 + ...2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg | 195 + ...dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg | 112 + ...392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 | 1 + ...392dd06c1a7e0f317d26309d9e0d18_icgraph.svg | 65 + ...d06c1a7e0f317d26309d9e0d18_icgraph_org.svg | 39 + ...3debef909dca35dbf0b6f842df6def3_cgraph.md5 | 1 + ...3debef909dca35dbf0b6f842df6def3_cgraph.svg | 276 ++ ...ef909dca35dbf0b6f842df6def3_cgraph_org.svg | 193 + ...2main_23d__graphics__demo_8cpp_source.html | 254 ++ ...23d__graphics_2main_2init__display_8c.html | 1213 +++++++ ...s_23d__graphics_2main_2init__display_8c.js | 35 + ...graphics_2main_2init__display_8c__incl.md5 | 1 + ...graphics_2main_2init__display_8c__incl.svg | 1672 +++++++++ ...hics_2main_2init__display_8c__incl_org.svg | 1589 ++++++++ ...42e5da5d3336dd10ebda5674ec495c3_cgraph.md5 | 1 + ...42e5da5d3336dd10ebda5674ec495c3_cgraph.svg | 119 + ...da5d3336dd10ebda5674ec495c3_cgraph_org.svg | 93 + ...2e5da5d3336dd10ebda5674ec495c3_icgraph.md5 | 1 + ...2e5da5d3336dd10ebda5674ec495c3_icgraph.svg | 102 + ...a5d3336dd10ebda5674ec495c3_icgraph_org.svg | 76 + ...42706b828d976fd293882d63d561a7_icgraph.md5 | 1 + ...42706b828d976fd293882d63d561a7_icgraph.svg | 102 + ...6b828d976fd293882d63d561a7_icgraph_org.svg | 76 + ...bf166af6a0c6f9ee069922e14c83023_cgraph.md5 | 1 + ...bf166af6a0c6f9ee069922e14c83023_cgraph.svg | 101 + ...6af6a0c6f9ee069922e14c83023_cgraph_org.svg | 75 + ...f166af6a0c6f9ee069922e14c83023_icgraph.md5 | 1 + ...f166af6a0c6f9ee069922e14c83023_icgraph.svg | 102 + ...af6a0c6f9ee069922e14c83023_icgraph_org.svg | 76 + ...7f56c5752f2747c0774a27b5622674b_cgraph.md5 | 1 + ...7f56c5752f2747c0774a27b5622674b_cgraph.svg | 65 + ...c5752f2747c0774a27b5622674b_cgraph_org.svg | 39 + ...f56c5752f2747c0774a27b5622674b_icgraph.md5 | 1 + ...f56c5752f2747c0774a27b5622674b_icgraph.svg | 159 + ...5752f2747c0774a27b5622674b_icgraph_org.svg | 76 + ...0e932afc1e59f18ce869a88e5954baf_cgraph.md5 | 1 + ...0e932afc1e59f18ce869a88e5954baf_cgraph.svg | 65 + ...2afc1e59f18ce869a88e5954baf_cgraph_org.svg | 39 + ...e932afc1e59f18ce869a88e5954baf_icgraph.md5 | 1 + ...e932afc1e59f18ce869a88e5954baf_icgraph.svg | 102 + ...afc1e59f18ce869a88e5954baf_icgraph_org.svg | 76 + ...a76cb12d19d5676634c1a78817fa316_cgraph.md5 | 1 + ...a76cb12d19d5676634c1a78817fa316_cgraph.svg | 222 ++ ...b12d19d5676634c1a78817fa316_cgraph_org.svg | 139 + ...76cb12d19d5676634c1a78817fa316_icgraph.md5 | 1 + ...76cb12d19d5676634c1a78817fa316_icgraph.svg | 84 + ...12d19d5676634c1a78817fa316_icgraph_org.svg | 58 + ...504c284aa8a47f2ffee89038bd5b98_icgraph.md5 | 1 + ...504c284aa8a47f2ffee89038bd5b98_icgraph.svg | 240 ++ ...284aa8a47f2ffee89038bd5b98_icgraph_org.svg | 157 + ...aphics_2main_2init__display_8c_source.html | 473 +++ ...__filter_2main_23d__kalman__demo_8cpp.html | 1816 ++++++++++ ...an__filter_2main_23d__kalman__demo_8cpp.js | 58 + ...ter_2main_23d__kalman__demo_8cpp__incl.md5 | 1 + ...ter_2main_23d__kalman__demo_8cpp__incl.svg | 1726 +++++++++ ...2main_23d__kalman__demo_8cpp__incl_org.svg | 1643 +++++++++ ...b4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 | 1 + ...b4c2dc5d13163ccfd6157eadb637e5_icgraph.svg | 65 + ...dc5d13163ccfd6157eadb637e5_icgraph_org.svg | 39 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 | 1 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.svg | 65 + ...8d7e9de0fd62d17e02ce70a52c_icgraph_org.svg | 39 + ...bb9efa771a4f9e06817a8cb0d14501_icgraph.md5 | 1 + ...bb9efa771a4f9e06817a8cb0d14501_icgraph.svg | 83 + ...fa771a4f9e06817a8cb0d14501_icgraph_org.svg | 57 + ...a8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 | 1 + ...a8f747686c9736edb1c30a2bf5d3ca_icgraph.svg | 83 + ...47686c9736edb1c30a2bf5d3ca_icgraph_org.svg | 57 + ...d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 | 1 + ...d4e2f025faabb41f47bc054cf3d92a_icgraph.svg | 83 + ...f025faabb41f47bc054cf3d92a_icgraph_org.svg | 57 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 65 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 39 + ...70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 | 1 + ...70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg | 83 + ...4a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg | 57 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 402 +++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 319 ++ ...6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 | 1 + ...6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg | 137 + ...3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg | 111 + ...cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 | 1 + ...cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg | 65 + ...f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg | 39 + ...3debef909dca35dbf0b6f842df6def3_cgraph.md5 | 1 + ...3debef909dca35dbf0b6f842df6def3_cgraph.svg | 339 ++ ...ef909dca35dbf0b6f842df6def3_cgraph_org.svg | 256 ++ ...38e0476293a8e7822b85ba126ba159_icgraph.md5 | 1 + ...38e0476293a8e7822b85ba126ba159_icgraph.svg | 83 + ...476293a8e7822b85ba126ba159_icgraph_org.svg | 57 + ...r_2main_23d__kalman__demo_8cpp_source.html | 611 ++++ ...man__filter_2main_2bmi270__context_8c.html | 594 +++ ...alman__filter_2main_2bmi270__context_8c.js | 5 + ...filter_2main_2bmi270__context_8c__incl.md5 | 1 + ...filter_2main_2bmi270__context_8c__incl.svg | 65 + ...er_2main_2bmi270__context_8c__incl_org.svg | 39 + ...lter_2main_2bmi270__context_8c_source.html | 554 +++ docs/html/cdc_8c.html | 658 ++++ docs/html/cdc_8c.js | 14 + docs/html/cdc_8c__incl.md5 | 1 + docs/html/cdc_8c__incl.svg | 329 ++ docs/html/cdc_8c__incl_org.svg | 246 ++ ...fea5ebace85419b82be50d14552a846_cgraph.md5 | 1 + ...fea5ebace85419b82be50d14552a846_cgraph.svg | 194 + ...ebace85419b82be50d14552a846_cgraph_org.svg | 111 + ...ea5ebace85419b82be50d14552a846_icgraph.md5 | 1 + ...ea5ebace85419b82be50d14552a846_icgraph.svg | 83 + ...bace85419b82be50d14552a846_icgraph_org.svg | 57 + ...af1be61f3d48fb87311dd61c06cbae_icgraph.md5 | 1 + ...af1be61f3d48fb87311dd61c06cbae_icgraph.svg | 712 ++++ ...e61f3d48fb87311dd61c06cbae_icgraph_org.svg | 629 ++++ ...6449a7b8addc224dc809d01cc5c887c_cgraph.md5 | 1 + ...6449a7b8addc224dc809d01cc5c887c_cgraph.svg | 83 + ...a7b8addc224dc809d01cc5c887c_cgraph_org.svg | 57 + ...449a7b8addc224dc809d01cc5c887c_icgraph.md5 | 1 + ...449a7b8addc224dc809d01cc5c887c_icgraph.svg | 101 + ...7b8addc224dc809d01cc5c887c_icgraph_org.svg | 75 + ...475f282177737b28e4f3c87051e10a0_cgraph.md5 | 1 + ...475f282177737b28e4f3c87051e10a0_cgraph.svg | 83 + ...282177737b28e4f3c87051e10a0_cgraph_org.svg | 57 + ...75f282177737b28e4f3c87051e10a0_icgraph.md5 | 1 + ...75f282177737b28e4f3c87051e10a0_icgraph.svg | 101 + ...82177737b28e4f3c87051e10a0_icgraph_org.svg | 75 + ...3a3cac48508654d002fa4d573f87504_cgraph.md5 | 1 + ...3a3cac48508654d002fa4d573f87504_cgraph.svg | 65 + ...ac48508654d002fa4d573f87504_cgraph_org.svg | 39 + ...a3cac48508654d002fa4d573f87504_icgraph.md5 | 1 + ...a3cac48508654d002fa4d573f87504_icgraph.svg | 293 ++ ...c48508654d002fa4d573f87504_icgraph_org.svg | 210 ++ ...2a407d111850958c2a043f05798308f_cgraph.md5 | 1 + ...2a407d111850958c2a043f05798308f_cgraph.svg | 83 + ...7d111850958c2a043f05798308f_cgraph_org.svg | 57 + ...a407d111850958c2a043f05798308f_icgraph.md5 | 1 + ...a407d111850958c2a043f05798308f_icgraph.svg | 101 + ...d111850958c2a043f05798308f_icgraph_org.svg | 75 + ...b3601e6d925be67b313996c6ed6cf37_cgraph.md5 | 1 + ...b3601e6d925be67b313996c6ed6cf37_cgraph.svg | 83 + ...1e6d925be67b313996c6ed6cf37_cgraph_org.svg | 57 + ...3601e6d925be67b313996c6ed6cf37_icgraph.md5 | 1 + ...3601e6d925be67b313996c6ed6cf37_icgraph.svg | 101 + ...e6d925be67b313996c6ed6cf37_icgraph_org.svg | 75 + ...8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 | 1 + ...8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg | 137 + ...2e178b5e70f3da27e93d8d91a90_cgraph_org.svg | 111 + ...ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 | 1 + ...ab12e178b5e70f3da27e93d8d91a90_icgraph.svg | 83 + ...e178b5e70f3da27e93d8d91a90_icgraph_org.svg | 57 + docs/html/cdc_8c_source.html | 257 ++ docs/html/cdc_8h.html | 352 ++ docs/html/cdc_8h.js | 11 + docs/html/cdc_8h__dep__incl.md5 | 1 + docs/html/cdc_8h__dep__incl.svg | 101 + docs/html/cdc_8h__dep__incl_org.svg | 75 + docs/html/cdc_8h__incl.md5 | 1 + docs/html/cdc_8h__incl.svg | 212 ++ docs/html/cdc_8h__incl_org.svg | 129 + ...fea5ebace85419b82be50d14552a846_cgraph.md5 | 1 + ...fea5ebace85419b82be50d14552a846_cgraph.svg | 194 + ...ebace85419b82be50d14552a846_cgraph_org.svg | 111 + ...ea5ebace85419b82be50d14552a846_icgraph.md5 | 1 + ...ea5ebace85419b82be50d14552a846_icgraph.svg | 83 + ...bace85419b82be50d14552a846_icgraph_org.svg | 57 + ...af1be61f3d48fb87311dd61c06cbae_icgraph.md5 | 1 + ...af1be61f3d48fb87311dd61c06cbae_icgraph.svg | 712 ++++ ...e61f3d48fb87311dd61c06cbae_icgraph_org.svg | 629 ++++ ...8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 | 1 + ...8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg | 137 + ...2e178b5e70f3da27e93d8d91a90_cgraph_org.svg | 111 + ...ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 | 1 + ...ab12e178b5e70f3da27e93d8d91a90_icgraph.svg | 83 + ...e178b5e70f3da27e93d8d91a90_icgraph_org.svg | 57 + docs/html/cdc_8h_source.html | 194 + docs/html/classdspm_1_1_mat.html | 3202 +++++++++++++++++ docs/html/classdspm_1_1_mat.js | 62 + ...25beb99e548d50925c88c65272b021e_cgraph.md5 | 1 + ...25beb99e548d50925c88c65272b021e_cgraph.svg | 83 + ...b99e548d50925c88c65272b021e_cgraph_org.svg | 57 + ...5beb99e548d50925c88c65272b021e_icgraph.md5 | 1 + ...5beb99e548d50925c88c65272b021e_icgraph.svg | 101 + ...99e548d50925c88c65272b021e_icgraph_org.svg | 75 + ...7a4336e1ffd7ee7783458acda78762b_cgraph.md5 | 1 + ...7a4336e1ffd7ee7783458acda78762b_cgraph.svg | 83 + ...36e1ffd7ee7783458acda78762b_cgraph_org.svg | 57 + ...307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.md5 | 1 + ...307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.svg | 137 + ...a8f13edcf4b1f2bdbf23c9f0ce8_cgraph_org.svg | 111 + ...07da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.md5 | 1 + ...07da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.svg | 101 + ...8f13edcf4b1f2bdbf23c9f0ce8_icgraph_org.svg | 75 + ...62f0bdd51e92b35c0573e5111a8c48a_cgraph.md5 | 1 + ...62f0bdd51e92b35c0573e5111a8c48a_cgraph.svg | 101 + ...bdd51e92b35c0573e5111a8c48a_cgraph_org.svg | 75 + ...69cb1f531813dfe48f94f4392261c61_cgraph.md5 | 1 + ...69cb1f531813dfe48f94f4392261c61_cgraph.svg | 185 + ...1f531813dfe48f94f4392261c61_cgraph_org.svg | 102 + ...e7cd45e323d85d2025a9ad1d79b62f0_cgraph.md5 | 1 + ...e7cd45e323d85d2025a9ad1d79b62f0_cgraph.svg | 168 + ...45e323d85d2025a9ad1d79b62f0_cgraph_org.svg | 85 + ...7cd45e323d85d2025a9ad1d79b62f0_icgraph.md5 | 1 + ...7cd45e323d85d2025a9ad1d79b62f0_icgraph.svg | 84 + ...5e323d85d2025a9ad1d79b62f0_icgraph_org.svg | 58 + ...178baaad6a99fdfa2eb611f73bbcc5e_cgraph.md5 | 1 + ...178baaad6a99fdfa2eb611f73bbcc5e_cgraph.svg | 92 + ...aaad6a99fdfa2eb611f73bbcc5e_cgraph_org.svg | 66 + ...78baaad6a99fdfa2eb611f73bbcc5e_icgraph.md5 | 1 + ...78baaad6a99fdfa2eb611f73bbcc5e_icgraph.svg | 56 + ...aad6a99fdfa2eb611f73bbcc5e_icgraph_org.svg | 30 + ...944f7de712a8ebe6cbbb68b08372ead_cgraph.md5 | 1 + ...944f7de712a8ebe6cbbb68b08372ead_cgraph.svg | 248 ++ ...7de712a8ebe6cbbb68b08372ead_cgraph_org.svg | 165 + ...44f7de712a8ebe6cbbb68b08372ead_icgraph.md5 | 1 + ...44f7de712a8ebe6cbbb68b08372ead_icgraph.svg | 65 + ...de712a8ebe6cbbb68b08372ead_icgraph_org.svg | 39 + ...4566db0f4ad277e70c09f5e934b91e_icgraph.md5 | 1 + ...4566db0f4ad277e70c09f5e934b91e_icgraph.svg | 476 +++ ...db0f4ad277e70c09f5e934b91e_icgraph_org.svg | 393 ++ ...d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.md5 | 1 + ...d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.svg | 303 ++ ...6dbfbc64fa98f08ef9ce8860a12_cgraph_org.svg | 220 ++ ...8be6dbfbc64fa98f08ef9ce8860a12_icgraph.md5 | 1 + ...8be6dbfbc64fa98f08ef9ce8860a12_icgraph.svg | 65 + ...dbfbc64fa98f08ef9ce8860a12_icgraph_org.svg | 39 + ...c822cafab693f430803cc91f0143214_cgraph.md5 | 1 + ...c822cafab693f430803cc91f0143214_cgraph.svg | 65 + ...cafab693f430803cc91f0143214_cgraph_org.svg | 39 + ...822cafab693f430803cc91f0143214_icgraph.md5 | 1 + ...822cafab693f430803cc91f0143214_icgraph.svg | 119 + ...afab693f430803cc91f0143214_icgraph_org.svg | 93 + ...1fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.md5 | 1 + ...1fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.svg | 83 + ...b5b8909e956f9fe54d7cb9b7a9a_cgraph_org.svg | 57 + ...7f625f9b842f266a8c6db6a688a42ca_cgraph.md5 | 1 + ...7f625f9b842f266a8c6db6a688a42ca_cgraph.svg | 110 + ...5f9b842f266a8c6db6a688a42ca_cgraph_org.svg | 84 + ...a88624f27c4de9a94cd68d538ae02b0_cgraph.md5 | 1 + ...a88624f27c4de9a94cd68d538ae02b0_cgraph.svg | 92 + ...24f27c4de9a94cd68d538ae02b0_cgraph_org.svg | 66 + ...eb6987452e618ba8d638a6773a074df_cgraph.md5 | 1 + ...eb6987452e618ba8d638a6773a074df_cgraph.svg | 65 + ...87452e618ba8d638a6773a074df_cgraph_org.svg | 39 + ...b6987452e618ba8d638a6773a074df_icgraph.md5 | 1 + ...b6987452e618ba8d638a6773a074df_icgraph.svg | 1827 ++++++++++ ...7452e618ba8d638a6773a074df_icgraph_org.svg | 1744 +++++++++ ...c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.md5 | 1 + ...c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.svg | 92 + ...a4928e3ffbc8166ab6bb9a9ac91_cgraph_org.svg | 66 + ...db445423c3ba0600145c883a534662c_cgraph.md5 | 1 + ...db445423c3ba0600145c883a534662c_cgraph.svg | 167 + ...5423c3ba0600145c883a534662c_cgraph_org.svg | 84 + ...070672481a32261bd5f01ec5c02184b_cgraph.md5 | 1 + ...070672481a32261bd5f01ec5c02184b_cgraph.svg | 101 + ...72481a32261bd5f01ec5c02184b_cgraph_org.svg | 75 + ...502c6d836d1ae05f6880620c1a832b5_cgraph.md5 | 1 + ...502c6d836d1ae05f6880620c1a832b5_cgraph.svg | 83 + ...6d836d1ae05f6880620c1a832b5_cgraph_org.svg | 57 + ...02c6d836d1ae05f6880620c1a832b5_icgraph.md5 | 1 + ...02c6d836d1ae05f6880620c1a832b5_icgraph.svg | 871 +++++ ...d836d1ae05f6880620c1a832b5_icgraph_org.svg | 788 ++++ ...65a86e94b3d404e8578e22a36e7d424_cgraph.md5 | 1 + ...65a86e94b3d404e8578e22a36e7d424_cgraph.svg | 119 + ...6e94b3d404e8578e22a36e7d424_cgraph_org.svg | 93 + ...5a86e94b3d404e8578e22a36e7d424_icgraph.md5 | 1 + ...5a86e94b3d404e8578e22a36e7d424_icgraph.svg | 74 + ...e94b3d404e8578e22a36e7d424_icgraph_org.svg | 48 + ...73a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.md5 | 1 + ...73a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.svg | 83 + ...a3c35bdd961c597fa3cf9b0aa2c_cgraph_org.svg | 57 + ...ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.md5 | 1 + ...ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.svg | 83 + ...0d03cbb5a898d4e9cdeb38a87d4_cgraph_org.svg | 57 + ...acbcd773c6158ec2ee1fa51599bc64a_cgraph.md5 | 1 + ...acbcd773c6158ec2ee1fa51599bc64a_cgraph.svg | 83 + ...d773c6158ec2ee1fa51599bc64a_cgraph_org.svg | 57 + ...b11a8f5022e6c54b212bf9af880b670_cgraph.md5 | 1 + ...b11a8f5022e6c54b212bf9af880b670_cgraph.svg | 83 + ...8f5022e6c54b212bf9af880b670_cgraph_org.svg | 57 + ...11a8f5022e6c54b212bf9af880b670_icgraph.md5 | 1 + ...11a8f5022e6c54b212bf9af880b670_icgraph.svg | 158 + ...f5022e6c54b212bf9af880b670_icgraph_org.svg | 132 + ...e682e7d416fa60f41a25da37350d7f_icgraph.md5 | 1 + ...e682e7d416fa60f41a25da37350d7f_icgraph.svg | 230 ++ ...e7d416fa60f41a25da37350d7f_icgraph_org.svg | 147 + ...1c170522b5c50effcb87452a2b85471_cgraph.md5 | 1 + ...1c170522b5c50effcb87452a2b85471_cgraph.svg | 83 + ...0522b5c50effcb87452a2b85471_cgraph_org.svg | 57 + ...70caf8f197878395a4a8324c2bd6594_cgraph.md5 | 1 + ...70caf8f197878395a4a8324c2bd6594_cgraph.svg | 92 + ...f8f197878395a4a8324c2bd6594_cgraph_org.svg | 66 + ...0caf8f197878395a4a8324c2bd6594_icgraph.md5 | 1 + ...0caf8f197878395a4a8324c2bd6594_icgraph.svg | 74 + ...8f197878395a4a8324c2bd6594_icgraph_org.svg | 48 + ...2f099abe2da9662fd06e72056df323_icgraph.md5 | 1 + ...2f099abe2da9662fd06e72056df323_icgraph.svg | 1710 +++++++++ ...9abe2da9662fd06e72056df323_icgraph_org.svg | 1627 +++++++++ ...ecd4c41d26bbe015c86e0a7f1205af3_cgraph.md5 | 1 + ...ecd4c41d26bbe015c86e0a7f1205af3_cgraph.svg | 101 + ...c41d26bbe015c86e0a7f1205af3_cgraph_org.svg | 75 + ...2b42e38e401e60aa31ad0ca37532ae0_cgraph.md5 | 1 + ...2b42e38e401e60aa31ad0ca37532ae0_cgraph.svg | 83 + ...e38e401e60aa31ad0ca37532ae0_cgraph_org.svg | 57 + ...5482cf5daed6c1f7f66639913d71b39_cgraph.md5 | 1 + ...5482cf5daed6c1f7f66639913d71b39_cgraph.svg | 185 + ...cf5daed6c1f7f66639913d71b39_cgraph_org.svg | 102 + ...482cf5daed6c1f7f66639913d71b39_icgraph.md5 | 1 + ...482cf5daed6c1f7f66639913d71b39_icgraph.svg | 83 + ...f5daed6c1f7f66639913d71b39_icgraph_org.svg | 57 + ...f58a251e4f3cce0dcd48d3b277c3ea7_cgraph.md5 | 1 + ...f58a251e4f3cce0dcd48d3b277c3ea7_cgraph.svg | 83 + ...251e4f3cce0dcd48d3b277c3ea7_cgraph_org.svg | 57 + ...48017c1f1dc16c62bf629a505040cb3_cgraph.md5 | 1 + ...48017c1f1dc16c62bf629a505040cb3_cgraph.svg | 65 + ...7c1f1dc16c62bf629a505040cb3_cgraph_org.svg | 39 + ...6b5781e65c612fa063313333abad614_cgraph.md5 | 1 + ...6b5781e65c612fa063313333abad614_cgraph.svg | 83 + ...81e65c612fa063313333abad614_cgraph_org.svg | 57 + ...b5781e65c612fa063313333abad614_icgraph.md5 | 1 + ...b5781e65c612fa063313333abad614_icgraph.svg | 101 + ...1e65c612fa063313333abad614_icgraph_org.svg | 75 + ...a20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.md5 | 1 + ...a20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.svg | 83 + ...15fbc75e0fdc1c0d2e15fc48a1a_cgraph_org.svg | 57 + ...8001066240ab06aa1390ac944835ff1_cgraph.md5 | 1 + ...8001066240ab06aa1390ac944835ff1_cgraph.svg | 83 + ...066240ab06aa1390ac944835ff1_cgraph_org.svg | 57 + ...001066240ab06aa1390ac944835ff1_icgraph.md5 | 1 + ...001066240ab06aa1390ac944835ff1_icgraph.svg | 83 + ...66240ab06aa1390ac944835ff1_icgraph_org.svg | 57 + ...a26a323d8700c5ed4a3cf0930ff9527_cgraph.md5 | 1 + ...a26a323d8700c5ed4a3cf0930ff9527_cgraph.svg | 176 + ...323d8700c5ed4a3cf0930ff9527_cgraph_org.svg | 93 + ...051fad655af0540d571cf345241a2d8_cgraph.md5 | 1 + ...051fad655af0540d571cf345241a2d8_cgraph.svg | 101 + ...ad655af0540d571cf345241a2d8_cgraph_org.svg | 75 + ...1013adcb6d601fba7bf788fd52d80b4_cgraph.md5 | 1 + ...1013adcb6d601fba7bf788fd52d80b4_cgraph.svg | 83 + ...adcb6d601fba7bf788fd52d80b4_cgraph_org.svg | 57 + ...013adcb6d601fba7bf788fd52d80b4_icgraph.md5 | 1 + ...013adcb6d601fba7bf788fd52d80b4_icgraph.svg | 666 ++++ ...dcb6d601fba7bf788fd52d80b4_icgraph_org.svg | 583 +++ ...10a9ed71cd84b42c44a035e71e40132_cgraph.md5 | 1 + ...10a9ed71cd84b42c44a035e71e40132_cgraph.svg | 110 + ...ed71cd84b42c44a035e71e40132_cgraph_org.svg | 84 + ...5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.md5 | 1 + ...5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.svg | 257 ++ ...c8f94cf90af1c9a8bfe9ac4209f_cgraph_org.svg | 174 + ...83846df6f2ec2e1901affce82b1df6f_cgraph.md5 | 1 + ...83846df6f2ec2e1901affce82b1df6f_cgraph.svg | 83 + ...6df6f2ec2e1901affce82b1df6f_cgraph_org.svg | 57 + docs/html/classekf.html | 1599 ++++++++ docs/html/classekf.js | 31 + docs/html/classekf__coll__graph.md5 | 1 + docs/html/classekf__coll__graph.svg | 70 + docs/html/classekf__coll__graph_org.svg | 44 + docs/html/classekf__imu13states.html | 931 +++++ docs/html/classekf__imu13states.js | 16 + .../classekf__imu13states__coll__graph.md5 | 1 + .../classekf__imu13states__coll__graph.svg | 99 + ...classekf__imu13states__coll__graph_org.svg | 73 + .../classekf__imu13states__inherit__graph.md5 | 1 + .../classekf__imu13states__inherit__graph.svg | 65 + ...ssekf__imu13states__inherit__graph_org.svg | 39 + ...9f6e9adfc80a65e41a6e11ffd89fc53_cgraph.md5 | 1 + ...9f6e9adfc80a65e41a6e11ffd89fc53_cgraph.svg | 285 ++ ...9adfc80a65e41a6e11ffd89fc53_cgraph_org.svg | 202 ++ ...8292836f30dfd6439ee3bdda30ed20f_cgraph.md5 | 1 + ...8292836f30dfd6439ee3bdda30ed20f_cgraph.svg | 176 + ...836f30dfd6439ee3bdda30ed20f_cgraph_org.svg | 93 + ...f315abd38007e57247edc0967d688f7_cgraph.md5 | 1 + ...f315abd38007e57247edc0967d688f7_cgraph.svg | 492 +++ ...abd38007e57247edc0967d688f7_cgraph_org.svg | 409 +++ ...4709d79f66591f90fea7c532d73ba14_cgraph.md5 | 1 + ...4709d79f66591f90fea7c532d73ba14_cgraph.svg | 258 ++ ...d79f66591f90fea7c532d73ba14_cgraph_org.svg | 175 + ...709d79f66591f90fea7c532d73ba14_icgraph.md5 | 1 + ...709d79f66591f90fea7c532d73ba14_icgraph.svg | 66 + ...79f66591f90fea7c532d73ba14_icgraph_org.svg | 40 + ...45e9518c23a0fb627e9018d75195008_cgraph.md5 | 1 + ...45e9518c23a0fb627e9018d75195008_cgraph.svg | 239 ++ ...518c23a0fb627e9018d75195008_cgraph_org.svg | 156 + ...ea6659a97139b5ab7d4ebaa2872e41f_cgraph.md5 | 1 + ...ea6659a97139b5ab7d4ebaa2872e41f_cgraph.svg | 66 + ...59a97139b5ab7d4ebaa2872e41f_cgraph_org.svg | 40 + ...56f37dbe6dece11f6ff670e478099b1_cgraph.md5 | 1 + ...56f37dbe6dece11f6ff670e478099b1_cgraph.svg | 285 ++ ...7dbe6dece11f6ff670e478099b1_cgraph_org.svg | 202 ++ ...497d6d258b35c5e602f9816cd515267_cgraph.md5 | 1 + ...497d6d258b35c5e602f9816cd515267_cgraph.svg | 176 + ...6d258b35c5e602f9816cd515267_cgraph_org.svg | 93 + ...97d6d258b35c5e602f9816cd515267_icgraph.md5 | 1 + ...97d6d258b35c5e602f9816cd515267_icgraph.svg | 65 + ...d258b35c5e602f9816cd515267_icgraph_org.svg | 39 + ...9d689b4d151401d6a654390ac34599e_cgraph.md5 | 1 + ...9d689b4d151401d6a654390ac34599e_cgraph.svg | 101 + ...9b4d151401d6a654390ac34599e_cgraph_org.svg | 75 + docs/html/classekf__inherit__graph.md5 | 1 + docs/html/classekf__inherit__graph.svg | 65 + docs/html/classekf__inherit__graph_org.svg | 39 + ...a763aeb193404116274d2885c42172_icgraph.md5 | 1 + ...a763aeb193404116274d2885c42172_icgraph.svg | 101 + ...aeb193404116274d2885c42172_icgraph_org.svg | 75 + ...48bfefd351013bb66d84b160ce31ee3_cgraph.md5 | 1 + ...48bfefd351013bb66d84b160ce31ee3_cgraph.svg | 83 + ...efd351013bb66d84b160ce31ee3_cgraph_org.svg | 57 + ...8bfefd351013bb66d84b160ce31ee3_icgraph.md5 | 1 + ...8bfefd351013bb66d84b160ce31ee3_icgraph.svg | 65 + ...fd351013bb66d84b160ce31ee3_icgraph_org.svg | 39 + ...cccadc5b6e3150a55b8964526e206f_icgraph.md5 | 1 + ...cccadc5b6e3150a55b8964526e206f_icgraph.svg | 83 + ...dc5b6e3150a55b8964526e206f_icgraph_org.svg | 57 + ...ffa0048058ee2485dcb28d718be907_icgraph.md5 | 1 + ...ffa0048058ee2485dcb28d718be907_icgraph.svg | 122 + ...048058ee2485dcb28d718be907_icgraph_org.svg | 96 + ...2ee022dba96611bf76d0d29bf964323_cgraph.md5 | 1 + ...2ee022dba96611bf76d0d29bf964323_cgraph.svg | 182 + ...22dba96611bf76d0d29bf964323_cgraph_org.svg | 156 + ...ee022dba96611bf76d0d29bf964323_icgraph.md5 | 1 + ...ee022dba96611bf76d0d29bf964323_icgraph.svg | 65 + ...2dba96611bf76d0d29bf964323_icgraph_org.svg | 39 + ...b8f056f76ddf4a0d3520cc4ef8bade_icgraph.md5 | 1 + ...b8f056f76ddf4a0d3520cc4ef8bade_icgraph.svg | 66 + ...56f76ddf4a0d3520cc4ef8bade_icgraph_org.svg | 40 + ...5f152864f2732a9888d4f959bd21fa_icgraph.md5 | 1 + ...5f152864f2732a9888d4f959bd21fa_icgraph.svg | 476 +++ ...2864f2732a9888d4f959bd21fa_icgraph_org.svg | 393 ++ ...588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.md5 | 1 + ...588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.svg | 185 + ...d6c3eae0d1a177b35ea75b5a4f3_cgraph_org.svg | 102 + ...88ad6c3eae0d1a177b35ea75b5a4f3_icgraph.md5 | 1 + ...88ad6c3eae0d1a177b35ea75b5a4f3_icgraph.svg | 83 + ...6c3eae0d1a177b35ea75b5a4f3_icgraph_org.svg | 57 + ...279ffd67d217145d7891a44ea0d9e8_icgraph.md5 | 1 + ...279ffd67d217145d7891a44ea0d9e8_icgraph.svg | 581 +++ ...fd67d217145d7891a44ea0d9e8_icgraph_org.svg | 498 +++ ...4bf24c20081158a4327aba7d922547_icgraph.md5 | 1 + ...4bf24c20081158a4327aba7d922547_icgraph.svg | 383 ++ ...4c20081158a4327aba7d922547_icgraph_org.svg | 300 ++ ...f41e0ecb82824766219aa5f9b0baef_icgraph.md5 | 1 + ...f41e0ecb82824766219aa5f9b0baef_icgraph.svg | 122 + ...0ecb82824766219aa5f9b0baef_icgraph_org.svg | 96 + ...f28807c86b11b95cc95bd514e65ea61_cgraph.md5 | 1 + ...f28807c86b11b95cc95bd514e65ea61_cgraph.svg | 65 + ...07c86b11b95cc95bd514e65ea61_cgraph_org.svg | 39 + ...28807c86b11b95cc95bd514e65ea61_icgraph.md5 | 1 + ...28807c86b11b95cc95bd514e65ea61_icgraph.svg | 83 + ...7c86b11b95cc95bd514e65ea61_icgraph_org.svg | 57 + ...d6f35d1ea69828aa0f757762fac9498_cgraph.md5 | 1 + ...d6f35d1ea69828aa0f757762fac9498_cgraph.svg | 339 ++ ...5d1ea69828aa0f757762fac9498_cgraph_org.svg | 256 ++ ...d09350d77dfdc0525b1fd72333fa3e_icgraph.md5 | 1 + ...d09350d77dfdc0525b1fd72333fa3e_icgraph.svg | 65 + ...50d77dfdc0525b1fd72333fa3e_icgraph_org.svg | 39 + ...a3bb4b4c62c2e5aa7728abb652d7b5_icgraph.md5 | 1 + ...a3bb4b4c62c2e5aa7728abb652d7b5_icgraph.svg | 101 + ...4b4c62c2e5aa7728abb652d7b5_icgraph_org.svg | 75 + docs/html/classes.html | 144 + docs/html/clipboard.js | 61 + ...s_2spectrum__box__lite_2main_2main_8c.html | 869 +++++ ...ons_2spectrum__box__lite_2main_2main_8c.js | 20 + ...ectrum__box__lite_2main_2main_8c__incl.md5 | 1 + ...ectrum__box__lite_2main_2main_8c__incl.svg | 1798 +++++++++ ...um__box__lite_2main_2main_8c__incl_org.svg | 1715 +++++++++ ...4947e47b733459d79baaebe3425c9dd_cgraph.md5 | 1 + ...4947e47b733459d79baaebe3425c9dd_cgraph.svg | 258 ++ ...e47b733459d79baaebe3425c9dd_cgraph_org.svg | 175 + ...947e47b733459d79baaebe3425c9dd_icgraph.md5 | 1 + ...947e47b733459d79baaebe3425c9dd_icgraph.svg | 65 + ...47b733459d79baaebe3425c9dd_icgraph_org.svg | 39 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 | 1 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg | 366 ++ ...4a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg | 283 ++ ...8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 | 1 + ...8855b4c88c8357b7e3f1572ad8810a_icgraph.svg | 101 + ...b4c88c8357b7e3f1572ad8810a_icgraph_org.svg | 75 + ...a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 | 1 + ...a38eae9043f070fbd482ffa18f2fa22_cgraph.svg | 101 + ...ae9043f070fbd482ffa18f2fa22_cgraph_org.svg | 75 + ...38eae9043f070fbd482ffa18f2fa22_icgraph.md5 | 1 + ...38eae9043f070fbd482ffa18f2fa22_icgraph.svg | 65 + ...e9043f070fbd482ffa18f2fa22_icgraph_org.svg | 39 + ...6289103fb2f3c19f858abd3fca5bc7_icgraph.md5 | 1 + ...6289103fb2f3c19f858abd3fca5bc7_icgraph.svg | 83 + ...103fb2f3c19f858abd3fca5bc7_icgraph_org.svg | 57 + ...8864347344fab858003e41128dbbc12_cgraph.md5 | 1 + ...8864347344fab858003e41128dbbc12_cgraph.svg | 65 + ...347344fab858003e41128dbbc12_cgraph_org.svg | 39 + ...864347344fab858003e41128dbbc12_icgraph.md5 | 1 + ...864347344fab858003e41128dbbc12_icgraph.svg | 83 + ...47344fab858003e41128dbbc12_icgraph_org.svg | 57 + ...trum__box__lite_2main_2main_8c_source.html | 423 +++ ...s_2spectrum__box__lite_2main_2main_8c.html | 841 +++++ ...ons_2spectrum__box__lite_2main_2main_8c.js | 20 + ...ectrum__box__lite_2main_2main_8c__incl.md5 | 1 + ...ectrum__box__lite_2main_2main_8c__incl.svg | 1798 +++++++++ ...um__box__lite_2main_2main_8c__incl_org.svg | 1715 +++++++++ ...4947e47b733459d79baaebe3425c9dd_cgraph.md5 | 1 + ...4947e47b733459d79baaebe3425c9dd_cgraph.svg | 258 ++ ...e47b733459d79baaebe3425c9dd_cgraph_org.svg | 175 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 | 1 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg | 366 ++ ...4a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg | 283 ++ ...8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 | 1 + ...8855b4c88c8357b7e3f1572ad8810a_icgraph.svg | 83 + ...b4c88c8357b7e3f1572ad8810a_icgraph_org.svg | 57 + ...a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 | 1 + ...a38eae9043f070fbd482ffa18f2fa22_cgraph.svg | 101 + ...ae9043f070fbd482ffa18f2fa22_cgraph_org.svg | 75 + ...6289103fb2f3c19f858abd3fca5bc7_icgraph.md5 | 1 + ...6289103fb2f3c19f858abd3fca5bc7_icgraph.svg | 65 + ...103fb2f3c19f858abd3fca5bc7_icgraph_org.svg | 39 + ...8864347344fab858003e41128dbbc12_cgraph.md5 | 1 + ...8864347344fab858003e41128dbbc12_cgraph.svg | 65 + ...347344fab858003e41128dbbc12_cgraph_org.svg | 39 + ...864347344fab858003e41128dbbc12_icgraph.md5 | 1 + ...864347344fab858003e41128dbbc12_icgraph.svg | 65 + ...47344fab858003e41128dbbc12_icgraph_org.svg | 39 + ...trum__box__lite_2main_2main_8c_source.html | 425 +++ ...dsp_2modules_2fft_2test__sim_2main_8c.html | 248 ++ ...p-dsp_2modules_2fft_2test__sim_2main_8c.js | 5 + ...modules_2fft_2test__sim_2main_8c__incl.md5 | 1 + ...modules_2fft_2test__sim_2main_8c__incl.svg | 83 + ...les_2fft_2test__sim_2main_8c__incl_org.svg | 57 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.md5 | 1 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.svg | 191 + ...1bc02cba5474a4cb46a9b9566fe_cgraph_org.svg | 165 + ...57f5d7a9dfff9aeea49fb117331c12d_cgraph.md5 | 1 + ...57f5d7a9dfff9aeea49fb117331c12d_cgraph.svg | 257 ++ ...d7a9dfff9aeea49fb117331c12d_cgraph_org.svg | 174 + ...7f5d7a9dfff9aeea49fb117331c12d_icgraph.md5 | 1 + ...7f5d7a9dfff9aeea49fb117331c12d_icgraph.svg | 65 + ...7a9dfff9aeea49fb117331c12d_icgraph_org.svg | 39 + ...dules_2fft_2test__sim_2main_8c_source.html | 124 + ...dsp_2modules_2fir_2test__sim_2main_8c.html | 235 ++ ...p-dsp_2modules_2fir_2test__sim_2main_8c.js | 5 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.md5 | 1 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.svg | 155 + ...1bc02cba5474a4cb46a9b9566fe_cgraph_org.svg | 129 + ...44a5f95a865773567d3d7b637b2eb8a_cgraph.md5 | 1 + ...44a5f95a865773567d3d7b637b2eb8a_cgraph.svg | 137 + ...f95a865773567d3d7b637b2eb8a_cgraph_org.svg | 111 + ...4a5f95a865773567d3d7b637b2eb8a_icgraph.md5 | 1 + ...4a5f95a865773567d3d7b637b2eb8a_icgraph.svg | 65 + ...95a865773567d3d7b637b2eb8a_icgraph_org.svg | 39 + ...dules_2fir_2test__sim_2main_8c_source.html | 122 + ...dsp_2modules_2iir_2test__sim_2main_8c.html | 234 ++ ...p-dsp_2modules_2iir_2test__sim_2main_8c.js | 5 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.md5 | 1 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.svg | 137 + ...1bc02cba5474a4cb46a9b9566fe_cgraph_org.svg | 111 + ...6b3a034f916b45dd4c321af1671639f_cgraph.md5 | 1 + ...6b3a034f916b45dd4c321af1671639f_cgraph.svg | 119 + ...034f916b45dd4c321af1671639f_cgraph_org.svg | 93 + ...b3a034f916b45dd4c321af1671639f_icgraph.md5 | 1 + ...b3a034f916b45dd4c321af1671639f_icgraph.svg | 65 + ...34f916b45dd4c321af1671639f_icgraph_org.svg | 39 + ...dules_2iir_2test__sim_2main_8c_source.html | 122 + ...ules_2matrix_2mul_2test__sim_2main_8c.html | 241 ++ ...odules_2matrix_2mul_2test__sim_2main_8c.js | 5 + ...9623517f682d2bf709ad6942132c11d_cgraph.md5 | 1 + ...9623517f682d2bf709ad6942132c11d_cgraph.svg | 119 + ...517f682d2bf709ad6942132c11d_cgraph_org.svg | 93 + ...623517f682d2bf709ad6942132c11d_icgraph.md5 | 1 + ...623517f682d2bf709ad6942132c11d_icgraph.svg | 65 + ...17f682d2bf709ad6942132c11d_icgraph_org.svg | 39 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.md5 | 1 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.svg | 137 + ...1bc02cba5474a4cb46a9b9566fe_cgraph_org.svg | 111 + ...atrix_2mul_2test__sim_2main_8c_source.html | 122 + docs/html/cookie.js | 58 + docs/html/descriptors__control_8c.html | 579 +++ docs/html/descriptors__control_8c.js | 16 + docs/html/descriptors__control_8c__incl.md5 | 1 + docs/html/descriptors__control_8c__incl.svg | 155 + .../descriptors__control_8c__incl_org.svg | 129 + ...ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 | 1 + ...ff8fdaea70ee1ce571843b70aba21f_icgraph.svg | 83 + ...daea70ee1ce571843b70aba21f_icgraph_org.svg | 57 + docs/html/descriptors__control_8c_source.html | 273 ++ docs/html/descriptors__control_8h.html | 291 ++ docs/html/descriptors__control_8h.js | 7 + .../descriptors__control_8h__dep__incl.md5 | 1 + .../descriptors__control_8h__dep__incl.svg | 83 + ...descriptors__control_8h__dep__incl_org.svg | 57 + docs/html/descriptors__control_8h__incl.md5 | 1 + docs/html/descriptors__control_8h__incl.svg | 83 + .../descriptors__control_8h__incl_org.svg | 57 + ...ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 | 1 + ...ff8fdaea70ee1ce571843b70aba21f_icgraph.svg | 83 + ...daea70ee1ce571843b70aba21f_icgraph_org.svg | 57 + docs/html/descriptors__control_8h_source.html | 134 + docs/html/dir_000000_000167.html | 110 + docs/html/dir_000001_000167.html | 110 + docs/html/dir_000002_000167.html | 110 + docs/html/dir_000003_000167.html | 110 + docs/html/dir_000004_000167.html | 110 + docs/html/dir_000005_000167.html | 110 + docs/html/dir_000006_000167.html | 110 + docs/html/dir_000007_000167.html | 110 + docs/html/dir_000008_000167.html | 110 + docs/html/dir_000009_000167.html | 110 + docs/html/dir_000013_000167.html | 110 + docs/html/dir_000014_000167.html | 110 + docs/html/dir_000015_000167.html | 110 + docs/html/dir_000016_000036.html | 110 + docs/html/dir_000017_000036.html | 110 + docs/html/dir_000018_000036.html | 110 + docs/html/dir_000019_000036.html | 110 + docs/html/dir_000020_000167.html | 110 + docs/html/dir_000021_000167.html | 110 + docs/html/dir_000022_000167.html | 110 + docs/html/dir_000023_000167.html | 110 + docs/html/dir_000024_000167.html | 110 + docs/html/dir_000025_000167.html | 110 + docs/html/dir_000026_000167.html | 110 + docs/html/dir_000027_000167.html | 110 + docs/html/dir_000028_000167.html | 110 + docs/html/dir_000029_000167.html | 110 + docs/html/dir_000030_000167.html | 110 + docs/html/dir_000031_000167.html | 110 + docs/html/dir_000032_000036.html | 110 + docs/html/dir_000032_000100.html | 110 + docs/html/dir_000036_000039.html | 110 + docs/html/dir_000036_000042.html | 110 + docs/html/dir_000036_000043.html | 110 + docs/html/dir_000036_000051.html | 110 + docs/html/dir_000036_000052.html | 110 + docs/html/dir_000036_000090.html | 110 + docs/html/dir_000036_000162.html | 110 + docs/html/dir_000036_000163.html | 110 + docs/html/dir_000036_000182.html | 110 + docs/html/dir_000036_000192.html | 110 + docs/html/dir_000037_000101.html | 110 + docs/html/dir_000039_000036.html | 110 + docs/html/dir_000040_000036.html | 110 + docs/html/dir_000040_000116.html | 110 + docs/html/dir_000041_000167.html | 110 + docs/html/dir_000042_000036.html | 110 + docs/html/dir_000042_000051.html | 110 + docs/html/dir_000043_000036.html | 110 + docs/html/dir_000044_000163.html | 110 + docs/html/dir_000045_000044.html | 110 + docs/html/dir_000045_000102.html | 110 + docs/html/dir_000047_000046.html | 110 + docs/html/dir_000047_000125.html | 110 + docs/html/dir_000047_000128.html | 110 + docs/html/dir_000048_000046.html | 110 + docs/html/dir_000049_000167.html | 110 + docs/html/dir_000050_000167.html | 110 + docs/html/dir_000051_000036.html | 110 + docs/html/dir_000051_000163.html | 110 + docs/html/dir_000052_000036.html | 110 + docs/html/dir_000053_000097.html | 110 + docs/html/dir_000054_000036.html | 110 + docs/html/dir_000054_000098.html | 110 + docs/html/dir_000055_000036.html | 110 + docs/html/dir_000055_000099.html | 110 + docs/html/dir_000056_000103.html | 110 + docs/html/dir_000057_000106.html | 110 + docs/html/dir_000058_000107.html | 110 + docs/html/dir_000059_000016.html | 110 + docs/html/dir_000059_000109.html | 110 + docs/html/dir_000060_000043.html | 110 + docs/html/dir_000060_000113.html | 110 + docs/html/dir_000062_000036.html | 110 + docs/html/dir_000062_000095.html | 110 + docs/html/dir_000063_000036.html | 110 + docs/html/dir_000063_000051.html | 110 + docs/html/dir_000063_000096.html | 110 + docs/html/dir_000064_000097.html | 110 + docs/html/dir_000065_000036.html | 110 + docs/html/dir_000065_000098.html | 110 + docs/html/dir_000066_000036.html | 110 + docs/html/dir_000066_000099.html | 110 + docs/html/dir_000067_000103.html | 110 + docs/html/dir_000068_000104.html | 110 + docs/html/dir_000069_000106.html | 110 + docs/html/dir_000070_000107.html | 110 + docs/html/dir_000071_000108.html | 110 + docs/html/dir_000072_000109.html | 110 + docs/html/dir_000073_000110.html | 110 + docs/html/dir_000074_000111.html | 110 + docs/html/dir_000075_000043.html | 110 + docs/html/dir_000075_000113.html | 110 + docs/html/dir_000076_000114.html | 110 + docs/html/dir_000077_000115.html | 110 + docs/html/dir_000078_000036.html | 110 + docs/html/dir_000078_000051.html | 110 + docs/html/dir_000078_000116.html | 110 + docs/html/dir_000079_000036.html | 110 + docs/html/dir_000079_000051.html | 110 + docs/html/dir_000079_000116.html | 110 + docs/html/dir_000080_000118.html | 110 + docs/html/dir_000081_000119.html | 110 + docs/html/dir_000082_000120.html | 110 + docs/html/dir_000083_000121.html | 110 + docs/html/dir_000084_000122.html | 110 + docs/html/dir_000085_000124.html | 110 + docs/html/dir_000086_000167.html | 110 + docs/html/dir_000087_000167.html | 110 + docs/html/dir_000088_000167.html | 110 + docs/html/dir_000090_000036.html | 110 + docs/html/dir_000094_000039.html | 110 + docs/html/dir_000094_000042.html | 110 + docs/html/dir_000094_000043.html | 110 + docs/html/dir_000094_000051.html | 110 + docs/html/dir_000094_000052.html | 110 + docs/html/dir_000094_000090.html | 110 + docs/html/dir_000094_000129.html | 110 + docs/html/dir_000094_000162.html | 110 + docs/html/dir_000094_000163.html | 110 + docs/html/dir_000094_000182.html | 110 + docs/html/dir_000094_000192.html | 110 + docs/html/dir_000095_000036.html | 110 + docs/html/dir_000096_000036.html | 110 + docs/html/dir_000097_000036.html | 110 + docs/html/dir_000098_000036.html | 110 + docs/html/dir_000099_000036.html | 110 + docs/html/dir_000100_000036.html | 110 + docs/html/dir_000101_000163.html | 110 + docs/html/dir_000102_000044.html | 110 + docs/html/dir_000103_000036.html | 110 + docs/html/dir_000104_000036.html | 110 + docs/html/dir_000105_000016.html | 110 + docs/html/dir_000105_000018.html | 110 + docs/html/dir_000105_000168.html | 110 + docs/html/dir_000105_000170.html | 110 + docs/html/dir_000105_000178.html | 110 + docs/html/dir_000105_000180.html | 110 + docs/html/dir_000106_000036.html | 110 + docs/html/dir_000107_000036.html | 110 + docs/html/dir_000108_000036.html | 110 + docs/html/dir_000109_000036.html | 110 + docs/html/dir_000110_000036.html | 110 + docs/html/dir_000111_000036.html | 110 + docs/html/dir_000112_000017.html | 110 + docs/html/dir_000112_000019.html | 110 + docs/html/dir_000112_000169.html | 110 + docs/html/dir_000112_000171.html | 110 + docs/html/dir_000112_000181.html | 110 + docs/html/dir_000113_000036.html | 110 + docs/html/dir_000114_000036.html | 110 + docs/html/dir_000115_000036.html | 110 + docs/html/dir_000116_000036.html | 110 + docs/html/dir_000117_000036.html | 110 + docs/html/dir_000123_000033.html | 110 + docs/html/dir_000123_000034.html | 110 + docs/html/dir_000123_000035.html | 110 + docs/html/dir_000123_000061.html | 110 + docs/html/dir_000123_000089.html | 110 + docs/html/dir_000123_000172.html | 110 + docs/html/dir_000125_000046.html | 110 + docs/html/dir_000126_000046.html | 110 + docs/html/dir_000127_000046.html | 110 + docs/html/dir_000128_000125.html | 110 + docs/html/dir_000130_000046.html | 110 + docs/html/dir_000131_000163.html | 110 + docs/html/dir_000132_000167.html | 110 + docs/html/dir_000133_000167.html | 110 + docs/html/dir_000134_000167.html | 110 + docs/html/dir_000135_000167.html | 110 + docs/html/dir_000136_000167.html | 110 + docs/html/dir_000137_000167.html | 110 + docs/html/dir_000138_000167.html | 110 + docs/html/dir_000139_000167.html | 110 + docs/html/dir_000140_000167.html | 110 + docs/html/dir_000141_000167.html | 110 + docs/html/dir_000142_000167.html | 110 + docs/html/dir_000143_000167.html | 110 + docs/html/dir_000144_000167.html | 110 + docs/html/dir_000145_000167.html | 110 + docs/html/dir_000146_000167.html | 110 + docs/html/dir_000147_000167.html | 110 + docs/html/dir_000148_000167.html | 110 + docs/html/dir_000149_000167.html | 110 + docs/html/dir_000150_000167.html | 110 + docs/html/dir_000151_000167.html | 110 + docs/html/dir_000152_000167.html | 110 + docs/html/dir_000153_000167.html | 110 + docs/html/dir_000154_000167.html | 110 + docs/html/dir_000155_000167.html | 110 + docs/html/dir_000156_000167.html | 110 + docs/html/dir_000157_000167.html | 110 + docs/html/dir_000158_000167.html | 110 + docs/html/dir_000159_000167.html | 110 + docs/html/dir_000160_000038.html | 110 + docs/html/dir_000161_000036.html | 110 + docs/html/dir_000161_000112.html | 110 + docs/html/dir_000161_000162.html | 110 + docs/html/dir_000162_000036.html | 110 + docs/html/dir_000163_000036.html | 110 + docs/html/dir_000163_000043.html | 110 + docs/html/dir_000163_000162.html | 110 + docs/html/dir_000164_000036.html | 110 + docs/html/dir_000165_000094.html | 110 + docs/html/dir_000166_000116.html | 110 + docs/html/dir_000168_000036.html | 110 + docs/html/dir_000169_000036.html | 110 + docs/html/dir_000169_000043.html | 110 + docs/html/dir_000170_000036.html | 110 + docs/html/dir_000171_000036.html | 110 + docs/html/dir_000173_000099.html | 110 + docs/html/dir_000174_000036.html | 110 + docs/html/dir_000174_000051.html | 110 + docs/html/dir_000174_000116.html | 110 + docs/html/dir_000175_000036.html | 110 + docs/html/dir_000175_000051.html | 110 + docs/html/dir_000175_000116.html | 110 + docs/html/dir_000176_000167.html | 110 + docs/html/dir_000177_000167.html | 110 + docs/html/dir_000178_000036.html | 110 + docs/html/dir_000179_000046.html | 110 + docs/html/dir_000179_000126.html | 110 + docs/html/dir_000179_000130.html | 110 + docs/html/dir_000180_000016.html | 110 + docs/html/dir_000180_000036.html | 110 + docs/html/dir_000181_000036.html | 110 + docs/html/dir_000182_000036.html | 110 + docs/html/dir_000182_000051.html | 110 + docs/html/dir_000186_000036.html | 110 + docs/html/dir_000186_000098.html | 110 + docs/html/dir_000186_000163.html | 110 + docs/html/dir_000187_000036.html | 110 + docs/html/dir_000187_000099.html | 110 + docs/html/dir_000188_000036.html | 110 + docs/html/dir_000188_000100.html | 110 + docs/html/dir_000189_000036.html | 110 + docs/html/dir_000189_000113.html | 110 + docs/html/dir_000190_000036.html | 110 + docs/html/dir_000190_000116.html | 110 + docs/html/dir_000191_000046.html | 110 + docs/html/dir_000191_000127.html | 110 + .../dir_011fb339d4ebe6812c2c47d3e6334b23.html | 124 + .../dir_011fb339d4ebe6812c2c47d3e6334b23.js | 5 + ...r_011fb339d4ebe6812c2c47d3e6334b23_dep.md5 | 1 + ...r_011fb339d4ebe6812c2c47d3e6334b23_dep.svg | 98 + ...1fb339d4ebe6812c2c47d3e6334b23_dep_org.svg | 72 + .../dir_02308b8e45679f69b2b2822872449adb.html | 123 + .../dir_02308b8e45679f69b2b2822872449adb.js | 4 + ...r_02308b8e45679f69b2b2822872449adb_dep.md5 | 1 + ...r_02308b8e45679f69b2b2822872449adb_dep.svg | 89 + ...308b8e45679f69b2b2822872449adb_dep_org.svg | 63 + .../dir_03855b1c5f3acbaf4daeb650f245a4c9.html | 123 + .../dir_03855b1c5f3acbaf4daeb650f245a4c9.js | 4 + ...r_03855b1c5f3acbaf4daeb650f245a4c9_dep.md5 | 1 + ...r_03855b1c5f3acbaf4daeb650f245a4c9_dep.svg | 187 + ...855b1c5f3acbaf4daeb650f245a4c9_dep_org.svg | 161 + .../dir_0469dbe69b06e7cedb52b012fa55f8d0.html | 124 + .../dir_0469dbe69b06e7cedb52b012fa55f8d0.js | 5 + ...r_0469dbe69b06e7cedb52b012fa55f8d0_dep.md5 | 1 + ...r_0469dbe69b06e7cedb52b012fa55f8d0_dep.svg | 111 + ...69dbe69b06e7cedb52b012fa55f8d0_dep_org.svg | 85 + .../dir_0609830f9d21b927f4cb8e061f955380.html | 123 + .../dir_0609830f9d21b927f4cb8e061f955380.js | 4 + ...r_0609830f9d21b927f4cb8e061f955380_dep.md5 | 1 + ...r_0609830f9d21b927f4cb8e061f955380_dep.svg | 77 + ...09830f9d21b927f4cb8e061f955380_dep_org.svg | 51 + .../dir_09ad66f83672b653a2c2d9afebef122d.html | 123 + .../dir_09ad66f83672b653a2c2d9afebef122d.js | 4 + ...r_09ad66f83672b653a2c2d9afebef122d_dep.md5 | 1 + ...r_09ad66f83672b653a2c2d9afebef122d_dep.svg | 89 + ...ad66f83672b653a2c2d9afebef122d_dep_org.svg | 63 + .../dir_0aad210bf1f44ca0774b9c37a9d769cb.html | 129 + .../dir_0aad210bf1f44ca0774b9c37a9d769cb.js | 10 + ...r_0aad210bf1f44ca0774b9c37a9d769cb_dep.md5 | 1 + ...r_0aad210bf1f44ca0774b9c37a9d769cb_dep.svg | 354 ++ ...ad210bf1f44ca0774b9c37a9d769cb_dep_org.svg | 271 ++ .../dir_0bd9d4933e358e4bf5f0430ee37507d3.html | 124 + .../dir_0bd9d4933e358e4bf5f0430ee37507d3.js | 5 + ...r_0bd9d4933e358e4bf5f0430ee37507d3_dep.md5 | 1 + ...r_0bd9d4933e358e4bf5f0430ee37507d3_dep.svg | 77 + ...d9d4933e358e4bf5f0430ee37507d3_dep_org.svg | 51 + .../dir_0c02408d15b1f96bbde516c6c09437d8.html | 125 + .../dir_0c02408d15b1f96bbde516c6c09437d8.js | 6 + ...r_0c02408d15b1f96bbde516c6c09437d8_dep.md5 | 1 + ...r_0c02408d15b1f96bbde516c6c09437d8_dep.svg | 133 + ...02408d15b1f96bbde516c6c09437d8_dep_org.svg | 107 + .../dir_0c394f99e8354c91f0eeb3e30368bc59.html | 129 + .../dir_0c394f99e8354c91f0eeb3e30368bc59.js | 10 + ...r_0c394f99e8354c91f0eeb3e30368bc59_dep.md5 | 1 + ...r_0c394f99e8354c91f0eeb3e30368bc59_dep.svg | 330 ++ ...394f99e8354c91f0eeb3e30368bc59_dep_org.svg | 304 ++ .../dir_0d2a08bbb77a87cf54ef0513a3b6385f.html | 123 + .../dir_0d2a08bbb77a87cf54ef0513a3b6385f.js | 4 + ...r_0d2a08bbb77a87cf54ef0513a3b6385f_dep.md5 | 1 + ...r_0d2a08bbb77a87cf54ef0513a3b6385f_dep.svg | 77 + ...2a08bbb77a87cf54ef0513a3b6385f_dep_org.svg | 51 + .../dir_0db1884497eb987b5f550d1edc49e18a.html | 124 + .../dir_0db1884497eb987b5f550d1edc49e18a.js | 5 + ...r_0db1884497eb987b5f550d1edc49e18a_dep.md5 | 1 + ...r_0db1884497eb987b5f550d1edc49e18a_dep.svg | 111 + ...b1884497eb987b5f550d1edc49e18a_dep_org.svg | 85 + .../dir_0e58a5050afeaefce98fd18b08172c0d.html | 123 + .../dir_0e58a5050afeaefce98fd18b08172c0d.js | 4 + ...r_0e58a5050afeaefce98fd18b08172c0d_dep.md5 | 1 + ...r_0e58a5050afeaefce98fd18b08172c0d_dep.svg | 77 + ...58a5050afeaefce98fd18b08172c0d_dep_org.svg | 51 + .../dir_0f8480e348776be0b4173a763a451c02.html | 125 + .../dir_0f8480e348776be0b4173a763a451c02.js | 6 + ...r_0f8480e348776be0b4173a763a451c02_dep.md5 | 1 + ...r_0f8480e348776be0b4173a763a451c02_dep.svg | 99 + ...8480e348776be0b4173a763a451c02_dep_org.svg | 73 + .../dir_103c85098120c3619f61a2b979c3132b.html | 123 + .../dir_103c85098120c3619f61a2b979c3132b.js | 4 + ...r_103c85098120c3619f61a2b979c3132b_dep.md5 | 1 + ...r_103c85098120c3619f61a2b979c3132b_dep.svg | 77 + ...3c85098120c3619f61a2b979c3132b_dep_org.svg | 51 + .../dir_10508c1be7391f23f9614e5e6618e1bc.html | 130 + .../dir_10508c1be7391f23f9614e5e6618e1bc.js | 11 + ...r_10508c1be7391f23f9614e5e6618e1bc_dep.md5 | 1 + ...r_10508c1be7391f23f9614e5e6618e1bc_dep.svg | 77 + ...508c1be7391f23f9614e5e6618e1bc_dep_org.svg | 51 + .../dir_169a0c2dbb59f200adaa018c9c77c755.html | 123 + .../dir_169a0c2dbb59f200adaa018c9c77c755.js | 4 + ...r_169a0c2dbb59f200adaa018c9c77c755_dep.md5 | 1 + ...r_169a0c2dbb59f200adaa018c9c77c755_dep.svg | 89 + ...9a0c2dbb59f200adaa018c9c77c755_dep_org.svg | 63 + .../dir_16c85ce1c9ed281be79921a05621351c.html | 124 + .../dir_16c85ce1c9ed281be79921a05621351c.js | 5 + ...r_16c85ce1c9ed281be79921a05621351c_dep.md5 | 1 + ...r_16c85ce1c9ed281be79921a05621351c_dep.svg | 111 + ...c85ce1c9ed281be79921a05621351c_dep_org.svg | 85 + .../dir_16df77616ac816b7b694d2fa838cb084.html | 124 + .../dir_16df77616ac816b7b694d2fa838cb084.js | 5 + ...r_16df77616ac816b7b694d2fa838cb084_dep.md5 | 1 + ...r_16df77616ac816b7b694d2fa838cb084_dep.svg | 77 + ...df77616ac816b7b694d2fa838cb084_dep_org.svg | 51 + .../dir_171b4edb7086532dd11580f43732b9a7.html | 124 + .../dir_171b4edb7086532dd11580f43732b9a7.js | 5 + ...r_171b4edb7086532dd11580f43732b9a7_dep.md5 | 1 + ...r_171b4edb7086532dd11580f43732b9a7_dep.svg | 98 + ...1b4edb7086532dd11580f43732b9a7_dep_org.svg | 72 + .../dir_1733da89b05be0c2f50cc1cde7b9ef58.html | 124 + .../dir_1733da89b05be0c2f50cc1cde7b9ef58.js | 5 + ...r_1733da89b05be0c2f50cc1cde7b9ef58_dep.md5 | 1 + ...r_1733da89b05be0c2f50cc1cde7b9ef58_dep.svg | 121 + ...33da89b05be0c2f50cc1cde7b9ef58_dep_org.svg | 95 + .../dir_176ce0f9603aed617a2000f9b4957e6f.html | 125 + .../dir_176ce0f9603aed617a2000f9b4957e6f.js | 6 + ...r_176ce0f9603aed617a2000f9b4957e6f_dep.md5 | 1 + ...r_176ce0f9603aed617a2000f9b4957e6f_dep.svg | 133 + ...6ce0f9603aed617a2000f9b4957e6f_dep_org.svg | 107 + .../dir_1796197e4e8e42e555193fa38af1784a.html | 123 + .../dir_1796197e4e8e42e555193fa38af1784a.js | 4 + ...r_1796197e4e8e42e555193fa38af1784a_dep.md5 | 1 + ...r_1796197e4e8e42e555193fa38af1784a_dep.svg | 77 + ...96197e4e8e42e555193fa38af1784a_dep_org.svg | 51 + .../dir_192a153369401f20235f877504e6d5ad.html | 123 + .../dir_192a153369401f20235f877504e6d5ad.js | 4 + ...r_192a153369401f20235f877504e6d5ad_dep.md5 | 1 + ...r_192a153369401f20235f877504e6d5ad_dep.svg | 89 + ...2a153369401f20235f877504e6d5ad_dep_org.svg | 63 + .../dir_1a69cc9870158a9b1f6c74efc10aab8c.html | 123 + .../dir_1a69cc9870158a9b1f6c74efc10aab8c.js | 4 + ...r_1a69cc9870158a9b1f6c74efc10aab8c_dep.md5 | 1 + ...r_1a69cc9870158a9b1f6c74efc10aab8c_dep.svg | 89 + ...69cc9870158a9b1f6c74efc10aab8c_dep_org.svg | 63 + .../dir_1a9183b7d6910c8019921a90e48747ec.html | 123 + .../dir_1a9183b7d6910c8019921a90e48747ec.js | 4 + ...r_1a9183b7d6910c8019921a90e48747ec_dep.md5 | 1 + ...r_1a9183b7d6910c8019921a90e48747ec_dep.svg | 89 + ...9183b7d6910c8019921a90e48747ec_dep_org.svg | 63 + .../dir_1a94785b4fd07fa9f86295c704ab286b.html | 134 + .../dir_1a94785b4fd07fa9f86295c704ab286b.js | 15 + ...r_1a94785b4fd07fa9f86295c704ab286b_dep.md5 | 1 + ...r_1a94785b4fd07fa9f86295c704ab286b_dep.svg | 491 +++ ...94785b4fd07fa9f86295c704ab286b_dep_org.svg | 465 +++ .../dir_1d572fcc0f444402026b5028f7fd32af.html | 127 + .../dir_1d572fcc0f444402026b5028f7fd32af.js | 8 + ...r_1d572fcc0f444402026b5028f7fd32af_dep.md5 | 1 + ...r_1d572fcc0f444402026b5028f7fd32af_dep.svg | 77 + ...572fcc0f444402026b5028f7fd32af_dep_org.svg | 51 + .../dir_1e198c1fd495cc91ab3a39b5d8872c96.html | 126 + .../dir_1e198c1fd495cc91ab3a39b5d8872c96.js | 7 + ...r_1e198c1fd495cc91ab3a39b5d8872c96_dep.md5 | 1 + ...r_1e198c1fd495cc91ab3a39b5d8872c96_dep.svg | 77 + ...198c1fd495cc91ab3a39b5d8872c96_dep_org.svg | 51 + .../dir_1f3faa83e2fcedf83b0357f6cc73c1df.html | 125 + .../dir_1f3faa83e2fcedf83b0357f6cc73c1df.js | 6 + ...r_1f3faa83e2fcedf83b0357f6cc73c1df_dep.md5 | 1 + ...r_1f3faa83e2fcedf83b0357f6cc73c1df_dep.svg | 77 + ...3faa83e2fcedf83b0357f6cc73c1df_dep_org.svg | 51 + .../dir_21e1fdd2586e76aa0db295cc144c9a55.html | 124 + .../dir_21e1fdd2586e76aa0db295cc144c9a55.js | 5 + ...r_21e1fdd2586e76aa0db295cc144c9a55_dep.md5 | 1 + ...r_21e1fdd2586e76aa0db295cc144c9a55_dep.svg | 77 + ...e1fdd2586e76aa0db295cc144c9a55_dep_org.svg | 51 + .../dir_23982065b3648efc06e84985cbc62760.html | 123 + .../dir_23982065b3648efc06e84985cbc62760.js | 4 + ...r_23982065b3648efc06e84985cbc62760_dep.md5 | 1 + ...r_23982065b3648efc06e84985cbc62760_dep.svg | 77 + ...982065b3648efc06e84985cbc62760_dep_org.svg | 51 + .../dir_2606190ade5f42f0803fb562b0f2687e.html | 135 + .../dir_2606190ade5f42f0803fb562b0f2687e.js | 13 + ...r_2606190ade5f42f0803fb562b0f2687e_dep.md5 | 1 + ...r_2606190ade5f42f0803fb562b0f2687e_dep.svg | 150 + ...06190ade5f42f0803fb562b0f2687e_dep_org.svg | 124 + .../dir_2617388a3e5694eabf03217543075dbd.html | 123 + .../dir_2617388a3e5694eabf03217543075dbd.js | 4 + ...r_2617388a3e5694eabf03217543075dbd_dep.md5 | 1 + ...r_2617388a3e5694eabf03217543075dbd_dep.svg | 77 + ...17388a3e5694eabf03217543075dbd_dep_org.svg | 51 + .../dir_28e9e32f9d89d36fc38d311fa477d5e9.html | 124 + .../dir_28e9e32f9d89d36fc38d311fa477d5e9.js | 5 + ...r_28e9e32f9d89d36fc38d311fa477d5e9_dep.md5 | 1 + ...r_28e9e32f9d89d36fc38d311fa477d5e9_dep.svg | 99 + ...e9e32f9d89d36fc38d311fa477d5e9_dep_org.svg | 73 + .../dir_2a0602816c705fc298e0ba805dc0d70a.html | 123 + .../dir_2a0602816c705fc298e0ba805dc0d70a.js | 4 + ...r_2a0602816c705fc298e0ba805dc0d70a_dep.md5 | 1 + ...r_2a0602816c705fc298e0ba805dc0d70a_dep.svg | 89 + ...0602816c705fc298e0ba805dc0d70a_dep_org.svg | 63 + .../dir_2a71079c14d229ac9e67921fce4ad634.html | 123 + .../dir_2a71079c14d229ac9e67921fce4ad634.js | 4 + ...r_2a71079c14d229ac9e67921fce4ad634_dep.md5 | 1 + ...r_2a71079c14d229ac9e67921fce4ad634_dep.svg | 77 + ...71079c14d229ac9e67921fce4ad634_dep_org.svg | 51 + .../dir_2b0cccbe49e0991f22aeb1922cb13a96.html | 124 + .../dir_2b0cccbe49e0991f22aeb1922cb13a96.js | 5 + ...r_2b0cccbe49e0991f22aeb1922cb13a96_dep.md5 | 1 + ...r_2b0cccbe49e0991f22aeb1922cb13a96_dep.svg | 99 + ...0cccbe49e0991f22aeb1922cb13a96_dep_org.svg | 73 + .../dir_2b34506dc3510c22337948b29ab07162.html | 124 + .../dir_2b34506dc3510c22337948b29ab07162.js | 5 + ...r_2b34506dc3510c22337948b29ab07162_dep.md5 | 1 + ...r_2b34506dc3510c22337948b29ab07162_dep.svg | 111 + ...34506dc3510c22337948b29ab07162_dep_org.svg | 85 + .../dir_2b4b44aa9ff3905b789a45cda1fd0906.html | 124 + .../dir_2b4b44aa9ff3905b789a45cda1fd0906.js | 5 + ...r_2b4b44aa9ff3905b789a45cda1fd0906_dep.md5 | 1 + ...r_2b4b44aa9ff3905b789a45cda1fd0906_dep.svg | 77 + ...4b44aa9ff3905b789a45cda1fd0906_dep_org.svg | 51 + .../dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.html | 123 + .../dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.js | 4 + ...r_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.md5 | 1 + ...r_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.svg | 77 + ...87e73d4416afbe0bda3bbfcb2d5dcf_dep_org.svg | 51 + .../dir_2ca61fe906f0261fd79faabdb72d2de8.html | 129 + .../dir_2ca61fe906f0261fd79faabdb72d2de8.js | 10 + ...r_2ca61fe906f0261fd79faabdb72d2de8_dep.md5 | 1 + ...r_2ca61fe906f0261fd79faabdb72d2de8_dep.svg | 55 + ...a61fe906f0261fd79faabdb72d2de8_dep_org.svg | 29 + .../dir_2cd344f6e971021b7e2a39c1c92a2e49.html | 124 + .../dir_2cd344f6e971021b7e2a39c1c92a2e49.js | 5 + ...r_2cd344f6e971021b7e2a39c1c92a2e49_dep.md5 | 1 + ...r_2cd344f6e971021b7e2a39c1c92a2e49_dep.svg | 99 + ...d344f6e971021b7e2a39c1c92a2e49_dep_org.svg | 73 + .../dir_2d55a8cdc89415d0ec989f7182a0eea0.html | 123 + .../dir_2d55a8cdc89415d0ec989f7182a0eea0.js | 4 + ...r_2d55a8cdc89415d0ec989f7182a0eea0_dep.md5 | 1 + ...r_2d55a8cdc89415d0ec989f7182a0eea0_dep.svg | 99 + ...55a8cdc89415d0ec989f7182a0eea0_dep_org.svg | 73 + .../dir_2e6515e08f756e255a623378cbf0a6d0.html | 126 + .../dir_2e6515e08f756e255a623378cbf0a6d0.js | 7 + ...r_2e6515e08f756e255a623378cbf0a6d0_dep.md5 | 1 + ...r_2e6515e08f756e255a623378cbf0a6d0_dep.svg | 216 ++ ...6515e08f756e255a623378cbf0a6d0_dep_org.svg | 190 + .../dir_2ede62ba609a13817930229bff031944.html | 123 + .../dir_2ede62ba609a13817930229bff031944.js | 4 + ...r_2ede62ba609a13817930229bff031944_dep.md5 | 1 + ...r_2ede62ba609a13817930229bff031944_dep.svg | 77 + ...de62ba609a13817930229bff031944_dep_org.svg | 51 + .../dir_33fba1519ab5d9fc7528a1e4e18a1727.html | 123 + .../dir_33fba1519ab5d9fc7528a1e4e18a1727.js | 4 + ...r_33fba1519ab5d9fc7528a1e4e18a1727_dep.md5 | 1 + ...r_33fba1519ab5d9fc7528a1e4e18a1727_dep.svg | 89 + ...fba1519ab5d9fc7528a1e4e18a1727_dep_org.svg | 63 + .../dir_3517ac14e10456bd2d5137b8d057f895.html | 123 + .../dir_3517ac14e10456bd2d5137b8d057f895.js | 4 + ...r_3517ac14e10456bd2d5137b8d057f895_dep.md5 | 1 + ...r_3517ac14e10456bd2d5137b8d057f895_dep.svg | 77 + ...17ac14e10456bd2d5137b8d057f895_dep_org.svg | 51 + .../dir_3630efa296d794a506d697d26fb77c32.html | 123 + .../dir_3630efa296d794a506d697d26fb77c32.js | 4 + ...r_3630efa296d794a506d697d26fb77c32_dep.md5 | 1 + ...r_3630efa296d794a506d697d26fb77c32_dep.svg | 55 + ...30efa296d794a506d697d26fb77c32_dep_org.svg | 29 + .../dir_377bd9e47fb4c98a811a4c55a1e8babf.html | 125 + .../dir_377bd9e47fb4c98a811a4c55a1e8babf.js | 6 + ...r_377bd9e47fb4c98a811a4c55a1e8babf_dep.md5 | 1 + ...r_377bd9e47fb4c98a811a4c55a1e8babf_dep.svg | 121 + ...7bd9e47fb4c98a811a4c55a1e8babf_dep_org.svg | 95 + .../dir_3ad10b8bedbf41540071c116f87e7818.html | 123 + .../dir_3ad10b8bedbf41540071c116f87e7818.js | 4 + ...r_3ad10b8bedbf41540071c116f87e7818_dep.md5 | 1 + ...r_3ad10b8bedbf41540071c116f87e7818_dep.svg | 121 + ...d10b8bedbf41540071c116f87e7818_dep_org.svg | 95 + .../dir_3d8f91d165c61940606cc67fb2b386a2.html | 124 + .../dir_3d8f91d165c61940606cc67fb2b386a2.js | 5 + ...r_3d8f91d165c61940606cc67fb2b386a2_dep.md5 | 1 + ...r_3d8f91d165c61940606cc67fb2b386a2_dep.svg | 89 + ...8f91d165c61940606cc67fb2b386a2_dep_org.svg | 63 + .../dir_3e4712a38c94aeee934d4b83943de42c.html | 123 + .../dir_3e4712a38c94aeee934d4b83943de42c.js | 4 + ...r_3e4712a38c94aeee934d4b83943de42c_dep.md5 | 1 + ...r_3e4712a38c94aeee934d4b83943de42c_dep.svg | 77 + ...4712a38c94aeee934d4b83943de42c_dep_org.svg | 51 + .../dir_3fd005a8b380f1a21303a2afe19168eb.html | 123 + .../dir_3fd005a8b380f1a21303a2afe19168eb.js | 4 + ...r_3fd005a8b380f1a21303a2afe19168eb_dep.md5 | 1 + ...r_3fd005a8b380f1a21303a2afe19168eb_dep.svg | 133 + ...d005a8b380f1a21303a2afe19168eb_dep_org.svg | 107 + .../dir_3fd26304af2c2aef8acd2c6ee8269bcd.html | 124 + .../dir_3fd26304af2c2aef8acd2c6ee8269bcd.js | 5 + ...r_3fd26304af2c2aef8acd2c6ee8269bcd_dep.md5 | 1 + ...r_3fd26304af2c2aef8acd2c6ee8269bcd_dep.svg | 111 + ...d26304af2c2aef8acd2c6ee8269bcd_dep_org.svg | 85 + .../dir_40243425f75a419aab63d36e8e82036f.html | 128 + .../dir_40243425f75a419aab63d36e8e82036f.js | 9 + ...r_40243425f75a419aab63d36e8e82036f_dep.md5 | 1 + ...r_40243425f75a419aab63d36e8e82036f_dep.svg | 99 + ...243425f75a419aab63d36e8e82036f_dep_org.svg | 73 + .../dir_409f97388efe006bc3438b95e9edef48.html | 126 + .../dir_409f97388efe006bc3438b95e9edef48.js | 7 + ...r_409f97388efe006bc3438b95e9edef48_dep.md5 | 1 + ...r_409f97388efe006bc3438b95e9edef48_dep.svg | 125 + ...9f97388efe006bc3438b95e9edef48_dep_org.svg | 99 + .../dir_40de81f340cbaee2d58ba5dafcdb1bc7.html | 124 + .../dir_40de81f340cbaee2d58ba5dafcdb1bc7.js | 5 + ...r_40de81f340cbaee2d58ba5dafcdb1bc7_dep.md5 | 1 + ...r_40de81f340cbaee2d58ba5dafcdb1bc7_dep.svg | 99 + ...de81f340cbaee2d58ba5dafcdb1bc7_dep_org.svg | 73 + .../dir_42be8631e0eff9e3824673f44965e076.html | 124 + .../dir_42be8631e0eff9e3824673f44965e076.js | 5 + ...r_42be8631e0eff9e3824673f44965e076_dep.md5 | 1 + ...r_42be8631e0eff9e3824673f44965e076_dep.svg | 111 + ...be8631e0eff9e3824673f44965e076_dep_org.svg | 85 + .../dir_43b440e8c9d7b15ca688aa8c8e594f1b.html | 127 + .../dir_43b440e8c9d7b15ca688aa8c8e594f1b.js | 5 + ...r_43b440e8c9d7b15ca688aa8c8e594f1b_dep.md5 | 1 + ...r_43b440e8c9d7b15ca688aa8c8e594f1b_dep.svg | 102 + ...b440e8c9d7b15ca688aa8c8e594f1b_dep_org.svg | 76 + .../dir_43ee144b145d28ede80d7406234067ed.html | 123 + .../dir_43ee144b145d28ede80d7406234067ed.js | 4 + ...r_43ee144b145d28ede80d7406234067ed_dep.md5 | 1 + ...r_43ee144b145d28ede80d7406234067ed_dep.svg | 77 + ...ee144b145d28ede80d7406234067ed_dep_org.svg | 51 + .../dir_4675de09a54f36e152c3aa8af80b2677.html | 124 + .../dir_4675de09a54f36e152c3aa8af80b2677.js | 5 + ...r_4675de09a54f36e152c3aa8af80b2677_dep.md5 | 1 + ...r_4675de09a54f36e152c3aa8af80b2677_dep.svg | 55 + ...75de09a54f36e152c3aa8af80b2677_dep_org.svg | 29 + .../dir_4cfd07f72260eac2073c61db9b1badd3.html | 124 + .../dir_4cfd07f72260eac2073c61db9b1badd3.js | 5 + ...r_4cfd07f72260eac2073c61db9b1badd3_dep.md5 | 1 + ...r_4cfd07f72260eac2073c61db9b1badd3_dep.svg | 77 + ...fd07f72260eac2073c61db9b1badd3_dep_org.svg | 51 + .../dir_4d36d9e87737a2136b2d2e486143979d.html | 125 + .../dir_4d36d9e87737a2136b2d2e486143979d.js | 6 + ...r_4d36d9e87737a2136b2d2e486143979d_dep.md5 | 1 + ...r_4d36d9e87737a2136b2d2e486143979d_dep.svg | 133 + ...36d9e87737a2136b2d2e486143979d_dep_org.svg | 107 + .../dir_4d5843eee21c7cebfad28c6fb5869b90.html | 124 + .../dir_4d5843eee21c7cebfad28c6fb5869b90.js | 5 + ...r_4d5843eee21c7cebfad28c6fb5869b90_dep.md5 | 1 + ...r_4d5843eee21c7cebfad28c6fb5869b90_dep.svg | 89 + ...5843eee21c7cebfad28c6fb5869b90_dep_org.svg | 63 + .../dir_4e5ef387738f2f40c2e47c11e8e98eee.html | 123 + .../dir_4e5ef387738f2f40c2e47c11e8e98eee.js | 4 + ...r_4e5ef387738f2f40c2e47c11e8e98eee_dep.md5 | 1 + ...r_4e5ef387738f2f40c2e47c11e8e98eee_dep.svg | 89 + ...5ef387738f2f40c2e47c11e8e98eee_dep_org.svg | 63 + .../dir_503b7d37e1488242e5075cc003fe4360.html | 126 + .../dir_503b7d37e1488242e5075cc003fe4360.js | 7 + ...r_503b7d37e1488242e5075cc003fe4360_dep.md5 | 1 + ...r_503b7d37e1488242e5075cc003fe4360_dep.svg | 77 + ...3b7d37e1488242e5075cc003fe4360_dep_org.svg | 51 + .../dir_50d20af8260b5fd9fd6f487ec1786b80.html | 124 + .../dir_50d20af8260b5fd9fd6f487ec1786b80.js | 5 + ...r_50d20af8260b5fd9fd6f487ec1786b80_dep.md5 | 1 + ...r_50d20af8260b5fd9fd6f487ec1786b80_dep.svg | 77 + ...d20af8260b5fd9fd6f487ec1786b80_dep_org.svg | 51 + .../dir_5680bc0d3af986d470bfa6c1499bfa1e.html | 125 + .../dir_5680bc0d3af986d470bfa6c1499bfa1e.js | 6 + ...r_5680bc0d3af986d470bfa6c1499bfa1e_dep.md5 | 1 + ...r_5680bc0d3af986d470bfa6c1499bfa1e_dep.svg | 77 + ...80bc0d3af986d470bfa6c1499bfa1e_dep_org.svg | 51 + .../dir_5a9612cb5743a88a5354e5e317c96db5.html | 126 + .../dir_5a9612cb5743a88a5354e5e317c96db5.js | 7 + ...r_5a9612cb5743a88a5354e5e317c96db5_dep.md5 | 1 + ...r_5a9612cb5743a88a5354e5e317c96db5_dep.svg | 155 + ...9612cb5743a88a5354e5e317c96db5_dep_org.svg | 129 + .../dir_5b18cd7a18c6dd121c3886b4ca53be64.html | 123 + .../dir_5b18cd7a18c6dd121c3886b4ca53be64.js | 4 + ...r_5b18cd7a18c6dd121c3886b4ca53be64_dep.md5 | 1 + ...r_5b18cd7a18c6dd121c3886b4ca53be64_dep.svg | 89 + ...18cd7a18c6dd121c3886b4ca53be64_dep_org.svg | 63 + .../dir_5b81275681346a9651ba0069dadde207.html | 124 + .../dir_5b81275681346a9651ba0069dadde207.js | 5 + ...r_5b81275681346a9651ba0069dadde207_dep.md5 | 1 + ...r_5b81275681346a9651ba0069dadde207_dep.svg | 77 + ...81275681346a9651ba0069dadde207_dep_org.svg | 51 + .../dir_5c43b1cda211d87979dcbe28c41ba00d.html | 123 + .../dir_5c43b1cda211d87979dcbe28c41ba00d.js | 4 + ...r_5c43b1cda211d87979dcbe28c41ba00d_dep.md5 | 1 + ...r_5c43b1cda211d87979dcbe28c41ba00d_dep.svg | 121 + ...43b1cda211d87979dcbe28c41ba00d_dep_org.svg | 95 + .../dir_5c982d53a68cdbcd421152b4020263a9.html | 123 + .../dir_5c982d53a68cdbcd421152b4020263a9.js | 4 + ...r_5c982d53a68cdbcd421152b4020263a9_dep.md5 | 1 + ...r_5c982d53a68cdbcd421152b4020263a9_dep.svg | 69 + ...982d53a68cdbcd421152b4020263a9_dep_org.svg | 43 + .../dir_5ce06cfd77962876b8da27c1fc0c8521.html | 124 + .../dir_5ce06cfd77962876b8da27c1fc0c8521.js | 5 + ...r_5ce06cfd77962876b8da27c1fc0c8521_dep.md5 | 1 + ...r_5ce06cfd77962876b8da27c1fc0c8521_dep.svg | 77 + ...e06cfd77962876b8da27c1fc0c8521_dep_org.svg | 51 + .../dir_5df7d12836dc4204a1a798d0831431eb.html | 123 + .../dir_5df7d12836dc4204a1a798d0831431eb.js | 4 + ...r_5df7d12836dc4204a1a798d0831431eb_dep.md5 | 1 + ...r_5df7d12836dc4204a1a798d0831431eb_dep.svg | 77 + ...f7d12836dc4204a1a798d0831431eb_dep_org.svg | 51 + .../dir_5e17e3ea338fbcad436fc14f3287f6d6.html | 123 + .../dir_5e17e3ea338fbcad436fc14f3287f6d6.js | 4 + ...r_5e17e3ea338fbcad436fc14f3287f6d6_dep.md5 | 1 + ...r_5e17e3ea338fbcad436fc14f3287f6d6_dep.svg | 77 + ...17e3ea338fbcad436fc14f3287f6d6_dep_org.svg | 51 + .../dir_5e963e75a20978d5a9f10b264408e6e5.html | 124 + .../dir_5e963e75a20978d5a9f10b264408e6e5.js | 5 + ...r_5e963e75a20978d5a9f10b264408e6e5_dep.md5 | 1 + ...r_5e963e75a20978d5a9f10b264408e6e5_dep.svg | 77 + ...963e75a20978d5a9f10b264408e6e5_dep_org.svg | 51 + .../dir_5f2e64e9fe690f961d00e914be24c898.html | 127 + .../dir_5f2e64e9fe690f961d00e914be24c898.js | 8 + ...r_5f2e64e9fe690f961d00e914be24c898_dep.md5 | 1 + ...r_5f2e64e9fe690f961d00e914be24c898_dep.svg | 216 ++ ...2e64e9fe690f961d00e914be24c898_dep_org.svg | 190 + .../dir_5f83482eb30c9259299e8dd4193d7180.html | 123 + .../dir_5f83482eb30c9259299e8dd4193d7180.js | 4 + ...r_5f83482eb30c9259299e8dd4193d7180_dep.md5 | 1 + ...r_5f83482eb30c9259299e8dd4193d7180_dep.svg | 77 + ...83482eb30c9259299e8dd4193d7180_dep_org.svg | 51 + .../dir_5fa5d6f670414422007a5925e84ae702.html | 126 + .../dir_5fa5d6f670414422007a5925e84ae702.js | 7 + ...r_5fa5d6f670414422007a5925e84ae702_dep.md5 | 1 + ...r_5fa5d6f670414422007a5925e84ae702_dep.svg | 55 + ...a5d6f670414422007a5925e84ae702_dep_org.svg | 29 + .../dir_5fc0e55c3fa90afc87691a4c1dff591d.html | 124 + .../dir_5fc0e55c3fa90afc87691a4c1dff591d.js | 5 + ...r_5fc0e55c3fa90afc87691a4c1dff591d_dep.md5 | 1 + ...r_5fc0e55c3fa90afc87691a4c1dff591d_dep.svg | 77 + ...c0e55c3fa90afc87691a4c1dff591d_dep_org.svg | 51 + .../dir_6452a9bf1971d09ce0c2e6a86e350069.html | 126 + .../dir_6452a9bf1971d09ce0c2e6a86e350069.js | 7 + ...r_6452a9bf1971d09ce0c2e6a86e350069_dep.md5 | 1 + ...r_6452a9bf1971d09ce0c2e6a86e350069_dep.svg | 203 ++ ...52a9bf1971d09ce0c2e6a86e350069_dep_org.svg | 177 + .../dir_659a621b8518330e2405891a2cbe2de4.html | 123 + .../dir_659a621b8518330e2405891a2cbe2de4.js | 4 + ...r_659a621b8518330e2405891a2cbe2de4_dep.md5 | 1 + ...r_659a621b8518330e2405891a2cbe2de4_dep.svg | 89 + ...9a621b8518330e2405891a2cbe2de4_dep_org.svg | 63 + .../dir_65b265e786231b2f269c91bc2dcd9462.html | 124 + .../dir_65b265e786231b2f269c91bc2dcd9462.js | 5 + ...r_65b265e786231b2f269c91bc2dcd9462_dep.md5 | 1 + ...r_65b265e786231b2f269c91bc2dcd9462_dep.svg | 77 + ...b265e786231b2f269c91bc2dcd9462_dep_org.svg | 51 + .../dir_65ea5eca559d12155f129d4142988850.html | 125 + .../dir_65ea5eca559d12155f129d4142988850.js | 6 + ...r_65ea5eca559d12155f129d4142988850_dep.md5 | 1 + ...r_65ea5eca559d12155f129d4142988850_dep.svg | 133 + ...ea5eca559d12155f129d4142988850_dep_org.svg | 107 + .../dir_675ecede1307f57d5bf686746716e89a.html | 123 + .../dir_675ecede1307f57d5bf686746716e89a.js | 4 + ...r_675ecede1307f57d5bf686746716e89a_dep.md5 | 1 + ...r_675ecede1307f57d5bf686746716e89a_dep.svg | 77 + ...5ecede1307f57d5bf686746716e89a_dep_org.svg | 51 + .../dir_67c4e8b77b4357a93ff15d0d28548721.html | 129 + .../dir_67c4e8b77b4357a93ff15d0d28548721.js | 10 + ...r_67c4e8b77b4357a93ff15d0d28548721_dep.md5 | 1 + ...r_67c4e8b77b4357a93ff15d0d28548721_dep.svg | 365 ++ ...c4e8b77b4357a93ff15d0d28548721_dep_org.svg | 282 ++ .../dir_68ca4758199d84990e1ba5857830e815.html | 123 + .../dir_68ca4758199d84990e1ba5857830e815.js | 4 + ...r_68ca4758199d84990e1ba5857830e815_dep.md5 | 1 + ...r_68ca4758199d84990e1ba5857830e815_dep.svg | 121 + ...ca4758199d84990e1ba5857830e815_dep_org.svg | 95 + .../dir_6964b7e33bb3bd939cb0a354e6a2bedc.html | 123 + .../dir_6964b7e33bb3bd939cb0a354e6a2bedc.js | 4 + ...r_6964b7e33bb3bd939cb0a354e6a2bedc_dep.md5 | 1 + ...r_6964b7e33bb3bd939cb0a354e6a2bedc_dep.svg | 77 + ...64b7e33bb3bd939cb0a354e6a2bedc_dep_org.svg | 51 + .../dir_6aa31ae276fd8d589dada5e04a4739f2.html | 123 + .../dir_6aa31ae276fd8d589dada5e04a4739f2.js | 4 + ...r_6aa31ae276fd8d589dada5e04a4739f2_dep.md5 | 1 + ...r_6aa31ae276fd8d589dada5e04a4739f2_dep.svg | 55 + ...a31ae276fd8d589dada5e04a4739f2_dep_org.svg | 29 + .../dir_6ab96501580168da92dbadcbc9b254ca.html | 124 + .../dir_6ab96501580168da92dbadcbc9b254ca.js | 5 + ...r_6ab96501580168da92dbadcbc9b254ca_dep.md5 | 1 + ...r_6ab96501580168da92dbadcbc9b254ca_dep.svg | 98 + ...b96501580168da92dbadcbc9b254ca_dep_org.svg | 72 + .../dir_6b43c4cb499058485fe69351829ae7a4.html | 129 + .../dir_6b43c4cb499058485fe69351829ae7a4.js | 10 + ...r_6b43c4cb499058485fe69351829ae7a4_dep.md5 | 1 + ...r_6b43c4cb499058485fe69351829ae7a4_dep.svg | 55 + ...43c4cb499058485fe69351829ae7a4_dep_org.svg | 29 + .../dir_6bb6fdb490c8492b5ec32700edc7ffd3.html | 124 + .../dir_6bb6fdb490c8492b5ec32700edc7ffd3.js | 5 + ...r_6bb6fdb490c8492b5ec32700edc7ffd3_dep.md5 | 1 + ...r_6bb6fdb490c8492b5ec32700edc7ffd3_dep.svg | 165 + ...b6fdb490c8492b5ec32700edc7ffd3_dep_org.svg | 139 + .../dir_6c1a363c3aada72d365db18498017222.html | 123 + .../dir_6c1a363c3aada72d365db18498017222.js | 4 + ...r_6c1a363c3aada72d365db18498017222_dep.md5 | 1 + ...r_6c1a363c3aada72d365db18498017222_dep.svg | 77 + ...1a363c3aada72d365db18498017222_dep_org.svg | 51 + .../dir_6d24da5b1da7789edd0dcd89dc1dbcb7.html | 123 + .../dir_6d24da5b1da7789edd0dcd89dc1dbcb7.js | 4 + ...r_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.md5 | 1 + ...r_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.svg | 89 + ...24da5b1da7789edd0dcd89dc1dbcb7_dep_org.svg | 63 + .../dir_6f0282a56182e11784085c9051410321.html | 124 + .../dir_6f0282a56182e11784085c9051410321.js | 5 + ...r_6f0282a56182e11784085c9051410321_dep.md5 | 1 + ...r_6f0282a56182e11784085c9051410321_dep.svg | 146 + ...0282a56182e11784085c9051410321_dep_org.svg | 120 + .../dir_6fb21038c3f6fdc5673bbe8abfbcbd03.html | 123 + .../dir_6fb21038c3f6fdc5673bbe8abfbcbd03.js | 4 + ...r_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.md5 | 1 + ...r_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.svg | 77 + ...b21038c3f6fdc5673bbe8abfbcbd03_dep_org.svg | 51 + .../dir_7148f79eeb1e919c3881defc22882cd2.html | 123 + .../dir_7148f79eeb1e919c3881defc22882cd2.js | 4 + ...r_7148f79eeb1e919c3881defc22882cd2_dep.md5 | 1 + ...r_7148f79eeb1e919c3881defc22882cd2_dep.svg | 89 + ...48f79eeb1e919c3881defc22882cd2_dep_org.svg | 63 + .../dir_733999795ec05e1d47dd8f5326556154.html | 124 + .../dir_733999795ec05e1d47dd8f5326556154.js | 5 + ...r_733999795ec05e1d47dd8f5326556154_dep.md5 | 1 + ...r_733999795ec05e1d47dd8f5326556154_dep.svg | 111 + ...3999795ec05e1d47dd8f5326556154_dep_org.svg | 85 + .../dir_762006535547d49f232d31a6fa06d2f9.html | 123 + .../dir_762006535547d49f232d31a6fa06d2f9.js | 4 + ...r_762006535547d49f232d31a6fa06d2f9_dep.md5 | 1 + ...r_762006535547d49f232d31a6fa06d2f9_dep.svg | 89 + ...2006535547d49f232d31a6fa06d2f9_dep_org.svg | 63 + .../dir_76554f5b8bdd77616bd74e5ae12549ad.html | 123 + .../dir_76554f5b8bdd77616bd74e5ae12549ad.js | 4 + ...r_76554f5b8bdd77616bd74e5ae12549ad_dep.md5 | 1 + ...r_76554f5b8bdd77616bd74e5ae12549ad_dep.svg | 77 + ...554f5b8bdd77616bd74e5ae12549ad_dep_org.svg | 51 + .../dir_76d6b2a67278bf47ae5e1ac8af0a7d40.html | 123 + .../dir_76d6b2a67278bf47ae5e1ac8af0a7d40.js | 4 + ...r_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.md5 | 1 + ...r_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.svg | 55 + ...d6b2a67278bf47ae5e1ac8af0a7d40_dep_org.svg | 29 + .../dir_7ad9ee17700ac0d9180b04f3f3ad7f12.html | 123 + .../dir_7ad9ee17700ac0d9180b04f3f3ad7f12.js | 4 + ...r_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.md5 | 1 + ...r_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.svg | 77 + ...d9ee17700ac0d9180b04f3f3ad7f12_dep_org.svg | 51 + .../dir_7b3674b38c8d8970266e0a050a170acc.html | 124 + .../dir_7b3674b38c8d8970266e0a050a170acc.js | 5 + ...r_7b3674b38c8d8970266e0a050a170acc_dep.md5 | 1 + ...r_7b3674b38c8d8970266e0a050a170acc_dep.svg | 77 + ...3674b38c8d8970266e0a050a170acc_dep_org.svg | 51 + .../dir_7b64b14aeba8b5bbb3841d17f1f0cd10.html | 125 + .../dir_7b64b14aeba8b5bbb3841d17f1f0cd10.js | 6 + ...r_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.md5 | 1 + ...r_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.svg | 111 + ...64b14aeba8b5bbb3841d17f1f0cd10_dep_org.svg | 85 + .../dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.html | 124 + .../dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.js | 5 + ...r_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.md5 | 1 + ...r_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.svg | 111 + ...cf0c48f6a40a31b8e32f58e6b3bd59_dep_org.svg | 85 + .../dir_7e3beb66e1044e6769774984c2d38ab1.html | 123 + .../dir_7e3beb66e1044e6769774984c2d38ab1.js | 4 + ...r_7e3beb66e1044e6769774984c2d38ab1_dep.md5 | 1 + ...r_7e3beb66e1044e6769774984c2d38ab1_dep.svg | 133 + ...3beb66e1044e6769774984c2d38ab1_dep_org.svg | 107 + .../dir_80d86c895ffa96f241d1165825d40406.html | 123 + .../dir_80d86c895ffa96f241d1165825d40406.js | 4 + ...r_80d86c895ffa96f241d1165825d40406_dep.md5 | 1 + ...r_80d86c895ffa96f241d1165825d40406_dep.svg | 77 + ...d86c895ffa96f241d1165825d40406_dep_org.svg | 51 + .../dir_8223604c15cd95bf81d4d8af6d40e86f.html | 124 + .../dir_8223604c15cd95bf81d4d8af6d40e86f.js | 5 + ...r_8223604c15cd95bf81d4d8af6d40e86f_dep.md5 | 1 + ...r_8223604c15cd95bf81d4d8af6d40e86f_dep.svg | 111 + ...23604c15cd95bf81d4d8af6d40e86f_dep_org.svg | 85 + .../dir_8344dc8b4c48bff4b3b7e252d5a5e15c.html | 123 + .../dir_8344dc8b4c48bff4b3b7e252d5a5e15c.js | 4 + ...r_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.md5 | 1 + ...r_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.svg | 77 + ...44dc8b4c48bff4b3b7e252d5a5e15c_dep_org.svg | 51 + .../dir_86cc9db09b207ba858ad95ae6c2160e7.html | 126 + .../dir_86cc9db09b207ba858ad95ae6c2160e7.js | 7 + ...r_86cc9db09b207ba858ad95ae6c2160e7_dep.md5 | 1 + ...r_86cc9db09b207ba858ad95ae6c2160e7_dep.svg | 212 ++ ...cc9db09b207ba858ad95ae6c2160e7_dep_org.svg | 129 + .../dir_87c389725da715c492868deacfc59ee9.html | 123 + .../dir_87c389725da715c492868deacfc59ee9.js | 4 + ...r_87c389725da715c492868deacfc59ee9_dep.md5 | 1 + ...r_87c389725da715c492868deacfc59ee9_dep.svg | 99 + ...c389725da715c492868deacfc59ee9_dep_org.svg | 73 + .../dir_88263a19b39727c9a1698c6c2734b927.html | 123 + .../dir_88263a19b39727c9a1698c6c2734b927.js | 4 + ...r_88263a19b39727c9a1698c6c2734b927_dep.md5 | 1 + ...r_88263a19b39727c9a1698c6c2734b927_dep.svg | 77 + ...263a19b39727c9a1698c6c2734b927_dep_org.svg | 51 + .../dir_89e58584540eba160416052686348f24.html | 124 + .../dir_89e58584540eba160416052686348f24.js | 5 + ...r_89e58584540eba160416052686348f24_dep.md5 | 1 + ...r_89e58584540eba160416052686348f24_dep.svg | 55 + ...e58584540eba160416052686348f24_dep_org.svg | 29 + .../dir_8b8499bbd42fd5ef51b6750e8611bcb7.html | 123 + .../dir_8b8499bbd42fd5ef51b6750e8611bcb7.js | 4 + ...r_8b8499bbd42fd5ef51b6750e8611bcb7_dep.md5 | 1 + ...r_8b8499bbd42fd5ef51b6750e8611bcb7_dep.svg | 77 + ...8499bbd42fd5ef51b6750e8611bcb7_dep_org.svg | 51 + .../dir_8d588244d360fc31a07155830aed54ff.html | 123 + .../dir_8d588244d360fc31a07155830aed54ff.js | 4 + ...r_8d588244d360fc31a07155830aed54ff_dep.md5 | 1 + ...r_8d588244d360fc31a07155830aed54ff_dep.svg | 77 + ...588244d360fc31a07155830aed54ff_dep_org.svg | 51 + .../dir_8ee5fae4fc8aa1304b69487a7107e7d6.html | 124 + .../dir_8ee5fae4fc8aa1304b69487a7107e7d6.js | 5 + ...r_8ee5fae4fc8aa1304b69487a7107e7d6_dep.md5 | 1 + ...r_8ee5fae4fc8aa1304b69487a7107e7d6_dep.svg | 77 + ...e5fae4fc8aa1304b69487a7107e7d6_dep_org.svg | 51 + .../dir_9068b9f7017b328778a01ee864e105ae.html | 123 + .../dir_9068b9f7017b328778a01ee864e105ae.js | 4 + ...r_9068b9f7017b328778a01ee864e105ae_dep.md5 | 1 + ...r_9068b9f7017b328778a01ee864e105ae_dep.svg | 77 + ...68b9f7017b328778a01ee864e105ae_dep_org.svg | 51 + .../dir_91518133c87f157d4a81c3f6c0b097d0.html | 128 + .../dir_91518133c87f157d4a81c3f6c0b097d0.js | 9 + ...r_91518133c87f157d4a81c3f6c0b097d0_dep.md5 | 1 + ...r_91518133c87f157d4a81c3f6c0b097d0_dep.svg | 99 + ...518133c87f157d4a81c3f6c0b097d0_dep_org.svg | 73 + .../dir_91943268b81177f3c28b334e969dc816.html | 128 + .../dir_91943268b81177f3c28b334e969dc816.js | 9 + ...r_91943268b81177f3c28b334e969dc816_dep.md5 | 1 + ...r_91943268b81177f3c28b334e969dc816_dep.svg | 121 + ...943268b81177f3c28b334e969dc816_dep_org.svg | 95 + .../dir_91bbb9ae7da8dd492f40f49dcee93803.html | 124 + .../dir_91bbb9ae7da8dd492f40f49dcee93803.js | 5 + ...r_91bbb9ae7da8dd492f40f49dcee93803_dep.md5 | 1 + ...r_91bbb9ae7da8dd492f40f49dcee93803_dep.svg | 77 + ...bbb9ae7da8dd492f40f49dcee93803_dep_org.svg | 51 + .../dir_921d70230c427007d8b7307843a5136d.html | 124 + .../dir_921d70230c427007d8b7307843a5136d.js | 5 + ...r_921d70230c427007d8b7307843a5136d_dep.md5 | 1 + ...r_921d70230c427007d8b7307843a5136d_dep.svg | 89 + ...1d70230c427007d8b7307843a5136d_dep_org.svg | 63 + .../dir_945d2b1bad7511c32093cc54649ad1cb.html | 123 + .../dir_945d2b1bad7511c32093cc54649ad1cb.js | 4 + ...r_945d2b1bad7511c32093cc54649ad1cb_dep.md5 | 1 + ...r_945d2b1bad7511c32093cc54649ad1cb_dep.svg | 89 + ...5d2b1bad7511c32093cc54649ad1cb_dep_org.svg | 63 + .../dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.html | 123 + .../dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.js | 4 + ...r_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.md5 | 1 + ...r_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.svg | 77 + ...d9a18ab0f3ad2f015058c2f9d5b4c2_dep_org.svg | 51 + .../dir_95624ebda436e232844a7007340a6b2b.html | 129 + .../dir_95624ebda436e232844a7007340a6b2b.js | 10 + ...r_95624ebda436e232844a7007340a6b2b_dep.md5 | 1 + ...r_95624ebda436e232844a7007340a6b2b_dep.svg | 256 ++ ...624ebda436e232844a7007340a6b2b_dep_org.svg | 173 + .../dir_97e7160f37b959978d0c3621cc0a2dfc.html | 129 + .../dir_97e7160f37b959978d0c3621cc0a2dfc.js | 10 + ...r_97e7160f37b959978d0c3621cc0a2dfc_dep.md5 | 1 + ...r_97e7160f37b959978d0c3621cc0a2dfc_dep.svg | 77 + ...e7160f37b959978d0c3621cc0a2dfc_dep_org.svg | 51 + .../dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.html | 123 + .../dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.js | 4 + ...r_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.md5 | 1 + ...r_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.svg | 89 + ...2eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep_org.svg | 63 + .../dir_9b69c23330a7d810ddb9527a98b69931.html | 123 + .../dir_9b69c23330a7d810ddb9527a98b69931.js | 4 + ...r_9b69c23330a7d810ddb9527a98b69931_dep.md5 | 1 + ...r_9b69c23330a7d810ddb9527a98b69931_dep.svg | 89 + ...69c23330a7d810ddb9527a98b69931_dep_org.svg | 63 + .../dir_9be252ebbe144643a161d99fe7bd96b8.html | 125 + .../dir_9be252ebbe144643a161d99fe7bd96b8.js | 6 + ...r_9be252ebbe144643a161d99fe7bd96b8_dep.md5 | 1 + ...r_9be252ebbe144643a161d99fe7bd96b8_dep.svg | 159 + ...e252ebbe144643a161d99fe7bd96b8_dep_org.svg | 133 + .../dir_9f56573f249ce70c94c7b8fff377f7a9.html | 124 + .../dir_9f56573f249ce70c94c7b8fff377f7a9.js | 5 + ...r_9f56573f249ce70c94c7b8fff377f7a9_dep.md5 | 1 + ...r_9f56573f249ce70c94c7b8fff377f7a9_dep.svg | 111 + ...56573f249ce70c94c7b8fff377f7a9_dep_org.svg | 85 + .../dir_a3d37b3538242ea047872cfcc616fb89.html | 124 + .../dir_a3d37b3538242ea047872cfcc616fb89.js | 5 + ...r_a3d37b3538242ea047872cfcc616fb89_dep.md5 | 1 + ...r_a3d37b3538242ea047872cfcc616fb89_dep.svg | 98 + ...d37b3538242ea047872cfcc616fb89_dep_org.svg | 72 + .../dir_a433e8a6d28e4786ad1d6be7acd0a86e.html | 124 + .../dir_a433e8a6d28e4786ad1d6be7acd0a86e.js | 5 + ...r_a433e8a6d28e4786ad1d6be7acd0a86e_dep.md5 | 1 + ...r_a433e8a6d28e4786ad1d6be7acd0a86e_dep.svg | 77 + ...33e8a6d28e4786ad1d6be7acd0a86e_dep_org.svg | 51 + .../dir_a4520cc2e8d056e147f1deaf11bb691f.html | 123 + .../dir_a4520cc2e8d056e147f1deaf11bb691f.js | 4 + ...r_a4520cc2e8d056e147f1deaf11bb691f_dep.md5 | 1 + ...r_a4520cc2e8d056e147f1deaf11bb691f_dep.svg | 89 + ...520cc2e8d056e147f1deaf11bb691f_dep_org.svg | 63 + .../dir_a4c5913a3d3eed486b216fbd720c97af.html | 123 + .../dir_a4c5913a3d3eed486b216fbd720c97af.js | 4 + ...r_a4c5913a3d3eed486b216fbd720c97af_dep.md5 | 1 + ...r_a4c5913a3d3eed486b216fbd720c97af_dep.svg | 77 + ...c5913a3d3eed486b216fbd720c97af_dep_org.svg | 51 + .../dir_a8725166bca3343a4ff8dbf70470bf7a.html | 124 + .../dir_a8725166bca3343a4ff8dbf70470bf7a.js | 5 + ...r_a8725166bca3343a4ff8dbf70470bf7a_dep.md5 | 1 + ...r_a8725166bca3343a4ff8dbf70470bf7a_dep.svg | 77 + ...725166bca3343a4ff8dbf70470bf7a_dep_org.svg | 51 + .../dir_a953ba1f31684a48ed0144a63a293ae9.html | 124 + .../dir_a953ba1f31684a48ed0144a63a293ae9.js | 5 + ...r_a953ba1f31684a48ed0144a63a293ae9_dep.md5 | 1 + ...r_a953ba1f31684a48ed0144a63a293ae9_dep.svg | 89 + ...53ba1f31684a48ed0144a63a293ae9_dep_org.svg | 63 + .../dir_ab3ea85e91d8dc68e46d009ff6c24e63.html | 124 + .../dir_ab3ea85e91d8dc68e46d009ff6c24e63.js | 5 + ...r_ab3ea85e91d8dc68e46d009ff6c24e63_dep.md5 | 1 + ...r_ab3ea85e91d8dc68e46d009ff6c24e63_dep.svg | 99 + ...3ea85e91d8dc68e46d009ff6c24e63_dep_org.svg | 73 + .../dir_ad7c247d62c906d539eea57d302f162e.html | 124 + .../dir_ad7c247d62c906d539eea57d302f162e.js | 5 + ...r_ad7c247d62c906d539eea57d302f162e_dep.md5 | 1 + ...r_ad7c247d62c906d539eea57d302f162e_dep.svg | 111 + ...7c247d62c906d539eea57d302f162e_dep_org.svg | 85 + .../dir_b0611a230b7c13c087177d819e4a0a75.html | 124 + .../dir_b0611a230b7c13c087177d819e4a0a75.js | 5 + ...r_b0611a230b7c13c087177d819e4a0a75_dep.md5 | 1 + ...r_b0611a230b7c13c087177d819e4a0a75_dep.svg | 77 + ...611a230b7c13c087177d819e4a0a75_dep_org.svg | 51 + .../dir_b06b87161308abcdcf61a00173e809b3.html | 123 + .../dir_b06b87161308abcdcf61a00173e809b3.js | 4 + ...r_b06b87161308abcdcf61a00173e809b3_dep.md5 | 1 + ...r_b06b87161308abcdcf61a00173e809b3_dep.svg | 55 + ...6b87161308abcdcf61a00173e809b3_dep_org.svg | 29 + .../dir_b1578e0a7dfccb2aa1ada3cffa80de73.html | 123 + .../dir_b1578e0a7dfccb2aa1ada3cffa80de73.js | 4 + ...r_b1578e0a7dfccb2aa1ada3cffa80de73_dep.md5 | 1 + ...r_b1578e0a7dfccb2aa1ada3cffa80de73_dep.svg | 89 + ...578e0a7dfccb2aa1ada3cffa80de73_dep_org.svg | 63 + .../dir_b2edfaaef06a92a9d53ea863519f7932.html | 124 + .../dir_b2edfaaef06a92a9d53ea863519f7932.js | 5 + ...r_b2edfaaef06a92a9d53ea863519f7932_dep.md5 | 1 + ...r_b2edfaaef06a92a9d53ea863519f7932_dep.svg | 111 + ...edfaaef06a92a9d53ea863519f7932_dep_org.svg | 85 + .../dir_b3e5efb6887ef3293ea576aeaa5d8964.html | 123 + .../dir_b3e5efb6887ef3293ea576aeaa5d8964.js | 4 + ...r_b3e5efb6887ef3293ea576aeaa5d8964_dep.md5 | 1 + ...r_b3e5efb6887ef3293ea576aeaa5d8964_dep.svg | 89 + ...e5efb6887ef3293ea576aeaa5d8964_dep_org.svg | 63 + .../dir_b4d0413a00f30ed5bea26ae94db4d4f7.html | 124 + .../dir_b4d0413a00f30ed5bea26ae94db4d4f7.js | 5 + ...r_b4d0413a00f30ed5bea26ae94db4d4f7_dep.md5 | 1 + ...r_b4d0413a00f30ed5bea26ae94db4d4f7_dep.svg | 111 + ...d0413a00f30ed5bea26ae94db4d4f7_dep_org.svg | 85 + .../dir_b64675f983c0644af3c7dd36b6272b9d.html | 123 + .../dir_b64675f983c0644af3c7dd36b6272b9d.js | 4 + ...r_b64675f983c0644af3c7dd36b6272b9d_dep.md5 | 1 + ...r_b64675f983c0644af3c7dd36b6272b9d_dep.svg | 55 + ...4675f983c0644af3c7dd36b6272b9d_dep_org.svg | 29 + .../dir_b6a1715e83971bfcc7e394ffdb6f5543.html | 124 + .../dir_b6a1715e83971bfcc7e394ffdb6f5543.js | 5 + ...r_b6a1715e83971bfcc7e394ffdb6f5543_dep.md5 | 1 + ...r_b6a1715e83971bfcc7e394ffdb6f5543_dep.svg | 77 + ...a1715e83971bfcc7e394ffdb6f5543_dep_org.svg | 51 + .../dir_b8b40c3eb39ca67509682dcf2c25211e.html | 123 + .../dir_b8b40c3eb39ca67509682dcf2c25211e.js | 4 + ...r_b8b40c3eb39ca67509682dcf2c25211e_dep.md5 | 1 + ...r_b8b40c3eb39ca67509682dcf2c25211e_dep.svg | 77 + ...b40c3eb39ca67509682dcf2c25211e_dep_org.svg | 51 + .../dir_b919e33db9942c3e712aefd750376bac.html | 123 + .../dir_b919e33db9942c3e712aefd750376bac.js | 4 + ...r_b919e33db9942c3e712aefd750376bac_dep.md5 | 1 + ...r_b919e33db9942c3e712aefd750376bac_dep.svg | 67 + ...19e33db9942c3e712aefd750376bac_dep_org.svg | 41 + .../dir_b98ee8c279438f4b21bd61b97608bcde.html | 123 + .../dir_b98ee8c279438f4b21bd61b97608bcde.js | 4 + ...r_b98ee8c279438f4b21bd61b97608bcde_dep.md5 | 1 + ...r_b98ee8c279438f4b21bd61b97608bcde_dep.svg | 187 + ...8ee8c279438f4b21bd61b97608bcde_dep_org.svg | 161 + .../dir_bab3575675640a99c668cf654a35a16e.html | 123 + .../dir_bab3575675640a99c668cf654a35a16e.js | 4 + ...r_bab3575675640a99c668cf654a35a16e_dep.md5 | 1 + ...r_bab3575675640a99c668cf654a35a16e_dep.svg | 89 + ...b3575675640a99c668cf654a35a16e_dep_org.svg | 63 + .../dir_c0c0cd07563e9956c88b53baae458253.html | 124 + .../dir_c0c0cd07563e9956c88b53baae458253.js | 5 + ...r_c0c0cd07563e9956c88b53baae458253_dep.md5 | 1 + ...r_c0c0cd07563e9956c88b53baae458253_dep.svg | 77 + ...c0cd07563e9956c88b53baae458253_dep_org.svg | 51 + .../dir_c2033497fb0ab786bab9abfae6d47534.html | 124 + .../dir_c2033497fb0ab786bab9abfae6d47534.js | 5 + ...r_c2033497fb0ab786bab9abfae6d47534_dep.md5 | 1 + ...r_c2033497fb0ab786bab9abfae6d47534_dep.svg | 111 + ...033497fb0ab786bab9abfae6d47534_dep_org.svg | 85 + .../dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.html | 123 + .../dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.js | 4 + ...r_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.md5 | 1 + ...r_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.svg | 67 + ...b9f8f4a3ee5f165d6b260641ed6a6b_dep_org.svg | 41 + .../dir_c5eb101bd20917ef236da0cb98586871.html | 123 + .../dir_c5eb101bd20917ef236da0cb98586871.js | 4 + ...r_c5eb101bd20917ef236da0cb98586871_dep.md5 | 1 + ...r_c5eb101bd20917ef236da0cb98586871_dep.svg | 89 + ...eb101bd20917ef236da0cb98586871_dep_org.svg | 63 + .../dir_c5face973da07f52b4ad2936f0de0daf.html | 123 + .../dir_c5face973da07f52b4ad2936f0de0daf.js | 4 + ...r_c5face973da07f52b4ad2936f0de0daf_dep.md5 | 1 + ...r_c5face973da07f52b4ad2936f0de0daf_dep.svg | 77 + ...face973da07f52b4ad2936f0de0daf_dep_org.svg | 51 + .../dir_cc06919342db86795a48353da98f8a52.html | 124 + .../dir_cc06919342db86795a48353da98f8a52.js | 5 + ...r_cc06919342db86795a48353da98f8a52_dep.md5 | 1 + ...r_cc06919342db86795a48353da98f8a52_dep.svg | 89 + ...06919342db86795a48353da98f8a52_dep_org.svg | 63 + .../dir_ccd16ee69178f7f8a2cbd33b34cfbb18.html | 129 + .../dir_ccd16ee69178f7f8a2cbd33b34cfbb18.js | 10 + ...r_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.md5 | 1 + ...r_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.svg | 299 ++ ...d16ee69178f7f8a2cbd33b34cfbb18_dep_org.svg | 273 ++ .../dir_ce1baaf5350db63792a033d5f80bd725.html | 124 + .../dir_ce1baaf5350db63792a033d5f80bd725.js | 5 + ...r_ce1baaf5350db63792a033d5f80bd725_dep.md5 | 1 + ...r_ce1baaf5350db63792a033d5f80bd725_dep.svg | 77 + ...1baaf5350db63792a033d5f80bd725_dep_org.svg | 51 + .../dir_d189b23d12b196e6a83e21b0964d7cc4.html | 123 + .../dir_d189b23d12b196e6a83e21b0964d7cc4.js | 4 + ...r_d189b23d12b196e6a83e21b0964d7cc4_dep.md5 | 1 + ...r_d189b23d12b196e6a83e21b0964d7cc4_dep.svg | 99 + ...89b23d12b196e6a83e21b0964d7cc4_dep_org.svg | 73 + .../dir_d3a7bf488950df7c258d146af03d9440.html | 125 + .../dir_d3a7bf488950df7c258d146af03d9440.js | 6 + ...r_d3a7bf488950df7c258d146af03d9440_dep.md5 | 1 + ...r_d3a7bf488950df7c258d146af03d9440_dep.svg | 159 + ...a7bf488950df7c258d146af03d9440_dep_org.svg | 133 + .../dir_d889323c3d75be7406c85891426fb089.html | 124 + .../dir_d889323c3d75be7406c85891426fb089.js | 5 + ...r_d889323c3d75be7406c85891426fb089_dep.md5 | 1 + ...r_d889323c3d75be7406c85891426fb089_dep.svg | 124 + ...89323c3d75be7406c85891426fb089_dep_org.svg | 98 + .../dir_d8d2b30d510138cdb5096652440331d7.html | 125 + .../dir_d8d2b30d510138cdb5096652440331d7.js | 6 + ...r_d8d2b30d510138cdb5096652440331d7_dep.md5 | 1 + ...r_d8d2b30d510138cdb5096652440331d7_dep.svg | 77 + ...d2b30d510138cdb5096652440331d7_dep_org.svg | 51 + .../dir_da1af8bdfc7d3f2dbe82319f48856cde.html | 124 + .../dir_da1af8bdfc7d3f2dbe82319f48856cde.js | 5 + ...r_da1af8bdfc7d3f2dbe82319f48856cde_dep.md5 | 1 + ...r_da1af8bdfc7d3f2dbe82319f48856cde_dep.svg | 55 + ...1af8bdfc7d3f2dbe82319f48856cde_dep_org.svg | 29 + .../dir_daeea571a943a8adb5cad931a75d2354.html | 123 + .../dir_daeea571a943a8adb5cad931a75d2354.js | 4 + ...r_daeea571a943a8adb5cad931a75d2354_dep.md5 | 1 + ...r_daeea571a943a8adb5cad931a75d2354_dep.svg | 77 + ...eea571a943a8adb5cad931a75d2354_dep_org.svg | 51 + .../dir_db7b1604ad652de4066dd6f160251f65.html | 124 + .../dir_db7b1604ad652de4066dd6f160251f65.js | 5 + ...r_db7b1604ad652de4066dd6f160251f65_dep.md5 | 1 + ...r_db7b1604ad652de4066dd6f160251f65_dep.svg | 77 + ...7b1604ad652de4066dd6f160251f65_dep_org.svg | 51 + .../dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.html | 125 + .../dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.js | 6 + ...r_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.md5 | 1 + ...r_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.svg | 77 + ...680dbb1cea7c0c88f2dd9d758e5cd4_dep_org.svg | 51 + .../dir_dcebb773a78008f4ad1961fb5463c06f.html | 123 + .../dir_dcebb773a78008f4ad1961fb5463c06f.js | 4 + ...r_dcebb773a78008f4ad1961fb5463c06f_dep.md5 | 1 + ...r_dcebb773a78008f4ad1961fb5463c06f_dep.svg | 77 + ...ebb773a78008f4ad1961fb5463c06f_dep_org.svg | 51 + .../dir_de540661fcc17919ae935eb1da844485.html | 123 + .../dir_de540661fcc17919ae935eb1da844485.js | 4 + ...r_de540661fcc17919ae935eb1da844485_dep.md5 | 1 + ...r_de540661fcc17919ae935eb1da844485_dep.svg | 67 + ...540661fcc17919ae935eb1da844485_dep_org.svg | 41 + .../dir_de59488d4ecb668d05d95d08fff34891.html | 127 + .../dir_de59488d4ecb668d05d95d08fff34891.js | 8 + ...r_de59488d4ecb668d05d95d08fff34891_dep.md5 | 1 + ...r_de59488d4ecb668d05d95d08fff34891_dep.svg | 77 + ...59488d4ecb668d05d95d08fff34891_dep_org.svg | 51 + .../dir_df22749ae4ae6efb2cb45d380996b069.html | 123 + .../dir_df22749ae4ae6efb2cb45d380996b069.js | 4 + ...r_df22749ae4ae6efb2cb45d380996b069_dep.md5 | 1 + ...r_df22749ae4ae6efb2cb45d380996b069_dep.svg | 55 + ...22749ae4ae6efb2cb45d380996b069_dep_org.svg | 29 + .../dir_dff87212d3726025066eaf86c6c94532.html | 125 + .../dir_dff87212d3726025066eaf86c6c94532.js | 6 + ...r_dff87212d3726025066eaf86c6c94532_dep.md5 | 1 + ...r_dff87212d3726025066eaf86c6c94532_dep.svg | 155 + ...f87212d3726025066eaf86c6c94532_dep_org.svg | 129 + .../dir_e01b86c47b4b9f49293132a6e1dd8d05.html | 126 + .../dir_e01b86c47b4b9f49293132a6e1dd8d05.js | 7 + ...r_e01b86c47b4b9f49293132a6e1dd8d05_dep.md5 | 1 + ...r_e01b86c47b4b9f49293132a6e1dd8d05_dep.svg | 99 + ...1b86c47b4b9f49293132a6e1dd8d05_dep_org.svg | 73 + .../dir_e20383be2aa1cc8db7287a474982598e.html | 126 + .../dir_e20383be2aa1cc8db7287a474982598e.js | 7 + ...r_e20383be2aa1cc8db7287a474982598e_dep.md5 | 1 + ...r_e20383be2aa1cc8db7287a474982598e_dep.svg | 212 ++ ...0383be2aa1cc8db7287a474982598e_dep_org.svg | 129 + .../dir_e3201638ff68b74d4b205e537b11e272.html | 126 + .../dir_e3201638ff68b74d4b205e537b11e272.js | 7 + ...r_e3201638ff68b74d4b205e537b11e272_dep.md5 | 1 + ...r_e3201638ff68b74d4b205e537b11e272_dep.svg | 99 + ...201638ff68b74d4b205e537b11e272_dep_org.svg | 73 + .../dir_e33b7cda9a005c39a6e7551b4e05602d.html | 124 + .../dir_e33b7cda9a005c39a6e7551b4e05602d.js | 5 + ...r_e33b7cda9a005c39a6e7551b4e05602d_dep.md5 | 1 + ...r_e33b7cda9a005c39a6e7551b4e05602d_dep.svg | 98 + ...3b7cda9a005c39a6e7551b4e05602d_dep_org.svg | 72 + .../dir_e6153ef005eb58932a236d4aa6e48d43.html | 127 + .../dir_e6153ef005eb58932a236d4aa6e48d43.js | 5 + ...r_e6153ef005eb58932a236d4aa6e48d43_dep.md5 | 1 + ...r_e6153ef005eb58932a236d4aa6e48d43_dep.svg | 115 + ...153ef005eb58932a236d4aa6e48d43_dep_org.svg | 89 + .../dir_e78af46276061306d5e012847576d2b2.html | 125 + .../dir_e78af46276061306d5e012847576d2b2.js | 6 + ...r_e78af46276061306d5e012847576d2b2_dep.md5 | 1 + ...r_e78af46276061306d5e012847576d2b2_dep.svg | 388 ++ ...8af46276061306d5e012847576d2b2_dep_org.svg | 305 ++ .../dir_e7f8e8e4b9616aa9af33ffb274dfdf04.html | 124 + .../dir_e7f8e8e4b9616aa9af33ffb274dfdf04.js | 5 + ...r_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.md5 | 1 + ...r_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.svg | 111 + ...f8e8e4b9616aa9af33ffb274dfdf04_dep_org.svg | 85 + .../dir_e878e923ef12715a74c793cf72e4f313.html | 124 + .../dir_e878e923ef12715a74c793cf72e4f313.js | 5 + ...r_e878e923ef12715a74c793cf72e4f313_dep.md5 | 1 + ...r_e878e923ef12715a74c793cf72e4f313_dep.svg | 89 + ...78e923ef12715a74c793cf72e4f313_dep_org.svg | 63 + .../dir_eca7894df80a3acd051f3e5eab624191.html | 123 + .../dir_eca7894df80a3acd051f3e5eab624191.js | 4 + ...r_eca7894df80a3acd051f3e5eab624191_dep.md5 | 1 + ...r_eca7894df80a3acd051f3e5eab624191_dep.svg | 89 + ...a7894df80a3acd051f3e5eab624191_dep_org.svg | 63 + .../dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.html | 123 + .../dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.js | 4 + ...r_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.md5 | 1 + ...r_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.svg | 77 + ...35c1c3ca151a08d5d44d0cdc3a05d5_dep_org.svg | 51 + .../dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.html | 126 + .../dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.js | 7 + ...r_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.md5 | 1 + ...r_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.svg | 77 + ...aa04b7bbccd383b0f03f9b9fd86b7d_dep_org.svg | 51 + .../dir_f32633e65746b6a91fbe861f5f21dc38.html | 123 + .../dir_f32633e65746b6a91fbe861f5f21dc38.js | 4 + ...r_f32633e65746b6a91fbe861f5f21dc38_dep.md5 | 1 + ...r_f32633e65746b6a91fbe861f5f21dc38_dep.svg | 77 + ...2633e65746b6a91fbe861f5f21dc38_dep_org.svg | 51 + .../dir_f525258f048ec21eab34c8f507cb2ddc.html | 124 + .../dir_f525258f048ec21eab34c8f507cb2ddc.js | 5 + ...r_f525258f048ec21eab34c8f507cb2ddc_dep.md5 | 1 + ...r_f525258f048ec21eab34c8f507cb2ddc_dep.svg | 98 + ...25258f048ec21eab34c8f507cb2ddc_dep_org.svg | 72 + .../dir_f5ac212e894c3c636ee22eba8071736a.html | 124 + .../dir_f5ac212e894c3c636ee22eba8071736a.js | 5 + ...r_f5ac212e894c3c636ee22eba8071736a_dep.md5 | 1 + ...r_f5ac212e894c3c636ee22eba8071736a_dep.svg | 111 + ...ac212e894c3c636ee22eba8071736a_dep_org.svg | 85 + .../dir_f5cd8eaf0257daee38a85d69a967cc12.html | 124 + .../dir_f5cd8eaf0257daee38a85d69a967cc12.js | 5 + ...r_f5cd8eaf0257daee38a85d69a967cc12_dep.md5 | 1 + ...r_f5cd8eaf0257daee38a85d69a967cc12_dep.svg | 77 + ...cd8eaf0257daee38a85d69a967cc12_dep_org.svg | 51 + .../dir_f69cca64cbddff3688ecc3dff3ca9e3a.html | 123 + .../dir_f69cca64cbddff3688ecc3dff3ca9e3a.js | 4 + ...r_f69cca64cbddff3688ecc3dff3ca9e3a_dep.md5 | 1 + ...r_f69cca64cbddff3688ecc3dff3ca9e3a_dep.svg | 77 + ...9cca64cbddff3688ecc3dff3ca9e3a_dep_org.svg | 51 + .../dir_f770e0d3e13945b3c8eb56d882c10d0b.html | 123 + .../dir_f770e0d3e13945b3c8eb56d882c10d0b.js | 4 + ...r_f770e0d3e13945b3c8eb56d882c10d0b_dep.md5 | 1 + ...r_f770e0d3e13945b3c8eb56d882c10d0b_dep.svg | 89 + ...70e0d3e13945b3c8eb56d882c10d0b_dep_org.svg | 63 + .../dir_f92c71b2ef057433a6cd6431e49a6368.html | 124 + .../dir_f92c71b2ef057433a6cd6431e49a6368.js | 5 + ...r_f92c71b2ef057433a6cd6431e49a6368_dep.md5 | 1 + ...r_f92c71b2ef057433a6cd6431e49a6368_dep.svg | 99 + ...2c71b2ef057433a6cd6431e49a6368_dep_org.svg | 73 + .../dir_fc4402edab186de335f81f837d649a28.html | 129 + .../dir_fc4402edab186de335f81f837d649a28.js | 10 + ...r_fc4402edab186de335f81f837d649a28_dep.md5 | 1 + ...r_fc4402edab186de335f81f837d649a28_dep.svg | 55 + ...4402edab186de335f81f837d649a28_dep_org.svg | 29 + .../dir_fc647d5b5fee47835a64d22ac5da01fe.html | 124 + .../dir_fc647d5b5fee47835a64d22ac5da01fe.js | 5 + ...r_fc647d5b5fee47835a64d22ac5da01fe_dep.md5 | 1 + ...r_fc647d5b5fee47835a64d22ac5da01fe_dep.svg | 111 + ...647d5b5fee47835a64d22ac5da01fe_dep_org.svg | 85 + .../dir_fe9384a6c969461651fdf91b0c07824b.html | 131 + .../dir_fe9384a6c969461651fdf91b0c07824b.js | 12 + ...r_fe9384a6c969461651fdf91b0c07824b_dep.md5 | 1 + ...r_fe9384a6c969461651fdf91b0c07824b_dep.svg | 77 + ...9384a6c969461651fdf91b0c07824b_dep_org.svg | 51 + docs/html/doxygen.css | 2540 +++++++++++++ docs/html/doxygen.svg | 28 + docs/html/doxygen_crawl.html | 2930 +++++++++++++++ docs/html/dsp__common_8h.html | 277 ++ docs/html/dsp__common_8h.js | 7 + docs/html/dsp__common_8h__dep__incl.md5 | 1 + docs/html/dsp__common_8h__dep__incl.svg | 761 ++++ docs/html/dsp__common_8h__dep__incl_org.svg | 678 ++++ docs/html/dsp__common_8h__incl.md5 | 1 + docs/html/dsp__common_8h__incl.svg | 200 + docs/html/dsp__common_8h__incl_org.svg | 174 + ...c0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.md5 | 1 + ...c0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.svg | 591 +++ ...dd19d7ebd2f69bfb0c1a6f85da_icgraph_org.svg | 508 +++ ...855e560e0563aa519b012dbdcbaec2_icgraph.md5 | 1 + ...855e560e0563aa519b012dbdcbaec2_icgraph.svg | 264 ++ ...560e0563aa519b012dbdcbaec2_icgraph_org.svg | 238 ++ docs/html/dsp__common_8h_source.html | 175 + docs/html/dsp__err_8h.html | 128 + docs/html/dsp__err_8h__dep__incl.md5 | 1 + docs/html/dsp__err_8h__dep__incl.svg | 1936 ++++++++++ docs/html/dsp__err_8h__dep__incl_org.svg | 1853 ++++++++++ docs/html/dsp__err_8h__incl.md5 | 1 + docs/html/dsp__err_8h__incl.svg | 119 + docs/html/dsp__err_8h__incl_org.svg | 93 + docs/html/dsp__err_8h_source.html | 131 + docs/html/dsp__err__codes_8h.html | 273 ++ docs/html/dsp__err__codes_8h.js | 11 + docs/html/dsp__err__codes_8h__dep__incl.md5 | 1 + docs/html/dsp__err__codes_8h__dep__incl.svg | 1936 ++++++++++ .../dsp__err__codes_8h__dep__incl_org.svg | 1853 ++++++++++ docs/html/dsp__err__codes_8h_source.html | 134 + docs/html/dsp__platform_8h.html | 125 + docs/html/dsp__platform_8h__incl.md5 | 1 + docs/html/dsp__platform_8h__incl.svg | 194 + docs/html/dsp__platform_8h__incl_org.svg | 111 + docs/html/dsp__platform_8h_source.html | 139 + docs/html/dsp__tests_8h.html | 206 ++ docs/html/dsp__tests_8h.js | 5 + docs/html/dsp__tests_8h__dep__incl.md5 | 1 + docs/html/dsp__tests_8h__dep__incl.svg | 212 ++ docs/html/dsp__tests_8h__dep__incl_org.svg | 129 + docs/html/dsp__tests_8h__incl.md5 | 1 + docs/html/dsp__tests_8h__incl.svg | 1609 +++++++++ docs/html/dsp__tests_8h__incl_org.svg | 1526 ++++++++ docs/html/dsp__tests_8h_source.html | 147 + docs/html/dsp__types_8h.html | 184 + docs/html/dsp__types_8h.js | 9 + docs/html/dsp__types_8h__dep__incl.md5 | 1 + docs/html/dsp__types_8h__dep__incl.svg | 910 +++++ docs/html/dsp__types_8h__dep__incl_org.svg | 827 +++++ docs/html/dsp__types_8h__incl.md5 | 1 + docs/html/dsp__types_8h__incl.svg | 101 + docs/html/dsp__types_8h__incl_org.svg | 75 + docs/html/dsp__types_8h_source.html | 167 + docs/html/dspi__conv_8h.html | 380 ++ docs/html/dspi__conv_8h.js | 5 + docs/html/dspi__conv_8h__dep__incl.md5 | 1 + docs/html/dspi__conv_8h__dep__incl.svg | 734 ++++ docs/html/dspi__conv_8h__dep__incl_org.svg | 651 ++++ docs/html/dspi__conv_8h__incl.md5 | 1 + docs/html/dspi__conv_8h__incl.svg | 236 ++ docs/html/dspi__conv_8h__incl_org.svg | 210 ++ docs/html/dspi__conv_8h_source.html | 151 + docs/html/dspi__conv__f32__ansi_8c.html | 352 ++ docs/html/dspi__conv__f32__ansi_8c.js | 4 + docs/html/dspi__conv__f32__ansi_8c__incl.md5 | 1 + docs/html/dspi__conv__f32__ansi_8c__incl.svg | 281 ++ .../dspi__conv__f32__ansi_8c__incl_org.svg | 255 ++ .../html/dspi__conv__f32__ansi_8c_source.html | 308 ++ docs/html/dspi__dotprod_8h.html | 1726 +++++++++ docs/html/dspi__dotprod_8h.js | 29 + docs/html/dspi__dotprod_8h__dep__incl.md5 | 1 + docs/html/dspi__dotprod_8h__dep__incl.svg | 901 +++++ docs/html/dspi__dotprod_8h__dep__incl_org.svg | 818 +++++ docs/html/dspi__dotprod_8h__incl.md5 | 1 + docs/html/dspi__dotprod_8h__incl.svg | 263 ++ docs/html/dspi__dotprod_8h__incl_org.svg | 237 ++ docs/html/dspi__dotprod_8h_source.html | 257 ++ docs/html/dspi__dotprod__f32__ansi_8c.html | 224 ++ docs/html/dspi__dotprod__f32__ansi_8c.js | 4 + .../dspi__dotprod__f32__ansi_8c__incl.md5 | 1 + .../dspi__dotprod__f32__ansi_8c__incl.svg | 281 ++ .../dspi__dotprod__f32__ansi_8c__incl_org.svg | 255 ++ .../dspi__dotprod__f32__ansi_8c_source.html | 168 + .../dspi__dotprod__off__f32__ansi_8c.html | 230 ++ docs/html/dspi__dotprod__off__f32__ansi_8c.js | 4 + ...dspi__dotprod__off__f32__ansi_8c__incl.md5 | 1 + ...dspi__dotprod__off__f32__ansi_8c__incl.svg | 282 ++ ...__dotprod__off__f32__ansi_8c__incl_org.svg | 256 ++ ...pi__dotprod__off__f32__ansi_8c_source.html | 168 + .../dspi__dotprod__off__s16__ansi_8c.html | 238 ++ docs/html/dspi__dotprod__off__s16__ansi_8c.js | 4 + ...dspi__dotprod__off__s16__ansi_8c__incl.md5 | 1 + ...dspi__dotprod__off__s16__ansi_8c__incl.svg | 282 ++ ...__dotprod__off__s16__ansi_8c__incl_org.svg | 256 ++ ...pi__dotprod__off__s16__ansi_8c_source.html | 170 + .../html/dspi__dotprod__off__s8__ansi_8c.html | 218 ++ docs/html/dspi__dotprod__off__s8__ansi_8c.js | 4 + .../dspi__dotprod__off__s8__ansi_8c__incl.md5 | 1 + .../dspi__dotprod__off__s8__ansi_8c__incl.svg | 282 ++ ...i__dotprod__off__s8__ansi_8c__incl_org.svg | 256 ++ ...spi__dotprod__off__s8__ansi_8c_source.html | 170 + .../dspi__dotprod__off__u16__ansi_8c.html | 218 ++ docs/html/dspi__dotprod__off__u16__ansi_8c.js | 4 + ...dspi__dotprod__off__u16__ansi_8c__incl.md5 | 1 + ...dspi__dotprod__off__u16__ansi_8c__incl.svg | 282 ++ ...__dotprod__off__u16__ansi_8c__incl_org.svg | 256 ++ ...pi__dotprod__off__u16__ansi_8c_source.html | 170 + .../html/dspi__dotprod__off__u8__ansi_8c.html | 218 ++ docs/html/dspi__dotprod__off__u8__ansi_8c.js | 4 + .../dspi__dotprod__off__u8__ansi_8c__incl.md5 | 1 + .../dspi__dotprod__off__u8__ansi_8c__incl.svg | 282 ++ ...i__dotprod__off__u8__ansi_8c__incl_org.svg | 256 ++ ...spi__dotprod__off__u8__ansi_8c_source.html | 170 + docs/html/dspi__dotprod__platform_8h.html | 126 + .../dspi__dotprod__platform_8h__dep__incl.md5 | 1 + .../dspi__dotprod__platform_8h__dep__incl.svg | 757 ++++ ...i__dotprod__platform_8h__dep__incl_org.svg | 674 ++++ .../html/dspi__dotprod__platform_8h__incl.md5 | 1 + .../html/dspi__dotprod__platform_8h__incl.svg | 65 + .../dspi__dotprod__platform_8h__incl_org.svg | 39 + .../dspi__dotprod__platform_8h_source.html | 130 + docs/html/dspi__dotprod__s16__ansi_8c.html | 232 ++ docs/html/dspi__dotprod__s16__ansi_8c.js | 4 + .../dspi__dotprod__s16__ansi_8c__incl.md5 | 1 + .../dspi__dotprod__s16__ansi_8c__incl.svg | 281 ++ .../dspi__dotprod__s16__ansi_8c__incl_org.svg | 255 ++ .../dspi__dotprod__s16__ansi_8c_source.html | 170 + docs/html/dspi__dotprod__s8__ansi_8c.html | 213 ++ docs/html/dspi__dotprod__s8__ansi_8c.js | 4 + .../html/dspi__dotprod__s8__ansi_8c__incl.md5 | 1 + .../html/dspi__dotprod__s8__ansi_8c__incl.svg | 281 ++ .../dspi__dotprod__s8__ansi_8c__incl_org.svg | 255 ++ .../dspi__dotprod__s8__ansi_8c_source.html | 170 + docs/html/dspi__dotprod__u16__ansi_8c.html | 213 ++ docs/html/dspi__dotprod__u16__ansi_8c.js | 4 + .../dspi__dotprod__u16__ansi_8c__incl.md5 | 1 + .../dspi__dotprod__u16__ansi_8c__incl.svg | 281 ++ .../dspi__dotprod__u16__ansi_8c__incl_org.svg | 255 ++ .../dspi__dotprod__u16__ansi_8c_source.html | 170 + docs/html/dspi__dotprod__u8__ansi_8c.html | 213 ++ docs/html/dspi__dotprod__u8__ansi_8c.js | 4 + .../html/dspi__dotprod__u8__ansi_8c__incl.md5 | 1 + .../html/dspi__dotprod__u8__ansi_8c__incl.svg | 281 ++ .../dspi__dotprod__u8__ansi_8c__incl_org.svg | 255 ++ .../dspi__dotprod__u8__ansi_8c_source.html | 170 + docs/html/dspm__add_8h.html | 375 ++ docs/html/dspm__add_8h.js | 6 + docs/html/dspm__add_8h__dep__incl.md5 | 1 + docs/html/dspm__add_8h__dep__incl.svg | 608 ++++ docs/html/dspm__add_8h__dep__incl_org.svg | 525 +++ docs/html/dspm__add_8h__incl.md5 | 1 + docs/html/dspm__add_8h__incl.svg | 173 + docs/html/dspm__add_8h__incl_org.svg | 147 + docs/html/dspm__add_8h_source.html | 151 + docs/html/dspm__add__f32__ansi_8c.html | 278 ++ docs/html/dspm__add__f32__ansi_8c.js | 4 + docs/html/dspm__add__f32__ansi_8c__incl.md5 | 1 + docs/html/dspm__add__f32__ansi_8c__incl.svg | 173 + .../dspm__add__f32__ansi_8c__incl_org.svg | 147 + docs/html/dspm__add__f32__ansi_8c_source.html | 177 + docs/html/dspm__add__platform_8h.html | 126 + .../dspm__add__platform_8h__dep__incl.md5 | 1 + .../dspm__add__platform_8h__dep__incl.svg | 137 + .../dspm__add__platform_8h__dep__incl_org.svg | 111 + docs/html/dspm__add__platform_8h__incl.md5 | 1 + docs/html/dspm__add__platform_8h__incl.svg | 65 + .../html/dspm__add__platform_8h__incl_org.svg | 39 + docs/html/dspm__add__platform_8h_source.html | 126 + docs/html/dspm__addc_8h.html | 338 ++ docs/html/dspm__addc_8h.js | 6 + docs/html/dspm__addc_8h__dep__incl.md5 | 1 + docs/html/dspm__addc_8h__dep__incl.svg | 608 ++++ docs/html/dspm__addc_8h__dep__incl_org.svg | 525 +++ docs/html/dspm__addc_8h__incl.md5 | 1 + docs/html/dspm__addc_8h__incl.svg | 173 + docs/html/dspm__addc_8h__incl_org.svg | 147 + docs/html/dspm__addc_8h_source.html | 150 + docs/html/dspm__addc__f32__ansi_8c.html | 255 ++ docs/html/dspm__addc__f32__ansi_8c.js | 4 + docs/html/dspm__addc__f32__ansi_8c__incl.md5 | 1 + docs/html/dspm__addc__f32__ansi_8c__incl.svg | 173 + .../dspm__addc__f32__ansi_8c__incl_org.svg | 147 + .../html/dspm__addc__f32__ansi_8c_source.html | 165 + docs/html/dspm__addc__platform_8h.html | 126 + .../dspm__addc__platform_8h__dep__incl.md5 | 1 + .../dspm__addc__platform_8h__dep__incl.svg | 137 + ...dspm__addc__platform_8h__dep__incl_org.svg | 111 + docs/html/dspm__addc__platform_8h__incl.md5 | 1 + docs/html/dspm__addc__platform_8h__incl.svg | 65 + .../dspm__addc__platform_8h__incl_org.svg | 39 + docs/html/dspm__addc__platform_8h_source.html | 125 + docs/html/dspm__matrix_8h.html | 130 + docs/html/dspm__matrix_8h__dep__incl.md5 | 1 + docs/html/dspm__matrix_8h__dep__incl.svg | 734 ++++ docs/html/dspm__matrix_8h__dep__incl_org.svg | 651 ++++ docs/html/dspm__matrix_8h__incl.md5 | 1 + docs/html/dspm__matrix_8h__incl.svg | 446 +++ docs/html/dspm__matrix_8h__incl_org.svg | 363 ++ docs/html/dspm__matrix_8h_source.html | 127 + docs/html/dspm__mulc_8h.html | 344 ++ docs/html/dspm__mulc_8h.js | 6 + docs/html/dspm__mulc_8h__dep__incl.md5 | 1 + docs/html/dspm__mulc_8h__dep__incl.svg | 608 ++++ docs/html/dspm__mulc_8h__dep__incl_org.svg | 525 +++ docs/html/dspm__mulc_8h__incl.md5 | 1 + docs/html/dspm__mulc_8h__incl.svg | 173 + docs/html/dspm__mulc_8h__incl_org.svg | 147 + docs/html/dspm__mulc_8h_source.html | 150 + docs/html/dspm__mulc__f32__ansi_8c.html | 255 ++ docs/html/dspm__mulc__f32__ansi_8c.js | 4 + docs/html/dspm__mulc__f32__ansi_8c__incl.md5 | 1 + docs/html/dspm__mulc__f32__ansi_8c__incl.svg | 173 + .../dspm__mulc__f32__ansi_8c__incl_org.svg | 147 + .../html/dspm__mulc__f32__ansi_8c_source.html | 165 + docs/html/dspm__mulc__platform_8h.html | 126 + .../dspm__mulc__platform_8h__dep__incl.md5 | 1 + .../dspm__mulc__platform_8h__dep__incl.svg | 137 + ...dspm__mulc__platform_8h__dep__incl_org.svg | 111 + docs/html/dspm__mulc__platform_8h__incl.md5 | 1 + docs/html/dspm__mulc__platform_8h__incl.svg | 65 + .../dspm__mulc__platform_8h__incl_org.svg | 39 + docs/html/dspm__mulc__platform_8h_source.html | 126 + docs/html/dspm__mult_8h.html | 1304 +++++++ docs/html/dspm__mult_8h.js | 28 + docs/html/dspm__mult_8h__dep__incl.md5 | 1 + docs/html/dspm__mult_8h__dep__incl.svg | 680 ++++ docs/html/dspm__mult_8h__dep__incl_org.svg | 597 +++ docs/html/dspm__mult_8h__incl.md5 | 1 + docs/html/dspm__mult_8h__incl.svg | 173 + docs/html/dspm__mult_8h__incl_org.svg | 147 + ...93a1df5776923a37b0525ee23cc148_icgraph.md5 | 1 + ...93a1df5776923a37b0525ee23cc148_icgraph.svg | 83 + ...df5776923a37b0525ee23cc148_icgraph_org.svg | 57 + ...4068a1bb8cac4c1d41f8433a1bfdef_icgraph.md5 | 1 + ...4068a1bb8cac4c1d41f8433a1bfdef_icgraph.svg | 83 + ...a1bb8cac4c1d41f8433a1bfdef_icgraph_org.svg | 57 + docs/html/dspm__mult_8h_source.html | 250 ++ docs/html/dspm__mult__ex__f32__ansi_8c.html | 260 ++ docs/html/dspm__mult__ex__f32__ansi_8c.js | 4 + .../dspm__mult__ex__f32__ansi_8c__incl.md5 | 1 + .../dspm__mult__ex__f32__ansi_8c__incl.svg | 173 + ...dspm__mult__ex__f32__ansi_8c__incl_org.svg | 147 + .../dspm__mult__ex__f32__ansi_8c_source.html | 173 + docs/html/dspm__mult__f32__ansi_8c.html | 211 ++ docs/html/dspm__mult__f32__ansi_8c.js | 4 + docs/html/dspm__mult__f32__ansi_8c__incl.md5 | 1 + docs/html/dspm__mult__f32__ansi_8c__incl.svg | 272 ++ .../dspm__mult__f32__ansi_8c__incl_org.svg | 246 ++ .../html/dspm__mult__f32__ansi_8c_source.html | 152 + docs/html/dspm__mult__platform_8h.html | 126 + .../dspm__mult__platform_8h__dep__incl.md5 | 1 + .../dspm__mult__platform_8h__dep__incl.svg | 266 ++ ...dspm__mult__platform_8h__dep__incl_org.svg | 183 + docs/html/dspm__mult__platform_8h__incl.md5 | 1 + docs/html/dspm__mult__platform_8h__incl.svg | 65 + .../dspm__mult__platform_8h__incl_org.svg | 39 + docs/html/dspm__mult__platform_8h_source.html | 150 + docs/html/dspm__mult__s16__ansi_8c.html | 225 ++ docs/html/dspm__mult__s16__ansi_8c.js | 4 + docs/html/dspm__mult__s16__ansi_8c__incl.md5 | 1 + docs/html/dspm__mult__s16__ansi_8c__incl.svg | 272 ++ .../dspm__mult__s16__ansi_8c__incl_org.svg | 246 ++ .../html/dspm__mult__s16__ansi_8c_source.html | 159 + docs/html/dspm__sub_8h.html | 375 ++ docs/html/dspm__sub_8h.js | 6 + docs/html/dspm__sub_8h__dep__incl.md5 | 1 + docs/html/dspm__sub_8h__dep__incl.svg | 608 ++++ docs/html/dspm__sub_8h__dep__incl_org.svg | 525 +++ docs/html/dspm__sub_8h__incl.md5 | 1 + docs/html/dspm__sub_8h__incl.svg | 173 + docs/html/dspm__sub_8h__incl_org.svg | 147 + docs/html/dspm__sub_8h_source.html | 148 + docs/html/dspm__sub__f32__ansi_8c.html | 278 ++ docs/html/dspm__sub__f32__ansi_8c.js | 4 + docs/html/dspm__sub__f32__ansi_8c__incl.md5 | 1 + docs/html/dspm__sub__f32__ansi_8c__incl.svg | 173 + .../dspm__sub__f32__ansi_8c__incl_org.svg | 147 + docs/html/dspm__sub__f32__ansi_8c_source.html | 176 + docs/html/dspm__sub__platform_8h.html | 126 + .../dspm__sub__platform_8h__dep__incl.md5 | 1 + .../dspm__sub__platform_8h__dep__incl.svg | 137 + .../dspm__sub__platform_8h__dep__incl_org.svg | 111 + docs/html/dspm__sub__platform_8h__incl.md5 | 1 + docs/html/dspm__sub__platform_8h__incl.svg | 65 + .../html/dspm__sub__platform_8h__incl_org.svg | 39 + docs/html/dspm__sub__platform_8h_source.html | 124 + docs/html/dsps__add_8h.html | 629 ++++ docs/html/dsps__add_8h.js | 13 + docs/html/dsps__add_8h__dep__incl.md5 | 1 + docs/html/dsps__add_8h__dep__incl.svg | 662 ++++ docs/html/dsps__add_8h__dep__incl_org.svg | 579 +++ docs/html/dsps__add_8h__incl.md5 | 1 + docs/html/dsps__add_8h__incl.svg | 173 + docs/html/dsps__add_8h__incl_org.svg | 147 + docs/html/dsps__add_8h_source.html | 184 + docs/html/dsps__add__f32__ansi_8c.html | 216 ++ docs/html/dsps__add__f32__ansi_8c.js | 4 + docs/html/dsps__add__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__add__f32__ansi_8c__incl.svg | 173 + .../dsps__add__f32__ansi_8c__incl_org.svg | 147 + docs/html/dsps__add__f32__ansi_8c_source.html | 146 + docs/html/dsps__add__platform_8h.html | 126 + .../dsps__add__platform_8h__dep__incl.md5 | 1 + .../dsps__add__platform_8h__dep__incl.svg | 248 ++ .../dsps__add__platform_8h__dep__incl_org.svg | 165 + docs/html/dsps__add__platform_8h__incl.md5 | 1 + docs/html/dsps__add__platform_8h__incl.svg | 65 + .../html/dsps__add__platform_8h__incl_org.svg | 39 + docs/html/dsps__add__platform_8h_source.html | 138 + docs/html/dsps__add__s16__ansi_8c.html | 201 ++ docs/html/dsps__add__s16__ansi_8c.js | 4 + docs/html/dsps__add__s16__ansi_8c__incl.md5 | 1 + docs/html/dsps__add__s16__ansi_8c__incl.svg | 173 + .../dsps__add__s16__ansi_8c__incl_org.svg | 147 + docs/html/dsps__add__s16__ansi_8c_source.html | 140 + docs/html/dsps__add__s8__ansi_8c.html | 201 ++ docs/html/dsps__add__s8__ansi_8c.js | 4 + docs/html/dsps__add__s8__ansi_8c__incl.md5 | 1 + docs/html/dsps__add__s8__ansi_8c__incl.svg | 173 + .../html/dsps__add__s8__ansi_8c__incl_org.svg | 147 + docs/html/dsps__add__s8__ansi_8c_source.html | 139 + docs/html/dsps__addc_8h.html | 287 ++ docs/html/dsps__addc_8h.js | 6 + docs/html/dsps__addc_8h__dep__incl.md5 | 1 + docs/html/dsps__addc_8h__dep__incl.svg | 608 ++++ docs/html/dsps__addc_8h__dep__incl_org.svg | 525 +++ docs/html/dsps__addc_8h__incl.md5 | 1 + docs/html/dsps__addc_8h__incl.svg | 173 + docs/html/dsps__addc_8h__incl_org.svg | 147 + ...8973331709849575d7c14c65808016_icgraph.md5 | 1 + ...8973331709849575d7c14c65808016_icgraph.svg | 83 + ...331709849575d7c14c65808016_icgraph_org.svg | 57 + docs/html/dsps__addc_8h_source.html | 157 + docs/html/dsps__addc__f32__ansi_8c.html | 215 ++ docs/html/dsps__addc__f32__ansi_8c.js | 4 + docs/html/dsps__addc__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__addc__f32__ansi_8c__incl.svg | 173 + .../dsps__addc__f32__ansi_8c__incl_org.svg | 147 + ...8973331709849575d7c14c65808016_icgraph.md5 | 1 + ...8973331709849575d7c14c65808016_icgraph.svg | 83 + ...331709849575d7c14c65808016_icgraph_org.svg | 57 + .../html/dsps__addc__f32__ansi_8c_source.html | 144 + docs/html/dsps__addc__platform_8h.html | 126 + .../dsps__addc__platform_8h__dep__incl.md5 | 1 + .../dsps__addc__platform_8h__dep__incl.svg | 137 + ...dsps__addc__platform_8h__dep__incl_org.svg | 111 + docs/html/dsps__addc__platform_8h__incl.md5 | 1 + docs/html/dsps__addc__platform_8h__incl.svg | 65 + .../dsps__addc__platform_8h__incl_org.svg | 39 + docs/html/dsps__addc__platform_8h_source.html | 125 + docs/html/dsps__biquad_8h.html | 547 +++ docs/html/dsps__biquad_8h.js | 13 + docs/html/dsps__biquad_8h__dep__incl.md5 | 1 + docs/html/dsps__biquad_8h__dep__incl.svg | 770 ++++ docs/html/dsps__biquad_8h__dep__incl_org.svg | 687 ++++ docs/html/dsps__biquad_8h__incl.md5 | 1 + docs/html/dsps__biquad_8h__incl.svg | 173 + docs/html/dsps__biquad_8h__incl_org.svg | 147 + ...f70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 | 1 + ...f70e9932ec03b4ec2e7979f6dc476b_icgraph.svg | 83 + ...9932ec03b4ec2e7979f6dc476b_icgraph_org.svg | 57 + docs/html/dsps__biquad_8h_source.html | 184 + docs/html/dsps__biquad__f32__ansi_8c.html | 203 ++ docs/html/dsps__biquad__f32__ansi_8c.js | 4 + .../html/dsps__biquad__f32__ansi_8c__incl.md5 | 1 + .../html/dsps__biquad__f32__ansi_8c__incl.svg | 173 + .../dsps__biquad__f32__ansi_8c__incl_org.svg | 147 + ...f70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 | 1 + ...f70e9932ec03b4ec2e7979f6dc476b_icgraph.svg | 83 + ...9932ec03b4ec2e7979f6dc476b_icgraph_org.svg | 57 + .../dsps__biquad__f32__ansi_8c_source.html | 140 + docs/html/dsps__biquad__gen_8h.html | 899 +++++ docs/html/dsps__biquad__gen_8h.js | 13 + docs/html/dsps__biquad__gen_8h__dep__incl.md5 | 1 + docs/html/dsps__biquad__gen_8h__dep__incl.svg | 734 ++++ .../dsps__biquad__gen_8h__dep__incl_org.svg | 651 ++++ docs/html/dsps__biquad__gen_8h__incl.md5 | 1 + docs/html/dsps__biquad__gen_8h__incl.svg | 137 + docs/html/dsps__biquad__gen_8h__incl_org.svg | 111 + ...bcec3856bdd4d742ab98f6431903e2_icgraph.md5 | 1 + ...bcec3856bdd4d742ab98f6431903e2_icgraph.svg | 257 ++ ...3856bdd4d742ab98f6431903e2_icgraph_org.svg | 174 + ...286789300a4805e9d133099144ef3e_icgraph.md5 | 1 + ...286789300a4805e9d133099144ef3e_icgraph.svg | 257 ++ ...89300a4805e9d133099144ef3e_icgraph_org.svg | 174 + docs/html/dsps__biquad__gen_8h_source.html | 177 + docs/html/dsps__biquad__gen__f32_8c.html | 896 +++++ docs/html/dsps__biquad__gen__f32_8c.js | 13 + docs/html/dsps__biquad__gen__f32_8c__incl.md5 | 1 + docs/html/dsps__biquad__gen__f32_8c__incl.svg | 200 + .../dsps__biquad__gen__f32_8c__incl_org.svg | 174 + ...bcec3856bdd4d742ab98f6431903e2_icgraph.md5 | 1 + ...bcec3856bdd4d742ab98f6431903e2_icgraph.svg | 257 ++ ...3856bdd4d742ab98f6431903e2_icgraph_org.svg | 174 + ...286789300a4805e9d133099144ef3e_icgraph.md5 | 1 + ...286789300a4805e9d133099144ef3e_icgraph.svg | 257 ++ ...89300a4805e9d133099144ef3e_icgraph_org.svg | 174 + .../dsps__biquad__gen__f32_8c_source.html | 433 +++ docs/html/dsps__biquad__platform_8h.html | 148 + docs/html/dsps__biquad__platform_8h.js | 4 + .../dsps__biquad__platform_8h__dep__incl.md5 | 1 + .../dsps__biquad__platform_8h__dep__incl.svg | 626 ++++ ...ps__biquad__platform_8h__dep__incl_org.svg | 543 +++ docs/html/dsps__biquad__platform_8h__incl.md5 | 1 + docs/html/dsps__biquad__platform_8h__incl.svg | 65 + .../dsps__biquad__platform_8h__incl_org.svg | 39 + .../dsps__biquad__platform_8h_source.html | 140 + docs/html/dsps__biquad__sf32__ansi_8c.html | 201 ++ docs/html/dsps__biquad__sf32__ansi_8c.js | 4 + .../dsps__biquad__sf32__ansi_8c__incl.md5 | 1 + .../dsps__biquad__sf32__ansi_8c__incl.svg | 173 + .../dsps__biquad__sf32__ansi_8c__incl_org.svg | 147 + .../dsps__biquad__sf32__ansi_8c_source.html | 145 + docs/html/dsps__ccorr_8h.html | 307 ++ docs/html/dsps__ccorr_8h.js | 6 + docs/html/dsps__ccorr_8h__incl.md5 | 1 + docs/html/dsps__ccorr_8h__incl.svg | 173 + docs/html/dsps__ccorr_8h__incl_org.svg | 147 + docs/html/dsps__ccorr_8h_source.html | 156 + docs/html/dsps__ccorr__f32__ansi_8c.html | 282 ++ docs/html/dsps__ccorr__f32__ansi_8c.js | 5 + docs/html/dsps__ccorr__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__ccorr__f32__ansi_8c__incl.svg | 218 ++ .../dsps__ccorr__f32__ansi_8c__incl_org.svg | 192 + .../dsps__ccorr__f32__ansi_8c_source.html | 198 + docs/html/dsps__conv_8h.html | 317 ++ docs/html/dsps__conv_8h.js | 6 + docs/html/dsps__conv_8h__dep__incl.md5 | 1 + docs/html/dsps__conv_8h__dep__incl.svg | 752 ++++ docs/html/dsps__conv_8h__dep__incl_org.svg | 669 ++++ docs/html/dsps__conv_8h__incl.md5 | 1 + docs/html/dsps__conv_8h__incl.svg | 173 + docs/html/dsps__conv_8h__incl_org.svg | 147 + docs/html/dsps__conv_8h_source.html | 158 + docs/html/dsps__conv__f32__ansi_8c.html | 263 ++ docs/html/dsps__conv__f32__ansi_8c.js | 5 + docs/html/dsps__conv__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__conv__f32__ansi_8c__incl.svg | 218 ++ .../dsps__conv__f32__ansi_8c__incl_org.svg | 192 + .../html/dsps__conv__f32__ansi_8c_source.html | 198 + docs/html/dsps__conv__platform_8h.html | 126 + .../dsps__conv__platform_8h__dep__incl.md5 | 1 + .../dsps__conv__platform_8h__dep__incl.svg | 716 ++++ ...dsps__conv__platform_8h__dep__incl_org.svg | 633 ++++ docs/html/dsps__conv__platform_8h__incl.md5 | 1 + docs/html/dsps__conv__platform_8h__incl.svg | 65 + .../dsps__conv__platform_8h__incl_org.svg | 39 + docs/html/dsps__conv__platform_8h_source.html | 126 + docs/html/dsps__corr_8h.html | 278 ++ docs/html/dsps__corr_8h.js | 6 + docs/html/dsps__corr_8h__dep__incl.md5 | 1 + docs/html/dsps__corr_8h__dep__incl.svg | 734 ++++ docs/html/dsps__corr_8h__dep__incl_org.svg | 651 ++++ docs/html/dsps__corr_8h__incl.md5 | 1 + docs/html/dsps__corr_8h__incl.svg | 173 + docs/html/dsps__corr_8h__incl_org.svg | 147 + docs/html/dsps__corr_8h_source.html | 156 + docs/html/dsps__corr__f32__ansi_8c.html | 213 ++ docs/html/dsps__corr__f32__ansi_8c.js | 4 + docs/html/dsps__corr__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__corr__f32__ansi_8c__incl.svg | 173 + .../dsps__corr__f32__ansi_8c__incl_org.svg | 147 + .../html/dsps__corr__f32__ansi_8c_source.html | 155 + docs/html/dsps__cplx__gen_8c.html | 214 ++ docs/html/dsps__cplx__gen_8c.js | 4 + docs/html/dsps__cplx__gen_8c__incl.md5 | 1 + docs/html/dsps__cplx__gen_8c__incl.svg | 173 + docs/html/dsps__cplx__gen_8c__incl_org.svg | 147 + docs/html/dsps__cplx__gen_8c_source.html | 159 + docs/html/dsps__cplx__gen_8h.html | 790 ++++ docs/html/dsps__cplx__gen_8h.js | 20 + docs/html/dsps__cplx__gen_8h__dep__incl.md5 | 1 + docs/html/dsps__cplx__gen_8h__dep__incl.svg | 83 + .../dsps__cplx__gen_8h__dep__incl_org.svg | 57 + docs/html/dsps__cplx__gen_8h__incl.md5 | 1 + docs/html/dsps__cplx__gen_8h__incl.svg | 173 + docs/html/dsps__cplx__gen_8h__incl_org.svg | 147 + ...47829667361f9a6d8cf66f54d3d67ad_cgraph.md5 | 1 + ...47829667361f9a6d8cf66f54d3d67ad_cgraph.svg | 65 + ...9667361f9a6d8cf66f54d3d67ad_cgraph_org.svg | 39 + ...a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 | 1 + ...a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg | 65 + ...e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg | 39 + ...0a5d652e0564a4df28109802c03d6e0_cgraph.md5 | 1 + ...0a5d652e0564a4df28109802c03d6e0_cgraph.svg | 65 + ...652e0564a4df28109802c03d6e0_cgraph_org.svg | 39 + docs/html/dsps__cplx__gen_8h_source.html | 205 ++ docs/html/dsps__cplx__gen__init_8c.html | 628 ++++ docs/html/dsps__cplx__gen__init_8c.js | 12 + docs/html/dsps__cplx__gen__init_8c__incl.md5 | 1 + docs/html/dsps__cplx__gen__init_8c__incl.svg | 401 +++ .../dsps__cplx__gen__init_8c__incl_org.svg | 318 ++ ...47829667361f9a6d8cf66f54d3d67ad_cgraph.md5 | 1 + ...47829667361f9a6d8cf66f54d3d67ad_cgraph.svg | 65 + ...9667361f9a6d8cf66f54d3d67ad_cgraph_org.svg | 39 + ...a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 | 1 + ...a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg | 65 + ...e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg | 39 + ...0a5d652e0564a4df28109802c03d6e0_cgraph.md5 | 1 + ...0a5d652e0564a4df28109802c03d6e0_cgraph.svg | 65 + ...652e0564a4df28109802c03d6e0_cgraph_org.svg | 39 + .../html/dsps__cplx__gen__init_8c_source.html | 297 ++ docs/html/dsps__cplx__gen__platform_8h.html | 126 + ...sps__cplx__gen__platform_8h__dep__incl.md5 | 1 + ...sps__cplx__gen__platform_8h__dep__incl.svg | 101 + ..._cplx__gen__platform_8h__dep__incl_org.svg | 75 + .../dsps__cplx__gen__platform_8h__incl.md5 | 1 + .../dsps__cplx__gen__platform_8h__incl.svg | 65 + ...dsps__cplx__gen__platform_8h__incl_org.svg | 39 + .../dsps__cplx__gen__platform_8h_source.html | 136 + docs/html/dsps__d__gen_8c.html | 189 + docs/html/dsps__d__gen_8c.js | 4 + docs/html/dsps__d__gen_8c__incl.md5 | 1 + docs/html/dsps__d__gen_8c__incl.svg | 137 + docs/html/dsps__d__gen_8c__incl_org.svg | 111 + docs/html/dsps__d__gen_8c_source.html | 143 + docs/html/dsps__d__gen_8h.html | 194 + docs/html/dsps__d__gen_8h.js | 4 + docs/html/dsps__d__gen_8h__dep__incl.md5 | 1 + docs/html/dsps__d__gen_8h__dep__incl.svg | 734 ++++ docs/html/dsps__d__gen_8h__dep__incl_org.svg | 651 ++++ docs/html/dsps__d__gen_8h__incl.md5 | 1 + docs/html/dsps__d__gen_8h__incl.svg | 137 + docs/html/dsps__d__gen_8h__incl_org.svg | 111 + docs/html/dsps__d__gen_8h_source.html | 140 + docs/html/dsps__dct_8h.html | 635 ++++ docs/html/dsps__dct_8h.js | 9 + docs/html/dsps__dct_8h__dep__incl.md5 | 1 + docs/html/dsps__dct_8h__dep__incl.svg | 770 ++++ docs/html/dsps__dct_8h__dep__incl_org.svg | 687 ++++ docs/html/dsps__dct_8h__incl.md5 | 1 + docs/html/dsps__dct_8h__incl.svg | 155 + docs/html/dsps__dct_8h__incl_org.svg | 129 + docs/html/dsps__dct_8h_source.html | 159 + docs/html/dsps__dct__f32_8c.html | 393 ++ docs/html/dsps__dct__f32_8c.js | 7 + docs/html/dsps__dct__f32_8c__incl.md5 | 1 + docs/html/dsps__dct__f32_8c__incl.svg | 401 +++ docs/html/dsps__dct__f32_8c__incl_org.svg | 318 ++ docs/html/dsps__dct__f32_8c_source.html | 249 ++ docs/html/dsps__dctiv__f32_8c.html | 252 ++ docs/html/dsps__dctiv__f32_8c.js | 4 + docs/html/dsps__dctiv__f32_8c__incl.md5 | 1 + docs/html/dsps__dctiv__f32_8c__incl.svg | 401 +++ docs/html/dsps__dctiv__f32_8c__incl_org.svg | 318 ++ docs/html/dsps__dctiv__f32_8c_source.html | 214 ++ docs/html/dsps__dotprod_8h.html | 655 ++++ docs/html/dsps__dotprod_8h.js | 16 + docs/html/dsps__dotprod_8h__dep__incl.md5 | 1 + docs/html/dsps__dotprod_8h__dep__incl.svg | 806 +++++ docs/html/dsps__dotprod_8h__dep__incl_org.svg | 723 ++++ docs/html/dsps__dotprod_8h__incl.md5 | 1 + docs/html/dsps__dotprod_8h__incl.svg | 200 + docs/html/dsps__dotprod_8h__incl_org.svg | 174 + docs/html/dsps__dotprod_8h_source.html | 197 + docs/html/dsps__dotprod__f32__ansi_8c.html | 188 + docs/html/dsps__dotprod__f32__ansi_8c.js | 4 + .../dsps__dotprod__f32__ansi_8c__incl.md5 | 1 + .../dsps__dotprod__f32__ansi_8c__incl.svg | 218 ++ .../dsps__dotprod__f32__ansi_8c__incl_org.svg | 192 + .../dsps__dotprod__f32__ansi_8c_source.html | 137 + docs/html/dsps__dotprod__platform_8h.html | 126 + .../dsps__dotprod__platform_8h__dep__incl.md5 | 1 + .../dsps__dotprod__platform_8h__dep__incl.svg | 662 ++++ ...s__dotprod__platform_8h__dep__incl_org.svg | 579 +++ .../html/dsps__dotprod__platform_8h__incl.md5 | 1 + .../html/dsps__dotprod__platform_8h__incl.svg | 65 + .../dsps__dotprod__platform_8h__incl_org.svg | 39 + .../dsps__dotprod__platform_8h_source.html | 148 + docs/html/dsps__dotprod__s16__ansi_8c.html | 202 ++ docs/html/dsps__dotprod__s16__ansi_8c.js | 4 + .../dsps__dotprod__s16__ansi_8c__incl.md5 | 1 + .../dsps__dotprod__s16__ansi_8c__incl.svg | 218 ++ .../dsps__dotprod__s16__ansi_8c__incl_org.svg | 192 + .../dsps__dotprod__s16__ansi_8c_source.html | 145 + docs/html/dsps__dotprode__f32__ansi_8c.html | 200 + docs/html/dsps__dotprode__f32__ansi_8c.js | 4 + .../dsps__dotprode__f32__ansi_8c__incl.md5 | 1 + .../dsps__dotprode__f32__ansi_8c__incl.svg | 218 ++ ...dsps__dotprode__f32__ansi_8c__incl_org.svg | 192 + .../dsps__dotprode__f32__ansi_8c_source.html | 137 + docs/html/dsps__dstiv__f32_8c.html | 256 ++ docs/html/dsps__dstiv__f32_8c.js | 4 + docs/html/dsps__dstiv__f32_8c__incl.md5 | 1 + docs/html/dsps__dstiv__f32_8c__incl.svg | 401 +++ docs/html/dsps__dstiv__f32_8c__incl_org.svg | 318 ++ docs/html/dsps__dstiv__f32_8c_source.html | 218 ++ docs/html/dsps__fft2r_8h.html | 2118 +++++++++++ docs/html/dsps__fft2r_8h.js | 49 + docs/html/dsps__fft2r_8h__dep__incl.md5 | 1 + docs/html/dsps__fft2r_8h__dep__incl.svg | 905 +++++ docs/html/dsps__fft2r_8h__dep__incl_org.svg | 822 +++++ docs/html/dsps__fft2r_8h__incl.md5 | 1 + docs/html/dsps__fft2r_8h__incl.svg | 200 + docs/html/dsps__fft2r_8h__incl_org.svg | 174 + ...100ecbb0541f77c5d784c2ff6128d2a_cgraph.md5 | 1 + ...100ecbb0541f77c5d784c2ff6128d2a_cgraph.svg | 137 + ...cbb0541f77c5d784c2ff6128d2a_cgraph_org.svg | 111 + ...1174f3c8575159be82412f9f3ef8412_cgraph.md5 | 1 + ...1174f3c8575159be82412f9f3ef8412_cgraph.svg | 66 + ...f3c8575159be82412f9f3ef8412_cgraph_org.svg | 40 + ...9aaad1963cbbdb238dacc2072203d31_cgraph.md5 | 1 + ...9aaad1963cbbdb238dacc2072203d31_cgraph.svg | 65 + ...d1963cbbdb238dacc2072203d31_cgraph_org.svg | 39 + ...77638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 | 1 + ...77638f1f5bf15fb2798f51bbbf05e30_cgraph.svg | 65 + ...8f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg | 39 + ...6efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 | 1 + ...6efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg | 110 + ...c911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg | 84 + ...efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 | 1 + ...efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg | 101 + ...911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg | 75 + ...98d68606bf7e1cd35b25197345a9b0_icgraph.md5 | 1 + ...98d68606bf7e1cd35b25197345a9b0_icgraph.svg | 83 + ...8606bf7e1cd35b25197345a9b0_icgraph_org.svg | 57 + ...f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 | 1 + ...f30eaf6ab6af9c67f262e11ef917361_cgraph.svg | 65 + ...af6ab6af9c67f262e11ef917361_cgraph_org.svg | 39 + ...30eaf6ab6af9c67f262e11ef917361_icgraph.md5 | 1 + ...30eaf6ab6af9c67f262e11ef917361_icgraph.svg | 194 + ...f6ab6af9c67f262e11ef917361_icgraph_org.svg | 111 + ...12cd6d2b04793b59881041e37e51738_cgraph.md5 | 1 + ...12cd6d2b04793b59881041e37e51738_cgraph.svg | 65 + ...6d2b04793b59881041e37e51738_cgraph_org.svg | 39 + ...2cd6d2b04793b59881041e37e51738_icgraph.md5 | 1 + ...2cd6d2b04793b59881041e37e51738_icgraph.svg | 137 + ...d2b04793b59881041e37e51738_icgraph_org.svg | 111 + ...3b5f7c6108a9752865753a01e84627a_cgraph.md5 | 1 + ...3b5f7c6108a9752865753a01e84627a_cgraph.svg | 65 + ...7c6108a9752865753a01e84627a_cgraph_org.svg | 39 + ...b94ca984cb2a6935843f2efed9ad233_cgraph.md5 | 1 + ...b94ca984cb2a6935843f2efed9ad233_cgraph.svg | 65 + ...a984cb2a6935843f2efed9ad233_cgraph_org.svg | 39 + ...94ca984cb2a6935843f2efed9ad233_icgraph.md5 | 1 + ...94ca984cb2a6935843f2efed9ad233_icgraph.svg | 176 + ...984cb2a6935843f2efed9ad233_icgraph_org.svg | 93 + ...eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 | 1 + ...eedd9a59867bc7e1a967fb4a8200065_cgraph.svg | 65 + ...9a59867bc7e1a967fb4a8200065_cgraph_org.svg | 39 + ...edd9a59867bc7e1a967fb4a8200065_icgraph.md5 | 1 + ...edd9a59867bc7e1a967fb4a8200065_icgraph.svg | 101 + ...a59867bc7e1a967fb4a8200065_icgraph_org.svg | 75 + ...5f77f0db0301950603a20f9e67822aa_cgraph.md5 | 1 + ...5f77f0db0301950603a20f9e67822aa_cgraph.svg | 128 + ...f0db0301950603a20f9e67822aa_cgraph_org.svg | 102 + ...f77f0db0301950603a20f9e67822aa_icgraph.md5 | 1 + ...f77f0db0301950603a20f9e67822aa_icgraph.svg | 119 + ...0db0301950603a20f9e67822aa_icgraph_org.svg | 93 + ...8535a7b802e71380ae6da8c859288e2_cgraph.md5 | 1 + ...8535a7b802e71380ae6da8c859288e2_cgraph.svg | 83 + ...a7b802e71380ae6da8c859288e2_cgraph_org.svg | 57 + ...6eeaefef23180c3d2c319bfe402b558_cgraph.md5 | 1 + ...6eeaefef23180c3d2c319bfe402b558_cgraph.svg | 65 + ...efef23180c3d2c319bfe402b558_cgraph_org.svg | 39 + ...eeaefef23180c3d2c319bfe402b558_icgraph.md5 | 1 + ...eeaefef23180c3d2c319bfe402b558_icgraph.svg | 155 + ...fef23180c3d2c319bfe402b558_icgraph_org.svg | 129 + docs/html/dsps__fft2r_8h_source.html | 281 ++ .../dsps__fft2r__bitrev__tables__fc32_8c.html | 1142 ++++++ .../dsps__fft2r__bitrev__tables__fc32_8c.js | 24 + ...__fft2r__bitrev__tables__fc32_8c__incl.md5 | 1 + ...__fft2r__bitrev__tables__fc32_8c__incl.svg | 84 + ...t2r__bitrev__tables__fc32_8c__incl_org.svg | 58 + ...a77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 | 1 + ...a77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg | 66 + ...16d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg | 40 + ...fft2r__bitrev__tables__fc32_8c_source.html | 742 ++++ docs/html/dsps__fft2r__fc32__ae32_8c.html | 126 + .../html/dsps__fft2r__fc32__ae32_8c__incl.md5 | 1 + .../html/dsps__fft2r__fc32__ae32_8c__incl.svg | 446 +++ .../dsps__fft2r__fc32__ae32_8c__incl_org.svg | 363 ++ .../dsps__fft2r__fc32__ae32_8c_source.html | 178 + docs/html/dsps__fft2r__fc32__ansi_8c.html | 1021 ++++++ docs/html/dsps__fft2r__fc32__ansi_8c.js | 19 + .../html/dsps__fft2r__fc32__ansi_8c__incl.md5 | 1 + .../html/dsps__fft2r__fc32__ansi_8c__incl.svg | 518 +++ .../dsps__fft2r__fc32__ansi_8c__incl_org.svg | 435 +++ ...9aaad1963cbbdb238dacc2072203d31_cgraph.md5 | 1 + ...9aaad1963cbbdb238dacc2072203d31_cgraph.svg | 65 + ...d1963cbbdb238dacc2072203d31_cgraph_org.svg | 39 + ...77638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 | 1 + ...77638f1f5bf15fb2798f51bbbf05e30_cgraph.svg | 65 + ...8f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg | 39 + ...be1c3a89315e4f5c54a0868240815bc_cgraph.md5 | 1 + ...be1c3a89315e4f5c54a0868240815bc_cgraph.svg | 66 + ...3a89315e4f5c54a0868240815bc_cgraph_org.svg | 40 + ...12cd6d2b04793b59881041e37e51738_cgraph.md5 | 1 + ...12cd6d2b04793b59881041e37e51738_cgraph.svg | 65 + ...6d2b04793b59881041e37e51738_cgraph_org.svg | 39 + ...2cd6d2b04793b59881041e37e51738_icgraph.md5 | 1 + ...2cd6d2b04793b59881041e37e51738_icgraph.svg | 137 + ...d2b04793b59881041e37e51738_icgraph_org.svg | 111 + ...3b5f7c6108a9752865753a01e84627a_cgraph.md5 | 1 + ...3b5f7c6108a9752865753a01e84627a_cgraph.svg | 65 + ...7c6108a9752865753a01e84627a_cgraph_org.svg | 39 + ...5b644e23feecb94b24428862edcc15_icgraph.md5 | 1 + ...5b644e23feecb94b24428862edcc15_icgraph.svg | 65 + ...4e23feecb94b24428862edcc15_icgraph_org.svg | 39 + ...5f77f0db0301950603a20f9e67822aa_cgraph.md5 | 1 + ...5f77f0db0301950603a20f9e67822aa_cgraph.svg | 128 + ...f0db0301950603a20f9e67822aa_cgraph_org.svg | 102 + ...f77f0db0301950603a20f9e67822aa_icgraph.md5 | 1 + ...f77f0db0301950603a20f9e67822aa_icgraph.svg | 119 + ...0db0301950603a20f9e67822aa_icgraph_org.svg | 93 + ...6eeaefef23180c3d2c319bfe402b558_cgraph.md5 | 1 + ...6eeaefef23180c3d2c319bfe402b558_cgraph.svg | 65 + ...efef23180c3d2c319bfe402b558_cgraph_org.svg | 39 + ...eeaefef23180c3d2c319bfe402b558_icgraph.md5 | 1 + ...eeaefef23180c3d2c319bfe402b558_icgraph.svg | 155 + ...fef23180c3d2c319bfe402b558_icgraph_org.svg | 129 + .../dsps__fft2r__fc32__ansi_8c_source.html | 536 +++ docs/html/dsps__fft2r__platform_8h.html | 126 + .../dsps__fft2r__platform_8h__dep__incl.md5 | 1 + .../dsps__fft2r__platform_8h__dep__incl.svg | 788 ++++ ...sps__fft2r__platform_8h__dep__incl_org.svg | 705 ++++ docs/html/dsps__fft2r__platform_8h__incl.md5 | 1 + docs/html/dsps__fft2r__platform_8h__incl.svg | 65 + .../dsps__fft2r__platform_8h__incl_org.svg | 39 + .../html/dsps__fft2r__platform_8h_source.html | 150 + docs/html/dsps__fft2r__sc16__ansi_8c.html | 1144 ++++++ docs/html/dsps__fft2r__sc16__ansi_8c.js | 22 + .../html/dsps__fft2r__sc16__ansi_8c__incl.md5 | 1 + .../html/dsps__fft2r__sc16__ansi_8c__incl.svg | 1130 ++++++ .../dsps__fft2r__sc16__ansi_8c__incl_org.svg | 1047 ++++++ ...6efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 | 1 + ...6efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg | 110 + ...c911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg | 84 + ...efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 | 1 + ...efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg | 101 + ...911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg | 75 + ...f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 | 1 + ...f30eaf6ab6af9c67f262e11ef917361_cgraph.svg | 65 + ...af6ab6af9c67f262e11ef917361_cgraph_org.svg | 39 + ...30eaf6ab6af9c67f262e11ef917361_icgraph.md5 | 1 + ...30eaf6ab6af9c67f262e11ef917361_icgraph.svg | 194 + ...f6ab6af9c67f262e11ef917361_icgraph_org.svg | 111 + ...175e204ea9cc4392f63531f62e725e_icgraph.md5 | 1 + ...175e204ea9cc4392f63531f62e725e_icgraph.svg | 65 + ...204ea9cc4392f63531f62e725e_icgraph_org.svg | 39 + ...b94ca984cb2a6935843f2efed9ad233_cgraph.md5 | 1 + ...b94ca984cb2a6935843f2efed9ad233_cgraph.svg | 65 + ...a984cb2a6935843f2efed9ad233_cgraph_org.svg | 39 + ...94ca984cb2a6935843f2efed9ad233_icgraph.md5 | 1 + ...94ca984cb2a6935843f2efed9ad233_icgraph.svg | 176 + ...984cb2a6935843f2efed9ad233_icgraph_org.svg | 93 + ...a1fe0618df8608d34c3a1d7b8decca_icgraph.md5 | 1 + ...a1fe0618df8608d34c3a1d7b8decca_icgraph.svg | 65 + ...0618df8608d34c3a1d7b8decca_icgraph_org.svg | 39 + ...5b644e23feecb94b24428862edcc15_icgraph.md5 | 1 + ...5b644e23feecb94b24428862edcc15_icgraph.svg | 65 + ...4e23feecb94b24428862edcc15_icgraph_org.svg | 39 + ...eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 | 1 + ...eedd9a59867bc7e1a967fb4a8200065_cgraph.svg | 65 + ...9a59867bc7e1a967fb4a8200065_cgraph_org.svg | 39 + ...edd9a59867bc7e1a967fb4a8200065_icgraph.md5 | 1 + ...edd9a59867bc7e1a967fb4a8200065_icgraph.svg | 101 + ...a59867bc7e1a967fb4a8200065_icgraph_org.svg | 75 + ...39200a07f9f0929f7d8b0bd2d1da07_icgraph.md5 | 1 + ...39200a07f9f0929f7d8b0bd2d1da07_icgraph.svg | 65 + ...0a07f9f0929f7d8b0bd2d1da07_icgraph_org.svg | 39 + ...8535a7b802e71380ae6da8c859288e2_cgraph.md5 | 1 + ...8535a7b802e71380ae6da8c859288e2_cgraph.svg | 83 + ...a7b802e71380ae6da8c859288e2_cgraph_org.svg | 57 + ...1c55de4ce9256978db7f5a7458934d_icgraph.md5 | 1 + ...1c55de4ce9256978db7f5a7458934d_icgraph.svg | 65 + ...de4ce9256978db7f5a7458934d_icgraph_org.svg | 39 + ...32b5684903bc5e41a4fa45f05f8d2e5_cgraph.md5 | 1 + ...32b5684903bc5e41a4fa45f05f8d2e5_cgraph.svg | 137 + ...684903bc5e41a4fa45f05f8d2e5_cgraph_org.svg | 111 + .../dsps__fft2r__sc16__ansi_8c_source.html | 489 +++ docs/html/dsps__fft4r_8h.html | 1347 +++++++ docs/html/dsps__fft4r_8h.js | 32 + docs/html/dsps__fft4r_8h__dep__incl.md5 | 1 + docs/html/dsps__fft4r_8h__dep__incl.svg | 752 ++++ docs/html/dsps__fft4r_8h__dep__incl_org.svg | 669 ++++ docs/html/dsps__fft4r_8h__incl.md5 | 1 + docs/html/dsps__fft4r_8h__incl.svg | 200 + docs/html/dsps__fft4r_8h__incl_org.svg | 174 + ...fde17af510bb2459b79ababe20c2fe5_cgraph.md5 | 1 + ...fde17af510bb2459b79ababe20c2fe5_cgraph.svg | 65 + ...7af510bb2459b79ababe20c2fe5_cgraph_org.svg | 39 + ...372c5dae54caef87742b9e8e2c30a48_cgraph.md5 | 1 + ...372c5dae54caef87742b9e8e2c30a48_cgraph.svg | 65 + ...5dae54caef87742b9e8e2c30a48_cgraph_org.svg | 39 + ...72c5dae54caef87742b9e8e2c30a48_icgraph.md5 | 1 + ...72c5dae54caef87742b9e8e2c30a48_icgraph.svg | 65 + ...dae54caef87742b9e8e2c30a48_icgraph_org.svg | 39 + ...fdee63a8e14ed691fe581929581f8a6_cgraph.md5 | 1 + ...fdee63a8e14ed691fe581929581f8a6_cgraph.svg | 102 + ...63a8e14ed691fe581929581f8a6_cgraph_org.svg | 76 + ...0f24fd982d851501a43e0af7795822d_cgraph.md5 | 1 + ...0f24fd982d851501a43e0af7795822d_cgraph.svg | 66 + ...fd982d851501a43e0af7795822d_cgraph_org.svg | 40 + ...53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 | 1 + ...53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg | 83 + ...559aeb273a1f8cc85859e8c3b57_cgraph_org.svg | 57 + ...b8989c84ce30360b587beea893f0af9_cgraph.md5 | 1 + ...b8989c84ce30360b587beea893f0af9_cgraph.svg | 84 + ...9c84ce30360b587beea893f0af9_cgraph_org.svg | 58 + ...8989c84ce30360b587beea893f0af9_icgraph.md5 | 1 + ...8989c84ce30360b587beea893f0af9_icgraph.svg | 66 + ...c84ce30360b587beea893f0af9_icgraph_org.svg | 40 + docs/html/dsps__fft4r_8h_source.html | 228 ++ .../dsps__fft4r__bitrev__tables__fc32_8c.html | 786 ++++ .../dsps__fft4r__bitrev__tables__fc32_8c.js | 16 + ...__fft4r__bitrev__tables__fc32_8c__incl.md5 | 1 + ...__fft4r__bitrev__tables__fc32_8c__incl.svg | 84 + ...t4r__bitrev__tables__fc32_8c__incl_org.svg | 58 + ...a49ce69b3802614ebf7ab2547c980e_icgraph.md5 | 1 + ...a49ce69b3802614ebf7ab2547c980e_icgraph.svg | 66 + ...e69b3802614ebf7ab2547c980e_icgraph_org.svg | 40 + ...fft4r__bitrev__tables__fc32_8c_source.html | 543 +++ docs/html/dsps__fft4r__fc32__ae32_8c.html | 127 + .../html/dsps__fft4r__fc32__ae32_8c__incl.md5 | 1 + .../html/dsps__fft4r__fc32__ae32_8c__incl.svg | 518 +++ .../dsps__fft4r__fc32__ae32_8c__incl_org.svg | 435 +++ .../dsps__fft4r__fc32__ae32_8c_source.html | 248 ++ docs/html/dsps__fft4r__fc32__ansi_8c.html | 894 +++++ docs/html/dsps__fft4r__fc32__ansi_8c.js | 16 + .../html/dsps__fft4r__fc32__ansi_8c__incl.md5 | 1 + .../html/dsps__fft4r__fc32__ansi_8c__incl.svg | 590 +++ .../dsps__fft4r__fc32__ansi_8c__incl_org.svg | 507 +++ ...372c5dae54caef87742b9e8e2c30a48_cgraph.md5 | 1 + ...372c5dae54caef87742b9e8e2c30a48_cgraph.svg | 65 + ...5dae54caef87742b9e8e2c30a48_cgraph_org.svg | 39 + ...72c5dae54caef87742b9e8e2c30a48_icgraph.md5 | 1 + ...72c5dae54caef87742b9e8e2c30a48_icgraph.svg | 65 + ...dae54caef87742b9e8e2c30a48_icgraph_org.svg | 39 + ...fdee63a8e14ed691fe581929581f8a6_cgraph.md5 | 1 + ...fdee63a8e14ed691fe581929581f8a6_cgraph.svg | 102 + ...63a8e14ed691fe581929581f8a6_cgraph_org.svg | 76 + ...4628ca038198d02d3c4f79bee7ccaf0_cgraph.md5 | 1 + ...4628ca038198d02d3c4f79bee7ccaf0_cgraph.svg | 65 + ...ca038198d02d3c4f79bee7ccaf0_cgraph_org.svg | 39 + ...53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 | 1 + ...53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg | 83 + ...559aeb273a1f8cc85859e8c3b57_cgraph_org.svg | 57 + ...b8989c84ce30360b587beea893f0af9_cgraph.md5 | 1 + ...b8989c84ce30360b587beea893f0af9_cgraph.svg | 84 + ...9c84ce30360b587beea893f0af9_cgraph_org.svg | 58 + ...8989c84ce30360b587beea893f0af9_icgraph.md5 | 1 + ...8989c84ce30360b587beea893f0af9_icgraph.svg | 66 + ...c84ce30360b587beea893f0af9_icgraph_org.svg | 40 + ...a134a0ba92ac4cd85758f836fbde8d0_cgraph.md5 | 1 + ...a134a0ba92ac4cd85758f836fbde8d0_cgraph.svg | 66 + ...a0ba92ac4cd85758f836fbde8d0_cgraph_org.svg | 40 + .../dsps__fft4r__fc32__ansi_8c_source.html | 492 +++ docs/html/dsps__fft4r__platform_8h.html | 126 + .../dsps__fft4r__platform_8h__dep__incl.md5 | 1 + .../dsps__fft4r__platform_8h__dep__incl.svg | 617 ++++ ...sps__fft4r__platform_8h__dep__incl_org.svg | 534 +++ docs/html/dsps__fft4r__platform_8h__incl.md5 | 1 + docs/html/dsps__fft4r__platform_8h__incl.svg | 65 + .../dsps__fft4r__platform_8h__incl_org.svg | 39 + .../html/dsps__fft4r__platform_8h_source.html | 161 + docs/html/dsps__fft__tables_8h.html | 2135 +++++++++++ docs/html/dsps__fft__tables_8h.js | 45 + docs/html/dsps__fft__tables_8h__dep__incl.md5 | 1 + docs/html/dsps__fft__tables_8h__dep__incl.svg | 862 +++++ .../dsps__fft__tables_8h__dep__incl_org.svg | 779 ++++ ...a49ce69b3802614ebf7ab2547c980e_icgraph.md5 | 1 + ...a49ce69b3802614ebf7ab2547c980e_icgraph.svg | 66 + ...e69b3802614ebf7ab2547c980e_icgraph_org.svg | 40 + ...a77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 | 1 + ...a77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg | 66 + ...16d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg | 40 + docs/html/dsps__fft__tables_8h_source.html | 237 ++ docs/html/dsps__fir_8h.html | 1801 +++++++++ docs/html/dsps__fir_8h.js | 33 + docs/html/dsps__fir_8h__dep__incl.md5 | 1 + docs/html/dsps__fir_8h__dep__incl.svg | 860 +++++ docs/html/dsps__fir_8h__dep__incl_org.svg | 777 ++++ docs/html/dsps__fir_8h__incl.md5 | 1 + docs/html/dsps__fir_8h__incl.svg | 263 ++ docs/html/dsps__fir_8h__incl_org.svg | 237 ++ ...2fbb6e7c5079a7f270c155704dd416_icgraph.md5 | 1 + ...2fbb6e7c5079a7f270c155704dd416_icgraph.svg | 65 + ...6e7c5079a7f270c155704dd416_icgraph_org.svg | 39 + ...fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 | 1 + ...fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg | 65 + ...9e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg | 39 + ...dc969f246fb37edd99db16594abb12_icgraph.md5 | 1 + ...dc969f246fb37edd99db16594abb12_icgraph.svg | 83 + ...9f246fb37edd99db16594abb12_icgraph_org.svg | 57 + ...f6d9920c546527191bb76ef2ab082b_icgraph.md5 | 1 + ...f6d9920c546527191bb76ef2ab082b_icgraph.svg | 83 + ...920c546527191bb76ef2ab082b_icgraph_org.svg | 57 + ...1fd251c751f45b9cfa9fa7a3fd820a_icgraph.md5 | 1 + ...1fd251c751f45b9cfa9fa7a3fd820a_icgraph.svg | 65 + ...51c751f45b9cfa9fa7a3fd820a_icgraph_org.svg | 39 + ...e91d33731b90cebf3d0465bd7991d4_icgraph.md5 | 1 + ...e91d33731b90cebf3d0465bd7991d4_icgraph.svg | 65 + ...33731b90cebf3d0465bd7991d4_icgraph_org.svg | 39 + ...d6bccaa81247c566357101e4bf630a_icgraph.md5 | 1 + ...d6bccaa81247c566357101e4bf630a_icgraph.svg | 83 + ...caa81247c566357101e4bf630a_icgraph_org.svg | 57 + docs/html/dsps__fir_8h_source.html | 311 ++ docs/html/dsps__fir__f32__ansi_8c.html | 213 ++ docs/html/dsps__fir__f32__ansi_8c.js | 4 + docs/html/dsps__fir__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__fir__f32__ansi_8c__incl.svg | 263 ++ .../dsps__fir__f32__ansi_8c__incl_org.svg | 237 ++ ...d6bccaa81247c566357101e4bf630a_icgraph.md5 | 1 + ...d6bccaa81247c566357101e4bf630a_icgraph.svg | 83 + ...caa81247c566357101e4bf630a_icgraph_org.svg | 57 + docs/html/dsps__fir__f32__ansi_8c_source.html | 155 + docs/html/dsps__fir__init__f32_8c.html | 288 ++ docs/html/dsps__fir__init__f32_8c.js | 5 + docs/html/dsps__fir__init__f32_8c__incl.md5 | 1 + docs/html/dsps__fir__init__f32_8c__incl.svg | 281 ++ .../dsps__fir__init__f32_8c__incl_org.svg | 255 ++ ...2fbb6e7c5079a7f270c155704dd416_icgraph.md5 | 1 + ...2fbb6e7c5079a7f270c155704dd416_icgraph.svg | 65 + ...6e7c5079a7f270c155704dd416_icgraph_org.svg | 39 + ...f6d9920c546527191bb76ef2ab082b_icgraph.md5 | 1 + ...f6d9920c546527191bb76ef2ab082b_icgraph.svg | 83 + ...920c546527191bb76ef2ab082b_icgraph_org.svg | 57 + docs/html/dsps__fir__init__f32_8c_source.html | 193 + docs/html/dsps__fir__platform_8h.html | 126 + .../dsps__fir__platform_8h__dep__incl.md5 | 1 + .../dsps__fir__platform_8h__dep__incl.svg | 401 +++ .../dsps__fir__platform_8h__dep__incl_org.svg | 318 ++ docs/html/dsps__fir__platform_8h__incl.md5 | 1 + docs/html/dsps__fir__platform_8h__incl.svg | 65 + .../html/dsps__fir__platform_8h__incl_org.svg | 39 + docs/html/dsps__fir__platform_8h_source.html | 146 + docs/html/dsps__fird__f32__ansi_8c.html | 205 ++ docs/html/dsps__fird__f32__ansi_8c.js | 4 + docs/html/dsps__fird__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__fird__f32__ansi_8c__incl.svg | 263 ++ .../dsps__fird__f32__ansi_8c__incl_org.svg | 237 ++ .../html/dsps__fird__f32__ansi_8c_source.html | 157 + docs/html/dsps__fird__init__f32_8c.html | 224 ++ docs/html/dsps__fird__init__f32_8c.js | 4 + docs/html/dsps__fird__init__f32_8c__incl.md5 | 1 + docs/html/dsps__fird__init__f32_8c__incl.svg | 263 ++ .../dsps__fird__init__f32_8c__incl_org.svg | 237 ++ .../html/dsps__fird__init__f32_8c_source.html | 169 + docs/html/dsps__fird__init__s16_8c.html | 467 +++ docs/html/dsps__fird__init__s16_8c.js | 7 + docs/html/dsps__fird__init__s16_8c__incl.md5 | 1 + docs/html/dsps__fird__init__s16_8c__incl.svg | 1049 ++++++ .../dsps__fird__init__s16_8c__incl_org.svg | 966 +++++ ...fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 | 1 + ...fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg | 65 + ...9e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg | 39 + .../html/dsps__fird__init__s16_8c_source.html | 294 ++ docs/html/dsps__fird__s16__ansi_8c.html | 230 ++ docs/html/dsps__fird__s16__ansi_8c.js | 4 + docs/html/dsps__fird__s16__ansi_8c__incl.md5 | 1 + docs/html/dsps__fird__s16__ansi_8c__incl.svg | 263 ++ .../dsps__fird__s16__ansi_8c__incl_org.svg | 237 ++ .../html/dsps__fird__s16__ansi_8c_source.html | 174 + docs/html/dsps__firmr__f32__ansi_8c.html | 220 ++ docs/html/dsps__firmr__f32__ansi_8c.js | 4 + docs/html/dsps__firmr__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__firmr__f32__ansi_8c__incl.svg | 1040 ++++++ .../dsps__firmr__f32__ansi_8c__incl_org.svg | 957 +++++ .../dsps__firmr__f32__ansi_8c_source.html | 163 + docs/html/dsps__firmr__init__f32_8c.html | 272 ++ docs/html/dsps__firmr__init__f32_8c.js | 4 + docs/html/dsps__firmr__init__f32_8c__incl.md5 | 1 + docs/html/dsps__firmr__init__f32_8c__incl.svg | 1040 ++++++ .../dsps__firmr__init__f32_8c__incl_org.svg | 957 +++++ ...e91d33731b90cebf3d0465bd7991d4_icgraph.md5 | 1 + ...e91d33731b90cebf3d0465bd7991d4_icgraph.svg | 65 + ...33731b90cebf3d0465bd7991d4_icgraph_org.svg | 39 + .../dsps__firmr__init__f32_8c_source.html | 191 + docs/html/dsps__firmr__init__s16_8c.html | 304 ++ docs/html/dsps__firmr__init__s16_8c.js | 5 + docs/html/dsps__firmr__init__s16_8c__incl.md5 | 1 + docs/html/dsps__firmr__init__s16_8c__incl.svg | 1058 ++++++ .../dsps__firmr__init__s16_8c__incl_org.svg | 975 +++++ ...67316d18ae01a1cddb38dd9b5c5ded_icgraph.md5 | 1 + ...67316d18ae01a1cddb38dd9b5c5ded_icgraph.svg | 65 + ...6d18ae01a1cddb38dd9b5c5ded_icgraph_org.svg | 39 + .../dsps__firmr__init__s16_8c_source.html | 198 + docs/html/dsps__firmr__s16__ansi_8c.html | 232 ++ docs/html/dsps__firmr__s16__ansi_8c.js | 4 + docs/html/dsps__firmr__s16__ansi_8c__incl.md5 | 1 + docs/html/dsps__firmr__s16__ansi_8c__incl.svg | 1022 ++++++ .../dsps__firmr__s16__ansi_8c__incl_org.svg | 939 +++++ .../dsps__firmr__s16__ansi_8c_source.html | 178 + docs/html/dsps__h__gen_8c.html | 191 + docs/html/dsps__h__gen_8c.js | 4 + docs/html/dsps__h__gen_8c__incl.md5 | 1 + docs/html/dsps__h__gen_8c__incl.svg | 137 + docs/html/dsps__h__gen_8c__incl_org.svg | 111 + docs/html/dsps__h__gen_8c_source.html | 145 + docs/html/dsps__h__gen_8h.html | 196 + docs/html/dsps__h__gen_8h.js | 4 + docs/html/dsps__h__gen_8h__dep__incl.md5 | 1 + docs/html/dsps__h__gen_8h__dep__incl.svg | 734 ++++ docs/html/dsps__h__gen_8h__dep__incl_org.svg | 651 ++++ docs/html/dsps__h__gen_8h__incl.md5 | 1 + docs/html/dsps__h__gen_8h__incl.svg | 137 + docs/html/dsps__h__gen_8h__incl_org.svg | 111 + docs/html/dsps__h__gen_8h_source.html | 141 + docs/html/dsps__math_8h.html | 131 + docs/html/dsps__math_8h__dep__incl.md5 | 1 + docs/html/dsps__math_8h__dep__incl.svg | 734 ++++ docs/html/dsps__math_8h__dep__incl_org.svg | 651 ++++ docs/html/dsps__math_8h__incl.md5 | 1 + docs/html/dsps__math_8h__incl.svg | 473 +++ docs/html/dsps__math_8h__incl_org.svg | 390 ++ docs/html/dsps__math_8h_source.html | 137 + docs/html/dsps__mem_8h.html | 241 ++ docs/html/dsps__mem_8h.js | 7 + docs/html/dsps__mem_8h__incl.md5 | 1 + docs/html/dsps__mem_8h__incl.svg | 263 ++ docs/html/dsps__mem_8h__incl_org.svg | 237 ++ docs/html/dsps__mem_8h_source.html | 154 + docs/html/dsps__mem__platform_8h.html | 126 + .../dsps__mem__platform_8h__dep__incl.md5 | 1 + .../dsps__mem__platform_8h__dep__incl.svg | 65 + .../dsps__mem__platform_8h__dep__incl_org.svg | 39 + docs/html/dsps__mem__platform_8h__incl.md5 | 1 + docs/html/dsps__mem__platform_8h__incl.svg | 65 + .../html/dsps__mem__platform_8h__incl_org.svg | 39 + docs/html/dsps__mem__platform_8h_source.html | 127 + docs/html/dsps__mul_8h.html | 657 ++++ docs/html/dsps__mul_8h.js | 13 + docs/html/dsps__mul_8h__dep__incl.md5 | 1 + docs/html/dsps__mul_8h__dep__incl.svg | 644 ++++ docs/html/dsps__mul_8h__dep__incl_org.svg | 561 +++ docs/html/dsps__mul_8h__incl.md5 | 1 + docs/html/dsps__mul_8h__incl.svg | 173 + docs/html/dsps__mul_8h__incl_org.svg | 147 + ...903110dc74555482b627bad5e3c6aa_icgraph.md5 | 1 + ...903110dc74555482b627bad5e3c6aa_icgraph.svg | 101 + ...10dc74555482b627bad5e3c6aa_icgraph_org.svg | 75 + docs/html/dsps__mul_8h_source.html | 184 + docs/html/dsps__mul__f32__ansi_8c.html | 216 ++ docs/html/dsps__mul__f32__ansi_8c.js | 4 + docs/html/dsps__mul__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__mul__f32__ansi_8c__incl.svg | 173 + .../dsps__mul__f32__ansi_8c__incl_org.svg | 147 + docs/html/dsps__mul__f32__ansi_8c_source.html | 146 + docs/html/dsps__mul__platform_8h.html | 126 + .../dsps__mul__platform_8h__dep__incl.md5 | 1 + .../dsps__mul__platform_8h__dep__incl.svg | 173 + .../dsps__mul__platform_8h__dep__incl_org.svg | 147 + docs/html/dsps__mul__platform_8h__incl.md5 | 1 + docs/html/dsps__mul__platform_8h__incl.svg | 65 + .../html/dsps__mul__platform_8h__incl_org.svg | 39 + docs/html/dsps__mul__platform_8h_source.html | 136 + docs/html/dsps__mul__s16__ansi_8c.html | 230 ++ docs/html/dsps__mul__s16__ansi_8c.js | 4 + docs/html/dsps__mul__s16__ansi_8c__incl.md5 | 1 + docs/html/dsps__mul__s16__ansi_8c__incl.svg | 173 + .../dsps__mul__s16__ansi_8c__incl_org.svg | 147 + ...903110dc74555482b627bad5e3c6aa_icgraph.md5 | 1 + ...903110dc74555482b627bad5e3c6aa_icgraph.svg | 101 + ...10dc74555482b627bad5e3c6aa_icgraph_org.svg | 75 + docs/html/dsps__mul__s16__ansi_8c_source.html | 147 + docs/html/dsps__mul__s8__ansi_8c.html | 201 ++ docs/html/dsps__mul__s8__ansi_8c.js | 4 + docs/html/dsps__mul__s8__ansi_8c__incl.md5 | 1 + docs/html/dsps__mul__s8__ansi_8c__incl.svg | 173 + .../html/dsps__mul__s8__ansi_8c__incl_org.svg | 147 + docs/html/dsps__mul__s8__ansi_8c_source.html | 139 + docs/html/dsps__mulc_8h.html | 402 +++ docs/html/dsps__mulc_8h.js | 9 + docs/html/dsps__mulc_8h__dep__incl.md5 | 1 + docs/html/dsps__mulc_8h__dep__incl.svg | 626 ++++ docs/html/dsps__mulc_8h__dep__incl_org.svg | 543 +++ docs/html/dsps__mulc_8h__incl.md5 | 1 + docs/html/dsps__mulc_8h__incl.svg | 173 + docs/html/dsps__mulc_8h__incl_org.svg | 147 + ...b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 | 1 + ...b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg | 209 ++ ...0d6ff107c7ff8307e2ff612c84_icgraph_org.svg | 183 + docs/html/dsps__mulc_8h_source.html | 169 + docs/html/dsps__mulc__f32__ansi_8c.html | 215 ++ docs/html/dsps__mulc__f32__ansi_8c.js | 4 + docs/html/dsps__mulc__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__mulc__f32__ansi_8c__incl.svg | 173 + .../dsps__mulc__f32__ansi_8c__incl_org.svg | 147 + ...b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 | 1 + ...b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg | 209 ++ ...0d6ff107c7ff8307e2ff612c84_icgraph_org.svg | 183 + .../html/dsps__mulc__f32__ansi_8c_source.html | 144 + docs/html/dsps__mulc__platform_8h.html | 126 + .../dsps__mulc__platform_8h__dep__incl.md5 | 1 + .../dsps__mulc__platform_8h__dep__incl.svg | 155 + ...dsps__mulc__platform_8h__dep__incl_org.svg | 129 + docs/html/dsps__mulc__platform_8h__incl.md5 | 1 + docs/html/dsps__mulc__platform_8h__incl.svg | 65 + .../dsps__mulc__platform_8h__incl_org.svg | 39 + docs/html/dsps__mulc__platform_8h_source.html | 131 + docs/html/dsps__mulc__s16__ansi_8c.html | 189 + docs/html/dsps__mulc__s16__ansi_8c.js | 4 + docs/html/dsps__mulc__s16__ansi_8c__incl.md5 | 1 + docs/html/dsps__mulc__s16__ansi_8c__incl.svg | 173 + .../dsps__mulc__s16__ansi_8c__incl_org.svg | 147 + .../html/dsps__mulc__s16__ansi_8c_source.html | 145 + docs/html/dsps__pwroftwo_8cpp.html | 194 + docs/html/dsps__pwroftwo_8cpp.js | 5 + docs/html/dsps__pwroftwo_8cpp__incl.md5 | 1 + docs/html/dsps__pwroftwo_8cpp__incl.svg | 200 + docs/html/dsps__pwroftwo_8cpp__incl_org.svg | 174 + docs/html/dsps__pwroftwo_8cpp_source.html | 145 + docs/html/dsps__resampler_8h.html | 581 +++ docs/html/dsps__resampler_8h.js | 12 + docs/html/dsps__resampler_8h__dep__incl.md5 | 1 + docs/html/dsps__resampler_8h__dep__incl.svg | 752 ++++ .../dsps__resampler_8h__dep__incl_org.svg | 669 ++++ docs/html/dsps__resampler_8h__incl.md5 | 1 + docs/html/dsps__resampler_8h__incl.svg | 290 ++ docs/html/dsps__resampler_8h__incl_org.svg | 264 ++ ...dda84398bcf6c77c3725aab0a20523d_cgraph.md5 | 1 + ...dda84398bcf6c77c3725aab0a20523d_cgraph.svg | 83 + ...4398bcf6c77c3725aab0a20523d_cgraph_org.svg | 57 + ...fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 | 1 + ...fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg | 83 + ...d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg | 57 + docs/html/dsps__resampler_8h_source.html | 189 + docs/html/dsps__resampler__mr_8c.html | 406 +++ docs/html/dsps__resampler__mr_8c.js | 7 + docs/html/dsps__resampler__mr_8c__incl.md5 | 1 + docs/html/dsps__resampler__mr_8c__incl.svg | 236 ++ .../html/dsps__resampler__mr_8c__incl_org.svg | 210 ++ ...dda84398bcf6c77c3725aab0a20523d_cgraph.md5 | 1 + ...dda84398bcf6c77c3725aab0a20523d_cgraph.svg | 83 + ...4398bcf6c77c3725aab0a20523d_cgraph_org.svg | 57 + ...fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 | 1 + ...fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg | 83 + ...d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg | 57 + docs/html/dsps__resampler__mr_8c_source.html | 217 ++ docs/html/dsps__resampler__ph_8c.html | 281 ++ docs/html/dsps__resampler__ph_8c.js | 5 + docs/html/dsps__resampler__ph_8c__incl.md5 | 1 + docs/html/dsps__resampler__ph_8c__incl.svg | 236 ++ .../html/dsps__resampler__ph_8c__incl_org.svg | 210 ++ docs/html/dsps__resampler__ph_8c_source.html | 193 + docs/html/dsps__sfdr_8h.html | 263 ++ docs/html/dsps__sfdr_8h.js | 5 + docs/html/dsps__sfdr_8h__dep__incl.md5 | 1 + docs/html/dsps__sfdr_8h__dep__incl.svg | 734 ++++ docs/html/dsps__sfdr_8h__dep__incl_org.svg | 651 ++++ docs/html/dsps__sfdr_8h__incl.md5 | 1 + docs/html/dsps__sfdr_8h__incl.svg | 137 + docs/html/dsps__sfdr_8h__incl_org.svg | 111 + ...224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 | 1 + ...224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg | 221 ++ ...5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg | 138 + docs/html/dsps__sfdr_8h_source.html | 142 + docs/html/dsps__sfdr__f32_8cpp.html | 270 ++ docs/html/dsps__sfdr__f32_8cpp.js | 5 + docs/html/dsps__sfdr__f32_8cpp__incl.md5 | 1 + docs/html/dsps__sfdr__f32_8cpp__incl.svg | 455 +++ docs/html/dsps__sfdr__f32_8cpp__incl_org.svg | 372 ++ ...224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 | 1 + ...224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg | 221 ++ ...5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg | 138 + docs/html/dsps__sfdr__f32_8cpp_source.html | 195 + docs/html/dsps__snr_8h.html | 267 ++ docs/html/dsps__snr_8h.js | 5 + docs/html/dsps__snr_8h__dep__incl.md5 | 1 + docs/html/dsps__snr_8h__dep__incl.svg | 734 ++++ docs/html/dsps__snr_8h__dep__incl_org.svg | 651 ++++ docs/html/dsps__snr_8h__incl.md5 | 1 + docs/html/dsps__snr_8h__incl.svg | 137 + docs/html/dsps__snr_8h__incl_org.svg | 111 + ...9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 | 1 + ...9349a0ba3a576bafac3c0ade5278e46_cgraph.svg | 221 ++ ...a0ba3a576bafac3c0ade5278e46_cgraph_org.svg | 138 + docs/html/dsps__snr_8h_source.html | 142 + docs/html/dsps__snr__f32_8cpp.html | 274 ++ docs/html/dsps__snr__f32_8cpp.js | 5 + docs/html/dsps__snr__f32_8cpp__incl.md5 | 1 + docs/html/dsps__snr__f32_8cpp__incl.svg | 455 +++ docs/html/dsps__snr__f32_8cpp__incl_org.svg | 372 ++ ...9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 | 1 + ...9349a0ba3a576bafac3c0ade5278e46_cgraph.svg | 221 ++ ...a0ba3a576bafac3c0ade5278e46_cgraph_org.svg | 138 + docs/html/dsps__snr__f32_8cpp_source.html | 199 + docs/html/dsps__sqrt_8h.html | 362 ++ docs/html/dsps__sqrt_8h.js | 9 + docs/html/dsps__sqrt_8h__dep__incl.md5 | 1 + docs/html/dsps__sqrt_8h__dep__incl.svg | 608 ++++ docs/html/dsps__sqrt_8h__dep__incl_org.svg | 525 +++ docs/html/dsps__sqrt_8h__incl.md5 | 1 + docs/html/dsps__sqrt_8h__incl.svg | 137 + docs/html/dsps__sqrt_8h__incl_org.svg | 111 + ...22485151abeaf46b52452c624f1ffed_cgraph.md5 | 1 + ...22485151abeaf46b52452c624f1ffed_cgraph.svg | 65 + ...5151abeaf46b52452c624f1ffed_cgraph_org.svg | 39 + ...4665713d685c84e903d7925bcb90f5_icgraph.md5 | 1 + ...4665713d685c84e903d7925bcb90f5_icgraph.svg | 65 + ...713d685c84e903d7925bcb90f5_icgraph_org.svg | 39 + docs/html/dsps__sqrt_8h_source.html | 160 + docs/html/dsps__sqrt__f32__ansi_8c.html | 302 ++ docs/html/dsps__sqrt__f32__ansi_8c.js | 6 + docs/html/dsps__sqrt__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__sqrt__f32__ansi_8c__incl.svg | 155 + .../dsps__sqrt__f32__ansi_8c__incl_org.svg | 129 + ...22485151abeaf46b52452c624f1ffed_cgraph.md5 | 1 + ...22485151abeaf46b52452c624f1ffed_cgraph.svg | 65 + ...5151abeaf46b52452c624f1ffed_cgraph_org.svg | 39 + ...2684d023520c90157f420af1892550_icgraph.md5 | 1 + ...2684d023520c90157f420af1892550_icgraph.svg | 65 + ...d023520c90157f420af1892550_icgraph_org.svg | 39 + .../html/dsps__sqrt__f32__ansi_8c_source.html | 176 + docs/html/dsps__sub_8h.html | 629 ++++ docs/html/dsps__sub_8h.js | 13 + docs/html/dsps__sub_8h__dep__incl.md5 | 1 + docs/html/dsps__sub_8h__dep__incl.svg | 626 ++++ docs/html/dsps__sub_8h__dep__incl_org.svg | 543 +++ docs/html/dsps__sub_8h__incl.md5 | 1 + docs/html/dsps__sub_8h__incl.svg | 173 + docs/html/dsps__sub_8h__incl_org.svg | 147 + docs/html/dsps__sub_8h_source.html | 182 + docs/html/dsps__sub__f32__ansi_8c.html | 216 ++ docs/html/dsps__sub__f32__ansi_8c.js | 4 + docs/html/dsps__sub__f32__ansi_8c__incl.md5 | 1 + docs/html/dsps__sub__f32__ansi_8c__incl.svg | 173 + .../dsps__sub__f32__ansi_8c__incl_org.svg | 147 + docs/html/dsps__sub__f32__ansi_8c_source.html | 146 + docs/html/dsps__sub__platform_8h.html | 126 + .../dsps__sub__platform_8h__dep__incl.md5 | 1 + .../dsps__sub__platform_8h__dep__incl.svg | 155 + .../dsps__sub__platform_8h__dep__incl_org.svg | 129 + docs/html/dsps__sub__platform_8h__incl.md5 | 1 + docs/html/dsps__sub__platform_8h__incl.svg | 65 + .../html/dsps__sub__platform_8h__incl_org.svg | 39 + docs/html/dsps__sub__platform_8h_source.html | 136 + docs/html/dsps__sub__s16__ansi_8c.html | 201 ++ docs/html/dsps__sub__s16__ansi_8c.js | 4 + docs/html/dsps__sub__s16__ansi_8c__incl.md5 | 1 + docs/html/dsps__sub__s16__ansi_8c__incl.svg | 173 + .../dsps__sub__s16__ansi_8c__incl_org.svg | 147 + docs/html/dsps__sub__s16__ansi_8c_source.html | 139 + docs/html/dsps__sub__s8__ansi_8c.html | 201 ++ docs/html/dsps__sub__s8__ansi_8c.js | 4 + docs/html/dsps__sub__s8__ansi_8c__incl.md5 | 1 + docs/html/dsps__sub__s8__ansi_8c__incl.svg | 173 + .../html/dsps__sub__s8__ansi_8c__incl_org.svg | 147 + docs/html/dsps__sub__s8__ansi_8c_source.html | 139 + docs/html/dsps__tone__gen_8c.html | 211 ++ docs/html/dsps__tone__gen_8c.js | 4 + docs/html/dsps__tone__gen_8c__incl.md5 | 1 + docs/html/dsps__tone__gen_8c__incl.svg | 155 + docs/html/dsps__tone__gen_8c__incl_org.svg | 129 + docs/html/dsps__tone__gen_8c_source.html | 153 + docs/html/dsps__tone__gen_8h.html | 215 ++ docs/html/dsps__tone__gen_8h.js | 4 + docs/html/dsps__tone__gen_8h__dep__incl.md5 | 1 + docs/html/dsps__tone__gen_8h__dep__incl.svg | 734 ++++ .../dsps__tone__gen_8h__dep__incl_org.svg | 651 ++++ docs/html/dsps__tone__gen_8h__incl.md5 | 1 + docs/html/dsps__tone__gen_8h__incl.svg | 137 + docs/html/dsps__tone__gen_8h__incl_org.svg | 111 + docs/html/dsps__tone__gen_8h_source.html | 140 + docs/html/dsps__view_8cpp.html | 427 +++ docs/html/dsps__view_8cpp.js | 6 + docs/html/dsps__view_8cpp__incl.md5 | 1 + docs/html/dsps__view_8cpp__incl.svg | 236 ++ docs/html/dsps__view_8cpp__incl_org.svg | 210 ++ ...c5a17d48829302cdbba840b2e95824c_cgraph.md5 | 1 + ...c5a17d48829302cdbba840b2e95824c_cgraph.svg | 65 + ...7d48829302cdbba840b2e95824c_cgraph_org.svg | 39 + ...af401ce36afcb7d4527b252f4add42_icgraph.md5 | 1 + ...af401ce36afcb7d4527b252f4add42_icgraph.svg | 83 + ...1ce36afcb7d4527b252f4add42_icgraph_org.svg | 57 + ...d61bbfc19547c63161e9021b703a4f5_cgraph.md5 | 1 + ...d61bbfc19547c63161e9021b703a4f5_cgraph.svg | 65 + ...bfc19547c63161e9021b703a4f5_cgraph_org.svg | 39 + docs/html/dsps__view_8cpp_source.html | 241 ++ docs/html/dsps__view_8h.html | 429 +++ docs/html/dsps__view_8h.js | 6 + docs/html/dsps__view_8h__dep__incl.md5 | 1 + docs/html/dsps__view_8h__dep__incl.svg | 734 ++++ docs/html/dsps__view_8h__dep__incl_org.svg | 651 ++++ docs/html/dsps__view_8h__incl.md5 | 1 + docs/html/dsps__view_8h__incl.svg | 137 + docs/html/dsps__view_8h__incl_org.svg | 111 + ...c5a17d48829302cdbba840b2e95824c_cgraph.md5 | 1 + ...c5a17d48829302cdbba840b2e95824c_cgraph.svg | 65 + ...7d48829302cdbba840b2e95824c_cgraph_org.svg | 39 + ...af401ce36afcb7d4527b252f4add42_icgraph.md5 | 1 + ...af401ce36afcb7d4527b252f4add42_icgraph.svg | 83 + ...1ce36afcb7d4527b252f4add42_icgraph_org.svg | 57 + ...d61bbfc19547c63161e9021b703a4f5_cgraph.md5 | 1 + ...d61bbfc19547c63161e9021b703a4f5_cgraph.svg | 65 + ...bfc19547c63161e9021b703a4f5_cgraph_org.svg | 39 + docs/html/dsps__view_8h_source.html | 145 + docs/html/dsps__wind_8h.html | 131 + docs/html/dsps__wind_8h__dep__incl.md5 | 1 + docs/html/dsps__wind_8h__dep__incl.svg | 716 ++++ docs/html/dsps__wind_8h__dep__incl_org.svg | 633 ++++ docs/html/dsps__wind_8h__incl.md5 | 1 + docs/html/dsps__wind_8h__incl.svg | 214 ++ docs/html/dsps__wind_8h__incl_org.svg | 131 + docs/html/dsps__wind_8h_source.html | 138 + docs/html/dsps__wind__blackman_8h.html | 180 + docs/html/dsps__wind__blackman_8h.js | 4 + .../dsps__wind__blackman_8h__dep__incl.md5 | 1 + .../dsps__wind__blackman_8h__dep__incl.svg | 591 +++ ...dsps__wind__blackman_8h__dep__incl_org.svg | 508 +++ ...977d9a881b534919830d5d8e0bda02_icgraph.md5 | 1 + ...977d9a881b534919830d5d8e0bda02_icgraph.svg | 65 + ...9a881b534919830d5d8e0bda02_icgraph_org.svg | 39 + docs/html/dsps__wind__blackman_8h_source.html | 136 + docs/html/dsps__wind__blackman__f32_8c.html | 203 ++ docs/html/dsps__wind__blackman__f32_8c.js | 5 + .../dsps__wind__blackman__f32_8c__incl.md5 | 1 + .../dsps__wind__blackman__f32_8c__incl.svg | 84 + ...dsps__wind__blackman__f32_8c__incl_org.svg | 58 + ...977d9a881b534919830d5d8e0bda02_icgraph.md5 | 1 + ...977d9a881b534919830d5d8e0bda02_icgraph.svg | 65 + ...9a881b534919830d5d8e0bda02_icgraph_org.svg | 39 + .../dsps__wind__blackman__f32_8c_source.html | 140 + .../html/dsps__wind__blackman__harris_8h.html | 184 + docs/html/dsps__wind__blackman__harris_8h.js | 4 + ...__wind__blackman__harris_8h__dep__incl.md5 | 1 + ...__wind__blackman__harris_8h__dep__incl.svg | 592 +++ ...nd__blackman__harris_8h__dep__incl_org.svg | 509 +++ ...ada8e312889fc1d56298b2122a2f06_icgraph.md5 | 1 + ...ada8e312889fc1d56298b2122a2f06_icgraph.svg | 120 + ...e312889fc1d56298b2122a2f06_icgraph_org.svg | 94 + ...sps__wind__blackman__harris_8h_source.html | 136 + .../dsps__wind__blackman__harris__f32_8c.html | 207 ++ .../dsps__wind__blackman__harris__f32_8c.js | 5 + ...__wind__blackman__harris__f32_8c__incl.md5 | 1 + ...__wind__blackman__harris__f32_8c__incl.svg | 85 + ...nd__blackman__harris__f32_8c__incl_org.svg | 59 + ...ada8e312889fc1d56298b2122a2f06_icgraph.md5 | 1 + ...ada8e312889fc1d56298b2122a2f06_icgraph.svg | 120 + ...e312889fc1d56298b2122a2f06_icgraph_org.svg | 94 + ...wind__blackman__harris__f32_8c_source.html | 144 + .../dsps__wind__blackman__nuttall_8h.html | 184 + docs/html/dsps__wind__blackman__nuttall_8h.js | 4 + ..._wind__blackman__nuttall_8h__dep__incl.md5 | 1 + ..._wind__blackman__nuttall_8h__dep__incl.svg | 592 +++ ...d__blackman__nuttall_8h__dep__incl_org.svg | 509 +++ ...2bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 | 1 + ...2bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg | 66 + ...2c0fc9f73fb8bf735290e7d413_icgraph_org.svg | 40 + ...ps__wind__blackman__nuttall_8h_source.html | 136 + ...dsps__wind__blackman__nuttall__f32_8c.html | 207 ++ .../dsps__wind__blackman__nuttall__f32_8c.js | 5 + ..._wind__blackman__nuttall__f32_8c__incl.md5 | 1 + ..._wind__blackman__nuttall__f32_8c__incl.svg | 85 + ...d__blackman__nuttall__f32_8c__incl_org.svg | 59 + ...2bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 | 1 + ...2bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg | 66 + ...2c0fc9f73fb8bf735290e7d413_icgraph_org.svg | 40 + ...ind__blackman__nuttall__f32_8c_source.html | 144 + docs/html/dsps__wind__flat__top_8h.html | 186 + docs/html/dsps__wind__flat__top_8h.js | 4 + .../dsps__wind__flat__top_8h__dep__incl.md5 | 1 + .../dsps__wind__flat__top_8h__dep__incl.svg | 591 +++ ...sps__wind__flat__top_8h__dep__incl_org.svg | 508 +++ ...27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 | 1 + ...27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg | 65 + ...82b0f3e7d8c769f785afa4f8fd_icgraph_org.svg | 39 + .../html/dsps__wind__flat__top_8h_source.html | 136 + docs/html/dsps__wind__flat__top__f32_8c.html | 209 ++ docs/html/dsps__wind__flat__top__f32_8c.js | 5 + .../dsps__wind__flat__top__f32_8c__incl.md5 | 1 + .../dsps__wind__flat__top__f32_8c__incl.svg | 84 + ...sps__wind__flat__top__f32_8c__incl_org.svg | 58 + ...27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 | 1 + ...27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg | 65 + ...82b0f3e7d8c769f785afa4f8fd_icgraph_org.svg | 39 + .../dsps__wind__flat__top__f32_8c_source.html | 146 + docs/html/dsps__wind__hann_8h.html | 176 + docs/html/dsps__wind__hann_8h.js | 4 + docs/html/dsps__wind__hann_8h__dep__incl.md5 | 1 + docs/html/dsps__wind__hann_8h__dep__incl.svg | 590 +++ .../dsps__wind__hann_8h__dep__incl_org.svg | 507 +++ ...050093a1b25a3349353a381704fa51_icgraph.md5 | 1 + ...050093a1b25a3349353a381704fa51_icgraph.svg | 65 + ...93a1b25a3349353a381704fa51_icgraph_org.svg | 39 + docs/html/dsps__wind__hann_8h_source.html | 136 + docs/html/dsps__wind__hann__f32_8c.html | 199 + docs/html/dsps__wind__hann__f32_8c.js | 5 + docs/html/dsps__wind__hann__f32_8c__incl.md5 | 1 + docs/html/dsps__wind__hann__f32_8c__incl.svg | 83 + .../dsps__wind__hann__f32_8c__incl_org.svg | 57 + ...050093a1b25a3349353a381704fa51_icgraph.md5 | 1 + ...050093a1b25a3349353a381704fa51_icgraph.svg | 65 + ...93a1b25a3349353a381704fa51_icgraph_org.svg | 39 + .../html/dsps__wind__hann__f32_8c_source.html | 136 + docs/html/dsps__wind__nuttall_8h.html | 184 + docs/html/dsps__wind__nuttall_8h.js | 4 + .../dsps__wind__nuttall_8h__dep__incl.md5 | 1 + .../dsps__wind__nuttall_8h__dep__incl.svg | 590 +++ .../dsps__wind__nuttall_8h__dep__incl_org.svg | 507 +++ ...19c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 | 1 + ...19c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg | 65 + ...5cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg | 39 + docs/html/dsps__wind__nuttall_8h_source.html | 136 + docs/html/dsps__wind__nuttall__f32_8c.html | 207 ++ docs/html/dsps__wind__nuttall__f32_8c.js | 5 + .../dsps__wind__nuttall__f32_8c__incl.md5 | 1 + .../dsps__wind__nuttall__f32_8c__incl.svg | 83 + .../dsps__wind__nuttall__f32_8c__incl_org.svg | 57 + ...19c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 | 1 + ...19c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg | 65 + ...5cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg | 39 + .../dsps__wind__nuttall__f32_8c_source.html | 144 + docs/html/dynsections.js | 198 + docs/html/ekf_8cpp.html | 192 + docs/html/ekf_8cpp.js | 5 + docs/html/ekf_8cpp__incl.md5 | 1 + docs/html/ekf_8cpp__incl.svg | 191 + docs/html/ekf_8cpp__incl_org.svg | 165 + ...6423a349aa1b3d900099b28eecc984_icgraph.md5 | 1 + ...6423a349aa1b3d900099b28eecc984_icgraph.svg | 83 + ...a349aa1b3d900099b28eecc984_icgraph_org.svg | 57 + docs/html/ekf_8cpp_source.html | 601 ++++ docs/html/ekf_8h.html | 134 + docs/html/ekf_8h.js | 4 + docs/html/ekf_8h__dep__incl.md5 | 1 + docs/html/ekf_8h__dep__incl.svg | 338 ++ docs/html/ekf_8h__dep__incl_org.svg | 255 ++ docs/html/ekf_8h__incl.md5 | 1 + docs/html/ekf_8h__incl.svg | 137 + docs/html/ekf_8h__incl_org.svg | 111 + docs/html/ekf_8h_source.html | 232 ++ docs/html/ekf__imu13states_8cpp.html | 122 + docs/html/ekf__imu13states_8cpp__incl.md5 | 1 + docs/html/ekf__imu13states_8cpp__incl.svg | 173 + docs/html/ekf__imu13states_8cpp__incl_org.svg | 147 + docs/html/ekf__imu13states_8cpp_source.html | 456 +++ docs/html/ekf__imu13states_8h.html | 132 + docs/html/ekf__imu13states_8h.js | 4 + docs/html/ekf__imu13states_8h__dep__incl.md5 | 1 + docs/html/ekf__imu13states_8h__dep__incl.svg | 302 ++ .../ekf__imu13states_8h__dep__incl_org.svg | 219 ++ docs/html/ekf__imu13states_8h__incl.md5 | 1 + docs/html/ekf__imu13states_8h__incl.svg | 155 + docs/html/ekf__imu13states_8h__incl_org.svg | 129 + docs/html/ekf__imu13states_8h_source.html | 169 + docs/html/esp__attr_8h.html | 120 + docs/html/esp__attr_8h__dep__incl.md5 | 1 + docs/html/esp__attr_8h__dep__incl.svg | 230 ++ docs/html/esp__attr_8h__dep__incl_org.svg | 147 + docs/html/esp__attr_8h_source.html | 127 + docs/html/esp__dsp_8h.html | 148 + docs/html/esp__dsp_8h__dep__incl.md5 | 1 + docs/html/esp__dsp_8h__dep__incl.svg | 698 ++++ docs/html/esp__dsp_8h__dep__incl_org.svg | 615 ++++ docs/html/esp__dsp_8h__incl.md5 | 1 + docs/html/esp__dsp_8h__incl.svg | 1888 ++++++++++ docs/html/esp__dsp_8h__incl_org.svg | 1805 ++++++++++ docs/html/esp__dsp_8h_source.html | 196 + docs/html/esp__err_8h.html | 190 + docs/html/esp__err_8h.js | 6 + docs/html/esp__err_8h__dep__incl.md5 | 1 + docs/html/esp__err_8h__dep__incl.svg | 1778 +++++++++ docs/html/esp__err_8h__dep__incl_org.svg | 1695 +++++++++ docs/html/esp__err_8h__incl.md5 | 1 + docs/html/esp__err_8h__incl.svg | 65 + docs/html/esp__err_8h__incl_org.svg | 39 + docs/html/esp__err_8h_source.html | 136 + docs/html/esp__log_8h.html | 150 + docs/html/esp__log_8h.js | 4 + docs/html/esp__log_8h__dep__incl.md5 | 1 + docs/html/esp__log_8h__dep__incl.svg | 1468 ++++++++ docs/html/esp__log_8h__dep__incl_org.svg | 1385 +++++++ docs/html/esp__log_8h__incl.md5 | 1 + docs/html/esp__log_8h__incl.svg | 65 + docs/html/esp__log_8h__incl_org.svg | 39 + docs/html/esp__log_8h_source.html | 130 + ...board__app_2main_2audio__amp__main_8c.html | 1397 +++++++ ...__board__app_2main_2audio__amp__main_8c.js | 47 + ...__app_2main_2audio__amp__main_8c__incl.md5 | 1 + ...__app_2main_2audio__amp__main_8c__incl.svg | 1735 +++++++++ ...p_2main_2audio__amp__main_8c__incl_org.svg | 1652 +++++++++ ...1b7404dd661c25c3fba8503b22d2d7_icgraph.md5 | 1 + ...1b7404dd661c25c3fba8503b22d2d7_icgraph.svg | 65 + ...04dd661c25c3fba8503b22d2d7_icgraph_org.svg | 39 + ...1a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 | 1 + ...1a7e6affe758e24d45f22bade3f7ac3_cgraph.svg | 119 + ...6affe758e24d45f22bade3f7ac3_cgraph_org.svg | 93 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 | 1 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg | 302 ++ ...4a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg | 219 ++ ...b37162177a4acfc9abcc52ca620736c_cgraph.md5 | 1 + ...b37162177a4acfc9abcc52ca620736c_cgraph.svg | 83 + ...62177a4acfc9abcc52ca620736c_cgraph_org.svg | 57 + ...091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 | 1 + ...091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg | 209 ++ ...1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg | 183 + ...bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 | 1 + ...bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg | 65 + ...245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg | 39 + ...fa0ee2b0d2e41a702707315faa5e10_icgraph.md5 | 1 + ...fa0ee2b0d2e41a702707315faa5e10_icgraph.svg | 65 + ...e2b0d2e41a702707315faa5e10_icgraph_org.svg | 39 + ...app_2main_2audio__amp__main_8c_source.html | 560 +++ ...aphics_2main_23d__graphics__demo_8cpp.html | 671 ++++ ...graphics_2main_23d__graphics__demo_8cpp.js | 12 + ...s_2main_23d__graphics__demo_8cpp__incl.md5 | 1 + ...s_2main_23d__graphics__demo_8cpp__incl.svg | 1744 +++++++++ ...ain_23d__graphics__demo_8cpp__incl_org.svg | 1661 +++++++++ ...edd8bfc49beafeacd3540ba291680c3_cgraph.md5 | 1 + ...edd8bfc49beafeacd3540ba291680c3_cgraph.svg | 195 + ...bfc49beafeacd3540ba291680c3_cgraph_org.svg | 112 + ...dd8bfc49beafeacd3540ba291680c3_icgraph.md5 | 1 + ...dd8bfc49beafeacd3540ba291680c3_icgraph.svg | 65 + ...fc49beafeacd3540ba291680c3_icgraph_org.svg | 39 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 | 1 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.svg | 65 + ...8d7e9de0fd62d17e02ce70a52c_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 65 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 39 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 384 ++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 301 ++ ...3debef909dca35dbf0b6f842df6def3_cgraph.md5 | 1 + ...3debef909dca35dbf0b6f842df6def3_cgraph.svg | 258 ++ ...ef909dca35dbf0b6f842df6def3_cgraph_org.svg | 175 + ...c7c47eff81b6719e589256c8799d5e_icgraph.md5 | 1 + ...c7c47eff81b6719e589256c8799d5e_icgraph.svg | 65 + ...7eff81b6719e589256c8799d5e_icgraph_org.svg | 39 + ...2main_23d__graphics__demo_8cpp_source.html | 366 ++ ...lter_2main_2kalman__filter__demo_8cpp.html | 1478 ++++++++ ...filter_2main_2kalman__filter__demo_8cpp.js | 26 + ...2main_2kalman__filter__demo_8cpp__incl.md5 | 1 + ...2main_2kalman__filter__demo_8cpp__incl.svg | 1915 ++++++++++ ...n_2kalman__filter__demo_8cpp__incl_org.svg | 1832 ++++++++++ ...450ba4dd28ea2acb105a3ece7db976_icgraph.md5 | 1 + ...450ba4dd28ea2acb105a3ece7db976_icgraph.svg | 65 + ...a4dd28ea2acb105a3ece7db976_icgraph_org.svg | 39 + ...967e917dafd16b5f02410c5b10c1d90_cgraph.md5 | 1 + ...967e917dafd16b5f02410c5b10c1d90_cgraph.svg | 303 ++ ...917dafd16b5f02410c5b10c1d90_cgraph_org.svg | 220 ++ ...67e917dafd16b5f02410c5b10c1d90_icgraph.md5 | 1 + ...67e917dafd16b5f02410c5b10c1d90_icgraph.svg | 65 + ...17dafd16b5f02410c5b10c1d90_icgraph_org.svg | 39 + ...955b9e77f5bd23f109feaaed1496af5_cgraph.md5 | 1 + ...955b9e77f5bd23f109feaaed1496af5_cgraph.svg | 303 ++ ...9e77f5bd23f109feaaed1496af5_cgraph_org.svg | 220 ++ ...55b9e77f5bd23f109feaaed1496af5_icgraph.md5 | 1 + ...55b9e77f5bd23f109feaaed1496af5_icgraph.svg | 65 + ...e77f5bd23f109feaaed1496af5_icgraph_org.svg | 39 + ...cb3a970d903b791f523902ab06d694_icgraph.md5 | 1 + ...cb3a970d903b791f523902ab06d694_icgraph.svg | 65 + ...970d903b791f523902ab06d694_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 83 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 57 + ...cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 | 1 + ...cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg | 66 + ...0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg | 40 + ...4145b69708f61a94696cd081386d5a_icgraph.md5 | 1 + ...4145b69708f61a94696cd081386d5a_icgraph.svg | 65 + ...b69708f61a94696cd081386d5a_icgraph_org.svg | 39 + ...35410bb6759629444f03a95bbd7c98_icgraph.md5 | 1 + ...35410bb6759629444f03a95bbd7c98_icgraph.svg | 65 + ...0bb6759629444f03a95bbd7c98_icgraph_org.svg | 39 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 420 +++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 337 ++ ...02d1479863a05aa4759131e408264e_icgraph.md5 | 1 + ...02d1479863a05aa4759131e408264e_icgraph.svg | 65 + ...479863a05aa4759131e408264e_icgraph_org.svg | 39 + ...43b34764385f3f1ad35ce1c00db220f_cgraph.md5 | 1 + ...43b34764385f3f1ad35ce1c00db220f_cgraph.svg | 330 ++ ...4764385f3f1ad35ce1c00db220f_cgraph_org.svg | 247 ++ ...bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 | 1 + ...bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg | 65 + ...0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg | 39 + ...c7c47eff81b6719e589256c8799d5e_icgraph.md5 | 1 + ...c7c47eff81b6719e589256c8799d5e_icgraph.svg | 65 + ...7eff81b6719e589256c8799d5e_icgraph_org.svg | 39 + ...ain_2kalman__filter__demo_8cpp_source.html | 723 ++++ ...matrix1cb1fe1deb600c29dec209d2c7a00817.md5 | 1 + ...matrix1cb1fe1deb600c29dec209d2c7a00817.svg | 101 + ...ix1cb1fe1deb600c29dec209d2c7a00817_org.svg | 75 + ...matrix81d8a4c02362a3a2d045efee0c3d0d23.md5 | 1 + ...matrix81d8a4c02362a3a2d045efee0c3d0d23.svg | 65 + ...ix81d8a4c02362a3a2d045efee0c3d0d23_org.svg | 39 + ...matrix8c3b4e56e245bf58384aec3414d5d8c1.md5 | 1 + ...matrix8c3b4e56e245bf58384aec3414d5d8c1.svg | 1672 +++++++++ ...ix8c3b4e56e245bf58384aec3414d5d8c1_org.svg | 1589 ++++++++ ...atrix914e932f5b873cea5635685522728c5b.html | 121 + ...4e932f5b873cea5635685522728c5b_source.html | 447 +++ ...ix_23d__matrix__data_2cube__matrix_8h.html | 275 ++ ...trix_23d__matrix__data_2cube__matrix_8h.js | 10 + ...d__matrix__data_2cube__matrix_8h__incl.md5 | 1 + ...d__matrix__data_2cube__matrix_8h__incl.svg | 101 + ...atrix__data_2cube__matrix_8h__incl_org.svg | 75 + ..._matrix__data_2cube__matrix_8h_source.html | 166 + ...atrix_23d__matrix__data_2esp__logo_8c.html | 121 + ..._23d__matrix__data_2esp__logo_8c__incl.md5 | 1 + ..._23d__matrix__data_2esp__logo_8c__incl.svg | 101 + ...__matrix__data_2esp__logo_8c__incl_org.svg | 75 + ...3d__matrix__data_2esp__logo_8c_source.html | 399 ++ ...atrix_23d__matrix__data_2esp__logo_8h.html | 178 + ..._matrix_23d__matrix__data_2esp__logo_8h.js | 5 + ..._matrix__data_2esp__logo_8h__dep__incl.md5 | 1 + ..._matrix__data_2esp__logo_8h__dep__incl.svg | 65 + ...rix__data_2esp__logo_8h__dep__incl_org.svg | 39 + ..._23d__matrix__data_2esp__logo_8h__incl.md5 | 1 + ..._23d__matrix__data_2esp__logo_8h__incl.svg | 83 + ...__matrix__data_2esp__logo_8h__incl_org.svg | 57 + ...3d__matrix__data_2esp__logo_8h_source.html | 129 + ...atrix_23d__matrix__data_2esp__text_8c.html | 431 +++ ..._matrix_23d__matrix__data_2esp__text_8c.js | 5 + ..._23d__matrix__data_2esp__text_8c__incl.md5 | 1 + ..._23d__matrix__data_2esp__text_8c__incl.svg | 83 + ...__matrix__data_2esp__text_8c__incl_org.svg | 57 + ...3d__matrix__data_2esp__text_8c_source.html | 365 ++ ...atrix_23d__matrix__data_2esp__text_8h.html | 424 +++ ..._matrix_23d__matrix__data_2esp__text_8h.js | 5 + ..._matrix__data_2esp__text_8h__dep__incl.md5 | 1 + ..._matrix__data_2esp__text_8h__dep__incl.svg | 65 + ...rix__data_2esp__text_8h__dep__incl_org.svg | 39 + ..._23d__matrix__data_2esp__text_8h__incl.md5 | 1 + ..._23d__matrix__data_2esp__text_8h__incl.svg | 65 + ...__matrix__data_2esp__text_8h__incl_org.svg | 39 + ...3d__matrix__data_2esp__text_8h_source.html | 124 + ...__matrix__src_2graphics__support_8cpp.html | 488 +++ ...3d__matrix__src_2graphics__support_8cpp.js | 9 + ...ddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 | 1 + ...ddf00a5f71e067190147e3ecdb49d3f_cgraph.svg | 119 + ...0a5f71e067190147e3ecdb49d3f_cgraph_org.svg | 93 + ...x__src_2graphics__support_8cpp_source.html | 248 ++ ...3d__matrix__src_2graphics__support_8h.html | 652 ++++ ..._23d__matrix__src_2graphics__support_8h.js | 20 + ...rix__src_2graphics__support_8h_source.html | 185 + ...matrixa6ad551b59a70a03108379e6edc21aef.md5 | 1 + ...matrixa6ad551b59a70a03108379e6edc21aef.svg | 83 + ...ixa6ad551b59a70a03108379e6edc21aef_org.svg | 57 + ...matrixb5d34a92c4f429129664397133b80c94.md5 | 1 + ...matrixb5d34a92c4f429129664397133b80c94.svg | 716 ++++ ...ixb5d34a92c4f429129664397133b80c94_org.svg | 633 ++++ ...matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.md5 | 1 + ...matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.svg | 65 + ...ixd35b9eb5a80d44cc7e4bbf9e6c74961c_org.svg | 39 + ...atrixf4c5eabf8e562dab5a785f82358bb809.html | 178 + ..._matrixf4c5eabf8e562dab5a785f82358bb809.js | 5 + ...c5eabf8e562dab5a785f82358bb809_source.html | 126 + ...rix_2t019bfb49dfd377e1ae1ca02507f86ab0.md5 | 1 + ...rix_2t019bfb49dfd377e1ae1ca02507f86ab0.svg | 65 + ...2t019bfb49dfd377e1ae1ca02507f86ab0_org.svg | 39 + ...ix_2t9bb56f8ad4bae71a76185a8ad81e73a8.html | 173 + ...trix_2t9bb56f8ad4bae71a76185a8ad81e73a8.js | 5 + ...b56f8ad4bae71a76185a8ad81e73a8_source.html | 126 + ...rix_2tee747ba2a2f899669dbe249941fddbb2.md5 | 1 + ...rix_2tee747ba2a2f899669dbe249941fddbb2.svg | 83 + ...2tee747ba2a2f899669dbe249941fddbb2_org.svg | 57 + ...ix_2tf467054661c3b740731be32a4a2294d4.html | 121 + ...67054661c3b740731be32a4a2294d4_source.html | 119 + ...board__app_2main_2audio__amp__main_8c.html | 1397 +++++++ ...__board__app_2main_2audio__amp__main_8c.js | 47 + ...__app_2main_2audio__amp__main_8c__incl.md5 | 1 + ...__app_2main_2audio__amp__main_8c__incl.svg | 1735 +++++++++ ...p_2main_2audio__amp__main_8c__incl_org.svg | 1652 +++++++++ ...1b7404dd661c25c3fba8503b22d2d7_icgraph.md5 | 1 + ...1b7404dd661c25c3fba8503b22d2d7_icgraph.svg | 65 + ...04dd661c25c3fba8503b22d2d7_icgraph_org.svg | 39 + ...1a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 | 1 + ...1a7e6affe758e24d45f22bade3f7ac3_cgraph.svg | 119 + ...6affe758e24d45f22bade3f7ac3_cgraph_org.svg | 93 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 | 1 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg | 302 ++ ...4a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg | 219 ++ ...b37162177a4acfc9abcc52ca620736c_cgraph.md5 | 1 + ...b37162177a4acfc9abcc52ca620736c_cgraph.svg | 83 + ...62177a4acfc9abcc52ca620736c_cgraph_org.svg | 57 + ...091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 | 1 + ...091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg | 209 ++ ...1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg | 183 + ...bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 | 1 + ...bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg | 65 + ...245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg | 39 + ...fa0ee2b0d2e41a702707315faa5e10_icgraph.md5 | 1 + ...fa0ee2b0d2e41a702707315faa5e10_icgraph.svg | 65 + ...e2b0d2e41a702707315faa5e10_icgraph_org.svg | 39 + ...app_2main_2audio__amp__main_8c_source.html | 560 +++ ...aphics_2main_23d__graphics__demo_8cpp.html | 549 +++ ...graphics_2main_23d__graphics__demo_8cpp.js | 13 + ...s_2main_23d__graphics__demo_8cpp__incl.md5 | 1 + ...s_2main_23d__graphics__demo_8cpp__incl.svg | 1735 +++++++++ ...ain_23d__graphics__demo_8cpp__incl_org.svg | 1652 +++++++++ ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 | 1 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.svg | 65 + ...8d7e9de0fd62d17e02ce70a52c_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 65 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 39 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 367 ++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 284 ++ ...2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 | 1 + ...2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg | 195 + ...dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg | 112 + ...392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 | 1 + ...392dd06c1a7e0f317d26309d9e0d18_icgraph.svg | 65 + ...d06c1a7e0f317d26309d9e0d18_icgraph_org.svg | 39 + ...3debef909dca35dbf0b6f842df6def3_cgraph.md5 | 1 + ...3debef909dca35dbf0b6f842df6def3_cgraph.svg | 276 ++ ...ef909dca35dbf0b6f842df6def3_cgraph_org.svg | 193 + ...2main_23d__graphics__demo_8cpp_source.html | 254 ++ ...23d__graphics_2main_2init__display_8c.html | 1207 +++++++ ...s_23d__graphics_2main_2init__display_8c.js | 35 + ...graphics_2main_2init__display_8c__incl.md5 | 1 + ...graphics_2main_2init__display_8c__incl.svg | 1672 +++++++++ ...hics_2main_2init__display_8c__incl_org.svg | 1589 ++++++++ ...42e5da5d3336dd10ebda5674ec495c3_cgraph.md5 | 1 + ...42e5da5d3336dd10ebda5674ec495c3_cgraph.svg | 119 + ...da5d3336dd10ebda5674ec495c3_cgraph_org.svg | 93 + ...2e5da5d3336dd10ebda5674ec495c3_icgraph.md5 | 1 + ...2e5da5d3336dd10ebda5674ec495c3_icgraph.svg | 102 + ...a5d3336dd10ebda5674ec495c3_icgraph_org.svg | 76 + ...42706b828d976fd293882d63d561a7_icgraph.md5 | 1 + ...42706b828d976fd293882d63d561a7_icgraph.svg | 102 + ...6b828d976fd293882d63d561a7_icgraph_org.svg | 76 + ...bf166af6a0c6f9ee069922e14c83023_cgraph.md5 | 1 + ...bf166af6a0c6f9ee069922e14c83023_cgraph.svg | 101 + ...6af6a0c6f9ee069922e14c83023_cgraph_org.svg | 75 + ...f166af6a0c6f9ee069922e14c83023_icgraph.md5 | 1 + ...f166af6a0c6f9ee069922e14c83023_icgraph.svg | 102 + ...af6a0c6f9ee069922e14c83023_icgraph_org.svg | 76 + ...7f56c5752f2747c0774a27b5622674b_cgraph.md5 | 1 + ...7f56c5752f2747c0774a27b5622674b_cgraph.svg | 65 + ...c5752f2747c0774a27b5622674b_cgraph_org.svg | 39 + ...f56c5752f2747c0774a27b5622674b_icgraph.md5 | 1 + ...f56c5752f2747c0774a27b5622674b_icgraph.svg | 159 + ...5752f2747c0774a27b5622674b_icgraph_org.svg | 76 + ...0e932afc1e59f18ce869a88e5954baf_cgraph.md5 | 1 + ...0e932afc1e59f18ce869a88e5954baf_cgraph.svg | 65 + ...2afc1e59f18ce869a88e5954baf_cgraph_org.svg | 39 + ...e932afc1e59f18ce869a88e5954baf_icgraph.md5 | 1 + ...e932afc1e59f18ce869a88e5954baf_icgraph.svg | 102 + ...afc1e59f18ce869a88e5954baf_icgraph_org.svg | 76 + ...a76cb12d19d5676634c1a78817fa316_cgraph.md5 | 1 + ...a76cb12d19d5676634c1a78817fa316_cgraph.svg | 222 ++ ...b12d19d5676634c1a78817fa316_cgraph_org.svg | 139 + ...76cb12d19d5676634c1a78817fa316_icgraph.md5 | 1 + ...76cb12d19d5676634c1a78817fa316_icgraph.svg | 84 + ...12d19d5676634c1a78817fa316_icgraph_org.svg | 58 + ...2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 | 1 + ...2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg | 286 ++ ...dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg | 203 ++ ...392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 | 1 + ...392dd06c1a7e0f317d26309d9e0d18_icgraph.svg | 65 + ...d06c1a7e0f317d26309d9e0d18_icgraph_org.svg | 39 + ...504c284aa8a47f2ffee89038bd5b98_icgraph.md5 | 1 + ...504c284aa8a47f2ffee89038bd5b98_icgraph.svg | 204 ++ ...284aa8a47f2ffee89038bd5b98_icgraph_org.svg | 121 + ...aphics_2main_2init__display_8c_source.html | 473 +++ ...__filter_2main_23d__kalman__demo_8cpp.html | 1750 +++++++++ ...an__filter_2main_23d__kalman__demo_8cpp.js | 58 + ...ter_2main_23d__kalman__demo_8cpp__incl.md5 | 1 + ...ter_2main_23d__kalman__demo_8cpp__incl.svg | 1726 +++++++++ ...2main_23d__kalman__demo_8cpp__incl_org.svg | 1643 +++++++++ ...b4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 | 1 + ...b4c2dc5d13163ccfd6157eadb637e5_icgraph.svg | 65 + ...dc5d13163ccfd6157eadb637e5_icgraph_org.svg | 39 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 | 1 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.svg | 65 + ...8d7e9de0fd62d17e02ce70a52c_icgraph_org.svg | 39 + ...bb9efa771a4f9e06817a8cb0d14501_icgraph.md5 | 1 + ...bb9efa771a4f9e06817a8cb0d14501_icgraph.svg | 83 + ...fa771a4f9e06817a8cb0d14501_icgraph_org.svg | 57 + ...a8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 | 1 + ...a8f747686c9736edb1c30a2bf5d3ca_icgraph.svg | 83 + ...47686c9736edb1c30a2bf5d3ca_icgraph_org.svg | 57 + ...d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 | 1 + ...d4e2f025faabb41f47bc054cf3d92a_icgraph.svg | 83 + ...f025faabb41f47bc054cf3d92a_icgraph_org.svg | 57 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 65 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 39 + ...70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 | 1 + ...70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg | 83 + ...4a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg | 57 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 402 +++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 319 ++ ...6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 | 1 + ...6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg | 137 + ...3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg | 111 + ...cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 | 1 + ...cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg | 65 + ...f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg | 39 + ...3debef909dca35dbf0b6f842df6def3_cgraph.md5 | 1 + ...3debef909dca35dbf0b6f842df6def3_cgraph.svg | 339 ++ ...ef909dca35dbf0b6f842df6def3_cgraph_org.svg | 256 ++ ...38e0476293a8e7822b85ba126ba159_icgraph.md5 | 1 + ...38e0476293a8e7822b85ba126ba159_icgraph.svg | 83 + ...476293a8e7822b85ba126ba159_icgraph_org.svg | 57 + ...r_2main_23d__kalman__demo_8cpp_source.html | 611 ++++ ...man__filter_2main_2bmi270__context_8c.html | 594 +++ ...alman__filter_2main_2bmi270__context_8c.js | 5 + ...filter_2main_2bmi270__context_8c__incl.md5 | 1 + ...filter_2main_2bmi270__context_8c__incl.svg | 65 + ...er_2main_2bmi270__context_8c__incl_org.svg | 39 + ...lter_2main_2bmi270__context_8c_source.html | 554 +++ ...aphics_2main_23d__graphics__demo_8cpp.html | 671 ++++ ...graphics_2main_23d__graphics__demo_8cpp.js | 12 + ...s_2main_23d__graphics__demo_8cpp__incl.md5 | 1 + ...s_2main_23d__graphics__demo_8cpp__incl.svg | 1744 +++++++++ ...ain_23d__graphics__demo_8cpp__incl_org.svg | 1661 +++++++++ ...edd8bfc49beafeacd3540ba291680c3_cgraph.md5 | 1 + ...edd8bfc49beafeacd3540ba291680c3_cgraph.svg | 195 + ...bfc49beafeacd3540ba291680c3_cgraph_org.svg | 112 + ...dd8bfc49beafeacd3540ba291680c3_icgraph.md5 | 1 + ...dd8bfc49beafeacd3540ba291680c3_icgraph.svg | 65 + ...fc49beafeacd3540ba291680c3_icgraph_org.svg | 39 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 | 1 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.svg | 65 + ...8d7e9de0fd62d17e02ce70a52c_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 65 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 39 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 384 ++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 301 ++ ...3debef909dca35dbf0b6f842df6def3_cgraph.md5 | 1 + ...3debef909dca35dbf0b6f842df6def3_cgraph.svg | 258 ++ ...ef909dca35dbf0b6f842df6def3_cgraph_org.svg | 175 + ...c7c47eff81b6719e589256c8799d5e_icgraph.md5 | 1 + ...c7c47eff81b6719e589256c8799d5e_icgraph.svg | 65 + ...7eff81b6719e589256c8799d5e_icgraph_org.svg | 39 + ...2main_23d__graphics__demo_8cpp_source.html | 366 ++ ...lter_2main_2kalman__filter__demo_8cpp.html | 1478 ++++++++ ...filter_2main_2kalman__filter__demo_8cpp.js | 26 + ...2main_2kalman__filter__demo_8cpp__incl.md5 | 1 + ...2main_2kalman__filter__demo_8cpp__incl.svg | 1915 ++++++++++ ...n_2kalman__filter__demo_8cpp__incl_org.svg | 1832 ++++++++++ ...450ba4dd28ea2acb105a3ece7db976_icgraph.md5 | 1 + ...450ba4dd28ea2acb105a3ece7db976_icgraph.svg | 65 + ...a4dd28ea2acb105a3ece7db976_icgraph_org.svg | 39 + ...967e917dafd16b5f02410c5b10c1d90_cgraph.md5 | 1 + ...967e917dafd16b5f02410c5b10c1d90_cgraph.svg | 303 ++ ...917dafd16b5f02410c5b10c1d90_cgraph_org.svg | 220 ++ ...67e917dafd16b5f02410c5b10c1d90_icgraph.md5 | 1 + ...67e917dafd16b5f02410c5b10c1d90_icgraph.svg | 65 + ...17dafd16b5f02410c5b10c1d90_icgraph_org.svg | 39 + ...955b9e77f5bd23f109feaaed1496af5_cgraph.md5 | 1 + ...955b9e77f5bd23f109feaaed1496af5_cgraph.svg | 303 ++ ...9e77f5bd23f109feaaed1496af5_cgraph_org.svg | 220 ++ ...55b9e77f5bd23f109feaaed1496af5_icgraph.md5 | 1 + ...55b9e77f5bd23f109feaaed1496af5_icgraph.svg | 65 + ...e77f5bd23f109feaaed1496af5_icgraph_org.svg | 39 + ...cb3a970d903b791f523902ab06d694_icgraph.md5 | 1 + ...cb3a970d903b791f523902ab06d694_icgraph.svg | 65 + ...970d903b791f523902ab06d694_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 83 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 57 + ...cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 | 1 + ...cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg | 66 + ...0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg | 40 + ...4145b69708f61a94696cd081386d5a_icgraph.md5 | 1 + ...4145b69708f61a94696cd081386d5a_icgraph.svg | 65 + ...b69708f61a94696cd081386d5a_icgraph_org.svg | 39 + ...35410bb6759629444f03a95bbd7c98_icgraph.md5 | 1 + ...35410bb6759629444f03a95bbd7c98_icgraph.svg | 65 + ...0bb6759629444f03a95bbd7c98_icgraph_org.svg | 39 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 420 +++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 337 ++ ...02d1479863a05aa4759131e408264e_icgraph.md5 | 1 + ...02d1479863a05aa4759131e408264e_icgraph.svg | 65 + ...479863a05aa4759131e408264e_icgraph_org.svg | 39 + ...43b34764385f3f1ad35ce1c00db220f_cgraph.md5 | 1 + ...43b34764385f3f1ad35ce1c00db220f_cgraph.svg | 330 ++ ...4764385f3f1ad35ce1c00db220f_cgraph_org.svg | 247 ++ ...bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 | 1 + ...bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg | 65 + ...0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg | 39 + ...c7c47eff81b6719e589256c8799d5e_icgraph.md5 | 1 + ...c7c47eff81b6719e589256c8799d5e_icgraph.svg | 65 + ...7eff81b6719e589256c8799d5e_icgraph_org.svg | 39 + ...ain_2kalman__filter__demo_8cpp_source.html | 723 ++++ ...aphics_2main_23d__graphics__demo_8cpp.html | 671 ++++ ...graphics_2main_23d__graphics__demo_8cpp.js | 12 + ...s_2main_23d__graphics__demo_8cpp__incl.md5 | 1 + ...s_2main_23d__graphics__demo_8cpp__incl.svg | 1744 +++++++++ ...ain_23d__graphics__demo_8cpp__incl_org.svg | 1661 +++++++++ ...edd8bfc49beafeacd3540ba291680c3_cgraph.md5 | 1 + ...edd8bfc49beafeacd3540ba291680c3_cgraph.svg | 195 + ...bfc49beafeacd3540ba291680c3_cgraph_org.svg | 112 + ...dd8bfc49beafeacd3540ba291680c3_icgraph.md5 | 1 + ...dd8bfc49beafeacd3540ba291680c3_icgraph.svg | 65 + ...fc49beafeacd3540ba291680c3_icgraph_org.svg | 39 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 | 1 + ...40d28d7e9de0fd62d17e02ce70a52c_icgraph.svg | 65 + ...8d7e9de0fd62d17e02ce70a52c_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 65 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 39 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 384 ++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 301 ++ ...3debef909dca35dbf0b6f842df6def3_cgraph.md5 | 1 + ...3debef909dca35dbf0b6f842df6def3_cgraph.svg | 258 ++ ...ef909dca35dbf0b6f842df6def3_cgraph_org.svg | 175 + ...c7c47eff81b6719e589256c8799d5e_icgraph.md5 | 1 + ...c7c47eff81b6719e589256c8799d5e_icgraph.svg | 65 + ...7eff81b6719e589256c8799d5e_icgraph_org.svg | 39 + ...2main_23d__graphics__demo_8cpp_source.html | 366 ++ ...lter_2main_2kalman__filter__demo_8cpp.html | 1478 ++++++++ ...filter_2main_2kalman__filter__demo_8cpp.js | 26 + ...2main_2kalman__filter__demo_8cpp__incl.md5 | 1 + ...2main_2kalman__filter__demo_8cpp__incl.svg | 1915 ++++++++++ ...n_2kalman__filter__demo_8cpp__incl_org.svg | 1832 ++++++++++ ...450ba4dd28ea2acb105a3ece7db976_icgraph.md5 | 1 + ...450ba4dd28ea2acb105a3ece7db976_icgraph.svg | 65 + ...a4dd28ea2acb105a3ece7db976_icgraph_org.svg | 39 + ...967e917dafd16b5f02410c5b10c1d90_cgraph.md5 | 1 + ...967e917dafd16b5f02410c5b10c1d90_cgraph.svg | 303 ++ ...917dafd16b5f02410c5b10c1d90_cgraph_org.svg | 220 ++ ...67e917dafd16b5f02410c5b10c1d90_icgraph.md5 | 1 + ...67e917dafd16b5f02410c5b10c1d90_icgraph.svg | 65 + ...17dafd16b5f02410c5b10c1d90_icgraph_org.svg | 39 + ...955b9e77f5bd23f109feaaed1496af5_cgraph.md5 | 1 + ...955b9e77f5bd23f109feaaed1496af5_cgraph.svg | 303 ++ ...9e77f5bd23f109feaaed1496af5_cgraph_org.svg | 220 ++ ...55b9e77f5bd23f109feaaed1496af5_icgraph.md5 | 1 + ...55b9e77f5bd23f109feaaed1496af5_icgraph.svg | 65 + ...e77f5bd23f109feaaed1496af5_icgraph_org.svg | 39 + ...cb3a970d903b791f523902ab06d694_icgraph.md5 | 1 + ...cb3a970d903b791f523902ab06d694_icgraph.svg | 65 + ...970d903b791f523902ab06d694_icgraph_org.svg | 39 + ...024d66e45ca738ce324999e3d8f75b_icgraph.md5 | 1 + ...024d66e45ca738ce324999e3d8f75b_icgraph.svg | 83 + ...66e45ca738ce324999e3d8f75b_icgraph_org.svg | 57 + ...cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 | 1 + ...cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg | 66 + ...0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg | 40 + ...4145b69708f61a94696cd081386d5a_icgraph.md5 | 1 + ...4145b69708f61a94696cd081386d5a_icgraph.svg | 65 + ...b69708f61a94696cd081386d5a_icgraph_org.svg | 39 + ...35410bb6759629444f03a95bbd7c98_icgraph.md5 | 1 + ...35410bb6759629444f03a95bbd7c98_icgraph.svg | 65 + ...0bb6759629444f03a95bbd7c98_icgraph_org.svg | 39 + ...ce06be17fc37d675118a678a8100a36_cgraph.md5 | 1 + ...ce06be17fc37d675118a678a8100a36_cgraph.svg | 420 +++ ...be17fc37d675118a678a8100a36_cgraph_org.svg | 337 ++ ...02d1479863a05aa4759131e408264e_icgraph.md5 | 1 + ...02d1479863a05aa4759131e408264e_icgraph.svg | 65 + ...479863a05aa4759131e408264e_icgraph_org.svg | 39 + ...43b34764385f3f1ad35ce1c00db220f_cgraph.md5 | 1 + ...43b34764385f3f1ad35ce1c00db220f_cgraph.svg | 330 ++ ...4764385f3f1ad35ce1c00db220f_cgraph_org.svg | 247 ++ ...bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 | 1 + ...bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg | 65 + ...0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg | 39 + ...c7c47eff81b6719e589256c8799d5e_icgraph.md5 | 1 + ...c7c47eff81b6719e589256c8799d5e_icgraph.svg | 65 + ...7eff81b6719e589256c8799d5e_icgraph_org.svg | 39 + ...ain_2kalman__filter__demo_8cpp_source.html | 723 ++++ ...ix_23d__matrix__data_2cube__matrix_8h.html | 275 ++ ...trix_23d__matrix__data_2cube__matrix_8h.js | 10 + ...d__matrix__data_2cube__matrix_8h__incl.md5 | 1 + ...d__matrix__data_2cube__matrix_8h__incl.svg | 101 + ...atrix__data_2cube__matrix_8h__incl_org.svg | 75 + ..._matrix__data_2cube__matrix_8h_source.html | 166 + ...atrix_23d__matrix__data_2esp__logo_8c.html | 121 + ..._23d__matrix__data_2esp__logo_8c__incl.md5 | 1 + ..._23d__matrix__data_2esp__logo_8c__incl.svg | 101 + ...__matrix__data_2esp__logo_8c__incl_org.svg | 75 + ...3d__matrix__data_2esp__logo_8c_source.html | 399 ++ ...atrix_23d__matrix__data_2esp__logo_8h.html | 178 + ..._matrix_23d__matrix__data_2esp__logo_8h.js | 5 + ..._matrix__data_2esp__logo_8h__dep__incl.md5 | 1 + ..._matrix__data_2esp__logo_8h__dep__incl.svg | 65 + ...rix__data_2esp__logo_8h__dep__incl_org.svg | 39 + ..._23d__matrix__data_2esp__logo_8h__incl.md5 | 1 + ..._23d__matrix__data_2esp__logo_8h__incl.svg | 83 + ...__matrix__data_2esp__logo_8h__incl_org.svg | 57 + ...3d__matrix__data_2esp__logo_8h_source.html | 129 + ...atrix_23d__matrix__data_2esp__text_8c.html | 431 +++ ..._matrix_23d__matrix__data_2esp__text_8c.js | 5 + ..._23d__matrix__data_2esp__text_8c__incl.md5 | 1 + ..._23d__matrix__data_2esp__text_8c__incl.svg | 83 + ...__matrix__data_2esp__text_8c__incl_org.svg | 57 + ...3d__matrix__data_2esp__text_8c_source.html | 365 ++ ...atrix_23d__matrix__data_2esp__text_8h.html | 428 +++ ..._matrix_23d__matrix__data_2esp__text_8h.js | 5 + ..._matrix__data_2esp__text_8h__dep__incl.md5 | 1 + ..._matrix__data_2esp__text_8h__dep__incl.svg | 65 + ...rix__data_2esp__text_8h__dep__incl_org.svg | 39 + ..._23d__matrix__data_2esp__text_8h__incl.md5 | 1 + ..._23d__matrix__data_2esp__text_8h__incl.svg | 65 + ...__matrix__data_2esp__text_8h__incl_org.svg | 39 + ...3d__matrix__data_2esp__text_8h_source.html | 124 + ...atrix__data_2image__to__3d__matrix_8c.html | 121 + ...__data_2image__to__3d__matrix_8c__incl.md5 | 1 + ...__data_2image__to__3d__matrix_8c__incl.svg | 101 + ...ta_2image__to__3d__matrix_8c__incl_org.svg | 75 + ...data_2image__to__3d__matrix_8c_source.html | 447 +++ ...atrix__data_2image__to__3d__matrix_8h.html | 178 + ..._matrix__data_2image__to__3d__matrix_8h.js | 5 + ...a_2image__to__3d__matrix_8h__dep__incl.md5 | 1 + ...a_2image__to__3d__matrix_8h__dep__incl.svg | 65 + ...mage__to__3d__matrix_8h__dep__incl_org.svg | 39 + ...__data_2image__to__3d__matrix_8h__incl.md5 | 1 + ...__data_2image__to__3d__matrix_8h__incl.svg | 83 + ...ta_2image__to__3d__matrix_8h__incl_org.svg | 57 + ...data_2image__to__3d__matrix_8h_source.html | 126 + ...__matrix__src_2graphics__support_8cpp.html | 488 +++ ...3d__matrix__src_2graphics__support_8cpp.js | 9 + ...rix__src_2graphics__support_8cpp__incl.md5 | 1 + ...rix__src_2graphics__support_8cpp__incl.svg | 716 ++++ ..._src_2graphics__support_8cpp__incl_org.svg | 633 ++++ ...ddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 | 1 + ...ddf00a5f71e067190147e3ecdb49d3f_cgraph.svg | 119 + ...0a5f71e067190147e3ecdb49d3f_cgraph_org.svg | 93 + ...x__src_2graphics__support_8cpp_source.html | 248 ++ ...3d__matrix__src_2graphics__support_8h.html | 700 ++++ ..._23d__matrix__src_2graphics__support_8h.js | 20 + ...__src_2graphics__support_8h__dep__incl.md5 | 1 + ...__src_2graphics__support_8h__dep__incl.svg | 65 + ...c_2graphics__support_8h__dep__incl_org.svg | 39 + ...atrix__src_2graphics__support_8h__incl.md5 | 1 + ...atrix__src_2graphics__support_8h__incl.svg | 1672 +++++++++ ...x__src_2graphics__support_8h__incl_org.svg | 1589 ++++++++ ...5dfc8616993b1485635978ec29513d_icgraph.md5 | 1 + ...5dfc8616993b1485635978ec29513d_icgraph.svg | 345 ++ ...8616993b1485635978ec29513d_icgraph_org.svg | 319 ++ ...61f858eac611923f3e090a2a4837c8_icgraph.md5 | 1 + ...61f858eac611923f3e090a2a4837c8_icgraph.svg | 465 +++ ...58eac611923f3e090a2a4837c8_icgraph_org.svg | 382 ++ ...3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 | 1 + ...3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg | 227 ++ ...bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg | 201 ++ ...c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 | 1 + ...c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg | 65 + ...601603a6d1b586b8ad9aa7ee98_icgraph_org.svg | 39 + ...ddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 | 1 + ...ddf00a5f71e067190147e3ecdb49d3f_cgraph.svg | 119 + ...0a5f71e067190147e3ecdb49d3f_cgraph_org.svg | 93 + ...df00a5f71e067190147e3ecdb49d3f_icgraph.md5 | 1 + ...df00a5f71e067190147e3ecdb49d3f_icgraph.svg | 509 +++ ...a5f71e067190147e3ecdb49d3f_icgraph_org.svg | 426 +++ ...rix__src_2graphics__support_8h_source.html | 185 + ..._2templates_2template__img__to__3d_8c.html | 121 + ...plates_2template__img__to__3d_8c__incl.md5 | 1 + ...plates_2template__img__to__3d_8c__incl.svg | 65 + ...es_2template__img__to__3d_8c__incl_org.svg | 39 + ...ates_2template__img__to__3d_8c_source.html | 119 + ..._2templates_2template__img__to__3d_8h.html | 173 + ...ix_2templates_2template__img__to__3d_8h.js | 5 + ...plates_2template__img__to__3d_8h__incl.md5 | 1 + ...plates_2template__img__to__3d_8h__incl.svg | 83 + ...es_2template__img__to__3d_8h__incl_org.svg | 57 + ...ates_2template__img__to__3d_8h_source.html | 126 + docs/html/files.html | 552 +++ docs/html/files_dup.js | 5 + docs/html/functions.html | 113 + docs/html/functions_b.html | 114 + docs/html/functions_c.html | 126 + docs/html/functions_d.html | 127 + docs/html/functions_dup.js | 28 + docs/html/functions_e.html | 115 + docs/html/functions_f.html | 112 + docs/html/functions_func.html | 238 ++ docs/html/functions_g.html | 110 + docs/html/functions_h.html | 108 + docs/html/functions_i.html | 113 + docs/html/functions_k.html | 107 + docs/html/functions_l.html | 114 + docs/html/functions_m.html | 113 + docs/html/functions_n.html | 112 + docs/html/functions_o.html | 115 + docs/html/functions_p.html | 115 + docs/html/functions_q.html | 110 + docs/html/functions_r.html | 131 + docs/html/functions_s.html | 135 + docs/html/functions_t.html | 111 + docs/html/functions_u.html | 112 + docs/html/functions_v.html | 108 + docs/html/functions_vars.html | 341 ++ docs/html/functions_w.html | 111 + docs/html/functions_x.html | 108 + docs/html/functions_y.html | 107 + docs/html/functions_~.html | 109 + docs/html/globals.html | 111 + docs/html/globals_a.html | 133 + docs/html/globals_b.html | 195 + docs/html/globals_c.html | 167 + docs/html/globals_d.html | 441 +++ docs/html/globals_defs.html | 108 + docs/html/globals_defs.js | 26 + docs/html/globals_defs_a.html | 108 + docs/html/globals_defs_b.html | 140 + docs/html/globals_defs_c.html | 138 + docs/html/globals_defs_d.html | 181 + docs/html/globals_defs_e.html | 117 + docs/html/globals_defs_f.html | 117 + docs/html/globals_defs_i.html | 108 + docs/html/globals_defs_k.html | 107 + docs/html/globals_defs_l.html | 116 + docs/html/globals_defs_m.html | 113 + docs/html/globals_defs_n.html | 109 + docs/html/globals_defs_o.html | 108 + docs/html/globals_defs_p.html | 107 + docs/html/globals_defs_q.html | 107 + docs/html/globals_defs_r.html | 109 + docs/html/globals_defs_s.html | 124 + docs/html/globals_defs_t.html | 109 + docs/html/globals_defs_u.html | 116 + docs/html/globals_defs_v.html | 108 + docs/html/globals_defs_w.html | 111 + docs/html/globals_defs_x.html | 107 + docs/html/globals_defs_y.html | 107 + docs/html/globals_dup.js | 28 + docs/html/globals_e.html | 124 + docs/html/globals_enum.html | 114 + docs/html/globals_eval.html | 174 + docs/html/globals_f.html | 128 + docs/html/globals_func.html | 108 + docs/html/globals_func.js | 23 + docs/html/globals_func_a.html | 119 + docs/html/globals_func_b.html | 113 + docs/html/globals_func_c.html | 113 + docs/html/globals_func_d.html | 330 ++ docs/html/globals_func_e.html | 110 + docs/html/globals_func_f.html | 108 + docs/html/globals_func_g.html | 109 + docs/html/globals_func_i.html | 110 + docs/html/globals_func_k.html | 108 + docs/html/globals_func_l.html | 124 + docs/html/globals_func_m.html | 109 + docs/html/globals_func_p.html | 108 + docs/html/globals_func_r.html | 120 + docs/html/globals_func_s.html | 113 + docs/html/globals_func_t.html | 148 + docs/html/globals_func_u.html | 110 + docs/html/globals_func_v.html | 108 + docs/html/globals_func_w.html | 122 + docs/html/globals_func_x.html | 112 + docs/html/globals_g.html | 114 + docs/html/globals_h.html | 109 + docs/html/globals_i.html | 132 + docs/html/globals_k.html | 111 + docs/html/globals_l.html | 151 + docs/html/globals_m.html | 121 + docs/html/globals_n.html | 110 + docs/html/globals_o.html | 111 + docs/html/globals_p.html | 115 + docs/html/globals_q.html | 107 + docs/html/globals_r.html | 124 + docs/html/globals_s.html | 153 + docs/html/globals_t.html | 166 + docs/html/globals_type.html | 121 + docs/html/globals_u.html | 120 + docs/html/globals_v.html | 110 + docs/html/globals_vars.html | 107 + docs/html/globals_vars.js | 25 + docs/html/globals_vars_a.html | 113 + docs/html/globals_vars_b.html | 148 + docs/html/globals_vars_c.html | 121 + docs/html/globals_vars_d.html | 141 + docs/html/globals_vars_e.html | 107 + docs/html/globals_vars_f.html | 111 + docs/html/globals_vars_g.html | 111 + docs/html/globals_vars_h.html | 109 + docs/html/globals_vars_i.html | 122 + docs/html/globals_vars_k.html | 108 + docs/html/globals_vars_l.html | 113 + docs/html/globals_vars_m.html | 111 + docs/html/globals_vars_n.html | 108 + docs/html/globals_vars_o.html | 107 + docs/html/globals_vars_p.html | 112 + docs/html/globals_vars_r.html | 107 + docs/html/globals_vars_s.html | 126 + docs/html/globals_vars_t.html | 111 + docs/html/globals_vars_w.html | 108 + docs/html/globals_vars_x.html | 107 + docs/html/globals_vars_y.html | 109 + docs/html/globals_w.html | 134 + docs/html/globals_x.html | 114 + docs/html/globals_y.html | 110 + docs/html/graph_legend.html | 165 + docs/html/graph_legend.md5 | 1 + docs/html/graph_legend.svg | 167 + docs/html/hierarchy.html | 146 + docs/html/hierarchy.js | 39 + docs/html/index.html | 106 + docs/html/inherit_graph_0.md5 | 1 + docs/html/inherit_graph_0.svg | 22 + docs/html/inherit_graph_1.md5 | 1 + docs/html/inherit_graph_1.svg | 22 + docs/html/inherit_graph_10.md5 | 1 + docs/html/inherit_graph_10.svg | 39 + docs/html/inherit_graph_11.md5 | 1 + docs/html/inherit_graph_11.svg | 21 + docs/html/inherit_graph_12.md5 | 1 + docs/html/inherit_graph_12.svg | 21 + docs/html/inherit_graph_13.md5 | 1 + docs/html/inherit_graph_13.svg | 21 + docs/html/inherit_graph_14.md5 | 1 + docs/html/inherit_graph_14.svg | 21 + docs/html/inherit_graph_15.md5 | 1 + docs/html/inherit_graph_15.svg | 21 + docs/html/inherit_graph_16.md5 | 1 + docs/html/inherit_graph_16.svg | 21 + docs/html/inherit_graph_17.md5 | 1 + docs/html/inherit_graph_17.svg | 21 + docs/html/inherit_graph_18.md5 | 1 + docs/html/inherit_graph_18.svg | 21 + docs/html/inherit_graph_19.md5 | 1 + docs/html/inherit_graph_19.svg | 21 + docs/html/inherit_graph_2.md5 | 1 + docs/html/inherit_graph_2.svg | 22 + docs/html/inherit_graph_20.md5 | 1 + docs/html/inherit_graph_20.svg | 21 + docs/html/inherit_graph_21.md5 | 1 + docs/html/inherit_graph_21.svg | 21 + docs/html/inherit_graph_22.md5 | 1 + docs/html/inherit_graph_22.svg | 21 + docs/html/inherit_graph_23.md5 | 1 + docs/html/inherit_graph_23.svg | 21 + docs/html/inherit_graph_24.md5 | 1 + docs/html/inherit_graph_24.svg | 21 + docs/html/inherit_graph_25.md5 | 1 + docs/html/inherit_graph_25.svg | 21 + docs/html/inherit_graph_26.md5 | 1 + docs/html/inherit_graph_26.svg | 21 + docs/html/inherit_graph_27.md5 | 1 + docs/html/inherit_graph_27.svg | 21 + docs/html/inherit_graph_28.md5 | 1 + docs/html/inherit_graph_28.svg | 21 + docs/html/inherit_graph_29.md5 | 1 + docs/html/inherit_graph_29.svg | 21 + docs/html/inherit_graph_3.md5 | 1 + docs/html/inherit_graph_3.svg | 21 + docs/html/inherit_graph_30.md5 | 1 + docs/html/inherit_graph_30.svg | 21 + docs/html/inherit_graph_31.md5 | 1 + docs/html/inherit_graph_31.svg | 21 + docs/html/inherit_graph_32.md5 | 1 + docs/html/inherit_graph_32.svg | 21 + docs/html/inherit_graph_33.md5 | 1 + docs/html/inherit_graph_33.svg | 21 + docs/html/inherit_graph_4.md5 | 1 + docs/html/inherit_graph_4.svg | 21 + docs/html/inherit_graph_5.md5 | 1 + docs/html/inherit_graph_5.svg | 21 + docs/html/inherit_graph_6.md5 | 1 + docs/html/inherit_graph_6.svg | 21 + docs/html/inherit_graph_7.md5 | 1 + docs/html/inherit_graph_7.svg | 21 + docs/html/inherit_graph_8.md5 | 1 + docs/html/inherit_graph_8.svg | 21 + docs/html/inherit_graph_9.md5 | 1 + docs/html/inherit_graph_9.svg | 21 + docs/html/inherits.html | 143 + docs/html/jquery.js | 204 ++ docs/html/led__strip_8h.html | 524 +++ docs/html/led__strip_8h.js | 9 + docs/html/led__strip_8h__dep__incl.md5 | 1 + docs/html/led__strip_8h__dep__incl.svg | 194 + docs/html/led__strip_8h__dep__incl_org.svg | 111 + docs/html/led__strip_8h__incl.md5 | 1 + docs/html/led__strip_8h__incl.svg | 329 ++ docs/html/led__strip_8h__incl_org.svg | 246 ++ ...7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 | 1 + ...7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg | 83 + ...9ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg | 57 + ...5423873d3ac95155349a89b51d651b_icgraph.md5 | 1 + ...5423873d3ac95155349a89b51d651b_icgraph.svg | 83 + ...873d3ac95155349a89b51d651b_icgraph_org.svg | 57 + docs/html/led__strip_8h_source.html | 152 + docs/html/led__strip__api_8c.html | 547 +++ docs/html/led__strip__api_8c.js | 10 + docs/html/led__strip__api_8c__incl.md5 | 1 + docs/html/led__strip__api_8c__incl.svg | 428 +++ docs/html/led__strip__api_8c__incl_org.svg | 345 ++ ...7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 | 1 + ...7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg | 83 + ...9ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg | 57 + ...5423873d3ac95155349a89b51d651b_icgraph.md5 | 1 + ...5423873d3ac95155349a89b51d651b_icgraph.svg | 83 + ...873d3ac95155349a89b51d651b_icgraph_org.svg | 57 + docs/html/led__strip__api_8c_source.html | 229 ++ docs/html/led__strip__interface_8h.html | 155 + docs/html/led__strip__interface_8h.js | 5 + .../led__strip__interface_8h__dep__incl.md5 | 1 + .../led__strip__interface_8h__dep__incl.svg | 119 + ...ed__strip__interface_8h__dep__incl_org.svg | 93 + docs/html/led__strip__interface_8h__incl.md5 | 1 + docs/html/led__strip__interface_8h__incl.svg | 101 + .../led__strip__interface_8h__incl_org.svg | 75 + .../html/led__strip__interface_8h_source.html | 147 + docs/html/led__strip__rmt_8h.html | 300 ++ docs/html/led__strip__rmt_8h.js | 5 + docs/html/led__strip__rmt_8h__dep__incl.md5 | 1 + docs/html/led__strip__rmt_8h__dep__incl.svg | 212 ++ .../led__strip__rmt_8h__dep__incl_org.svg | 129 + docs/html/led__strip__rmt_8h__incl.md5 | 1 + docs/html/led__strip__rmt_8h__incl.svg | 164 + docs/html/led__strip__rmt_8h__incl_org.svg | 138 + ...423158e05394704d29154e3105d6421_cgraph.md5 | 1 + ...423158e05394704d29154e3105d6421_cgraph.svg | 237 ++ ...58e05394704d29154e3105d6421_cgraph_org.svg | 211 ++ docs/html/led__strip__rmt_8h_source.html | 157 + docs/html/led__strip__rmt__dev_8c.html | 667 ++++ docs/html/led__strip__rmt__dev_8c.js | 14 + docs/html/led__strip__rmt__dev_8c__incl.md5 | 1 + docs/html/led__strip__rmt__dev_8c__incl.svg | 545 +++ .../led__strip__rmt__dev_8c__incl_org.svg | 462 +++ ...acafefc7398491a56770e0606ebb82_icgraph.md5 | 1 + ...acafefc7398491a56770e0606ebb82_icgraph.svg | 110 + ...efc7398491a56770e0606ebb82_icgraph_org.svg | 84 + ...361ca55b18711fe84c91b5286199a5_icgraph.md5 | 1 + ...361ca55b18711fe84c91b5286199a5_icgraph.svg | 65 + ...a55b18711fe84c91b5286199a5_icgraph_org.svg | 39 + ...9ad496b407ba725d8ebaac0bfb3490_icgraph.md5 | 1 + ...9ad496b407ba725d8ebaac0bfb3490_icgraph.svg | 74 + ...96b407ba725d8ebaac0bfb3490_icgraph_org.svg | 48 + ...c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 | 1 + ...c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg | 65 + ...f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg | 39 + ...523f0d1ca56d4aa47389a902fc45ce_icgraph.md5 | 1 + ...523f0d1ca56d4aa47389a902fc45ce_icgraph.svg | 74 + ...0d1ca56d4aa47389a902fc45ce_icgraph_org.svg | 48 + ...24741152d38ceaab491dae03d606d6_icgraph.md5 | 1 + ...24741152d38ceaab491dae03d606d6_icgraph.svg | 74 + ...1152d38ceaab491dae03d606d6_icgraph_org.svg | 48 + docs/html/led__strip__rmt__dev_8c_source.html | 334 ++ docs/html/led__strip__rmt__dev__idf4_8c.html | 913 +++++ docs/html/led__strip__rmt__dev__idf4_8c.js | 25 + .../led__strip__rmt__dev__idf4_8c__incl.md5 | 1 + .../led__strip__rmt__dev__idf4_8c__incl.svg | 491 +++ ...ed__strip__rmt__dev__idf4_8c__incl_org.svg | 408 +++ ...acafefc7398491a56770e0606ebb82_icgraph.md5 | 1 + ...acafefc7398491a56770e0606ebb82_icgraph.svg | 65 + ...efc7398491a56770e0606ebb82_icgraph_org.svg | 39 + ...f46144d9309e73778237a6b4e7c53d_icgraph.md5 | 1 + ...f46144d9309e73778237a6b4e7c53d_icgraph.svg | 65 + ...44d9309e73778237a6b4e7c53d_icgraph_org.svg | 39 + ...c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 | 1 + ...c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg | 65 + ...f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg | 39 + ...4d64fa8ea126d15a1692124551f4d31_cgraph.md5 | 1 + ...4d64fa8ea126d15a1692124551f4d31_cgraph.svg | 237 ++ ...fa8ea126d15a1692124551f4d31_cgraph_org.svg | 211 ++ .../led__strip__rmt__dev__idf4_8c_source.html | 370 ++ docs/html/led__strip__rmt__encoder_8c.html | 482 +++ docs/html/led__strip__rmt__encoder_8c.js | 9 + .../led__strip__rmt__encoder_8c__incl.md5 | 1 + .../led__strip__rmt__encoder_8c__incl.svg | 146 + .../led__strip__rmt__encoder_8c__incl_org.svg | 120 + ...85c2660c0f2c003f8064baea91782d_icgraph.md5 | 1 + ...85c2660c0f2c003f8064baea91782d_icgraph.svg | 83 + ...660c0f2c003f8064baea91782d_icgraph_org.svg | 57 + ...67480d48d10d4288ae0ea8078b771f5_cgraph.md5 | 1 + ...67480d48d10d4288ae0ea8078b771f5_cgraph.svg | 102 + ...0d48d10d4288ae0ea8078b771f5_cgraph_org.svg | 76 + ...7480d48d10d4288ae0ea8078b771f5_icgraph.md5 | 1 + ...7480d48d10d4288ae0ea8078b771f5_icgraph.svg | 65 + ...d48d10d4288ae0ea8078b771f5_icgraph_org.svg | 39 + ...8c0fc56235d76562777c8f551463f9_icgraph.md5 | 1 + ...8c0fc56235d76562777c8f551463f9_icgraph.svg | 83 + ...c56235d76562777c8f551463f9_icgraph_org.svg | 57 + ...120e82d0a3b4358ef81559bc851010_icgraph.md5 | 1 + ...120e82d0a3b4358ef81559bc851010_icgraph.svg | 84 + ...82d0a3b4358ef81559bc851010_icgraph_org.svg | 58 + .../led__strip__rmt__encoder_8c_source.html | 283 ++ docs/html/led__strip__rmt__encoder_8h.html | 281 ++ docs/html/led__strip__rmt__encoder_8h.js | 5 + ...led__strip__rmt__encoder_8h__dep__incl.md5 | 1 + ...led__strip__rmt__encoder_8h__dep__incl.svg | 83 + ..._strip__rmt__encoder_8h__dep__incl_org.svg | 57 + .../led__strip__rmt__encoder_8h__incl.md5 | 1 + .../led__strip__rmt__encoder_8h__incl.svg | 110 + .../led__strip__rmt__encoder_8h__incl_org.svg | 84 + ...67480d48d10d4288ae0ea8078b771f5_cgraph.md5 | 1 + ...67480d48d10d4288ae0ea8078b771f5_cgraph.svg | 102 + ...0d48d10d4288ae0ea8078b771f5_cgraph_org.svg | 76 + ...7480d48d10d4288ae0ea8078b771f5_icgraph.md5 | 1 + ...7480d48d10d4288ae0ea8078b771f5_icgraph.svg | 65 + ...d48d10d4288ae0ea8078b771f5_icgraph_org.svg | 39 + .../led__strip__rmt__encoder_8h_source.html | 140 + docs/html/led__strip__spi_8h.html | 319 ++ docs/html/led__strip__spi_8h.js | 5 + docs/html/led__strip__spi_8h__dep__incl.md5 | 1 + docs/html/led__strip__spi_8h__dep__incl.svg | 212 ++ .../led__strip__spi_8h__dep__incl_org.svg | 129 + docs/html/led__strip__spi_8h__incl.md5 | 1 + docs/html/led__strip__spi_8h__incl.svg | 146 + docs/html/led__strip__spi_8h__incl_org.svg | 120 + ...82736e7c17e812637a7c49e1b116c64_cgraph.md5 | 1 + ...82736e7c17e812637a7c49e1b116c64_cgraph.svg | 182 + ...6e7c17e812637a7c49e1b116c64_cgraph_org.svg | 156 + docs/html/led__strip__spi_8h_source.html | 147 + docs/html/led__strip__spi__dev_8c.html | 793 ++++ docs/html/led__strip__spi__dev_8c.js | 16 + docs/html/led__strip__spi__dev_8c__incl.md5 | 1 + docs/html/led__strip__spi__dev_8c__incl.svg | 545 +++ .../led__strip__spi__dev_8c__incl_org.svg | 462 +++ ...530f8436f00e5fe5bcdabc001d8299b_cgraph.md5 | 1 + ...530f8436f00e5fe5bcdabc001d8299b_cgraph.svg | 65 + ...8436f00e5fe5bcdabc001d8299b_cgraph_org.svg | 39 + ...30f8436f00e5fe5bcdabc001d8299b_icgraph.md5 | 1 + ...30f8436f00e5fe5bcdabc001d8299b_icgraph.svg | 65 + ...436f00e5fe5bcdabc001d8299b_icgraph_org.svg | 39 + ...35da5f57add0f39c87fc8bc59e6d99_icgraph.md5 | 1 + ...35da5f57add0f39c87fc8bc59e6d99_icgraph.svg | 92 + ...5f57add0f39c87fc8bc59e6d99_icgraph_org.svg | 66 + ...9dffdc9ec1cbfa495ea4053048f2846_cgraph.md5 | 1 + ...9dffdc9ec1cbfa495ea4053048f2846_cgraph.svg | 65 + ...dc9ec1cbfa495ea4053048f2846_cgraph_org.svg | 39 + ...dffdc9ec1cbfa495ea4053048f2846_icgraph.md5 | 1 + ...dffdc9ec1cbfa495ea4053048f2846_icgraph.svg | 65 + ...c9ec1cbfa495ea4053048f2846_icgraph_org.svg | 39 + ...7165b754285fb3870a899741bc5d1d_icgraph.md5 | 1 + ...7165b754285fb3870a899741bc5d1d_icgraph.svg | 137 + ...b754285fb3870a899741bc5d1d_icgraph_org.svg | 111 + ...82736e7c17e812637a7c49e1b116c64_cgraph.md5 | 1 + ...82736e7c17e812637a7c49e1b116c64_cgraph.svg | 182 + ...6e7c17e812637a7c49e1b116c64_cgraph_org.svg | 156 + ...06313226ef4c32e05fe3e4e325c1396_cgraph.md5 | 1 + ...06313226ef4c32e05fe3e4e325c1396_cgraph.svg | 83 + ...3226ef4c32e05fe3e4e325c1396_cgraph_org.svg | 57 + ...6313226ef4c32e05fe3e4e325c1396_icgraph.md5 | 1 + ...6313226ef4c32e05fe3e4e325c1396_icgraph.svg | 65 + ...226ef4c32e05fe3e4e325c1396_icgraph_org.svg | 39 + ...065616f662fcb84cd48543733c6fdf_icgraph.md5 | 1 + ...065616f662fcb84cd48543733c6fdf_icgraph.svg | 65 + ...16f662fcb84cd48543733c6fdf_icgraph_org.svg | 39 + docs/html/led__strip__spi__dev_8c_source.html | 382 ++ docs/html/led__strip__types_8h.html | 241 ++ docs/html/led__strip__types_8h.js | 15 + docs/html/led__strip__types_8h__dep__incl.md5 | 1 + docs/html/led__strip__types_8h__dep__incl.svg | 302 ++ .../led__strip__types_8h__dep__incl_org.svg | 219 ++ docs/html/led__strip__types_8h__incl.md5 | 1 + docs/html/led__strip__types_8h__incl.svg | 65 + docs/html/led__strip__types_8h__incl_org.svg | 39 + docs/html/led__strip__types_8h_source.html | 169 + docs/html/main_2main_8c.html | 2161 +++++++++++ docs/html/main_2main_8c.js | 51 + docs/html/main_2main_8c__incl.md5 | 1 + docs/html/main_2main_8c__incl.svg | 1888 ++++++++++ docs/html/main_2main_8c__incl_org.svg | 1805 ++++++++++ ...85935dcabbab8cd5781d57844535af_icgraph.md5 | 1 + ...85935dcabbab8cd5781d57844535af_icgraph.svg | 128 + ...5dcabbab8cd5781d57844535af_icgraph_org.svg | 102 + ...681a73daa6b957bcab0adae536a3cc_icgraph.md5 | 1 + ...681a73daa6b957bcab0adae536a3cc_icgraph.svg | 83 + ...73daa6b957bcab0adae536a3cc_icgraph_org.svg | 57 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 | 1 + ...30544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg | 1108 ++++++ ...4a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg | 1025 ++++++ ...60394bf8e92ca191c3f7e94724e3b2_icgraph.md5 | 1 + ...60394bf8e92ca191c3f7e94724e3b2_icgraph.svg | 101 + ...4bf8e92ca191c3f7e94724e3b2_icgraph_org.svg | 75 + ...20a3865c8d10711e576870a886f5875_cgraph.md5 | 1 + ...20a3865c8d10711e576870a886f5875_cgraph.svg | 128 + ...865c8d10711e576870a886f5875_cgraph_org.svg | 102 + ...0a3865c8d10711e576870a886f5875_icgraph.md5 | 1 + ...0a3865c8d10711e576870a886f5875_icgraph.svg | 83 + ...65c8d10711e576870a886f5875_icgraph_org.svg | 57 + ...7caf721d1a48319bf966739332b9d5_icgraph.md5 | 1 + ...7caf721d1a48319bf966739332b9d5_icgraph.svg | 83 + ...721d1a48319bf966739332b9d5_icgraph_org.svg | 57 + ...4dd1082f901d0e72c33ab791e774158_cgraph.md5 | 1 + ...4dd1082f901d0e72c33ab791e774158_cgraph.svg | 236 ++ ...082f901d0e72c33ab791e774158_cgraph_org.svg | 210 ++ ...dd1082f901d0e72c33ab791e774158_icgraph.md5 | 1 + ...dd1082f901d0e72c33ab791e774158_icgraph.svg | 65 + ...82f901d0e72c33ab791e774158_icgraph_org.svg | 39 + ...52a3d83223de794687d57813a5099e_icgraph.md5 | 1 + ...52a3d83223de794687d57813a5099e_icgraph.svg | 83 + ...d83223de794687d57813a5099e_icgraph_org.svg | 57 + ...9052be374967a50f397269b6eec1c6_icgraph.md5 | 1 + ...9052be374967a50f397269b6eec1c6_icgraph.svg | 83 + ...be374967a50f397269b6eec1c6_icgraph_org.svg | 57 + ...898071398b359603a35c202e9c65f3b_cgraph.md5 | 1 + ...898071398b359603a35c202e9c65f3b_cgraph.svg | 56 + ...71398b359603a35c202e9c65f3b_cgraph_org.svg | 30 + ...98071398b359603a35c202e9c65f3b_icgraph.md5 | 1 + ...98071398b359603a35c202e9c65f3b_icgraph.svg | 56 + ...1398b359603a35c202e9c65f3b_icgraph_org.svg | 30 + ...159bf0147cc4f5288bae8edf3a846e5_cgraph.md5 | 1 + ...159bf0147cc4f5288bae8edf3a846e5_cgraph.svg | 268 ++ ...f0147cc4f5288bae8edf3a846e5_cgraph_org.svg | 185 + ...59bf0147cc4f5288bae8edf3a846e5_icgraph.md5 | 1 + ...59bf0147cc4f5288bae8edf3a846e5_icgraph.svg | 65 + ...0147cc4f5288bae8edf3a846e5_icgraph_org.svg | 39 + ...cd8f7518fef8e05fa85c0afaa299c3a_cgraph.md5 | 1 + ...cd8f7518fef8e05fa85c0afaa299c3a_cgraph.svg | 177 + ...7518fef8e05fa85c0afaa299c3a_cgraph_org.svg | 94 + ...d8f7518fef8e05fa85c0afaa299c3a_icgraph.md5 | 1 + ...d8f7518fef8e05fa85c0afaa299c3a_icgraph.svg | 83 + ...518fef8e05fa85c0afaa299c3a_icgraph_org.svg | 57 + ...1970c9cc814c282cd9e7bba97c6e02_icgraph.md5 | 1 + ...1970c9cc814c282cd9e7bba97c6e02_icgraph.svg | 83 + ...c9cc814c282cd9e7bba97c6e02_icgraph_org.svg | 57 + ...e1abb3bbe00cc09343f89b55a03324_icgraph.md5 | 1 + ...e1abb3bbe00cc09343f89b55a03324_icgraph.svg | 101 + ...b3bbe00cc09343f89b55a03324_icgraph_org.svg | 75 + ...8adfaadd7f2cd184529b42110fc492a_cgraph.md5 | 1 + ...8adfaadd7f2cd184529b42110fc492a_cgraph.svg | 65 + ...aadd7f2cd184529b42110fc492a_cgraph_org.svg | 39 + ...adfaadd7f2cd184529b42110fc492a_icgraph.md5 | 1 + ...adfaadd7f2cd184529b42110fc492a_icgraph.svg | 101 + ...add7f2cd184529b42110fc492a_icgraph_org.svg | 75 + docs/html/main_2main_8c_source.html | 1096 ++++++ docs/html/mat_8cpp.html | 151 + docs/html/mat_8cpp.js | 16 + docs/html/mat_8cpp__incl.md5 | 1 + docs/html/mat_8cpp__incl.svg | 788 ++++ docs/html/mat_8cpp__incl_org.svg | 705 ++++ docs/html/mat_8cpp_source.html | 1347 +++++++ docs/html/mat_8h.html | 155 + docs/html/mat_8h.js | 18 + docs/html/mat_8h__dep__incl.md5 | 1 + docs/html/mat_8h__dep__incl.svg | 320 ++ docs/html/mat_8h__dep__incl_org.svg | 237 ++ docs/html/mat_8h__incl.md5 | 1 + docs/html/mat_8h__incl.svg | 65 + docs/html/mat_8h__incl_org.svg | 39 + docs/html/mat_8h_source.html | 350 ++ docs/html/menu.js | 131 + docs/html/menudata.js | 216 ++ docs/html/namespacedspm.html | 869 +++++ docs/html/namespacedspm.js | 20 + docs/html/namespacemembers.html | 111 + docs/html/namespacemembers_func.html | 111 + docs/html/namespaces.html | 110 + docs/html/namespaces_dup.js | 4 + docs/html/navtree.css | 327 ++ docs/html/navtree.js | 901 +++++ docs/html/navtreedata.js | 77 + docs/html/navtreeindex0.js | 253 ++ docs/html/navtreeindex1.js | 253 ++ docs/html/navtreeindex10.js | 247 ++ docs/html/navtreeindex2.js | 253 ++ docs/html/navtreeindex3.js | 253 ++ docs/html/navtreeindex4.js | 253 ++ docs/html/navtreeindex5.js | 253 ++ docs/html/navtreeindex6.js | 253 ++ docs/html/navtreeindex7.js | 253 ++ docs/html/navtreeindex8.js | 253 ++ docs/html/navtreeindex9.js | 253 ++ docs/html/sdkconfig_8h.html | 115 + docs/html/sdkconfig_8h_source.html | 110 + docs/html/search/all_0.js | 8 + docs/html/search/all_1.js | 56 + docs/html/search/all_10.js | 8 + docs/html/search/all_11.js | 47 + docs/html/search/all_12.js | 81 + docs/html/search/all_13.js | 85 + docs/html/search/all_14.js | 25 + docs/html/search/all_15.js | 12 + docs/html/search/all_16.js | 39 + docs/html/search/all_17.js | 12 + docs/html/search/all_18.js | 7 + docs/html/search/all_19.js | 6 + docs/html/search/all_2.js | 100 + docs/html/search/all_3.js | 97 + docs/html/search/all_4.js | 506 +++ docs/html/search/all_5.js | 73 + docs/html/search/all_6.js | 35 + docs/html/search/all_7.js | 15 + docs/html/search/all_8.js | 8 + docs/html/search/all_9.js | 39 + docs/html/search/all_a.js | 9 + docs/html/search/all_b.js | 73 + docs/html/search/all_c.js | 28 + docs/html/search/all_d.js | 12 + docs/html/search/all_e.js | 24 + docs/html/search/all_f.js | 21 + docs/html/search/classes_0.js | 9 + docs/html/search/classes_1.js | 5 + docs/html/search/classes_2.js | 7 + docs/html/search/classes_3.js | 7 + docs/html/search/classes_4.js | 6 + docs/html/search/classes_5.js | 10 + docs/html/search/classes_6.js | 4 + docs/html/search/classes_7.js | 5 + docs/html/search/classes_8.js | 4 + docs/html/search/classes_9.js | 6 + docs/html/search/classes_a.js | 4 + docs/html/search/classes_b.js | 4 + docs/html/search/defines_0.js | 5 + docs/html/search/defines_1.js | 5 + docs/html/search/defines_10.js | 21 + docs/html/search/defines_11.js | 6 + docs/html/search/defines_12.js | 13 + docs/html/search/defines_13.js | 5 + docs/html/search/defines_14.js | 8 + docs/html/search/defines_15.js | 4 + docs/html/search/defines_16.js | 4 + docs/html/search/defines_2.js | 37 + docs/html/search/defines_3.js | 35 + docs/html/search/defines_4.js | 78 + docs/html/search/defines_5.js | 14 + docs/html/search/defines_6.js | 14 + docs/html/search/defines_7.js | 5 + docs/html/search/defines_8.js | 4 + docs/html/search/defines_9.js | 13 + docs/html/search/defines_a.js | 10 + docs/html/search/defines_b.js | 6 + docs/html/search/defines_c.js | 5 + docs/html/search/defines_d.js | 4 + docs/html/search/defines_e.js | 4 + docs/html/search/defines_f.js | 6 + docs/html/search/enums_0.js | 4 + docs/html/search/enums_1.js | 4 + docs/html/search/enums_2.js | 5 + docs/html/search/enums_3.js | 5 + docs/html/search/enums_4.js | 4 + docs/html/search/enums_5.js | 5 + docs/html/search/enums_6.js | 4 + docs/html/search/enumvalues_0.js | 6 + docs/html/search/enumvalues_1.js | 8 + docs/html/search/enumvalues_2.js | 7 + docs/html/search/enumvalues_3.js | 4 + docs/html/search/enumvalues_4.js | 4 + docs/html/search/enumvalues_5.js | 4 + docs/html/search/enumvalues_6.js | 9 + docs/html/search/enumvalues_7.js | 4 + docs/html/search/enumvalues_8.js | 9 + docs/html/search/enumvalues_9.js | 7 + docs/html/search/files_0.js | 22 + docs/html/search/files_1.js | 11 + docs/html/search/files_2.js | 149 + docs/html/search/files_3.js | 45 + docs/html/search/files_4.js | 14 + docs/html/search/files_5.js | 6 + docs/html/search/files_6.js | 4 + docs/html/search/files_7.js | 17 + docs/html/search/files_8.js | 5 + docs/html/search/files_9.js | 5 + docs/html/search/files_a.js | 5 + docs/html/search/functions_0.js | 5 + docs/html/search/functions_1.js | 20 + docs/html/search/functions_10.js | 24 + docs/html/search/functions_11.js | 14 + docs/html/search/functions_12.js | 48 + docs/html/search/functions_13.js | 11 + docs/html/search/functions_14.js | 5 + docs/html/search/functions_15.js | 19 + docs/html/search/functions_16.js | 9 + docs/html/search/functions_17.js | 6 + docs/html/search/functions_2.js | 12 + docs/html/search/functions_3.js | 15 + docs/html/search/functions_4.js | 231 ++ docs/html/search/functions_5.js | 12 + docs/html/search/functions_6.js | 5 + docs/html/search/functions_7.js | 9 + docs/html/search/functions_8.js | 9 + docs/html/search/functions_9.js | 5 + docs/html/search/functions_a.js | 22 + docs/html/search/functions_b.js | 7 + docs/html/search/functions_c.js | 5 + docs/html/search/functions_d.js | 18 + docs/html/search/functions_e.js | 8 + docs/html/search/functions_f.js | 6 + docs/html/search/namespaces_0.js | 4 + docs/html/search/search.css | 377 ++ docs/html/search/search.js | 708 ++++ docs/html/search/searchdata.js | 42 + docs/html/search/typedefs_0.js | 4 + docs/html/search/typedefs_1.js | 4 + docs/html/search/typedefs_2.js | 5 + docs/html/search/typedefs_3.js | 4 + docs/html/search/typedefs_4.js | 6 + docs/html/search/typedefs_5.js | 6 + docs/html/search/typedefs_6.js | 5 + docs/html/search/typedefs_7.js | 4 + docs/html/search/typedefs_8.js | 4 + docs/html/search/typedefs_9.js | 5 + docs/html/search/variables_0.js | 4 + docs/html/search/variables_1.js | 13 + docs/html/search/variables_10.js | 4 + docs/html/search/variables_11.js | 22 + docs/html/search/variables_12.js | 48 + docs/html/search/variables_13.js | 10 + docs/html/search/variables_14.js | 5 + docs/html/search/variables_15.js | 5 + docs/html/search/variables_16.js | 10 + docs/html/search/variables_17.js | 5 + docs/html/search/variables_18.js | 6 + docs/html/search/variables_2.js | 51 + docs/html/search/variables_3.js | 33 + docs/html/search/variables_4.js | 53 + docs/html/search/variables_5.js | 7 + docs/html/search/variables_6.js | 14 + docs/html/search/variables_7.js | 9 + docs/html/search/variables_8.js | 8 + docs/html/search/variables_9.js | 24 + docs/html/search/variables_a.js | 6 + docs/html/search/variables_b.js | 17 + docs/html/search/variables_c.js | 14 + docs/html/search/variables_d.js | 8 + docs/html/search/variables_e.js | 5 + docs/html/search/variables_f.js | 15 + ...event__line__coding__changed__data__t.html | 148 + ...__event__line__coding__changed__data__t.js | 4 + ..._event__line__state__changed__data__t.html | 166 + ...m__event__line__state__changed__data__t.js | 5 + ...acm__event__rx__wanted__char__data__t.html | 148 + ...dcacm__event__rx__wanted__char__data__t.js | 4 + docs/html/structcdcacm__event__t.html | 223 ++ docs/html/structcdcacm__event__t.js | 7 + .../structcdcacm__event__t__coll__graph.md5 | 1 + .../structcdcacm__event__t__coll__graph.svg | 107 + ...tructcdcacm__event__t__coll__graph_org.svg | 81 + docs/html/structconsole__handle__t.html | 175 + docs/html/structconsole__handle__t.js | 6 + docs/html/structcplx__sig__s.html | 251 ++ docs/html/structcplx__sig__s.js | 9 + docs/html/structdspm_1_1_mat_1_1_rect.html | 357 ++ docs/html/structdspm_1_1_mat_1_1_rect.js | 10 + docs/html/structdsps__resample__mr__s.html | 311 ++ docs/html/structdsps__resample__mr__s.js | 12 + docs/html/structdsps__resample__ph__s.html | 208 ++ docs/html/structdsps__resample__ph__s.js | 7 + docs/html/structesp__tusb__cdc__t.html | 236 ++ docs/html/structesp__tusb__cdc__t.js | 9 + docs/html/structesp__tusb__cdcacm__t.html | 281 ++ docs/html/structesp__tusb__cdcacm__t.js | 11 + ...tructesp__tusb__cdcacm__t__coll__graph.md5 | 1 + ...tructesp__tusb__cdcacm__t__coll__graph.svg | 188 + ...tesp__tusb__cdcacm__t__coll__graph_org.svg | 105 + docs/html/structfir__f32__s.html | 334 ++ docs/html/structfir__f32__s.js | 13 + docs/html/structfir__s16__s.html | 414 +++ docs/html/structfir__s16__s.js | 17 + docs/html/structframe__wire__t.html | 143 + docs/html/structframe__wire__t.js | 4 + docs/html/structimage2d__s.html | 259 ++ docs/html/structimage2d__s.js | 10 + .../structimage__3d__matrix__kalman__s.html | 198 + .../structimage__3d__matrix__kalman__s.js | 6 + ...ge__3d__matrix__kalman__s__coll__graph.md5 | 1 + ...ge__3d__matrix__kalman__s__coll__graph.svg | 118 + ...3d__matrix__kalman__s__coll__graph_org.svg | 92 + docs/html/structimage__3d__matrix__s.html | 173 + docs/html/structimage__3d__matrix__s.js | 5 + docs/html/structled__strip__config__t.html | 249 ++ docs/html/structled__strip__config__t.js | 9 + .../structled__strip__encoder__config__t.html | 170 + .../structled__strip__encoder__config__t.js | 5 + .../structled__strip__rmt__config__t.html | 229 ++ docs/html/structled__strip__rmt__config__t.js | 8 + docs/html/structled__strip__rmt__obj.html | 282 ++ docs/html/structled__strip__rmt__obj.js | 11 + ...tructled__strip__rmt__obj__coll__graph.md5 | 1 + ...tructled__strip__rmt__obj__coll__graph.svg | 66 + ...tled__strip__rmt__obj__coll__graph_org.svg | 40 + .../structled__strip__spi__config__t.html | 209 ++ docs/html/structled__strip__spi__config__t.js | 7 + docs/html/structled__strip__spi__obj.html | 243 ++ docs/html/structled__strip__spi__obj.js | 9 + ...tructled__strip__spi__obj__coll__graph.md5 | 1 + ...tructled__strip__spi__obj__coll__graph.svg | 66 + ...tled__strip__spi__obj__coll__graph_org.svg | 40 + docs/html/structled__strip__t.html | 309 ++ docs/html/structled__strip__t.js | 8 + .../structrmt__led__strip__encoder__t.html | 219 ++ .../html/structrmt__led__strip__encoder__t.js | 8 + docs/html/structtinyusb__config__cdc__t.html | 225 ++ docs/html/structtinyusb__config__cdc__t.js | 8 + .../structtinyusb__config__cdcacm__t.html | 275 ++ docs/html/structtinyusb__config__cdcacm__t.js | 10 + ...inyusb__config__cdcacm__t__coll__graph.md5 | 1 + ...inyusb__config__cdcacm__t__coll__graph.svg | 188 + ...sb__config__cdcacm__t__coll__graph_org.svg | 105 + docs/html/structtinyusb__config__t.html | 267 ++ docs/html/structtinyusb__config__t.js | 9 + docs/html/structvfs__tinyusb__t.html | 243 ++ docs/html/structvfs__tinyusb__t.js | 10 + docs/html/structwave__gen__config__t.html | 230 ++ docs/html/structwave__gen__config__t.js | 8 + docs/html/svg.min.js | 46 + docs/html/tabs.css | 1 + docs/html/test__fft2r_8c.html | 475 +++ docs/html/test__fft2r_8c.js | 12 + docs/html/test__fft2r_8c__incl.md5 | 1 + docs/html/test__fft2r_8c__incl.svg | 482 +++ docs/html/test__fft2r_8c__incl_org.svg | 399 ++ ...b268b0fdcf14f32fb97b4fa648370c_icgraph.md5 | 1 + ...b268b0fdcf14f32fb97b4fa648370c_icgraph.svg | 119 + ...b0fdcf14f32fb97b4fa648370c_icgraph_org.svg | 93 + ...c0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.md5 | 1 + ...c0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.svg | 591 +++ ...dd19d7ebd2f69bfb0c1a6f85da_icgraph_org.svg | 508 +++ ...855e560e0563aa519b012dbdcbaec2_icgraph.md5 | 1 + ...855e560e0563aa519b012dbdcbaec2_icgraph.svg | 264 ++ ...560e0563aa519b012dbdcbaec2_icgraph_org.svg | 238 ++ ...57f5d7a9dfff9aeea49fb117331c12d_cgraph.md5 | 1 + ...57f5d7a9dfff9aeea49fb117331c12d_cgraph.svg | 257 ++ ...d7a9dfff9aeea49fb117331c12d_cgraph_org.svg | 174 + ...7f5d7a9dfff9aeea49fb117331c12d_icgraph.md5 | 1 + ...7f5d7a9dfff9aeea49fb117331c12d_icgraph.svg | 65 + ...7a9dfff9aeea49fb117331c12d_icgraph_org.svg | 39 + ...fa635d13bdde8b0ccbf5de160a14cf_icgraph.md5 | 1 + ...fa635d13bdde8b0ccbf5de160a14cf_icgraph.svg | 119 + ...5d13bdde8b0ccbf5de160a14cf_icgraph_org.svg | 93 + docs/html/test__fft2r_8c_source.html | 209 ++ docs/html/test__fir_8c.html | 328 ++ docs/html/test__fir_8c.js | 10 + docs/html/test__fir_8c__incl.md5 | 1 + docs/html/test__fir_8c__incl.svg | 410 +++ docs/html/test__fir_8c__incl_org.svg | 327 ++ ...44a5f95a865773567d3d7b637b2eb8a_cgraph.md5 | 1 + ...44a5f95a865773567d3d7b637b2eb8a_cgraph.svg | 137 + ...f95a865773567d3d7b637b2eb8a_cgraph_org.svg | 111 + ...4a5f95a865773567d3d7b637b2eb8a_icgraph.md5 | 1 + ...4a5f95a865773567d3d7b637b2eb8a_icgraph.svg | 65 + ...95a865773567d3d7b637b2eb8a_icgraph_org.svg | 39 + docs/html/test__fir_8c_source.html | 175 + docs/html/test__iir__biquad_8c.html | 416 +++ docs/html/test__iir__biquad_8c.js | 12 + docs/html/test__iir__biquad_8c__incl.md5 | 1 + docs/html/test__iir__biquad_8c__incl.svg | 401 +++ docs/html/test__iir__biquad_8c__incl_org.svg | 318 ++ ...b268b0fdcf14f32fb97b4fa648370c_icgraph.md5 | 1 + ...b268b0fdcf14f32fb97b4fa648370c_icgraph.svg | 83 + ...b0fdcf14f32fb97b4fa648370c_icgraph_org.svg | 57 + ...6101c79b9535501f44ab79b1ef10fc_icgraph.md5 | 1 + ...6101c79b9535501f44ab79b1ef10fc_icgraph.svg | 83 + ...c79b9535501f44ab79b1ef10fc_icgraph_org.svg | 57 + ...6b3a034f916b45dd4c321af1671639f_cgraph.md5 | 1 + ...6b3a034f916b45dd4c321af1671639f_cgraph.svg | 119 + ...034f916b45dd4c321af1671639f_cgraph_org.svg | 93 + ...b3a034f916b45dd4c321af1671639f_icgraph.md5 | 1 + ...b3a034f916b45dd4c321af1671639f_icgraph.svg | 65 + ...34f916b45dd4c321af1671639f_icgraph_org.svg | 39 + ...fa635d13bdde8b0ccbf5de160a14cf_icgraph.md5 | 1 + ...fa635d13bdde8b0ccbf5de160a14cf_icgraph.svg | 83 + ...5d13bdde8b0ccbf5de160a14cf_icgraph_org.svg | 57 + docs/html/test__iir__biquad_8c_source.html | 178 + docs/html/test__mmult_8c.html | 478 +++ docs/html/test__mmult_8c.js | 16 + docs/html/test__mmult_8c__incl.md5 | 1 + docs/html/test__mmult_8c__incl.svg | 401 +++ docs/html/test__mmult_8c__incl_org.svg | 318 ++ ...b268b0fdcf14f32fb97b4fa648370c_icgraph.md5 | 1 + ...b268b0fdcf14f32fb97b4fa648370c_icgraph.svg | 83 + ...b0fdcf14f32fb97b4fa648370c_icgraph_org.svg | 57 + ...9623517f682d2bf709ad6942132c11d_cgraph.md5 | 1 + ...9623517f682d2bf709ad6942132c11d_cgraph.svg | 119 + ...517f682d2bf709ad6942132c11d_cgraph_org.svg | 93 + ...623517f682d2bf709ad6942132c11d_icgraph.md5 | 1 + ...623517f682d2bf709ad6942132c11d_icgraph.svg | 65 + ...17f682d2bf709ad6942132c11d_icgraph_org.svg | 39 + ...fa635d13bdde8b0ccbf5de160a14cf_icgraph.md5 | 1 + ...fa635d13bdde8b0ccbf5de160a14cf_icgraph.svg | 83 + ...5d13bdde8b0ccbf5de160a14cf_icgraph_org.svg | 57 + docs/html/test__mmult_8c_source.html | 190 + docs/html/tinyusb_8c.html | 460 +++ docs/html/tinyusb_8c.js | 12 + docs/html/tinyusb_8c__incl.md5 | 1 + docs/html/tinyusb_8c__incl.svg | 501 +++ docs/html/tinyusb_8c__incl_org.svg | 418 +++ ...1b7fa1b1d97afa9bda62b9c2eff370e_cgraph.md5 | 1 + ...1b7fa1b1d97afa9bda62b9c2eff370e_cgraph.svg | 101 + ...a1b1d97afa9bda62b9c2eff370e_cgraph_org.svg | 75 + ...b7fa1b1d97afa9bda62b9c2eff370e_icgraph.md5 | 1 + ...b7fa1b1d97afa9bda62b9c2eff370e_icgraph.svg | 65 + ...1b1d97afa9bda62b9c2eff370e_icgraph_org.svg | 39 + docs/html/tinyusb_8c_source.html | 240 ++ docs/html/tinyusb_8h.html | 290 ++ docs/html/tinyusb_8h.js | 5 + docs/html/tinyusb_8h__dep__incl.md5 | 1 + docs/html/tinyusb_8h__dep__incl.svg | 191 + docs/html/tinyusb_8h__dep__incl_org.svg | 165 + docs/html/tinyusb_8h__incl.md5 | 1 + docs/html/tinyusb_8h__incl.svg | 200 + docs/html/tinyusb_8h__incl_org.svg | 174 + ...1b7fa1b1d97afa9bda62b9c2eff370e_cgraph.md5 | 1 + ...1b7fa1b1d97afa9bda62b9c2eff370e_cgraph.svg | 101 + ...a1b1d97afa9bda62b9c2eff370e_cgraph_org.svg | 75 + ...b7fa1b1d97afa9bda62b9c2eff370e_icgraph.md5 | 1 + ...b7fa1b1d97afa9bda62b9c2eff370e_icgraph.svg | 65 + ...1b1d97afa9bda62b9c2eff370e_icgraph_org.svg | 39 + docs/html/tinyusb_8h_source.html | 160 + docs/html/tinyusb__types_8h.html | 212 ++ docs/html/tinyusb__types_8h.js | 9 + docs/html/tinyusb__types_8h__dep__incl.md5 | 1 + docs/html/tinyusb__types_8h__dep__incl.svg | 410 +++ .../html/tinyusb__types_8h__dep__incl_org.svg | 327 ++ docs/html/tinyusb__types_8h_source.html | 136 + docs/html/tusb__cdc__acm_8c.html | 1402 ++++++++ docs/html/tusb__cdc__acm_8c.js | 26 + docs/html/tusb__cdc__acm_8c__incl.md5 | 1 + docs/html/tusb__cdc__acm_8c__incl.svg | 572 +++ docs/html/tusb__cdc__acm_8c__incl_org.svg | 489 +++ ...c9cbb583c44ea89a0d8c052b886fe6_icgraph.md5 | 1 + ...c9cbb583c44ea89a0d8c052b886fe6_icgraph.svg | 65 + ...b583c44ea89a0d8c052b886fe6_icgraph_org.svg | 39 + ...6e2f846a55765e889741d4f17c60e5_icgraph.md5 | 1 + ...6e2f846a55765e889741d4f17c60e5_icgraph.svg | 65 + ...846a55765e889741d4f17c60e5_icgraph_org.svg | 39 + ...f1bac102ae6fce8d7211062a899e4b5_cgraph.md5 | 1 + ...f1bac102ae6fce8d7211062a899e4b5_cgraph.svg | 84 + ...c102ae6fce8d7211062a899e4b5_cgraph_org.svg | 58 + ...1bac102ae6fce8d7211062a899e4b5_icgraph.md5 | 1 + ...1bac102ae6fce8d7211062a899e4b5_icgraph.svg | 84 + ...102ae6fce8d7211062a899e4b5_icgraph_org.svg | 58 + ...6fd5ec08a1f0a7451844464121dcee5_cgraph.md5 | 1 + ...6fd5ec08a1f0a7451844464121dcee5_cgraph.svg | 83 + ...ec08a1f0a7451844464121dcee5_cgraph_org.svg | 57 + ...86320904bb5b4cdc3fe0ab8ed1a6f19_cgraph.md5 | 1 + ...86320904bb5b4cdc3fe0ab8ed1a6f19_cgraph.svg | 84 + ...0904bb5b4cdc3fe0ab8ed1a6f19_cgraph_org.svg | 58 + ...6320904bb5b4cdc3fe0ab8ed1a6f19_icgraph.md5 | 1 + ...6320904bb5b4cdc3fe0ab8ed1a6f19_icgraph.svg | 84 + ...904bb5b4cdc3fe0ab8ed1a6f19_icgraph_org.svg | 58 + ...069fbe03d1e8eca477192605031e04_icgraph.md5 | 1 + ...069fbe03d1e8eca477192605031e04_icgraph.svg | 66 + ...be03d1e8eca477192605031e04_icgraph_org.svg | 40 + ...d9795db7d6eb1685526eb07ecf0c6e6_cgraph.md5 | 1 + ...d9795db7d6eb1685526eb07ecf0c6e6_cgraph.svg | 83 + ...5db7d6eb1685526eb07ecf0c6e6_cgraph_org.svg | 57 + ...59f81b1f0fd5b43eedd4b8bca19e427_cgraph.md5 | 1 + ...59f81b1f0fd5b43eedd4b8bca19e427_cgraph.svg | 83 + ...1b1f0fd5b43eedd4b8bca19e427_cgraph_org.svg | 57 + ...9f81b1f0fd5b43eedd4b8bca19e427_icgraph.md5 | 1 + ...9f81b1f0fd5b43eedd4b8bca19e427_icgraph.svg | 119 + ...b1f0fd5b43eedd4b8bca19e427_icgraph_org.svg | 93 + ...41ac1f2bfdd0dbf9824ff83c025ded2_cgraph.md5 | 1 + ...41ac1f2bfdd0dbf9824ff83c025ded2_cgraph.svg | 65 + ...1f2bfdd0dbf9824ff83c025ded2_cgraph_org.svg | 39 + ...1ac1f2bfdd0dbf9824ff83c025ded2_icgraph.md5 | 1 + ...1ac1f2bfdd0dbf9824ff83c025ded2_icgraph.svg | 83 + ...f2bfdd0dbf9824ff83c025ded2_icgraph_org.svg | 57 + ...778a4c7a5f7c7f5d1324b7a8f67c682_cgraph.md5 | 1 + ...778a4c7a5f7c7f5d1324b7a8f67c682_cgraph.svg | 65 + ...4c7a5f7c7f5d1324b7a8f67c682_cgraph_org.svg | 39 + ...78a4c7a5f7c7f5d1324b7a8f67c682_icgraph.md5 | 1 + ...78a4c7a5f7c7f5d1324b7a8f67c682_icgraph.svg | 83 + ...c7a5f7c7f5d1324b7a8f67c682_icgraph_org.svg | 57 + ...a10535dfe03a33af833f55b6ba33cfb_cgraph.md5 | 1 + ...a10535dfe03a33af833f55b6ba33cfb_cgraph.svg | 83 + ...35dfe03a33af833f55b6ba33cfb_cgraph_org.svg | 57 + ...abb48ab2de042c842086bbd8e009993_cgraph.md5 | 1 + ...abb48ab2de042c842086bbd8e009993_cgraph.svg | 83 + ...8ab2de042c842086bbd8e009993_cgraph_org.svg | 57 + ...be33d0f57d8df1777b2fbd5defd22ca_cgraph.md5 | 1 + ...be33d0f57d8df1777b2fbd5defd22ca_cgraph.svg | 138 + ...d0f57d8df1777b2fbd5defd22ca_cgraph_org.svg | 112 + ...240a058986c6de30a807ec424e6ab80_cgraph.md5 | 1 + ...240a058986c6de30a807ec424e6ab80_cgraph.svg | 402 +++ ...058986c6de30a807ec424e6ab80_cgraph_org.svg | 319 ++ ...40a058986c6de30a807ec424e6ab80_icgraph.md5 | 1 + ...40a058986c6de30a807ec424e6ab80_icgraph.svg | 65 + ...58986c6de30a807ec424e6ab80_icgraph_org.svg | 39 + ...24ee802c4641898cbc524df38a75dc1_cgraph.md5 | 1 + ...24ee802c4641898cbc524df38a75dc1_cgraph.svg | 65 + ...802c4641898cbc524df38a75dc1_cgraph_org.svg | 39 + ...4ee802c4641898cbc524df38a75dc1_icgraph.md5 | 1 + ...4ee802c4641898cbc524df38a75dc1_icgraph.svg | 460 +++ ...02c4641898cbc524df38a75dc1_icgraph_org.svg | 377 ++ ...0f3d93ac9658bf59720ce4edb7a2fbb_cgraph.md5 | 1 + ...0f3d93ac9658bf59720ce4edb7a2fbb_cgraph.svg | 84 + ...93ac9658bf59720ce4edb7a2fbb_cgraph_org.svg | 58 + ...29627ebf56d365729a287215fe98afe_cgraph.md5 | 1 + ...29627ebf56d365729a287215fe98afe_cgraph.svg | 84 + ...7ebf56d365729a287215fe98afe_cgraph_org.svg | 58 + ...9627ebf56d365729a287215fe98afe_icgraph.md5 | 1 + ...9627ebf56d365729a287215fe98afe_icgraph.svg | 159 + ...ebf56d365729a287215fe98afe_icgraph_org.svg | 76 + ...56eee472acd5c32ac333dc551fd1a84_cgraph.md5 | 1 + ...56eee472acd5c32ac333dc551fd1a84_cgraph.svg | 102 + ...e472acd5c32ac333dc551fd1a84_cgraph_org.svg | 76 + ...6eee472acd5c32ac333dc551fd1a84_icgraph.md5 | 1 + ...6eee472acd5c32ac333dc551fd1a84_icgraph.svg | 102 + ...472acd5c32ac333dc551fd1a84_icgraph_org.svg | 76 + ...305c04d317e949f013f6d03b8d9f8c_icgraph.md5 | 1 + ...305c04d317e949f013f6d03b8d9f8c_icgraph.svg | 159 + ...04d317e949f013f6d03b8d9f8c_icgraph_org.svg | 76 + docs/html/tusb__cdc__acm_8c_source.html | 624 ++++ docs/html/tusb__cdc__acm_8h.html | 869 +++++ docs/html/tusb__cdc__acm_8h.js | 28 + docs/html/tusb__cdc__acm_8h__dep__incl.md5 | 1 + docs/html/tusb__cdc__acm_8h__dep__incl.svg | 101 + .../html/tusb__cdc__acm_8h__dep__incl_org.svg | 75 + docs/html/tusb__cdc__acm_8h__incl.md5 | 1 + docs/html/tusb__cdc__acm_8h__incl.svg | 356 ++ docs/html/tusb__cdc__acm_8h__incl_org.svg | 273 ++ ...f1bac102ae6fce8d7211062a899e4b5_cgraph.md5 | 1 + ...f1bac102ae6fce8d7211062a899e4b5_cgraph.svg | 84 + ...c102ae6fce8d7211062a899e4b5_cgraph_org.svg | 58 + ...1bac102ae6fce8d7211062a899e4b5_icgraph.md5 | 1 + ...1bac102ae6fce8d7211062a899e4b5_icgraph.svg | 84 + ...102ae6fce8d7211062a899e4b5_icgraph_org.svg | 58 + ...86320904bb5b4cdc3fe0ab8ed1a6f19_cgraph.md5 | 1 + ...86320904bb5b4cdc3fe0ab8ed1a6f19_cgraph.svg | 84 + ...0904bb5b4cdc3fe0ab8ed1a6f19_cgraph_org.svg | 58 + ...6320904bb5b4cdc3fe0ab8ed1a6f19_icgraph.md5 | 1 + ...6320904bb5b4cdc3fe0ab8ed1a6f19_icgraph.svg | 84 + ...904bb5b4cdc3fe0ab8ed1a6f19_icgraph_org.svg | 58 + ...59f81b1f0fd5b43eedd4b8bca19e427_cgraph.md5 | 1 + ...59f81b1f0fd5b43eedd4b8bca19e427_cgraph.svg | 83 + ...1b1f0fd5b43eedd4b8bca19e427_cgraph_org.svg | 57 + ...9f81b1f0fd5b43eedd4b8bca19e427_icgraph.md5 | 1 + ...9f81b1f0fd5b43eedd4b8bca19e427_icgraph.svg | 119 + ...b1f0fd5b43eedd4b8bca19e427_icgraph_org.svg | 93 + ...be33d0f57d8df1777b2fbd5defd22ca_cgraph.md5 | 1 + ...be33d0f57d8df1777b2fbd5defd22ca_cgraph.svg | 138 + ...d0f57d8df1777b2fbd5defd22ca_cgraph_org.svg | 112 + ...240a058986c6de30a807ec424e6ab80_cgraph.md5 | 1 + ...240a058986c6de30a807ec424e6ab80_cgraph.svg | 402 +++ ...058986c6de30a807ec424e6ab80_cgraph_org.svg | 319 ++ ...40a058986c6de30a807ec424e6ab80_icgraph.md5 | 1 + ...40a058986c6de30a807ec424e6ab80_icgraph.svg | 65 + ...58986c6de30a807ec424e6ab80_icgraph_org.svg | 39 + ...0f3d93ac9658bf59720ce4edb7a2fbb_cgraph.md5 | 1 + ...0f3d93ac9658bf59720ce4edb7a2fbb_cgraph.svg | 84 + ...93ac9658bf59720ce4edb7a2fbb_cgraph_org.svg | 58 + ...29627ebf56d365729a287215fe98afe_cgraph.md5 | 1 + ...29627ebf56d365729a287215fe98afe_cgraph.svg | 84 + ...7ebf56d365729a287215fe98afe_cgraph_org.svg | 58 + ...9627ebf56d365729a287215fe98afe_icgraph.md5 | 1 + ...9627ebf56d365729a287215fe98afe_icgraph.svg | 159 + ...ebf56d365729a287215fe98afe_icgraph_org.svg | 76 + ...56eee472acd5c32ac333dc551fd1a84_cgraph.md5 | 1 + ...56eee472acd5c32ac333dc551fd1a84_cgraph.svg | 102 + ...e472acd5c32ac333dc551fd1a84_cgraph_org.svg | 76 + ...6eee472acd5c32ac333dc551fd1a84_icgraph.md5 | 1 + ...6eee472acd5c32ac333dc551fd1a84_icgraph.svg | 102 + ...472acd5c32ac333dc551fd1a84_icgraph_org.svg | 76 + docs/html/tusb__cdc__acm_8h_source.html | 265 ++ docs/html/tusb__config_8h.html | 559 +++ docs/html/tusb__config_8h.js | 28 + docs/html/tusb__config_8h__dep__incl.md5 | 1 + docs/html/tusb__config_8h__dep__incl.svg | 209 ++ docs/html/tusb__config_8h__dep__incl_org.svg | 183 + docs/html/tusb__config_8h__incl.md5 | 1 + docs/html/tusb__config_8h__incl.svg | 83 + docs/html/tusb__config_8h__incl_org.svg | 57 + docs/html/tusb__config_8h_source.html | 216 ++ docs/html/tusb__console_8c.html | 509 +++ docs/html/tusb__console_8c.js | 12 + docs/html/tusb__console_8c__incl.md5 | 1 + docs/html/tusb__console_8c__incl.svg | 518 +++ docs/html/tusb__console_8c__incl_org.svg | 435 +++ ...61cf1bcb33011636fcc0055165a133_icgraph.md5 | 1 + ...61cf1bcb33011636fcc0055165a133_icgraph.svg | 65 + ...1bcb33011636fcc0055165a133_icgraph_org.svg | 39 + ...797a6088409052fd3d45d205c7c69f5_cgraph.md5 | 1 + ...797a6088409052fd3d45d205c7c69f5_cgraph.svg | 101 + ...6088409052fd3d45d205c7c69f5_cgraph_org.svg | 75 + ...e8e981b87a77f42d60e0d5ead04fb9e_cgraph.md5 | 1 + ...e8e981b87a77f42d60e0d5ead04fb9e_cgraph.svg | 348 ++ ...81b87a77f42d60e0d5ead04fb9e_cgraph_org.svg | 265 ++ ...e61f8b94c7fe4cb64778123a5891c9_icgraph.md5 | 1 + ...e61f8b94c7fe4cb64778123a5891c9_icgraph.svg | 65 + ...8b94c7fe4cb64778123a5891c9_icgraph_org.svg | 39 + docs/html/tusb__console_8c_source.html | 236 ++ docs/html/tusb__console_8h.html | 225 ++ docs/html/tusb__console_8h.js | 5 + docs/html/tusb__console_8h__dep__incl.md5 | 1 + docs/html/tusb__console_8h__dep__incl.svg | 65 + docs/html/tusb__console_8h__dep__incl_org.svg | 39 + docs/html/tusb__console_8h__incl.md5 | 1 + docs/html/tusb__console_8h__incl.svg | 83 + docs/html/tusb__console_8h__incl_org.svg | 57 + ...797a6088409052fd3d45d205c7c69f5_cgraph.md5 | 1 + ...797a6088409052fd3d45d205c7c69f5_cgraph.svg | 101 + ...6088409052fd3d45d205c7c69f5_cgraph_org.svg | 75 + ...e8e981b87a77f42d60e0d5ead04fb9e_cgraph.md5 | 1 + ...e8e981b87a77f42d60e0d5ead04fb9e_cgraph.svg | 348 ++ ...81b87a77f42d60e0d5ead04fb9e_cgraph_org.svg | 265 ++ docs/html/tusb__console_8h_source.html | 131 + docs/html/tusb__tasks_8c.html | 332 ++ docs/html/tusb__tasks_8c.js | 8 + docs/html/tusb__tasks_8c__incl.md5 | 1 + docs/html/tusb__tasks_8c__incl.svg | 392 ++ docs/html/tusb__tasks_8c__incl_org.svg | 309 ++ ...7098ba52bbc3a6dbc0d2159347dd30b_cgraph.md5 | 1 + ...7098ba52bbc3a6dbc0d2159347dd30b_cgraph.svg | 65 + ...ba52bbc3a6dbc0d2159347dd30b_cgraph_org.svg | 39 + ...098ba52bbc3a6dbc0d2159347dd30b_icgraph.md5 | 1 + ...098ba52bbc3a6dbc0d2159347dd30b_icgraph.svg | 83 + ...a52bbc3a6dbc0d2159347dd30b_icgraph_org.svg | 57 + ...82e10042dd5b679bdd61f3208db999_icgraph.md5 | 1 + ...82e10042dd5b679bdd61f3208db999_icgraph.svg | 101 + ...0042dd5b679bdd61f3208db999_icgraph_org.svg | 75 + docs/html/tusb__tasks_8c_source.html | 166 + docs/html/tusb__tasks_8h.html | 228 ++ docs/html/tusb__tasks_8h.js | 5 + docs/html/tusb__tasks_8h__dep__incl.md5 | 1 + docs/html/tusb__tasks_8h__dep__incl.svg | 83 + docs/html/tusb__tasks_8h__dep__incl_org.svg | 57 + docs/html/tusb__tasks_8h__incl.md5 | 1 + docs/html/tusb__tasks_8h__incl.svg | 83 + docs/html/tusb__tasks_8h__incl_org.svg | 57 + ...7098ba52bbc3a6dbc0d2159347dd30b_cgraph.md5 | 1 + ...7098ba52bbc3a6dbc0d2159347dd30b_cgraph.svg | 65 + ...ba52bbc3a6dbc0d2159347dd30b_cgraph_org.svg | 39 + ...098ba52bbc3a6dbc0d2159347dd30b_icgraph.md5 | 1 + ...098ba52bbc3a6dbc0d2159347dd30b_icgraph.svg | 83 + ...a52bbc3a6dbc0d2159347dd30b_icgraph_org.svg | 57 + docs/html/tusb__tasks_8h_source.html | 131 + docs/html/unionfc32__u.html | 197 + docs/html/unionfc32__u.js | 6 + docs/html/unionsc16__u.html | 199 + docs/html/unionsc16__u.js | 6 + docs/html/usb__descriptors_8c.html | 549 +++ docs/html/usb__descriptors_8c.js | 9 + docs/html/usb__descriptors_8c__incl.md5 | 1 + docs/html/usb__descriptors_8c__incl.svg | 119 + docs/html/usb__descriptors_8c__incl_org.svg | 93 + docs/html/usb__descriptors_8c_source.html | 319 ++ docs/html/usb__descriptors_8h.html | 415 +++ docs/html/usb__descriptors_8h.js | 9 + docs/html/usb__descriptors_8h__dep__incl.md5 | 1 + docs/html/usb__descriptors_8h__dep__incl.svg | 83 + .../usb__descriptors_8h__dep__incl_org.svg | 57 + docs/html/usb__descriptors_8h__incl.md5 | 1 + docs/html/usb__descriptors_8h__incl.svg | 83 + docs/html/usb__descriptors_8h__incl_org.svg | 57 + docs/html/usb__descriptors_8h_source.html | 140 + docs/html/vfs__tinyusb_8c.html | 1001 ++++++ docs/html/vfs__tinyusb_8c.js | 21 + docs/html/vfs__tinyusb_8c__incl.md5 | 1 + docs/html/vfs__tinyusb_8c__incl.svg | 653 ++++ docs/html/vfs__tinyusb_8c__incl_org.svg | 570 +++ ...8be25b22153a43e2f3031bfa3f659d_icgraph.md5 | 1 + ...8be25b22153a43e2f3031bfa3f659d_icgraph.svg | 83 + ...5b22153a43e2f3031bfa3f659d_icgraph_org.svg | 57 + ...8ded6da11b7ec9c6707957cdbbe3ccb_cgraph.md5 | 1 + ...8ded6da11b7ec9c6707957cdbbe3ccb_cgraph.svg | 65 + ...6da11b7ec9c6707957cdbbe3ccb_cgraph_org.svg | 39 + ...ded6da11b7ec9c6707957cdbbe3ccb_icgraph.md5 | 1 + ...ded6da11b7ec9c6707957cdbbe3ccb_icgraph.svg | 65 + ...da11b7ec9c6707957cdbbe3ccb_icgraph_org.svg | 39 + ...d9d3df1da934c51f914dab02724804_icgraph.md5 | 1 + ...d9d3df1da934c51f914dab02724804_icgraph.svg | 101 + ...df1da934c51f914dab02724804_icgraph_org.svg | 75 + ...d8afba4fd90f354f511e61abbef1fb_icgraph.md5 | 1 + ...d8afba4fd90f354f511e61abbef1fb_icgraph.svg | 83 + ...ba4fd90f354f511e61abbef1fb_icgraph_org.svg | 57 + ...ab13f91f4811cbbc094ef53aa043e57_cgraph.md5 | 1 + ...ab13f91f4811cbbc094ef53aa043e57_cgraph.svg | 65 + ...f91f4811cbbc094ef53aa043e57_cgraph_org.svg | 39 + ...b13f91f4811cbbc094ef53aa043e57_icgraph.md5 | 1 + ...b13f91f4811cbbc094ef53aa043e57_icgraph.svg | 83 + ...91f4811cbbc094ef53aa043e57_icgraph_org.svg | 57 + ...83463049730a616e99aa6477888fff_icgraph.md5 | 1 + ...83463049730a616e99aa6477888fff_icgraph.svg | 83 + ...3049730a616e99aa6477888fff_icgraph_org.svg | 57 + ...bd17d5f3dfbb17a9aca0b1640b9a76_icgraph.md5 | 1 + ...bd17d5f3dfbb17a9aca0b1640b9a76_icgraph.svg | 83 + ...d5f3dfbb17a9aca0b1640b9a76_icgraph_org.svg | 57 + ...230dea75559df8de97fd2adb1566d7_icgraph.md5 | 1 + ...230dea75559df8de97fd2adb1566d7_icgraph.svg | 83 + ...ea75559df8de97fd2adb1566d7_icgraph_org.svg | 57 + ...106f2a10268e1f1db1e897e502ea8a_icgraph.md5 | 1 + ...106f2a10268e1f1db1e897e502ea8a_icgraph.svg | 83 + ...2a10268e1f1db1e897e502ea8a_icgraph_org.svg | 57 + ...d79cfbaa8662bf059523d76611a7eb7_cgraph.md5 | 1 + ...d79cfbaa8662bf059523d76611a7eb7_cgraph.svg | 102 + ...fbaa8662bf059523d76611a7eb7_cgraph_org.svg | 76 + ...79cfbaa8662bf059523d76611a7eb7_icgraph.md5 | 1 + ...79cfbaa8662bf059523d76611a7eb7_icgraph.svg | 83 + ...baa8662bf059523d76611a7eb7_icgraph_org.svg | 57 + ...56dd480e9fe67841a7da40fe1a0322f_cgraph.md5 | 1 + ...56dd480e9fe67841a7da40fe1a0322f_cgraph.svg | 330 ++ ...480e9fe67841a7da40fe1a0322f_cgraph_org.svg | 247 ++ ...6dd480e9fe67841a7da40fe1a0322f_icgraph.md5 | 1 + ...6dd480e9fe67841a7da40fe1a0322f_icgraph.svg | 65 + ...80e9fe67841a7da40fe1a0322f_icgraph_org.svg | 39 + docs/html/vfs__tinyusb_8c_source.html | 447 +++ docs/html/vfs__tinyusb_8h.html | 338 ++ docs/html/vfs__tinyusb_8h.js | 7 + docs/html/vfs__tinyusb_8h__dep__incl.md5 | 1 + docs/html/vfs__tinyusb_8h__dep__incl.svg | 83 + docs/html/vfs__tinyusb_8h__dep__incl_org.svg | 57 + docs/html/vfs__tinyusb_8h__incl.md5 | 1 + docs/html/vfs__tinyusb_8h__incl.svg | 83 + docs/html/vfs__tinyusb_8h__incl_org.svg | 57 + ...8ded6da11b7ec9c6707957cdbbe3ccb_cgraph.md5 | 1 + ...8ded6da11b7ec9c6707957cdbbe3ccb_cgraph.svg | 65 + ...6da11b7ec9c6707957cdbbe3ccb_cgraph_org.svg | 39 + ...ded6da11b7ec9c6707957cdbbe3ccb_icgraph.md5 | 1 + ...ded6da11b7ec9c6707957cdbbe3ccb_icgraph.svg | 65 + ...da11b7ec9c6707957cdbbe3ccb_icgraph_org.svg | 39 + ...56dd480e9fe67841a7da40fe1a0322f_cgraph.md5 | 1 + ...56dd480e9fe67841a7da40fe1a0322f_cgraph.svg | 330 ++ ...480e9fe67841a7da40fe1a0322f_cgraph_org.svg | 247 ++ ...6dd480e9fe67841a7da40fe1a0322f_icgraph.md5 | 1 + ...6dd480e9fe67841a7da40fe1a0322f_icgraph.svg | 65 + ...80e9fe67841a7da40fe1a0322f_icgraph_org.svg | 39 + docs/html/vfs__tinyusb_8h_source.html | 134 + docs/html/wave__gen_8c.html | 986 +++++ docs/html/wave__gen_8c.js | 27 + docs/html/wave__gen_8c__incl.md5 | 1 + docs/html/wave__gen_8c__incl.svg | 311 ++ docs/html/wave__gen_8c__incl_org.svg | 228 ++ ...a80b52f7f31076a9d9cea3f573b44a_icgraph.md5 | 1 + ...a80b52f7f31076a9d9cea3f573b44a_icgraph.svg | 65 + ...52f7f31076a9d9cea3f573b44a_icgraph_org.svg | 39 + ...f828abf3f9864757be5f45af606f0b_icgraph.md5 | 1 + ...f828abf3f9864757be5f45af606f0b_icgraph.svg | 65 + ...abf3f9864757be5f45af606f0b_icgraph_org.svg | 39 + ...fe735cc4f1f71a8a82696d4f2beb46_icgraph.md5 | 1 + ...fe735cc4f1f71a8a82696d4f2beb46_icgraph.svg | 83 + ...5cc4f1f71a8a82696d4f2beb46_icgraph_org.svg | 57 + ...aa3551dedb9787ba877eacaf781c42a_cgraph.md5 | 1 + ...aa3551dedb9787ba877eacaf781c42a_cgraph.svg | 65 + ...51dedb9787ba877eacaf781c42a_cgraph_org.svg | 39 + ...a3551dedb9787ba877eacaf781c42a_icgraph.md5 | 1 + ...a3551dedb9787ba877eacaf781c42a_icgraph.svg | 65 + ...1dedb9787ba877eacaf781c42a_icgraph_org.svg | 39 + ...3fa6c38b79b213e3c8cffab90891eb_icgraph.md5 | 1 + ...3fa6c38b79b213e3c8cffab90891eb_icgraph.svg | 65 + ...c38b79b213e3c8cffab90891eb_icgraph_org.svg | 39 + ...955e63100a0b29ac9b09269edc9b90_icgraph.md5 | 1 + ...955e63100a0b29ac9b09269edc9b90_icgraph.svg | 65 + ...63100a0b29ac9b09269edc9b90_icgraph_org.svg | 39 + docs/html/wave__gen_8c_source.html | 492 +++ docs/html/wave__gen_8h.html | 569 +++ docs/html/wave__gen_8h.js | 18 + docs/html/wave__gen_8h__dep__incl.md5 | 1 + docs/html/wave__gen_8h__dep__incl.svg | 65 + docs/html/wave__gen_8h__dep__incl_org.svg | 39 + docs/html/wave__gen_8h__incl.md5 | 1 + docs/html/wave__gen_8h__incl.svg | 83 + docs/html/wave__gen_8h__incl_org.svg | 57 + ...a80b52f7f31076a9d9cea3f573b44a_icgraph.md5 | 1 + ...a80b52f7f31076a9d9cea3f573b44a_icgraph.svg | 65 + ...52f7f31076a9d9cea3f573b44a_icgraph_org.svg | 39 + ...f828abf3f9864757be5f45af606f0b_icgraph.md5 | 1 + ...f828abf3f9864757be5f45af606f0b_icgraph.svg | 65 + ...abf3f9864757be5f45af606f0b_icgraph_org.svg | 39 + ...aa3551dedb9787ba877eacaf781c42a_cgraph.md5 | 1 + ...aa3551dedb9787ba877eacaf781c42a_cgraph.svg | 65 + ...51dedb9787ba877eacaf781c42a_cgraph_org.svg | 39 + ...a3551dedb9787ba877eacaf781c42a_icgraph.md5 | 1 + ...a3551dedb9787ba877eacaf781c42a_icgraph.svg | 65 + ...1dedb9787ba877eacaf781c42a_icgraph_org.svg | 39 + ...3fa6c38b79b213e3c8cffab90891eb_icgraph.md5 | 1 + ...3fa6c38b79b213e3c8cffab90891eb_icgraph.svg | 65 + ...c38b79b213e3c8cffab90891eb_icgraph_org.svg | 39 + ...955e63100a0b29ac9b09269edc9b90_icgraph.md5 | 1 + ...955e63100a0b29ac9b09269edc9b90_icgraph.svg | 65 + ...63100a0b29ac9b09269edc9b90_icgraph_org.svg | 39 + docs/html/wave__gen_8h_source.html | 173 + 5286 files changed, 712066 insertions(+) create mode 100644 docs/html/aes3__tie__log_8c.html create mode 100644 docs/html/aes3__tie__log_8c.js create mode 100644 docs/html/aes3__tie__log_8c__incl.md5 create mode 100644 docs/html/aes3__tie__log_8c__incl.svg create mode 100644 docs/html/aes3__tie__log_8c__incl_org.svg create mode 100644 docs/html/aes3__tie__log_8c_source.html create mode 100644 docs/html/annotated.html create mode 100644 docs/html/annotated_dup.js create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.js create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c_source.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.js create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.md5 create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl_org.svg create mode 100644 docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h_source.html create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c.html create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c.js create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg create mode 100644 docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_source.html create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.js create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_source.html create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.js create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_source.html create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.js create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.md5 create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl_org.svg create mode 100644 docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c_source.html create mode 100644 docs/html/cdc_8c.html create mode 100644 docs/html/cdc_8c.js create mode 100644 docs/html/cdc_8c__incl.md5 create mode 100644 docs/html/cdc_8c__incl.svg create mode 100644 docs/html/cdc_8c__incl_org.svg create mode 100644 docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph.md5 create mode 100644 docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph.svg create mode 100644 docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph_org.svg create mode 100644 docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph.md5 create mode 100644 docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph.svg create mode 100644 docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph_org.svg create mode 100644 docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph.md5 create mode 100644 docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph.svg create mode 100644 docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph_org.svg create mode 100644 docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph.md5 create mode 100644 docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph.svg create mode 100644 docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph_org.svg create mode 100644 docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph.md5 create mode 100644 docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph.svg create mode 100644 docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph_org.svg create mode 100644 docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph.md5 create mode 100644 docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph.svg create mode 100644 docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph_org.svg create mode 100644 docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph.md5 create mode 100644 docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph.svg create mode 100644 docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph_org.svg create mode 100644 docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph.md5 create mode 100644 docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph.svg create mode 100644 docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph_org.svg create mode 100644 docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph.md5 create mode 100644 docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph.svg create mode 100644 docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph_org.svg create mode 100644 docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph.md5 create mode 100644 docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph.svg create mode 100644 docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph_org.svg create mode 100644 docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph.md5 create mode 100644 docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph.svg create mode 100644 docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph_org.svg create mode 100644 docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph.md5 create mode 100644 docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph.svg create mode 100644 docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph_org.svg create mode 100644 docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph.md5 create mode 100644 docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph.svg create mode 100644 docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph_org.svg create mode 100644 docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 create mode 100644 docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg create mode 100644 docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph_org.svg create mode 100644 docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 create mode 100644 docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.svg create mode 100644 docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph_org.svg create mode 100644 docs/html/cdc_8c_source.html create mode 100644 docs/html/cdc_8h.html create mode 100644 docs/html/cdc_8h.js create mode 100644 docs/html/cdc_8h__dep__incl.md5 create mode 100644 docs/html/cdc_8h__dep__incl.svg create mode 100644 docs/html/cdc_8h__dep__incl_org.svg create mode 100644 docs/html/cdc_8h__incl.md5 create mode 100644 docs/html/cdc_8h__incl.svg create mode 100644 docs/html/cdc_8h__incl_org.svg create mode 100644 docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph.md5 create mode 100644 docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph.svg create mode 100644 docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph_org.svg create mode 100644 docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph.md5 create mode 100644 docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph.svg create mode 100644 docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph_org.svg create mode 100644 docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph.md5 create mode 100644 docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph.svg create mode 100644 docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph_org.svg create mode 100644 docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 create mode 100644 docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg create mode 100644 docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph_org.svg create mode 100644 docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 create mode 100644 docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.svg create mode 100644 docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph_org.svg create mode 100644 docs/html/cdc_8h_source.html create mode 100644 docs/html/classdspm_1_1_mat.html create mode 100644 docs/html/classdspm_1_1_mat.js create mode 100644 docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph_org.svg create mode 100644 docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph.md5 create mode 100644 docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph.svg create mode 100644 docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph_org.svg create mode 100644 docs/html/classekf.html create mode 100644 docs/html/classekf.js create mode 100644 docs/html/classekf__coll__graph.md5 create mode 100644 docs/html/classekf__coll__graph.svg create mode 100644 docs/html/classekf__coll__graph_org.svg create mode 100644 docs/html/classekf__imu13states.html create mode 100644 docs/html/classekf__imu13states.js create mode 100644 docs/html/classekf__imu13states__coll__graph.md5 create mode 100644 docs/html/classekf__imu13states__coll__graph.svg create mode 100644 docs/html/classekf__imu13states__coll__graph_org.svg create mode 100644 docs/html/classekf__imu13states__inherit__graph.md5 create mode 100644 docs/html/classekf__imu13states__inherit__graph.svg create mode 100644 docs/html/classekf__imu13states__inherit__graph_org.svg create mode 100644 docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph.md5 create mode 100644 docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph.svg create mode 100644 docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph_org.svg create mode 100644 docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph.md5 create mode 100644 docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph.svg create mode 100644 docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph_org.svg create mode 100644 docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph.md5 create mode 100644 docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph.svg create mode 100644 docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph_org.svg create mode 100644 docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph.md5 create mode 100644 docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph.svg create mode 100644 docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph_org.svg create mode 100644 docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph.md5 create mode 100644 docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph.svg create mode 100644 docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph_org.svg create mode 100644 docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph.md5 create mode 100644 docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph.svg create mode 100644 docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph_org.svg create mode 100644 docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph.md5 create mode 100644 docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph.svg create mode 100644 docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph_org.svg create mode 100644 docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph.md5 create mode 100644 docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph.svg create mode 100644 docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph_org.svg create mode 100644 docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph.md5 create mode 100644 docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph.svg create mode 100644 docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph_org.svg create mode 100644 docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph.md5 create mode 100644 docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph.svg create mode 100644 docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph_org.svg create mode 100644 docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph.md5 create mode 100644 docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph.svg create mode 100644 docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph_org.svg create mode 100644 docs/html/classekf__inherit__graph.md5 create mode 100644 docs/html/classekf__inherit__graph.svg create mode 100644 docs/html/classekf__inherit__graph_org.svg create mode 100644 docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph.md5 create mode 100644 docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph.svg create mode 100644 docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph_org.svg create mode 100644 docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph.md5 create mode 100644 docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph.svg create mode 100644 docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph_org.svg create mode 100644 docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph.md5 create mode 100644 docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph.svg create mode 100644 docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph_org.svg create mode 100644 docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph.md5 create mode 100644 docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph.svg create mode 100644 docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph_org.svg create mode 100644 docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph.md5 create mode 100644 docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph.svg create mode 100644 docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph_org.svg create mode 100644 docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph.md5 create mode 100644 docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph.svg create mode 100644 docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph_org.svg create mode 100644 docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph.md5 create mode 100644 docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph.svg create mode 100644 docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph_org.svg create mode 100644 docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph.md5 create mode 100644 docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph.svg create mode 100644 docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph_org.svg create mode 100644 docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph.md5 create mode 100644 docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph.svg create mode 100644 docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph_org.svg create mode 100644 docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.md5 create mode 100644 docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.svg create mode 100644 docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph_org.svg create mode 100644 docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph.md5 create mode 100644 docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph.svg create mode 100644 docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph_org.svg create mode 100644 docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph.md5 create mode 100644 docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph.svg create mode 100644 docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph_org.svg create mode 100644 docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph.md5 create mode 100644 docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph.svg create mode 100644 docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph_org.svg create mode 100644 docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph.md5 create mode 100644 docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph.svg create mode 100644 docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph_org.svg create mode 100644 docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph.md5 create mode 100644 docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph.svg create mode 100644 docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph_org.svg create mode 100644 docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph.md5 create mode 100644 docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph.svg create mode 100644 docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph_org.svg create mode 100644 docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph.md5 create mode 100644 docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph.svg create mode 100644 docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph_org.svg create mode 100644 docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph.md5 create mode 100644 docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph.svg create mode 100644 docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph_org.svg create mode 100644 docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph.md5 create mode 100644 docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph.svg create mode 100644 docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph_org.svg create mode 100644 docs/html/classes.html create mode 100644 docs/html/clipboard.js create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.js create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_source.html create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.js create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_source.html create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.html create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.js create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_source.html create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.html create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.js create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_source.html create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.html create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.js create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_source.html create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.html create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.js create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg create mode 100644 docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_source.html create mode 100644 docs/html/cookie.js create mode 100644 docs/html/descriptors__control_8c.html create mode 100644 docs/html/descriptors__control_8c.js create mode 100644 docs/html/descriptors__control_8c__incl.md5 create mode 100644 docs/html/descriptors__control_8c__incl.svg create mode 100644 docs/html/descriptors__control_8c__incl_org.svg create mode 100644 docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 create mode 100644 docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.svg create mode 100644 docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph_org.svg create mode 100644 docs/html/descriptors__control_8c_source.html create mode 100644 docs/html/descriptors__control_8h.html create mode 100644 docs/html/descriptors__control_8h.js create mode 100644 docs/html/descriptors__control_8h__dep__incl.md5 create mode 100644 docs/html/descriptors__control_8h__dep__incl.svg create mode 100644 docs/html/descriptors__control_8h__dep__incl_org.svg create mode 100644 docs/html/descriptors__control_8h__incl.md5 create mode 100644 docs/html/descriptors__control_8h__incl.svg create mode 100644 docs/html/descriptors__control_8h__incl_org.svg create mode 100644 docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 create mode 100644 docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.svg create mode 100644 docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph_org.svg create mode 100644 docs/html/descriptors__control_8h_source.html create mode 100644 docs/html/dir_000000_000167.html create mode 100644 docs/html/dir_000001_000167.html create mode 100644 docs/html/dir_000002_000167.html create mode 100644 docs/html/dir_000003_000167.html create mode 100644 docs/html/dir_000004_000167.html create mode 100644 docs/html/dir_000005_000167.html create mode 100644 docs/html/dir_000006_000167.html create mode 100644 docs/html/dir_000007_000167.html create mode 100644 docs/html/dir_000008_000167.html create mode 100644 docs/html/dir_000009_000167.html create mode 100644 docs/html/dir_000013_000167.html create mode 100644 docs/html/dir_000014_000167.html create mode 100644 docs/html/dir_000015_000167.html create mode 100644 docs/html/dir_000016_000036.html create mode 100644 docs/html/dir_000017_000036.html create mode 100644 docs/html/dir_000018_000036.html create mode 100644 docs/html/dir_000019_000036.html create mode 100644 docs/html/dir_000020_000167.html create mode 100644 docs/html/dir_000021_000167.html create mode 100644 docs/html/dir_000022_000167.html create mode 100644 docs/html/dir_000023_000167.html create mode 100644 docs/html/dir_000024_000167.html create mode 100644 docs/html/dir_000025_000167.html create mode 100644 docs/html/dir_000026_000167.html create mode 100644 docs/html/dir_000027_000167.html create mode 100644 docs/html/dir_000028_000167.html create mode 100644 docs/html/dir_000029_000167.html create mode 100644 docs/html/dir_000030_000167.html create mode 100644 docs/html/dir_000031_000167.html create mode 100644 docs/html/dir_000032_000036.html create mode 100644 docs/html/dir_000032_000100.html create mode 100644 docs/html/dir_000036_000039.html create mode 100644 docs/html/dir_000036_000042.html create mode 100644 docs/html/dir_000036_000043.html create mode 100644 docs/html/dir_000036_000051.html create mode 100644 docs/html/dir_000036_000052.html create mode 100644 docs/html/dir_000036_000090.html create mode 100644 docs/html/dir_000036_000162.html create mode 100644 docs/html/dir_000036_000163.html create mode 100644 docs/html/dir_000036_000182.html create mode 100644 docs/html/dir_000036_000192.html create mode 100644 docs/html/dir_000037_000101.html create mode 100644 docs/html/dir_000039_000036.html create mode 100644 docs/html/dir_000040_000036.html create mode 100644 docs/html/dir_000040_000116.html create mode 100644 docs/html/dir_000041_000167.html create mode 100644 docs/html/dir_000042_000036.html create mode 100644 docs/html/dir_000042_000051.html create mode 100644 docs/html/dir_000043_000036.html create mode 100644 docs/html/dir_000044_000163.html create mode 100644 docs/html/dir_000045_000044.html create mode 100644 docs/html/dir_000045_000102.html create mode 100644 docs/html/dir_000047_000046.html create mode 100644 docs/html/dir_000047_000125.html create mode 100644 docs/html/dir_000047_000128.html create mode 100644 docs/html/dir_000048_000046.html create mode 100644 docs/html/dir_000049_000167.html create mode 100644 docs/html/dir_000050_000167.html create mode 100644 docs/html/dir_000051_000036.html create mode 100644 docs/html/dir_000051_000163.html create mode 100644 docs/html/dir_000052_000036.html create mode 100644 docs/html/dir_000053_000097.html create mode 100644 docs/html/dir_000054_000036.html create mode 100644 docs/html/dir_000054_000098.html create mode 100644 docs/html/dir_000055_000036.html create mode 100644 docs/html/dir_000055_000099.html create mode 100644 docs/html/dir_000056_000103.html create mode 100644 docs/html/dir_000057_000106.html create mode 100644 docs/html/dir_000058_000107.html create mode 100644 docs/html/dir_000059_000016.html create mode 100644 docs/html/dir_000059_000109.html create mode 100644 docs/html/dir_000060_000043.html create mode 100644 docs/html/dir_000060_000113.html create mode 100644 docs/html/dir_000062_000036.html create mode 100644 docs/html/dir_000062_000095.html create mode 100644 docs/html/dir_000063_000036.html create mode 100644 docs/html/dir_000063_000051.html create mode 100644 docs/html/dir_000063_000096.html create mode 100644 docs/html/dir_000064_000097.html create mode 100644 docs/html/dir_000065_000036.html create mode 100644 docs/html/dir_000065_000098.html create mode 100644 docs/html/dir_000066_000036.html create mode 100644 docs/html/dir_000066_000099.html create mode 100644 docs/html/dir_000067_000103.html create mode 100644 docs/html/dir_000068_000104.html create mode 100644 docs/html/dir_000069_000106.html create mode 100644 docs/html/dir_000070_000107.html create mode 100644 docs/html/dir_000071_000108.html create mode 100644 docs/html/dir_000072_000109.html create mode 100644 docs/html/dir_000073_000110.html create mode 100644 docs/html/dir_000074_000111.html create mode 100644 docs/html/dir_000075_000043.html create mode 100644 docs/html/dir_000075_000113.html create mode 100644 docs/html/dir_000076_000114.html create mode 100644 docs/html/dir_000077_000115.html create mode 100644 docs/html/dir_000078_000036.html create mode 100644 docs/html/dir_000078_000051.html create mode 100644 docs/html/dir_000078_000116.html create mode 100644 docs/html/dir_000079_000036.html create mode 100644 docs/html/dir_000079_000051.html create mode 100644 docs/html/dir_000079_000116.html create mode 100644 docs/html/dir_000080_000118.html create mode 100644 docs/html/dir_000081_000119.html create mode 100644 docs/html/dir_000082_000120.html create mode 100644 docs/html/dir_000083_000121.html create mode 100644 docs/html/dir_000084_000122.html create mode 100644 docs/html/dir_000085_000124.html create mode 100644 docs/html/dir_000086_000167.html create mode 100644 docs/html/dir_000087_000167.html create mode 100644 docs/html/dir_000088_000167.html create mode 100644 docs/html/dir_000090_000036.html create mode 100644 docs/html/dir_000094_000039.html create mode 100644 docs/html/dir_000094_000042.html create mode 100644 docs/html/dir_000094_000043.html create mode 100644 docs/html/dir_000094_000051.html create mode 100644 docs/html/dir_000094_000052.html create mode 100644 docs/html/dir_000094_000090.html create mode 100644 docs/html/dir_000094_000129.html create mode 100644 docs/html/dir_000094_000162.html create mode 100644 docs/html/dir_000094_000163.html create mode 100644 docs/html/dir_000094_000182.html create mode 100644 docs/html/dir_000094_000192.html create mode 100644 docs/html/dir_000095_000036.html create mode 100644 docs/html/dir_000096_000036.html create mode 100644 docs/html/dir_000097_000036.html create mode 100644 docs/html/dir_000098_000036.html create mode 100644 docs/html/dir_000099_000036.html create mode 100644 docs/html/dir_000100_000036.html create mode 100644 docs/html/dir_000101_000163.html create mode 100644 docs/html/dir_000102_000044.html create mode 100644 docs/html/dir_000103_000036.html create mode 100644 docs/html/dir_000104_000036.html create mode 100644 docs/html/dir_000105_000016.html create mode 100644 docs/html/dir_000105_000018.html create mode 100644 docs/html/dir_000105_000168.html create mode 100644 docs/html/dir_000105_000170.html create mode 100644 docs/html/dir_000105_000178.html create mode 100644 docs/html/dir_000105_000180.html create mode 100644 docs/html/dir_000106_000036.html create mode 100644 docs/html/dir_000107_000036.html create mode 100644 docs/html/dir_000108_000036.html create mode 100644 docs/html/dir_000109_000036.html create mode 100644 docs/html/dir_000110_000036.html create mode 100644 docs/html/dir_000111_000036.html create mode 100644 docs/html/dir_000112_000017.html create mode 100644 docs/html/dir_000112_000019.html create mode 100644 docs/html/dir_000112_000169.html create mode 100644 docs/html/dir_000112_000171.html create mode 100644 docs/html/dir_000112_000181.html create mode 100644 docs/html/dir_000113_000036.html create mode 100644 docs/html/dir_000114_000036.html create mode 100644 docs/html/dir_000115_000036.html create mode 100644 docs/html/dir_000116_000036.html create mode 100644 docs/html/dir_000117_000036.html create mode 100644 docs/html/dir_000123_000033.html create mode 100644 docs/html/dir_000123_000034.html create mode 100644 docs/html/dir_000123_000035.html create mode 100644 docs/html/dir_000123_000061.html create mode 100644 docs/html/dir_000123_000089.html create mode 100644 docs/html/dir_000123_000172.html create mode 100644 docs/html/dir_000125_000046.html create mode 100644 docs/html/dir_000126_000046.html create mode 100644 docs/html/dir_000127_000046.html create mode 100644 docs/html/dir_000128_000125.html create mode 100644 docs/html/dir_000130_000046.html create mode 100644 docs/html/dir_000131_000163.html create mode 100644 docs/html/dir_000132_000167.html create mode 100644 docs/html/dir_000133_000167.html create mode 100644 docs/html/dir_000134_000167.html create mode 100644 docs/html/dir_000135_000167.html create mode 100644 docs/html/dir_000136_000167.html create mode 100644 docs/html/dir_000137_000167.html create mode 100644 docs/html/dir_000138_000167.html create mode 100644 docs/html/dir_000139_000167.html create mode 100644 docs/html/dir_000140_000167.html create mode 100644 docs/html/dir_000141_000167.html create mode 100644 docs/html/dir_000142_000167.html create mode 100644 docs/html/dir_000143_000167.html create mode 100644 docs/html/dir_000144_000167.html create mode 100644 docs/html/dir_000145_000167.html create mode 100644 docs/html/dir_000146_000167.html create mode 100644 docs/html/dir_000147_000167.html create mode 100644 docs/html/dir_000148_000167.html create mode 100644 docs/html/dir_000149_000167.html create mode 100644 docs/html/dir_000150_000167.html create mode 100644 docs/html/dir_000151_000167.html create mode 100644 docs/html/dir_000152_000167.html create mode 100644 docs/html/dir_000153_000167.html create mode 100644 docs/html/dir_000154_000167.html create mode 100644 docs/html/dir_000155_000167.html create mode 100644 docs/html/dir_000156_000167.html create mode 100644 docs/html/dir_000157_000167.html create mode 100644 docs/html/dir_000158_000167.html create mode 100644 docs/html/dir_000159_000167.html create mode 100644 docs/html/dir_000160_000038.html create mode 100644 docs/html/dir_000161_000036.html create mode 100644 docs/html/dir_000161_000112.html create mode 100644 docs/html/dir_000161_000162.html create mode 100644 docs/html/dir_000162_000036.html create mode 100644 docs/html/dir_000163_000036.html create mode 100644 docs/html/dir_000163_000043.html create mode 100644 docs/html/dir_000163_000162.html create mode 100644 docs/html/dir_000164_000036.html create mode 100644 docs/html/dir_000165_000094.html create mode 100644 docs/html/dir_000166_000116.html create mode 100644 docs/html/dir_000168_000036.html create mode 100644 docs/html/dir_000169_000036.html create mode 100644 docs/html/dir_000169_000043.html create mode 100644 docs/html/dir_000170_000036.html create mode 100644 docs/html/dir_000171_000036.html create mode 100644 docs/html/dir_000173_000099.html create mode 100644 docs/html/dir_000174_000036.html create mode 100644 docs/html/dir_000174_000051.html create mode 100644 docs/html/dir_000174_000116.html create mode 100644 docs/html/dir_000175_000036.html create mode 100644 docs/html/dir_000175_000051.html create mode 100644 docs/html/dir_000175_000116.html create mode 100644 docs/html/dir_000176_000167.html create mode 100644 docs/html/dir_000177_000167.html create mode 100644 docs/html/dir_000178_000036.html create mode 100644 docs/html/dir_000179_000046.html create mode 100644 docs/html/dir_000179_000126.html create mode 100644 docs/html/dir_000179_000130.html create mode 100644 docs/html/dir_000180_000016.html create mode 100644 docs/html/dir_000180_000036.html create mode 100644 docs/html/dir_000181_000036.html create mode 100644 docs/html/dir_000182_000036.html create mode 100644 docs/html/dir_000182_000051.html create mode 100644 docs/html/dir_000186_000036.html create mode 100644 docs/html/dir_000186_000098.html create mode 100644 docs/html/dir_000186_000163.html create mode 100644 docs/html/dir_000187_000036.html create mode 100644 docs/html/dir_000187_000099.html create mode 100644 docs/html/dir_000188_000036.html create mode 100644 docs/html/dir_000188_000100.html create mode 100644 docs/html/dir_000189_000036.html create mode 100644 docs/html/dir_000189_000113.html create mode 100644 docs/html/dir_000190_000036.html create mode 100644 docs/html/dir_000190_000116.html create mode 100644 docs/html/dir_000191_000046.html create mode 100644 docs/html/dir_000191_000127.html create mode 100644 docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23.html create mode 100644 docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23.js create mode 100644 docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep.md5 create mode 100644 docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep.svg create mode 100644 docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep_org.svg create mode 100644 docs/html/dir_02308b8e45679f69b2b2822872449adb.html create mode 100644 docs/html/dir_02308b8e45679f69b2b2822872449adb.js create mode 100644 docs/html/dir_02308b8e45679f69b2b2822872449adb_dep.md5 create mode 100644 docs/html/dir_02308b8e45679f69b2b2822872449adb_dep.svg create mode 100644 docs/html/dir_02308b8e45679f69b2b2822872449adb_dep_org.svg create mode 100644 docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9.html create mode 100644 docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9.js create mode 100644 docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep.md5 create mode 100644 docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep.svg create mode 100644 docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep_org.svg create mode 100644 docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0.html create mode 100644 docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0.js create mode 100644 docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep.md5 create mode 100644 docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep.svg create mode 100644 docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep_org.svg create mode 100644 docs/html/dir_0609830f9d21b927f4cb8e061f955380.html create mode 100644 docs/html/dir_0609830f9d21b927f4cb8e061f955380.js create mode 100644 docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep.md5 create mode 100644 docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep.svg create mode 100644 docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep_org.svg create mode 100644 docs/html/dir_09ad66f83672b653a2c2d9afebef122d.html create mode 100644 docs/html/dir_09ad66f83672b653a2c2d9afebef122d.js create mode 100644 docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep.md5 create mode 100644 docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep.svg create mode 100644 docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep_org.svg create mode 100644 docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb.html create mode 100644 docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb.js create mode 100644 docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep.md5 create mode 100644 docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep.svg create mode 100644 docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep_org.svg create mode 100644 docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3.html create mode 100644 docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3.js create mode 100644 docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep.md5 create mode 100644 docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep.svg create mode 100644 docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep_org.svg create mode 100644 docs/html/dir_0c02408d15b1f96bbde516c6c09437d8.html create mode 100644 docs/html/dir_0c02408d15b1f96bbde516c6c09437d8.js create mode 100644 docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep.md5 create mode 100644 docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep.svg create mode 100644 docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep_org.svg create mode 100644 docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59.html create mode 100644 docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59.js create mode 100644 docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep.md5 create mode 100644 docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep.svg create mode 100644 docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep_org.svg create mode 100644 docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f.html create mode 100644 docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f.js create mode 100644 docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep.md5 create mode 100644 docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep.svg create mode 100644 docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep_org.svg create mode 100644 docs/html/dir_0db1884497eb987b5f550d1edc49e18a.html create mode 100644 docs/html/dir_0db1884497eb987b5f550d1edc49e18a.js create mode 100644 docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep.md5 create mode 100644 docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep.svg create mode 100644 docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep_org.svg create mode 100644 docs/html/dir_0e58a5050afeaefce98fd18b08172c0d.html create mode 100644 docs/html/dir_0e58a5050afeaefce98fd18b08172c0d.js create mode 100644 docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep.md5 create mode 100644 docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep.svg create mode 100644 docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep_org.svg create mode 100644 docs/html/dir_0f8480e348776be0b4173a763a451c02.html create mode 100644 docs/html/dir_0f8480e348776be0b4173a763a451c02.js create mode 100644 docs/html/dir_0f8480e348776be0b4173a763a451c02_dep.md5 create mode 100644 docs/html/dir_0f8480e348776be0b4173a763a451c02_dep.svg create mode 100644 docs/html/dir_0f8480e348776be0b4173a763a451c02_dep_org.svg create mode 100644 docs/html/dir_103c85098120c3619f61a2b979c3132b.html create mode 100644 docs/html/dir_103c85098120c3619f61a2b979c3132b.js create mode 100644 docs/html/dir_103c85098120c3619f61a2b979c3132b_dep.md5 create mode 100644 docs/html/dir_103c85098120c3619f61a2b979c3132b_dep.svg create mode 100644 docs/html/dir_103c85098120c3619f61a2b979c3132b_dep_org.svg create mode 100644 docs/html/dir_10508c1be7391f23f9614e5e6618e1bc.html create mode 100644 docs/html/dir_10508c1be7391f23f9614e5e6618e1bc.js create mode 100644 docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep.md5 create mode 100644 docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep.svg create mode 100644 docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep_org.svg create mode 100644 docs/html/dir_169a0c2dbb59f200adaa018c9c77c755.html create mode 100644 docs/html/dir_169a0c2dbb59f200adaa018c9c77c755.js create mode 100644 docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep.md5 create mode 100644 docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep.svg create mode 100644 docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep_org.svg create mode 100644 docs/html/dir_16c85ce1c9ed281be79921a05621351c.html create mode 100644 docs/html/dir_16c85ce1c9ed281be79921a05621351c.js create mode 100644 docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep.md5 create mode 100644 docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep.svg create mode 100644 docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep_org.svg create mode 100644 docs/html/dir_16df77616ac816b7b694d2fa838cb084.html create mode 100644 docs/html/dir_16df77616ac816b7b694d2fa838cb084.js create mode 100644 docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep.md5 create mode 100644 docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep.svg create mode 100644 docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep_org.svg create mode 100644 docs/html/dir_171b4edb7086532dd11580f43732b9a7.html create mode 100644 docs/html/dir_171b4edb7086532dd11580f43732b9a7.js create mode 100644 docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep.md5 create mode 100644 docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep.svg create mode 100644 docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep_org.svg create mode 100644 docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58.html create mode 100644 docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58.js create mode 100644 docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep.md5 create mode 100644 docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep.svg create mode 100644 docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep_org.svg create mode 100644 docs/html/dir_176ce0f9603aed617a2000f9b4957e6f.html create mode 100644 docs/html/dir_176ce0f9603aed617a2000f9b4957e6f.js create mode 100644 docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep.md5 create mode 100644 docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep.svg create mode 100644 docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep_org.svg create mode 100644 docs/html/dir_1796197e4e8e42e555193fa38af1784a.html create mode 100644 docs/html/dir_1796197e4e8e42e555193fa38af1784a.js create mode 100644 docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep.md5 create mode 100644 docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep.svg create mode 100644 docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep_org.svg create mode 100644 docs/html/dir_192a153369401f20235f877504e6d5ad.html create mode 100644 docs/html/dir_192a153369401f20235f877504e6d5ad.js create mode 100644 docs/html/dir_192a153369401f20235f877504e6d5ad_dep.md5 create mode 100644 docs/html/dir_192a153369401f20235f877504e6d5ad_dep.svg create mode 100644 docs/html/dir_192a153369401f20235f877504e6d5ad_dep_org.svg create mode 100644 docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c.html create mode 100644 docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c.js create mode 100644 docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep.md5 create mode 100644 docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep.svg create mode 100644 docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep_org.svg create mode 100644 docs/html/dir_1a9183b7d6910c8019921a90e48747ec.html create mode 100644 docs/html/dir_1a9183b7d6910c8019921a90e48747ec.js create mode 100644 docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep.md5 create mode 100644 docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep.svg create mode 100644 docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep_org.svg create mode 100644 docs/html/dir_1a94785b4fd07fa9f86295c704ab286b.html create mode 100644 docs/html/dir_1a94785b4fd07fa9f86295c704ab286b.js create mode 100644 docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep.md5 create mode 100644 docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep.svg create mode 100644 docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep_org.svg create mode 100644 docs/html/dir_1d572fcc0f444402026b5028f7fd32af.html create mode 100644 docs/html/dir_1d572fcc0f444402026b5028f7fd32af.js create mode 100644 docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep.md5 create mode 100644 docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep.svg create mode 100644 docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep_org.svg create mode 100644 docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96.html create mode 100644 docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96.js create mode 100644 docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep.md5 create mode 100644 docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep.svg create mode 100644 docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep_org.svg create mode 100644 docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df.html create mode 100644 docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df.js create mode 100644 docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep.md5 create mode 100644 docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep.svg create mode 100644 docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep_org.svg create mode 100644 docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55.html create mode 100644 docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55.js create mode 100644 docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep.md5 create mode 100644 docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep.svg create mode 100644 docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep_org.svg create mode 100644 docs/html/dir_23982065b3648efc06e84985cbc62760.html create mode 100644 docs/html/dir_23982065b3648efc06e84985cbc62760.js create mode 100644 docs/html/dir_23982065b3648efc06e84985cbc62760_dep.md5 create mode 100644 docs/html/dir_23982065b3648efc06e84985cbc62760_dep.svg create mode 100644 docs/html/dir_23982065b3648efc06e84985cbc62760_dep_org.svg create mode 100644 docs/html/dir_2606190ade5f42f0803fb562b0f2687e.html create mode 100644 docs/html/dir_2606190ade5f42f0803fb562b0f2687e.js create mode 100644 docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep.md5 create mode 100644 docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep.svg create mode 100644 docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep_org.svg create mode 100644 docs/html/dir_2617388a3e5694eabf03217543075dbd.html create mode 100644 docs/html/dir_2617388a3e5694eabf03217543075dbd.js create mode 100644 docs/html/dir_2617388a3e5694eabf03217543075dbd_dep.md5 create mode 100644 docs/html/dir_2617388a3e5694eabf03217543075dbd_dep.svg create mode 100644 docs/html/dir_2617388a3e5694eabf03217543075dbd_dep_org.svg create mode 100644 docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9.html create mode 100644 docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9.js create mode 100644 docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep.md5 create mode 100644 docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep.svg create mode 100644 docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep_org.svg create mode 100644 docs/html/dir_2a0602816c705fc298e0ba805dc0d70a.html create mode 100644 docs/html/dir_2a0602816c705fc298e0ba805dc0d70a.js create mode 100644 docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep.md5 create mode 100644 docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep.svg create mode 100644 docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep_org.svg create mode 100644 docs/html/dir_2a71079c14d229ac9e67921fce4ad634.html create mode 100644 docs/html/dir_2a71079c14d229ac9e67921fce4ad634.js create mode 100644 docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep.md5 create mode 100644 docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep.svg create mode 100644 docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep_org.svg create mode 100644 docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96.html create mode 100644 docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96.js create mode 100644 docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep.md5 create mode 100644 docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep.svg create mode 100644 docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep_org.svg create mode 100644 docs/html/dir_2b34506dc3510c22337948b29ab07162.html create mode 100644 docs/html/dir_2b34506dc3510c22337948b29ab07162.js create mode 100644 docs/html/dir_2b34506dc3510c22337948b29ab07162_dep.md5 create mode 100644 docs/html/dir_2b34506dc3510c22337948b29ab07162_dep.svg create mode 100644 docs/html/dir_2b34506dc3510c22337948b29ab07162_dep_org.svg create mode 100644 docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906.html create mode 100644 docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906.js create mode 100644 docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep.md5 create mode 100644 docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep.svg create mode 100644 docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep_org.svg create mode 100644 docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.html create mode 100644 docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.js create mode 100644 docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.md5 create mode 100644 docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.svg create mode 100644 docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep_org.svg create mode 100644 docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8.html create mode 100644 docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8.js create mode 100644 docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep.md5 create mode 100644 docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep.svg create mode 100644 docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep_org.svg create mode 100644 docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49.html create mode 100644 docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49.js create mode 100644 docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep.md5 create mode 100644 docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep.svg create mode 100644 docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep_org.svg create mode 100644 docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0.html create mode 100644 docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0.js create mode 100644 docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep.md5 create mode 100644 docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep.svg create mode 100644 docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep_org.svg create mode 100644 docs/html/dir_2e6515e08f756e255a623378cbf0a6d0.html create mode 100644 docs/html/dir_2e6515e08f756e255a623378cbf0a6d0.js create mode 100644 docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep.md5 create mode 100644 docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep.svg create mode 100644 docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep_org.svg create mode 100644 docs/html/dir_2ede62ba609a13817930229bff031944.html create mode 100644 docs/html/dir_2ede62ba609a13817930229bff031944.js create mode 100644 docs/html/dir_2ede62ba609a13817930229bff031944_dep.md5 create mode 100644 docs/html/dir_2ede62ba609a13817930229bff031944_dep.svg create mode 100644 docs/html/dir_2ede62ba609a13817930229bff031944_dep_org.svg create mode 100644 docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727.html create mode 100644 docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727.js create mode 100644 docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep.md5 create mode 100644 docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep.svg create mode 100644 docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep_org.svg create mode 100644 docs/html/dir_3517ac14e10456bd2d5137b8d057f895.html create mode 100644 docs/html/dir_3517ac14e10456bd2d5137b8d057f895.js create mode 100644 docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep.md5 create mode 100644 docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep.svg create mode 100644 docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep_org.svg create mode 100644 docs/html/dir_3630efa296d794a506d697d26fb77c32.html create mode 100644 docs/html/dir_3630efa296d794a506d697d26fb77c32.js create mode 100644 docs/html/dir_3630efa296d794a506d697d26fb77c32_dep.md5 create mode 100644 docs/html/dir_3630efa296d794a506d697d26fb77c32_dep.svg create mode 100644 docs/html/dir_3630efa296d794a506d697d26fb77c32_dep_org.svg create mode 100644 docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf.html create mode 100644 docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf.js create mode 100644 docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep.md5 create mode 100644 docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep.svg create mode 100644 docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep_org.svg create mode 100644 docs/html/dir_3ad10b8bedbf41540071c116f87e7818.html create mode 100644 docs/html/dir_3ad10b8bedbf41540071c116f87e7818.js create mode 100644 docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep.md5 create mode 100644 docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep.svg create mode 100644 docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep_org.svg create mode 100644 docs/html/dir_3d8f91d165c61940606cc67fb2b386a2.html create mode 100644 docs/html/dir_3d8f91d165c61940606cc67fb2b386a2.js create mode 100644 docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep.md5 create mode 100644 docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep.svg create mode 100644 docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep_org.svg create mode 100644 docs/html/dir_3e4712a38c94aeee934d4b83943de42c.html create mode 100644 docs/html/dir_3e4712a38c94aeee934d4b83943de42c.js create mode 100644 docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep.md5 create mode 100644 docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep.svg create mode 100644 docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep_org.svg create mode 100644 docs/html/dir_3fd005a8b380f1a21303a2afe19168eb.html create mode 100644 docs/html/dir_3fd005a8b380f1a21303a2afe19168eb.js create mode 100644 docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep.md5 create mode 100644 docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep.svg create mode 100644 docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep_org.svg create mode 100644 docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd.html create mode 100644 docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd.js create mode 100644 docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep.md5 create mode 100644 docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep.svg create mode 100644 docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep_org.svg create mode 100644 docs/html/dir_40243425f75a419aab63d36e8e82036f.html create mode 100644 docs/html/dir_40243425f75a419aab63d36e8e82036f.js create mode 100644 docs/html/dir_40243425f75a419aab63d36e8e82036f_dep.md5 create mode 100644 docs/html/dir_40243425f75a419aab63d36e8e82036f_dep.svg create mode 100644 docs/html/dir_40243425f75a419aab63d36e8e82036f_dep_org.svg create mode 100644 docs/html/dir_409f97388efe006bc3438b95e9edef48.html create mode 100644 docs/html/dir_409f97388efe006bc3438b95e9edef48.js create mode 100644 docs/html/dir_409f97388efe006bc3438b95e9edef48_dep.md5 create mode 100644 docs/html/dir_409f97388efe006bc3438b95e9edef48_dep.svg create mode 100644 docs/html/dir_409f97388efe006bc3438b95e9edef48_dep_org.svg create mode 100644 docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7.html create mode 100644 docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7.js create mode 100644 docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep.md5 create mode 100644 docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep.svg create mode 100644 docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep_org.svg create mode 100644 docs/html/dir_42be8631e0eff9e3824673f44965e076.html create mode 100644 docs/html/dir_42be8631e0eff9e3824673f44965e076.js create mode 100644 docs/html/dir_42be8631e0eff9e3824673f44965e076_dep.md5 create mode 100644 docs/html/dir_42be8631e0eff9e3824673f44965e076_dep.svg create mode 100644 docs/html/dir_42be8631e0eff9e3824673f44965e076_dep_org.svg create mode 100644 docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b.html create mode 100644 docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b.js create mode 100644 docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep.md5 create mode 100644 docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep.svg create mode 100644 docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep_org.svg create mode 100644 docs/html/dir_43ee144b145d28ede80d7406234067ed.html create mode 100644 docs/html/dir_43ee144b145d28ede80d7406234067ed.js create mode 100644 docs/html/dir_43ee144b145d28ede80d7406234067ed_dep.md5 create mode 100644 docs/html/dir_43ee144b145d28ede80d7406234067ed_dep.svg create mode 100644 docs/html/dir_43ee144b145d28ede80d7406234067ed_dep_org.svg create mode 100644 docs/html/dir_4675de09a54f36e152c3aa8af80b2677.html create mode 100644 docs/html/dir_4675de09a54f36e152c3aa8af80b2677.js create mode 100644 docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep.md5 create mode 100644 docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep.svg create mode 100644 docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep_org.svg create mode 100644 docs/html/dir_4cfd07f72260eac2073c61db9b1badd3.html create mode 100644 docs/html/dir_4cfd07f72260eac2073c61db9b1badd3.js create mode 100644 docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep.md5 create mode 100644 docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep.svg create mode 100644 docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep_org.svg create mode 100644 docs/html/dir_4d36d9e87737a2136b2d2e486143979d.html create mode 100644 docs/html/dir_4d36d9e87737a2136b2d2e486143979d.js create mode 100644 docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep.md5 create mode 100644 docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep.svg create mode 100644 docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep_org.svg create mode 100644 docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90.html create mode 100644 docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90.js create mode 100644 docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep.md5 create mode 100644 docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep.svg create mode 100644 docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep_org.svg create mode 100644 docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee.html create mode 100644 docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee.js create mode 100644 docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep.md5 create mode 100644 docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep.svg create mode 100644 docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep_org.svg create mode 100644 docs/html/dir_503b7d37e1488242e5075cc003fe4360.html create mode 100644 docs/html/dir_503b7d37e1488242e5075cc003fe4360.js create mode 100644 docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep.md5 create mode 100644 docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep.svg create mode 100644 docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep_org.svg create mode 100644 docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80.html create mode 100644 docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80.js create mode 100644 docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep.md5 create mode 100644 docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep.svg create mode 100644 docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep_org.svg create mode 100644 docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e.html create mode 100644 docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e.js create mode 100644 docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep.md5 create mode 100644 docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep.svg create mode 100644 docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep_org.svg create mode 100644 docs/html/dir_5a9612cb5743a88a5354e5e317c96db5.html create mode 100644 docs/html/dir_5a9612cb5743a88a5354e5e317c96db5.js create mode 100644 docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep.md5 create mode 100644 docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep.svg create mode 100644 docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep_org.svg create mode 100644 docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64.html create mode 100644 docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64.js create mode 100644 docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep.md5 create mode 100644 docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep.svg create mode 100644 docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep_org.svg create mode 100644 docs/html/dir_5b81275681346a9651ba0069dadde207.html create mode 100644 docs/html/dir_5b81275681346a9651ba0069dadde207.js create mode 100644 docs/html/dir_5b81275681346a9651ba0069dadde207_dep.md5 create mode 100644 docs/html/dir_5b81275681346a9651ba0069dadde207_dep.svg create mode 100644 docs/html/dir_5b81275681346a9651ba0069dadde207_dep_org.svg create mode 100644 docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d.html create mode 100644 docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d.js create mode 100644 docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep.md5 create mode 100644 docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep.svg create mode 100644 docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep_org.svg create mode 100644 docs/html/dir_5c982d53a68cdbcd421152b4020263a9.html create mode 100644 docs/html/dir_5c982d53a68cdbcd421152b4020263a9.js create mode 100644 docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep.md5 create mode 100644 docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep.svg create mode 100644 docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep_org.svg create mode 100644 docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521.html create mode 100644 docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521.js create mode 100644 docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep.md5 create mode 100644 docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep.svg create mode 100644 docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep_org.svg create mode 100644 docs/html/dir_5df7d12836dc4204a1a798d0831431eb.html create mode 100644 docs/html/dir_5df7d12836dc4204a1a798d0831431eb.js create mode 100644 docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep.md5 create mode 100644 docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep.svg create mode 100644 docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep_org.svg create mode 100644 docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6.html create mode 100644 docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6.js create mode 100644 docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep.md5 create mode 100644 docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep.svg create mode 100644 docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep_org.svg create mode 100644 docs/html/dir_5e963e75a20978d5a9f10b264408e6e5.html create mode 100644 docs/html/dir_5e963e75a20978d5a9f10b264408e6e5.js create mode 100644 docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep.md5 create mode 100644 docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep.svg create mode 100644 docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep_org.svg create mode 100644 docs/html/dir_5f2e64e9fe690f961d00e914be24c898.html create mode 100644 docs/html/dir_5f2e64e9fe690f961d00e914be24c898.js create mode 100644 docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep.md5 create mode 100644 docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep.svg create mode 100644 docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep_org.svg create mode 100644 docs/html/dir_5f83482eb30c9259299e8dd4193d7180.html create mode 100644 docs/html/dir_5f83482eb30c9259299e8dd4193d7180.js create mode 100644 docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep.md5 create mode 100644 docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep.svg create mode 100644 docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep_org.svg create mode 100644 docs/html/dir_5fa5d6f670414422007a5925e84ae702.html create mode 100644 docs/html/dir_5fa5d6f670414422007a5925e84ae702.js create mode 100644 docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep.md5 create mode 100644 docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep.svg create mode 100644 docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep_org.svg create mode 100644 docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d.html create mode 100644 docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d.js create mode 100644 docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep.md5 create mode 100644 docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep.svg create mode 100644 docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep_org.svg create mode 100644 docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069.html create mode 100644 docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069.js create mode 100644 docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep.md5 create mode 100644 docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep.svg create mode 100644 docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep_org.svg create mode 100644 docs/html/dir_659a621b8518330e2405891a2cbe2de4.html create mode 100644 docs/html/dir_659a621b8518330e2405891a2cbe2de4.js create mode 100644 docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep.md5 create mode 100644 docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep.svg create mode 100644 docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep_org.svg create mode 100644 docs/html/dir_65b265e786231b2f269c91bc2dcd9462.html create mode 100644 docs/html/dir_65b265e786231b2f269c91bc2dcd9462.js create mode 100644 docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep.md5 create mode 100644 docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep.svg create mode 100644 docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep_org.svg create mode 100644 docs/html/dir_65ea5eca559d12155f129d4142988850.html create mode 100644 docs/html/dir_65ea5eca559d12155f129d4142988850.js create mode 100644 docs/html/dir_65ea5eca559d12155f129d4142988850_dep.md5 create mode 100644 docs/html/dir_65ea5eca559d12155f129d4142988850_dep.svg create mode 100644 docs/html/dir_65ea5eca559d12155f129d4142988850_dep_org.svg create mode 100644 docs/html/dir_675ecede1307f57d5bf686746716e89a.html create mode 100644 docs/html/dir_675ecede1307f57d5bf686746716e89a.js create mode 100644 docs/html/dir_675ecede1307f57d5bf686746716e89a_dep.md5 create mode 100644 docs/html/dir_675ecede1307f57d5bf686746716e89a_dep.svg create mode 100644 docs/html/dir_675ecede1307f57d5bf686746716e89a_dep_org.svg create mode 100644 docs/html/dir_67c4e8b77b4357a93ff15d0d28548721.html create mode 100644 docs/html/dir_67c4e8b77b4357a93ff15d0d28548721.js create mode 100644 docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep.md5 create mode 100644 docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep.svg create mode 100644 docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep_org.svg create mode 100644 docs/html/dir_68ca4758199d84990e1ba5857830e815.html create mode 100644 docs/html/dir_68ca4758199d84990e1ba5857830e815.js create mode 100644 docs/html/dir_68ca4758199d84990e1ba5857830e815_dep.md5 create mode 100644 docs/html/dir_68ca4758199d84990e1ba5857830e815_dep.svg create mode 100644 docs/html/dir_68ca4758199d84990e1ba5857830e815_dep_org.svg create mode 100644 docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc.html create mode 100644 docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc.js create mode 100644 docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep.md5 create mode 100644 docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep.svg create mode 100644 docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep_org.svg create mode 100644 docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2.html create mode 100644 docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2.js create mode 100644 docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep.md5 create mode 100644 docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep.svg create mode 100644 docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep_org.svg create mode 100644 docs/html/dir_6ab96501580168da92dbadcbc9b254ca.html create mode 100644 docs/html/dir_6ab96501580168da92dbadcbc9b254ca.js create mode 100644 docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep.md5 create mode 100644 docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep.svg create mode 100644 docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep_org.svg create mode 100644 docs/html/dir_6b43c4cb499058485fe69351829ae7a4.html create mode 100644 docs/html/dir_6b43c4cb499058485fe69351829ae7a4.js create mode 100644 docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep.md5 create mode 100644 docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep.svg create mode 100644 docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep_org.svg create mode 100644 docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3.html create mode 100644 docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3.js create mode 100644 docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep.md5 create mode 100644 docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep.svg create mode 100644 docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep_org.svg create mode 100644 docs/html/dir_6c1a363c3aada72d365db18498017222.html create mode 100644 docs/html/dir_6c1a363c3aada72d365db18498017222.js create mode 100644 docs/html/dir_6c1a363c3aada72d365db18498017222_dep.md5 create mode 100644 docs/html/dir_6c1a363c3aada72d365db18498017222_dep.svg create mode 100644 docs/html/dir_6c1a363c3aada72d365db18498017222_dep_org.svg create mode 100644 docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7.html create mode 100644 docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7.js create mode 100644 docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.md5 create mode 100644 docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.svg create mode 100644 docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep_org.svg create mode 100644 docs/html/dir_6f0282a56182e11784085c9051410321.html create mode 100644 docs/html/dir_6f0282a56182e11784085c9051410321.js create mode 100644 docs/html/dir_6f0282a56182e11784085c9051410321_dep.md5 create mode 100644 docs/html/dir_6f0282a56182e11784085c9051410321_dep.svg create mode 100644 docs/html/dir_6f0282a56182e11784085c9051410321_dep_org.svg create mode 100644 docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03.html create mode 100644 docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03.js create mode 100644 docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.md5 create mode 100644 docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.svg create mode 100644 docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep_org.svg create mode 100644 docs/html/dir_7148f79eeb1e919c3881defc22882cd2.html create mode 100644 docs/html/dir_7148f79eeb1e919c3881defc22882cd2.js create mode 100644 docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep.md5 create mode 100644 docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep.svg create mode 100644 docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep_org.svg create mode 100644 docs/html/dir_733999795ec05e1d47dd8f5326556154.html create mode 100644 docs/html/dir_733999795ec05e1d47dd8f5326556154.js create mode 100644 docs/html/dir_733999795ec05e1d47dd8f5326556154_dep.md5 create mode 100644 docs/html/dir_733999795ec05e1d47dd8f5326556154_dep.svg create mode 100644 docs/html/dir_733999795ec05e1d47dd8f5326556154_dep_org.svg create mode 100644 docs/html/dir_762006535547d49f232d31a6fa06d2f9.html create mode 100644 docs/html/dir_762006535547d49f232d31a6fa06d2f9.js create mode 100644 docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep.md5 create mode 100644 docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep.svg create mode 100644 docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep_org.svg create mode 100644 docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad.html create mode 100644 docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad.js create mode 100644 docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep.md5 create mode 100644 docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep.svg create mode 100644 docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep_org.svg create mode 100644 docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40.html create mode 100644 docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40.js create mode 100644 docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.md5 create mode 100644 docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.svg create mode 100644 docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep_org.svg create mode 100644 docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12.html create mode 100644 docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12.js create mode 100644 docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.md5 create mode 100644 docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.svg create mode 100644 docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep_org.svg create mode 100644 docs/html/dir_7b3674b38c8d8970266e0a050a170acc.html create mode 100644 docs/html/dir_7b3674b38c8d8970266e0a050a170acc.js create mode 100644 docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep.md5 create mode 100644 docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep.svg create mode 100644 docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep_org.svg create mode 100644 docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10.html create mode 100644 docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10.js create mode 100644 docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.md5 create mode 100644 docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.svg create mode 100644 docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep_org.svg create mode 100644 docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.html create mode 100644 docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.js create mode 100644 docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.md5 create mode 100644 docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.svg create mode 100644 docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep_org.svg create mode 100644 docs/html/dir_7e3beb66e1044e6769774984c2d38ab1.html create mode 100644 docs/html/dir_7e3beb66e1044e6769774984c2d38ab1.js create mode 100644 docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep.md5 create mode 100644 docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep.svg create mode 100644 docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep_org.svg create mode 100644 docs/html/dir_80d86c895ffa96f241d1165825d40406.html create mode 100644 docs/html/dir_80d86c895ffa96f241d1165825d40406.js create mode 100644 docs/html/dir_80d86c895ffa96f241d1165825d40406_dep.md5 create mode 100644 docs/html/dir_80d86c895ffa96f241d1165825d40406_dep.svg create mode 100644 docs/html/dir_80d86c895ffa96f241d1165825d40406_dep_org.svg create mode 100644 docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f.html create mode 100644 docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f.js create mode 100644 docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep.md5 create mode 100644 docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep.svg create mode 100644 docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep_org.svg create mode 100644 docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c.html create mode 100644 docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c.js create mode 100644 docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.md5 create mode 100644 docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.svg create mode 100644 docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep_org.svg create mode 100644 docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7.html create mode 100644 docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7.js create mode 100644 docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep.md5 create mode 100644 docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep.svg create mode 100644 docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep_org.svg create mode 100644 docs/html/dir_87c389725da715c492868deacfc59ee9.html create mode 100644 docs/html/dir_87c389725da715c492868deacfc59ee9.js create mode 100644 docs/html/dir_87c389725da715c492868deacfc59ee9_dep.md5 create mode 100644 docs/html/dir_87c389725da715c492868deacfc59ee9_dep.svg create mode 100644 docs/html/dir_87c389725da715c492868deacfc59ee9_dep_org.svg create mode 100644 docs/html/dir_88263a19b39727c9a1698c6c2734b927.html create mode 100644 docs/html/dir_88263a19b39727c9a1698c6c2734b927.js create mode 100644 docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep.md5 create mode 100644 docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep.svg create mode 100644 docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep_org.svg create mode 100644 docs/html/dir_89e58584540eba160416052686348f24.html create mode 100644 docs/html/dir_89e58584540eba160416052686348f24.js create mode 100644 docs/html/dir_89e58584540eba160416052686348f24_dep.md5 create mode 100644 docs/html/dir_89e58584540eba160416052686348f24_dep.svg create mode 100644 docs/html/dir_89e58584540eba160416052686348f24_dep_org.svg create mode 100644 docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7.html create mode 100644 docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7.js create mode 100644 docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep.md5 create mode 100644 docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep.svg create mode 100644 docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep_org.svg create mode 100644 docs/html/dir_8d588244d360fc31a07155830aed54ff.html create mode 100644 docs/html/dir_8d588244d360fc31a07155830aed54ff.js create mode 100644 docs/html/dir_8d588244d360fc31a07155830aed54ff_dep.md5 create mode 100644 docs/html/dir_8d588244d360fc31a07155830aed54ff_dep.svg create mode 100644 docs/html/dir_8d588244d360fc31a07155830aed54ff_dep_org.svg create mode 100644 docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6.html create mode 100644 docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6.js create mode 100644 docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep.md5 create mode 100644 docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep.svg create mode 100644 docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep_org.svg create mode 100644 docs/html/dir_9068b9f7017b328778a01ee864e105ae.html create mode 100644 docs/html/dir_9068b9f7017b328778a01ee864e105ae.js create mode 100644 docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep.md5 create mode 100644 docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep.svg create mode 100644 docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep_org.svg create mode 100644 docs/html/dir_91518133c87f157d4a81c3f6c0b097d0.html create mode 100644 docs/html/dir_91518133c87f157d4a81c3f6c0b097d0.js create mode 100644 docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep.md5 create mode 100644 docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep.svg create mode 100644 docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep_org.svg create mode 100644 docs/html/dir_91943268b81177f3c28b334e969dc816.html create mode 100644 docs/html/dir_91943268b81177f3c28b334e969dc816.js create mode 100644 docs/html/dir_91943268b81177f3c28b334e969dc816_dep.md5 create mode 100644 docs/html/dir_91943268b81177f3c28b334e969dc816_dep.svg create mode 100644 docs/html/dir_91943268b81177f3c28b334e969dc816_dep_org.svg create mode 100644 docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803.html create mode 100644 docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803.js create mode 100644 docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep.md5 create mode 100644 docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep.svg create mode 100644 docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep_org.svg create mode 100644 docs/html/dir_921d70230c427007d8b7307843a5136d.html create mode 100644 docs/html/dir_921d70230c427007d8b7307843a5136d.js create mode 100644 docs/html/dir_921d70230c427007d8b7307843a5136d_dep.md5 create mode 100644 docs/html/dir_921d70230c427007d8b7307843a5136d_dep.svg create mode 100644 docs/html/dir_921d70230c427007d8b7307843a5136d_dep_org.svg create mode 100644 docs/html/dir_945d2b1bad7511c32093cc54649ad1cb.html create mode 100644 docs/html/dir_945d2b1bad7511c32093cc54649ad1cb.js create mode 100644 docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep.md5 create mode 100644 docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep.svg create mode 100644 docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep_org.svg create mode 100644 docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.html create mode 100644 docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.js create mode 100644 docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.md5 create mode 100644 docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.svg create mode 100644 docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep_org.svg create mode 100644 docs/html/dir_95624ebda436e232844a7007340a6b2b.html create mode 100644 docs/html/dir_95624ebda436e232844a7007340a6b2b.js create mode 100644 docs/html/dir_95624ebda436e232844a7007340a6b2b_dep.md5 create mode 100644 docs/html/dir_95624ebda436e232844a7007340a6b2b_dep.svg create mode 100644 docs/html/dir_95624ebda436e232844a7007340a6b2b_dep_org.svg create mode 100644 docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc.html create mode 100644 docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc.js create mode 100644 docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep.md5 create mode 100644 docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep.svg create mode 100644 docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep_org.svg create mode 100644 docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.html create mode 100644 docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.js create mode 100644 docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.md5 create mode 100644 docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.svg create mode 100644 docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep_org.svg create mode 100644 docs/html/dir_9b69c23330a7d810ddb9527a98b69931.html create mode 100644 docs/html/dir_9b69c23330a7d810ddb9527a98b69931.js create mode 100644 docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep.md5 create mode 100644 docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep.svg create mode 100644 docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep_org.svg create mode 100644 docs/html/dir_9be252ebbe144643a161d99fe7bd96b8.html create mode 100644 docs/html/dir_9be252ebbe144643a161d99fe7bd96b8.js create mode 100644 docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep.md5 create mode 100644 docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep.svg create mode 100644 docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep_org.svg create mode 100644 docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9.html create mode 100644 docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9.js create mode 100644 docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep.md5 create mode 100644 docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep.svg create mode 100644 docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep_org.svg create mode 100644 docs/html/dir_a3d37b3538242ea047872cfcc616fb89.html create mode 100644 docs/html/dir_a3d37b3538242ea047872cfcc616fb89.js create mode 100644 docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep.md5 create mode 100644 docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep.svg create mode 100644 docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep_org.svg create mode 100644 docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e.html create mode 100644 docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e.js create mode 100644 docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep.md5 create mode 100644 docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep.svg create mode 100644 docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep_org.svg create mode 100644 docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f.html create mode 100644 docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f.js create mode 100644 docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep.md5 create mode 100644 docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep.svg create mode 100644 docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep_org.svg create mode 100644 docs/html/dir_a4c5913a3d3eed486b216fbd720c97af.html create mode 100644 docs/html/dir_a4c5913a3d3eed486b216fbd720c97af.js create mode 100644 docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep.md5 create mode 100644 docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep.svg create mode 100644 docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep_org.svg create mode 100644 docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a.html create mode 100644 docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a.js create mode 100644 docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep.md5 create mode 100644 docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep.svg create mode 100644 docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep_org.svg create mode 100644 docs/html/dir_a953ba1f31684a48ed0144a63a293ae9.html create mode 100644 docs/html/dir_a953ba1f31684a48ed0144a63a293ae9.js create mode 100644 docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep.md5 create mode 100644 docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep.svg create mode 100644 docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep_org.svg create mode 100644 docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63.html create mode 100644 docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63.js create mode 100644 docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep.md5 create mode 100644 docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep.svg create mode 100644 docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep_org.svg create mode 100644 docs/html/dir_ad7c247d62c906d539eea57d302f162e.html create mode 100644 docs/html/dir_ad7c247d62c906d539eea57d302f162e.js create mode 100644 docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep.md5 create mode 100644 docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep.svg create mode 100644 docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep_org.svg create mode 100644 docs/html/dir_b0611a230b7c13c087177d819e4a0a75.html create mode 100644 docs/html/dir_b0611a230b7c13c087177d819e4a0a75.js create mode 100644 docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep.md5 create mode 100644 docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep.svg create mode 100644 docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep_org.svg create mode 100644 docs/html/dir_b06b87161308abcdcf61a00173e809b3.html create mode 100644 docs/html/dir_b06b87161308abcdcf61a00173e809b3.js create mode 100644 docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep.md5 create mode 100644 docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep.svg create mode 100644 docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep_org.svg create mode 100644 docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73.html create mode 100644 docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73.js create mode 100644 docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep.md5 create mode 100644 docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep.svg create mode 100644 docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep_org.svg create mode 100644 docs/html/dir_b2edfaaef06a92a9d53ea863519f7932.html create mode 100644 docs/html/dir_b2edfaaef06a92a9d53ea863519f7932.js create mode 100644 docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep.md5 create mode 100644 docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep.svg create mode 100644 docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep_org.svg create mode 100644 docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964.html create mode 100644 docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964.js create mode 100644 docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep.md5 create mode 100644 docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep.svg create mode 100644 docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep_org.svg create mode 100644 docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7.html create mode 100644 docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7.js create mode 100644 docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep.md5 create mode 100644 docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep.svg create mode 100644 docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep_org.svg create mode 100644 docs/html/dir_b64675f983c0644af3c7dd36b6272b9d.html create mode 100644 docs/html/dir_b64675f983c0644af3c7dd36b6272b9d.js create mode 100644 docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep.md5 create mode 100644 docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep.svg create mode 100644 docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep_org.svg create mode 100644 docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543.html create mode 100644 docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543.js create mode 100644 docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep.md5 create mode 100644 docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep.svg create mode 100644 docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep_org.svg create mode 100644 docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e.html create mode 100644 docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e.js create mode 100644 docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep.md5 create mode 100644 docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep.svg create mode 100644 docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep_org.svg create mode 100644 docs/html/dir_b919e33db9942c3e712aefd750376bac.html create mode 100644 docs/html/dir_b919e33db9942c3e712aefd750376bac.js create mode 100644 docs/html/dir_b919e33db9942c3e712aefd750376bac_dep.md5 create mode 100644 docs/html/dir_b919e33db9942c3e712aefd750376bac_dep.svg create mode 100644 docs/html/dir_b919e33db9942c3e712aefd750376bac_dep_org.svg create mode 100644 docs/html/dir_b98ee8c279438f4b21bd61b97608bcde.html create mode 100644 docs/html/dir_b98ee8c279438f4b21bd61b97608bcde.js create mode 100644 docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep.md5 create mode 100644 docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep.svg create mode 100644 docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep_org.svg create mode 100644 docs/html/dir_bab3575675640a99c668cf654a35a16e.html create mode 100644 docs/html/dir_bab3575675640a99c668cf654a35a16e.js create mode 100644 docs/html/dir_bab3575675640a99c668cf654a35a16e_dep.md5 create mode 100644 docs/html/dir_bab3575675640a99c668cf654a35a16e_dep.svg create mode 100644 docs/html/dir_bab3575675640a99c668cf654a35a16e_dep_org.svg create mode 100644 docs/html/dir_c0c0cd07563e9956c88b53baae458253.html create mode 100644 docs/html/dir_c0c0cd07563e9956c88b53baae458253.js create mode 100644 docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep.md5 create mode 100644 docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep.svg create mode 100644 docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep_org.svg create mode 100644 docs/html/dir_c2033497fb0ab786bab9abfae6d47534.html create mode 100644 docs/html/dir_c2033497fb0ab786bab9abfae6d47534.js create mode 100644 docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep.md5 create mode 100644 docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep.svg create mode 100644 docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep_org.svg create mode 100644 docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.html create mode 100644 docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.js create mode 100644 docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.md5 create mode 100644 docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.svg create mode 100644 docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep_org.svg create mode 100644 docs/html/dir_c5eb101bd20917ef236da0cb98586871.html create mode 100644 docs/html/dir_c5eb101bd20917ef236da0cb98586871.js create mode 100644 docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep.md5 create mode 100644 docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep.svg create mode 100644 docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep_org.svg create mode 100644 docs/html/dir_c5face973da07f52b4ad2936f0de0daf.html create mode 100644 docs/html/dir_c5face973da07f52b4ad2936f0de0daf.js create mode 100644 docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep.md5 create mode 100644 docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep.svg create mode 100644 docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep_org.svg create mode 100644 docs/html/dir_cc06919342db86795a48353da98f8a52.html create mode 100644 docs/html/dir_cc06919342db86795a48353da98f8a52.js create mode 100644 docs/html/dir_cc06919342db86795a48353da98f8a52_dep.md5 create mode 100644 docs/html/dir_cc06919342db86795a48353da98f8a52_dep.svg create mode 100644 docs/html/dir_cc06919342db86795a48353da98f8a52_dep_org.svg create mode 100644 docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18.html create mode 100644 docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18.js create mode 100644 docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.md5 create mode 100644 docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.svg create mode 100644 docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep_org.svg create mode 100644 docs/html/dir_ce1baaf5350db63792a033d5f80bd725.html create mode 100644 docs/html/dir_ce1baaf5350db63792a033d5f80bd725.js create mode 100644 docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep.md5 create mode 100644 docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep.svg create mode 100644 docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep_org.svg create mode 100644 docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4.html create mode 100644 docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4.js create mode 100644 docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep.md5 create mode 100644 docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep.svg create mode 100644 docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep_org.svg create mode 100644 docs/html/dir_d3a7bf488950df7c258d146af03d9440.html create mode 100644 docs/html/dir_d3a7bf488950df7c258d146af03d9440.js create mode 100644 docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep.md5 create mode 100644 docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep.svg create mode 100644 docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep_org.svg create mode 100644 docs/html/dir_d889323c3d75be7406c85891426fb089.html create mode 100644 docs/html/dir_d889323c3d75be7406c85891426fb089.js create mode 100644 docs/html/dir_d889323c3d75be7406c85891426fb089_dep.md5 create mode 100644 docs/html/dir_d889323c3d75be7406c85891426fb089_dep.svg create mode 100644 docs/html/dir_d889323c3d75be7406c85891426fb089_dep_org.svg create mode 100644 docs/html/dir_d8d2b30d510138cdb5096652440331d7.html create mode 100644 docs/html/dir_d8d2b30d510138cdb5096652440331d7.js create mode 100644 docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep.md5 create mode 100644 docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep.svg create mode 100644 docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep_org.svg create mode 100644 docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde.html create mode 100644 docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde.js create mode 100644 docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep.md5 create mode 100644 docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep.svg create mode 100644 docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep_org.svg create mode 100644 docs/html/dir_daeea571a943a8adb5cad931a75d2354.html create mode 100644 docs/html/dir_daeea571a943a8adb5cad931a75d2354.js create mode 100644 docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep.md5 create mode 100644 docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep.svg create mode 100644 docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep_org.svg create mode 100644 docs/html/dir_db7b1604ad652de4066dd6f160251f65.html create mode 100644 docs/html/dir_db7b1604ad652de4066dd6f160251f65.js create mode 100644 docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep.md5 create mode 100644 docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep.svg create mode 100644 docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep_org.svg create mode 100644 docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.html create mode 100644 docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.js create mode 100644 docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.md5 create mode 100644 docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.svg create mode 100644 docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep_org.svg create mode 100644 docs/html/dir_dcebb773a78008f4ad1961fb5463c06f.html create mode 100644 docs/html/dir_dcebb773a78008f4ad1961fb5463c06f.js create mode 100644 docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep.md5 create mode 100644 docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep.svg create mode 100644 docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep_org.svg create mode 100644 docs/html/dir_de540661fcc17919ae935eb1da844485.html create mode 100644 docs/html/dir_de540661fcc17919ae935eb1da844485.js create mode 100644 docs/html/dir_de540661fcc17919ae935eb1da844485_dep.md5 create mode 100644 docs/html/dir_de540661fcc17919ae935eb1da844485_dep.svg create mode 100644 docs/html/dir_de540661fcc17919ae935eb1da844485_dep_org.svg create mode 100644 docs/html/dir_de59488d4ecb668d05d95d08fff34891.html create mode 100644 docs/html/dir_de59488d4ecb668d05d95d08fff34891.js create mode 100644 docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep.md5 create mode 100644 docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep.svg create mode 100644 docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep_org.svg create mode 100644 docs/html/dir_df22749ae4ae6efb2cb45d380996b069.html create mode 100644 docs/html/dir_df22749ae4ae6efb2cb45d380996b069.js create mode 100644 docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep.md5 create mode 100644 docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep.svg create mode 100644 docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep_org.svg create mode 100644 docs/html/dir_dff87212d3726025066eaf86c6c94532.html create mode 100644 docs/html/dir_dff87212d3726025066eaf86c6c94532.js create mode 100644 docs/html/dir_dff87212d3726025066eaf86c6c94532_dep.md5 create mode 100644 docs/html/dir_dff87212d3726025066eaf86c6c94532_dep.svg create mode 100644 docs/html/dir_dff87212d3726025066eaf86c6c94532_dep_org.svg create mode 100644 docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05.html create mode 100644 docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05.js create mode 100644 docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep.md5 create mode 100644 docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep.svg create mode 100644 docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep_org.svg create mode 100644 docs/html/dir_e20383be2aa1cc8db7287a474982598e.html create mode 100644 docs/html/dir_e20383be2aa1cc8db7287a474982598e.js create mode 100644 docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep.md5 create mode 100644 docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep.svg create mode 100644 docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep_org.svg create mode 100644 docs/html/dir_e3201638ff68b74d4b205e537b11e272.html create mode 100644 docs/html/dir_e3201638ff68b74d4b205e537b11e272.js create mode 100644 docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep.md5 create mode 100644 docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep.svg create mode 100644 docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep_org.svg create mode 100644 docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d.html create mode 100644 docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d.js create mode 100644 docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep.md5 create mode 100644 docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep.svg create mode 100644 docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep_org.svg create mode 100644 docs/html/dir_e6153ef005eb58932a236d4aa6e48d43.html create mode 100644 docs/html/dir_e6153ef005eb58932a236d4aa6e48d43.js create mode 100644 docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep.md5 create mode 100644 docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep.svg create mode 100644 docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep_org.svg create mode 100644 docs/html/dir_e78af46276061306d5e012847576d2b2.html create mode 100644 docs/html/dir_e78af46276061306d5e012847576d2b2.js create mode 100644 docs/html/dir_e78af46276061306d5e012847576d2b2_dep.md5 create mode 100644 docs/html/dir_e78af46276061306d5e012847576d2b2_dep.svg create mode 100644 docs/html/dir_e78af46276061306d5e012847576d2b2_dep_org.svg create mode 100644 docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04.html create mode 100644 docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04.js create mode 100644 docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.md5 create mode 100644 docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.svg create mode 100644 docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep_org.svg create mode 100644 docs/html/dir_e878e923ef12715a74c793cf72e4f313.html create mode 100644 docs/html/dir_e878e923ef12715a74c793cf72e4f313.js create mode 100644 docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep.md5 create mode 100644 docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep.svg create mode 100644 docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep_org.svg create mode 100644 docs/html/dir_eca7894df80a3acd051f3e5eab624191.html create mode 100644 docs/html/dir_eca7894df80a3acd051f3e5eab624191.js create mode 100644 docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep.md5 create mode 100644 docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep.svg create mode 100644 docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep_org.svg create mode 100644 docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.html create mode 100644 docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.js create mode 100644 docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.md5 create mode 100644 docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.svg create mode 100644 docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep_org.svg create mode 100644 docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.html create mode 100644 docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.js create mode 100644 docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.md5 create mode 100644 docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.svg create mode 100644 docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep_org.svg create mode 100644 docs/html/dir_f32633e65746b6a91fbe861f5f21dc38.html create mode 100644 docs/html/dir_f32633e65746b6a91fbe861f5f21dc38.js create mode 100644 docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep.md5 create mode 100644 docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep.svg create mode 100644 docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep_org.svg create mode 100644 docs/html/dir_f525258f048ec21eab34c8f507cb2ddc.html create mode 100644 docs/html/dir_f525258f048ec21eab34c8f507cb2ddc.js create mode 100644 docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep.md5 create mode 100644 docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep.svg create mode 100644 docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep_org.svg create mode 100644 docs/html/dir_f5ac212e894c3c636ee22eba8071736a.html create mode 100644 docs/html/dir_f5ac212e894c3c636ee22eba8071736a.js create mode 100644 docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep.md5 create mode 100644 docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep.svg create mode 100644 docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep_org.svg create mode 100644 docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12.html create mode 100644 docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12.js create mode 100644 docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep.md5 create mode 100644 docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep.svg create mode 100644 docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep_org.svg create mode 100644 docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a.html create mode 100644 docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a.js create mode 100644 docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep.md5 create mode 100644 docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep.svg create mode 100644 docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep_org.svg create mode 100644 docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b.html create mode 100644 docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b.js create mode 100644 docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep.md5 create mode 100644 docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep.svg create mode 100644 docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep_org.svg create mode 100644 docs/html/dir_f92c71b2ef057433a6cd6431e49a6368.html create mode 100644 docs/html/dir_f92c71b2ef057433a6cd6431e49a6368.js create mode 100644 docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep.md5 create mode 100644 docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep.svg create mode 100644 docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep_org.svg create mode 100644 docs/html/dir_fc4402edab186de335f81f837d649a28.html create mode 100644 docs/html/dir_fc4402edab186de335f81f837d649a28.js create mode 100644 docs/html/dir_fc4402edab186de335f81f837d649a28_dep.md5 create mode 100644 docs/html/dir_fc4402edab186de335f81f837d649a28_dep.svg create mode 100644 docs/html/dir_fc4402edab186de335f81f837d649a28_dep_org.svg create mode 100644 docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe.html create mode 100644 docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe.js create mode 100644 docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep.md5 create mode 100644 docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep.svg create mode 100644 docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep_org.svg create mode 100644 docs/html/dir_fe9384a6c969461651fdf91b0c07824b.html create mode 100644 docs/html/dir_fe9384a6c969461651fdf91b0c07824b.js create mode 100644 docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep.md5 create mode 100644 docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep.svg create mode 100644 docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep_org.svg create mode 100644 docs/html/doxygen.css create mode 100644 docs/html/doxygen.svg create mode 100644 docs/html/doxygen_crawl.html create mode 100644 docs/html/dsp__common_8h.html create mode 100644 docs/html/dsp__common_8h.js create mode 100644 docs/html/dsp__common_8h__dep__incl.md5 create mode 100644 docs/html/dsp__common_8h__dep__incl.svg create mode 100644 docs/html/dsp__common_8h__dep__incl_org.svg create mode 100644 docs/html/dsp__common_8h__incl.md5 create mode 100644 docs/html/dsp__common_8h__incl.svg create mode 100644 docs/html/dsp__common_8h__incl_org.svg create mode 100644 docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.md5 create mode 100644 docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.svg create mode 100644 docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph_org.svg create mode 100644 docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph.md5 create mode 100644 docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph.svg create mode 100644 docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph_org.svg create mode 100644 docs/html/dsp__common_8h_source.html create mode 100644 docs/html/dsp__err_8h.html create mode 100644 docs/html/dsp__err_8h__dep__incl.md5 create mode 100644 docs/html/dsp__err_8h__dep__incl.svg create mode 100644 docs/html/dsp__err_8h__dep__incl_org.svg create mode 100644 docs/html/dsp__err_8h__incl.md5 create mode 100644 docs/html/dsp__err_8h__incl.svg create mode 100644 docs/html/dsp__err_8h__incl_org.svg create mode 100644 docs/html/dsp__err_8h_source.html create mode 100644 docs/html/dsp__err__codes_8h.html create mode 100644 docs/html/dsp__err__codes_8h.js create mode 100644 docs/html/dsp__err__codes_8h__dep__incl.md5 create mode 100644 docs/html/dsp__err__codes_8h__dep__incl.svg create mode 100644 docs/html/dsp__err__codes_8h__dep__incl_org.svg create mode 100644 docs/html/dsp__err__codes_8h_source.html create mode 100644 docs/html/dsp__platform_8h.html create mode 100644 docs/html/dsp__platform_8h__incl.md5 create mode 100644 docs/html/dsp__platform_8h__incl.svg create mode 100644 docs/html/dsp__platform_8h__incl_org.svg create mode 100644 docs/html/dsp__platform_8h_source.html create mode 100644 docs/html/dsp__tests_8h.html create mode 100644 docs/html/dsp__tests_8h.js create mode 100644 docs/html/dsp__tests_8h__dep__incl.md5 create mode 100644 docs/html/dsp__tests_8h__dep__incl.svg create mode 100644 docs/html/dsp__tests_8h__dep__incl_org.svg create mode 100644 docs/html/dsp__tests_8h__incl.md5 create mode 100644 docs/html/dsp__tests_8h__incl.svg create mode 100644 docs/html/dsp__tests_8h__incl_org.svg create mode 100644 docs/html/dsp__tests_8h_source.html create mode 100644 docs/html/dsp__types_8h.html create mode 100644 docs/html/dsp__types_8h.js create mode 100644 docs/html/dsp__types_8h__dep__incl.md5 create mode 100644 docs/html/dsp__types_8h__dep__incl.svg create mode 100644 docs/html/dsp__types_8h__dep__incl_org.svg create mode 100644 docs/html/dsp__types_8h__incl.md5 create mode 100644 docs/html/dsp__types_8h__incl.svg create mode 100644 docs/html/dsp__types_8h__incl_org.svg create mode 100644 docs/html/dsp__types_8h_source.html create mode 100644 docs/html/dspi__conv_8h.html create mode 100644 docs/html/dspi__conv_8h.js create mode 100644 docs/html/dspi__conv_8h__dep__incl.md5 create mode 100644 docs/html/dspi__conv_8h__dep__incl.svg create mode 100644 docs/html/dspi__conv_8h__dep__incl_org.svg create mode 100644 docs/html/dspi__conv_8h__incl.md5 create mode 100644 docs/html/dspi__conv_8h__incl.svg create mode 100644 docs/html/dspi__conv_8h__incl_org.svg create mode 100644 docs/html/dspi__conv_8h_source.html create mode 100644 docs/html/dspi__conv__f32__ansi_8c.html create mode 100644 docs/html/dspi__conv__f32__ansi_8c.js create mode 100644 docs/html/dspi__conv__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__conv__f32__ansi_8c__incl.svg create mode 100644 docs/html/dspi__conv__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__conv__f32__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod_8h.html create mode 100644 docs/html/dspi__dotprod_8h.js create mode 100644 docs/html/dspi__dotprod_8h__dep__incl.md5 create mode 100644 docs/html/dspi__dotprod_8h__dep__incl.svg create mode 100644 docs/html/dspi__dotprod_8h__dep__incl_org.svg create mode 100644 docs/html/dspi__dotprod_8h__incl.md5 create mode 100644 docs/html/dspi__dotprod_8h__incl.svg create mode 100644 docs/html/dspi__dotprod_8h__incl_org.svg create mode 100644 docs/html/dspi__dotprod_8h_source.html create mode 100644 docs/html/dspi__dotprod__f32__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__f32__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__f32__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__f32__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod__off__f32__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__off__f32__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__off__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__off__f32__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__off__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__off__f32__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod__off__s16__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__off__s16__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__off__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__off__s16__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__off__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__off__s16__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod__off__s8__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__off__s8__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__off__s8__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__off__s8__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__off__s8__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__off__s8__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod__off__u16__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__off__u16__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__off__u16__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__off__u16__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__off__u16__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__off__u16__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod__off__u8__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__off__u8__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__off__u8__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__off__u8__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__off__u8__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__off__u8__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod__platform_8h.html create mode 100644 docs/html/dspi__dotprod__platform_8h__dep__incl.md5 create mode 100644 docs/html/dspi__dotprod__platform_8h__dep__incl.svg create mode 100644 docs/html/dspi__dotprod__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dspi__dotprod__platform_8h__incl.md5 create mode 100644 docs/html/dspi__dotprod__platform_8h__incl.svg create mode 100644 docs/html/dspi__dotprod__platform_8h__incl_org.svg create mode 100644 docs/html/dspi__dotprod__platform_8h_source.html create mode 100644 docs/html/dspi__dotprod__s16__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__s16__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__s16__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__s16__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod__s8__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__s8__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__s8__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__s8__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__s8__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__s8__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod__u16__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__u16__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__u16__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__u16__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__u16__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__u16__ansi_8c_source.html create mode 100644 docs/html/dspi__dotprod__u8__ansi_8c.html create mode 100644 docs/html/dspi__dotprod__u8__ansi_8c.js create mode 100644 docs/html/dspi__dotprod__u8__ansi_8c__incl.md5 create mode 100644 docs/html/dspi__dotprod__u8__ansi_8c__incl.svg create mode 100644 docs/html/dspi__dotprod__u8__ansi_8c__incl_org.svg create mode 100644 docs/html/dspi__dotprod__u8__ansi_8c_source.html create mode 100644 docs/html/dspm__add_8h.html create mode 100644 docs/html/dspm__add_8h.js create mode 100644 docs/html/dspm__add_8h__dep__incl.md5 create mode 100644 docs/html/dspm__add_8h__dep__incl.svg create mode 100644 docs/html/dspm__add_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__add_8h__incl.md5 create mode 100644 docs/html/dspm__add_8h__incl.svg create mode 100644 docs/html/dspm__add_8h__incl_org.svg create mode 100644 docs/html/dspm__add_8h_source.html create mode 100644 docs/html/dspm__add__f32__ansi_8c.html create mode 100644 docs/html/dspm__add__f32__ansi_8c.js create mode 100644 docs/html/dspm__add__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dspm__add__f32__ansi_8c__incl.svg create mode 100644 docs/html/dspm__add__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dspm__add__f32__ansi_8c_source.html create mode 100644 docs/html/dspm__add__platform_8h.html create mode 100644 docs/html/dspm__add__platform_8h__dep__incl.md5 create mode 100644 docs/html/dspm__add__platform_8h__dep__incl.svg create mode 100644 docs/html/dspm__add__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__add__platform_8h__incl.md5 create mode 100644 docs/html/dspm__add__platform_8h__incl.svg create mode 100644 docs/html/dspm__add__platform_8h__incl_org.svg create mode 100644 docs/html/dspm__add__platform_8h_source.html create mode 100644 docs/html/dspm__addc_8h.html create mode 100644 docs/html/dspm__addc_8h.js create mode 100644 docs/html/dspm__addc_8h__dep__incl.md5 create mode 100644 docs/html/dspm__addc_8h__dep__incl.svg create mode 100644 docs/html/dspm__addc_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__addc_8h__incl.md5 create mode 100644 docs/html/dspm__addc_8h__incl.svg create mode 100644 docs/html/dspm__addc_8h__incl_org.svg create mode 100644 docs/html/dspm__addc_8h_source.html create mode 100644 docs/html/dspm__addc__f32__ansi_8c.html create mode 100644 docs/html/dspm__addc__f32__ansi_8c.js create mode 100644 docs/html/dspm__addc__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dspm__addc__f32__ansi_8c__incl.svg create mode 100644 docs/html/dspm__addc__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dspm__addc__f32__ansi_8c_source.html create mode 100644 docs/html/dspm__addc__platform_8h.html create mode 100644 docs/html/dspm__addc__platform_8h__dep__incl.md5 create mode 100644 docs/html/dspm__addc__platform_8h__dep__incl.svg create mode 100644 docs/html/dspm__addc__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__addc__platform_8h__incl.md5 create mode 100644 docs/html/dspm__addc__platform_8h__incl.svg create mode 100644 docs/html/dspm__addc__platform_8h__incl_org.svg create mode 100644 docs/html/dspm__addc__platform_8h_source.html create mode 100644 docs/html/dspm__matrix_8h.html create mode 100644 docs/html/dspm__matrix_8h__dep__incl.md5 create mode 100644 docs/html/dspm__matrix_8h__dep__incl.svg create mode 100644 docs/html/dspm__matrix_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__matrix_8h__incl.md5 create mode 100644 docs/html/dspm__matrix_8h__incl.svg create mode 100644 docs/html/dspm__matrix_8h__incl_org.svg create mode 100644 docs/html/dspm__matrix_8h_source.html create mode 100644 docs/html/dspm__mulc_8h.html create mode 100644 docs/html/dspm__mulc_8h.js create mode 100644 docs/html/dspm__mulc_8h__dep__incl.md5 create mode 100644 docs/html/dspm__mulc_8h__dep__incl.svg create mode 100644 docs/html/dspm__mulc_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__mulc_8h__incl.md5 create mode 100644 docs/html/dspm__mulc_8h__incl.svg create mode 100644 docs/html/dspm__mulc_8h__incl_org.svg create mode 100644 docs/html/dspm__mulc_8h_source.html create mode 100644 docs/html/dspm__mulc__f32__ansi_8c.html create mode 100644 docs/html/dspm__mulc__f32__ansi_8c.js create mode 100644 docs/html/dspm__mulc__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dspm__mulc__f32__ansi_8c__incl.svg create mode 100644 docs/html/dspm__mulc__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dspm__mulc__f32__ansi_8c_source.html create mode 100644 docs/html/dspm__mulc__platform_8h.html create mode 100644 docs/html/dspm__mulc__platform_8h__dep__incl.md5 create mode 100644 docs/html/dspm__mulc__platform_8h__dep__incl.svg create mode 100644 docs/html/dspm__mulc__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__mulc__platform_8h__incl.md5 create mode 100644 docs/html/dspm__mulc__platform_8h__incl.svg create mode 100644 docs/html/dspm__mulc__platform_8h__incl_org.svg create mode 100644 docs/html/dspm__mulc__platform_8h_source.html create mode 100644 docs/html/dspm__mult_8h.html create mode 100644 docs/html/dspm__mult_8h.js create mode 100644 docs/html/dspm__mult_8h__dep__incl.md5 create mode 100644 docs/html/dspm__mult_8h__dep__incl.svg create mode 100644 docs/html/dspm__mult_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__mult_8h__incl.md5 create mode 100644 docs/html/dspm__mult_8h__incl.svg create mode 100644 docs/html/dspm__mult_8h__incl_org.svg create mode 100644 docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph.md5 create mode 100644 docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph.svg create mode 100644 docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph_org.svg create mode 100644 docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph.md5 create mode 100644 docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph.svg create mode 100644 docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph_org.svg create mode 100644 docs/html/dspm__mult_8h_source.html create mode 100644 docs/html/dspm__mult__ex__f32__ansi_8c.html create mode 100644 docs/html/dspm__mult__ex__f32__ansi_8c.js create mode 100644 docs/html/dspm__mult__ex__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dspm__mult__ex__f32__ansi_8c__incl.svg create mode 100644 docs/html/dspm__mult__ex__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dspm__mult__ex__f32__ansi_8c_source.html create mode 100644 docs/html/dspm__mult__f32__ansi_8c.html create mode 100644 docs/html/dspm__mult__f32__ansi_8c.js create mode 100644 docs/html/dspm__mult__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dspm__mult__f32__ansi_8c__incl.svg create mode 100644 docs/html/dspm__mult__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dspm__mult__f32__ansi_8c_source.html create mode 100644 docs/html/dspm__mult__platform_8h.html create mode 100644 docs/html/dspm__mult__platform_8h__dep__incl.md5 create mode 100644 docs/html/dspm__mult__platform_8h__dep__incl.svg create mode 100644 docs/html/dspm__mult__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__mult__platform_8h__incl.md5 create mode 100644 docs/html/dspm__mult__platform_8h__incl.svg create mode 100644 docs/html/dspm__mult__platform_8h__incl_org.svg create mode 100644 docs/html/dspm__mult__platform_8h_source.html create mode 100644 docs/html/dspm__mult__s16__ansi_8c.html create mode 100644 docs/html/dspm__mult__s16__ansi_8c.js create mode 100644 docs/html/dspm__mult__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dspm__mult__s16__ansi_8c__incl.svg create mode 100644 docs/html/dspm__mult__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dspm__mult__s16__ansi_8c_source.html create mode 100644 docs/html/dspm__sub_8h.html create mode 100644 docs/html/dspm__sub_8h.js create mode 100644 docs/html/dspm__sub_8h__dep__incl.md5 create mode 100644 docs/html/dspm__sub_8h__dep__incl.svg create mode 100644 docs/html/dspm__sub_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__sub_8h__incl.md5 create mode 100644 docs/html/dspm__sub_8h__incl.svg create mode 100644 docs/html/dspm__sub_8h__incl_org.svg create mode 100644 docs/html/dspm__sub_8h_source.html create mode 100644 docs/html/dspm__sub__f32__ansi_8c.html create mode 100644 docs/html/dspm__sub__f32__ansi_8c.js create mode 100644 docs/html/dspm__sub__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dspm__sub__f32__ansi_8c__incl.svg create mode 100644 docs/html/dspm__sub__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dspm__sub__f32__ansi_8c_source.html create mode 100644 docs/html/dspm__sub__platform_8h.html create mode 100644 docs/html/dspm__sub__platform_8h__dep__incl.md5 create mode 100644 docs/html/dspm__sub__platform_8h__dep__incl.svg create mode 100644 docs/html/dspm__sub__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dspm__sub__platform_8h__incl.md5 create mode 100644 docs/html/dspm__sub__platform_8h__incl.svg create mode 100644 docs/html/dspm__sub__platform_8h__incl_org.svg create mode 100644 docs/html/dspm__sub__platform_8h_source.html create mode 100644 docs/html/dsps__add_8h.html create mode 100644 docs/html/dsps__add_8h.js create mode 100644 docs/html/dsps__add_8h__dep__incl.md5 create mode 100644 docs/html/dsps__add_8h__dep__incl.svg create mode 100644 docs/html/dsps__add_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__add_8h__incl.md5 create mode 100644 docs/html/dsps__add_8h__incl.svg create mode 100644 docs/html/dsps__add_8h__incl_org.svg create mode 100644 docs/html/dsps__add_8h_source.html create mode 100644 docs/html/dsps__add__f32__ansi_8c.html create mode 100644 docs/html/dsps__add__f32__ansi_8c.js create mode 100644 docs/html/dsps__add__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__add__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__add__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__add__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__add__platform_8h.html create mode 100644 docs/html/dsps__add__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__add__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__add__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__add__platform_8h__incl.md5 create mode 100644 docs/html/dsps__add__platform_8h__incl.svg create mode 100644 docs/html/dsps__add__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__add__platform_8h_source.html create mode 100644 docs/html/dsps__add__s16__ansi_8c.html create mode 100644 docs/html/dsps__add__s16__ansi_8c.js create mode 100644 docs/html/dsps__add__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__add__s16__ansi_8c__incl.svg create mode 100644 docs/html/dsps__add__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__add__s16__ansi_8c_source.html create mode 100644 docs/html/dsps__add__s8__ansi_8c.html create mode 100644 docs/html/dsps__add__s8__ansi_8c.js create mode 100644 docs/html/dsps__add__s8__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__add__s8__ansi_8c__incl.svg create mode 100644 docs/html/dsps__add__s8__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__add__s8__ansi_8c_source.html create mode 100644 docs/html/dsps__addc_8h.html create mode 100644 docs/html/dsps__addc_8h.js create mode 100644 docs/html/dsps__addc_8h__dep__incl.md5 create mode 100644 docs/html/dsps__addc_8h__dep__incl.svg create mode 100644 docs/html/dsps__addc_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__addc_8h__incl.md5 create mode 100644 docs/html/dsps__addc_8h__incl.svg create mode 100644 docs/html/dsps__addc_8h__incl_org.svg create mode 100644 docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph.md5 create mode 100644 docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph.svg create mode 100644 docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph_org.svg create mode 100644 docs/html/dsps__addc_8h_source.html create mode 100644 docs/html/dsps__addc__f32__ansi_8c.html create mode 100644 docs/html/dsps__addc__f32__ansi_8c.js create mode 100644 docs/html/dsps__addc__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__addc__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__addc__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph.md5 create mode 100644 docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph.svg create mode 100644 docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph_org.svg create mode 100644 docs/html/dsps__addc__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__addc__platform_8h.html create mode 100644 docs/html/dsps__addc__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__addc__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__addc__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__addc__platform_8h__incl.md5 create mode 100644 docs/html/dsps__addc__platform_8h__incl.svg create mode 100644 docs/html/dsps__addc__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__addc__platform_8h_source.html create mode 100644 docs/html/dsps__biquad_8h.html create mode 100644 docs/html/dsps__biquad_8h.js create mode 100644 docs/html/dsps__biquad_8h__dep__incl.md5 create mode 100644 docs/html/dsps__biquad_8h__dep__incl.svg create mode 100644 docs/html/dsps__biquad_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__biquad_8h__incl.md5 create mode 100644 docs/html/dsps__biquad_8h__incl.svg create mode 100644 docs/html/dsps__biquad_8h__incl_org.svg create mode 100644 docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 create mode 100644 docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.svg create mode 100644 docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph_org.svg create mode 100644 docs/html/dsps__biquad_8h_source.html create mode 100644 docs/html/dsps__biquad__f32__ansi_8c.html create mode 100644 docs/html/dsps__biquad__f32__ansi_8c.js create mode 100644 docs/html/dsps__biquad__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__biquad__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__biquad__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 create mode 100644 docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.svg create mode 100644 docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph_org.svg create mode 100644 docs/html/dsps__biquad__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__biquad__gen_8h.html create mode 100644 docs/html/dsps__biquad__gen_8h.js create mode 100644 docs/html/dsps__biquad__gen_8h__dep__incl.md5 create mode 100644 docs/html/dsps__biquad__gen_8h__dep__incl.svg create mode 100644 docs/html/dsps__biquad__gen_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__biquad__gen_8h__incl.md5 create mode 100644 docs/html/dsps__biquad__gen_8h__incl.svg create mode 100644 docs/html/dsps__biquad__gen_8h__incl_org.svg create mode 100644 docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.md5 create mode 100644 docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.svg create mode 100644 docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph_org.svg create mode 100644 docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph.md5 create mode 100644 docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph.svg create mode 100644 docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph_org.svg create mode 100644 docs/html/dsps__biquad__gen_8h_source.html create mode 100644 docs/html/dsps__biquad__gen__f32_8c.html create mode 100644 docs/html/dsps__biquad__gen__f32_8c.js create mode 100644 docs/html/dsps__biquad__gen__f32_8c__incl.md5 create mode 100644 docs/html/dsps__biquad__gen__f32_8c__incl.svg create mode 100644 docs/html/dsps__biquad__gen__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.md5 create mode 100644 docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.svg create mode 100644 docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph_org.svg create mode 100644 docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph.md5 create mode 100644 docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph.svg create mode 100644 docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph_org.svg create mode 100644 docs/html/dsps__biquad__gen__f32_8c_source.html create mode 100644 docs/html/dsps__biquad__platform_8h.html create mode 100644 docs/html/dsps__biquad__platform_8h.js create mode 100644 docs/html/dsps__biquad__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__biquad__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__biquad__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__biquad__platform_8h__incl.md5 create mode 100644 docs/html/dsps__biquad__platform_8h__incl.svg create mode 100644 docs/html/dsps__biquad__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__biquad__platform_8h_source.html create mode 100644 docs/html/dsps__biquad__sf32__ansi_8c.html create mode 100644 docs/html/dsps__biquad__sf32__ansi_8c.js create mode 100644 docs/html/dsps__biquad__sf32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__biquad__sf32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__biquad__sf32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__biquad__sf32__ansi_8c_source.html create mode 100644 docs/html/dsps__ccorr_8h.html create mode 100644 docs/html/dsps__ccorr_8h.js create mode 100644 docs/html/dsps__ccorr_8h__incl.md5 create mode 100644 docs/html/dsps__ccorr_8h__incl.svg create mode 100644 docs/html/dsps__ccorr_8h__incl_org.svg create mode 100644 docs/html/dsps__ccorr_8h_source.html create mode 100644 docs/html/dsps__ccorr__f32__ansi_8c.html create mode 100644 docs/html/dsps__ccorr__f32__ansi_8c.js create mode 100644 docs/html/dsps__ccorr__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__ccorr__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__ccorr__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__ccorr__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__conv_8h.html create mode 100644 docs/html/dsps__conv_8h.js create mode 100644 docs/html/dsps__conv_8h__dep__incl.md5 create mode 100644 docs/html/dsps__conv_8h__dep__incl.svg create mode 100644 docs/html/dsps__conv_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__conv_8h__incl.md5 create mode 100644 docs/html/dsps__conv_8h__incl.svg create mode 100644 docs/html/dsps__conv_8h__incl_org.svg create mode 100644 docs/html/dsps__conv_8h_source.html create mode 100644 docs/html/dsps__conv__f32__ansi_8c.html create mode 100644 docs/html/dsps__conv__f32__ansi_8c.js create mode 100644 docs/html/dsps__conv__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__conv__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__conv__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__conv__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__conv__platform_8h.html create mode 100644 docs/html/dsps__conv__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__conv__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__conv__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__conv__platform_8h__incl.md5 create mode 100644 docs/html/dsps__conv__platform_8h__incl.svg create mode 100644 docs/html/dsps__conv__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__conv__platform_8h_source.html create mode 100644 docs/html/dsps__corr_8h.html create mode 100644 docs/html/dsps__corr_8h.js create mode 100644 docs/html/dsps__corr_8h__dep__incl.md5 create mode 100644 docs/html/dsps__corr_8h__dep__incl.svg create mode 100644 docs/html/dsps__corr_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__corr_8h__incl.md5 create mode 100644 docs/html/dsps__corr_8h__incl.svg create mode 100644 docs/html/dsps__corr_8h__incl_org.svg create mode 100644 docs/html/dsps__corr_8h_source.html create mode 100644 docs/html/dsps__corr__f32__ansi_8c.html create mode 100644 docs/html/dsps__corr__f32__ansi_8c.js create mode 100644 docs/html/dsps__corr__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__corr__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__corr__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__corr__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__cplx__gen_8c.html create mode 100644 docs/html/dsps__cplx__gen_8c.js create mode 100644 docs/html/dsps__cplx__gen_8c__incl.md5 create mode 100644 docs/html/dsps__cplx__gen_8c__incl.svg create mode 100644 docs/html/dsps__cplx__gen_8c__incl_org.svg create mode 100644 docs/html/dsps__cplx__gen_8c_source.html create mode 100644 docs/html/dsps__cplx__gen_8h.html create mode 100644 docs/html/dsps__cplx__gen_8h.js create mode 100644 docs/html/dsps__cplx__gen_8h__dep__incl.md5 create mode 100644 docs/html/dsps__cplx__gen_8h__dep__incl.svg create mode 100644 docs/html/dsps__cplx__gen_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__cplx__gen_8h__incl.md5 create mode 100644 docs/html/dsps__cplx__gen_8h__incl.svg create mode 100644 docs/html/dsps__cplx__gen_8h__incl_org.svg create mode 100644 docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph.md5 create mode 100644 docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph.svg create mode 100644 docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph_org.svg create mode 100644 docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 create mode 100644 docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg create mode 100644 docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg create mode 100644 docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph.md5 create mode 100644 docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph.svg create mode 100644 docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph_org.svg create mode 100644 docs/html/dsps__cplx__gen_8h_source.html create mode 100644 docs/html/dsps__cplx__gen__init_8c.html create mode 100644 docs/html/dsps__cplx__gen__init_8c.js create mode 100644 docs/html/dsps__cplx__gen__init_8c__incl.md5 create mode 100644 docs/html/dsps__cplx__gen__init_8c__incl.svg create mode 100644 docs/html/dsps__cplx__gen__init_8c__incl_org.svg create mode 100644 docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph.md5 create mode 100644 docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph.svg create mode 100644 docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph_org.svg create mode 100644 docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 create mode 100644 docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg create mode 100644 docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg create mode 100644 docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph.md5 create mode 100644 docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph.svg create mode 100644 docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph_org.svg create mode 100644 docs/html/dsps__cplx__gen__init_8c_source.html create mode 100644 docs/html/dsps__cplx__gen__platform_8h.html create mode 100644 docs/html/dsps__cplx__gen__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__cplx__gen__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__cplx__gen__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__cplx__gen__platform_8h__incl.md5 create mode 100644 docs/html/dsps__cplx__gen__platform_8h__incl.svg create mode 100644 docs/html/dsps__cplx__gen__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__cplx__gen__platform_8h_source.html create mode 100644 docs/html/dsps__d__gen_8c.html create mode 100644 docs/html/dsps__d__gen_8c.js create mode 100644 docs/html/dsps__d__gen_8c__incl.md5 create mode 100644 docs/html/dsps__d__gen_8c__incl.svg create mode 100644 docs/html/dsps__d__gen_8c__incl_org.svg create mode 100644 docs/html/dsps__d__gen_8c_source.html create mode 100644 docs/html/dsps__d__gen_8h.html create mode 100644 docs/html/dsps__d__gen_8h.js create mode 100644 docs/html/dsps__d__gen_8h__dep__incl.md5 create mode 100644 docs/html/dsps__d__gen_8h__dep__incl.svg create mode 100644 docs/html/dsps__d__gen_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__d__gen_8h__incl.md5 create mode 100644 docs/html/dsps__d__gen_8h__incl.svg create mode 100644 docs/html/dsps__d__gen_8h__incl_org.svg create mode 100644 docs/html/dsps__d__gen_8h_source.html create mode 100644 docs/html/dsps__dct_8h.html create mode 100644 docs/html/dsps__dct_8h.js create mode 100644 docs/html/dsps__dct_8h__dep__incl.md5 create mode 100644 docs/html/dsps__dct_8h__dep__incl.svg create mode 100644 docs/html/dsps__dct_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__dct_8h__incl.md5 create mode 100644 docs/html/dsps__dct_8h__incl.svg create mode 100644 docs/html/dsps__dct_8h__incl_org.svg create mode 100644 docs/html/dsps__dct_8h_source.html create mode 100644 docs/html/dsps__dct__f32_8c.html create mode 100644 docs/html/dsps__dct__f32_8c.js create mode 100644 docs/html/dsps__dct__f32_8c__incl.md5 create mode 100644 docs/html/dsps__dct__f32_8c__incl.svg create mode 100644 docs/html/dsps__dct__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__dct__f32_8c_source.html create mode 100644 docs/html/dsps__dctiv__f32_8c.html create mode 100644 docs/html/dsps__dctiv__f32_8c.js create mode 100644 docs/html/dsps__dctiv__f32_8c__incl.md5 create mode 100644 docs/html/dsps__dctiv__f32_8c__incl.svg create mode 100644 docs/html/dsps__dctiv__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__dctiv__f32_8c_source.html create mode 100644 docs/html/dsps__dotprod_8h.html create mode 100644 docs/html/dsps__dotprod_8h.js create mode 100644 docs/html/dsps__dotprod_8h__dep__incl.md5 create mode 100644 docs/html/dsps__dotprod_8h__dep__incl.svg create mode 100644 docs/html/dsps__dotprod_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__dotprod_8h__incl.md5 create mode 100644 docs/html/dsps__dotprod_8h__incl.svg create mode 100644 docs/html/dsps__dotprod_8h__incl_org.svg create mode 100644 docs/html/dsps__dotprod_8h_source.html create mode 100644 docs/html/dsps__dotprod__f32__ansi_8c.html create mode 100644 docs/html/dsps__dotprod__f32__ansi_8c.js create mode 100644 docs/html/dsps__dotprod__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__dotprod__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__dotprod__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__dotprod__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__dotprod__platform_8h.html create mode 100644 docs/html/dsps__dotprod__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__dotprod__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__dotprod__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__dotprod__platform_8h__incl.md5 create mode 100644 docs/html/dsps__dotprod__platform_8h__incl.svg create mode 100644 docs/html/dsps__dotprod__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__dotprod__platform_8h_source.html create mode 100644 docs/html/dsps__dotprod__s16__ansi_8c.html create mode 100644 docs/html/dsps__dotprod__s16__ansi_8c.js create mode 100644 docs/html/dsps__dotprod__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__dotprod__s16__ansi_8c__incl.svg create mode 100644 docs/html/dsps__dotprod__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__dotprod__s16__ansi_8c_source.html create mode 100644 docs/html/dsps__dotprode__f32__ansi_8c.html create mode 100644 docs/html/dsps__dotprode__f32__ansi_8c.js create mode 100644 docs/html/dsps__dotprode__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__dotprode__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__dotprode__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__dotprode__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__dstiv__f32_8c.html create mode 100644 docs/html/dsps__dstiv__f32_8c.js create mode 100644 docs/html/dsps__dstiv__f32_8c__incl.md5 create mode 100644 docs/html/dsps__dstiv__f32_8c__incl.svg create mode 100644 docs/html/dsps__dstiv__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__dstiv__f32_8c_source.html create mode 100644 docs/html/dsps__fft2r_8h.html create mode 100644 docs/html/dsps__fft2r_8h.js create mode 100644 docs/html/dsps__fft2r_8h__dep__incl.md5 create mode 100644 docs/html/dsps__fft2r_8h__dep__incl.svg create mode 100644 docs/html/dsps__fft2r_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__fft2r_8h__incl.md5 create mode 100644 docs/html/dsps__fft2r_8h__incl.svg create mode 100644 docs/html/dsps__fft2r_8h__incl_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph.md5 create mode 100644 docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph.svg create mode 100644 docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r_8h_source.html create mode 100644 docs/html/dsps__fft2r__bitrev__tables__fc32_8c.html create mode 100644 docs/html/dsps__fft2r__bitrev__tables__fc32_8c.js create mode 100644 docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl.md5 create mode 100644 docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl.svg create mode 100644 docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl_org.svg create mode 100644 docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg create mode 100644 docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__bitrev__tables__fc32_8c_source.html create mode 100644 docs/html/dsps__fft2r__fc32__ae32_8c.html create mode 100644 docs/html/dsps__fft2r__fc32__ae32_8c__incl.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ae32_8c__incl.svg create mode 100644 docs/html/dsps__fft2r__fc32__ae32_8c__incl_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ae32_8c_source.html create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c.html create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c.js create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__fc32__ansi_8c_source.html create mode 100644 docs/html/dsps__fft2r__platform_8h.html create mode 100644 docs/html/dsps__fft2r__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__fft2r__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__fft2r__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__fft2r__platform_8h__incl.md5 create mode 100644 docs/html/dsps__fft2r__platform_8h__incl.svg create mode 100644 docs/html/dsps__fft2r__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__fft2r__platform_8h_source.html create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c.html create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c.js create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c__incl.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph.md5 create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph_org.svg create mode 100644 docs/html/dsps__fft2r__sc16__ansi_8c_source.html create mode 100644 docs/html/dsps__fft4r_8h.html create mode 100644 docs/html/dsps__fft4r_8h.js create mode 100644 docs/html/dsps__fft4r_8h__dep__incl.md5 create mode 100644 docs/html/dsps__fft4r_8h__dep__incl.svg create mode 100644 docs/html/dsps__fft4r_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__fft4r_8h__incl.md5 create mode 100644 docs/html/dsps__fft4r_8h__incl.svg create mode 100644 docs/html/dsps__fft4r_8h__incl_org.svg create mode 100644 docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph.md5 create mode 100644 docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph.svg create mode 100644 docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph.md5 create mode 100644 docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph.svg create mode 100644 docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph.md5 create mode 100644 docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph.svg create mode 100644 docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph_org.svg create mode 100644 docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph.md5 create mode 100644 docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph.svg create mode 100644 docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph.md5 create mode 100644 docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph.svg create mode 100644 docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 create mode 100644 docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg create mode 100644 docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph.md5 create mode 100644 docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph.svg create mode 100644 docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph.md5 create mode 100644 docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph.svg create mode 100644 docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph_org.svg create mode 100644 docs/html/dsps__fft4r_8h_source.html create mode 100644 docs/html/dsps__fft4r__bitrev__tables__fc32_8c.html create mode 100644 docs/html/dsps__fft4r__bitrev__tables__fc32_8c.js create mode 100644 docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl.md5 create mode 100644 docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl.svg create mode 100644 docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl_org.svg create mode 100644 docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.md5 create mode 100644 docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.svg create mode 100644 docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph_org.svg create mode 100644 docs/html/dsps__fft4r__bitrev__tables__fc32_8c_source.html create mode 100644 docs/html/dsps__fft4r__fc32__ae32_8c.html create mode 100644 docs/html/dsps__fft4r__fc32__ae32_8c__incl.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ae32_8c__incl.svg create mode 100644 docs/html/dsps__fft4r__fc32__ae32_8c__incl_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ae32_8c_source.html create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c.html create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c.js create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph.md5 create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph_org.svg create mode 100644 docs/html/dsps__fft4r__fc32__ansi_8c_source.html create mode 100644 docs/html/dsps__fft4r__platform_8h.html create mode 100644 docs/html/dsps__fft4r__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__fft4r__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__fft4r__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__fft4r__platform_8h__incl.md5 create mode 100644 docs/html/dsps__fft4r__platform_8h__incl.svg create mode 100644 docs/html/dsps__fft4r__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__fft4r__platform_8h_source.html create mode 100644 docs/html/dsps__fft__tables_8h.html create mode 100644 docs/html/dsps__fft__tables_8h.js create mode 100644 docs/html/dsps__fft__tables_8h__dep__incl.md5 create mode 100644 docs/html/dsps__fft__tables_8h__dep__incl.svg create mode 100644 docs/html/dsps__fft__tables_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.md5 create mode 100644 docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.svg create mode 100644 docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph_org.svg create mode 100644 docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 create mode 100644 docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg create mode 100644 docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg create mode 100644 docs/html/dsps__fft__tables_8h_source.html create mode 100644 docs/html/dsps__fir_8h.html create mode 100644 docs/html/dsps__fir_8h.js create mode 100644 docs/html/dsps__fir_8h__dep__incl.md5 create mode 100644 docs/html/dsps__fir_8h__dep__incl.svg create mode 100644 docs/html/dsps__fir_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__fir_8h__incl.md5 create mode 100644 docs/html/dsps__fir_8h__incl.svg create mode 100644 docs/html/dsps__fir_8h__incl_org.svg create mode 100644 docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.md5 create mode 100644 docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.svg create mode 100644 docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph_org.svg create mode 100644 docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 create mode 100644 docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg create mode 100644 docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg create mode 100644 docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph.md5 create mode 100644 docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph.svg create mode 100644 docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph_org.svg create mode 100644 docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph.md5 create mode 100644 docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph.svg create mode 100644 docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph_org.svg create mode 100644 docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph.md5 create mode 100644 docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph.svg create mode 100644 docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph_org.svg create mode 100644 docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.md5 create mode 100644 docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.svg create mode 100644 docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph_org.svg create mode 100644 docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph.md5 create mode 100644 docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph.svg create mode 100644 docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph_org.svg create mode 100644 docs/html/dsps__fir_8h_source.html create mode 100644 docs/html/dsps__fir__f32__ansi_8c.html create mode 100644 docs/html/dsps__fir__f32__ansi_8c.js create mode 100644 docs/html/dsps__fir__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__fir__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__fir__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph.md5 create mode 100644 docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph.svg create mode 100644 docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph_org.svg create mode 100644 docs/html/dsps__fir__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__fir__init__f32_8c.html create mode 100644 docs/html/dsps__fir__init__f32_8c.js create mode 100644 docs/html/dsps__fir__init__f32_8c__incl.md5 create mode 100644 docs/html/dsps__fir__init__f32_8c__incl.svg create mode 100644 docs/html/dsps__fir__init__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.md5 create mode 100644 docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.svg create mode 100644 docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph_org.svg create mode 100644 docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph.md5 create mode 100644 docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph.svg create mode 100644 docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph_org.svg create mode 100644 docs/html/dsps__fir__init__f32_8c_source.html create mode 100644 docs/html/dsps__fir__platform_8h.html create mode 100644 docs/html/dsps__fir__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__fir__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__fir__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__fir__platform_8h__incl.md5 create mode 100644 docs/html/dsps__fir__platform_8h__incl.svg create mode 100644 docs/html/dsps__fir__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__fir__platform_8h_source.html create mode 100644 docs/html/dsps__fird__f32__ansi_8c.html create mode 100644 docs/html/dsps__fird__f32__ansi_8c.js create mode 100644 docs/html/dsps__fird__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__fird__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__fird__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__fird__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__fird__init__f32_8c.html create mode 100644 docs/html/dsps__fird__init__f32_8c.js create mode 100644 docs/html/dsps__fird__init__f32_8c__incl.md5 create mode 100644 docs/html/dsps__fird__init__f32_8c__incl.svg create mode 100644 docs/html/dsps__fird__init__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__fird__init__f32_8c_source.html create mode 100644 docs/html/dsps__fird__init__s16_8c.html create mode 100644 docs/html/dsps__fird__init__s16_8c.js create mode 100644 docs/html/dsps__fird__init__s16_8c__incl.md5 create mode 100644 docs/html/dsps__fird__init__s16_8c__incl.svg create mode 100644 docs/html/dsps__fird__init__s16_8c__incl_org.svg create mode 100644 docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 create mode 100644 docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg create mode 100644 docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg create mode 100644 docs/html/dsps__fird__init__s16_8c_source.html create mode 100644 docs/html/dsps__fird__s16__ansi_8c.html create mode 100644 docs/html/dsps__fird__s16__ansi_8c.js create mode 100644 docs/html/dsps__fird__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__fird__s16__ansi_8c__incl.svg create mode 100644 docs/html/dsps__fird__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__fird__s16__ansi_8c_source.html create mode 100644 docs/html/dsps__firmr__f32__ansi_8c.html create mode 100644 docs/html/dsps__firmr__f32__ansi_8c.js create mode 100644 docs/html/dsps__firmr__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__firmr__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__firmr__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__firmr__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__firmr__init__f32_8c.html create mode 100644 docs/html/dsps__firmr__init__f32_8c.js create mode 100644 docs/html/dsps__firmr__init__f32_8c__incl.md5 create mode 100644 docs/html/dsps__firmr__init__f32_8c__incl.svg create mode 100644 docs/html/dsps__firmr__init__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.md5 create mode 100644 docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.svg create mode 100644 docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph_org.svg create mode 100644 docs/html/dsps__firmr__init__f32_8c_source.html create mode 100644 docs/html/dsps__firmr__init__s16_8c.html create mode 100644 docs/html/dsps__firmr__init__s16_8c.js create mode 100644 docs/html/dsps__firmr__init__s16_8c__incl.md5 create mode 100644 docs/html/dsps__firmr__init__s16_8c__incl.svg create mode 100644 docs/html/dsps__firmr__init__s16_8c__incl_org.svg create mode 100644 docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph.md5 create mode 100644 docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph.svg create mode 100644 docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph_org.svg create mode 100644 docs/html/dsps__firmr__init__s16_8c_source.html create mode 100644 docs/html/dsps__firmr__s16__ansi_8c.html create mode 100644 docs/html/dsps__firmr__s16__ansi_8c.js create mode 100644 docs/html/dsps__firmr__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__firmr__s16__ansi_8c__incl.svg create mode 100644 docs/html/dsps__firmr__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__firmr__s16__ansi_8c_source.html create mode 100644 docs/html/dsps__h__gen_8c.html create mode 100644 docs/html/dsps__h__gen_8c.js create mode 100644 docs/html/dsps__h__gen_8c__incl.md5 create mode 100644 docs/html/dsps__h__gen_8c__incl.svg create mode 100644 docs/html/dsps__h__gen_8c__incl_org.svg create mode 100644 docs/html/dsps__h__gen_8c_source.html create mode 100644 docs/html/dsps__h__gen_8h.html create mode 100644 docs/html/dsps__h__gen_8h.js create mode 100644 docs/html/dsps__h__gen_8h__dep__incl.md5 create mode 100644 docs/html/dsps__h__gen_8h__dep__incl.svg create mode 100644 docs/html/dsps__h__gen_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__h__gen_8h__incl.md5 create mode 100644 docs/html/dsps__h__gen_8h__incl.svg create mode 100644 docs/html/dsps__h__gen_8h__incl_org.svg create mode 100644 docs/html/dsps__h__gen_8h_source.html create mode 100644 docs/html/dsps__math_8h.html create mode 100644 docs/html/dsps__math_8h__dep__incl.md5 create mode 100644 docs/html/dsps__math_8h__dep__incl.svg create mode 100644 docs/html/dsps__math_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__math_8h__incl.md5 create mode 100644 docs/html/dsps__math_8h__incl.svg create mode 100644 docs/html/dsps__math_8h__incl_org.svg create mode 100644 docs/html/dsps__math_8h_source.html create mode 100644 docs/html/dsps__mem_8h.html create mode 100644 docs/html/dsps__mem_8h.js create mode 100644 docs/html/dsps__mem_8h__incl.md5 create mode 100644 docs/html/dsps__mem_8h__incl.svg create mode 100644 docs/html/dsps__mem_8h__incl_org.svg create mode 100644 docs/html/dsps__mem_8h_source.html create mode 100644 docs/html/dsps__mem__platform_8h.html create mode 100644 docs/html/dsps__mem__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__mem__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__mem__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__mem__platform_8h__incl.md5 create mode 100644 docs/html/dsps__mem__platform_8h__incl.svg create mode 100644 docs/html/dsps__mem__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__mem__platform_8h_source.html create mode 100644 docs/html/dsps__mul_8h.html create mode 100644 docs/html/dsps__mul_8h.js create mode 100644 docs/html/dsps__mul_8h__dep__incl.md5 create mode 100644 docs/html/dsps__mul_8h__dep__incl.svg create mode 100644 docs/html/dsps__mul_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__mul_8h__incl.md5 create mode 100644 docs/html/dsps__mul_8h__incl.svg create mode 100644 docs/html/dsps__mul_8h__incl_org.svg create mode 100644 docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph.md5 create mode 100644 docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph.svg create mode 100644 docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph_org.svg create mode 100644 docs/html/dsps__mul_8h_source.html create mode 100644 docs/html/dsps__mul__f32__ansi_8c.html create mode 100644 docs/html/dsps__mul__f32__ansi_8c.js create mode 100644 docs/html/dsps__mul__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__mul__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__mul__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__mul__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__mul__platform_8h.html create mode 100644 docs/html/dsps__mul__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__mul__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__mul__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__mul__platform_8h__incl.md5 create mode 100644 docs/html/dsps__mul__platform_8h__incl.svg create mode 100644 docs/html/dsps__mul__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__mul__platform_8h_source.html create mode 100644 docs/html/dsps__mul__s16__ansi_8c.html create mode 100644 docs/html/dsps__mul__s16__ansi_8c.js create mode 100644 docs/html/dsps__mul__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__mul__s16__ansi_8c__incl.svg create mode 100644 docs/html/dsps__mul__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph.md5 create mode 100644 docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph.svg create mode 100644 docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph_org.svg create mode 100644 docs/html/dsps__mul__s16__ansi_8c_source.html create mode 100644 docs/html/dsps__mul__s8__ansi_8c.html create mode 100644 docs/html/dsps__mul__s8__ansi_8c.js create mode 100644 docs/html/dsps__mul__s8__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__mul__s8__ansi_8c__incl.svg create mode 100644 docs/html/dsps__mul__s8__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__mul__s8__ansi_8c_source.html create mode 100644 docs/html/dsps__mulc_8h.html create mode 100644 docs/html/dsps__mulc_8h.js create mode 100644 docs/html/dsps__mulc_8h__dep__incl.md5 create mode 100644 docs/html/dsps__mulc_8h__dep__incl.svg create mode 100644 docs/html/dsps__mulc_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__mulc_8h__incl.md5 create mode 100644 docs/html/dsps__mulc_8h__incl.svg create mode 100644 docs/html/dsps__mulc_8h__incl_org.svg create mode 100644 docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 create mode 100644 docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg create mode 100644 docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph_org.svg create mode 100644 docs/html/dsps__mulc_8h_source.html create mode 100644 docs/html/dsps__mulc__f32__ansi_8c.html create mode 100644 docs/html/dsps__mulc__f32__ansi_8c.js create mode 100644 docs/html/dsps__mulc__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__mulc__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__mulc__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 create mode 100644 docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg create mode 100644 docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph_org.svg create mode 100644 docs/html/dsps__mulc__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__mulc__platform_8h.html create mode 100644 docs/html/dsps__mulc__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__mulc__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__mulc__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__mulc__platform_8h__incl.md5 create mode 100644 docs/html/dsps__mulc__platform_8h__incl.svg create mode 100644 docs/html/dsps__mulc__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__mulc__platform_8h_source.html create mode 100644 docs/html/dsps__mulc__s16__ansi_8c.html create mode 100644 docs/html/dsps__mulc__s16__ansi_8c.js create mode 100644 docs/html/dsps__mulc__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__mulc__s16__ansi_8c__incl.svg create mode 100644 docs/html/dsps__mulc__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__mulc__s16__ansi_8c_source.html create mode 100644 docs/html/dsps__pwroftwo_8cpp.html create mode 100644 docs/html/dsps__pwroftwo_8cpp.js create mode 100644 docs/html/dsps__pwroftwo_8cpp__incl.md5 create mode 100644 docs/html/dsps__pwroftwo_8cpp__incl.svg create mode 100644 docs/html/dsps__pwroftwo_8cpp__incl_org.svg create mode 100644 docs/html/dsps__pwroftwo_8cpp_source.html create mode 100644 docs/html/dsps__resampler_8h.html create mode 100644 docs/html/dsps__resampler_8h.js create mode 100644 docs/html/dsps__resampler_8h__dep__incl.md5 create mode 100644 docs/html/dsps__resampler_8h__dep__incl.svg create mode 100644 docs/html/dsps__resampler_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__resampler_8h__incl.md5 create mode 100644 docs/html/dsps__resampler_8h__incl.svg create mode 100644 docs/html/dsps__resampler_8h__incl_org.svg create mode 100644 docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph.md5 create mode 100644 docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph.svg create mode 100644 docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph_org.svg create mode 100644 docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 create mode 100644 docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg create mode 100644 docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg create mode 100644 docs/html/dsps__resampler_8h_source.html create mode 100644 docs/html/dsps__resampler__mr_8c.html create mode 100644 docs/html/dsps__resampler__mr_8c.js create mode 100644 docs/html/dsps__resampler__mr_8c__incl.md5 create mode 100644 docs/html/dsps__resampler__mr_8c__incl.svg create mode 100644 docs/html/dsps__resampler__mr_8c__incl_org.svg create mode 100644 docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph.md5 create mode 100644 docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph.svg create mode 100644 docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph_org.svg create mode 100644 docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 create mode 100644 docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg create mode 100644 docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg create mode 100644 docs/html/dsps__resampler__mr_8c_source.html create mode 100644 docs/html/dsps__resampler__ph_8c.html create mode 100644 docs/html/dsps__resampler__ph_8c.js create mode 100644 docs/html/dsps__resampler__ph_8c__incl.md5 create mode 100644 docs/html/dsps__resampler__ph_8c__incl.svg create mode 100644 docs/html/dsps__resampler__ph_8c__incl_org.svg create mode 100644 docs/html/dsps__resampler__ph_8c_source.html create mode 100644 docs/html/dsps__sfdr_8h.html create mode 100644 docs/html/dsps__sfdr_8h.js create mode 100644 docs/html/dsps__sfdr_8h__dep__incl.md5 create mode 100644 docs/html/dsps__sfdr_8h__dep__incl.svg create mode 100644 docs/html/dsps__sfdr_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__sfdr_8h__incl.md5 create mode 100644 docs/html/dsps__sfdr_8h__incl.svg create mode 100644 docs/html/dsps__sfdr_8h__incl_org.svg create mode 100644 docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 create mode 100644 docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg create mode 100644 docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg create mode 100644 docs/html/dsps__sfdr_8h_source.html create mode 100644 docs/html/dsps__sfdr__f32_8cpp.html create mode 100644 docs/html/dsps__sfdr__f32_8cpp.js create mode 100644 docs/html/dsps__sfdr__f32_8cpp__incl.md5 create mode 100644 docs/html/dsps__sfdr__f32_8cpp__incl.svg create mode 100644 docs/html/dsps__sfdr__f32_8cpp__incl_org.svg create mode 100644 docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 create mode 100644 docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg create mode 100644 docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg create mode 100644 docs/html/dsps__sfdr__f32_8cpp_source.html create mode 100644 docs/html/dsps__snr_8h.html create mode 100644 docs/html/dsps__snr_8h.js create mode 100644 docs/html/dsps__snr_8h__dep__incl.md5 create mode 100644 docs/html/dsps__snr_8h__dep__incl.svg create mode 100644 docs/html/dsps__snr_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__snr_8h__incl.md5 create mode 100644 docs/html/dsps__snr_8h__incl.svg create mode 100644 docs/html/dsps__snr_8h__incl_org.svg create mode 100644 docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 create mode 100644 docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.svg create mode 100644 docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph_org.svg create mode 100644 docs/html/dsps__snr_8h_source.html create mode 100644 docs/html/dsps__snr__f32_8cpp.html create mode 100644 docs/html/dsps__snr__f32_8cpp.js create mode 100644 docs/html/dsps__snr__f32_8cpp__incl.md5 create mode 100644 docs/html/dsps__snr__f32_8cpp__incl.svg create mode 100644 docs/html/dsps__snr__f32_8cpp__incl_org.svg create mode 100644 docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 create mode 100644 docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.svg create mode 100644 docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph_org.svg create mode 100644 docs/html/dsps__snr__f32_8cpp_source.html create mode 100644 docs/html/dsps__sqrt_8h.html create mode 100644 docs/html/dsps__sqrt_8h.js create mode 100644 docs/html/dsps__sqrt_8h__dep__incl.md5 create mode 100644 docs/html/dsps__sqrt_8h__dep__incl.svg create mode 100644 docs/html/dsps__sqrt_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__sqrt_8h__incl.md5 create mode 100644 docs/html/dsps__sqrt_8h__incl.svg create mode 100644 docs/html/dsps__sqrt_8h__incl_org.svg create mode 100644 docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph.md5 create mode 100644 docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph.svg create mode 100644 docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph_org.svg create mode 100644 docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph.md5 create mode 100644 docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph.svg create mode 100644 docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph_org.svg create mode 100644 docs/html/dsps__sqrt_8h_source.html create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c.html create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c.js create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph.md5 create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph.svg create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph_org.svg create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph.md5 create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph.svg create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph_org.svg create mode 100644 docs/html/dsps__sqrt__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__sub_8h.html create mode 100644 docs/html/dsps__sub_8h.js create mode 100644 docs/html/dsps__sub_8h__dep__incl.md5 create mode 100644 docs/html/dsps__sub_8h__dep__incl.svg create mode 100644 docs/html/dsps__sub_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__sub_8h__incl.md5 create mode 100644 docs/html/dsps__sub_8h__incl.svg create mode 100644 docs/html/dsps__sub_8h__incl_org.svg create mode 100644 docs/html/dsps__sub_8h_source.html create mode 100644 docs/html/dsps__sub__f32__ansi_8c.html create mode 100644 docs/html/dsps__sub__f32__ansi_8c.js create mode 100644 docs/html/dsps__sub__f32__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__sub__f32__ansi_8c__incl.svg create mode 100644 docs/html/dsps__sub__f32__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__sub__f32__ansi_8c_source.html create mode 100644 docs/html/dsps__sub__platform_8h.html create mode 100644 docs/html/dsps__sub__platform_8h__dep__incl.md5 create mode 100644 docs/html/dsps__sub__platform_8h__dep__incl.svg create mode 100644 docs/html/dsps__sub__platform_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__sub__platform_8h__incl.md5 create mode 100644 docs/html/dsps__sub__platform_8h__incl.svg create mode 100644 docs/html/dsps__sub__platform_8h__incl_org.svg create mode 100644 docs/html/dsps__sub__platform_8h_source.html create mode 100644 docs/html/dsps__sub__s16__ansi_8c.html create mode 100644 docs/html/dsps__sub__s16__ansi_8c.js create mode 100644 docs/html/dsps__sub__s16__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__sub__s16__ansi_8c__incl.svg create mode 100644 docs/html/dsps__sub__s16__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__sub__s16__ansi_8c_source.html create mode 100644 docs/html/dsps__sub__s8__ansi_8c.html create mode 100644 docs/html/dsps__sub__s8__ansi_8c.js create mode 100644 docs/html/dsps__sub__s8__ansi_8c__incl.md5 create mode 100644 docs/html/dsps__sub__s8__ansi_8c__incl.svg create mode 100644 docs/html/dsps__sub__s8__ansi_8c__incl_org.svg create mode 100644 docs/html/dsps__sub__s8__ansi_8c_source.html create mode 100644 docs/html/dsps__tone__gen_8c.html create mode 100644 docs/html/dsps__tone__gen_8c.js create mode 100644 docs/html/dsps__tone__gen_8c__incl.md5 create mode 100644 docs/html/dsps__tone__gen_8c__incl.svg create mode 100644 docs/html/dsps__tone__gen_8c__incl_org.svg create mode 100644 docs/html/dsps__tone__gen_8c_source.html create mode 100644 docs/html/dsps__tone__gen_8h.html create mode 100644 docs/html/dsps__tone__gen_8h.js create mode 100644 docs/html/dsps__tone__gen_8h__dep__incl.md5 create mode 100644 docs/html/dsps__tone__gen_8h__dep__incl.svg create mode 100644 docs/html/dsps__tone__gen_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__tone__gen_8h__incl.md5 create mode 100644 docs/html/dsps__tone__gen_8h__incl.svg create mode 100644 docs/html/dsps__tone__gen_8h__incl_org.svg create mode 100644 docs/html/dsps__tone__gen_8h_source.html create mode 100644 docs/html/dsps__view_8cpp.html create mode 100644 docs/html/dsps__view_8cpp.js create mode 100644 docs/html/dsps__view_8cpp__incl.md5 create mode 100644 docs/html/dsps__view_8cpp__incl.svg create mode 100644 docs/html/dsps__view_8cpp__incl_org.svg create mode 100644 docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph.md5 create mode 100644 docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph.svg create mode 100644 docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph_org.svg create mode 100644 docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph.md5 create mode 100644 docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph.svg create mode 100644 docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph_org.svg create mode 100644 docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph.md5 create mode 100644 docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph.svg create mode 100644 docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph_org.svg create mode 100644 docs/html/dsps__view_8cpp_source.html create mode 100644 docs/html/dsps__view_8h.html create mode 100644 docs/html/dsps__view_8h.js create mode 100644 docs/html/dsps__view_8h__dep__incl.md5 create mode 100644 docs/html/dsps__view_8h__dep__incl.svg create mode 100644 docs/html/dsps__view_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__view_8h__incl.md5 create mode 100644 docs/html/dsps__view_8h__incl.svg create mode 100644 docs/html/dsps__view_8h__incl_org.svg create mode 100644 docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph.md5 create mode 100644 docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph.svg create mode 100644 docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph_org.svg create mode 100644 docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph.md5 create mode 100644 docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph.svg create mode 100644 docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph_org.svg create mode 100644 docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph.md5 create mode 100644 docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph.svg create mode 100644 docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph_org.svg create mode 100644 docs/html/dsps__view_8h_source.html create mode 100644 docs/html/dsps__wind_8h.html create mode 100644 docs/html/dsps__wind_8h__dep__incl.md5 create mode 100644 docs/html/dsps__wind_8h__dep__incl.svg create mode 100644 docs/html/dsps__wind_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__wind_8h__incl.md5 create mode 100644 docs/html/dsps__wind_8h__incl.svg create mode 100644 docs/html/dsps__wind_8h__incl_org.svg create mode 100644 docs/html/dsps__wind_8h_source.html create mode 100644 docs/html/dsps__wind__blackman_8h.html create mode 100644 docs/html/dsps__wind__blackman_8h.js create mode 100644 docs/html/dsps__wind__blackman_8h__dep__incl.md5 create mode 100644 docs/html/dsps__wind__blackman_8h__dep__incl.svg create mode 100644 docs/html/dsps__wind__blackman_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph.md5 create mode 100644 docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph.svg create mode 100644 docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph_org.svg create mode 100644 docs/html/dsps__wind__blackman_8h_source.html create mode 100644 docs/html/dsps__wind__blackman__f32_8c.html create mode 100644 docs/html/dsps__wind__blackman__f32_8c.js create mode 100644 docs/html/dsps__wind__blackman__f32_8c__incl.md5 create mode 100644 docs/html/dsps__wind__blackman__f32_8c__incl.svg create mode 100644 docs/html/dsps__wind__blackman__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph.md5 create mode 100644 docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph.svg create mode 100644 docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph_org.svg create mode 100644 docs/html/dsps__wind__blackman__f32_8c_source.html create mode 100644 docs/html/dsps__wind__blackman__harris_8h.html create mode 100644 docs/html/dsps__wind__blackman__harris_8h.js create mode 100644 docs/html/dsps__wind__blackman__harris_8h__dep__incl.md5 create mode 100644 docs/html/dsps__wind__blackman__harris_8h__dep__incl.svg create mode 100644 docs/html/dsps__wind__blackman__harris_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph.md5 create mode 100644 docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph.svg create mode 100644 docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph_org.svg create mode 100644 docs/html/dsps__wind__blackman__harris_8h_source.html create mode 100644 docs/html/dsps__wind__blackman__harris__f32_8c.html create mode 100644 docs/html/dsps__wind__blackman__harris__f32_8c.js create mode 100644 docs/html/dsps__wind__blackman__harris__f32_8c__incl.md5 create mode 100644 docs/html/dsps__wind__blackman__harris__f32_8c__incl.svg create mode 100644 docs/html/dsps__wind__blackman__harris__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph.md5 create mode 100644 docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph.svg create mode 100644 docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph_org.svg create mode 100644 docs/html/dsps__wind__blackman__harris__f32_8c_source.html create mode 100644 docs/html/dsps__wind__blackman__nuttall_8h.html create mode 100644 docs/html/dsps__wind__blackman__nuttall_8h.js create mode 100644 docs/html/dsps__wind__blackman__nuttall_8h__dep__incl.md5 create mode 100644 docs/html/dsps__wind__blackman__nuttall_8h__dep__incl.svg create mode 100644 docs/html/dsps__wind__blackman__nuttall_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 create mode 100644 docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg create mode 100644 docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph_org.svg create mode 100644 docs/html/dsps__wind__blackman__nuttall_8h_source.html create mode 100644 docs/html/dsps__wind__blackman__nuttall__f32_8c.html create mode 100644 docs/html/dsps__wind__blackman__nuttall__f32_8c.js create mode 100644 docs/html/dsps__wind__blackman__nuttall__f32_8c__incl.md5 create mode 100644 docs/html/dsps__wind__blackman__nuttall__f32_8c__incl.svg create mode 100644 docs/html/dsps__wind__blackman__nuttall__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 create mode 100644 docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg create mode 100644 docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph_org.svg create mode 100644 docs/html/dsps__wind__blackman__nuttall__f32_8c_source.html create mode 100644 docs/html/dsps__wind__flat__top_8h.html create mode 100644 docs/html/dsps__wind__flat__top_8h.js create mode 100644 docs/html/dsps__wind__flat__top_8h__dep__incl.md5 create mode 100644 docs/html/dsps__wind__flat__top_8h__dep__incl.svg create mode 100644 docs/html/dsps__wind__flat__top_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 create mode 100644 docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg create mode 100644 docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph_org.svg create mode 100644 docs/html/dsps__wind__flat__top_8h_source.html create mode 100644 docs/html/dsps__wind__flat__top__f32_8c.html create mode 100644 docs/html/dsps__wind__flat__top__f32_8c.js create mode 100644 docs/html/dsps__wind__flat__top__f32_8c__incl.md5 create mode 100644 docs/html/dsps__wind__flat__top__f32_8c__incl.svg create mode 100644 docs/html/dsps__wind__flat__top__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 create mode 100644 docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg create mode 100644 docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph_org.svg create mode 100644 docs/html/dsps__wind__flat__top__f32_8c_source.html create mode 100644 docs/html/dsps__wind__hann_8h.html create mode 100644 docs/html/dsps__wind__hann_8h.js create mode 100644 docs/html/dsps__wind__hann_8h__dep__incl.md5 create mode 100644 docs/html/dsps__wind__hann_8h__dep__incl.svg create mode 100644 docs/html/dsps__wind__hann_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph.md5 create mode 100644 docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph.svg create mode 100644 docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph_org.svg create mode 100644 docs/html/dsps__wind__hann_8h_source.html create mode 100644 docs/html/dsps__wind__hann__f32_8c.html create mode 100644 docs/html/dsps__wind__hann__f32_8c.js create mode 100644 docs/html/dsps__wind__hann__f32_8c__incl.md5 create mode 100644 docs/html/dsps__wind__hann__f32_8c__incl.svg create mode 100644 docs/html/dsps__wind__hann__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph.md5 create mode 100644 docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph.svg create mode 100644 docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph_org.svg create mode 100644 docs/html/dsps__wind__hann__f32_8c_source.html create mode 100644 docs/html/dsps__wind__nuttall_8h.html create mode 100644 docs/html/dsps__wind__nuttall_8h.js create mode 100644 docs/html/dsps__wind__nuttall_8h__dep__incl.md5 create mode 100644 docs/html/dsps__wind__nuttall_8h__dep__incl.svg create mode 100644 docs/html/dsps__wind__nuttall_8h__dep__incl_org.svg create mode 100644 docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 create mode 100644 docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg create mode 100644 docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg create mode 100644 docs/html/dsps__wind__nuttall_8h_source.html create mode 100644 docs/html/dsps__wind__nuttall__f32_8c.html create mode 100644 docs/html/dsps__wind__nuttall__f32_8c.js create mode 100644 docs/html/dsps__wind__nuttall__f32_8c__incl.md5 create mode 100644 docs/html/dsps__wind__nuttall__f32_8c__incl.svg create mode 100644 docs/html/dsps__wind__nuttall__f32_8c__incl_org.svg create mode 100644 docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 create mode 100644 docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg create mode 100644 docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg create mode 100644 docs/html/dsps__wind__nuttall__f32_8c_source.html create mode 100644 docs/html/dynsections.js create mode 100644 docs/html/ekf_8cpp.html create mode 100644 docs/html/ekf_8cpp.js create mode 100644 docs/html/ekf_8cpp__incl.md5 create mode 100644 docs/html/ekf_8cpp__incl.svg create mode 100644 docs/html/ekf_8cpp__incl_org.svg create mode 100644 docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph.md5 create mode 100644 docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph.svg create mode 100644 docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph_org.svg create mode 100644 docs/html/ekf_8cpp_source.html create mode 100644 docs/html/ekf_8h.html create mode 100644 docs/html/ekf_8h.js create mode 100644 docs/html/ekf_8h__dep__incl.md5 create mode 100644 docs/html/ekf_8h__dep__incl.svg create mode 100644 docs/html/ekf_8h__dep__incl_org.svg create mode 100644 docs/html/ekf_8h__incl.md5 create mode 100644 docs/html/ekf_8h__incl.svg create mode 100644 docs/html/ekf_8h__incl_org.svg create mode 100644 docs/html/ekf_8h_source.html create mode 100644 docs/html/ekf__imu13states_8cpp.html create mode 100644 docs/html/ekf__imu13states_8cpp__incl.md5 create mode 100644 docs/html/ekf__imu13states_8cpp__incl.svg create mode 100644 docs/html/ekf__imu13states_8cpp__incl_org.svg create mode 100644 docs/html/ekf__imu13states_8cpp_source.html create mode 100644 docs/html/ekf__imu13states_8h.html create mode 100644 docs/html/ekf__imu13states_8h.js create mode 100644 docs/html/ekf__imu13states_8h__dep__incl.md5 create mode 100644 docs/html/ekf__imu13states_8h__dep__incl.svg create mode 100644 docs/html/ekf__imu13states_8h__dep__incl_org.svg create mode 100644 docs/html/ekf__imu13states_8h__incl.md5 create mode 100644 docs/html/ekf__imu13states_8h__incl.svg create mode 100644 docs/html/ekf__imu13states_8h__incl_org.svg create mode 100644 docs/html/ekf__imu13states_8h_source.html create mode 100644 docs/html/esp__attr_8h.html create mode 100644 docs/html/esp__attr_8h__dep__incl.md5 create mode 100644 docs/html/esp__attr_8h__dep__incl.svg create mode 100644 docs/html/esp__attr_8h__dep__incl_org.svg create mode 100644 docs/html/esp__attr_8h_source.html create mode 100644 docs/html/esp__dsp_8h.html create mode 100644 docs/html/esp__dsp_8h__dep__incl.md5 create mode 100644 docs/html/esp__dsp_8h__dep__incl.svg create mode 100644 docs/html/esp__dsp_8h__dep__incl_org.svg create mode 100644 docs/html/esp__dsp_8h__incl.md5 create mode 100644 docs/html/esp__dsp_8h__incl.svg create mode 100644 docs/html/esp__dsp_8h__incl_org.svg create mode 100644 docs/html/esp__dsp_8h_source.html create mode 100644 docs/html/esp__err_8h.html create mode 100644 docs/html/esp__err_8h.js create mode 100644 docs/html/esp__err_8h__dep__incl.md5 create mode 100644 docs/html/esp__err_8h__dep__incl.svg create mode 100644 docs/html/esp__err_8h__dep__incl_org.svg create mode 100644 docs/html/esp__err_8h__incl.md5 create mode 100644 docs/html/esp__err_8h__incl.svg create mode 100644 docs/html/esp__err_8h__incl_org.svg create mode 100644 docs/html/esp__err_8h_source.html create mode 100644 docs/html/esp__log_8h.html create mode 100644 docs/html/esp__log_8h.js create mode 100644 docs/html/esp__log_8h__dep__incl.md5 create mode 100644 docs/html/esp__log_8h__dep__incl.svg create mode 100644 docs/html/esp__log_8h__dep__incl_org.svg create mode 100644 docs/html/esp__log_8h__incl.md5 create mode 100644 docs/html/esp__log_8h__incl.svg create mode 100644 docs/html/esp__log_8h__incl_org.svg create mode 100644 docs/html/esp__log_8h_source.html create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.js create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg create mode 100644 docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix914e932f5b873cea5635685522728c5b.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix914e932f5b873cea5635685522728c5b_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tf467054661c3b740731be32a4a2294d4.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tf467054661c3b740731be32a4a2294d4_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_source.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.js create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.md5 create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl_org.svg create mode 100644 docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c_source.html create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg create mode 100644 docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c_source.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.js create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.md5 create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl_org.svg create mode 100644 docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h_source.html create mode 100644 docs/html/files.html create mode 100644 docs/html/files_dup.js create mode 100644 docs/html/functions.html create mode 100644 docs/html/functions_b.html create mode 100644 docs/html/functions_c.html create mode 100644 docs/html/functions_d.html create mode 100644 docs/html/functions_dup.js create mode 100644 docs/html/functions_e.html create mode 100644 docs/html/functions_f.html create mode 100644 docs/html/functions_func.html create mode 100644 docs/html/functions_g.html create mode 100644 docs/html/functions_h.html create mode 100644 docs/html/functions_i.html create mode 100644 docs/html/functions_k.html create mode 100644 docs/html/functions_l.html create mode 100644 docs/html/functions_m.html create mode 100644 docs/html/functions_n.html create mode 100644 docs/html/functions_o.html create mode 100644 docs/html/functions_p.html create mode 100644 docs/html/functions_q.html create mode 100644 docs/html/functions_r.html create mode 100644 docs/html/functions_s.html create mode 100644 docs/html/functions_t.html create mode 100644 docs/html/functions_u.html create mode 100644 docs/html/functions_v.html create mode 100644 docs/html/functions_vars.html create mode 100644 docs/html/functions_w.html create mode 100644 docs/html/functions_x.html create mode 100644 docs/html/functions_y.html create mode 100644 docs/html/functions_~.html create mode 100644 docs/html/globals.html create mode 100644 docs/html/globals_a.html create mode 100644 docs/html/globals_b.html create mode 100644 docs/html/globals_c.html create mode 100644 docs/html/globals_d.html create mode 100644 docs/html/globals_defs.html create mode 100644 docs/html/globals_defs.js create mode 100644 docs/html/globals_defs_a.html create mode 100644 docs/html/globals_defs_b.html create mode 100644 docs/html/globals_defs_c.html create mode 100644 docs/html/globals_defs_d.html create mode 100644 docs/html/globals_defs_e.html create mode 100644 docs/html/globals_defs_f.html create mode 100644 docs/html/globals_defs_i.html create mode 100644 docs/html/globals_defs_k.html create mode 100644 docs/html/globals_defs_l.html create mode 100644 docs/html/globals_defs_m.html create mode 100644 docs/html/globals_defs_n.html create mode 100644 docs/html/globals_defs_o.html create mode 100644 docs/html/globals_defs_p.html create mode 100644 docs/html/globals_defs_q.html create mode 100644 docs/html/globals_defs_r.html create mode 100644 docs/html/globals_defs_s.html create mode 100644 docs/html/globals_defs_t.html create mode 100644 docs/html/globals_defs_u.html create mode 100644 docs/html/globals_defs_v.html create mode 100644 docs/html/globals_defs_w.html create mode 100644 docs/html/globals_defs_x.html create mode 100644 docs/html/globals_defs_y.html create mode 100644 docs/html/globals_dup.js create mode 100644 docs/html/globals_e.html create mode 100644 docs/html/globals_enum.html create mode 100644 docs/html/globals_eval.html create mode 100644 docs/html/globals_f.html create mode 100644 docs/html/globals_func.html create mode 100644 docs/html/globals_func.js create mode 100644 docs/html/globals_func_a.html create mode 100644 docs/html/globals_func_b.html create mode 100644 docs/html/globals_func_c.html create mode 100644 docs/html/globals_func_d.html create mode 100644 docs/html/globals_func_e.html create mode 100644 docs/html/globals_func_f.html create mode 100644 docs/html/globals_func_g.html create mode 100644 docs/html/globals_func_i.html create mode 100644 docs/html/globals_func_k.html create mode 100644 docs/html/globals_func_l.html create mode 100644 docs/html/globals_func_m.html create mode 100644 docs/html/globals_func_p.html create mode 100644 docs/html/globals_func_r.html create mode 100644 docs/html/globals_func_s.html create mode 100644 docs/html/globals_func_t.html create mode 100644 docs/html/globals_func_u.html create mode 100644 docs/html/globals_func_v.html create mode 100644 docs/html/globals_func_w.html create mode 100644 docs/html/globals_func_x.html create mode 100644 docs/html/globals_g.html create mode 100644 docs/html/globals_h.html create mode 100644 docs/html/globals_i.html create mode 100644 docs/html/globals_k.html create mode 100644 docs/html/globals_l.html create mode 100644 docs/html/globals_m.html create mode 100644 docs/html/globals_n.html create mode 100644 docs/html/globals_o.html create mode 100644 docs/html/globals_p.html create mode 100644 docs/html/globals_q.html create mode 100644 docs/html/globals_r.html create mode 100644 docs/html/globals_s.html create mode 100644 docs/html/globals_t.html create mode 100644 docs/html/globals_type.html create mode 100644 docs/html/globals_u.html create mode 100644 docs/html/globals_v.html create mode 100644 docs/html/globals_vars.html create mode 100644 docs/html/globals_vars.js create mode 100644 docs/html/globals_vars_a.html create mode 100644 docs/html/globals_vars_b.html create mode 100644 docs/html/globals_vars_c.html create mode 100644 docs/html/globals_vars_d.html create mode 100644 docs/html/globals_vars_e.html create mode 100644 docs/html/globals_vars_f.html create mode 100644 docs/html/globals_vars_g.html create mode 100644 docs/html/globals_vars_h.html create mode 100644 docs/html/globals_vars_i.html create mode 100644 docs/html/globals_vars_k.html create mode 100644 docs/html/globals_vars_l.html create mode 100644 docs/html/globals_vars_m.html create mode 100644 docs/html/globals_vars_n.html create mode 100644 docs/html/globals_vars_o.html create mode 100644 docs/html/globals_vars_p.html create mode 100644 docs/html/globals_vars_r.html create mode 100644 docs/html/globals_vars_s.html create mode 100644 docs/html/globals_vars_t.html create mode 100644 docs/html/globals_vars_w.html create mode 100644 docs/html/globals_vars_x.html create mode 100644 docs/html/globals_vars_y.html create mode 100644 docs/html/globals_w.html create mode 100644 docs/html/globals_x.html create mode 100644 docs/html/globals_y.html create mode 100644 docs/html/graph_legend.html create mode 100644 docs/html/graph_legend.md5 create mode 100644 docs/html/graph_legend.svg create mode 100644 docs/html/hierarchy.html create mode 100644 docs/html/hierarchy.js create mode 100644 docs/html/index.html create mode 100644 docs/html/inherit_graph_0.md5 create mode 100644 docs/html/inherit_graph_0.svg create mode 100644 docs/html/inherit_graph_1.md5 create mode 100644 docs/html/inherit_graph_1.svg create mode 100644 docs/html/inherit_graph_10.md5 create mode 100644 docs/html/inherit_graph_10.svg create mode 100644 docs/html/inherit_graph_11.md5 create mode 100644 docs/html/inherit_graph_11.svg create mode 100644 docs/html/inherit_graph_12.md5 create mode 100644 docs/html/inherit_graph_12.svg create mode 100644 docs/html/inherit_graph_13.md5 create mode 100644 docs/html/inherit_graph_13.svg create mode 100644 docs/html/inherit_graph_14.md5 create mode 100644 docs/html/inherit_graph_14.svg create mode 100644 docs/html/inherit_graph_15.md5 create mode 100644 docs/html/inherit_graph_15.svg create mode 100644 docs/html/inherit_graph_16.md5 create mode 100644 docs/html/inherit_graph_16.svg create mode 100644 docs/html/inherit_graph_17.md5 create mode 100644 docs/html/inherit_graph_17.svg create mode 100644 docs/html/inherit_graph_18.md5 create mode 100644 docs/html/inherit_graph_18.svg create mode 100644 docs/html/inherit_graph_19.md5 create mode 100644 docs/html/inherit_graph_19.svg create mode 100644 docs/html/inherit_graph_2.md5 create mode 100644 docs/html/inherit_graph_2.svg create mode 100644 docs/html/inherit_graph_20.md5 create mode 100644 docs/html/inherit_graph_20.svg create mode 100644 docs/html/inherit_graph_21.md5 create mode 100644 docs/html/inherit_graph_21.svg create mode 100644 docs/html/inherit_graph_22.md5 create mode 100644 docs/html/inherit_graph_22.svg create mode 100644 docs/html/inherit_graph_23.md5 create mode 100644 docs/html/inherit_graph_23.svg create mode 100644 docs/html/inherit_graph_24.md5 create mode 100644 docs/html/inherit_graph_24.svg create mode 100644 docs/html/inherit_graph_25.md5 create mode 100644 docs/html/inherit_graph_25.svg create mode 100644 docs/html/inherit_graph_26.md5 create mode 100644 docs/html/inherit_graph_26.svg create mode 100644 docs/html/inherit_graph_27.md5 create mode 100644 docs/html/inherit_graph_27.svg create mode 100644 docs/html/inherit_graph_28.md5 create mode 100644 docs/html/inherit_graph_28.svg create mode 100644 docs/html/inherit_graph_29.md5 create mode 100644 docs/html/inherit_graph_29.svg create mode 100644 docs/html/inherit_graph_3.md5 create mode 100644 docs/html/inherit_graph_3.svg create mode 100644 docs/html/inherit_graph_30.md5 create mode 100644 docs/html/inherit_graph_30.svg create mode 100644 docs/html/inherit_graph_31.md5 create mode 100644 docs/html/inherit_graph_31.svg create mode 100644 docs/html/inherit_graph_32.md5 create mode 100644 docs/html/inherit_graph_32.svg create mode 100644 docs/html/inherit_graph_33.md5 create mode 100644 docs/html/inherit_graph_33.svg create mode 100644 docs/html/inherit_graph_4.md5 create mode 100644 docs/html/inherit_graph_4.svg create mode 100644 docs/html/inherit_graph_5.md5 create mode 100644 docs/html/inherit_graph_5.svg create mode 100644 docs/html/inherit_graph_6.md5 create mode 100644 docs/html/inherit_graph_6.svg create mode 100644 docs/html/inherit_graph_7.md5 create mode 100644 docs/html/inherit_graph_7.svg create mode 100644 docs/html/inherit_graph_8.md5 create mode 100644 docs/html/inherit_graph_8.svg create mode 100644 docs/html/inherit_graph_9.md5 create mode 100644 docs/html/inherit_graph_9.svg create mode 100644 docs/html/inherits.html create mode 100644 docs/html/jquery.js create mode 100644 docs/html/led__strip_8h.html create mode 100644 docs/html/led__strip_8h.js create mode 100644 docs/html/led__strip_8h__dep__incl.md5 create mode 100644 docs/html/led__strip_8h__dep__incl.svg create mode 100644 docs/html/led__strip_8h__dep__incl_org.svg create mode 100644 docs/html/led__strip_8h__incl.md5 create mode 100644 docs/html/led__strip_8h__incl.svg create mode 100644 docs/html/led__strip_8h__incl_org.svg create mode 100644 docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 create mode 100644 docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg create mode 100644 docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg create mode 100644 docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph.md5 create mode 100644 docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph.svg create mode 100644 docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph_org.svg create mode 100644 docs/html/led__strip_8h_source.html create mode 100644 docs/html/led__strip__api_8c.html create mode 100644 docs/html/led__strip__api_8c.js create mode 100644 docs/html/led__strip__api_8c__incl.md5 create mode 100644 docs/html/led__strip__api_8c__incl.svg create mode 100644 docs/html/led__strip__api_8c__incl_org.svg create mode 100644 docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 create mode 100644 docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg create mode 100644 docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg create mode 100644 docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph.md5 create mode 100644 docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph.svg create mode 100644 docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph_org.svg create mode 100644 docs/html/led__strip__api_8c_source.html create mode 100644 docs/html/led__strip__interface_8h.html create mode 100644 docs/html/led__strip__interface_8h.js create mode 100644 docs/html/led__strip__interface_8h__dep__incl.md5 create mode 100644 docs/html/led__strip__interface_8h__dep__incl.svg create mode 100644 docs/html/led__strip__interface_8h__dep__incl_org.svg create mode 100644 docs/html/led__strip__interface_8h__incl.md5 create mode 100644 docs/html/led__strip__interface_8h__incl.svg create mode 100644 docs/html/led__strip__interface_8h__incl_org.svg create mode 100644 docs/html/led__strip__interface_8h_source.html create mode 100644 docs/html/led__strip__rmt_8h.html create mode 100644 docs/html/led__strip__rmt_8h.js create mode 100644 docs/html/led__strip__rmt_8h__dep__incl.md5 create mode 100644 docs/html/led__strip__rmt_8h__dep__incl.svg create mode 100644 docs/html/led__strip__rmt_8h__dep__incl_org.svg create mode 100644 docs/html/led__strip__rmt_8h__incl.md5 create mode 100644 docs/html/led__strip__rmt_8h__incl.svg create mode 100644 docs/html/led__strip__rmt_8h__incl_org.svg create mode 100644 docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph.md5 create mode 100644 docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph.svg create mode 100644 docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph_org.svg create mode 100644 docs/html/led__strip__rmt_8h_source.html create mode 100644 docs/html/led__strip__rmt__dev_8c.html create mode 100644 docs/html/led__strip__rmt__dev_8c.js create mode 100644 docs/html/led__strip__rmt__dev_8c__incl.md5 create mode 100644 docs/html/led__strip__rmt__dev_8c__incl.svg create mode 100644 docs/html/led__strip__rmt__dev_8c__incl_org.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev_8c_source.html create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c.html create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c.js create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c__incl.md5 create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c__incl.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c__incl_org.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph.md5 create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph_org.svg create mode 100644 docs/html/led__strip__rmt__dev__idf4_8c_source.html create mode 100644 docs/html/led__strip__rmt__encoder_8c.html create mode 100644 docs/html/led__strip__rmt__encoder_8c.js create mode 100644 docs/html/led__strip__rmt__encoder_8c__incl.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8c__incl.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c__incl_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8c_source.html create mode 100644 docs/html/led__strip__rmt__encoder_8h.html create mode 100644 docs/html/led__strip__rmt__encoder_8h.js create mode 100644 docs/html/led__strip__rmt__encoder_8h__dep__incl.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8h__dep__incl.svg create mode 100644 docs/html/led__strip__rmt__encoder_8h__dep__incl_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8h__incl.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8h__incl.svg create mode 100644 docs/html/led__strip__rmt__encoder_8h__incl_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph.svg create mode 100644 docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph.md5 create mode 100644 docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph.svg create mode 100644 docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph_org.svg create mode 100644 docs/html/led__strip__rmt__encoder_8h_source.html create mode 100644 docs/html/led__strip__spi_8h.html create mode 100644 docs/html/led__strip__spi_8h.js create mode 100644 docs/html/led__strip__spi_8h__dep__incl.md5 create mode 100644 docs/html/led__strip__spi_8h__dep__incl.svg create mode 100644 docs/html/led__strip__spi_8h__dep__incl_org.svg create mode 100644 docs/html/led__strip__spi_8h__incl.md5 create mode 100644 docs/html/led__strip__spi_8h__incl.svg create mode 100644 docs/html/led__strip__spi_8h__incl_org.svg create mode 100644 docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph.md5 create mode 100644 docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph.svg create mode 100644 docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph_org.svg create mode 100644 docs/html/led__strip__spi_8h_source.html create mode 100644 docs/html/led__strip__spi__dev_8c.html create mode 100644 docs/html/led__strip__spi__dev_8c.js create mode 100644 docs/html/led__strip__spi__dev_8c__incl.md5 create mode 100644 docs/html/led__strip__spi__dev_8c__incl.svg create mode 100644 docs/html/led__strip__spi__dev_8c__incl_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph.md5 create mode 100644 docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph.svg create mode 100644 docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph_org.svg create mode 100644 docs/html/led__strip__spi__dev_8c_source.html create mode 100644 docs/html/led__strip__types_8h.html create mode 100644 docs/html/led__strip__types_8h.js create mode 100644 docs/html/led__strip__types_8h__dep__incl.md5 create mode 100644 docs/html/led__strip__types_8h__dep__incl.svg create mode 100644 docs/html/led__strip__types_8h__dep__incl_org.svg create mode 100644 docs/html/led__strip__types_8h__incl.md5 create mode 100644 docs/html/led__strip__types_8h__incl.svg create mode 100644 docs/html/led__strip__types_8h__incl_org.svg create mode 100644 docs/html/led__strip__types_8h_source.html create mode 100644 docs/html/main_2main_8c.html create mode 100644 docs/html/main_2main_8c.js create mode 100644 docs/html/main_2main_8c__incl.md5 create mode 100644 docs/html/main_2main_8c__incl.svg create mode 100644 docs/html/main_2main_8c__incl_org.svg create mode 100644 docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph.md5 create mode 100644 docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph.svg create mode 100644 docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph.md5 create mode 100644 docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph.svg create mode 100644 docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 create mode 100644 docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg create mode 100644 docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg create mode 100644 docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph.md5 create mode 100644 docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph.svg create mode 100644 docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph.md5 create mode 100644 docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph.svg create mode 100644 docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph_org.svg create mode 100644 docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph.md5 create mode 100644 docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph.svg create mode 100644 docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph.md5 create mode 100644 docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph.svg create mode 100644 docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph.md5 create mode 100644 docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph.svg create mode 100644 docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph_org.svg create mode 100644 docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph.md5 create mode 100644 docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph.svg create mode 100644 docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph.md5 create mode 100644 docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph.svg create mode 100644 docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph.md5 create mode 100644 docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph.svg create mode 100644 docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph.md5 create mode 100644 docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph.svg create mode 100644 docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph_org.svg create mode 100644 docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph.md5 create mode 100644 docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph.svg create mode 100644 docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph.md5 create mode 100644 docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph.svg create mode 100644 docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph_org.svg create mode 100644 docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph.md5 create mode 100644 docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph.svg create mode 100644 docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph.md5 create mode 100644 docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph.svg create mode 100644 docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph_org.svg create mode 100644 docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph.md5 create mode 100644 docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph.svg create mode 100644 docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph.md5 create mode 100644 docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph.svg create mode 100644 docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph.md5 create mode 100644 docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph.svg create mode 100644 docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph.md5 create mode 100644 docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph.svg create mode 100644 docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph_org.svg create mode 100644 docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph.md5 create mode 100644 docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph.svg create mode 100644 docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph_org.svg create mode 100644 docs/html/main_2main_8c_source.html create mode 100644 docs/html/mat_8cpp.html create mode 100644 docs/html/mat_8cpp.js create mode 100644 docs/html/mat_8cpp__incl.md5 create mode 100644 docs/html/mat_8cpp__incl.svg create mode 100644 docs/html/mat_8cpp__incl_org.svg create mode 100644 docs/html/mat_8cpp_source.html create mode 100644 docs/html/mat_8h.html create mode 100644 docs/html/mat_8h.js create mode 100644 docs/html/mat_8h__dep__incl.md5 create mode 100644 docs/html/mat_8h__dep__incl.svg create mode 100644 docs/html/mat_8h__dep__incl_org.svg create mode 100644 docs/html/mat_8h__incl.md5 create mode 100644 docs/html/mat_8h__incl.svg create mode 100644 docs/html/mat_8h__incl_org.svg create mode 100644 docs/html/mat_8h_source.html create mode 100644 docs/html/menu.js create mode 100644 docs/html/menudata.js create mode 100644 docs/html/namespacedspm.html create mode 100644 docs/html/namespacedspm.js create mode 100644 docs/html/namespacemembers.html create mode 100644 docs/html/namespacemembers_func.html create mode 100644 docs/html/namespaces.html create mode 100644 docs/html/namespaces_dup.js create mode 100644 docs/html/navtree.css create mode 100644 docs/html/navtree.js create mode 100644 docs/html/navtreedata.js create mode 100644 docs/html/navtreeindex0.js create mode 100644 docs/html/navtreeindex1.js create mode 100644 docs/html/navtreeindex10.js create mode 100644 docs/html/navtreeindex2.js create mode 100644 docs/html/navtreeindex3.js create mode 100644 docs/html/navtreeindex4.js create mode 100644 docs/html/navtreeindex5.js create mode 100644 docs/html/navtreeindex6.js create mode 100644 docs/html/navtreeindex7.js create mode 100644 docs/html/navtreeindex8.js create mode 100644 docs/html/navtreeindex9.js create mode 100644 docs/html/sdkconfig_8h.html create mode 100644 docs/html/sdkconfig_8h_source.html create mode 100644 docs/html/search/all_0.js create mode 100644 docs/html/search/all_1.js create mode 100644 docs/html/search/all_10.js create mode 100644 docs/html/search/all_11.js create mode 100644 docs/html/search/all_12.js create mode 100644 docs/html/search/all_13.js create mode 100644 docs/html/search/all_14.js create mode 100644 docs/html/search/all_15.js create mode 100644 docs/html/search/all_16.js create mode 100644 docs/html/search/all_17.js create mode 100644 docs/html/search/all_18.js create mode 100644 docs/html/search/all_19.js create mode 100644 docs/html/search/all_2.js create mode 100644 docs/html/search/all_3.js create mode 100644 docs/html/search/all_4.js create mode 100644 docs/html/search/all_5.js create mode 100644 docs/html/search/all_6.js create mode 100644 docs/html/search/all_7.js create mode 100644 docs/html/search/all_8.js create mode 100644 docs/html/search/all_9.js create mode 100644 docs/html/search/all_a.js create mode 100644 docs/html/search/all_b.js create mode 100644 docs/html/search/all_c.js create mode 100644 docs/html/search/all_d.js create mode 100644 docs/html/search/all_e.js create mode 100644 docs/html/search/all_f.js create mode 100644 docs/html/search/classes_0.js create mode 100644 docs/html/search/classes_1.js create mode 100644 docs/html/search/classes_2.js create mode 100644 docs/html/search/classes_3.js create mode 100644 docs/html/search/classes_4.js create mode 100644 docs/html/search/classes_5.js create mode 100644 docs/html/search/classes_6.js create mode 100644 docs/html/search/classes_7.js create mode 100644 docs/html/search/classes_8.js create mode 100644 docs/html/search/classes_9.js create mode 100644 docs/html/search/classes_a.js create mode 100644 docs/html/search/classes_b.js create mode 100644 docs/html/search/defines_0.js create mode 100644 docs/html/search/defines_1.js create mode 100644 docs/html/search/defines_10.js create mode 100644 docs/html/search/defines_11.js create mode 100644 docs/html/search/defines_12.js create mode 100644 docs/html/search/defines_13.js create mode 100644 docs/html/search/defines_14.js create mode 100644 docs/html/search/defines_15.js create mode 100644 docs/html/search/defines_16.js create mode 100644 docs/html/search/defines_2.js create mode 100644 docs/html/search/defines_3.js create mode 100644 docs/html/search/defines_4.js create mode 100644 docs/html/search/defines_5.js create mode 100644 docs/html/search/defines_6.js create mode 100644 docs/html/search/defines_7.js create mode 100644 docs/html/search/defines_8.js create mode 100644 docs/html/search/defines_9.js create mode 100644 docs/html/search/defines_a.js create mode 100644 docs/html/search/defines_b.js create mode 100644 docs/html/search/defines_c.js create mode 100644 docs/html/search/defines_d.js create mode 100644 docs/html/search/defines_e.js create mode 100644 docs/html/search/defines_f.js create mode 100644 docs/html/search/enums_0.js create mode 100644 docs/html/search/enums_1.js create mode 100644 docs/html/search/enums_2.js create mode 100644 docs/html/search/enums_3.js create mode 100644 docs/html/search/enums_4.js create mode 100644 docs/html/search/enums_5.js create mode 100644 docs/html/search/enums_6.js create mode 100644 docs/html/search/enumvalues_0.js create mode 100644 docs/html/search/enumvalues_1.js create mode 100644 docs/html/search/enumvalues_2.js create mode 100644 docs/html/search/enumvalues_3.js create mode 100644 docs/html/search/enumvalues_4.js create mode 100644 docs/html/search/enumvalues_5.js create mode 100644 docs/html/search/enumvalues_6.js create mode 100644 docs/html/search/enumvalues_7.js create mode 100644 docs/html/search/enumvalues_8.js create mode 100644 docs/html/search/enumvalues_9.js create mode 100644 docs/html/search/files_0.js create mode 100644 docs/html/search/files_1.js create mode 100644 docs/html/search/files_2.js create mode 100644 docs/html/search/files_3.js create mode 100644 docs/html/search/files_4.js create mode 100644 docs/html/search/files_5.js create mode 100644 docs/html/search/files_6.js create mode 100644 docs/html/search/files_7.js create mode 100644 docs/html/search/files_8.js create mode 100644 docs/html/search/files_9.js create mode 100644 docs/html/search/files_a.js create mode 100644 docs/html/search/functions_0.js create mode 100644 docs/html/search/functions_1.js create mode 100644 docs/html/search/functions_10.js create mode 100644 docs/html/search/functions_11.js create mode 100644 docs/html/search/functions_12.js create mode 100644 docs/html/search/functions_13.js create mode 100644 docs/html/search/functions_14.js create mode 100644 docs/html/search/functions_15.js create mode 100644 docs/html/search/functions_16.js create mode 100644 docs/html/search/functions_17.js create mode 100644 docs/html/search/functions_2.js create mode 100644 docs/html/search/functions_3.js create mode 100644 docs/html/search/functions_4.js create mode 100644 docs/html/search/functions_5.js create mode 100644 docs/html/search/functions_6.js create mode 100644 docs/html/search/functions_7.js create mode 100644 docs/html/search/functions_8.js create mode 100644 docs/html/search/functions_9.js create mode 100644 docs/html/search/functions_a.js create mode 100644 docs/html/search/functions_b.js create mode 100644 docs/html/search/functions_c.js create mode 100644 docs/html/search/functions_d.js create mode 100644 docs/html/search/functions_e.js create mode 100644 docs/html/search/functions_f.js create mode 100644 docs/html/search/namespaces_0.js create mode 100644 docs/html/search/search.css create mode 100644 docs/html/search/search.js create mode 100644 docs/html/search/searchdata.js create mode 100644 docs/html/search/typedefs_0.js create mode 100644 docs/html/search/typedefs_1.js create mode 100644 docs/html/search/typedefs_2.js create mode 100644 docs/html/search/typedefs_3.js create mode 100644 docs/html/search/typedefs_4.js create mode 100644 docs/html/search/typedefs_5.js create mode 100644 docs/html/search/typedefs_6.js create mode 100644 docs/html/search/typedefs_7.js create mode 100644 docs/html/search/typedefs_8.js create mode 100644 docs/html/search/typedefs_9.js create mode 100644 docs/html/search/variables_0.js create mode 100644 docs/html/search/variables_1.js create mode 100644 docs/html/search/variables_10.js create mode 100644 docs/html/search/variables_11.js create mode 100644 docs/html/search/variables_12.js create mode 100644 docs/html/search/variables_13.js create mode 100644 docs/html/search/variables_14.js create mode 100644 docs/html/search/variables_15.js create mode 100644 docs/html/search/variables_16.js create mode 100644 docs/html/search/variables_17.js create mode 100644 docs/html/search/variables_18.js create mode 100644 docs/html/search/variables_2.js create mode 100644 docs/html/search/variables_3.js create mode 100644 docs/html/search/variables_4.js create mode 100644 docs/html/search/variables_5.js create mode 100644 docs/html/search/variables_6.js create mode 100644 docs/html/search/variables_7.js create mode 100644 docs/html/search/variables_8.js create mode 100644 docs/html/search/variables_9.js create mode 100644 docs/html/search/variables_a.js create mode 100644 docs/html/search/variables_b.js create mode 100644 docs/html/search/variables_c.js create mode 100644 docs/html/search/variables_d.js create mode 100644 docs/html/search/variables_e.js create mode 100644 docs/html/search/variables_f.js create mode 100644 docs/html/structcdcacm__event__line__coding__changed__data__t.html create mode 100644 docs/html/structcdcacm__event__line__coding__changed__data__t.js create mode 100644 docs/html/structcdcacm__event__line__state__changed__data__t.html create mode 100644 docs/html/structcdcacm__event__line__state__changed__data__t.js create mode 100644 docs/html/structcdcacm__event__rx__wanted__char__data__t.html create mode 100644 docs/html/structcdcacm__event__rx__wanted__char__data__t.js create mode 100644 docs/html/structcdcacm__event__t.html create mode 100644 docs/html/structcdcacm__event__t.js create mode 100644 docs/html/structcdcacm__event__t__coll__graph.md5 create mode 100644 docs/html/structcdcacm__event__t__coll__graph.svg create mode 100644 docs/html/structcdcacm__event__t__coll__graph_org.svg create mode 100644 docs/html/structconsole__handle__t.html create mode 100644 docs/html/structconsole__handle__t.js create mode 100644 docs/html/structcplx__sig__s.html create mode 100644 docs/html/structcplx__sig__s.js create mode 100644 docs/html/structdspm_1_1_mat_1_1_rect.html create mode 100644 docs/html/structdspm_1_1_mat_1_1_rect.js create mode 100644 docs/html/structdsps__resample__mr__s.html create mode 100644 docs/html/structdsps__resample__mr__s.js create mode 100644 docs/html/structdsps__resample__ph__s.html create mode 100644 docs/html/structdsps__resample__ph__s.js create mode 100644 docs/html/structesp__tusb__cdc__t.html create mode 100644 docs/html/structesp__tusb__cdc__t.js create mode 100644 docs/html/structesp__tusb__cdcacm__t.html create mode 100644 docs/html/structesp__tusb__cdcacm__t.js create mode 100644 docs/html/structesp__tusb__cdcacm__t__coll__graph.md5 create mode 100644 docs/html/structesp__tusb__cdcacm__t__coll__graph.svg create mode 100644 docs/html/structesp__tusb__cdcacm__t__coll__graph_org.svg create mode 100644 docs/html/structfir__f32__s.html create mode 100644 docs/html/structfir__f32__s.js create mode 100644 docs/html/structfir__s16__s.html create mode 100644 docs/html/structfir__s16__s.js create mode 100644 docs/html/structframe__wire__t.html create mode 100644 docs/html/structframe__wire__t.js create mode 100644 docs/html/structimage2d__s.html create mode 100644 docs/html/structimage2d__s.js create mode 100644 docs/html/structimage__3d__matrix__kalman__s.html create mode 100644 docs/html/structimage__3d__matrix__kalman__s.js create mode 100644 docs/html/structimage__3d__matrix__kalman__s__coll__graph.md5 create mode 100644 docs/html/structimage__3d__matrix__kalman__s__coll__graph.svg create mode 100644 docs/html/structimage__3d__matrix__kalman__s__coll__graph_org.svg create mode 100644 docs/html/structimage__3d__matrix__s.html create mode 100644 docs/html/structimage__3d__matrix__s.js create mode 100644 docs/html/structled__strip__config__t.html create mode 100644 docs/html/structled__strip__config__t.js create mode 100644 docs/html/structled__strip__encoder__config__t.html create mode 100644 docs/html/structled__strip__encoder__config__t.js create mode 100644 docs/html/structled__strip__rmt__config__t.html create mode 100644 docs/html/structled__strip__rmt__config__t.js create mode 100644 docs/html/structled__strip__rmt__obj.html create mode 100644 docs/html/structled__strip__rmt__obj.js create mode 100644 docs/html/structled__strip__rmt__obj__coll__graph.md5 create mode 100644 docs/html/structled__strip__rmt__obj__coll__graph.svg create mode 100644 docs/html/structled__strip__rmt__obj__coll__graph_org.svg create mode 100644 docs/html/structled__strip__spi__config__t.html create mode 100644 docs/html/structled__strip__spi__config__t.js create mode 100644 docs/html/structled__strip__spi__obj.html create mode 100644 docs/html/structled__strip__spi__obj.js create mode 100644 docs/html/structled__strip__spi__obj__coll__graph.md5 create mode 100644 docs/html/structled__strip__spi__obj__coll__graph.svg create mode 100644 docs/html/structled__strip__spi__obj__coll__graph_org.svg create mode 100644 docs/html/structled__strip__t.html create mode 100644 docs/html/structled__strip__t.js create mode 100644 docs/html/structrmt__led__strip__encoder__t.html create mode 100644 docs/html/structrmt__led__strip__encoder__t.js create mode 100644 docs/html/structtinyusb__config__cdc__t.html create mode 100644 docs/html/structtinyusb__config__cdc__t.js create mode 100644 docs/html/structtinyusb__config__cdcacm__t.html create mode 100644 docs/html/structtinyusb__config__cdcacm__t.js create mode 100644 docs/html/structtinyusb__config__cdcacm__t__coll__graph.md5 create mode 100644 docs/html/structtinyusb__config__cdcacm__t__coll__graph.svg create mode 100644 docs/html/structtinyusb__config__cdcacm__t__coll__graph_org.svg create mode 100644 docs/html/structtinyusb__config__t.html create mode 100644 docs/html/structtinyusb__config__t.js create mode 100644 docs/html/structvfs__tinyusb__t.html create mode 100644 docs/html/structvfs__tinyusb__t.js create mode 100644 docs/html/structwave__gen__config__t.html create mode 100644 docs/html/structwave__gen__config__t.js create mode 100644 docs/html/svg.min.js create mode 100644 docs/html/tabs.css create mode 100644 docs/html/test__fft2r_8c.html create mode 100644 docs/html/test__fft2r_8c.js create mode 100644 docs/html/test__fft2r_8c__incl.md5 create mode 100644 docs/html/test__fft2r_8c__incl.svg create mode 100644 docs/html/test__fft2r_8c__incl_org.svg create mode 100644 docs/html/test__fft2r_8c_a06b268b0fdcf14f32fb97b4fa648370c_icgraph.md5 create mode 100644 docs/html/test__fft2r_8c_a06b268b0fdcf14f32fb97b4fa648370c_icgraph.svg create mode 100644 docs/html/test__fft2r_8c_a06b268b0fdcf14f32fb97b4fa648370c_icgraph_org.svg create mode 100644 docs/html/test__fft2r_8c_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.md5 create mode 100644 docs/html/test__fft2r_8c_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.svg create mode 100644 docs/html/test__fft2r_8c_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph_org.svg create mode 100644 docs/html/test__fft2r_8c_a58855e560e0563aa519b012dbdcbaec2_icgraph.md5 create mode 100644 docs/html/test__fft2r_8c_a58855e560e0563aa519b012dbdcbaec2_icgraph.svg create mode 100644 docs/html/test__fft2r_8c_a58855e560e0563aa519b012dbdcbaec2_icgraph_org.svg create mode 100644 docs/html/test__fft2r_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.md5 create mode 100644 docs/html/test__fft2r_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.svg create mode 100644 docs/html/test__fft2r_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph_org.svg create mode 100644 docs/html/test__fft2r_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.md5 create mode 100644 docs/html/test__fft2r_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.svg create mode 100644 docs/html/test__fft2r_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph_org.svg create mode 100644 docs/html/test__fft2r_8c_af5fa635d13bdde8b0ccbf5de160a14cf_icgraph.md5 create mode 100644 docs/html/test__fft2r_8c_af5fa635d13bdde8b0ccbf5de160a14cf_icgraph.svg create mode 100644 docs/html/test__fft2r_8c_af5fa635d13bdde8b0ccbf5de160a14cf_icgraph_org.svg create mode 100644 docs/html/test__fft2r_8c_source.html create mode 100644 docs/html/test__fir_8c.html create mode 100644 docs/html/test__fir_8c.js create mode 100644 docs/html/test__fir_8c__incl.md5 create mode 100644 docs/html/test__fir_8c__incl.svg create mode 100644 docs/html/test__fir_8c__incl_org.svg create mode 100644 docs/html/test__fir_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.md5 create mode 100644 docs/html/test__fir_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.svg create mode 100644 docs/html/test__fir_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph_org.svg create mode 100644 docs/html/test__fir_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.md5 create mode 100644 docs/html/test__fir_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.svg create mode 100644 docs/html/test__fir_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph_org.svg create mode 100644 docs/html/test__fir_8c_source.html create mode 100644 docs/html/test__iir__biquad_8c.html create mode 100644 docs/html/test__iir__biquad_8c.js create mode 100644 docs/html/test__iir__biquad_8c__incl.md5 create mode 100644 docs/html/test__iir__biquad_8c__incl.svg create mode 100644 docs/html/test__iir__biquad_8c__incl_org.svg create mode 100644 docs/html/test__iir__biquad_8c_a06b268b0fdcf14f32fb97b4fa648370c_icgraph.md5 create mode 100644 docs/html/test__iir__biquad_8c_a06b268b0fdcf14f32fb97b4fa648370c_icgraph.svg create mode 100644 docs/html/test__iir__biquad_8c_a06b268b0fdcf14f32fb97b4fa648370c_icgraph_org.svg create mode 100644 docs/html/test__iir__biquad_8c_a846101c79b9535501f44ab79b1ef10fc_icgraph.md5 create mode 100644 docs/html/test__iir__biquad_8c_a846101c79b9535501f44ab79b1ef10fc_icgraph.svg create mode 100644 docs/html/test__iir__biquad_8c_a846101c79b9535501f44ab79b1ef10fc_icgraph_org.svg create mode 100644 docs/html/test__iir__biquad_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.md5 create mode 100644 docs/html/test__iir__biquad_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.svg create mode 100644 docs/html/test__iir__biquad_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph_org.svg create mode 100644 docs/html/test__iir__biquad_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.md5 create mode 100644 docs/html/test__iir__biquad_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.svg create mode 100644 docs/html/test__iir__biquad_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph_org.svg create mode 100644 docs/html/test__iir__biquad_8c_af5fa635d13bdde8b0ccbf5de160a14cf_icgraph.md5 create mode 100644 docs/html/test__iir__biquad_8c_af5fa635d13bdde8b0ccbf5de160a14cf_icgraph.svg create mode 100644 docs/html/test__iir__biquad_8c_af5fa635d13bdde8b0ccbf5de160a14cf_icgraph_org.svg create mode 100644 docs/html/test__iir__biquad_8c_source.html create mode 100644 docs/html/test__mmult_8c.html create mode 100644 docs/html/test__mmult_8c.js create mode 100644 docs/html/test__mmult_8c__incl.md5 create mode 100644 docs/html/test__mmult_8c__incl.svg create mode 100644 docs/html/test__mmult_8c__incl_org.svg create mode 100644 docs/html/test__mmult_8c_a06b268b0fdcf14f32fb97b4fa648370c_icgraph.md5 create mode 100644 docs/html/test__mmult_8c_a06b268b0fdcf14f32fb97b4fa648370c_icgraph.svg create mode 100644 docs/html/test__mmult_8c_a06b268b0fdcf14f32fb97b4fa648370c_icgraph_org.svg create mode 100644 docs/html/test__mmult_8c_a29623517f682d2bf709ad6942132c11d_cgraph.md5 create mode 100644 docs/html/test__mmult_8c_a29623517f682d2bf709ad6942132c11d_cgraph.svg create mode 100644 docs/html/test__mmult_8c_a29623517f682d2bf709ad6942132c11d_cgraph_org.svg create mode 100644 docs/html/test__mmult_8c_a29623517f682d2bf709ad6942132c11d_icgraph.md5 create mode 100644 docs/html/test__mmult_8c_a29623517f682d2bf709ad6942132c11d_icgraph.svg create mode 100644 docs/html/test__mmult_8c_a29623517f682d2bf709ad6942132c11d_icgraph_org.svg create mode 100644 docs/html/test__mmult_8c_af5fa635d13bdde8b0ccbf5de160a14cf_icgraph.md5 create mode 100644 docs/html/test__mmult_8c_af5fa635d13bdde8b0ccbf5de160a14cf_icgraph.svg create mode 100644 docs/html/test__mmult_8c_af5fa635d13bdde8b0ccbf5de160a14cf_icgraph_org.svg create mode 100644 docs/html/test__mmult_8c_source.html create mode 100644 docs/html/tinyusb_8c.html create mode 100644 docs/html/tinyusb_8c.js create mode 100644 docs/html/tinyusb_8c__incl.md5 create mode 100644 docs/html/tinyusb_8c__incl.svg create mode 100644 docs/html/tinyusb_8c__incl_org.svg create mode 100644 docs/html/tinyusb_8c_a71b7fa1b1d97afa9bda62b9c2eff370e_cgraph.md5 create mode 100644 docs/html/tinyusb_8c_a71b7fa1b1d97afa9bda62b9c2eff370e_cgraph.svg create mode 100644 docs/html/tinyusb_8c_a71b7fa1b1d97afa9bda62b9c2eff370e_cgraph_org.svg create mode 100644 docs/html/tinyusb_8c_a71b7fa1b1d97afa9bda62b9c2eff370e_icgraph.md5 create mode 100644 docs/html/tinyusb_8c_a71b7fa1b1d97afa9bda62b9c2eff370e_icgraph.svg create mode 100644 docs/html/tinyusb_8c_a71b7fa1b1d97afa9bda62b9c2eff370e_icgraph_org.svg create mode 100644 docs/html/tinyusb_8c_source.html create mode 100644 docs/html/tinyusb_8h.html create mode 100644 docs/html/tinyusb_8h.js create mode 100644 docs/html/tinyusb_8h__dep__incl.md5 create mode 100644 docs/html/tinyusb_8h__dep__incl.svg create mode 100644 docs/html/tinyusb_8h__dep__incl_org.svg create mode 100644 docs/html/tinyusb_8h__incl.md5 create mode 100644 docs/html/tinyusb_8h__incl.svg create mode 100644 docs/html/tinyusb_8h__incl_org.svg create mode 100644 docs/html/tinyusb_8h_a71b7fa1b1d97afa9bda62b9c2eff370e_cgraph.md5 create mode 100644 docs/html/tinyusb_8h_a71b7fa1b1d97afa9bda62b9c2eff370e_cgraph.svg create mode 100644 docs/html/tinyusb_8h_a71b7fa1b1d97afa9bda62b9c2eff370e_cgraph_org.svg create mode 100644 docs/html/tinyusb_8h_a71b7fa1b1d97afa9bda62b9c2eff370e_icgraph.md5 create mode 100644 docs/html/tinyusb_8h_a71b7fa1b1d97afa9bda62b9c2eff370e_icgraph.svg create mode 100644 docs/html/tinyusb_8h_a71b7fa1b1d97afa9bda62b9c2eff370e_icgraph_org.svg create mode 100644 docs/html/tinyusb_8h_source.html create mode 100644 docs/html/tinyusb__types_8h.html create mode 100644 docs/html/tinyusb__types_8h.js create mode 100644 docs/html/tinyusb__types_8h__dep__incl.md5 create mode 100644 docs/html/tinyusb__types_8h__dep__incl.svg create mode 100644 docs/html/tinyusb__types_8h__dep__incl_org.svg create mode 100644 docs/html/tinyusb__types_8h_source.html create mode 100644 docs/html/tusb__cdc__acm_8c.html create mode 100644 docs/html/tusb__cdc__acm_8c.js create mode 100644 docs/html/tusb__cdc__acm_8c__incl.md5 create mode 100644 docs/html/tusb__cdc__acm_8c__incl.svg create mode 100644 docs/html/tusb__cdc__acm_8c__incl_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a03c9cbb583c44ea89a0d8c052b886fe6_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a03c9cbb583c44ea89a0d8c052b886fe6_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a03c9cbb583c44ea89a0d8c052b886fe6_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a0a6e2f846a55765e889741d4f17c60e5_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a0a6e2f846a55765e889741d4f17c60e5_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a0a6e2f846a55765e889741d4f17c60e5_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a0f1bac102ae6fce8d7211062a899e4b5_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a0f1bac102ae6fce8d7211062a899e4b5_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a0f1bac102ae6fce8d7211062a899e4b5_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a0f1bac102ae6fce8d7211062a899e4b5_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a0f1bac102ae6fce8d7211062a899e4b5_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a0f1bac102ae6fce8d7211062a899e4b5_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a16fd5ec08a1f0a7451844464121dcee5_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a16fd5ec08a1f0a7451844464121dcee5_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a16fd5ec08a1f0a7451844464121dcee5_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a486320904bb5b4cdc3fe0ab8ed1a6f19_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a486320904bb5b4cdc3fe0ab8ed1a6f19_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a486320904bb5b4cdc3fe0ab8ed1a6f19_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a486320904bb5b4cdc3fe0ab8ed1a6f19_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a486320904bb5b4cdc3fe0ab8ed1a6f19_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a486320904bb5b4cdc3fe0ab8ed1a6f19_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a50069fbe03d1e8eca477192605031e04_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a50069fbe03d1e8eca477192605031e04_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a50069fbe03d1e8eca477192605031e04_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a5d9795db7d6eb1685526eb07ecf0c6e6_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a5d9795db7d6eb1685526eb07ecf0c6e6_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a5d9795db7d6eb1685526eb07ecf0c6e6_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a659f81b1f0fd5b43eedd4b8bca19e427_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a659f81b1f0fd5b43eedd4b8bca19e427_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a659f81b1f0fd5b43eedd4b8bca19e427_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a659f81b1f0fd5b43eedd4b8bca19e427_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a659f81b1f0fd5b43eedd4b8bca19e427_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a659f81b1f0fd5b43eedd4b8bca19e427_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a741ac1f2bfdd0dbf9824ff83c025ded2_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a741ac1f2bfdd0dbf9824ff83c025ded2_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a741ac1f2bfdd0dbf9824ff83c025ded2_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a741ac1f2bfdd0dbf9824ff83c025ded2_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a741ac1f2bfdd0dbf9824ff83c025ded2_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a741ac1f2bfdd0dbf9824ff83c025ded2_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a7778a4c7a5f7c7f5d1324b7a8f67c682_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a7778a4c7a5f7c7f5d1324b7a8f67c682_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a7778a4c7a5f7c7f5d1324b7a8f67c682_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a7778a4c7a5f7c7f5d1324b7a8f67c682_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a7778a4c7a5f7c7f5d1324b7a8f67c682_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a7778a4c7a5f7c7f5d1324b7a8f67c682_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a8a10535dfe03a33af833f55b6ba33cfb_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a8a10535dfe03a33af833f55b6ba33cfb_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a8a10535dfe03a33af833f55b6ba33cfb_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a8abb48ab2de042c842086bbd8e009993_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a8abb48ab2de042c842086bbd8e009993_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a8abb48ab2de042c842086bbd8e009993_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a8be33d0f57d8df1777b2fbd5defd22ca_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_a8be33d0f57d8df1777b2fbd5defd22ca_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_a8be33d0f57d8df1777b2fbd5defd22ca_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_aa240a058986c6de30a807ec424e6ab80_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_aa240a058986c6de30a807ec424e6ab80_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_aa240a058986c6de30a807ec424e6ab80_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_aa240a058986c6de30a807ec424e6ab80_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_aa240a058986c6de30a807ec424e6ab80_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_aa240a058986c6de30a807ec424e6ab80_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ab24ee802c4641898cbc524df38a75dc1_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_ab24ee802c4641898cbc524df38a75dc1_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ab24ee802c4641898cbc524df38a75dc1_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ab24ee802c4641898cbc524df38a75dc1_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_ab24ee802c4641898cbc524df38a75dc1_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ab24ee802c4641898cbc524df38a75dc1_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae0f3d93ac9658bf59720ce4edb7a2fbb_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_ae0f3d93ac9658bf59720ce4edb7a2fbb_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae0f3d93ac9658bf59720ce4edb7a2fbb_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae29627ebf56d365729a287215fe98afe_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_ae29627ebf56d365729a287215fe98afe_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae29627ebf56d365729a287215fe98afe_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae29627ebf56d365729a287215fe98afe_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_ae29627ebf56d365729a287215fe98afe_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae29627ebf56d365729a287215fe98afe_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae56eee472acd5c32ac333dc551fd1a84_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_ae56eee472acd5c32ac333dc551fd1a84_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae56eee472acd5c32ac333dc551fd1a84_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae56eee472acd5c32ac333dc551fd1a84_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_ae56eee472acd5c32ac333dc551fd1a84_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_ae56eee472acd5c32ac333dc551fd1a84_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_afe305c04d317e949f013f6d03b8d9f8c_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8c_afe305c04d317e949f013f6d03b8d9f8c_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8c_afe305c04d317e949f013f6d03b8d9f8c_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8c_source.html create mode 100644 docs/html/tusb__cdc__acm_8h.html create mode 100644 docs/html/tusb__cdc__acm_8h.js create mode 100644 docs/html/tusb__cdc__acm_8h__dep__incl.md5 create mode 100644 docs/html/tusb__cdc__acm_8h__dep__incl.svg create mode 100644 docs/html/tusb__cdc__acm_8h__dep__incl_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h__incl.md5 create mode 100644 docs/html/tusb__cdc__acm_8h__incl.svg create mode 100644 docs/html/tusb__cdc__acm_8h__incl_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a0f1bac102ae6fce8d7211062a899e4b5_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_a0f1bac102ae6fce8d7211062a899e4b5_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a0f1bac102ae6fce8d7211062a899e4b5_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a0f1bac102ae6fce8d7211062a899e4b5_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_a0f1bac102ae6fce8d7211062a899e4b5_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a0f1bac102ae6fce8d7211062a899e4b5_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a486320904bb5b4cdc3fe0ab8ed1a6f19_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_a486320904bb5b4cdc3fe0ab8ed1a6f19_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a486320904bb5b4cdc3fe0ab8ed1a6f19_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a486320904bb5b4cdc3fe0ab8ed1a6f19_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_a486320904bb5b4cdc3fe0ab8ed1a6f19_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a486320904bb5b4cdc3fe0ab8ed1a6f19_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a659f81b1f0fd5b43eedd4b8bca19e427_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_a659f81b1f0fd5b43eedd4b8bca19e427_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a659f81b1f0fd5b43eedd4b8bca19e427_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a659f81b1f0fd5b43eedd4b8bca19e427_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_a659f81b1f0fd5b43eedd4b8bca19e427_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a659f81b1f0fd5b43eedd4b8bca19e427_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a8be33d0f57d8df1777b2fbd5defd22ca_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_a8be33d0f57d8df1777b2fbd5defd22ca_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_a8be33d0f57d8df1777b2fbd5defd22ca_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_aa240a058986c6de30a807ec424e6ab80_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_aa240a058986c6de30a807ec424e6ab80_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_aa240a058986c6de30a807ec424e6ab80_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_aa240a058986c6de30a807ec424e6ab80_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_aa240a058986c6de30a807ec424e6ab80_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_aa240a058986c6de30a807ec424e6ab80_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae0f3d93ac9658bf59720ce4edb7a2fbb_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_ae0f3d93ac9658bf59720ce4edb7a2fbb_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae0f3d93ac9658bf59720ce4edb7a2fbb_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae29627ebf56d365729a287215fe98afe_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_ae29627ebf56d365729a287215fe98afe_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae29627ebf56d365729a287215fe98afe_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae29627ebf56d365729a287215fe98afe_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_ae29627ebf56d365729a287215fe98afe_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae29627ebf56d365729a287215fe98afe_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae56eee472acd5c32ac333dc551fd1a84_cgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_ae56eee472acd5c32ac333dc551fd1a84_cgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae56eee472acd5c32ac333dc551fd1a84_cgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae56eee472acd5c32ac333dc551fd1a84_icgraph.md5 create mode 100644 docs/html/tusb__cdc__acm_8h_ae56eee472acd5c32ac333dc551fd1a84_icgraph.svg create mode 100644 docs/html/tusb__cdc__acm_8h_ae56eee472acd5c32ac333dc551fd1a84_icgraph_org.svg create mode 100644 docs/html/tusb__cdc__acm_8h_source.html create mode 100644 docs/html/tusb__config_8h.html create mode 100644 docs/html/tusb__config_8h.js create mode 100644 docs/html/tusb__config_8h__dep__incl.md5 create mode 100644 docs/html/tusb__config_8h__dep__incl.svg create mode 100644 docs/html/tusb__config_8h__dep__incl_org.svg create mode 100644 docs/html/tusb__config_8h__incl.md5 create mode 100644 docs/html/tusb__config_8h__incl.svg create mode 100644 docs/html/tusb__config_8h__incl_org.svg create mode 100644 docs/html/tusb__config_8h_source.html create mode 100644 docs/html/tusb__console_8c.html create mode 100644 docs/html/tusb__console_8c.js create mode 100644 docs/html/tusb__console_8c__incl.md5 create mode 100644 docs/html/tusb__console_8c__incl.svg create mode 100644 docs/html/tusb__console_8c__incl_org.svg create mode 100644 docs/html/tusb__console_8c_a7661cf1bcb33011636fcc0055165a133_icgraph.md5 create mode 100644 docs/html/tusb__console_8c_a7661cf1bcb33011636fcc0055165a133_icgraph.svg create mode 100644 docs/html/tusb__console_8c_a7661cf1bcb33011636fcc0055165a133_icgraph_org.svg create mode 100644 docs/html/tusb__console_8c_a9797a6088409052fd3d45d205c7c69f5_cgraph.md5 create mode 100644 docs/html/tusb__console_8c_a9797a6088409052fd3d45d205c7c69f5_cgraph.svg create mode 100644 docs/html/tusb__console_8c_a9797a6088409052fd3d45d205c7c69f5_cgraph_org.svg create mode 100644 docs/html/tusb__console_8c_a9e8e981b87a77f42d60e0d5ead04fb9e_cgraph.md5 create mode 100644 docs/html/tusb__console_8c_a9e8e981b87a77f42d60e0d5ead04fb9e_cgraph.svg create mode 100644 docs/html/tusb__console_8c_a9e8e981b87a77f42d60e0d5ead04fb9e_cgraph_org.svg create mode 100644 docs/html/tusb__console_8c_adee61f8b94c7fe4cb64778123a5891c9_icgraph.md5 create mode 100644 docs/html/tusb__console_8c_adee61f8b94c7fe4cb64778123a5891c9_icgraph.svg create mode 100644 docs/html/tusb__console_8c_adee61f8b94c7fe4cb64778123a5891c9_icgraph_org.svg create mode 100644 docs/html/tusb__console_8c_source.html create mode 100644 docs/html/tusb__console_8h.html create mode 100644 docs/html/tusb__console_8h.js create mode 100644 docs/html/tusb__console_8h__dep__incl.md5 create mode 100644 docs/html/tusb__console_8h__dep__incl.svg create mode 100644 docs/html/tusb__console_8h__dep__incl_org.svg create mode 100644 docs/html/tusb__console_8h__incl.md5 create mode 100644 docs/html/tusb__console_8h__incl.svg create mode 100644 docs/html/tusb__console_8h__incl_org.svg create mode 100644 docs/html/tusb__console_8h_a9797a6088409052fd3d45d205c7c69f5_cgraph.md5 create mode 100644 docs/html/tusb__console_8h_a9797a6088409052fd3d45d205c7c69f5_cgraph.svg create mode 100644 docs/html/tusb__console_8h_a9797a6088409052fd3d45d205c7c69f5_cgraph_org.svg create mode 100644 docs/html/tusb__console_8h_a9e8e981b87a77f42d60e0d5ead04fb9e_cgraph.md5 create mode 100644 docs/html/tusb__console_8h_a9e8e981b87a77f42d60e0d5ead04fb9e_cgraph.svg create mode 100644 docs/html/tusb__console_8h_a9e8e981b87a77f42d60e0d5ead04fb9e_cgraph_org.svg create mode 100644 docs/html/tusb__console_8h_source.html create mode 100644 docs/html/tusb__tasks_8c.html create mode 100644 docs/html/tusb__tasks_8c.js create mode 100644 docs/html/tusb__tasks_8c__incl.md5 create mode 100644 docs/html/tusb__tasks_8c__incl.svg create mode 100644 docs/html/tusb__tasks_8c__incl_org.svg create mode 100644 docs/html/tusb__tasks_8c_a37098ba52bbc3a6dbc0d2159347dd30b_cgraph.md5 create mode 100644 docs/html/tusb__tasks_8c_a37098ba52bbc3a6dbc0d2159347dd30b_cgraph.svg create mode 100644 docs/html/tusb__tasks_8c_a37098ba52bbc3a6dbc0d2159347dd30b_cgraph_org.svg create mode 100644 docs/html/tusb__tasks_8c_a37098ba52bbc3a6dbc0d2159347dd30b_icgraph.md5 create mode 100644 docs/html/tusb__tasks_8c_a37098ba52bbc3a6dbc0d2159347dd30b_icgraph.svg create mode 100644 docs/html/tusb__tasks_8c_a37098ba52bbc3a6dbc0d2159347dd30b_icgraph_org.svg create mode 100644 docs/html/tusb__tasks_8c_a6682e10042dd5b679bdd61f3208db999_icgraph.md5 create mode 100644 docs/html/tusb__tasks_8c_a6682e10042dd5b679bdd61f3208db999_icgraph.svg create mode 100644 docs/html/tusb__tasks_8c_a6682e10042dd5b679bdd61f3208db999_icgraph_org.svg create mode 100644 docs/html/tusb__tasks_8c_source.html create mode 100644 docs/html/tusb__tasks_8h.html create mode 100644 docs/html/tusb__tasks_8h.js create mode 100644 docs/html/tusb__tasks_8h__dep__incl.md5 create mode 100644 docs/html/tusb__tasks_8h__dep__incl.svg create mode 100644 docs/html/tusb__tasks_8h__dep__incl_org.svg create mode 100644 docs/html/tusb__tasks_8h__incl.md5 create mode 100644 docs/html/tusb__tasks_8h__incl.svg create mode 100644 docs/html/tusb__tasks_8h__incl_org.svg create mode 100644 docs/html/tusb__tasks_8h_a37098ba52bbc3a6dbc0d2159347dd30b_cgraph.md5 create mode 100644 docs/html/tusb__tasks_8h_a37098ba52bbc3a6dbc0d2159347dd30b_cgraph.svg create mode 100644 docs/html/tusb__tasks_8h_a37098ba52bbc3a6dbc0d2159347dd30b_cgraph_org.svg create mode 100644 docs/html/tusb__tasks_8h_a37098ba52bbc3a6dbc0d2159347dd30b_icgraph.md5 create mode 100644 docs/html/tusb__tasks_8h_a37098ba52bbc3a6dbc0d2159347dd30b_icgraph.svg create mode 100644 docs/html/tusb__tasks_8h_a37098ba52bbc3a6dbc0d2159347dd30b_icgraph_org.svg create mode 100644 docs/html/tusb__tasks_8h_source.html create mode 100644 docs/html/unionfc32__u.html create mode 100644 docs/html/unionfc32__u.js create mode 100644 docs/html/unionsc16__u.html create mode 100644 docs/html/unionsc16__u.js create mode 100644 docs/html/usb__descriptors_8c.html create mode 100644 docs/html/usb__descriptors_8c.js create mode 100644 docs/html/usb__descriptors_8c__incl.md5 create mode 100644 docs/html/usb__descriptors_8c__incl.svg create mode 100644 docs/html/usb__descriptors_8c__incl_org.svg create mode 100644 docs/html/usb__descriptors_8c_source.html create mode 100644 docs/html/usb__descriptors_8h.html create mode 100644 docs/html/usb__descriptors_8h.js create mode 100644 docs/html/usb__descriptors_8h__dep__incl.md5 create mode 100644 docs/html/usb__descriptors_8h__dep__incl.svg create mode 100644 docs/html/usb__descriptors_8h__dep__incl_org.svg create mode 100644 docs/html/usb__descriptors_8h__incl.md5 create mode 100644 docs/html/usb__descriptors_8h__incl.svg create mode 100644 docs/html/usb__descriptors_8h__incl_org.svg create mode 100644 docs/html/usb__descriptors_8h_source.html create mode 100644 docs/html/vfs__tinyusb_8c.html create mode 100644 docs/html/vfs__tinyusb_8c.js create mode 100644 docs/html/vfs__tinyusb_8c__incl.md5 create mode 100644 docs/html/vfs__tinyusb_8c__incl.svg create mode 100644 docs/html/vfs__tinyusb_8c__incl_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_a058be25b22153a43e2f3031bfa3f659d_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_a058be25b22153a43e2f3031bfa3f659d_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_a058be25b22153a43e2f3031bfa3f659d_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_a28ded6da11b7ec9c6707957cdbbe3ccb_cgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_a28ded6da11b7ec9c6707957cdbbe3ccb_cgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_a28ded6da11b7ec9c6707957cdbbe3ccb_cgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_a28ded6da11b7ec9c6707957cdbbe3ccb_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_a28ded6da11b7ec9c6707957cdbbe3ccb_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_a28ded6da11b7ec9c6707957cdbbe3ccb_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_a40d9d3df1da934c51f914dab02724804_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_a40d9d3df1da934c51f914dab02724804_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_a40d9d3df1da934c51f914dab02724804_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_a74d8afba4fd90f354f511e61abbef1fb_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_a74d8afba4fd90f354f511e61abbef1fb_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_a74d8afba4fd90f354f511e61abbef1fb_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_a8ab13f91f4811cbbc094ef53aa043e57_cgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_a8ab13f91f4811cbbc094ef53aa043e57_cgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_a8ab13f91f4811cbbc094ef53aa043e57_cgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_a8ab13f91f4811cbbc094ef53aa043e57_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_a8ab13f91f4811cbbc094ef53aa043e57_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_a8ab13f91f4811cbbc094ef53aa043e57_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_a8e83463049730a616e99aa6477888fff_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_a8e83463049730a616e99aa6477888fff_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_a8e83463049730a616e99aa6477888fff_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_a9dbd17d5f3dfbb17a9aca0b1640b9a76_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_a9dbd17d5f3dfbb17a9aca0b1640b9a76_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_a9dbd17d5f3dfbb17a9aca0b1640b9a76_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_ab1230dea75559df8de97fd2adb1566d7_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_ab1230dea75559df8de97fd2adb1566d7_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_ab1230dea75559df8de97fd2adb1566d7_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_ac9106f2a10268e1f1db1e897e502ea8a_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_ac9106f2a10268e1f1db1e897e502ea8a_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_ac9106f2a10268e1f1db1e897e502ea8a_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_acd79cfbaa8662bf059523d76611a7eb7_cgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_acd79cfbaa8662bf059523d76611a7eb7_cgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_acd79cfbaa8662bf059523d76611a7eb7_cgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_acd79cfbaa8662bf059523d76611a7eb7_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_acd79cfbaa8662bf059523d76611a7eb7_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_acd79cfbaa8662bf059523d76611a7eb7_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_ae56dd480e9fe67841a7da40fe1a0322f_cgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_ae56dd480e9fe67841a7da40fe1a0322f_cgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_ae56dd480e9fe67841a7da40fe1a0322f_cgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_ae56dd480e9fe67841a7da40fe1a0322f_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8c_ae56dd480e9fe67841a7da40fe1a0322f_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8c_ae56dd480e9fe67841a7da40fe1a0322f_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8c_source.html create mode 100644 docs/html/vfs__tinyusb_8h.html create mode 100644 docs/html/vfs__tinyusb_8h.js create mode 100644 docs/html/vfs__tinyusb_8h__dep__incl.md5 create mode 100644 docs/html/vfs__tinyusb_8h__dep__incl.svg create mode 100644 docs/html/vfs__tinyusb_8h__dep__incl_org.svg create mode 100644 docs/html/vfs__tinyusb_8h__incl.md5 create mode 100644 docs/html/vfs__tinyusb_8h__incl.svg create mode 100644 docs/html/vfs__tinyusb_8h__incl_org.svg create mode 100644 docs/html/vfs__tinyusb_8h_a28ded6da11b7ec9c6707957cdbbe3ccb_cgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8h_a28ded6da11b7ec9c6707957cdbbe3ccb_cgraph.svg create mode 100644 docs/html/vfs__tinyusb_8h_a28ded6da11b7ec9c6707957cdbbe3ccb_cgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8h_a28ded6da11b7ec9c6707957cdbbe3ccb_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8h_a28ded6da11b7ec9c6707957cdbbe3ccb_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8h_a28ded6da11b7ec9c6707957cdbbe3ccb_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8h_ae56dd480e9fe67841a7da40fe1a0322f_cgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8h_ae56dd480e9fe67841a7da40fe1a0322f_cgraph.svg create mode 100644 docs/html/vfs__tinyusb_8h_ae56dd480e9fe67841a7da40fe1a0322f_cgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8h_ae56dd480e9fe67841a7da40fe1a0322f_icgraph.md5 create mode 100644 docs/html/vfs__tinyusb_8h_ae56dd480e9fe67841a7da40fe1a0322f_icgraph.svg create mode 100644 docs/html/vfs__tinyusb_8h_ae56dd480e9fe67841a7da40fe1a0322f_icgraph_org.svg create mode 100644 docs/html/vfs__tinyusb_8h_source.html create mode 100644 docs/html/wave__gen_8c.html create mode 100644 docs/html/wave__gen_8c.js create mode 100644 docs/html/wave__gen_8c__incl.md5 create mode 100644 docs/html/wave__gen_8c__incl.svg create mode 100644 docs/html/wave__gen_8c__incl_org.svg create mode 100644 docs/html/wave__gen_8c_a1ca80b52f7f31076a9d9cea3f573b44a_icgraph.md5 create mode 100644 docs/html/wave__gen_8c_a1ca80b52f7f31076a9d9cea3f573b44a_icgraph.svg create mode 100644 docs/html/wave__gen_8c_a1ca80b52f7f31076a9d9cea3f573b44a_icgraph_org.svg create mode 100644 docs/html/wave__gen_8c_a2ff828abf3f9864757be5f45af606f0b_icgraph.md5 create mode 100644 docs/html/wave__gen_8c_a2ff828abf3f9864757be5f45af606f0b_icgraph.svg create mode 100644 docs/html/wave__gen_8c_a2ff828abf3f9864757be5f45af606f0b_icgraph_org.svg create mode 100644 docs/html/wave__gen_8c_a61fe735cc4f1f71a8a82696d4f2beb46_icgraph.md5 create mode 100644 docs/html/wave__gen_8c_a61fe735cc4f1f71a8a82696d4f2beb46_icgraph.svg create mode 100644 docs/html/wave__gen_8c_a61fe735cc4f1f71a8a82696d4f2beb46_icgraph_org.svg create mode 100644 docs/html/wave__gen_8c_abaa3551dedb9787ba877eacaf781c42a_cgraph.md5 create mode 100644 docs/html/wave__gen_8c_abaa3551dedb9787ba877eacaf781c42a_cgraph.svg create mode 100644 docs/html/wave__gen_8c_abaa3551dedb9787ba877eacaf781c42a_cgraph_org.svg create mode 100644 docs/html/wave__gen_8c_abaa3551dedb9787ba877eacaf781c42a_icgraph.md5 create mode 100644 docs/html/wave__gen_8c_abaa3551dedb9787ba877eacaf781c42a_icgraph.svg create mode 100644 docs/html/wave__gen_8c_abaa3551dedb9787ba877eacaf781c42a_icgraph_org.svg create mode 100644 docs/html/wave__gen_8c_af43fa6c38b79b213e3c8cffab90891eb_icgraph.md5 create mode 100644 docs/html/wave__gen_8c_af43fa6c38b79b213e3c8cffab90891eb_icgraph.svg create mode 100644 docs/html/wave__gen_8c_af43fa6c38b79b213e3c8cffab90891eb_icgraph_org.svg create mode 100644 docs/html/wave__gen_8c_afe955e63100a0b29ac9b09269edc9b90_icgraph.md5 create mode 100644 docs/html/wave__gen_8c_afe955e63100a0b29ac9b09269edc9b90_icgraph.svg create mode 100644 docs/html/wave__gen_8c_afe955e63100a0b29ac9b09269edc9b90_icgraph_org.svg create mode 100644 docs/html/wave__gen_8c_source.html create mode 100644 docs/html/wave__gen_8h.html create mode 100644 docs/html/wave__gen_8h.js create mode 100644 docs/html/wave__gen_8h__dep__incl.md5 create mode 100644 docs/html/wave__gen_8h__dep__incl.svg create mode 100644 docs/html/wave__gen_8h__dep__incl_org.svg create mode 100644 docs/html/wave__gen_8h__incl.md5 create mode 100644 docs/html/wave__gen_8h__incl.svg create mode 100644 docs/html/wave__gen_8h__incl_org.svg create mode 100644 docs/html/wave__gen_8h_a1ca80b52f7f31076a9d9cea3f573b44a_icgraph.md5 create mode 100644 docs/html/wave__gen_8h_a1ca80b52f7f31076a9d9cea3f573b44a_icgraph.svg create mode 100644 docs/html/wave__gen_8h_a1ca80b52f7f31076a9d9cea3f573b44a_icgraph_org.svg create mode 100644 docs/html/wave__gen_8h_a2ff828abf3f9864757be5f45af606f0b_icgraph.md5 create mode 100644 docs/html/wave__gen_8h_a2ff828abf3f9864757be5f45af606f0b_icgraph.svg create mode 100644 docs/html/wave__gen_8h_a2ff828abf3f9864757be5f45af606f0b_icgraph_org.svg create mode 100644 docs/html/wave__gen_8h_abaa3551dedb9787ba877eacaf781c42a_cgraph.md5 create mode 100644 docs/html/wave__gen_8h_abaa3551dedb9787ba877eacaf781c42a_cgraph.svg create mode 100644 docs/html/wave__gen_8h_abaa3551dedb9787ba877eacaf781c42a_cgraph_org.svg create mode 100644 docs/html/wave__gen_8h_abaa3551dedb9787ba877eacaf781c42a_icgraph.md5 create mode 100644 docs/html/wave__gen_8h_abaa3551dedb9787ba877eacaf781c42a_icgraph.svg create mode 100644 docs/html/wave__gen_8h_abaa3551dedb9787ba877eacaf781c42a_icgraph_org.svg create mode 100644 docs/html/wave__gen_8h_af43fa6c38b79b213e3c8cffab90891eb_icgraph.md5 create mode 100644 docs/html/wave__gen_8h_af43fa6c38b79b213e3c8cffab90891eb_icgraph.svg create mode 100644 docs/html/wave__gen_8h_af43fa6c38b79b213e3c8cffab90891eb_icgraph_org.svg create mode 100644 docs/html/wave__gen_8h_afe955e63100a0b29ac9b09269edc9b90_icgraph.md5 create mode 100644 docs/html/wave__gen_8h_afe955e63100a0b29ac9b09269edc9b90_icgraph.svg create mode 100644 docs/html/wave__gen_8h_afe955e63100a0b29ac9b09269edc9b90_icgraph_org.svg create mode 100644 docs/html/wave__gen_8h_source.html diff --git a/docs/html/aes3__tie__log_8c.html b/docs/html/aes3__tie__log_8c.html new file mode 100644 index 0000000..d929926 --- /dev/null +++ b/docs/html/aes3__tie__log_8c.html @@ -0,0 +1,144 @@ + + + + + + + +ESP-IDF Firmware: aes3_tie_log.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
aes3_tie_log.c File Reference
+
+
+
#include "dsp_common.h"
+#include <stdarg.h>
+
+Include dependency graph for aes3_tie_log.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define TIE_LOG_ENABLED   1
+

Macro Definition Documentation

+ +

◆ TIE_LOG_ENABLED

+ +
+
+ + + + +
#define TIE_LOG_ENABLED   1
+
+ +

Definition at line 10 of file aes3_tie_log.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/aes3__tie__log_8c.js b/docs/html/aes3__tie__log_8c.js new file mode 100644 index 0000000..bb2f5f0 --- /dev/null +++ b/docs/html/aes3__tie__log_8c.js @@ -0,0 +1,4 @@ +var aes3__tie__log_8c = +[ + [ "TIE_LOG_ENABLED", "aes3__tie__log_8c.html#ab330330da1001df7f9cf13e88e6d2044", null ] +]; \ No newline at end of file diff --git a/docs/html/aes3__tie__log_8c__incl.md5 b/docs/html/aes3__tie__log_8c__incl.md5 new file mode 100644 index 0000000..a8406f8 --- /dev/null +++ b/docs/html/aes3__tie__log_8c__incl.md5 @@ -0,0 +1 @@ +8dee8a5577648774ddf5ba9faaf7581e \ No newline at end of file diff --git a/docs/html/aes3__tie__log_8c__incl.svg b/docs/html/aes3__tie__log_8c__incl.svg new file mode 100644 index 0000000..32f5785 --- /dev/null +++ b/docs/html/aes3__tie__log_8c__incl.svg @@ -0,0 +1,218 @@ + + + + + + + + + + + + +aes3_tie_log.c + + +Node1 + + +aes3_tie_log.c + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +stdarg.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + + + + + + diff --git a/docs/html/aes3__tie__log_8c__incl_org.svg b/docs/html/aes3__tie__log_8c__incl_org.svg new file mode 100644 index 0000000..af8d779 --- /dev/null +++ b/docs/html/aes3__tie__log_8c__incl_org.svg @@ -0,0 +1,192 @@ + + + + + + +aes3_tie_log.c + + +Node1 + + +aes3_tie_log.c + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +stdarg.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + diff --git a/docs/html/aes3__tie__log_8c_source.html b/docs/html/aes3__tie__log_8c_source.html new file mode 100644 index 0000000..dc5a322 --- /dev/null +++ b/docs/html/aes3__tie__log_8c_source.html @@ -0,0 +1,238 @@ + + + + + + + +ESP-IDF Firmware: aes3_tie_log.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
aes3_tie_log.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsp_common.h"
+
8#include <stdarg.h>
+
9
+
10#define TIE_LOG_ENABLED 1
+
11
+
12#if (CONFIG_IDF_TARGET_ESP32S3)
+
13
+
14esp_err_t tie_log(int n_regs, ...)
+
15{
+
16
+
17#if !TIE_LOG_ENABLED
+
18 return ESP_OK;
+
19#else
+
20
+
21 va_list list;
+
22 va_start(list, n_regs);
+
23
+
24 uint32_t reg_128_bits[4] = {0, 0, 0, 0};
+
25 int reg_code;
+
26
+
27 for (int i = 0; i < n_regs; i++) {
+
28 reg_code = va_arg(list, int);
+
29
+
30 // ACCX register
+
31 if ( reg_code == 'a') {
+
32 asm volatile("rur.accx_0 %0" : "=a" (reg_128_bits[0]));
+
33 asm volatile("rur.accx_1 %0" : "=a" (reg_128_bits[1]));
+
34 printf("ACCX - %02x %08x", (unsigned int)reg_128_bits[1], (unsigned int)reg_128_bits[0]);
+
35 printf(" --- %llu\n", (long long unsigned)reg_128_bits[1] << 32 | (unsigned int)reg_128_bits[0]);
+
36 }
+
37
+
38 // SAR:_BYTE register
+
39 else if ( reg_code == 's') {
+
40 asm volatile("rur.sar_byte %0" : "=a" (reg_128_bits[0]));
+
41 printf("SAR_BYTE - %d\n", (unsigned int)reg_128_bits[0]);
+
42 }
+
43
+
44 // Q0 - Q7 registers
+
45 else if ((reg_code >= 0) && (reg_code <= 7)) {
+
46 switch (reg_code) {
+
47 case 0 : {
+
48 asm volatile("ee.movi.32.a q0, %0, 0" : "=a" (reg_128_bits[0]));
+
49 asm volatile("ee.movi.32.a q0, %0, 1" : "=a" (reg_128_bits[1]));
+
50 asm volatile("ee.movi.32.a q0, %0, 2" : "=a" (reg_128_bits[2]));
+
51 asm volatile("ee.movi.32.a q0, %0, 3" : "=a" (reg_128_bits[3]));
+
52 printf("Q0");
+
53 break;
+
54 }
+
55 case 1 : {
+
56 asm volatile("ee.movi.32.a q1, %0, 0" : "=a" (reg_128_bits[0]));
+
57 asm volatile("ee.movi.32.a q1, %0, 1" : "=a" (reg_128_bits[1]));
+
58 asm volatile("ee.movi.32.a q1, %0, 2" : "=a" (reg_128_bits[2]));
+
59 asm volatile("ee.movi.32.a q1, %0, 3" : "=a" (reg_128_bits[3]));
+
60 printf("Q1");
+
61 break;
+
62 }
+
63 case 2 : {
+
64 asm volatile("ee.movi.32.a q2, %0, 0" : "=a" (reg_128_bits[0]));
+
65 asm volatile("ee.movi.32.a q2, %0, 1" : "=a" (reg_128_bits[1]));
+
66 asm volatile("ee.movi.32.a q2, %0, 2" : "=a" (reg_128_bits[2]));
+
67 asm volatile("ee.movi.32.a q2, %0, 3" : "=a" (reg_128_bits[3]));
+
68 printf("Q2");
+
69 break;
+
70 }
+
71 case 3 : {
+
72 asm volatile("ee.movi.32.a q3, %0, 0" : "=a" (reg_128_bits[0]));
+
73 asm volatile("ee.movi.32.a q3, %0, 1" : "=a" (reg_128_bits[1]));
+
74 asm volatile("ee.movi.32.a q3, %0, 2" : "=a" (reg_128_bits[2]));
+
75 asm volatile("ee.movi.32.a q3, %0, 3" : "=a" (reg_128_bits[3]));
+
76 printf("Q3");
+
77 break;
+
78 }
+
79 case 4 : {
+
80 asm volatile("ee.movi.32.a q4, %0, 0" : "=a" (reg_128_bits[0]));
+
81 asm volatile("ee.movi.32.a q4, %0, 1" : "=a" (reg_128_bits[1]));
+
82 asm volatile("ee.movi.32.a q4, %0, 2" : "=a" (reg_128_bits[2]));
+
83 asm volatile("ee.movi.32.a q4, %0, 3" : "=a" (reg_128_bits[3]));
+
84 printf("Q4");
+
85 break;
+
86 }
+
87 case 5 : {
+
88 asm volatile("ee.movi.32.a q5, %0, 0" : "=a" (reg_128_bits[0]));
+
89 asm volatile("ee.movi.32.a q5, %0, 1" : "=a" (reg_128_bits[1]));
+
90 asm volatile("ee.movi.32.a q5, %0, 2" : "=a" (reg_128_bits[2]));
+
91 asm volatile("ee.movi.32.a q5, %0, 3" : "=a" (reg_128_bits[3]));
+
92 printf("Q5");
+
93 break;
+
94 }
+
95 case 6 : {
+
96 asm volatile("ee.movi.32.a q6, %0, 0" : "=a" (reg_128_bits[0]));
+
97 asm volatile("ee.movi.32.a q6, %0, 1" : "=a" (reg_128_bits[1]));
+
98 asm volatile("ee.movi.32.a q6, %0, 2" : "=a" (reg_128_bits[2]));
+
99 asm volatile("ee.movi.32.a q6, %0, 3" : "=a" (reg_128_bits[3]));
+
100 printf("Q6");
+
101 break;
+
102 }
+
103 case 7 : {
+
104 asm volatile("ee.movi.32.a q7, %0, 0" : "=a" (reg_128_bits[0]));
+
105 asm volatile("ee.movi.32.a q7, %0, 1" : "=a" (reg_128_bits[1]));
+
106 asm volatile("ee.movi.32.a q7, %0, 2" : "=a" (reg_128_bits[2]));
+
107 asm volatile("ee.movi.32.a q7, %0, 3" : "=a" (reg_128_bits[3]));
+
108 printf("Q7");
+
109 break;
+
110 }
+
111 }
+
112
+
113 printf(" - 0x%08X %08X %08X %08X --- ", (unsigned int)reg_128_bits[3], (unsigned int)reg_128_bits[2], (unsigned int)reg_128_bits[1], (unsigned int)reg_128_bits[0]);
+
114 printf("%u %u %u %u %u %u %u %u\n", (unsigned int)reg_128_bits[3] >> 16, (unsigned int)reg_128_bits[3] & 0x0000FFFF,
+
115 (unsigned int)reg_128_bits[2] >> 16, (unsigned int)reg_128_bits[2] & 0x0000FFFF,
+
116 (unsigned int)reg_128_bits[1] >> 16, (unsigned int)reg_128_bits[1] & 0x0000FFFF,
+
117 (unsigned int)reg_128_bits[0] >> 16, (unsigned int)reg_128_bits[0] & 0x0000FFFF);
+
118 } else {
+
119 printf("Bad register code");
+
120 }
+
121 }
+
122 printf("------------------------------------------------------------------------------------\n");
+
123
+
124 return ESP_OK;
+
125#endif //TIE_LOG_ENABLED
+
126}
+
127
+
128#endif // CONFIG_IDF_TARGET_ESP32S3
+ +
esp_err_t tie_log(int n_regs,...)
Logginng for esp32s3 TIE core Registers covered q0 to q7, ACCX and SAR_BYTE.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/annotated.html b/docs/html/annotated.html new file mode 100644 index 0000000..6f16bf4 --- /dev/null +++ b/docs/html/annotated.html @@ -0,0 +1,145 @@ + + + + + + + +ESP-IDF Firmware: Data Structures + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 NdspmDSP matrix namespace
 CMatMatrix
 CRectRectangular area
 Ccdcacm_event_line_coding_changed_data_tData provided to the input of the line_coding_changed callback
 Ccdcacm_event_line_state_changed_data_tData provided to the input of the callback_line_state_changed callback
 Ccdcacm_event_rx_wanted_char_data_tData provided to the input of the callback_rx_wanted_char callback
 Ccdcacm_event_tDescribes an event passing to the input of a callbacks
 Cconsole_handle_t
 Ccplx_sig_sData struct of the complex signal generator
 Cdsps_resample_mr_sData struct of f32 multi-rate resampler
 Cdsps_resample_ph_sData struct of f32 poly-phase resampler
 Cekf
 Cekf_imu13statesThis class is used to process and calculate attitude from imu sensors
 Cesp_tusb_cdc_t
 Cesp_tusb_cdcacm_t
 Cfc32_u
 Cfir_f32_sData struct of f32 fir filter
 Cfir_s16_sData struct of s16 fir filter
 Cframe_wire_t
 Cimage2d_s
 Cimage_3d_matrix_kalman_sData struct of 3d image matrix with kalman filter object
 Cimage_3d_matrix_sData struct of 3d image matrix
 Cled_strip_config_tLED Strip Configuration
 Cled_strip_encoder_config_tType of led strip encoder configuration
 Cled_strip_rmt_config_tLED Strip RMT specific configuration
 Cled_strip_rmt_obj
 Cled_strip_spi_config_tLED Strip SPI specific configuration
 Cled_strip_spi_obj
 Cled_strip_tLED strip interface definition
 Crmt_led_strip_encoder_t
 Csc16_u
 Ctinyusb_config_cdc_t
 Ctinyusb_config_cdcacm_tConfiguration structure for CDC-ACM
 Ctinyusb_config_tConfiguration structure of the TinyUSB core
 Cvfs_tinyusb_t
 Cwave_gen_config_tConfiguration structure for Wave Generator
+
+
+
+
+ + + + diff --git a/docs/html/annotated_dup.js b/docs/html/annotated_dup.js new file mode 100644 index 0000000..8584cf8 --- /dev/null +++ b/docs/html/annotated_dup.js @@ -0,0 +1,39 @@ +var annotated_dup = +[ + [ "dspm", "namespacedspm.html", [ + [ "Mat", "classdspm_1_1_mat.html", "classdspm_1_1_mat" ] + ] ], + [ "cdcacm_event_line_coding_changed_data_t", "structcdcacm__event__line__coding__changed__data__t.html", "structcdcacm__event__line__coding__changed__data__t" ], + [ "cdcacm_event_line_state_changed_data_t", "structcdcacm__event__line__state__changed__data__t.html", "structcdcacm__event__line__state__changed__data__t" ], + [ "cdcacm_event_rx_wanted_char_data_t", "structcdcacm__event__rx__wanted__char__data__t.html", "structcdcacm__event__rx__wanted__char__data__t" ], + [ "cdcacm_event_t", "structcdcacm__event__t.html", "structcdcacm__event__t" ], + [ "console_handle_t", "structconsole__handle__t.html", "structconsole__handle__t" ], + [ "cplx_sig_s", "structcplx__sig__s.html", "structcplx__sig__s" ], + [ "dsps_resample_mr_s", "structdsps__resample__mr__s.html", "structdsps__resample__mr__s" ], + [ "dsps_resample_ph_s", "structdsps__resample__ph__s.html", "structdsps__resample__ph__s" ], + [ "ekf", "classekf.html", "classekf" ], + [ "ekf_imu13states", "classekf__imu13states.html", "classekf__imu13states" ], + [ "esp_tusb_cdc_t", "structesp__tusb__cdc__t.html", "structesp__tusb__cdc__t" ], + [ "esp_tusb_cdcacm_t", "structesp__tusb__cdcacm__t.html", "structesp__tusb__cdcacm__t" ], + [ "fc32_u", "unionfc32__u.html", "unionfc32__u" ], + [ "fir_f32_s", "structfir__f32__s.html", "structfir__f32__s" ], + [ "fir_s16_s", "structfir__s16__s.html", "structfir__s16__s" ], + [ "frame_wire_t", "structframe__wire__t.html", "structframe__wire__t" ], + [ "image2d_s", "structimage2d__s.html", "structimage2d__s" ], + [ "image_3d_matrix_kalman_s", "structimage__3d__matrix__kalman__s.html", "structimage__3d__matrix__kalman__s" ], + [ "image_3d_matrix_s", "structimage__3d__matrix__s.html", "structimage__3d__matrix__s" ], + [ "led_strip_config_t", "structled__strip__config__t.html", "structled__strip__config__t" ], + [ "led_strip_encoder_config_t", "structled__strip__encoder__config__t.html", "structled__strip__encoder__config__t" ], + [ "led_strip_rmt_config_t", "structled__strip__rmt__config__t.html", "structled__strip__rmt__config__t" ], + [ "led_strip_rmt_obj", "structled__strip__rmt__obj.html", "structled__strip__rmt__obj" ], + [ "led_strip_spi_config_t", "structled__strip__spi__config__t.html", "structled__strip__spi__config__t" ], + [ "led_strip_spi_obj", "structled__strip__spi__obj.html", "structled__strip__spi__obj" ], + [ "led_strip_t", "structled__strip__t.html", "structled__strip__t" ], + [ "rmt_led_strip_encoder_t", "structrmt__led__strip__encoder__t.html", "structrmt__led__strip__encoder__t" ], + [ "sc16_u", "unionsc16__u.html", "unionsc16__u" ], + [ "tinyusb_config_cdc_t", "structtinyusb__config__cdc__t.html", "structtinyusb__config__cdc__t" ], + [ "tinyusb_config_cdcacm_t", "structtinyusb__config__cdcacm__t.html", "structtinyusb__config__cdcacm__t" ], + [ "tinyusb_config_t", "structtinyusb__config__t.html", "structtinyusb__config__t" ], + [ "vfs_tinyusb_t", "structvfs__tinyusb__t.html", "structvfs__tinyusb__t" ], + [ "wave_gen_config_t", "structwave__gen__config__t.html", "structwave__gen__config__t" ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html new file mode 100644 index 0000000..cbb9e02 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html @@ -0,0 +1,684 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include "esp_log.h"
+#include "ssd1306.h"
+#include "bsp/esp-bsp.h"
+#include "esp_dsp.h"
+#include "cube_matrix.h"
+#include "esp_logo.h"
+#include "esp_text.h"
+#include "graphics_support.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + +

+Functions

void app_main ()
static void init_3d_matrix_struct (image_3d_matrix_t *image)
 Initialize 3d image structure.
static void app_ssd1306_init (void)
 Initialize display.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void dispaly_esp_text (void)
 Display ESPRESSIF text.
static void draw_3d_image_task (void *arg)
 RTOS task to draw a 3d image.
+ + + + +

+Variables

static ssd1306_handle_t ssd1306_dev = NULL
static bool button_pressed = true
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
+

Function Documentation

+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 203 of file applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
204{
+
205 static bool button_prev_val = false;
+ + +
208 ekf13->Init();
+
209
+
210 // Init all board components
+
211 bsp_i2c_init();
+
212 app_ssd1306_init(); // display init
+
213 bsp_leds_init(); // LEDs init
+
214 bsp_i2c_set_clk_speed(I2C_CLK_600KHZ); // Set I2C to 600kHz
+
215
+ + +
218
+ +
220 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
221
+
222 xTaskCreate(draw_3d_image_task, "draw_3d_image", 2048, &image, 4, NULL);
+
223 ESP_LOGI("3D image demo", "Showing 3D image");
+
224
+
225 while (1) {
+
226 if (bsp_button_get()) {
+ +
228 }
+
229
+
230 if (button_prev_val != button_pressed) {
+
231 button_prev_val = button_pressed;
+
232 if (button_pressed) {
+
233 bsp_led_set(BSP_LED_AZURE, true);
+
234 } else {
+
235 bsp_led_set(BSP_LED_AZURE, false);
+
236 }
+
237 }
+
238 vTaskDelay(100 / portTICK_PERIOD_MS);
+
239 }
+
240}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void dispaly_esp_text(void)
Display ESPRESSIF text.
+
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
static void app_ssd1306_init(void)
Initialize display.
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + + +
This class is used to process and calculate attitude from imu sensors.
+
+

References app_ssd1306_init(), bsp_i2c_init(), button_pressed, dispaly_esp_text(), draw_3d_image_task(), ekf13, image, init_3d_matrix_struct(), init_perspective_matrix(), and perspective_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ app_ssd1306_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_ssd1306_init (void )
+
+static
+
+ +

Initialize display.

+ +

Definition at line 53 of file applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
54{
+
55 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
56 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
57 ssd1306_refresh_gram(ssd1306_dev);
+
58}
+ +
+

References ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dispaly_esp_text()

+ +
+
+ + + + + +
+ + + + + + + +
void dispaly_esp_text (void )
+
+static
+
+ +

Display ESPRESSIF text.

+

To demonstrate usage of the translation and scaling matrices

+ +

Definition at line 96 of file applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
97{
+
98 image_3d_matrix_t esp_text;
+ +
100 esp_text.matrix_len = ((sizeof(image_3d_array_esp_text)) / sizeof(float)) / MATRIX_SIZE;
+
101 int16_t shift_x = -SSD1606_X_CENTER;
+
102
+
103 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
104 dspm::Mat transformed_image(esp_text.matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
105 dspm::Mat matrix_3d((float *)esp_text.matrix[0], esp_text.matrix_len, MATRIX_SIZE);
+
106
+
107 ESP_LOGI("3D image demo", "Showing ESP text");
+
108
+
109 for (int i = 0; i < 52; i++) {
+
110 update_translation_matrix(T, true, (float)shift_x, (float)SSD1606_Y_CENTER, 0);
+
111 transformed_image = matrix_3d * T;
+
112
+
113 ssd1306_clear_screen(ssd1306_dev, 0);
+
114 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
115 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
116 }
+
117 ssd1306_refresh_gram(ssd1306_dev);
+
118 vTaskDelay(50 / portTICK_PERIOD_MS);
+
119
+
120 shift_x += 5;
+
121 }
+
122
+
123 ssd1306_clear_screen(ssd1306_dev, 0);
+
124 ssd1306_draw_bitmap(ssd1306_dev, 0, 24, &image_bmp_array_esp_text[0], 128, 24);
+
125 ssd1306_refresh_gram(ssd1306_dev);
+
126
+ +
128 vTaskDelay(100 / portTICK_PERIOD_MS);
+
129
+
130 float scale = 1;
+
131 for (int i = 0; i < 20; i++) {
+
132 update_scaling_matrix(T, false, scale, scale, 1);
+
133 transformed_image = matrix_3d * T;
+
134
+
135 ssd1306_clear_screen(ssd1306_dev, 0);
+
136 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
137 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
138 }
+
139 ssd1306_refresh_gram(ssd1306_dev);
+
140 vTaskDelay(50 / portTICK_PERIOD_MS);
+
141
+
142 if (i < 10) {
+
143 scale -= 0.05;
+
144 } else {
+
145 scale += 0.05;
+
146 }
+
147 }
+
148}
+ + +
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+ + + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+ + +
+

References dspm::Mat::eye(), image_3d_array_esp_text, image_bmp_array_esp_text, image_3d_matrix_s::matrix, image_3d_matrix_s::matrix_len, MATRIX_SIZE, dspm::Mat::rows, ssd1306_dev, SSD1606_X_CENTER, SSD1606_Y_CENTER, update_scaling_matrix(), and update_translation_matrix().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 68 of file applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
69{
+
70 ssd1306_clear_screen(ssd1306_dev, 0);
+
71
+
72 if (OBJECT_3D_CUBE) {
+
73 // For the 3D cube, only the 6 points of the cube are transformed
+
74 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
75 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
76 ssd1306_draw_line(ssd1306_dev,
+
77 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
78 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
79 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
80 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
81 }
+
82 } else {
+
83 // Every other 3D image is drawn here pixel by pixel
+
84 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
85 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
86 }
+
87 }
+
88 ssd1306_refresh_gram(ssd1306_dev);
+
89}
+ + + + +
int rows
Definition mat.h:33
+
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, OBJECT_3D_CUBE, dspm::Mat::rows, and ssd1306_dev.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image_task()

+ +
+
+ + + + + +
+ + + + + + + +
void draw_3d_image_task (void * arg)
+
+static
+
+ +

RTOS task to draw a 3d image.

+

Updates 3d matrices, prepares the final 3d matrix to be displayed on the display

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 157 of file applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
158{
+
159 float rot_y = 0, rot_x = 0;
+
160 const float angle_increment = 4;
+ +
162
+
163 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
164 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
165 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
166 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
167
+
168 if (OBJECT_3D_CUBE) {
+
169 rot_x = 45;
+
170 }
+
171
+
172 while (1) {
+
173 if (button_pressed) {
+
174 rot_y += angle_increment;
+
175 if (rot_y >= 360) {
+
176 rot_y -= 360;
+
177 }
+
178 } else {
+
179 rot_y -= angle_increment;
+
180 if (rot_y <= 0) {
+
181 rot_y += 360;
+
182 }
+
183 }
+
184
+
185 // Apply rotation in all the axes to the transformation matrix
+
186 update_rotation_matrix(T, rot_x, rot_y, 0);
+
187 // Apply translation to the transformation matrix
+
188 update_translation_matrix(T, true, ((float)SSD1606_X_CENTER), ((float)SSD1606_Y_CENTER), 0);
+
189
+
190 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
191 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
192
+
193 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
194 transformed_image = matrix_3d * T;
+
195 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
196 projected_image = transformed_image * perspective_matrix;
+
197
+
198 display_3d_image(projected_image);
+
199 vTaskDelay(20 / portTICK_PERIOD_MS);
+
200 }
+
201}
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+
+

References button_pressed, display_3d_image(), dspm::Mat::eye(), image, MATRIX_SIZE, OBJECT_3D_CUBE, perspective_matrix, SSD1606_X_CENTER, SSD1606_Y_CENTER, update_rotation_matrix(), and update_translation_matrix().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_t * image)
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + +
image3d image structure
+
+
+ +

Definition at line 33 of file applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
34{
+
35#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
37 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
38 ESP_LOGI("3D image demo", "Selected 3D image - ESP Logo");
+
39#elif CONFIG_3D_OBJECT_CUSTOM
+ +
41 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
42 ESP_LOGI("3D image demo", "Selected 3D image - User's custom image");
+
43#elif CONFIG_3D_OBJECT_CUBE
+
44 image->matrix = cube_vectors_3d;
+
45 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
46 ESP_LOGI("3D image demo", "Selected 3D image - 3D cube");
+
47#endif
+
48}
+ +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
+

References cube_vectors_3d, image, image_3d_matrix_esp_logo, image_to_3d_matrix_custom, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ button_pressed

+ +
+
+ + + + + +
+ + + + +
bool button_pressed = true
+
+static
+
+
+ +

◆ perspective_matrix

+ + + +

◆ ssd1306_dev

+ + +
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js new file mode 100644 index 0000000..f4a497a --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js @@ -0,0 +1,12 @@ +var applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp = +[ + [ "app_main", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "app_ssd1306_init", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#afac7c47eff81b6719e589256c8799d5e", null ], + [ "dispaly_esp_text", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a0edd8bfc49beafeacd3540ba291680c3", null ], + [ "display_3d_image", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image_task", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af3debef909dca35dbf0b6f842df6def3", null ], + [ "init_3d_matrix_struct", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a3340d28d7e9de0fd62d17e02ce70a52c", null ], + [ "button_pressed", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af23a0eb11ff9589330539e6b763badc8", null ], + [ "perspective_matrix", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "ssd1306_dev", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a001a4d44724bfb0668ac6de0d351ae75", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 new file mode 100644 index 0000000..43d1458 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +69f4872736eca28f0487ccf3e819fd6b \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg new file mode 100644 index 0000000..b2565e4 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg @@ -0,0 +1,1744 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +bsp/esp-bsp.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +esp_text.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +graphics_support.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +image_to_3d_matrix.h + + + + + +Node1->Node79 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node3 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..0819c57 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg @@ -0,0 +1,1661 @@ + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +bsp/esp-bsp.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +esp_text.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +graphics_support.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +image_to_3d_matrix.h + + + + + +Node1->Node79 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node3 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 new file mode 100644 index 0000000..ddfaf75 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 @@ -0,0 +1 @@ +14552d159a36a965afa4304797e7f116 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg new file mode 100644 index 0000000..4daeab2 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +update_scaling_matrix + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +update_translation +_matrix + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg new file mode 100644 index 0000000..4146521 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg @@ -0,0 +1,112 @@ + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +update_scaling_matrix + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +update_translation +_matrix + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 new file mode 100644 index 0000000..6024b7f --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 @@ -0,0 +1 @@ +2266305b39ef96d552e75c43d830b45f \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg new file mode 100644 index 0000000..4ece788 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg new file mode 100644 index 0000000..233b727 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 new file mode 100644 index 0000000..19f76a9 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 @@ -0,0 +1 @@ +8eb4ec50c810bd1166bdbc67ba654b59 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg new file mode 100644 index 0000000..818fa6c --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg new file mode 100644 index 0000000..63022eb --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..d724c77 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +89294b33006a0ceb20e0c03521d6e5e8 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..2e27449 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..a755ad3 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..faaa512 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +b8e23a7a98a1cd4ee7a8f38dd1425e6f \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..f69cdf4 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_ssd1306_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +init_3d_matrix_struct + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +init_perspective_matrix + + + + + +Node1->Node16 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +update_scaling_matrix + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +ekf::eul2rotm + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dspm::Mat::t + + + + + +Node12->Node14 + + + + + + + + +Node14->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..b53d421 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,301 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_ssd1306_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +init_3d_matrix_struct + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +init_perspective_matrix + + + + + +Node1->Node16 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +update_scaling_matrix + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +ekf::eul2rotm + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dspm::Mat::t + + + + + +Node12->Node14 + + + + + + + + +Node14->Node6 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 new file mode 100644 index 0000000..36d6003 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 @@ -0,0 +1 @@ +39b95bb449e3585756e86f0687bdc695 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg new file mode 100644 index 0000000..bf3caf8 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg new file mode 100644 index 0000000..39298b0 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg @@ -0,0 +1,175 @@ + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph.md5 new file mode 100644 index 0000000..edd9f9e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph.md5 @@ -0,0 +1 @@ +4a4c6d6b19455511f6cb3b77deef56c3 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph.svg new file mode 100644 index 0000000..4586c16 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph_org.svg new file mode 100644 index 0000000..37372aa --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 new file mode 100644 index 0000000..da06efc --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 @@ -0,0 +1 @@ +223028267c9646beba15c5bac1b55e50 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg new file mode 100644 index 0000000..37a7528 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg new file mode 100644 index 0000000..66daaef --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html new file mode 100644 index 0000000..4b25f44 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html @@ -0,0 +1,364 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include "esp_log.h"
+
9#include "ssd1306.h"
+
10#include "bsp/esp-bsp.h"
+
11#include "esp_dsp.h"
+
12#include "cube_matrix.h"
+
13#include "esp_logo.h"
+
14#include "esp_text.h"
+
15#include "graphics_support.h"
+
16#include "image_to_3d_matrix.h"
+
17
+
18static ssd1306_handle_t ssd1306_dev = NULL;
+
19static bool button_pressed = true;
+
20
+ +
22
+
23extern "C" void app_main();
+
24
+
+ +
34{
+
35#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
37 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
38 ESP_LOGI("3D image demo", "Selected 3D image - ESP Logo");
+
39#elif CONFIG_3D_OBJECT_CUSTOM
+ +
41 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
42 ESP_LOGI("3D image demo", "Selected 3D image - User's custom image");
+
43#elif CONFIG_3D_OBJECT_CUBE
+
44 image->matrix = cube_vectors_3d;
+
45 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
46 ESP_LOGI("3D image demo", "Selected 3D image - 3D cube");
+
47#endif
+
48}
+
+
49
+
+
53static void app_ssd1306_init(void)
+
54{
+
55 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
56 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
57 ssd1306_refresh_gram(ssd1306_dev);
+
58}
+
+
59
+
+
68static void display_3d_image(dspm::Mat projected_image)
+
69{
+
70 ssd1306_clear_screen(ssd1306_dev, 0);
+
71
+
72 if (OBJECT_3D_CUBE) {
+
73 // For the 3D cube, only the 6 points of the cube are transformed
+
74 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
75 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
76 ssd1306_draw_line(ssd1306_dev,
+
77 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
78 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
79 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
80 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
81 }
+
82 } else {
+
83 // Every other 3D image is drawn here pixel by pixel
+
84 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
85 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
86 }
+
87 }
+
88 ssd1306_refresh_gram(ssd1306_dev);
+
89}
+
+
90
+
+
96static void dispaly_esp_text(void)
+
97{
+
98 image_3d_matrix_t esp_text;
+ +
100 esp_text.matrix_len = ((sizeof(image_3d_array_esp_text)) / sizeof(float)) / MATRIX_SIZE;
+
101 int16_t shift_x = -SSD1606_X_CENTER;
+
102
+
103 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
104 dspm::Mat transformed_image(esp_text.matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
105 dspm::Mat matrix_3d((float *)esp_text.matrix[0], esp_text.matrix_len, MATRIX_SIZE);
+
106
+
107 ESP_LOGI("3D image demo", "Showing ESP text");
+
108
+
109 for (int i = 0; i < 52; i++) {
+
110 update_translation_matrix(T, true, (float)shift_x, (float)SSD1606_Y_CENTER, 0);
+
111 transformed_image = matrix_3d * T;
+
112
+
113 ssd1306_clear_screen(ssd1306_dev, 0);
+
114 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
115 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
116 }
+
117 ssd1306_refresh_gram(ssd1306_dev);
+
118 vTaskDelay(50 / portTICK_PERIOD_MS);
+
119
+
120 shift_x += 5;
+
121 }
+
122
+
123 ssd1306_clear_screen(ssd1306_dev, 0);
+
124 ssd1306_draw_bitmap(ssd1306_dev, 0, 24, &image_bmp_array_esp_text[0], 128, 24);
+
125 ssd1306_refresh_gram(ssd1306_dev);
+
126
+ +
128 vTaskDelay(100 / portTICK_PERIOD_MS);
+
129
+
130 float scale = 1;
+
131 for (int i = 0; i < 20; i++) {
+
132 update_scaling_matrix(T, false, scale, scale, 1);
+
133 transformed_image = matrix_3d * T;
+
134
+
135 ssd1306_clear_screen(ssd1306_dev, 0);
+
136 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
137 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
138 }
+
139 ssd1306_refresh_gram(ssd1306_dev);
+
140 vTaskDelay(50 / portTICK_PERIOD_MS);
+
141
+
142 if (i < 10) {
+
143 scale -= 0.05;
+
144 } else {
+
145 scale += 0.05;
+
146 }
+
147 }
+
148}
+
+
149
+
+
157static void draw_3d_image_task(void *arg)
+
158{
+
159 float rot_y = 0, rot_x = 0;
+
160 const float angle_increment = 4;
+ +
162
+
163 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
164 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
165 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
166 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
167
+
168 if (OBJECT_3D_CUBE) {
+
169 rot_x = 45;
+
170 }
+
171
+
172 while (1) {
+
173 if (button_pressed) {
+
174 rot_y += angle_increment;
+
175 if (rot_y >= 360) {
+
176 rot_y -= 360;
+
177 }
+
178 } else {
+
179 rot_y -= angle_increment;
+
180 if (rot_y <= 0) {
+
181 rot_y += 360;
+
182 }
+
183 }
+
184
+
185 // Apply rotation in all the axes to the transformation matrix
+
186 update_rotation_matrix(T, rot_x, rot_y, 0);
+
187 // Apply translation to the transformation matrix
+
188 update_translation_matrix(T, true, ((float)SSD1606_X_CENTER), ((float)SSD1606_Y_CENTER), 0);
+
189
+
190 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
191 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
192
+
193 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
194 transformed_image = matrix_3d * T;
+
195 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
196 projected_image = transformed_image * perspective_matrix;
+
197
+
198 display_3d_image(projected_image);
+
199 vTaskDelay(20 / portTICK_PERIOD_MS);
+
200 }
+
201}
+
+
202
+
+
203void app_main(void)
+
204{
+
205 static bool button_prev_val = false;
+ + +
208 ekf13->Init();
+
209
+
210 // Init all board components
+
211 bsp_i2c_init();
+
212 app_ssd1306_init(); // display init
+
213 bsp_leds_init(); // LEDs init
+
214 bsp_i2c_set_clk_speed(I2C_CLK_600KHZ); // Set I2C to 600kHz
+
215
+ + +
218
+ +
220 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
221
+
222 xTaskCreate(draw_3d_image_task, "draw_3d_image", 2048, &image, 4, NULL);
+
223 ESP_LOGI("3D image demo", "Showing 3D image");
+
224
+
225 while (1) {
+
226 if (bsp_button_get()) {
+ +
228 }
+
229
+
230 if (button_prev_val != button_pressed) {
+
231 button_prev_val = button_pressed;
+
232 if (button_pressed) {
+
233 bsp_led_set(BSP_LED_AZURE, true);
+
234 } else {
+
235 bsp_led_set(BSP_LED_AZURE, false);
+
236 }
+
237 }
+
238 vTaskDelay(100 / portTICK_PERIOD_MS);
+
239 }
+
240}
+
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void dispaly_esp_text(void)
Display ESPRESSIF text.
+
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ + +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
static void app_ssd1306_init(void)
Initialize display.
+ + + + + +
const float image_3d_matrix_esp_logo[1427][4]
+ + +
const float image_to_3d_matrix_custom[1732][4]
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+ + + + +
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html new file mode 100644 index 0000000..90cb429 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html @@ -0,0 +1,1513 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include <malloc.h>
+#include "mpu6050.h"
+#include "ssd1306.h"
+#include "mag3110.h"
+#include "fbm320.h"
+#include "bsp/esp-bsp.h"
+#include "esp_log.h"
+#include "esp_timer.h"
+#include "esp_idf_version.h"
+#include "nvs.h"
+#include "nvs_flash.h"
+#include "graphics_support.h"
+#include "cube_matrix.h"
+#include "esp_dsp.h"
+#include "ekf_imu13states.h"
+#include "esp_logo.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Macros

#define STORAGE_NAMESPACE   "kalman_filter"
#define USE_BAROMETER   0
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void app_main ()
static void app_mag3110_init (void)
 Initialize magnetometer.
static void app_ssd1306_init (void)
 Initialize display.
static void mpu6050_init (void)
 Initialize accelerometer and gyroscope.
static void app_fbm320_init (void)
 Initialize pressure sensor.
static void init_nvs_flash_memory (void)
 Initialize NVS flash memory.
static void init_3d_matrix_struct (image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
 Initialize 3d image structure.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void draw_3d_image (ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
 Draw a 3d image.
static void kalman_filter_task (void *arg)
 Kalman filter RTOS task (or ESP timer callback).
static void kalman_filter_calibration (image_3d_matrix_kalman_t *image)
 Kalman filter calibration procedure.
static void save_state_vectors_task (void *arg)
 RTOS task to periodically save the filter state.
static void get_pressure_task (void *arg)
 ROTS task to read a pressure.
float get_initial_pressure (void)
 read the initial value of pressure
+ + + + + + + + +

+Variables

static ssd1306_handle_t ssd1306_dev = NULL
static mpu6050_handle_t mpu6050_dev = NULL
static mag3110_handle_t mag3110_dev = NULL
static fbm320_handle_t fbm320_dev = NULL
static bool kalman_filter_calibrated = false
static bool board_inactive = true
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
+

Macro Definition Documentation

+ +

◆ STORAGE_NAMESPACE

+ + + +

◆ USE_BAROMETER

+ +
+
+ + + + +
#define USE_BAROMETER   0
+
+
+

Function Documentation

+ +

◆ app_fbm320_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_fbm320_init (void )
+
+static
+
+ +

Initialize pressure sensor.

+ +

Definition at line 78 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
79{
+
80 esp_err_t ret;
+
81 fbm320_dev = fbm320_create((i2c_port_t)BSP_I2C_NUM, FBM320_I2C_ADDRESS_1);
+
82 ret = fbm320_init(fbm320_dev);
+
83 assert(ESP_OK == ret);
+
84}
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK, and fbm320_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_mag3110_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_mag3110_init (void )
+
+static
+
+ +

Initialize magnetometer.

+ +

Definition at line 44 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
45{
+
46 esp_err_t ret;
+
47 mag3110_dev = mag3110_create((i2c_port_t)BSP_I2C_NUM);
+
48 mag3110_start_raw(mag3110_dev, MAG3110_DR_OS_80_16);
+
49 assert(ESP_OK == ret);
+
50}
+ +
+

References ESP_OK, and mag3110_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 575 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
576{
+ + +
579 ekf13->Init();
+
580
+
581 // Init all board components
+
582 bsp_i2c_init();
+
583 app_ssd1306_init(); // display init
+
584 mpu6050_init(); // gyro, acc init
+
585 app_mag3110_init(); // magnetometer init
+
586 app_fbm320_init(); // barometer init
+
587 bsp_leds_init(); // LEDs init
+
588 init_nvs_flash_memory(); // Non-Volatile Storage
+
589
+ + + +
593
+
594 // Use a barometer for measuring the altitude
+
595 if (USE_BAROMETER) {
+
596 float init_pressure = get_initial_pressure();
+
597 xTaskCreate(get_pressure_task, "get_pressure_task", 2048 * 4, &init_pressure, 4, NULL);
+
598 } else {
+
599 ESP_LOGI("Barometer", "disabled");
+
600 }
+
601
+
602 xTaskCreate(kalman_filter_task, "kalman_filter_task", 2048 * 4, &image, 5, NULL);
+
603 xTaskCreate(save_state_vectors_task, "save_state_vectors", 2048, ekf13, 6, NULL);
+
604
+
605 while (1) {
+
606 vTaskDelay(10000 / portTICK_PERIOD_MS);
+
607 }
+
608}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void mpu6050_init(void)
Initialize accelerometer and gyroscope.
+
static void kalman_filter_calibration(image_3d_matrix_kalman_t *image)
Kalman filter calibration procedure.
+ +
float get_initial_pressure(void)
read the initial value of pressure
+
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+
static void app_mag3110_init(void)
Initialize magnetometer.
+
static void init_nvs_flash_memory(void)
Initialize NVS flash memory.
+
static void app_fbm320_init(void)
Initialize pressure sensor.
+
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+
static void init_3d_matrix_struct(image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
Initialize 3d image structure.
+
static void app_ssd1306_init(void)
Initialize display.
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+ + + +
This class is used to process and calculate attitude from imu sensors.
+
+

References app_fbm320_init(), app_mag3110_init(), app_ssd1306_init(), bsp_i2c_init(), ekf13, get_initial_pressure(), get_pressure_task(), image, init_3d_matrix_struct(), init_nvs_flash_memory(), init_perspective_matrix(), kalman_filter_calibration(), kalman_filter_task(), mpu6050_init(), perspective_matrix, save_state_vectors_task(), and USE_BAROMETER.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ app_ssd1306_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_ssd1306_init (void )
+
+static
+
+ +

Initialize display.

+ +

Definition at line 55 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
56{
+
57 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
58 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
59 ssd1306_refresh_gram(ssd1306_dev);
+
60}
+ +
+

References ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 136 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
137{
+
138 ssd1306_clear_screen(ssd1306_dev, 0);
+
139
+
140 if (OBJECT_3D_CUBE) {
+
141 // For the 3D cube, only the 6 points of the cube are transformed
+
142 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
143 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
144 ssd1306_draw_line(ssd1306_dev,
+
145 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
146 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
147 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
148 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
149 }
+
150 } else {
+
151 // Every other 3D image is drawn here pixel by pixel
+
152 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
153 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
154 }
+
155 }
+
156 ssd1306_refresh_gram(ssd1306_dev);
+
157}
+ + + + +
int rows
Definition mat.h:33
+
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, OBJECT_3D_CUBE, dspm::Mat::rows, and ssd1306_dev.

+ +

Referenced by draw_3d_image().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
void draw_3d_image (ekf_imu13states * ekf13,
dspm::Mat & transformed_image,
dspm::Mat & projected_image,
dspm::Mat & matrix_3d )
+
+static
+
+ +

Draw a 3d image.

+

Updates 3d matrices and prepares the final 3d matrix to be displayed on the display. Board inactivity check - decides which board mode to display (active or inactive), based on the board movements.

+
Parameters
+ + + + + +
ekf13kalman filter object
transformed_image3d matrix holding a 3d image after transformation
projected_image3d matrix holding a 3d image after projection
matrix_3d3d matrix holding the original 3d image, without any transformation
+
+
+ +

Definition at line 170 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
171{
+
172 static const float movement_treshold = 0.0001; // threshold to decide between Idle and Active state of the board
+
173 static float inactive_rotation = 0; // rotation angle (in degrees) for Idle state
+
174 static unsigned int inactivity_count = 0;
+
175 static const unsigned int inactivity_count_treshold = 75;
+
176 static unsigned int inactivity_check = 0; // activity of the board is being checked once in N calls of the function
+
177 static float prev_state_arr[3] = {0, 0, 0}; // holds the previous state of the Euler angles, to compare the diff
+
178
+
179 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
180 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data); // matrix(3x1) that holds x, y, z rotation data
+
181 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
182
+
183 // check if the board is active or not every N calls of the function
+
184 if (!(inactivity_check++ % 10)) {
+
185 dspm::Mat prev_state_mat(prev_state_arr, 3, 1);
+
186 dspm::Mat diff = eul_angles - prev_state_mat;
+
187 prev_state_mat = eul_angles;
+
188
+
189 float max_diff = fabs(diff(0, 0) * diff(1, 0) * diff(2, 0));
+
190
+
191 // wake-up the board if the current board movement crosses the threshold
+
192 if (board_inactive && (max_diff > movement_treshold)) {
+
193 board_inactive = false;
+
194 ESP_LOGI("Board status", "board put to active mode");
+
195 }
+
196
+
197 // if the board is awake, and the current movement of the board is lower than the threshold - the board is
+
198 // being moved with - run the inactivity_counter
+
199 // after some time (if the movement of the board has been lower than the threshold) put the board to idle mode
+
200 else if (!board_inactive && (max_diff < movement_treshold)) {
+
201 if (inactivity_count > inactivity_count_treshold) {
+
202 board_inactive = true;
+
203 inactivity_count = 0;
+
204 ESP_LOGI("Board status", "board put to idle mode");
+ +
206 }
+
207 inactivity_count++;
+
208 }
+
209
+
210 // if the board is awake and the current movement of the board is higher than the threshold clear the inactivity_counter
+
211 else if (!board_inactive && (max_diff >= movement_treshold)) {
+
212 inactivity_count = 0;
+
213 }
+
214 }
+
215
+
216 if (board_inactive) {
+
217 // board idle state - display a rotating cube
+
218 update_rotation_matrix(T, inactive_rotation += 3.0, 10.0, 10.0);
+
219 } else {
+
220 // board active state - 3D object follows movements of the board
+
221 eul_angles(2, 0) = -eul_angles(2, 0);
+
222 dspm::Mat R = ekf::eul2rotm(eul_angles.data);
+
223
+
224 // Enlarge rotation matrix from 3x3 to 4x4
+
225 // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
226 for (int row = 0; row < R.rows; row++) {
+
227 for (int col = 0; col < R.cols; col++) {
+
228 T(row, col) = R(row, col);
+
229 }
+
230 }
+
231 }
+
232
+
233 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
234 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
235
+
236 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
237 transformed_image = matrix_3d * T;
+
238 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
239 projected_image = transformed_image * perspective_matrix;
+
240 display_3d_image(projected_image);
+
241}
+ +
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
int cols
Definition mat.h:34
+
static Mat eye(int size)
Definition mat.cpp:394
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
+

References board_inactive, dspm::Mat::cols, dspm::Mat::data, display_3d_image(), ekf13, ekf::eul2rotm(), dspm::Mat::eye(), MATRIX_SIZE, perspective_matrix, ekf::quat2rotm(), ekf::rotm2eul(), dspm::Mat::rows, update_perspective_matrix(), and update_rotation_matrix().

+ +

Referenced by kalman_filter_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ get_initial_pressure()

+ +
+
+ + + + + + + +
float get_initial_pressure (void )
+
+ +

read the initial value of pressure

+ +

Definition at line 541 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
542{
+
543 float pressure;
+
544 int32_t real_p, real_t;
+
545 int averagning_loop_count = 500;
+
546
+
547 ESP_LOGI("Barometer", "Averagining initial barometer pressure");
+
548 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
549 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Barometer", 16, 1);
+
550 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"averaging", 16, 1);
+
551 ssd1306_refresh_gram(ssd1306_dev);
+
552
+
553 // take the first pressure measurement
+
554 while (1) {
+
555 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
556 pressure = ((float)real_p) / 1000.0; // pressure in kPa
+
557 break;
+
558 }
+
559 }
+
560
+
561 // average first N measurements
+
562 while (averagning_loop_count--) {
+
563 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
564 pressure = (0.999 * pressure) + (0.001 * ((float)real_p) / 1000.0);
+
565 vTaskDelay(100 / portTICK_PERIOD_MS);
+
566 }
+
567 }
+
568
+
569 ESP_LOGI("Barometer", "Initial value set");
+
570 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
571 ssd1306_refresh_gram(ssd1306_dev);
+
572 return (pressure);
+
573}
+
+

References ESP_OK, fbm320_dev, and ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ get_pressure_task()

+ +
+
+ + + + + +
+ + + + + + + +
void get_pressure_task (void * arg)
+
+static
+
+ +

ROTS task to read a pressure.

+

Pressure is measured periodically to better average out a stable value of pressure

+
Parameters
+ + +
argpointer to RTOS task arguments, pointer to the pressure variable in this case
+
+
+ +

Definition at line 497 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
498{
+
499 int32_t real_p, real_t;
+
500 float *pressure_ptr = (float *)arg;
+
501 float pressure_global = *pressure_ptr;
+
502
+
503 int call_count = 0;
+
504 int call_count1 = 0;
+
505 float pressure_initial = pressure_global;
+
506 float last_pressure = pressure_global;
+
507 float baro_image = pressure_global;
+
508 bool changed = false;
+
509
+
510 while (1) {
+
511 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
512 pressure_global = (0.999 * pressure_global) + (0.001 * ((float)real_p) / 1000.0);
+
513 call_count1++;
+
514 }
+
515
+
516 if (board_inactive) {
+
517 pressure_initial = pressure_global;
+
518 last_pressure = pressure_global;
+
519 baro_image = pressure_global;
+
520 } else {
+
521 call_count++;
+
522 if (fabs(pressure_global - last_pressure) > 0.0005) { // cahnge more than 0.5 Pa
+
523 last_pressure = pressure_global;
+
524 baro_image = (0.9 * baro_image) + (0.1 * last_pressure);
+
525 changed = true;
+
526 }
+
527
+
528 if ((!(call_count % 10)) && changed) {
+
529 float fov = 90 + (1000.0 * ((float)(pressure_initial - baro_image)));
+ +
531 changed = false;
+
532 }
+
533 }
+
534 vTaskDelay(100 / portTICK_PERIOD_MS);
+
535 }
+
536}
+
+

References board_inactive, ESP_OK, fbm320_dev, perspective_matrix, and update_perspective_matrix().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_kalman_t * image,
ekf_imu13states * ekf13 )
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + + +
imagepointer to 3d image structure
ekf13kalman filter object
+
+
+ +

Definition at line 110 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
111{
+
112#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
114 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
115 ESP_LOGI("Kalman filter demo", "Selected 3D image - ESP Logo");
+
116#elif CONFIG_3D_OBJECT_CUSTOM
+ +
118 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
119 ESP_LOGI("Kalman filter demo", "Selected 3D image - User's custom image");
+
120#elif CONFIG_3D_OBJECT_CUBE
+
121 image->matrix = cube_vectors_3d;
+
122 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
123 ESP_LOGI("Kalman filter demo", "Selected 3D image - 3D cube");
+
124#endif
+
125 image->ekf13 = ekf13;
+
126}
+ +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
+

References cube_vectors_3d, ekf13, image, image_3d_matrix_esp_logo, image_to_3d_matrix_custom, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ init_nvs_flash_memory()

+ +
+
+ + + + + +
+ + + + + + + +
void init_nvs_flash_memory (void )
+
+static
+
+ +

Initialize NVS flash memory.

+ +

Definition at line 89 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
90{
+
91 esp_err_t err = nvs_flash_init();
+
92 if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+
93 // NVS partition was truncated and needs to be erased
+
94 // Retry nvs_flash_init
+
95 ESP_ERROR_CHECK(nvs_flash_erase());
+
96 err = nvs_flash_init();
+
97 }
+
98 ESP_ERROR_CHECK( err );
+
99}
+
+

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ kalman_filter_calibration()

+ +
+
+ + + + + +
+ + + + + + + +
void kalman_filter_calibration (image_3d_matrix_kalman_t * image)
+
+static
+
+ +

Kalman filter calibration procedure.

+

The Kalman filter must be calibrated before the very first run. The state of the Kalman filter is saved into NVS after the calibration. The calibration is run, only if no Kalman filter state is saved in the NVS. Which occurs after erasing the flash memory. Power cycling the board does not remove the Kalman filter state from the NVS.

+
Parameters
+ + +
imagepointer to 3d image structure
+
+
+ +

Definition at line 326 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
327{
+
328 ekf_imu13states *ekf13 = image->ekf13;
+
329 esp_err_t ret;
+
330 nvs_handle_t nvs_handle_kalman;
+
331 size_t state_vectors_size = 13 * 14;
+
332 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
333
+
334 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
335 if (ret != ESP_OK) {
+
336 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
337 assert(ESP_OK == ret);
+
338 }
+
339
+
340 // Read previously saved blob, if available
+
341 size_t required_size = 0; // value will default to 0, if not set yet in NVS
+
342 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", NULL, &required_size);
+
343 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
344 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
345 assert(ESP_OK == ret);
+
346 }
+
347
+
348 if (required_size > 0) {
+
349 ESP_LOGI("Kalman filter demo", "Filter state vectors present in the NVS");
+
350 ESP_LOGI("Kalman filter demo", "Loading state vectors into the filter structure");
+
351
+
352 size_t state_vectors_size_addr = state_vectors_size * sizeof(float);
+
353 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", state_vectors, &state_vectors_size_addr);
+
354 if (ret != ESP_OK) {
+
355 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
356 assert(ESP_OK == ret);
+
357 }
+
358
+
359 for (int i = 0; i < state_vectors_size; i++) {
+
360 if (i < state_vectors_size - 13) {
+
361 ekf13->P.data[i] = state_vectors[i];
+
362 } else {
+
363 ekf13->X.data[i - (state_vectors_size - 13)] = state_vectors[i];
+
364 }
+
365 }
+
366
+
367 ESP_LOGI("Kalman filter demo", "State vectors loaded from the NVS");
+
368 nvs_close(nvs_handle_kalman);
+
369
+
370 } else {
+
371 ESP_LOGI("Kalman filter demo", "Filter state vectors not present in the NVS");
+
372 const float kalman_timer_period_us = 100000;
+
373
+
374 // ESP timer for the Kalman filter calibration
+
375 const esp_timer_create_args_t kalman_calibration_timer_config = {
+
376 .callback = kalman_filter_task,
+
377 .arg = image,
+
378 .dispatch_method = ESP_TIMER_TASK,
+
379 .name = "kalman_filter_calibration_timer",
+
380#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0)
+
381 .skip_unhandled_events = true,
+
382#endif
+
383 };
+
384
+
385 esp_timer_handle_t kalman_calibration_timer = NULL;
+
386 ret = esp_timer_create(&kalman_calibration_timer_config, &kalman_calibration_timer);
+
387 assert(ESP_OK == ret);
+
388 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
389
+
390 ESP_LOGI("Kalman filter demo", "Starting Kalman filter calibration loop");
+
391
+
392 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
393 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Kalman filter", 16, 1);
+
394 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"calibration", 16, 1);
+
395 ssd1306_refresh_gram(ssd1306_dev);
+
396
+
397 ret = esp_timer_start_periodic(kalman_calibration_timer, kalman_timer_period_us);
+
398 assert(ESP_OK == ret);
+
399 vTaskDelay(100000 / portTICK_PERIOD_MS);
+
400
+
401 ret = esp_timer_stop(kalman_calibration_timer);
+
402 assert(ESP_OK == ret);
+
403 ret = esp_timer_delete(kalman_calibration_timer);
+
404 assert(ESP_OK == ret);
+
405 ESP_LOGI("Kalman filter demo", "Exiting Kalman filter calibration loop");
+
406 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
407 ssd1306_refresh_gram(ssd1306_dev);
+
408 vTaskDelay(100 / portTICK_PERIOD_MS);
+
409
+
410 dspm::Mat estimated_error(&ekf13->X.data[4], 3, 1);
+
411
+
412 ESP_LOGI("Kalman filter demo", "Estimated gyroscope bias error [deg/sec]: %.6f\t%.6f\t%.6f",
+
413 estimated_error.data[0], estimated_error.data[1], estimated_error.data[2]);
+
414
+
415 for (int i = 0; i < state_vectors_size; i++) {
+
416 if (i < state_vectors_size - 13) {
+
417 state_vectors[i] = ekf13->P.data[i];
+
418 } else {
+
419 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
420 }
+
421 }
+
422
+
423 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
424 assert(ESP_OK == ret);
+
425 ret = nvs_commit(nvs_handle_kalman);
+
426 assert(ESP_OK == ret);
+
427 nvs_close(nvs_handle_kalman);
+
428 ESP_LOGI("Kalman filter demo", "State vectors saved to the NVS");
+
429 }
+
430 // Set the initial state of the X vector
+
431 ekf13->X(0, 0) = 1;
+
432 ekf13->X(0, 1) = 0;
+
433 ekf13->X(0, 2) = 0;
+
434 ekf13->X(0, 3) = 0;
+
435 free(state_vectors);
+ +
437}
+ + +
+

References dspm::Mat::data, ekf13, ESP_OK, image, kalman_filter_calibrated, kalman_filter_task(), ssd1306_dev, and STORAGE_NAMESPACE.

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ kalman_filter_task()

+ +
+
+ + + + + +
+ + + + + + + +
void kalman_filter_task (void * arg)
+
+static
+
+ +

Kalman filter RTOS task (or ESP timer callback).

+

Takes IMU sensors measurements to be processed by the Kalman filter Function is used as: RTOS task - during normal Kalman filter operation ESP Timer callback function - during Kalman filter calibration process

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 253 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
254{
+
255 mpu6050_acce_value_t acce_sample;
+
256 mpu6050_gyro_value_t gyro_sample;
+
257 mag3110_result_t mag_sample;
+
258
+
259 image_3d_matrix_kalman_t *kalman_filter_args = (image_3d_matrix_kalman_t *)arg;
+
260 ekf_imu13states *ekf13 = kalman_filter_args->ekf13;
+
261 dspm::Mat transformed_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
262 dspm::Mat projected_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
263 dspm::Mat matrix_3d((float *)kalman_filter_args->matrix[0], kalman_filter_args->matrix_len, MATRIX_SIZE);
+
264
+
265 // Covariance matrix for Kalman filter, set specifically for this development board IMU sensors
+
266 float R_m[10] = {0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.000001, 0.000001, 0.000001, 0.000001};
+ +
268
+
269 while (1) {
+
270 // dt calculation
+
271 static float prev_time = 0;
+
272 const float current_time = dsp_get_cpu_cycle_count();
+
273 float dt = 0;
+
274
+
275 // Crystal count difference conversion to Dt time constant
+
276 if (current_time > prev_time) {
+
277 dt = current_time - prev_time;
+
278 dt = dt / 240000000.0;
+
279 }
+
280 prev_time = current_time;
+
281
+
282 // Get all the sensors values
+
283 mpu6050_get_acce(mpu6050_dev, &acce_sample);
+
284 mpu6050_get_gyro(mpu6050_dev, &gyro_sample);
+
285 mag3110_get_magnetic_induction(mag3110_dev, &mag_sample);
+
286
+
287 // Make arrays from the sensors values
+
288 float gyro_input_arr[3] = {gyro_sample.gyro_x, gyro_sample.gyro_y, gyro_sample.gyro_z};
+
289 float accel_input_arr[3] = {acce_sample.acce_x, acce_sample.acce_y, acce_sample.acce_z};
+
290 float mag_input_arr[3] = {(float)mag_sample.x, (float)mag_sample.y, (float)mag_sample.z};
+
291
+
292 // Accel and Mag data to Mat class
+
293 dspm::Mat gyro_input_mat(gyro_input_arr, 3, 1);
+
294 dspm::Mat accel_input_mat(accel_input_arr, 3, 1);
+
295 dspm::Mat mag_input_mat(mag_input_arr, 3, 1);
+
296
+
297 // Normalize vectors
+
298 dspm::Mat accel_norm = accel_input_mat / accel_input_mat.norm();
+
299 dspm::Mat magn_norm = mag_input_mat / mag_input_mat.norm();
+
300 gyro_input_mat *= DEG_TO_RAD;
+
301
+
302 ekf13->Process(gyro_input_mat.data, dt);
+
303 ekf13->UpdateRefMeasurementMagn(accel_norm.data, magn_norm.data, R_m);
+
304
+ +
306 // Use the function as RTOS task for the filter calculation
+
307 draw_3d_image(ekf13, transformed_image, projected_image, matrix_3d);
+
308 vTaskDelay(20 / portTICK_PERIOD_MS);
+
309 } else {
+
310 // Use the function as a callback for kalman_filter_calibration_timer
+
311 break;
+
312 }
+
313 }
+
314}
+ +
static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
Draw a 3d image.
+ +
float norm(void)
Definition mat.cpp:456
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+ + + +
+

References dspm::Mat::data, DEG_TO_RAD, draw_3d_image(), dsp_get_cpu_cycle_count, ekf13, image_3d_matrix_kalman_s::ekf13, kalman_filter_calibrated, mag3110_dev, image_3d_matrix_kalman_s::matrix, image_3d_matrix_kalman_s::matrix_len, MATRIX_SIZE, mpu6050_dev, dspm::Mat::norm(), perspective_matrix, and update_perspective_matrix().

+ +

Referenced by app_main(), kalman_filter_calibration(), kalman_filter_calibration(), kalman_filter_calibration(), and kalman_filter_calibration().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ mpu6050_init()

+ +
+
+ + + + + +
+ + + + + + + +
void mpu6050_init (void )
+
+static
+
+ +

Initialize accelerometer and gyroscope.

+ +

Definition at line 65 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
66{
+
67 esp_err_t ret;
+
68 mpu6050_dev = mpu6050_create((i2c_port_t)BSP_I2C_NUM, MPU6050_I2C_ADDRESS);
+
69 ret = mpu6050_config(mpu6050_dev, ACCE_FS_8G, GYRO_FS_2000DPS);
+
70 assert(ESP_OK == ret);
+
71 ret = mpu6050_wake_up(mpu6050_dev);
+
72 assert(ESP_OK == ret);
+
73}
+
+

References ESP_OK, and mpu6050_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ save_state_vectors_task()

+ +
+
+ + + + + +
+ + + + + + + +
void save_state_vectors_task (void * arg)
+
+static
+
+ +

RTOS task to periodically save the filter state.

+

The Kalman filter state is periodically saved into the NVS, each 5 min. So a recent Kalman filter state could be loaded into the Kalman filter object after a power cycle.

+
Parameters
+ + +
argpointer to RTOS task arguments, Kalman filter object in this case
+
+
+ +

Definition at line 447 of file applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
448{
+
449 esp_err_t ret;
+
450 size_t state_vectors_size = 13 * 14;
+
451 nvs_handle_t nvs_handle_kalman;
+ +
453 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // 5min
+
454
+
455 while (1) {
+
456 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
457
+
458 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
459 if (ret != ESP_OK) {
+
460 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
461 assert(ESP_OK == ret);
+
462 }
+
463
+
464 for (int i = 0; i < state_vectors_size; i++) {
+
465 if (i < state_vectors_size - 13) {
+
466 state_vectors[i] = ekf13->P.data[i];
+
467 } else {
+
468 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
469 }
+
470 }
+
471
+
472 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
473 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
474 ESP_LOGE("NVS error", "(%s) writing data to NVS!\n", esp_err_to_name(ret));
+
475 assert(ESP_OK == ret);
+
476 }
+
477
+
478 ret = nvs_commit(nvs_handle_kalman);
+
479 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
480 ESP_LOGE("NVS error", "(%s) commiting data to NVS!\n", esp_err_to_name(ret));
+
481 assert(ESP_OK == ret);
+
482 }
+
483 nvs_close(nvs_handle_kalman);
+
484 ESP_LOGI("Kalman filter demo", "State vectors saved to NVS");
+
485 free(state_vectors);
+
486 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // Save the State vectors each 5 min
+
487 }
+
488}
+
+

References ekf13, ESP_OK, and STORAGE_NAMESPACE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ board_inactive

+ + + +

◆ fbm320_dev

+ + + +

◆ kalman_filter_calibrated

+ + + +

◆ mag3110_dev

+ + + +

◆ mpu6050_dev

+ +
+
+ + + + + +
+ + + + +
mpu6050_handle_t mpu6050_dev = NULL
+
+static
+
+
+ +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ ssd1306_dev

+ +
+
+ + + + + +
+ + + + +
ssd1306_handle_t ssd1306_dev = NULL
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js new file mode 100644 index 0000000..5d69676 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js @@ -0,0 +1,26 @@ +var applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp = +[ + [ "STORAGE_NAMESPACE", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a56bd385f1d47f204f712650694661d7c", null ], + [ "USE_BAROMETER", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a28a213aef1cec2da92d153aca74d5ff4", null ], + [ "app_fbm320_init", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#abf02d1479863a05aa4759131e408264e", null ], + [ "app_mag3110_init", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a944145b69708f61a94696cd081386d5a", null ], + [ "app_main", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "app_ssd1306_init", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#afac7c47eff81b6719e589256c8799d5e", null ], + [ "display_3d_image", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2955b9e77f5bd23f109feaaed1496af5", null ], + [ "get_initial_pressure", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2ccb3a970d903b791f523902ab06d694", null ], + [ "get_pressure_task", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a7cbec0bc78cfb4326f8b5c19d7f9a5bb", null ], + [ "init_3d_matrix_struct", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#af4bd9d0f6d48907b5fbbdbed6f06f20d", null ], + [ "init_nvs_flash_memory", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#aba35410bb6759629444f03a95bbd7c98", null ], + [ "kalman_filter_calibration", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a1967e917dafd16b5f02410c5b10c1d90", null ], + [ "kalman_filter_task", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#af43b34764385f3f1ad35ce1c00db220f", null ], + [ "mpu6050_init", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a0d450ba4dd28ea2acb105a3ece7db976", null ], + [ "save_state_vectors_task", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2f69aa0d08a5e85a5016ab08dbdc20fb", null ], + [ "board_inactive", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a0cb5fd0b779570c9bc7ca9ae81fb9f52", null ], + [ "fbm320_dev", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a7e278910e0d93695081edda9a0ff4891", null ], + [ "kalman_filter_calibrated", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a6165c3d5123b67289075877c26f707e6", null ], + [ "mag3110_dev", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#ae2eb1aa71f1392378fb30d571f9700e4", null ], + [ "mpu6050_dev", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a275b510afcb5dff24fa20de057c25293", null ], + [ "perspective_matrix", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "ssd1306_dev", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a001a4d44724bfb0668ac6de0d351ae75", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 new file mode 100644 index 0000000..ca910da --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +163cd7e45918432a7237f940c2f1e423 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg new file mode 100644 index 0000000..08eebbf --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg @@ -0,0 +1,1915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_demo.cpp + + +Node1 + + +kalman_filter_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +malloc.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mpu6050.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +mag3110.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +fbm320.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +bsp/esp-bsp.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +esp_timer.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +nvs.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +nvs_flash.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +graphics_support.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +cube_matrix.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node1->Node17 + + + + + + + + +Node84 + + +ekf_imu13states.h + + + + + +Node1->Node84 + + + + + + + + +Node89 + + +esp_logo.h + + + + + +Node1->Node89 + + + + + + + + +Node90 + + +image_to_3d_matrix.h + + + + + +Node1->Node90 + + + + + + + + +Node10 + + +stdlib.h + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +dsp_common.h + + + + + +Node17->Node18 + + + + + + + + +Node25 + + +dsp_types.h + + + + + +Node17->Node25 + + + + + + + + +Node27 + + +dsps_dotprod.h + + + + + +Node17->Node27 + + + + + + + + +Node30 + + +dsps_math.h + + + + + +Node17->Node30 + + + + + + + + +Node42 + + +dsps_fir.h + + + + + +Node17->Node42 + + + + + + + + +Node44 + + +dsps_resampler.h + + + + + +Node17->Node44 + + + + + + + + +Node45 + + +dsps_biquad.h + + + + + +Node17->Node45 + + + + + + + + +Node47 + + +dsps_biquad_gen.h + + + + + +Node17->Node47 + + + + + + + + +Node48 + + +dsps_wind.h + + + + + +Node17->Node48 + + + + + + + + +Node55 + + +dsps_conv.h + + + + + +Node17->Node55 + + + + + + + + +Node57 + + +dsps_corr.h + + + + + +Node17->Node57 + + + + + + + + +Node58 + + +dsps_d_gen.h + + + + + +Node17->Node58 + + + + + + + + +Node59 + + +dsps_h_gen.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dsps_tone_gen.h + + + + + +Node17->Node60 + + + + + + + + +Node61 + + +dsps_snr.h + + + + + +Node17->Node61 + + + + + + + + +Node62 + + +dsps_sfdr.h + + + + + +Node17->Node62 + + + + + + + + +Node63 + + +dsps_fft2r.h + + + + + +Node17->Node63 + + + + + + + + +Node66 + + +dsps_fft4r.h + + + + + +Node17->Node66 + + + + + + + + +Node68 + + +dsps_dct.h + + + + + +Node17->Node68 + + + + + + + + +Node69 + + +dspm_matrix.h + + + + + +Node17->Node69 + + + + + + + + +Node80 + + +dsps_view.h + + + + + +Node17->Node80 + + + + + + + + +Node81 + + +dspi_dotprod.h + + + + + +Node17->Node81 + + + + + + + + +Node83 + + +dspi_conv.h + + + + + +Node17->Node83 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +stdint.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +stdbool.h + + + + + +Node18->Node20 + + + + + + + + +Node21 + + +dsp_err.h + + + + + +Node18->Node21 + + + + + + + + +Node24 + + +x86intrin.h + + + + + +Node18->Node24 + + + + + + + + +Node21->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26 + + +inttypes.h + + + + + +Node25->Node26 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +dsps_dotprod_platform.h + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +sdkconfig.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_add.h + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +dsps_sub.h + + + + + +Node30->Node33 + + + + + + + + +Node35 + + +dsps_mul.h + + + + + +Node30->Node35 + + + + + + + + +Node37 + + +dsps_addc.h + + + + + +Node30->Node37 + + + + + + + + +Node39 + + +dsps_mulc.h + + + + + +Node30->Node39 + + + + + + + + +Node41 + + +dsps_sqrt.h + + + + + +Node30->Node41 + + + + + + + + +Node31->Node21 + + + + + + + + +Node33->Node21 + + + + + + + + +Node35->Node21 + + + + + + + + +Node37->Node21 + + + + + + + + +Node39->Node21 + + + + + + + + +Node41->Node21 + + + + + + + + +Node42->Node18 + + + + + + + + +Node42->Node21 + + + + + + + + +Node43 + + +dsps_fir_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node29 + + + + + + + + +Node44->Node21 + + + + + + + + +Node44->Node42 + + + + + + + + +Node45->Node21 + + + + + + + + +Node46 + + +dsps_biquad_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node29 + + + + + + + + +Node47->Node21 + + + + + + + + +Node49 + + +dsps_wind_hann.h + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman.h + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +dsps_wind_blackman +_harris.h + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node48->Node52 + + + + + + + + +Node53 + + +dsps_wind_nuttall.h + + + + + +Node48->Node53 + + + + + + + + +Node54 + + +dsps_wind_flat_top.h + + + + + +Node48->Node54 + + + + + + + + +Node55->Node21 + + + + + + + + +Node56 + + +dsps_conv_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node29 + + + + + + + + +Node57->Node21 + + + + + + + + +Node57->Node56 + + + + + + + + +Node58->Node21 + + + + + + + + +Node59->Node21 + + + + + + + + +Node60->Node21 + + + + + + + + +Node61->Node21 + + + + + + + + +Node62->Node21 + + + + + + + + +Node63->Node21 + + + + + + + + +Node63->Node29 + + + + + + + + +Node64 + + +dsps_fft_tables.h + + + + + +Node63->Node64 + + + + + + + + +Node65 + + +dsps_fft2r_platform.h + + + + + +Node63->Node65 + + + + + + + + +Node65->Node29 + + + + + + + + +Node66->Node21 + + + + + + + + +Node66->Node29 + + + + + + + + +Node66->Node64 + + + + + + + + +Node67 + + +dsps_fft4r_platform.h + + + + + +Node66->Node67 + + + + + + + + +Node67->Node29 + + + + + + + + +Node68->Node21 + + + + + + + + +Node68->Node29 + + + + + + + + +Node70 + + +dspm_add.h + + + + + +Node69->Node70 + + + + + + + + +Node72 + + +dspm_addc.h + + + + + +Node69->Node72 + + + + + + + + +Node74 + + +dspm_mult.h + + + + + +Node69->Node74 + + + + + + + + +Node76 + + +dspm_mulc.h + + + + + +Node69->Node76 + + + + + + + + +Node78 + + +dspm_sub.h + + + + + +Node69->Node78 + + + + + + + + +Node70->Node21 + + + + + + + + +Node72->Node21 + + + + + + + + +Node74->Node21 + + + + + + + + +Node76->Node21 + + + + + + + + +Node78->Node21 + + + + + + + + +Node80->Node21 + + + + + + + + +Node81->Node9 + + + + + + + + +Node81->Node21 + + + + + + + + +Node81->Node25 + + + + + + + + +Node82 + + +dspi_dotprod_platform.h + + + + + +Node81->Node82 + + + + + + + + +Node82->Node29 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node25 + + + + + + + + +Node83->Node56 + + + + + + + + +Node85 + + +ekf.h + + + + + +Node84->Node85 + + + + + + + + +Node85->Node19 + + + + + + + + +Node85->Node20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..8c6973a --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg @@ -0,0 +1,1832 @@ + + + + + + +kalman_filter_demo.cpp + + +Node1 + + +kalman_filter_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +malloc.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mpu6050.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +mag3110.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +fbm320.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +bsp/esp-bsp.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +esp_timer.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +nvs.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +nvs_flash.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +graphics_support.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +cube_matrix.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node1->Node17 + + + + + + + + +Node84 + + +ekf_imu13states.h + + + + + +Node1->Node84 + + + + + + + + +Node89 + + +esp_logo.h + + + + + +Node1->Node89 + + + + + + + + +Node90 + + +image_to_3d_matrix.h + + + + + +Node1->Node90 + + + + + + + + +Node10 + + +stdlib.h + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +dsp_common.h + + + + + +Node17->Node18 + + + + + + + + +Node25 + + +dsp_types.h + + + + + +Node17->Node25 + + + + + + + + +Node27 + + +dsps_dotprod.h + + + + + +Node17->Node27 + + + + + + + + +Node30 + + +dsps_math.h + + + + + +Node17->Node30 + + + + + + + + +Node42 + + +dsps_fir.h + + + + + +Node17->Node42 + + + + + + + + +Node44 + + +dsps_resampler.h + + + + + +Node17->Node44 + + + + + + + + +Node45 + + +dsps_biquad.h + + + + + +Node17->Node45 + + + + + + + + +Node47 + + +dsps_biquad_gen.h + + + + + +Node17->Node47 + + + + + + + + +Node48 + + +dsps_wind.h + + + + + +Node17->Node48 + + + + + + + + +Node55 + + +dsps_conv.h + + + + + +Node17->Node55 + + + + + + + + +Node57 + + +dsps_corr.h + + + + + +Node17->Node57 + + + + + + + + +Node58 + + +dsps_d_gen.h + + + + + +Node17->Node58 + + + + + + + + +Node59 + + +dsps_h_gen.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dsps_tone_gen.h + + + + + +Node17->Node60 + + + + + + + + +Node61 + + +dsps_snr.h + + + + + +Node17->Node61 + + + + + + + + +Node62 + + +dsps_sfdr.h + + + + + +Node17->Node62 + + + + + + + + +Node63 + + +dsps_fft2r.h + + + + + +Node17->Node63 + + + + + + + + +Node66 + + +dsps_fft4r.h + + + + + +Node17->Node66 + + + + + + + + +Node68 + + +dsps_dct.h + + + + + +Node17->Node68 + + + + + + + + +Node69 + + +dspm_matrix.h + + + + + +Node17->Node69 + + + + + + + + +Node80 + + +dsps_view.h + + + + + +Node17->Node80 + + + + + + + + +Node81 + + +dspi_dotprod.h + + + + + +Node17->Node81 + + + + + + + + +Node83 + + +dspi_conv.h + + + + + +Node17->Node83 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +stdint.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +stdbool.h + + + + + +Node18->Node20 + + + + + + + + +Node21 + + +dsp_err.h + + + + + +Node18->Node21 + + + + + + + + +Node24 + + +x86intrin.h + + + + + +Node18->Node24 + + + + + + + + +Node21->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26 + + +inttypes.h + + + + + +Node25->Node26 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +dsps_dotprod_platform.h + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +sdkconfig.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_add.h + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +dsps_sub.h + + + + + +Node30->Node33 + + + + + + + + +Node35 + + +dsps_mul.h + + + + + +Node30->Node35 + + + + + + + + +Node37 + + +dsps_addc.h + + + + + +Node30->Node37 + + + + + + + + +Node39 + + +dsps_mulc.h + + + + + +Node30->Node39 + + + + + + + + +Node41 + + +dsps_sqrt.h + + + + + +Node30->Node41 + + + + + + + + +Node31->Node21 + + + + + + + + +Node33->Node21 + + + + + + + + +Node35->Node21 + + + + + + + + +Node37->Node21 + + + + + + + + +Node39->Node21 + + + + + + + + +Node41->Node21 + + + + + + + + +Node42->Node18 + + + + + + + + +Node42->Node21 + + + + + + + + +Node43 + + +dsps_fir_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node29 + + + + + + + + +Node44->Node21 + + + + + + + + +Node44->Node42 + + + + + + + + +Node45->Node21 + + + + + + + + +Node46 + + +dsps_biquad_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node29 + + + + + + + + +Node47->Node21 + + + + + + + + +Node49 + + +dsps_wind_hann.h + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman.h + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +dsps_wind_blackman +_harris.h + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node48->Node52 + + + + + + + + +Node53 + + +dsps_wind_nuttall.h + + + + + +Node48->Node53 + + + + + + + + +Node54 + + +dsps_wind_flat_top.h + + + + + +Node48->Node54 + + + + + + + + +Node55->Node21 + + + + + + + + +Node56 + + +dsps_conv_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node29 + + + + + + + + +Node57->Node21 + + + + + + + + +Node57->Node56 + + + + + + + + +Node58->Node21 + + + + + + + + +Node59->Node21 + + + + + + + + +Node60->Node21 + + + + + + + + +Node61->Node21 + + + + + + + + +Node62->Node21 + + + + + + + + +Node63->Node21 + + + + + + + + +Node63->Node29 + + + + + + + + +Node64 + + +dsps_fft_tables.h + + + + + +Node63->Node64 + + + + + + + + +Node65 + + +dsps_fft2r_platform.h + + + + + +Node63->Node65 + + + + + + + + +Node65->Node29 + + + + + + + + +Node66->Node21 + + + + + + + + +Node66->Node29 + + + + + + + + +Node66->Node64 + + + + + + + + +Node67 + + +dsps_fft4r_platform.h + + + + + +Node66->Node67 + + + + + + + + +Node67->Node29 + + + + + + + + +Node68->Node21 + + + + + + + + +Node68->Node29 + + + + + + + + +Node70 + + +dspm_add.h + + + + + +Node69->Node70 + + + + + + + + +Node72 + + +dspm_addc.h + + + + + +Node69->Node72 + + + + + + + + +Node74 + + +dspm_mult.h + + + + + +Node69->Node74 + + + + + + + + +Node76 + + +dspm_mulc.h + + + + + +Node69->Node76 + + + + + + + + +Node78 + + +dspm_sub.h + + + + + +Node69->Node78 + + + + + + + + +Node70->Node21 + + + + + + + + +Node72->Node21 + + + + + + + + +Node74->Node21 + + + + + + + + +Node76->Node21 + + + + + + + + +Node78->Node21 + + + + + + + + +Node80->Node21 + + + + + + + + +Node81->Node9 + + + + + + + + +Node81->Node21 + + + + + + + + +Node81->Node25 + + + + + + + + +Node82 + + +dspi_dotprod_platform.h + + + + + +Node81->Node82 + + + + + + + + +Node82->Node29 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node25 + + + + + + + + +Node83->Node56 + + + + + + + + +Node85 + + +ekf.h + + + + + +Node84->Node85 + + + + + + + + +Node85->Node19 + + + + + + + + +Node85->Node20 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 new file mode 100644 index 0000000..7766da7 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 @@ -0,0 +1 @@ +e2c87bfc1f2a1e9c5cba961781c1c665 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg new file mode 100644 index 0000000..358704a --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +mpu6050_init + + +Node1 + + +mpu6050_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg new file mode 100644 index 0000000..c86447a --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +mpu6050_init + + +Node1 + + +mpu6050_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 new file mode 100644 index 0000000..b372913 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 @@ -0,0 +1 @@ +e40c0de31645dbe2629932c4d9c79047 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg new file mode 100644 index 0000000..6bfadfc --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +update_perspective +_matrix + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +dspm::Mat::norm + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +display_3d_image + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ekf::eul2rotm + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +ekf::quat2rotm + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +ekf::rotm2eul + + + + + +Node3->Node10 + + + + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node3->Node12 + + + + + + + + +Node12->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg new file mode 100644 index 0000000..a354002 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg @@ -0,0 +1,220 @@ + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +update_perspective +_matrix + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +dspm::Mat::norm + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +display_3d_image + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ekf::eul2rotm + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +ekf::quat2rotm + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +ekf::rotm2eul + + + + + +Node3->Node10 + + + + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node3->Node12 + + + + + + + + +Node12->Node5 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 new file mode 100644 index 0000000..31f845e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 @@ -0,0 +1 @@ +d06e11ed3d0009180686647b3194acc6 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg new file mode 100644 index 0000000..c9e5adf --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg new file mode 100644 index 0000000..f679f70 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 new file mode 100644 index 0000000..0112f1c --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 @@ -0,0 +1 @@ +6d12ed93b79d563c0984a96f9e2df7aa \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg new file mode 100644 index 0000000..aca69de --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::eul2rotm + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::eye + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::rotm2eul + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +update_perspective +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_rotation_matrix + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dspm::Mat::Mat + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dspm::Mat::allocate + + + + + +Node5->Node6 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm::Mat::t + + + + + +Node10->Node11 + + + + + + + + +Node11->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg new file mode 100644 index 0000000..8a6ba09 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg @@ -0,0 +1,220 @@ + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::eul2rotm + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::eye + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::rotm2eul + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +update_perspective +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_rotation_matrix + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dspm::Mat::Mat + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dspm::Mat::allocate + + + + + +Node5->Node6 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm::Mat::t + + + + + +Node10->Node11 + + + + + + + + +Node11->Node5 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 new file mode 100644 index 0000000..feca88b --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 @@ -0,0 +1 @@ +81bf4256cad612b02e53d9500b122502 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg new file mode 100644 index 0000000..f9d741d --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg @@ -0,0 +1,218 @@ + + + + + + + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +kalman_filter_calibration + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +kalman_filter_calibration + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +kalman_filter_calibration + + + + + +Node2->Node9 + + + + + + + + +Node4->Node3 + + + + + + + + +Node6 + + +app_main + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +app_main + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +app_main + + + + + +Node9->Node10 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg new file mode 100644 index 0000000..5b1acdf --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg @@ -0,0 +1,192 @@ + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +kalman_filter_calibration + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +kalman_filter_calibration + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +kalman_filter_calibration + + + + + +Node2->Node9 + + + + + + + + +Node4->Node3 + + + + + + + + +Node6 + + +app_main + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +app_main + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +app_main + + + + + +Node9->Node10 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 new file mode 100644 index 0000000..31ca625 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 @@ -0,0 +1 @@ +6c1a0dd66ad69e8585c23b284bc7f42f \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg new file mode 100644 index 0000000..4f31cbf --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +get_initial_pressure + + +Node1 + + +get_initial_pressure + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg new file mode 100644 index 0000000..63f56a2 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +get_initial_pressure + + +Node1 + + +get_initial_pressure + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph.md5 new file mode 100644 index 0000000..8fcba34 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph.md5 @@ -0,0 +1 @@ +5d4239feb4374bcc7ab64d52fba8d64e \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph.svg new file mode 100644 index 0000000..c7615fb --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +save_state_vectors_task + + +Node1 + + +save_state_vectors_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph_org.svg new file mode 100644 index 0000000..0f6cc1a --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2f69aa0d08a5e85a5016ab08dbdc20fb_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +save_state_vectors_task + + +Node1 + + +save_state_vectors_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..8c46678 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +57ce347158e1de878e93d989c9ada1d8 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..7c0bb0a --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..4f2fd8e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,156 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 new file mode 100644 index 0000000..19f9685 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 @@ -0,0 +1 @@ +ce05f3ba266be5216aacba74be538c5a \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg new file mode 100644 index 0000000..fc00805 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +update_perspective +_matrix + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg new file mode 100644 index 0000000..e9c7495 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +update_perspective +_matrix + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.md5 new file mode 100644 index 0000000..4e230cf --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.md5 @@ -0,0 +1 @@ +b705bd59e994540719beb6ce7695dc28 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.svg new file mode 100644 index 0000000..c8baecd --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph_org.svg new file mode 100644 index 0000000..25deb38 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 new file mode 100644 index 0000000..6856f41 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 @@ -0,0 +1 @@ +0c94edc05b337e927cf378304673ba04 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg new file mode 100644 index 0000000..6b1dc1d --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_mag3110_init + + +Node1 + + +app_mag3110_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg new file mode 100644 index 0000000..a8c70a1 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_mag3110_init + + +Node1 + + +app_mag3110_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 new file mode 100644 index 0000000..ce1d39c --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 @@ -0,0 +1 @@ +5d1f5ed79873ddbe0ef9310c27ffb4e5 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg new file mode 100644 index 0000000..d74d45c --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_nvs_flash_memory + + +Node1 + + +init_nvs_flash_memory + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg new file mode 100644 index 0000000..4b7947d --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_nvs_flash_memory + + +Node1 + + +init_nvs_flash_memory + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..d3a6860 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +1ee6c6a819804fda4cb25c0d1890d496 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..e022c76 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,420 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_fbm320_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_mag3110_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +app_ssd1306_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +get_initial_pressure + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +get_pressure_task + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +init_3d_matrix_struct + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +init_nvs_flash_memory + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +init_perspective_matrix + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_calibration + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node25 + + +mpu6050_init + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +save_state_vectors_task + + + + + +Node1->Node26 + + + + + + + + +Node8 + + +update_perspective +_matrix + + + + + +Node7->Node8 + + + + + + + + +Node12->Node13 + + + + + + + + +Node13->Node8 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node13->Node14 + + + + + + + + +Node24 + + +dspm::Mat::norm + + + + + +Node13->Node24 + + + + + + + + +Node14->Node8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..6c8d36f --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,337 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_fbm320_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_mag3110_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +app_ssd1306_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +get_initial_pressure + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +get_pressure_task + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +init_3d_matrix_struct + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +init_nvs_flash_memory + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +init_perspective_matrix + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_calibration + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node25 + + +mpu6050_init + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +save_state_vectors_task + + + + + +Node1->Node26 + + + + + + + + +Node8 + + +update_perspective +_matrix + + + + + +Node7->Node8 + + + + + + + + +Node12->Node13 + + + + + + + + +Node13->Node8 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node13->Node14 + + + + + + + + +Node24 + + +dspm::Mat::norm + + + + + +Node13->Node24 + + + + + + + + +Node14->Node8 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 new file mode 100644 index 0000000..5bcfc79 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 @@ -0,0 +1 @@ +e73d12dd4d2082398194f3af96441a00 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg new file mode 100644 index 0000000..651c4fb --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_fbm320_init + + +Node1 + + +app_fbm320_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg new file mode 100644 index 0000000..997ea8d --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_fbm320_init + + +Node1 + + +app_fbm320_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 new file mode 100644 index 0000000..790e8b2 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 @@ -0,0 +1 @@ +f76071f0d8dc3af5078a0ce4f93b6b2f \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg new file mode 100644 index 0000000..81f3399 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +update_perspective +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +dspm::Mat::norm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +display_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf::eul2rotm + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node2->Node11 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +dspm::Mat::t + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg new file mode 100644 index 0000000..fbe2e86 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg @@ -0,0 +1,247 @@ + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +update_perspective +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +dspm::Mat::norm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +display_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf::eul2rotm + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node2->Node11 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +dspm::Mat::t + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph.md5 new file mode 100644 index 0000000..b9cb4bd --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph.md5 @@ -0,0 +1 @@ +2168a91a1d013ce29faa6b0e81bbd835 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph.svg new file mode 100644 index 0000000..7bd50cf --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_calibration + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +kalman_filter_calibration + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node1->Node8 + + + + + + + + +Node3->Node2 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph_org.svg new file mode 100644 index 0000000..e6514c0 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_icgraph_org.svg @@ -0,0 +1,174 @@ + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_calibration + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +kalman_filter_calibration + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node1->Node8 + + + + + + + + +Node3->Node2 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 new file mode 100644 index 0000000..a0a8a13 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 @@ -0,0 +1 @@ +2e77bb27ca1a40d1dc4290d222d82298 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg new file mode 100644 index 0000000..ccb50b2 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg new file mode 100644 index 0000000..4abf4ba --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 new file mode 100644 index 0000000..180cd9d --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 @@ -0,0 +1 @@ +45df5fab90f8f1223e2bf42db7f800bf \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg new file mode 100644 index 0000000..52f9bc6 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg new file mode 100644 index 0000000..92e4012 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html new file mode 100644 index 0000000..9894e8d --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html @@ -0,0 +1,720 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include <malloc.h>
+
9#include "mpu6050.h"
+
10#include "ssd1306.h"
+
11#include "mag3110.h"
+
12#include "fbm320.h"
+
13#include "bsp/esp-bsp.h"
+
14#include "esp_log.h"
+
15#include "esp_timer.h"
+
16#include "esp_idf_version.h" // for backward compatibility of esp-timer
+
17#include "nvs.h"
+
18#include "nvs_flash.h"
+
19#include "graphics_support.h"
+
20#include "cube_matrix.h"
+
21#include "esp_dsp.h"
+
22#include "ekf_imu13states.h"
+
23#include "esp_logo.h"
+
24#include "image_to_3d_matrix.h"
+
25
+
26#define STORAGE_NAMESPACE "kalman_filter"
+
27#define USE_BAROMETER 0
+
28
+
29static ssd1306_handle_t ssd1306_dev = NULL;
+
30static mpu6050_handle_t mpu6050_dev = NULL;
+
31static mag3110_handle_t mag3110_dev = NULL;
+
32static fbm320_handle_t fbm320_dev = NULL;
+
33
+
34static bool kalman_filter_calibrated = false;
+
35static bool board_inactive = true;
+
36
+ +
38
+
39extern "C" void app_main();
+
40
+
+
44static void app_mag3110_init(void)
+
45{
+
46 esp_err_t ret;
+
47 mag3110_dev = mag3110_create((i2c_port_t)BSP_I2C_NUM);
+
48 mag3110_start_raw(mag3110_dev, MAG3110_DR_OS_80_16);
+
49 assert(ESP_OK == ret);
+
50}
+
+
51
+
+
55static void app_ssd1306_init(void)
+
56{
+
57 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
58 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
59 ssd1306_refresh_gram(ssd1306_dev);
+
60}
+
+
61
+
+
65static void mpu6050_init(void)
+
66{
+
67 esp_err_t ret;
+
68 mpu6050_dev = mpu6050_create((i2c_port_t)BSP_I2C_NUM, MPU6050_I2C_ADDRESS);
+
69 ret = mpu6050_config(mpu6050_dev, ACCE_FS_8G, GYRO_FS_2000DPS);
+
70 assert(ESP_OK == ret);
+
71 ret = mpu6050_wake_up(mpu6050_dev);
+
72 assert(ESP_OK == ret);
+
73}
+
+
74
+
+
78static void app_fbm320_init(void)
+
79{
+
80 esp_err_t ret;
+
81 fbm320_dev = fbm320_create((i2c_port_t)BSP_I2C_NUM, FBM320_I2C_ADDRESS_1);
+
82 ret = fbm320_init(fbm320_dev);
+
83 assert(ESP_OK == ret);
+
84}
+
+
85
+
+
89static void init_nvs_flash_memory(void)
+
90{
+
91 esp_err_t err = nvs_flash_init();
+
92 if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+
93 // NVS partition was truncated and needs to be erased
+
94 // Retry nvs_flash_init
+
95 ESP_ERROR_CHECK(nvs_flash_erase());
+
96 err = nvs_flash_init();
+
97 }
+
98 ESP_ERROR_CHECK( err );
+
99}
+
+
100
+
+ +
111{
+
112#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
114 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
115 ESP_LOGI("Kalman filter demo", "Selected 3D image - ESP Logo");
+
116#elif CONFIG_3D_OBJECT_CUSTOM
+ +
118 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
119 ESP_LOGI("Kalman filter demo", "Selected 3D image - User's custom image");
+
120#elif CONFIG_3D_OBJECT_CUBE
+
121 image->matrix = cube_vectors_3d;
+
122 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
123 ESP_LOGI("Kalman filter demo", "Selected 3D image - 3D cube");
+
124#endif
+
125 image->ekf13 = ekf13;
+
126}
+
+
127
+
+
136static void display_3d_image(dspm::Mat projected_image)
+
137{
+
138 ssd1306_clear_screen(ssd1306_dev, 0);
+
139
+
140 if (OBJECT_3D_CUBE) {
+
141 // For the 3D cube, only the 6 points of the cube are transformed
+
142 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
143 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
144 ssd1306_draw_line(ssd1306_dev,
+
145 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
146 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
147 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
148 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
149 }
+
150 } else {
+
151 // Every other 3D image is drawn here pixel by pixel
+
152 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
153 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
154 }
+
155 }
+
156 ssd1306_refresh_gram(ssd1306_dev);
+
157}
+
+
158
+
+
170static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
+
171{
+
172 static const float movement_treshold = 0.0001; // threshold to decide between Idle and Active state of the board
+
173 static float inactive_rotation = 0; // rotation angle (in degrees) for Idle state
+
174 static unsigned int inactivity_count = 0;
+
175 static const unsigned int inactivity_count_treshold = 75;
+
176 static unsigned int inactivity_check = 0; // activity of the board is being checked once in N calls of the function
+
177 static float prev_state_arr[3] = {0, 0, 0}; // holds the previous state of the Euler angles, to compare the diff
+
178
+
179 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
180 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data); // matrix(3x1) that holds x, y, z rotation data
+
181 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
182
+
183 // check if the board is active or not every N calls of the function
+
184 if (!(inactivity_check++ % 10)) {
+
185 dspm::Mat prev_state_mat(prev_state_arr, 3, 1);
+
186 dspm::Mat diff = eul_angles - prev_state_mat;
+
187 prev_state_mat = eul_angles;
+
188
+
189 float max_diff = fabs(diff(0, 0) * diff(1, 0) * diff(2, 0));
+
190
+
191 // wake-up the board if the current board movement crosses the threshold
+
192 if (board_inactive && (max_diff > movement_treshold)) {
+
193 board_inactive = false;
+
194 ESP_LOGI("Board status", "board put to active mode");
+
195 }
+
196
+
197 // if the board is awake, and the current movement of the board is lower than the threshold - the board is
+
198 // being moved with - run the inactivity_counter
+
199 // after some time (if the movement of the board has been lower than the threshold) put the board to idle mode
+
200 else if (!board_inactive && (max_diff < movement_treshold)) {
+
201 if (inactivity_count > inactivity_count_treshold) {
+
202 board_inactive = true;
+
203 inactivity_count = 0;
+
204 ESP_LOGI("Board status", "board put to idle mode");
+ +
206 }
+
207 inactivity_count++;
+
208 }
+
209
+
210 // if the board is awake and the current movement of the board is higher than the threshold clear the inactivity_counter
+
211 else if (!board_inactive && (max_diff >= movement_treshold)) {
+
212 inactivity_count = 0;
+
213 }
+
214 }
+
215
+
216 if (board_inactive) {
+
217 // board idle state - display a rotating cube
+
218 update_rotation_matrix(T, inactive_rotation += 3.0, 10.0, 10.0);
+
219 } else {
+
220 // board active state - 3D object follows movements of the board
+
221 eul_angles(2, 0) = -eul_angles(2, 0);
+
222 dspm::Mat R = ekf::eul2rotm(eul_angles.data);
+
223
+
224 // Enlarge rotation matrix from 3x3 to 4x4
+
225 // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
226 for (int row = 0; row < R.rows; row++) {
+
227 for (int col = 0; col < R.cols; col++) {
+
228 T(row, col) = R(row, col);
+
229 }
+
230 }
+
231 }
+
232
+
233 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
234 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
235
+
236 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
237 transformed_image = matrix_3d * T;
+
238 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
239 projected_image = transformed_image * perspective_matrix;
+
240 display_3d_image(projected_image);
+
241}
+
+
242
+
+
253static void kalman_filter_task(void *arg)
+
254{
+
255 mpu6050_acce_value_t acce_sample;
+
256 mpu6050_gyro_value_t gyro_sample;
+
257 mag3110_result_t mag_sample;
+
258
+
259 image_3d_matrix_kalman_t *kalman_filter_args = (image_3d_matrix_kalman_t *)arg;
+
260 ekf_imu13states *ekf13 = kalman_filter_args->ekf13;
+
261 dspm::Mat transformed_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
262 dspm::Mat projected_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
263 dspm::Mat matrix_3d((float *)kalman_filter_args->matrix[0], kalman_filter_args->matrix_len, MATRIX_SIZE);
+
264
+
265 // Covariance matrix for Kalman filter, set specifically for this development board IMU sensors
+
266 float R_m[10] = {0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.000001, 0.000001, 0.000001, 0.000001};
+ +
268
+
269 while (1) {
+
270 // dt calculation
+
271 static float prev_time = 0;
+
272 const float current_time = dsp_get_cpu_cycle_count();
+
273 float dt = 0;
+
274
+
275 // Crystal count difference conversion to Dt time constant
+
276 if (current_time > prev_time) {
+
277 dt = current_time - prev_time;
+
278 dt = dt / 240000000.0;
+
279 }
+
280 prev_time = current_time;
+
281
+
282 // Get all the sensors values
+
283 mpu6050_get_acce(mpu6050_dev, &acce_sample);
+
284 mpu6050_get_gyro(mpu6050_dev, &gyro_sample);
+
285 mag3110_get_magnetic_induction(mag3110_dev, &mag_sample);
+
286
+
287 // Make arrays from the sensors values
+
288 float gyro_input_arr[3] = {gyro_sample.gyro_x, gyro_sample.gyro_y, gyro_sample.gyro_z};
+
289 float accel_input_arr[3] = {acce_sample.acce_x, acce_sample.acce_y, acce_sample.acce_z};
+
290 float mag_input_arr[3] = {(float)mag_sample.x, (float)mag_sample.y, (float)mag_sample.z};
+
291
+
292 // Accel and Mag data to Mat class
+
293 dspm::Mat gyro_input_mat(gyro_input_arr, 3, 1);
+
294 dspm::Mat accel_input_mat(accel_input_arr, 3, 1);
+
295 dspm::Mat mag_input_mat(mag_input_arr, 3, 1);
+
296
+
297 // Normalize vectors
+
298 dspm::Mat accel_norm = accel_input_mat / accel_input_mat.norm();
+
299 dspm::Mat magn_norm = mag_input_mat / mag_input_mat.norm();
+
300 gyro_input_mat *= DEG_TO_RAD;
+
301
+
302 ekf13->Process(gyro_input_mat.data, dt);
+
303 ekf13->UpdateRefMeasurementMagn(accel_norm.data, magn_norm.data, R_m);
+
304
+ +
306 // Use the function as RTOS task for the filter calculation
+
307 draw_3d_image(ekf13, transformed_image, projected_image, matrix_3d);
+
308 vTaskDelay(20 / portTICK_PERIOD_MS);
+
309 } else {
+
310 // Use the function as a callback for kalman_filter_calibration_timer
+
311 break;
+
312 }
+
313 }
+
314}
+
+
315
+
+ +
327{
+
328 ekf_imu13states *ekf13 = image->ekf13;
+
329 esp_err_t ret;
+
330 nvs_handle_t nvs_handle_kalman;
+
331 size_t state_vectors_size = 13 * 14;
+
332 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
333
+
334 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
335 if (ret != ESP_OK) {
+
336 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
337 assert(ESP_OK == ret);
+
338 }
+
339
+
340 // Read previously saved blob, if available
+
341 size_t required_size = 0; // value will default to 0, if not set yet in NVS
+
342 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", NULL, &required_size);
+
343 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
344 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
345 assert(ESP_OK == ret);
+
346 }
+
347
+
348 if (required_size > 0) {
+
349 ESP_LOGI("Kalman filter demo", "Filter state vectors present in the NVS");
+
350 ESP_LOGI("Kalman filter demo", "Loading state vectors into the filter structure");
+
351
+
352 size_t state_vectors_size_addr = state_vectors_size * sizeof(float);
+
353 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", state_vectors, &state_vectors_size_addr);
+
354 if (ret != ESP_OK) {
+
355 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
356 assert(ESP_OK == ret);
+
357 }
+
358
+
359 for (int i = 0; i < state_vectors_size; i++) {
+
360 if (i < state_vectors_size - 13) {
+
361 ekf13->P.data[i] = state_vectors[i];
+
362 } else {
+
363 ekf13->X.data[i - (state_vectors_size - 13)] = state_vectors[i];
+
364 }
+
365 }
+
366
+
367 ESP_LOGI("Kalman filter demo", "State vectors loaded from the NVS");
+
368 nvs_close(nvs_handle_kalman);
+
369
+
370 } else {
+
371 ESP_LOGI("Kalman filter demo", "Filter state vectors not present in the NVS");
+
372 const float kalman_timer_period_us = 100000;
+
373
+
374 // ESP timer for the Kalman filter calibration
+
375 const esp_timer_create_args_t kalman_calibration_timer_config = {
+
376 .callback = kalman_filter_task,
+
377 .arg = image,
+
378 .dispatch_method = ESP_TIMER_TASK,
+
379 .name = "kalman_filter_calibration_timer",
+
380#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0)
+
381 .skip_unhandled_events = true,
+
382#endif
+
383 };
+
384
+
385 esp_timer_handle_t kalman_calibration_timer = NULL;
+
386 ret = esp_timer_create(&kalman_calibration_timer_config, &kalman_calibration_timer);
+
387 assert(ESP_OK == ret);
+
388 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
389
+
390 ESP_LOGI("Kalman filter demo", "Starting Kalman filter calibration loop");
+
391
+
392 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
393 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Kalman filter", 16, 1);
+
394 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"calibration", 16, 1);
+
395 ssd1306_refresh_gram(ssd1306_dev);
+
396
+
397 ret = esp_timer_start_periodic(kalman_calibration_timer, kalman_timer_period_us);
+
398 assert(ESP_OK == ret);
+
399 vTaskDelay(100000 / portTICK_PERIOD_MS);
+
400
+
401 ret = esp_timer_stop(kalman_calibration_timer);
+
402 assert(ESP_OK == ret);
+
403 ret = esp_timer_delete(kalman_calibration_timer);
+
404 assert(ESP_OK == ret);
+
405 ESP_LOGI("Kalman filter demo", "Exiting Kalman filter calibration loop");
+
406 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
407 ssd1306_refresh_gram(ssd1306_dev);
+
408 vTaskDelay(100 / portTICK_PERIOD_MS);
+
409
+
410 dspm::Mat estimated_error(&ekf13->X.data[4], 3, 1);
+
411
+
412 ESP_LOGI("Kalman filter demo", "Estimated gyroscope bias error [deg/sec]: %.6f\t%.6f\t%.6f",
+
413 estimated_error.data[0], estimated_error.data[1], estimated_error.data[2]);
+
414
+
415 for (int i = 0; i < state_vectors_size; i++) {
+
416 if (i < state_vectors_size - 13) {
+
417 state_vectors[i] = ekf13->P.data[i];
+
418 } else {
+
419 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
420 }
+
421 }
+
422
+
423 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
424 assert(ESP_OK == ret);
+
425 ret = nvs_commit(nvs_handle_kalman);
+
426 assert(ESP_OK == ret);
+
427 nvs_close(nvs_handle_kalman);
+
428 ESP_LOGI("Kalman filter demo", "State vectors saved to the NVS");
+
429 }
+
430 // Set the initial state of the X vector
+
431 ekf13->X(0, 0) = 1;
+
432 ekf13->X(0, 1) = 0;
+
433 ekf13->X(0, 2) = 0;
+
434 ekf13->X(0, 3) = 0;
+
435 free(state_vectors);
+ +
437}
+
+
438
+
+
447static void save_state_vectors_task(void *arg)
+
448{
+
449 esp_err_t ret;
+
450 size_t state_vectors_size = 13 * 14;
+
451 nvs_handle_t nvs_handle_kalman;
+ +
453 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // 5min
+
454
+
455 while (1) {
+
456 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
457
+
458 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
459 if (ret != ESP_OK) {
+
460 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
461 assert(ESP_OK == ret);
+
462 }
+
463
+
464 for (int i = 0; i < state_vectors_size; i++) {
+
465 if (i < state_vectors_size - 13) {
+
466 state_vectors[i] = ekf13->P.data[i];
+
467 } else {
+
468 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
469 }
+
470 }
+
471
+
472 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
473 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
474 ESP_LOGE("NVS error", "(%s) writing data to NVS!\n", esp_err_to_name(ret));
+
475 assert(ESP_OK == ret);
+
476 }
+
477
+
478 ret = nvs_commit(nvs_handle_kalman);
+
479 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
480 ESP_LOGE("NVS error", "(%s) commiting data to NVS!\n", esp_err_to_name(ret));
+
481 assert(ESP_OK == ret);
+
482 }
+
483 nvs_close(nvs_handle_kalman);
+
484 ESP_LOGI("Kalman filter demo", "State vectors saved to NVS");
+
485 free(state_vectors);
+
486 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // Save the State vectors each 5 min
+
487 }
+
488}
+
+
489
+
+
497static void get_pressure_task(void *arg)
+
498{
+
499 int32_t real_p, real_t;
+
500 float *pressure_ptr = (float *)arg;
+
501 float pressure_global = *pressure_ptr;
+
502
+
503 int call_count = 0;
+
504 int call_count1 = 0;
+
505 float pressure_initial = pressure_global;
+
506 float last_pressure = pressure_global;
+
507 float baro_image = pressure_global;
+
508 bool changed = false;
+
509
+
510 while (1) {
+
511 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
512 pressure_global = (0.999 * pressure_global) + (0.001 * ((float)real_p) / 1000.0);
+
513 call_count1++;
+
514 }
+
515
+
516 if (board_inactive) {
+
517 pressure_initial = pressure_global;
+
518 last_pressure = pressure_global;
+
519 baro_image = pressure_global;
+
520 } else {
+
521 call_count++;
+
522 if (fabs(pressure_global - last_pressure) > 0.0005) { // cahnge more than 0.5 Pa
+
523 last_pressure = pressure_global;
+
524 baro_image = (0.9 * baro_image) + (0.1 * last_pressure);
+
525 changed = true;
+
526 }
+
527
+
528 if ((!(call_count % 10)) && changed) {
+
529 float fov = 90 + (1000.0 * ((float)(pressure_initial - baro_image)));
+ +
531 changed = false;
+
532 }
+
533 }
+
534 vTaskDelay(100 / portTICK_PERIOD_MS);
+
535 }
+
536}
+
+
537
+
+ +
542{
+
543 float pressure;
+
544 int32_t real_p, real_t;
+
545 int averagning_loop_count = 500;
+
546
+
547 ESP_LOGI("Barometer", "Averagining initial barometer pressure");
+
548 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
549 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Barometer", 16, 1);
+
550 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"averaging", 16, 1);
+
551 ssd1306_refresh_gram(ssd1306_dev);
+
552
+
553 // take the first pressure measurement
+
554 while (1) {
+
555 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
556 pressure = ((float)real_p) / 1000.0; // pressure in kPa
+
557 break;
+
558 }
+
559 }
+
560
+
561 // average first N measurements
+
562 while (averagning_loop_count--) {
+
563 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
564 pressure = (0.999 * pressure) + (0.001 * ((float)real_p) / 1000.0);
+
565 vTaskDelay(100 / portTICK_PERIOD_MS);
+
566 }
+
567 }
+
568
+
569 ESP_LOGI("Barometer", "Initial value set");
+
570 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
571 ssd1306_refresh_gram(ssd1306_dev);
+
572 return (pressure);
+
573}
+
+
574
+
+
575void app_main(void)
+
576{
+ + +
579 ekf13->Init();
+
580
+
581 // Init all board components
+
582 bsp_i2c_init();
+
583 app_ssd1306_init(); // display init
+
584 mpu6050_init(); // gyro, acc init
+
585 app_mag3110_init(); // magnetometer init
+
586 app_fbm320_init(); // barometer init
+
587 bsp_leds_init(); // LEDs init
+
588 init_nvs_flash_memory(); // Non-Volatile Storage
+
589
+ + + +
593
+
594 // Use a barometer for measuring the altitude
+
595 if (USE_BAROMETER) {
+
596 float init_pressure = get_initial_pressure();
+
597 xTaskCreate(get_pressure_task, "get_pressure_task", 2048 * 4, &init_pressure, 4, NULL);
+
598 } else {
+
599 ESP_LOGI("Barometer", "disabled");
+
600 }
+
601
+
602 xTaskCreate(kalman_filter_task, "kalman_filter_task", 2048 * 4, &image, 5, NULL);
+
603 xTaskCreate(save_state_vectors_task, "save_state_vectors", 2048, ekf13, 6, NULL);
+
604
+
605 while (1) {
+
606 vTaskDelay(10000 / portTICK_PERIOD_MS);
+
607 }
+
608}
+
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void mpu6050_init(void)
Initialize accelerometer and gyroscope.
+
static void kalman_filter_calibration(image_3d_matrix_kalman_t *image)
Kalman filter calibration procedure.
+ + +
static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
Draw a 3d image.
+
float get_initial_pressure(void)
read the initial value of pressure
+
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ + +
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+ +
static void app_mag3110_init(void)
Initialize magnetometer.
+
static void init_nvs_flash_memory(void)
Initialize NVS flash memory.
+ +
static void app_fbm320_init(void)
Initialize pressure sensor.
+ +
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+
static void init_3d_matrix_struct(image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
Initialize 3d image structure.
+
static void app_ssd1306_init(void)
Initialize display.
+ + + + + +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + +
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+ + + +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
float norm(void)
Definition mat.cpp:456
+
int cols
Definition mat.h:34
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+ + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ + + + +
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html new file mode 100644 index 0000000..38668da --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html @@ -0,0 +1,285 @@ + + + + + + + +ESP-IDF Firmware: cube_matrix.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cube_matrix.h File Reference
+
+
+
#include <stdint.h>
+#include "graphics_support.h"
+#include "sdkconfig.h"
+
+Include dependency graph for applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Macros

#define CUBE_POINTS   8
#define CUBE_EDGES   12
#define CUBE_SIDE   (SSD1606_Y_CENTER / 2)
#define OBJECT_3D_CUBE   0
+ + + + +

+Variables

const float cube_vectors_3d [8][MATRIX_SIZE]
const uint8_t cube_dict_line_begin [12] = {3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5}
const uint8_t cube_dict_line_end [12] = {1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4}
+

Macro Definition Documentation

+ +

◆ CUBE_EDGES

+ + + +

◆ CUBE_POINTS

+ +
+
+ + + + +
#define CUBE_POINTS   8
+
+
+ +

◆ CUBE_SIDE

+ +
+
+ + + + +
#define CUBE_SIDE   (SSD1606_Y_CENTER / 2)
+
+
+ +

◆ OBJECT_3D_CUBE

+ + +

Variable Documentation

+ +

◆ cube_dict_line_begin

+ +
+
+ + + + +
const uint8_t cube_dict_line_begin[12] = {3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5}
+
+
+ +

◆ cube_dict_line_end

+ +
+
+ + + + +
const uint8_t cube_dict_line_end[12] = {1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4}
+
+
+ +

◆ cube_vectors_3d

+ +
+
+ + + + +
const float cube_vectors_3d[8][MATRIX_SIZE]
+
+Initial value:
=
+
+
{ {- (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{- (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1},
+
{- (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{- (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1}
+
}
+ +
+

Definition at line 23 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h.

+
24{ {-CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // -1, -1, -1
+
25 {-CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // -1, -1, 1
+
26 {-CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // -1, 1, -1
+
27 {-CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1}, // -1, 1, 1
+
28 { CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // 1, -1, -1
+
29 { CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // 1, -1, 1
+
30 { CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // 1, 1, -1
+
31 { CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1} // 1, 1, 1
+
32};
+ +
+

Referenced by init_3d_matrix_struct(), init_3d_matrix_struct(), init_3d_matrix_struct(), init_3d_matrix_struct(), init_3d_matrix_struct(), init_3d_matrix_struct(), init_3d_matrix_struct(), and init_3d_matrix_struct().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js new file mode 100644 index 0000000..b7cd19e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js @@ -0,0 +1,10 @@ +var applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h = +[ + [ "CUBE_EDGES", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a1cb9c677d7b7ad59b4b6599b71fedfed", null ], + [ "CUBE_POINTS", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#ab5bf716bcd3251b5a4ec7133e6e66c87", null ], + [ "CUBE_SIDE", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a43df6fe9cd9f3c33482009f8203a8c84", null ], + [ "OBJECT_3D_CUBE", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#aa25bdff311063f492fd542bef921d064", null ], + [ "cube_dict_line_begin", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a1db8912a1003fad64b1007dee9100146", null ], + [ "cube_dict_line_end", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a760b44bf3eb48533edd79d1130602c07", null ], + [ "cube_vectors_3d", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a8aa62ff0adfa7629f7a3f606af7257aa", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 new file mode 100644 index 0000000..0a5507b --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 @@ -0,0 +1 @@ +332f16a31aff67f6a37dd3471c2f5297 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg new file mode 100644 index 0000000..39df1b0 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +cube_matrix.h + + +Node1 + + +cube_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +graphics_support.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg new file mode 100644 index 0000000..4e69b41 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +cube_matrix.h + + +Node1 + + +cube_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +graphics_support.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html new file mode 100644 index 0000000..b65ee0b --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html @@ -0,0 +1,166 @@ + + + + + + + +ESP-IDF Firmware: cube_matrix.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include <stdint.h>
+
10#include "graphics_support.h"
+
11#include "sdkconfig.h"
+
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
18#define CUBE_POINTS 8
+
19#define CUBE_EDGES 12
+
20#define CUBE_SIDE (SSD1606_Y_CENTER / 2)
+
21
+
22// X Y Z coordinates of the cube centered to (0, 0, 0)
+
+ +
24 // X Y Z W
+
25{ {-CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // -1, -1, -1
+
26 {-CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // -1, -1, 1
+
27 {-CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // -1, 1, -1
+
28 {-CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1}, // -1, 1, 1
+
29 { CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // 1, -1, -1
+
30 { CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // 1, -1, 1
+
31 { CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // 1, 1, -1
+
32 { CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1} // 1, 1, 1
+
33};
+
+
34
+
35// Dictionary for 3d cube edges displaying
+
36// Cube edges cube_vectors_3d[3] <-> cube_vectors_3d[1]
+
37// cube_vectors_3d[3] <-> cube_vectors_3d[7]
+
38// cube_vectors_3d[5] <-> cube_vectors_3d[7]
+
39// cube_vectors_3d[5] <-> cube_vectors_3d[1]....
+
40const uint8_t cube_dict_line_begin[CUBE_EDGES] = {3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5};
+
41const uint8_t cube_dict_line_end[CUBE_EDGES] = {1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4};
+
42
+
43#ifdef CONFIG_3D_OBJECT_CUBE
+
44#define OBJECT_3D_CUBE 1
+
45#else
+
46#define OBJECT_3D_CUBE 0
+
47#endif
+
48
+
49#ifdef __cplusplus
+
50}
+
51#endif
+ + + + + + + +
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html new file mode 100644 index 0000000..d06087a --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_logo.c File Reference
+
+
+
#include "esp_logo.h"
+
+Include dependency graph for applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 new file mode 100644 index 0000000..fd2e806 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 @@ -0,0 +1 @@ +31d51efb6b83cd0636df06323ee246cf \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg new file mode 100644 index 0000000..3577766 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +esp_logo.c + + +Node1 + + +esp_logo.c + + + + + +Node2 + + +esp_logo.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg new file mode 100644 index 0000000..601b80f --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +esp_logo.c + + +Node1 + + +esp_logo.c + + + + + +Node2 + + +esp_logo.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html new file mode 100644 index 0000000..c789e53 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html @@ -0,0 +1,399 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "esp_logo.h"
+
8
+
9#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+
10
+
11const uint8_t image_bmp_array_esp_logo[512] = {
+
12
+
13 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
14 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
15 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
16 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00,
+
17 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00,
+
18 0x00, 0x00, 0x0f, 0xc0, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x0c, 0x1f, 0xfc, 0x07, 0xfe, 0x00, 0x00,
+
19 0x00, 0x0c, 0x3f, 0xff, 0x03, 0xff, 0x00, 0x00, 0x00, 0x18, 0x7f, 0xff, 0xc0, 0xff, 0xc0, 0x00,
+
20 0x00, 0x38, 0x7f, 0xff, 0xf0, 0x7f, 0xe0, 0x00, 0x00, 0x70, 0x7f, 0xff, 0xf8, 0x3f, 0xe0, 0x00,
+
21 0x00, 0x60, 0x7f, 0xff, 0xfe, 0x0f, 0xf0, 0x00, 0x00, 0xe0, 0x01, 0xff, 0xff, 0x07, 0xf8, 0x00,
+
22 0x00, 0xc0, 0x00, 0x3f, 0xff, 0x83, 0xfc, 0x00, 0x01, 0xc0, 0x00, 0x07, 0xff, 0xe1, 0xfc, 0x00,
+
23 0x01, 0x81, 0xfc, 0x01, 0xff, 0xf0, 0xfe, 0x00, 0x01, 0x87, 0xff, 0xc0, 0x7f, 0xf8, 0xfe, 0x00,
+
24 0x03, 0x0f, 0xff, 0xf0, 0x3f, 0xf8, 0x7e, 0x00, 0x03, 0x1f, 0xff, 0xfc, 0x1f, 0xfc, 0x3f, 0x00,
+
25 0x03, 0x1f, 0xff, 0xff, 0x07, 0xfe, 0x1f, 0x00, 0x03, 0x3f, 0xff, 0xff, 0x83, 0xff, 0x1f, 0x00,
+
26 0x06, 0x3f, 0xff, 0xff, 0xc1, 0xff, 0x0f, 0x00, 0x06, 0x3f, 0xff, 0xff, 0xe0, 0xff, 0x8f, 0x80,
+
27 0x06, 0x7f, 0x83, 0xff, 0xf0, 0xff, 0xc7, 0x80, 0x06, 0x7f, 0x80, 0x7f, 0xf8, 0x7f, 0xc7, 0x80,
+
28 0x06, 0x7f, 0xc0, 0x1f, 0xfc, 0x3f, 0xe3, 0x80, 0x06, 0x3f, 0xfc, 0x0f, 0xfe, 0x3f, 0xe3, 0x80,
+
29 0x06, 0x3f, 0xff, 0x07, 0xff, 0x1f, 0xf1, 0x80, 0x06, 0x3f, 0xff, 0xc3, 0xff, 0x0f, 0xf0, 0x00,
+
30 0x06, 0x1f, 0xff, 0xe1, 0xff, 0x8f, 0xf0, 0x00, 0x07, 0x0f, 0xff, 0xf0, 0xff, 0x8f, 0xf8, 0x00,
+
31 0x03, 0x07, 0xff, 0xf8, 0x7f, 0xc7, 0xf8, 0x00, 0x03, 0x01, 0xff, 0xfc, 0x3f, 0xc7, 0xf8, 0x00,
+
32 0x03, 0x00, 0x3f, 0xfe, 0x3f, 0xc7, 0xf8, 0x00, 0x01, 0x80, 0x07, 0xfe, 0x1f, 0xe3, 0xfc, 0x00,
+
33 0x01, 0x80, 0x03, 0xff, 0x1f, 0xe3, 0xfc, 0x00, 0x01, 0xc0, 0x01, 0xff, 0x1f, 0xe3, 0xfc, 0x00,
+
34 0x00, 0xc0, 0x78, 0xff, 0x0f, 0xe3, 0xfc, 0x00, 0x00, 0xe0, 0xfc, 0x7f, 0x8f, 0xf1, 0xf8, 0x00,
+
35 0x00, 0x61, 0xfc, 0x7f, 0x8f, 0xf1, 0xf0, 0x00, 0x00, 0x71, 0xfc, 0x7f, 0x8f, 0xf1, 0xf0, 0x00,
+
36 0x00, 0x39, 0xfc, 0x7f, 0x8f, 0xf1, 0xe0, 0x00, 0x00, 0x19, 0xfc, 0x7f, 0x8f, 0xf0, 0x00, 0x00,
+
37 0x00, 0x1c, 0xf8, 0x7f, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x7f, 0x8f, 0xf0, 0x10, 0x00,
+
38 0x00, 0x07, 0x00, 0x7f, 0x8f, 0xf0, 0x38, 0x00, 0x00, 0x03, 0xc0, 0xff, 0x0f, 0xe0, 0x70, 0x00,
+
39 0x00, 0x01, 0xe0, 0x7f, 0x0f, 0xc0, 0xe0, 0x00, 0x00, 0x00, 0x78, 0x1f, 0x00, 0x03, 0xc0, 0x00,
+
40 0x00, 0x00, 0x3e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x7e, 0x00, 0x00,
+
41 0x00, 0x00, 0x03, 0xfc, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x00,
+
42 0x00, 0x00, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
43 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
44 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
45
+
46};
+
47
+
48const float image_3d_matrix_esp_logo[1427][4] = {
+
49
+
50 {-2.0, -25.0, 0, 1}, {-1.0, -25.0, 0, 1}, {0.0, -25.0, 0, 1}, {1.0, -25.0, 0, 1}, {2.0, -25.0, 0, 1}, {3.0, -25.0, 0, 1},
+
51 {4.0, -25.0, 0, 1}, {5.0, -25.0, 0, 1}, {6.0, -25.0, 0, 1}, {-2.0, -24.0, 0, 1}, {-1.0, -24.0, 0, 1}, {0.0, -24.0, 0, 1},
+
52 {1.0, -24.0, 0, 1}, {2.0, -24.0, 0, 1}, {3.0, -24.0, 0, 1}, {4.0, -24.0, 0, 1}, {5.0, -24.0, 0, 1}, {6.0, -24.0, 0, 1},
+
53 {7.0, -24.0, 0, 1}, {8.0, -24.0, 0, 1}, {9.0, -24.0, 0, 1}, {1.0, -23.0, 0, 1}, {2.0, -23.0, 0, 1}, {3.0, -23.0, 0, 1},
+
54 {4.0, -23.0, 0, 1}, {5.0, -23.0, 0, 1}, {6.0, -23.0, 0, 1}, {7.0, -23.0, 0, 1}, {8.0, -23.0, 0, 1}, {9.0, -23.0, 0, 1},
+
55 {10.0, -23.0, 0, 1}, {11.0, -23.0, 0, 1}, {-12.0, -22.0, 0, 1}, {-11.0, -22.0, 0, 1}, {-10.0, -22.0, 0, 1}, {-9.0, -22.0, 0, 1},
+
56 {-8.0, -22.0, 0, 1}, {-7.0, -22.0, 0, 1}, {3.0, -22.0, 0, 1}, {4.0, -22.0, 0, 1}, {5.0, -22.0, 0, 1}, {6.0, -22.0, 0, 1},
+
57 {7.0, -22.0, 0, 1}, {8.0, -22.0, 0, 1}, {9.0, -22.0, 0, 1}, {10.0, -22.0, 0, 1}, {11.0, -22.0, 0, 1}, {12.0, -22.0, 0, 1},
+
58 {13.0, -22.0, 0, 1}, {-20.0, -21.0, 0, 1}, {-19.0, -21.0, 0, 1}, {-13.0, -21.0, 0, 1}, {-12.0, -21.0, 0, 1}, {-11.0, -21.0, 0, 1},
+
59 {-10.0, -21.0, 0, 1}, {-9.0, -21.0, 0, 1}, {-8.0, -21.0, 0, 1}, {-7.0, -21.0, 0, 1}, {-6.0, -21.0, 0, 1}, {-5.0, -21.0, 0, 1},
+
60 {-4.0, -21.0, 0, 1}, {-3.0, -21.0, 0, 1}, {5.0, -21.0, 0, 1}, {6.0, -21.0, 0, 1}, {7.0, -21.0, 0, 1}, {8.0, -21.0, 0, 1},
+
61 {9.0, -21.0, 0, 1}, {10.0, -21.0, 0, 1}, {11.0, -21.0, 0, 1}, {12.0, -21.0, 0, 1}, {13.0, -21.0, 0, 1}, {14.0, -21.0, 0, 1},
+
62 {-20.0, -20.0, 0, 1}, {-19.0, -20.0, 0, 1}, {-14.0, -20.0, 0, 1}, {-13.0, -20.0, 0, 1}, {-12.0, -20.0, 0, 1}, {-11.0, -20.0, 0, 1},
+
63 {-10.0, -20.0, 0, 1}, {-9.0, -20.0, 0, 1}, {-8.0, -20.0, 0, 1}, {-7.0, -20.0, 0, 1}, {-6.0, -20.0, 0, 1}, {-5.0, -20.0, 0, 1},
+
64 {-4.0, -20.0, 0, 1}, {-3.0, -20.0, 0, 1}, {-2.0, -20.0, 0, 1}, {-1.0, -20.0, 0, 1}, {6.0, -20.0, 0, 1}, {7.0, -20.0, 0, 1},
+
65 {8.0, -20.0, 0, 1}, {9.0, -20.0, 0, 1}, {10.0, -20.0, 0, 1}, {11.0, -20.0, 0, 1}, {12.0, -20.0, 0, 1}, {13.0, -20.0, 0, 1},
+
66 {14.0, -20.0, 0, 1}, {15.0, -20.0, 0, 1}, {-21.0, -19.0, 0, 1}, {-20.0, -19.0, 0, 1}, {-15.0, -19.0, 0, 1}, {-14.0, -19.0, 0, 1},
+
67 {-13.0, -19.0, 0, 1}, {-12.0, -19.0, 0, 1}, {-11.0, -19.0, 0, 1}, {-10.0, -19.0, 0, 1}, {-9.0, -19.0, 0, 1}, {-8.0, -19.0, 0, 1},
+
68 {-7.0, -19.0, 0, 1}, {-6.0, -19.0, 0, 1}, {-5.0, -19.0, 0, 1}, {-4.0, -19.0, 0, 1}, {-3.0, -19.0, 0, 1}, {-2.0, -19.0, 0, 1},
+
69 {-1.0, -19.0, 0, 1}, {0.0, -19.0, 0, 1}, {1.0, -19.0, 0, 1}, {8.0, -19.0, 0, 1}, {9.0, -19.0, 0, 1}, {10.0, -19.0, 0, 1},
+
70 {11.0, -19.0, 0, 1}, {12.0, -19.0, 0, 1}, {13.0, -19.0, 0, 1}, {14.0, -19.0, 0, 1}, {15.0, -19.0, 0, 1}, {16.0, -19.0, 0, 1},
+
71 {17.0, -19.0, 0, 1}, {-22.0, -18.0, 0, 1}, {-21.0, -18.0, 0, 1}, {-20.0, -18.0, 0, 1}, {-15.0, -18.0, 0, 1}, {-14.0, -18.0, 0, 1},
+
72 {-13.0, -18.0, 0, 1}, {-12.0, -18.0, 0, 1}, {-11.0, -18.0, 0, 1}, {-10.0, -18.0, 0, 1}, {-9.0, -18.0, 0, 1}, {-8.0, -18.0, 0, 1},
+
73 {-7.0, -18.0, 0, 1}, {-6.0, -18.0, 0, 1}, {-5.0, -18.0, 0, 1}, {-4.0, -18.0, 0, 1}, {-3.0, -18.0, 0, 1}, {-2.0, -18.0, 0, 1},
+
74 {-1.0, -18.0, 0, 1}, {0.0, -18.0, 0, 1}, {1.0, -18.0, 0, 1}, {2.0, -18.0, 0, 1}, {3.0, -18.0, 0, 1}, {9.0, -18.0, 0, 1},
+
75 {10.0, -18.0, 0, 1}, {11.0, -18.0, 0, 1}, {12.0, -18.0, 0, 1}, {13.0, -18.0, 0, 1}, {14.0, -18.0, 0, 1}, {15.0, -18.0, 0, 1},
+
76 {16.0, -18.0, 0, 1}, {17.0, -18.0, 0, 1}, {18.0, -18.0, 0, 1}, {-23.0, -17.0, 0, 1}, {-22.0, -17.0, 0, 1}, {-21.0, -17.0, 0, 1},
+
77 {-15.0, -17.0, 0, 1}, {-14.0, -17.0, 0, 1}, {-13.0, -17.0, 0, 1}, {-12.0, -17.0, 0, 1}, {-11.0, -17.0, 0, 1}, {-10.0, -17.0, 0, 1},
+
78 {-9.0, -17.0, 0, 1}, {-8.0, -17.0, 0, 1}, {-7.0, -17.0, 0, 1}, {-6.0, -17.0, 0, 1}, {-5.0, -17.0, 0, 1}, {-4.0, -17.0, 0, 1},
+
79 {-3.0, -17.0, 0, 1}, {-2.0, -17.0, 0, 1}, {-1.0, -17.0, 0, 1}, {0.0, -17.0, 0, 1}, {1.0, -17.0, 0, 1}, {2.0, -17.0, 0, 1},
+
80 {3.0, -17.0, 0, 1}, {4.0, -17.0, 0, 1}, {10.0, -17.0, 0, 1}, {11.0, -17.0, 0, 1}, {12.0, -17.0, 0, 1}, {13.0, -17.0, 0, 1},
+
81 {14.0, -17.0, 0, 1}, {15.0, -17.0, 0, 1}, {16.0, -17.0, 0, 1}, {17.0, -17.0, 0, 1}, {18.0, -17.0, 0, 1}, {-23.0, -16.0, 0, 1},
+
82 {-22.0, -16.0, 0, 1}, {-15.0, -16.0, 0, 1}, {-14.0, -16.0, 0, 1}, {-13.0, -16.0, 0, 1}, {-12.0, -16.0, 0, 1}, {-11.0, -16.0, 0, 1},
+
83 {-10.0, -16.0, 0, 1}, {-9.0, -16.0, 0, 1}, {-8.0, -16.0, 0, 1}, {-7.0, -16.0, 0, 1}, {-6.0, -16.0, 0, 1}, {-5.0, -16.0, 0, 1},
+
84 {-4.0, -16.0, 0, 1}, {-3.0, -16.0, 0, 1}, {-2.0, -16.0, 0, 1}, {-1.0, -16.0, 0, 1}, {0.0, -16.0, 0, 1}, {1.0, -16.0, 0, 1},
+
85 {2.0, -16.0, 0, 1}, {3.0, -16.0, 0, 1}, {4.0, -16.0, 0, 1}, {5.0, -16.0, 0, 1}, {6.0, -16.0, 0, 1}, {12.0, -16.0, 0, 1},
+
86 {13.0, -16.0, 0, 1}, {14.0, -16.0, 0, 1}, {15.0, -16.0, 0, 1}, {16.0, -16.0, 0, 1}, {17.0, -16.0, 0, 1}, {18.0, -16.0, 0, 1},
+
87 {19.0, -16.0, 0, 1}, {-24.0, -15.0, 0, 1}, {-23.0, -15.0, 0, 1}, {-22.0, -15.0, 0, 1}, {-9.0, -15.0, 0, 1}, {-8.0, -15.0, 0, 1},
+
88 {-7.0, -15.0, 0, 1}, {-6.0, -15.0, 0, 1}, {-5.0, -15.0, 0, 1}, {-4.0, -15.0, 0, 1}, {-3.0, -15.0, 0, 1}, {-2.0, -15.0, 0, 1},
+
89 {-1.0, -15.0, 0, 1}, {0.0, -15.0, 0, 1}, {1.0, -15.0, 0, 1}, {2.0, -15.0, 0, 1}, {3.0, -15.0, 0, 1}, {4.0, -15.0, 0, 1},
+
90 {5.0, -15.0, 0, 1}, {6.0, -15.0, 0, 1}, {7.0, -15.0, 0, 1}, {13.0, -15.0, 0, 1}, {14.0, -15.0, 0, 1}, {15.0, -15.0, 0, 1},
+
91 {16.0, -15.0, 0, 1}, {17.0, -15.0, 0, 1}, {18.0, -15.0, 0, 1}, {19.0, -15.0, 0, 1}, {20.0, -15.0, 0, 1}, {-24.0, -14.0, 0, 1},
+
92 {-23.0, -14.0, 0, 1}, {-6.0, -14.0, 0, 1}, {-5.0, -14.0, 0, 1}, {-4.0, -14.0, 0, 1}, {-3.0, -14.0, 0, 1}, {-2.0, -14.0, 0, 1},
+
93 {-1.0, -14.0, 0, 1}, {0.0, -14.0, 0, 1}, {1.0, -14.0, 0, 1}, {2.0, -14.0, 0, 1}, {3.0, -14.0, 0, 1}, {4.0, -14.0, 0, 1},
+
94 {5.0, -14.0, 0, 1}, {6.0, -14.0, 0, 1}, {7.0, -14.0, 0, 1}, {8.0, -14.0, 0, 1}, {14.0, -14.0, 0, 1}, {15.0, -14.0, 0, 1},
+
95 {16.0, -14.0, 0, 1}, {17.0, -14.0, 0, 1}, {18.0, -14.0, 0, 1}, {19.0, -14.0, 0, 1}, {20.0, -14.0, 0, 1}, {21.0, -14.0, 0, 1},
+
96 {-25.0, -13.0, 0, 1}, {-24.0, -13.0, 0, 1}, {-23.0, -13.0, 0, 1}, {-3.0, -13.0, 0, 1}, {-2.0, -13.0, 0, 1}, {-1.0, -13.0, 0, 1},
+
97 {0.0, -13.0, 0, 1}, {1.0, -13.0, 0, 1}, {2.0, -13.0, 0, 1}, {3.0, -13.0, 0, 1}, {4.0, -13.0, 0, 1}, {5.0, -13.0, 0, 1},
+
98 {6.0, -13.0, 0, 1}, {7.0, -13.0, 0, 1}, {8.0, -13.0, 0, 1}, {9.0, -13.0, 0, 1}, {10.0, -13.0, 0, 1}, {15.0, -13.0, 0, 1},
+
99 {16.0, -13.0, 0, 1}, {17.0, -13.0, 0, 1}, {18.0, -13.0, 0, 1}, {19.0, -13.0, 0, 1}, {20.0, -13.0, 0, 1}, {21.0, -13.0, 0, 1},
+
100 {-25.0, -12.0, 0, 1}, {-24.0, -12.0, 0, 1}, {-17.0, -12.0, 0, 1}, {-16.0, -12.0, 0, 1}, {-15.0, -12.0, 0, 1}, {-14.0, -12.0, 0, 1},
+
101 {-13.0, -12.0, 0, 1}, {-12.0, -12.0, 0, 1}, {-11.0, -12.0, 0, 1}, {-1.0, -12.0, 0, 1}, {0.0, -12.0, 0, 1}, {1.0, -12.0, 0, 1},
+
102 {2.0, -12.0, 0, 1}, {3.0, -12.0, 0, 1}, {4.0, -12.0, 0, 1}, {5.0, -12.0, 0, 1}, {6.0, -12.0, 0, 1}, {7.0, -12.0, 0, 1},
+
103 {8.0, -12.0, 0, 1}, {9.0, -12.0, 0, 1}, {10.0, -12.0, 0, 1}, {11.0, -12.0, 0, 1}, {16.0, -12.0, 0, 1}, {17.0, -12.0, 0, 1},
+
104 {18.0, -12.0, 0, 1}, {19.0, -12.0, 0, 1}, {20.0, -12.0, 0, 1}, {21.0, -12.0, 0, 1}, {22.0, -12.0, 0, 1}, {-25.0, -11.0, 0, 1},
+
105 {-24.0, -11.0, 0, 1}, {-19.0, -11.0, 0, 1}, {-18.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1}, {-15.0, -11.0, 0, 1},
+
106 {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1}, {-9.0, -11.0, 0, 1},
+
107 {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1}, {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1},
+
108 {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1}, {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1},
+
109 {11.0, -11.0, 0, 1}, {12.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
110 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-20.0, -10.0, 0, 1},
+
111 {-19.0, -10.0, 0, 1}, {-18.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1},
+
112 {-13.0, -10.0, 0, 1}, {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1},
+
113 {-7.0, -10.0, 0, 1}, {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1}, {4.0, -10.0, 0, 1},
+
114 {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1}, {10.0, -10.0, 0, 1},
+
115 {11.0, -10.0, 0, 1}, {12.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1}, {20.0, -10.0, 0, 1},
+
116 {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-20.0, -9.0, 0, 1},
+
117 {-19.0, -9.0, 0, 1}, {-18.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1}, {-14.0, -9.0, 0, 1},
+
118 {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1}, {-8.0, -9.0, 0, 1},
+
119 {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-4.0, -9.0, 0, 1}, {-3.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1},
+
120 {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1}, {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1},
+
121 {10.0, -9.0, 0, 1}, {11.0, -9.0, 0, 1}, {12.0, -9.0, 0, 1}, {13.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1},
+
122 {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1}, {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {-26.0, -8.0, 0, 1}, {-25.0, -8.0, 0, 1},
+
123 {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-19.0, -8.0, 0, 1}, {-18.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1},
+
124 {-15.0, -8.0, 0, 1}, {-14.0, -8.0, 0, 1}, {-13.0, -8.0, 0, 1}, {-12.0, -8.0, 0, 1}, {-11.0, -8.0, 0, 1}, {-10.0, -8.0, 0, 1},
+
125 {-9.0, -8.0, 0, 1}, {-8.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-4.0, -8.0, 0, 1},
+
126 {-3.0, -8.0, 0, 1}, {-2.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {5.0, -8.0, 0, 1}, {6.0, -8.0, 0, 1}, {7.0, -8.0, 0, 1},
+
127 {8.0, -8.0, 0, 1}, {9.0, -8.0, 0, 1}, {10.0, -8.0, 0, 1}, {11.0, -8.0, 0, 1}, {12.0, -8.0, 0, 1}, {13.0, -8.0, 0, 1},
+
128 {14.0, -8.0, 0, 1}, {19.0, -8.0, 0, 1}, {20.0, -8.0, 0, 1}, {21.0, -8.0, 0, 1}, {22.0, -8.0, 0, 1}, {23.0, -8.0, 0, 1},
+
129 {-26.0, -7.0, 0, 1}, {-25.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-19.0, -7.0, 0, 1},
+
130 {-18.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1}, {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-13.0, -7.0, 0, 1},
+
131 {-12.0, -7.0, 0, 1}, {-11.0, -7.0, 0, 1}, {-10.0, -7.0, 0, 1}, {-9.0, -7.0, 0, 1}, {-8.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1},
+
132 {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-4.0, -7.0, 0, 1}, {-3.0, -7.0, 0, 1}, {-2.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
133 {0.0, -7.0, 0, 1}, {6.0, -7.0, 0, 1}, {7.0, -7.0, 0, 1}, {8.0, -7.0, 0, 1}, {9.0, -7.0, 0, 1}, {10.0, -7.0, 0, 1},
+
134 {11.0, -7.0, 0, 1}, {12.0, -7.0, 0, 1}, {13.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {19.0, -7.0, 0, 1},
+
135 {20.0, -7.0, 0, 1}, {21.0, -7.0, 0, 1}, {22.0, -7.0, 0, 1}, {23.0, -7.0, 0, 1}, {-27.0, -6.0, 0, 1}, {-26.0, -6.0, 0, 1},
+
136 {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-19.0, -6.0, 0, 1}, {-18.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1},
+
137 {-16.0, -6.0, 0, 1}, {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-13.0, -6.0, 0, 1}, {-12.0, -6.0, 0, 1}, {-11.0, -6.0, 0, 1},
+
138 {-10.0, -6.0, 0, 1}, {-9.0, -6.0, 0, 1}, {-8.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1},
+
139 {-4.0, -6.0, 0, 1}, {-3.0, -6.0, 0, 1}, {-2.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1}, {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1},
+
140 {7.0, -6.0, 0, 1}, {8.0, -6.0, 0, 1}, {9.0, -6.0, 0, 1}, {10.0, -6.0, 0, 1}, {11.0, -6.0, 0, 1}, {12.0, -6.0, 0, 1},
+
141 {13.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {20.0, -6.0, 0, 1}, {21.0, -6.0, 0, 1}, {22.0, -6.0, 0, 1},
+
142 {23.0, -6.0, 0, 1}, {-27.0, -5.0, 0, 1}, {-26.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1},
+
143 {-19.0, -5.0, 0, 1}, {-18.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1}, {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1},
+
144 {-13.0, -5.0, 0, 1}, {-12.0, -5.0, 0, 1}, {-11.0, -5.0, 0, 1}, {-10.0, -5.0, 0, 1}, {-9.0, -5.0, 0, 1}, {-8.0, -5.0, 0, 1},
+
145 {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-4.0, -5.0, 0, 1}, {-3.0, -5.0, 0, 1}, {-2.0, -5.0, 0, 1},
+
146 {-1.0, -5.0, 0, 1}, {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {2.0, -5.0, 0, 1}, {8.0, -5.0, 0, 1}, {9.0, -5.0, 0, 1},
+
147 {10.0, -5.0, 0, 1}, {11.0, -5.0, 0, 1}, {12.0, -5.0, 0, 1}, {13.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1},
+
148 {16.0, -5.0, 0, 1}, {20.0, -5.0, 0, 1}, {21.0, -5.0, 0, 1}, {22.0, -5.0, 0, 1}, {23.0, -5.0, 0, 1}, {24.0, -5.0, 0, 1},
+
149 {-27.0, -4.0, 0, 1}, {-26.0, -4.0, 0, 1}, {-23.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1},
+
150 {-19.0, -4.0, 0, 1}, {-18.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1}, {-10.0, -4.0, 0, 1}, {-9.0, -4.0, 0, 1},
+
151 {-8.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-4.0, -4.0, 0, 1}, {-3.0, -4.0, 0, 1},
+
152 {-2.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1}, {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {2.0, -4.0, 0, 1}, {3.0, -4.0, 0, 1},
+
153 {8.0, -4.0, 0, 1}, {9.0, -4.0, 0, 1}, {10.0, -4.0, 0, 1}, {11.0, -4.0, 0, 1}, {12.0, -4.0, 0, 1}, {13.0, -4.0, 0, 1},
+
154 {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {17.0, -4.0, 0, 1}, {21.0, -4.0, 0, 1}, {22.0, -4.0, 0, 1},
+
155 {23.0, -4.0, 0, 1}, {24.0, -4.0, 0, 1}, {-27.0, -3.0, 0, 1}, {-26.0, -3.0, 0, 1}, {-23.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1},
+
156 {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-19.0, -3.0, 0, 1}, {-18.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
157 {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-4.0, -3.0, 0, 1}, {-3.0, -3.0, 0, 1}, {-2.0, -3.0, 0, 1},
+
158 {-1.0, -3.0, 0, 1}, {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {2.0, -3.0, 0, 1}, {3.0, -3.0, 0, 1}, {4.0, -3.0, 0, 1},
+
159 {9.0, -3.0, 0, 1}, {10.0, -3.0, 0, 1}, {11.0, -3.0, 0, 1}, {12.0, -3.0, 0, 1}, {13.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1},
+
160 {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {17.0, -3.0, 0, 1}, {21.0, -3.0, 0, 1}, {22.0, -3.0, 0, 1}, {23.0, -3.0, 0, 1},
+
161 {24.0, -3.0, 0, 1}, {-27.0, -2.0, 0, 1}, {-26.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1}, {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1},
+
162 {-20.0, -2.0, 0, 1}, {-19.0, -2.0, 0, 1}, {-18.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
163 {-5.0, -2.0, 0, 1}, {-4.0, -2.0, 0, 1}, {-3.0, -2.0, 0, 1}, {-2.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
164 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {10.0, -2.0, 0, 1},
+
165 {11.0, -2.0, 0, 1}, {12.0, -2.0, 0, 1}, {13.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
166 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1}, {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {-27.0, -1.0, 0, 1},
+
167 {-26.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-19.0, -1.0, 0, 1}, {-18.0, -1.0, 0, 1},
+
168 {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1}, {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1},
+
169 {-11.0, -1.0, 0, 1}, {-4.0, -1.0, 0, 1}, {-3.0, -1.0, 0, 1}, {-2.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1}, {0.0, -1.0, 0, 1},
+
170 {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1}, {6.0, -1.0, 0, 1},
+
171 {10.0, -1.0, 0, 1}, {11.0, -1.0, 0, 1}, {12.0, -1.0, 0, 1}, {13.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
172 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1},
+
173 {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-20.0, 0.0, 0, 1}, {-19.0, 0.0, 0, 1},
+
174 {-18.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1}, {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1},
+
175 {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1}, {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-3.0, 0.0, 0, 1}, {-2.0, 0.0, 0, 1},
+
176 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
177 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {11.0, 0.0, 0, 1}, {12.0, 0.0, 0, 1}, {13.0, 0.0, 0, 1},
+
178 {14.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1}, {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1},
+
179 {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1},
+
180 {-20.0, 1.0, 0, 1}, {-19.0, 1.0, 0, 1}, {-18.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1},
+
181 {-14.0, 1.0, 0, 1}, {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1},
+
182 {-8.0, 1.0, 0, 1}, {-7.0, 1.0, 0, 1}, {-2.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1},
+
183 {2.0, 1.0, 0, 1}, {3.0, 1.0, 0, 1}, {4.0, 1.0, 0, 1}, {5.0, 1.0, 0, 1}, {6.0, 1.0, 0, 1}, {7.0, 1.0, 0, 1},
+
184 {12.0, 1.0, 0, 1}, {13.0, 1.0, 0, 1}, {14.0, 1.0, 0, 1}, {15.0, 1.0, 0, 1}, {16.0, 1.0, 0, 1}, {17.0, 1.0, 0, 1},
+
185 {18.0, 1.0, 0, 1}, {19.0, 1.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-21.0, 2.0, 0, 1}, {-20.0, 2.0, 0, 1},
+
186 {-19.0, 2.0, 0, 1}, {-18.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1},
+
187 {-13.0, 2.0, 0, 1}, {-12.0, 2.0, 0, 1}, {-11.0, 2.0, 0, 1}, {-10.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1}, {-8.0, 2.0, 0, 1},
+
188 {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1}, {2.0, 2.0, 0, 1},
+
189 {3.0, 2.0, 0, 1}, {4.0, 2.0, 0, 1}, {5.0, 2.0, 0, 1}, {6.0, 2.0, 0, 1}, {7.0, 2.0, 0, 1}, {8.0, 2.0, 0, 1},
+
190 {12.0, 2.0, 0, 1}, {13.0, 2.0, 0, 1}, {14.0, 2.0, 0, 1}, {15.0, 2.0, 0, 1}, {16.0, 2.0, 0, 1}, {17.0, 2.0, 0, 1},
+
191 {18.0, 2.0, 0, 1}, {19.0, 2.0, 0, 1}, {-27.0, 3.0, 0, 1}, {-26.0, 3.0, 0, 1}, {-25.0, 3.0, 0, 1}, {-20.0, 3.0, 0, 1},
+
192 {-19.0, 3.0, 0, 1}, {-18.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1}, {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1},
+
193 {-13.0, 3.0, 0, 1}, {-12.0, 3.0, 0, 1}, {-11.0, 3.0, 0, 1}, {-10.0, 3.0, 0, 1}, {-9.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1},
+
194 {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1}, {-5.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {2.0, 3.0, 0, 1},
+
195 {3.0, 3.0, 0, 1}, {4.0, 3.0, 0, 1}, {5.0, 3.0, 0, 1}, {6.0, 3.0, 0, 1}, {7.0, 3.0, 0, 1}, {8.0, 3.0, 0, 1},
+
196 {12.0, 3.0, 0, 1}, {13.0, 3.0, 0, 1}, {14.0, 3.0, 0, 1}, {15.0, 3.0, 0, 1}, {16.0, 3.0, 0, 1}, {17.0, 3.0, 0, 1},
+
197 {18.0, 3.0, 0, 1}, {19.0, 3.0, 0, 1}, {20.0, 3.0, 0, 1}, {-26.0, 4.0, 0, 1}, {-25.0, 4.0, 0, 1}, {-19.0, 4.0, 0, 1},
+
198 {-18.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1}, {-13.0, 4.0, 0, 1},
+
199 {-12.0, 4.0, 0, 1}, {-11.0, 4.0, 0, 1}, {-10.0, 4.0, 0, 1}, {-9.0, 4.0, 0, 1}, {-8.0, 4.0, 0, 1}, {-7.0, 4.0, 0, 1},
+
200 {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-4.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1}, {2.0, 4.0, 0, 1}, {3.0, 4.0, 0, 1},
+
201 {4.0, 4.0, 0, 1}, {5.0, 4.0, 0, 1}, {6.0, 4.0, 0, 1}, {7.0, 4.0, 0, 1}, {8.0, 4.0, 0, 1}, {9.0, 4.0, 0, 1},
+
202 {13.0, 4.0, 0, 1}, {14.0, 4.0, 0, 1}, {15.0, 4.0, 0, 1}, {16.0, 4.0, 0, 1}, {17.0, 4.0, 0, 1}, {18.0, 4.0, 0, 1},
+
203 {19.0, 4.0, 0, 1}, {20.0, 4.0, 0, 1}, {-26.0, 5.0, 0, 1}, {-25.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1}, {-16.0, 5.0, 0, 1},
+
204 {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-13.0, 5.0, 0, 1}, {-12.0, 5.0, 0, 1}, {-11.0, 5.0, 0, 1}, {-10.0, 5.0, 0, 1},
+
205 {-9.0, 5.0, 0, 1}, {-8.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1}, {-4.0, 5.0, 0, 1},
+
206 {-3.0, 5.0, 0, 1}, {2.0, 5.0, 0, 1}, {3.0, 5.0, 0, 1}, {4.0, 5.0, 0, 1}, {5.0, 5.0, 0, 1}, {6.0, 5.0, 0, 1},
+
207 {7.0, 5.0, 0, 1}, {8.0, 5.0, 0, 1}, {9.0, 5.0, 0, 1}, {13.0, 5.0, 0, 1}, {14.0, 5.0, 0, 1}, {15.0, 5.0, 0, 1},
+
208 {16.0, 5.0, 0, 1}, {17.0, 5.0, 0, 1}, {18.0, 5.0, 0, 1}, {19.0, 5.0, 0, 1}, {20.0, 5.0, 0, 1}, {-26.0, 6.0, 0, 1},
+
209 {-25.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1}, {-13.0, 6.0, 0, 1}, {-12.0, 6.0, 0, 1}, {-11.0, 6.0, 0, 1}, {-10.0, 6.0, 0, 1},
+
210 {-9.0, 6.0, 0, 1}, {-8.0, 6.0, 0, 1}, {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-4.0, 6.0, 0, 1},
+
211 {-3.0, 6.0, 0, 1}, {-2.0, 6.0, 0, 1}, {2.0, 6.0, 0, 1}, {3.0, 6.0, 0, 1}, {4.0, 6.0, 0, 1}, {5.0, 6.0, 0, 1},
+
212 {6.0, 6.0, 0, 1}, {7.0, 6.0, 0, 1}, {8.0, 6.0, 0, 1}, {9.0, 6.0, 0, 1}, {13.0, 6.0, 0, 1}, {14.0, 6.0, 0, 1},
+
213 {15.0, 6.0, 0, 1}, {16.0, 6.0, 0, 1}, {17.0, 6.0, 0, 1}, {18.0, 6.0, 0, 1}, {19.0, 6.0, 0, 1}, {20.0, 6.0, 0, 1},
+
214 {-25.0, 7.0, 0, 1}, {-24.0, 7.0, 0, 1}, {-11.0, 7.0, 0, 1}, {-10.0, 7.0, 0, 1}, {-9.0, 7.0, 0, 1}, {-8.0, 7.0, 0, 1},
+
215 {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1}, {-4.0, 7.0, 0, 1}, {-3.0, 7.0, 0, 1}, {-2.0, 7.0, 0, 1},
+
216 {3.0, 7.0, 0, 1}, {4.0, 7.0, 0, 1}, {5.0, 7.0, 0, 1}, {6.0, 7.0, 0, 1}, {7.0, 7.0, 0, 1}, {8.0, 7.0, 0, 1},
+
217 {9.0, 7.0, 0, 1}, {10.0, 7.0, 0, 1}, {14.0, 7.0, 0, 1}, {15.0, 7.0, 0, 1}, {16.0, 7.0, 0, 1}, {17.0, 7.0, 0, 1},
+
218 {18.0, 7.0, 0, 1}, {19.0, 7.0, 0, 1}, {20.0, 7.0, 0, 1}, {21.0, 7.0, 0, 1}, {-25.0, 8.0, 0, 1}, {-24.0, 8.0, 0, 1},
+
219 {-10.0, 8.0, 0, 1}, {-9.0, 8.0, 0, 1}, {-8.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1}, {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1},
+
220 {-4.0, 8.0, 0, 1}, {-3.0, 8.0, 0, 1}, {-2.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1},
+
221 {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1}, {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1},
+
222 {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1}, {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1},
+
223 {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {-25.0, 9.0, 0, 1}, {-24.0, 9.0, 0, 1}, {-23.0, 9.0, 0, 1}, {-9.0, 9.0, 0, 1},
+
224 {-8.0, 9.0, 0, 1}, {-7.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {-3.0, 9.0, 0, 1},
+
225 {-2.0, 9.0, 0, 1}, {-1.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1},
+
226 {7.0, 9.0, 0, 1}, {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1},
+
227 {16.0, 9.0, 0, 1}, {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1},
+
228 {-24.0, 10.0, 0, 1}, {-23.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-13.0, 10.0, 0, 1}, {-12.0, 10.0, 0, 1},
+
229 {-8.0, 10.0, 0, 1}, {-7.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1}, {-4.0, 10.0, 0, 1}, {-3.0, 10.0, 0, 1},
+
230 {-2.0, 10.0, 0, 1}, {-1.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1}, {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1},
+
231 {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1}, {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1},
+
232 {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1}, {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {-24.0, 11.0, 0, 1},
+
233 {-23.0, 11.0, 0, 1}, {-22.0, 11.0, 0, 1}, {-16.0, 11.0, 0, 1}, {-15.0, 11.0, 0, 1}, {-14.0, 11.0, 0, 1}, {-13.0, 11.0, 0, 1},
+
234 {-12.0, 11.0, 0, 1}, {-11.0, 11.0, 0, 1}, {-7.0, 11.0, 0, 1}, {-6.0, 11.0, 0, 1}, {-5.0, 11.0, 0, 1}, {-4.0, 11.0, 0, 1},
+
235 {-3.0, 11.0, 0, 1}, {-2.0, 11.0, 0, 1}, {-1.0, 11.0, 0, 1}, {0.0, 11.0, 0, 1}, {4.0, 11.0, 0, 1}, {5.0, 11.0, 0, 1},
+
236 {6.0, 11.0, 0, 1}, {7.0, 11.0, 0, 1}, {8.0, 11.0, 0, 1}, {9.0, 11.0, 0, 1}, {10.0, 11.0, 0, 1}, {11.0, 11.0, 0, 1},
+
237 {15.0, 11.0, 0, 1}, {16.0, 11.0, 0, 1}, {17.0, 11.0, 0, 1}, {18.0, 11.0, 0, 1}, {19.0, 11.0, 0, 1}, {20.0, 11.0, 0, 1},
+
238 {-23.0, 12.0, 0, 1}, {-22.0, 12.0, 0, 1}, {-17.0, 12.0, 0, 1}, {-16.0, 12.0, 0, 1}, {-15.0, 12.0, 0, 1}, {-14.0, 12.0, 0, 1},
+
239 {-13.0, 12.0, 0, 1}, {-12.0, 12.0, 0, 1}, {-11.0, 12.0, 0, 1}, {-7.0, 12.0, 0, 1}, {-6.0, 12.0, 0, 1}, {-5.0, 12.0, 0, 1},
+
240 {-4.0, 12.0, 0, 1}, {-3.0, 12.0, 0, 1}, {-2.0, 12.0, 0, 1}, {-1.0, 12.0, 0, 1}, {0.0, 12.0, 0, 1}, {4.0, 12.0, 0, 1},
+
241 {5.0, 12.0, 0, 1}, {6.0, 12.0, 0, 1}, {7.0, 12.0, 0, 1}, {8.0, 12.0, 0, 1}, {9.0, 12.0, 0, 1}, {10.0, 12.0, 0, 1},
+
242 {11.0, 12.0, 0, 1}, {15.0, 12.0, 0, 1}, {16.0, 12.0, 0, 1}, {17.0, 12.0, 0, 1}, {18.0, 12.0, 0, 1}, {19.0, 12.0, 0, 1},
+
243 {-23.0, 13.0, 0, 1}, {-22.0, 13.0, 0, 1}, {-21.0, 13.0, 0, 1}, {-17.0, 13.0, 0, 1}, {-16.0, 13.0, 0, 1}, {-15.0, 13.0, 0, 1},
+
244 {-14.0, 13.0, 0, 1}, {-13.0, 13.0, 0, 1}, {-12.0, 13.0, 0, 1}, {-11.0, 13.0, 0, 1}, {-7.0, 13.0, 0, 1}, {-6.0, 13.0, 0, 1},
+
245 {-5.0, 13.0, 0, 1}, {-4.0, 13.0, 0, 1}, {-3.0, 13.0, 0, 1}, {-2.0, 13.0, 0, 1}, {-1.0, 13.0, 0, 1}, {0.0, 13.0, 0, 1},
+
246 {4.0, 13.0, 0, 1}, {5.0, 13.0, 0, 1}, {6.0, 13.0, 0, 1}, {7.0, 13.0, 0, 1}, {8.0, 13.0, 0, 1}, {9.0, 13.0, 0, 1},
+
247 {10.0, 13.0, 0, 1}, {11.0, 13.0, 0, 1}, {15.0, 13.0, 0, 1}, {16.0, 13.0, 0, 1}, {17.0, 13.0, 0, 1}, {18.0, 13.0, 0, 1},
+
248 {19.0, 13.0, 0, 1}, {-22.0, 14.0, 0, 1}, {-21.0, 14.0, 0, 1}, {-20.0, 14.0, 0, 1}, {-17.0, 14.0, 0, 1}, {-16.0, 14.0, 0, 1},
+
249 {-15.0, 14.0, 0, 1}, {-14.0, 14.0, 0, 1}, {-13.0, 14.0, 0, 1}, {-12.0, 14.0, 0, 1}, {-11.0, 14.0, 0, 1}, {-7.0, 14.0, 0, 1},
+
250 {-6.0, 14.0, 0, 1}, {-5.0, 14.0, 0, 1}, {-4.0, 14.0, 0, 1}, {-3.0, 14.0, 0, 1}, {-2.0, 14.0, 0, 1}, {-1.0, 14.0, 0, 1},
+
251 {0.0, 14.0, 0, 1}, {4.0, 14.0, 0, 1}, {5.0, 14.0, 0, 1}, {6.0, 14.0, 0, 1}, {7.0, 14.0, 0, 1}, {8.0, 14.0, 0, 1},
+
252 {9.0, 14.0, 0, 1}, {10.0, 14.0, 0, 1}, {11.0, 14.0, 0, 1}, {15.0, 14.0, 0, 1}, {16.0, 14.0, 0, 1}, {17.0, 14.0, 0, 1},
+
253 {18.0, 14.0, 0, 1}, {-21.0, 15.0, 0, 1}, {-20.0, 15.0, 0, 1}, {-17.0, 15.0, 0, 1}, {-16.0, 15.0, 0, 1}, {-15.0, 15.0, 0, 1},
+
254 {-14.0, 15.0, 0, 1}, {-13.0, 15.0, 0, 1}, {-12.0, 15.0, 0, 1}, {-11.0, 15.0, 0, 1}, {-7.0, 15.0, 0, 1}, {-6.0, 15.0, 0, 1},
+
255 {-5.0, 15.0, 0, 1}, {-4.0, 15.0, 0, 1}, {-3.0, 15.0, 0, 1}, {-2.0, 15.0, 0, 1}, {-1.0, 15.0, 0, 1}, {0.0, 15.0, 0, 1},
+
256 {4.0, 15.0, 0, 1}, {5.0, 15.0, 0, 1}, {6.0, 15.0, 0, 1}, {7.0, 15.0, 0, 1}, {8.0, 15.0, 0, 1}, {9.0, 15.0, 0, 1},
+
257 {10.0, 15.0, 0, 1}, {11.0, 15.0, 0, 1}, {-21.0, 16.0, 0, 1}, {-20.0, 16.0, 0, 1}, {-19.0, 16.0, 0, 1}, {-16.0, 16.0, 0, 1},
+
258 {-15.0, 16.0, 0, 1}, {-14.0, 16.0, 0, 1}, {-13.0, 16.0, 0, 1}, {-12.0, 16.0, 0, 1}, {-7.0, 16.0, 0, 1}, {-6.0, 16.0, 0, 1},
+
259 {-5.0, 16.0, 0, 1}, {-4.0, 16.0, 0, 1}, {-3.0, 16.0, 0, 1}, {-2.0, 16.0, 0, 1}, {-1.0, 16.0, 0, 1}, {0.0, 16.0, 0, 1},
+
260 {4.0, 16.0, 0, 1}, {5.0, 16.0, 0, 1}, {6.0, 16.0, 0, 1}, {7.0, 16.0, 0, 1}, {8.0, 16.0, 0, 1}, {9.0, 16.0, 0, 1},
+
261 {10.0, 16.0, 0, 1}, {11.0, 16.0, 0, 1}, {-20.0, 17.0, 0, 1}, {-19.0, 17.0, 0, 1}, {-18.0, 17.0, 0, 1}, {-7.0, 17.0, 0, 1},
+
262 {-6.0, 17.0, 0, 1}, {-5.0, 17.0, 0, 1}, {-4.0, 17.0, 0, 1}, {-3.0, 17.0, 0, 1}, {-2.0, 17.0, 0, 1}, {-1.0, 17.0, 0, 1},
+
263 {0.0, 17.0, 0, 1}, {4.0, 17.0, 0, 1}, {5.0, 17.0, 0, 1}, {6.0, 17.0, 0, 1}, {7.0, 17.0, 0, 1}, {8.0, 17.0, 0, 1},
+
264 {9.0, 17.0, 0, 1}, {10.0, 17.0, 0, 1}, {11.0, 17.0, 0, 1}, {19.0, 17.0, 0, 1}, {-19.0, 18.0, 0, 1}, {-18.0, 18.0, 0, 1},
+
265 {-17.0, 18.0, 0, 1}, {-7.0, 18.0, 0, 1}, {-6.0, 18.0, 0, 1}, {-5.0, 18.0, 0, 1}, {-4.0, 18.0, 0, 1}, {-3.0, 18.0, 0, 1},
+
266 {-2.0, 18.0, 0, 1}, {-1.0, 18.0, 0, 1}, {0.0, 18.0, 0, 1}, {4.0, 18.0, 0, 1}, {5.0, 18.0, 0, 1}, {6.0, 18.0, 0, 1},
+
267 {7.0, 18.0, 0, 1}, {8.0, 18.0, 0, 1}, {9.0, 18.0, 0, 1}, {10.0, 18.0, 0, 1}, {11.0, 18.0, 0, 1}, {18.0, 18.0, 0, 1},
+
268 {19.0, 18.0, 0, 1}, {20.0, 18.0, 0, 1}, {-18.0, 19.0, 0, 1}, {-17.0, 19.0, 0, 1}, {-16.0, 19.0, 0, 1}, {-15.0, 19.0, 0, 1},
+
269 {-8.0, 19.0, 0, 1}, {-7.0, 19.0, 0, 1}, {-6.0, 19.0, 0, 1}, {-5.0, 19.0, 0, 1}, {-4.0, 19.0, 0, 1}, {-3.0, 19.0, 0, 1},
+
270 {-2.0, 19.0, 0, 1}, {-1.0, 19.0, 0, 1}, {4.0, 19.0, 0, 1}, {5.0, 19.0, 0, 1}, {6.0, 19.0, 0, 1}, {7.0, 19.0, 0, 1},
+
271 {8.0, 19.0, 0, 1}, {9.0, 19.0, 0, 1}, {10.0, 19.0, 0, 1}, {17.0, 19.0, 0, 1}, {18.0, 19.0, 0, 1}, {19.0, 19.0, 0, 1},
+
272 {-17.0, 20.0, 0, 1}, {-16.0, 20.0, 0, 1}, {-15.0, 20.0, 0, 1}, {-14.0, 20.0, 0, 1}, {-7.0, 20.0, 0, 1}, {-6.0, 20.0, 0, 1},
+
273 {-5.0, 20.0, 0, 1}, {-4.0, 20.0, 0, 1}, {-3.0, 20.0, 0, 1}, {-2.0, 20.0, 0, 1}, {-1.0, 20.0, 0, 1}, {4.0, 20.0, 0, 1},
+
274 {5.0, 20.0, 0, 1}, {6.0, 20.0, 0, 1}, {7.0, 20.0, 0, 1}, {8.0, 20.0, 0, 1}, {9.0, 20.0, 0, 1}, {16.0, 20.0, 0, 1},
+
275 {17.0, 20.0, 0, 1}, {18.0, 20.0, 0, 1}, {-15.0, 21.0, 0, 1}, {-14.0, 21.0, 0, 1}, {-13.0, 21.0, 0, 1}, {-12.0, 21.0, 0, 1},
+
276 {-5.0, 21.0, 0, 1}, {-4.0, 21.0, 0, 1}, {-3.0, 21.0, 0, 1}, {-2.0, 21.0, 0, 1}, {-1.0, 21.0, 0, 1}, {14.0, 21.0, 0, 1},
+
277 {15.0, 21.0, 0, 1}, {16.0, 21.0, 0, 1}, {17.0, 21.0, 0, 1}, {-14.0, 22.0, 0, 1}, {-13.0, 22.0, 0, 1}, {-12.0, 22.0, 0, 1},
+
278 {-11.0, 22.0, 0, 1}, {-10.0, 22.0, 0, 1}, {12.0, 22.0, 0, 1}, {13.0, 22.0, 0, 1}, {14.0, 22.0, 0, 1}, {15.0, 22.0, 0, 1},
+
279 {-12.0, 23.0, 0, 1}, {-11.0, 23.0, 0, 1}, {-10.0, 23.0, 0, 1}, {-9.0, 23.0, 0, 1}, {-8.0, 23.0, 0, 1}, {9.0, 23.0, 0, 1},
+
280 {10.0, 23.0, 0, 1}, {11.0, 23.0, 0, 1}, {12.0, 23.0, 0, 1}, {13.0, 23.0, 0, 1}, {14.0, 23.0, 0, 1}, {-10.0, 24.0, 0, 1},
+
281 {-9.0, 24.0, 0, 1}, {-8.0, 24.0, 0, 1}, {-7.0, 24.0, 0, 1}, {-6.0, 24.0, 0, 1}, {-5.0, 24.0, 0, 1}, {-4.0, 24.0, 0, 1},
+
282 {-3.0, 24.0, 0, 1}, {5.0, 24.0, 0, 1}, {6.0, 24.0, 0, 1}, {7.0, 24.0, 0, 1}, {8.0, 24.0, 0, 1}, {9.0, 24.0, 0, 1},
+
283 {10.0, 24.0, 0, 1}, {11.0, 24.0, 0, 1}, {12.0, 24.0, 0, 1}, {-7.0, 25.0, 0, 1}, {-6.0, 25.0, 0, 1}, {-5.0, 25.0, 0, 1},
+
284 {-4.0, 25.0, 0, 1}, {-3.0, 25.0, 0, 1}, {-2.0, 25.0, 0, 1}, {-1.0, 25.0, 0, 1}, {0.0, 25.0, 0, 1}, {1.0, 25.0, 0, 1},
+
285 {2.0, 25.0, 0, 1}, {3.0, 25.0, 0, 1}, {4.0, 25.0, 0, 1}, {5.0, 25.0, 0, 1}, {6.0, 25.0, 0, 1}, {7.0, 25.0, 0, 1},
+
286 {8.0, 25.0, 0, 1}, {9.0, 25.0, 0, 1}, {-3.0, 26.0, 0, 1}, {-2.0, 26.0, 0, 1}, {-1.0, 26.0, 0, 1}, {0.0, 26.0, 0, 1},
+
287 {1.0, 26.0, 0, 1}, {2.0, 26.0, 0, 1}, {3.0, 26.0, 0, 1}, {4.0, 26.0, 0, 1}, {5.0, 26.0, 0, 1}
+
288};
+
289
+
290#endif // CONFIG_3D_OBJECT_ESP_LOGO
+ +
const float image_3d_matrix_esp_logo[1427][4]
+
const uint8_t image_bmp_array_esp_logo[512]
+
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html new file mode 100644 index 0000000..9cd5a4f --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html @@ -0,0 +1,180 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_logo.h File Reference
+
+
+
#include <stdint.h>
+#include "sdkconfig.h"
+
+Include dependency graph for applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_bmp_array_esp_logo [512]
const float image_3d_matrix_esp_logo [1427][4]
+

Variable Documentation

+ +

◆ image_3d_matrix_esp_logo

+ + + +

◆ image_bmp_array_esp_logo

+ +
+
+ + + + + +
+ + + + +
const uint8_t image_bmp_array_esp_logo[512]
+
+extern
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js new file mode 100644 index 0000000..f7b16a9 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js @@ -0,0 +1,5 @@ +var applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h = +[ + [ "image_3d_matrix_esp_logo", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html#a0c1bdae97dd97515fb28975af15f88a5", null ], + [ "image_bmp_array_esp_logo", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html#a77aa593659d7ef40813818a0537f1f97", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 new file mode 100644 index 0000000..f34917e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 @@ -0,0 +1 @@ +765e050dce6730877e87099f7e8d5d15 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg new file mode 100644 index 0000000..c104cd2 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +esp_logo.c + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg new file mode 100644 index 0000000..2350bce --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +esp_logo.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 new file mode 100644 index 0000000..ed0784a --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 @@ -0,0 +1 @@ +923a451f92992b11e32e5a175abbdc9d \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg new file mode 100644 index 0000000..c3361d5 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg new file mode 100644 index 0000000..2791e65 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html new file mode 100644 index 0000000..e8130d3 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include <stdint.h>
+
10#include "sdkconfig.h"
+
11
+
12#ifdef __cplusplus
+
13extern "C" {
+
14#endif
+
15
+
16extern const uint8_t image_bmp_array_esp_logo[512];
+
17extern const float image_3d_matrix_esp_logo[1427][4];
+
18
+
19#ifdef __cplusplus
+
20}
+
21#endif
+
const float image_3d_matrix_esp_logo[1427][4]
+
const uint8_t image_bmp_array_esp_logo[512]
+
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html new file mode 100644 index 0000000..6466275 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html @@ -0,0 +1,435 @@ + + + + + + + +ESP-IDF Firmware: esp_text.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_text.c File Reference
+
+
+
#include "esp_text.h"
+
+Include dependency graph for applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_bmp_array_esp_text [384]
const float image_3d_array_esp_text [1271][4]
+

Variable Documentation

+ +

◆ image_3d_array_esp_text

+ +
+
+ + + + +
const float image_3d_array_esp_text[1271][4]
+
+ +

Definition at line 38 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
38 {
+
39
+
40 {-62.0, -11.0, 0, 1}, {-61.0, -11.0, 0, 1}, {-60.0, -11.0, 0, 1}, {-59.0, -11.0, 0, 1}, {-58.0, -11.0, 0, 1}, {-57.0, -11.0, 0, 1},
+
41 {-56.0, -11.0, 0, 1}, {-55.0, -11.0, 0, 1}, {-54.0, -11.0, 0, 1}, {-53.0, -11.0, 0, 1}, {-52.0, -11.0, 0, 1}, {-47.0, -11.0, 0, 1},
+
42 {-46.0, -11.0, 0, 1}, {-45.0, -11.0, 0, 1}, {-44.0, -11.0, 0, 1}, {-43.0, -11.0, 0, 1}, {-42.0, -11.0, 0, 1}, {-41.0, -11.0, 0, 1},
+
43 {-40.0, -11.0, 0, 1}, {-39.0, -11.0, 0, 1}, {-38.0, -11.0, 0, 1}, {-37.0, -11.0, 0, 1}, {-33.0, -11.0, 0, 1}, {-32.0, -11.0, 0, 1},
+
44 {-31.0, -11.0, 0, 1}, {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1},
+
45 {-25.0, -11.0, 0, 1}, {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1},
+
46 {-15.0, -11.0, 0, 1}, {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1},
+
47 {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1},
+
48 {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1}, {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1},
+
49 {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
50 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1},
+
51 {31.0, -11.0, 0, 1}, {32.0, -11.0, 0, 1}, {33.0, -11.0, 0, 1}, {34.0, -11.0, 0, 1}, {35.0, -11.0, 0, 1}, {36.0, -11.0, 0, 1},
+
52 {37.0, -11.0, 0, 1}, {38.0, -11.0, 0, 1}, {39.0, -11.0, 0, 1}, {40.0, -11.0, 0, 1}, {41.0, -11.0, 0, 1}, {45.0, -11.0, 0, 1},
+
53 {46.0, -11.0, 0, 1}, {47.0, -11.0, 0, 1}, {53.0, -11.0, 0, 1}, {54.0, -11.0, 0, 1}, {55.0, -11.0, 0, 1}, {56.0, -11.0, 0, 1},
+
54 {57.0, -11.0, 0, 1}, {58.0, -11.0, 0, 1}, {59.0, -11.0, 0, 1}, {60.0, -11.0, 0, 1}, {61.0, -11.0, 0, 1}, {62.0, -11.0, 0, 1},
+
55 {-63.0, -10.0, 0, 1}, {-62.0, -10.0, 0, 1}, {-61.0, -10.0, 0, 1}, {-60.0, -10.0, 0, 1}, {-59.0, -10.0, 0, 1}, {-58.0, -10.0, 0, 1},
+
56 {-57.0, -10.0, 0, 1}, {-56.0, -10.0, 0, 1}, {-55.0, -10.0, 0, 1}, {-54.0, -10.0, 0, 1}, {-53.0, -10.0, 0, 1}, {-52.0, -10.0, 0, 1},
+
57 {-48.0, -10.0, 0, 1}, {-47.0, -10.0, 0, 1}, {-46.0, -10.0, 0, 1}, {-45.0, -10.0, 0, 1}, {-44.0, -10.0, 0, 1}, {-43.0, -10.0, 0, 1},
+
58 {-42.0, -10.0, 0, 1}, {-41.0, -10.0, 0, 1}, {-40.0, -10.0, 0, 1}, {-39.0, -10.0, 0, 1}, {-38.0, -10.0, 0, 1}, {-37.0, -10.0, 0, 1},
+
59 {-33.0, -10.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1}, {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1},
+
60 {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1},
+
61 {-21.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1}, {-13.0, -10.0, 0, 1},
+
62 {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1}, {-7.0, -10.0, 0, 1},
+
63 {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1},
+
64 {4.0, -10.0, 0, 1}, {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1},
+
65 {10.0, -10.0, 0, 1}, {15.0, -10.0, 0, 1}, {16.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1},
+
66 {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1},
+
67 {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {32.0, -10.0, 0, 1}, {33.0, -10.0, 0, 1}, {34.0, -10.0, 0, 1}, {35.0, -10.0, 0, 1},
+
68 {36.0, -10.0, 0, 1}, {37.0, -10.0, 0, 1}, {38.0, -10.0, 0, 1}, {39.0, -10.0, 0, 1}, {40.0, -10.0, 0, 1}, {41.0, -10.0, 0, 1},
+
69 {45.0, -10.0, 0, 1}, {46.0, -10.0, 0, 1}, {47.0, -10.0, 0, 1}, {52.0, -10.0, 0, 1}, {53.0, -10.0, 0, 1}, {54.0, -10.0, 0, 1},
+
70 {55.0, -10.0, 0, 1}, {56.0, -10.0, 0, 1}, {57.0, -10.0, 0, 1}, {58.0, -10.0, 0, 1}, {59.0, -10.0, 0, 1}, {60.0, -10.0, 0, 1},
+
71 {61.0, -10.0, 0, 1}, {62.0, -10.0, 0, 1}, {-63.0, -9.0, 0, 1}, {-62.0, -9.0, 0, 1}, {-61.0, -9.0, 0, 1}, {-60.0, -9.0, 0, 1},
+
72 {-59.0, -9.0, 0, 1}, {-58.0, -9.0, 0, 1}, {-57.0, -9.0, 0, 1}, {-56.0, -9.0, 0, 1}, {-55.0, -9.0, 0, 1}, {-54.0, -9.0, 0, 1},
+
73 {-53.0, -9.0, 0, 1}, {-52.0, -9.0, 0, 1}, {-48.0, -9.0, 0, 1}, {-47.0, -9.0, 0, 1}, {-46.0, -9.0, 0, 1}, {-45.0, -9.0, 0, 1},
+
74 {-44.0, -9.0, 0, 1}, {-43.0, -9.0, 0, 1}, {-42.0, -9.0, 0, 1}, {-41.0, -9.0, 0, 1}, {-40.0, -9.0, 0, 1}, {-39.0, -9.0, 0, 1},
+
75 {-38.0, -9.0, 0, 1}, {-37.0, -9.0, 0, 1}, {-33.0, -9.0, 0, 1}, {-32.0, -9.0, 0, 1}, {-31.0, -9.0, 0, 1}, {-30.0, -9.0, 0, 1},
+
76 {-29.0, -9.0, 0, 1}, {-28.0, -9.0, 0, 1}, {-27.0, -9.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-24.0, -9.0, 0, 1},
+
77 {-23.0, -9.0, 0, 1}, {-22.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1},
+
78 {-14.0, -9.0, 0, 1}, {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
79 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1},
+
80 {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1}, {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1},
+
81 {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1}, {10.0, -9.0, 0, 1}, {14.0, -9.0, 0, 1}, {15.0, -9.0, 0, 1},
+
82 {16.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1},
+
83 {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {24.0, -9.0, 0, 1}, {25.0, -9.0, 0, 1}, {30.0, -9.0, 0, 1}, {31.0, -9.0, 0, 1},
+
84 {32.0, -9.0, 0, 1}, {33.0, -9.0, 0, 1}, {34.0, -9.0, 0, 1}, {35.0, -9.0, 0, 1}, {36.0, -9.0, 0, 1}, {37.0, -9.0, 0, 1},
+
85 {38.0, -9.0, 0, 1}, {39.0, -9.0, 0, 1}, {40.0, -9.0, 0, 1}, {41.0, -9.0, 0, 1}, {45.0, -9.0, 0, 1}, {46.0, -9.0, 0, 1},
+
86 {47.0, -9.0, 0, 1}, {51.0, -9.0, 0, 1}, {52.0, -9.0, 0, 1}, {53.0, -9.0, 0, 1}, {54.0, -9.0, 0, 1}, {55.0, -9.0, 0, 1},
+
87 {56.0, -9.0, 0, 1}, {57.0, -9.0, 0, 1}, {58.0, -9.0, 0, 1}, {59.0, -9.0, 0, 1}, {60.0, -9.0, 0, 1}, {61.0, -9.0, 0, 1},
+
88 {62.0, -9.0, 0, 1}, {-63.0, -8.0, 0, 1}, {-62.0, -8.0, 0, 1}, {-61.0, -8.0, 0, 1}, {-48.0, -8.0, 0, 1}, {-47.0, -8.0, 0, 1},
+
89 {-46.0, -8.0, 0, 1}, {-33.0, -8.0, 0, 1}, {-32.0, -8.0, 0, 1}, {-31.0, -8.0, 0, 1}, {-30.0, -8.0, 0, 1}, {-23.0, -8.0, 0, 1},
+
90 {-22.0, -8.0, 0, 1}, {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1}, {-15.0, -8.0, 0, 1},
+
91 {-14.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {0.0, -8.0, 0, 1},
+
92 {1.0, -8.0, 0, 1}, {14.0, -8.0, 0, 1}, {15.0, -8.0, 0, 1}, {16.0, -8.0, 0, 1}, {29.0, -8.0, 0, 1}, {30.0, -8.0, 0, 1},
+
93 {31.0, -8.0, 0, 1}, {32.0, -8.0, 0, 1}, {45.0, -8.0, 0, 1}, {46.0, -8.0, 0, 1}, {47.0, -8.0, 0, 1}, {51.0, -8.0, 0, 1},
+
94 {52.0, -8.0, 0, 1}, {53.0, -8.0, 0, 1}, {54.0, -8.0, 0, 1}, {-63.0, -7.0, 0, 1}, {-62.0, -7.0, 0, 1}, {-61.0, -7.0, 0, 1},
+
95 {-48.0, -7.0, 0, 1}, {-47.0, -7.0, 0, 1}, {-46.0, -7.0, 0, 1}, {-33.0, -7.0, 0, 1}, {-32.0, -7.0, 0, 1}, {-31.0, -7.0, 0, 1},
+
96 {-30.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1},
+
97 {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1}, {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
98 {0.0, -7.0, 0, 1}, {1.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {16.0, -7.0, 0, 1}, {29.0, -7.0, 0, 1},
+
99 {30.0, -7.0, 0, 1}, {31.0, -7.0, 0, 1}, {32.0, -7.0, 0, 1}, {45.0, -7.0, 0, 1}, {46.0, -7.0, 0, 1}, {47.0, -7.0, 0, 1},
+
100 {51.0, -7.0, 0, 1}, {52.0, -7.0, 0, 1}, {53.0, -7.0, 0, 1}, {-63.0, -6.0, 0, 1}, {-62.0, -6.0, 0, 1}, {-61.0, -6.0, 0, 1},
+
101 {-48.0, -6.0, 0, 1}, {-47.0, -6.0, 0, 1}, {-46.0, -6.0, 0, 1}, {-33.0, -6.0, 0, 1}, {-32.0, -6.0, 0, 1}, {-31.0, -6.0, 0, 1},
+
102 {-30.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1}, {-16.0, -6.0, 0, 1},
+
103 {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1},
+
104 {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {16.0, -6.0, 0, 1}, {29.0, -6.0, 0, 1},
+
105 {30.0, -6.0, 0, 1}, {31.0, -6.0, 0, 1}, {32.0, -6.0, 0, 1}, {45.0, -6.0, 0, 1}, {46.0, -6.0, 0, 1}, {47.0, -6.0, 0, 1},
+
106 {51.0, -6.0, 0, 1}, {52.0, -6.0, 0, 1}, {53.0, -6.0, 0, 1}, {-63.0, -5.0, 0, 1}, {-62.0, -5.0, 0, 1}, {-61.0, -5.0, 0, 1},
+
107 {-48.0, -5.0, 0, 1}, {-47.0, -5.0, 0, 1}, {-46.0, -5.0, 0, 1}, {-33.0, -5.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1},
+
108 {-30.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1},
+
109 {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1}, {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-1.0, -5.0, 0, 1},
+
110 {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1}, {16.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1},
+
111 {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {32.0, -5.0, 0, 1}, {45.0, -5.0, 0, 1}, {46.0, -5.0, 0, 1}, {47.0, -5.0, 0, 1},
+
112 {51.0, -5.0, 0, 1}, {52.0, -5.0, 0, 1}, {53.0, -5.0, 0, 1}, {-63.0, -4.0, 0, 1}, {-62.0, -4.0, 0, 1}, {-61.0, -4.0, 0, 1},
+
113 {-48.0, -4.0, 0, 1}, {-47.0, -4.0, 0, 1}, {-46.0, -4.0, 0, 1}, {-33.0, -4.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
114 {-30.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1},
+
115 {-15.0, -4.0, 0, 1}, {-14.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1},
+
116 {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1},
+
117 {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1}, {32.0, -4.0, 0, 1}, {45.0, -4.0, 0, 1}, {46.0, -4.0, 0, 1}, {47.0, -4.0, 0, 1},
+
118 {51.0, -4.0, 0, 1}, {52.0, -4.0, 0, 1}, {53.0, -4.0, 0, 1}, {-63.0, -3.0, 0, 1}, {-62.0, -3.0, 0, 1}, {-61.0, -3.0, 0, 1},
+
119 {-48.0, -3.0, 0, 1}, {-47.0, -3.0, 0, 1}, {-46.0, -3.0, 0, 1}, {-33.0, -3.0, 0, 1}, {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1},
+
120 {-30.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
121 {-15.0, -3.0, 0, 1}, {-14.0, -3.0, 0, 1}, {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-1.0, -3.0, 0, 1},
+
122 {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1}, {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
123 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {32.0, -3.0, 0, 1}, {45.0, -3.0, 0, 1}, {46.0, -3.0, 0, 1}, {47.0, -3.0, 0, 1},
+
124 {51.0, -3.0, 0, 1}, {52.0, -3.0, 0, 1}, {53.0, -3.0, 0, 1}, {-63.0, -2.0, 0, 1}, {-62.0, -2.0, 0, 1}, {-61.0, -2.0, 0, 1},
+
125 {-60.0, -2.0, 0, 1}, {-59.0, -2.0, 0, 1}, {-58.0, -2.0, 0, 1}, {-57.0, -2.0, 0, 1}, {-56.0, -2.0, 0, 1}, {-55.0, -2.0, 0, 1},
+
126 {-54.0, -2.0, 0, 1}, {-53.0, -2.0, 0, 1}, {-48.0, -2.0, 0, 1}, {-47.0, -2.0, 0, 1}, {-46.0, -2.0, 0, 1}, {-45.0, -2.0, 0, 1},
+
127 {-44.0, -2.0, 0, 1}, {-43.0, -2.0, 0, 1}, {-42.0, -2.0, 0, 1}, {-41.0, -2.0, 0, 1}, {-40.0, -2.0, 0, 1}, {-39.0, -2.0, 0, 1},
+
128 {-38.0, -2.0, 0, 1}, {-33.0, -2.0, 0, 1}, {-32.0, -2.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1},
+
129 {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
130 {-14.0, -2.0, 0, 1}, {-7.0, -2.0, 0, 1}, {-6.0, -2.0, 0, 1}, {-5.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
131 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {6.0, -2.0, 0, 1},
+
132 {7.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
133 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
134 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {30.0, -2.0, 0, 1}, {31.0, -2.0, 0, 1}, {32.0, -2.0, 0, 1}, {33.0, -2.0, 0, 1},
+
135 {34.0, -2.0, 0, 1}, {35.0, -2.0, 0, 1}, {36.0, -2.0, 0, 1}, {37.0, -2.0, 0, 1}, {38.0, -2.0, 0, 1}, {39.0, -2.0, 0, 1},
+
136 {40.0, -2.0, 0, 1}, {45.0, -2.0, 0, 1}, {46.0, -2.0, 0, 1}, {47.0, -2.0, 0, 1}, {51.0, -2.0, 0, 1}, {52.0, -2.0, 0, 1},
+
137 {53.0, -2.0, 0, 1}, {54.0, -2.0, 0, 1}, {55.0, -2.0, 0, 1}, {56.0, -2.0, 0, 1}, {57.0, -2.0, 0, 1}, {58.0, -2.0, 0, 1},
+
138 {59.0, -2.0, 0, 1}, {60.0, -2.0, 0, 1}, {61.0, -2.0, 0, 1}, {-63.0, -1.0, 0, 1}, {-62.0, -1.0, 0, 1}, {-61.0, -1.0, 0, 1},
+
139 {-60.0, -1.0, 0, 1}, {-59.0, -1.0, 0, 1}, {-58.0, -1.0, 0, 1}, {-57.0, -1.0, 0, 1}, {-56.0, -1.0, 0, 1}, {-55.0, -1.0, 0, 1},
+
140 {-54.0, -1.0, 0, 1}, {-53.0, -1.0, 0, 1}, {-48.0, -1.0, 0, 1}, {-47.0, -1.0, 0, 1}, {-46.0, -1.0, 0, 1}, {-45.0, -1.0, 0, 1},
+
141 {-44.0, -1.0, 0, 1}, {-43.0, -1.0, 0, 1}, {-42.0, -1.0, 0, 1}, {-41.0, -1.0, 0, 1}, {-40.0, -1.0, 0, 1}, {-39.0, -1.0, 0, 1},
+
142 {-38.0, -1.0, 0, 1}, {-37.0, -1.0, 0, 1}, {-33.0, -1.0, 0, 1}, {-32.0, -1.0, 0, 1}, {-31.0, -1.0, 0, 1}, {-30.0, -1.0, 0, 1},
+
143 {-29.0, -1.0, 0, 1}, {-28.0, -1.0, 0, 1}, {-27.0, -1.0, 0, 1}, {-26.0, -1.0, 0, 1}, {-25.0, -1.0, 0, 1}, {-24.0, -1.0, 0, 1},
+
144 {-23.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1},
+
145 {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1}, {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1},
+
146 {-9.0, -1.0, 0, 1}, {-8.0, -1.0, 0, 1}, {-7.0, -1.0, 0, 1}, {-6.0, -1.0, 0, 1}, {-5.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1},
+
147 {0.0, -1.0, 0, 1}, {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1},
+
148 {6.0, -1.0, 0, 1}, {7.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
149 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {21.0, -1.0, 0, 1},
+
150 {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1}, {25.0, -1.0, 0, 1}, {30.0, -1.0, 0, 1}, {31.0, -1.0, 0, 1},
+
151 {32.0, -1.0, 0, 1}, {33.0, -1.0, 0, 1}, {34.0, -1.0, 0, 1}, {35.0, -1.0, 0, 1}, {36.0, -1.0, 0, 1}, {37.0, -1.0, 0, 1},
+
152 {38.0, -1.0, 0, 1}, {39.0, -1.0, 0, 1}, {40.0, -1.0, 0, 1}, {41.0, -1.0, 0, 1}, {45.0, -1.0, 0, 1}, {46.0, -1.0, 0, 1},
+
153 {47.0, -1.0, 0, 1}, {51.0, -1.0, 0, 1}, {52.0, -1.0, 0, 1}, {53.0, -1.0, 0, 1}, {54.0, -1.0, 0, 1}, {55.0, -1.0, 0, 1},
+
154 {56.0, -1.0, 0, 1}, {57.0, -1.0, 0, 1}, {58.0, -1.0, 0, 1}, {59.0, -1.0, 0, 1}, {60.0, -1.0, 0, 1}, {61.0, -1.0, 0, 1},
+
155 {-63.0, 0.0, 0, 1}, {-62.0, 0.0, 0, 1}, {-61.0, 0.0, 0, 1}, {-60.0, 0.0, 0, 1}, {-59.0, 0.0, 0, 1}, {-58.0, 0.0, 0, 1},
+
156 {-57.0, 0.0, 0, 1}, {-56.0, 0.0, 0, 1}, {-55.0, 0.0, 0, 1}, {-54.0, 0.0, 0, 1}, {-53.0, 0.0, 0, 1}, {-47.0, 0.0, 0, 1},
+
157 {-46.0, 0.0, 0, 1}, {-45.0, 0.0, 0, 1}, {-44.0, 0.0, 0, 1}, {-43.0, 0.0, 0, 1}, {-42.0, 0.0, 0, 1}, {-41.0, 0.0, 0, 1},
+
158 {-40.0, 0.0, 0, 1}, {-39.0, 0.0, 0, 1}, {-38.0, 0.0, 0, 1}, {-37.0, 0.0, 0, 1}, {-33.0, 0.0, 0, 1}, {-32.0, 0.0, 0, 1},
+
159 {-31.0, 0.0, 0, 1}, {-30.0, 0.0, 0, 1}, {-29.0, 0.0, 0, 1}, {-28.0, 0.0, 0, 1}, {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1},
+
160 {-25.0, 0.0, 0, 1}, {-24.0, 0.0, 0, 1}, {-23.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1},
+
161 {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1},
+
162 {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-8.0, 0.0, 0, 1}, {-7.0, 0.0, 0, 1}, {-6.0, 0.0, 0, 1}, {-5.0, 0.0, 0, 1},
+
163 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
164 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1},
+
165 {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {21.0, 0.0, 0, 1},
+
166 {22.0, 0.0, 0, 1}, {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {25.0, 0.0, 0, 1}, {26.0, 0.0, 0, 1}, {31.0, 0.0, 0, 1},
+
167 {32.0, 0.0, 0, 1}, {33.0, 0.0, 0, 1}, {34.0, 0.0, 0, 1}, {35.0, 0.0, 0, 1}, {36.0, 0.0, 0, 1}, {37.0, 0.0, 0, 1},
+
168 {38.0, 0.0, 0, 1}, {39.0, 0.0, 0, 1}, {40.0, 0.0, 0, 1}, {41.0, 0.0, 0, 1}, {45.0, 0.0, 0, 1}, {46.0, 0.0, 0, 1},
+
169 {47.0, 0.0, 0, 1}, {51.0, 0.0, 0, 1}, {52.0, 0.0, 0, 1}, {53.0, 0.0, 0, 1}, {54.0, 0.0, 0, 1}, {55.0, 0.0, 0, 1},
+
170 {56.0, 0.0, 0, 1}, {57.0, 0.0, 0, 1}, {58.0, 0.0, 0, 1}, {59.0, 0.0, 0, 1}, {60.0, 0.0, 0, 1}, {61.0, 0.0, 0, 1},
+
171 {-63.0, 1.0, 0, 1}, {-62.0, 1.0, 0, 1}, {-61.0, 1.0, 0, 1}, {-39.0, 1.0, 0, 1}, {-38.0, 1.0, 0, 1}, {-37.0, 1.0, 0, 1},
+
172 {-36.0, 1.0, 0, 1}, {-33.0, 1.0, 0, 1}, {-32.0, 1.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
173 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
174 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1}, {-14.0, 1.0, 0, 1},
+
175 {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {-8.0, 1.0, 0, 1},
+
176 {-7.0, 1.0, 0, 1}, {-6.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1},
+
177 {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {38.0, 1.0, 0, 1}, {39.0, 1.0, 0, 1}, {40.0, 1.0, 0, 1},
+
178 {41.0, 1.0, 0, 1}, {45.0, 1.0, 0, 1}, {46.0, 1.0, 0, 1}, {47.0, 1.0, 0, 1}, {51.0, 1.0, 0, 1}, {52.0, 1.0, 0, 1},
+
179 {53.0, 1.0, 0, 1}, {-63.0, 2.0, 0, 1}, {-62.0, 2.0, 0, 1}, {-61.0, 2.0, 0, 1}, {-39.0, 2.0, 0, 1}, {-38.0, 2.0, 0, 1},
+
180 {-37.0, 2.0, 0, 1}, {-36.0, 2.0, 0, 1}, {-33.0, 2.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
181 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
182 {-23.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1},
+
183 {-8.0, 2.0, 0, 1}, {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1},
+
184 {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1}, {39.0, 2.0, 0, 1}, {40.0, 2.0, 0, 1}, {41.0, 2.0, 0, 1},
+
185 {45.0, 2.0, 0, 1}, {46.0, 2.0, 0, 1}, {47.0, 2.0, 0, 1}, {51.0, 2.0, 0, 1}, {52.0, 2.0, 0, 1}, {53.0, 2.0, 0, 1},
+
186 {-63.0, 3.0, 0, 1}, {-62.0, 3.0, 0, 1}, {-61.0, 3.0, 0, 1}, {-39.0, 3.0, 0, 1}, {-38.0, 3.0, 0, 1}, {-37.0, 3.0, 0, 1},
+
187 {-36.0, 3.0, 0, 1}, {-33.0, 3.0, 0, 1}, {-32.0, 3.0, 0, 1}, {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1},
+
188 {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1}, {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1},
+
189 {-1.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1}, {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1},
+
190 {39.0, 3.0, 0, 1}, {40.0, 3.0, 0, 1}, {41.0, 3.0, 0, 1}, {45.0, 3.0, 0, 1}, {46.0, 3.0, 0, 1}, {47.0, 3.0, 0, 1},
+
191 {51.0, 3.0, 0, 1}, {52.0, 3.0, 0, 1}, {53.0, 3.0, 0, 1}, {-63.0, 4.0, 0, 1}, {-62.0, 4.0, 0, 1}, {-61.0, 4.0, 0, 1},
+
192 {-39.0, 4.0, 0, 1}, {-38.0, 4.0, 0, 1}, {-37.0, 4.0, 0, 1}, {-36.0, 4.0, 0, 1}, {-33.0, 4.0, 0, 1}, {-32.0, 4.0, 0, 1},
+
193 {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1},
+
194 {-7.0, 4.0, 0, 1}, {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-1.0, 4.0, 0, 1}, {0.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1},
+
195 {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {39.0, 4.0, 0, 1}, {40.0, 4.0, 0, 1}, {41.0, 4.0, 0, 1},
+
196 {45.0, 4.0, 0, 1}, {46.0, 4.0, 0, 1}, {47.0, 4.0, 0, 1}, {51.0, 4.0, 0, 1}, {52.0, 4.0, 0, 1}, {53.0, 4.0, 0, 1},
+
197 {-63.0, 5.0, 0, 1}, {-62.0, 5.0, 0, 1}, {-61.0, 5.0, 0, 1}, {-39.0, 5.0, 0, 1}, {-38.0, 5.0, 0, 1}, {-37.0, 5.0, 0, 1},
+
198 {-36.0, 5.0, 0, 1}, {-33.0, 5.0, 0, 1}, {-32.0, 5.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1},
+
199 {-16.0, 5.0, 0, 1}, {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1},
+
200 {-1.0, 5.0, 0, 1}, {0.0, 5.0, 0, 1}, {1.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1},
+
201 {39.0, 5.0, 0, 1}, {40.0, 5.0, 0, 1}, {41.0, 5.0, 0, 1}, {45.0, 5.0, 0, 1}, {46.0, 5.0, 0, 1}, {47.0, 5.0, 0, 1},
+
202 {51.0, 5.0, 0, 1}, {52.0, 5.0, 0, 1}, {53.0, 5.0, 0, 1}, {-63.0, 6.0, 0, 1}, {-62.0, 6.0, 0, 1}, {-61.0, 6.0, 0, 1},
+
203 {-39.0, 6.0, 0, 1}, {-38.0, 6.0, 0, 1}, {-37.0, 6.0, 0, 1}, {-36.0, 6.0, 0, 1}, {-33.0, 6.0, 0, 1}, {-32.0, 6.0, 0, 1},
+
204 {-31.0, 6.0, 0, 1}, {-30.0, 6.0, 0, 1}, {-17.0, 6.0, 0, 1}, {-16.0, 6.0, 0, 1}, {-15.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1},
+
205 {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-1.0, 6.0, 0, 1}, {0.0, 6.0, 0, 1}, {1.0, 6.0, 0, 1},
+
206 {24.0, 6.0, 0, 1}, {25.0, 6.0, 0, 1}, {26.0, 6.0, 0, 1}, {39.0, 6.0, 0, 1}, {40.0, 6.0, 0, 1}, {41.0, 6.0, 0, 1},
+
207 {45.0, 6.0, 0, 1}, {46.0, 6.0, 0, 1}, {47.0, 6.0, 0, 1}, {51.0, 6.0, 0, 1}, {52.0, 6.0, 0, 1}, {53.0, 6.0, 0, 1},
+
208 {-63.0, 7.0, 0, 1}, {-62.0, 7.0, 0, 1}, {-61.0, 7.0, 0, 1}, {-39.0, 7.0, 0, 1}, {-38.0, 7.0, 0, 1}, {-37.0, 7.0, 0, 1},
+
209 {-36.0, 7.0, 0, 1}, {-33.0, 7.0, 0, 1}, {-32.0, 7.0, 0, 1}, {-31.0, 7.0, 0, 1}, {-30.0, 7.0, 0, 1}, {-17.0, 7.0, 0, 1},
+
210 {-16.0, 7.0, 0, 1}, {-15.0, 7.0, 0, 1}, {-14.0, 7.0, 0, 1}, {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1},
+
211 {-1.0, 7.0, 0, 1}, {0.0, 7.0, 0, 1}, {1.0, 7.0, 0, 1}, {24.0, 7.0, 0, 1}, {25.0, 7.0, 0, 1}, {26.0, 7.0, 0, 1},
+
212 {39.0, 7.0, 0, 1}, {40.0, 7.0, 0, 1}, {41.0, 7.0, 0, 1}, {45.0, 7.0, 0, 1}, {46.0, 7.0, 0, 1}, {47.0, 7.0, 0, 1},
+
213 {51.0, 7.0, 0, 1}, {52.0, 7.0, 0, 1}, {53.0, 7.0, 0, 1}, {-63.0, 8.0, 0, 1}, {-62.0, 8.0, 0, 1}, {-61.0, 8.0, 0, 1},
+
214 {-60.0, 8.0, 0, 1}, {-59.0, 8.0, 0, 1}, {-58.0, 8.0, 0, 1}, {-57.0, 8.0, 0, 1}, {-56.0, 8.0, 0, 1}, {-55.0, 8.0, 0, 1},
+
215 {-54.0, 8.0, 0, 1}, {-53.0, 8.0, 0, 1}, {-52.0, 8.0, 0, 1}, {-48.0, 8.0, 0, 1}, {-47.0, 8.0, 0, 1}, {-46.0, 8.0, 0, 1},
+
216 {-45.0, 8.0, 0, 1}, {-44.0, 8.0, 0, 1}, {-43.0, 8.0, 0, 1}, {-42.0, 8.0, 0, 1}, {-41.0, 8.0, 0, 1}, {-40.0, 8.0, 0, 1},
+
217 {-39.0, 8.0, 0, 1}, {-38.0, 8.0, 0, 1}, {-37.0, 8.0, 0, 1}, {-33.0, 8.0, 0, 1}, {-32.0, 8.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
218 {-30.0, 8.0, 0, 1}, {-17.0, 8.0, 0, 1}, {-16.0, 8.0, 0, 1}, {-15.0, 8.0, 0, 1}, {-14.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1},
+
219 {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1},
+
220 {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1}, {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1},
+
221 {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1}, {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1},
+
222 {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {22.0, 8.0, 0, 1},
+
223 {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {30.0, 8.0, 0, 1},
+
224 {31.0, 8.0, 0, 1}, {32.0, 8.0, 0, 1}, {33.0, 8.0, 0, 1}, {34.0, 8.0, 0, 1}, {35.0, 8.0, 0, 1}, {36.0, 8.0, 0, 1},
+
225 {37.0, 8.0, 0, 1}, {38.0, 8.0, 0, 1}, {39.0, 8.0, 0, 1}, {40.0, 8.0, 0, 1}, {41.0, 8.0, 0, 1}, {45.0, 8.0, 0, 1},
+
226 {46.0, 8.0, 0, 1}, {47.0, 8.0, 0, 1}, {51.0, 8.0, 0, 1}, {52.0, 8.0, 0, 1}, {53.0, 8.0, 0, 1}, {-63.0, 9.0, 0, 1},
+
227 {-62.0, 9.0, 0, 1}, {-61.0, 9.0, 0, 1}, {-60.0, 9.0, 0, 1}, {-59.0, 9.0, 0, 1}, {-58.0, 9.0, 0, 1}, {-57.0, 9.0, 0, 1},
+
228 {-56.0, 9.0, 0, 1}, {-55.0, 9.0, 0, 1}, {-54.0, 9.0, 0, 1}, {-53.0, 9.0, 0, 1}, {-52.0, 9.0, 0, 1}, {-48.0, 9.0, 0, 1},
+
229 {-47.0, 9.0, 0, 1}, {-46.0, 9.0, 0, 1}, {-45.0, 9.0, 0, 1}, {-44.0, 9.0, 0, 1}, {-43.0, 9.0, 0, 1}, {-42.0, 9.0, 0, 1},
+
230 {-41.0, 9.0, 0, 1}, {-40.0, 9.0, 0, 1}, {-39.0, 9.0, 0, 1}, {-38.0, 9.0, 0, 1}, {-37.0, 9.0, 0, 1}, {-33.0, 9.0, 0, 1},
+
231 {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-17.0, 9.0, 0, 1}, {-16.0, 9.0, 0, 1}, {-15.0, 9.0, 0, 1},
+
232 {-14.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1}, {1.0, 9.0, 0, 1},
+
233 {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1}, {7.0, 9.0, 0, 1},
+
234 {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1}, {16.0, 9.0, 0, 1},
+
235 {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1},
+
236 {23.0, 9.0, 0, 1}, {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1}, {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1},
+
237 {32.0, 9.0, 0, 1}, {33.0, 9.0, 0, 1}, {34.0, 9.0, 0, 1}, {35.0, 9.0, 0, 1}, {36.0, 9.0, 0, 1}, {37.0, 9.0, 0, 1},
+
238 {38.0, 9.0, 0, 1}, {39.0, 9.0, 0, 1}, {40.0, 9.0, 0, 1}, {41.0, 9.0, 0, 1}, {45.0, 9.0, 0, 1}, {46.0, 9.0, 0, 1},
+
239 {47.0, 9.0, 0, 1}, {51.0, 9.0, 0, 1}, {52.0, 9.0, 0, 1}, {53.0, 9.0, 0, 1}, {-62.0, 10.0, 0, 1}, {-61.0, 10.0, 0, 1},
+
240 {-60.0, 10.0, 0, 1}, {-59.0, 10.0, 0, 1}, {-58.0, 10.0, 0, 1}, {-57.0, 10.0, 0, 1}, {-56.0, 10.0, 0, 1}, {-55.0, 10.0, 0, 1},
+
241 {-54.0, 10.0, 0, 1}, {-53.0, 10.0, 0, 1}, {-52.0, 10.0, 0, 1}, {-48.0, 10.0, 0, 1}, {-47.0, 10.0, 0, 1}, {-46.0, 10.0, 0, 1},
+
242 {-45.0, 10.0, 0, 1}, {-44.0, 10.0, 0, 1}, {-43.0, 10.0, 0, 1}, {-42.0, 10.0, 0, 1}, {-41.0, 10.0, 0, 1}, {-40.0, 10.0, 0, 1},
+
243 {-39.0, 10.0, 0, 1}, {-38.0, 10.0, 0, 1}, {-33.0, 10.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1},
+
244 {-17.0, 10.0, 0, 1}, {-16.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1},
+
245 {-4.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1}, {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1},
+
246 {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1},
+
247 {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1},
+
248 {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1}, {24.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
249 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {32.0, 10.0, 0, 1}, {33.0, 10.0, 0, 1}, {34.0, 10.0, 0, 1}, {35.0, 10.0, 0, 1},
+
250 {36.0, 10.0, 0, 1}, {37.0, 10.0, 0, 1}, {38.0, 10.0, 0, 1}, {39.0, 10.0, 0, 1}, {40.0, 10.0, 0, 1}, {45.0, 10.0, 0, 1},
+
251 {46.0, 10.0, 0, 1}, {47.0, 10.0, 0, 1}, {51.0, 10.0, 0, 1}, {52.0, 10.0, 0, 1}, {53.0, 10.0, 0, 1}
+
252};
+
+

Referenced by dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), and dispaly_esp_text().

+ +
+
+ +

◆ image_bmp_array_esp_text

+ +
+
+ + + + +
const uint8_t image_bmp_array_esp_text[384]
+
+Initial value:
= {
+
+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+
}
+
+

Definition at line 9 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
9 {
+
10
+
11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
12 0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
13 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
14 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
15 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
16 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
17 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
18 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
19 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
20 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
21 0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
22 0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
23 0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
24 0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
25 0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
26 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
27 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
28 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
29 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
30 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
31 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
32 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
33 0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
35
+
36};
+
+

Referenced by dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), and dispaly_esp_text().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js new file mode 100644 index 0000000..2dd80ca --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js @@ -0,0 +1,5 @@ +var applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c = +[ + [ "image_3d_array_esp_text", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html#aca921c7ba529f39acf0b48eddef96266", null ], + [ "image_bmp_array_esp_text", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html#ace7ab8bb5752781ce55ed3b3f7b01c06", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 new file mode 100644 index 0000000..6d732fb --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 @@ -0,0 +1 @@ +8090c66bc004dcfb49e29c5620ae7850 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg new file mode 100644 index 0000000..39a8a3e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +esp_text.c + + +Node1 + + +esp_text.c + + + + + +Node2 + + +esp_text.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg new file mode 100644 index 0000000..dc80e97 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +esp_text.c + + +Node1 + + +esp_text.c + + + + + +Node2 + + +esp_text.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html new file mode 100644 index 0000000..86584c1 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html @@ -0,0 +1,365 @@ + + + + + + + +ESP-IDF Firmware: esp_text.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "esp_text.h"
+
8
+
+
9const uint8_t image_bmp_array_esp_text[384] = {
+
10
+
11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
12 0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
13 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
14 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
15 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
16 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
17 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
18 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
19 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
20 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
21 0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
22 0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
23 0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
24 0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
25 0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
26 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
27 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
28 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
29 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
30 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
31 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
32 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
33 0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
35
+
36};
+
+
37
+
+
38const float image_3d_array_esp_text[1271][4] = {
+
39
+
40 {-62.0, -11.0, 0, 1}, {-61.0, -11.0, 0, 1}, {-60.0, -11.0, 0, 1}, {-59.0, -11.0, 0, 1}, {-58.0, -11.0, 0, 1}, {-57.0, -11.0, 0, 1},
+
41 {-56.0, -11.0, 0, 1}, {-55.0, -11.0, 0, 1}, {-54.0, -11.0, 0, 1}, {-53.0, -11.0, 0, 1}, {-52.0, -11.0, 0, 1}, {-47.0, -11.0, 0, 1},
+
42 {-46.0, -11.0, 0, 1}, {-45.0, -11.0, 0, 1}, {-44.0, -11.0, 0, 1}, {-43.0, -11.0, 0, 1}, {-42.0, -11.0, 0, 1}, {-41.0, -11.0, 0, 1},
+
43 {-40.0, -11.0, 0, 1}, {-39.0, -11.0, 0, 1}, {-38.0, -11.0, 0, 1}, {-37.0, -11.0, 0, 1}, {-33.0, -11.0, 0, 1}, {-32.0, -11.0, 0, 1},
+
44 {-31.0, -11.0, 0, 1}, {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1},
+
45 {-25.0, -11.0, 0, 1}, {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1},
+
46 {-15.0, -11.0, 0, 1}, {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1},
+
47 {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1},
+
48 {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1}, {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1},
+
49 {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
50 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1},
+
51 {31.0, -11.0, 0, 1}, {32.0, -11.0, 0, 1}, {33.0, -11.0, 0, 1}, {34.0, -11.0, 0, 1}, {35.0, -11.0, 0, 1}, {36.0, -11.0, 0, 1},
+
52 {37.0, -11.0, 0, 1}, {38.0, -11.0, 0, 1}, {39.0, -11.0, 0, 1}, {40.0, -11.0, 0, 1}, {41.0, -11.0, 0, 1}, {45.0, -11.0, 0, 1},
+
53 {46.0, -11.0, 0, 1}, {47.0, -11.0, 0, 1}, {53.0, -11.0, 0, 1}, {54.0, -11.0, 0, 1}, {55.0, -11.0, 0, 1}, {56.0, -11.0, 0, 1},
+
54 {57.0, -11.0, 0, 1}, {58.0, -11.0, 0, 1}, {59.0, -11.0, 0, 1}, {60.0, -11.0, 0, 1}, {61.0, -11.0, 0, 1}, {62.0, -11.0, 0, 1},
+
55 {-63.0, -10.0, 0, 1}, {-62.0, -10.0, 0, 1}, {-61.0, -10.0, 0, 1}, {-60.0, -10.0, 0, 1}, {-59.0, -10.0, 0, 1}, {-58.0, -10.0, 0, 1},
+
56 {-57.0, -10.0, 0, 1}, {-56.0, -10.0, 0, 1}, {-55.0, -10.0, 0, 1}, {-54.0, -10.0, 0, 1}, {-53.0, -10.0, 0, 1}, {-52.0, -10.0, 0, 1},
+
57 {-48.0, -10.0, 0, 1}, {-47.0, -10.0, 0, 1}, {-46.0, -10.0, 0, 1}, {-45.0, -10.0, 0, 1}, {-44.0, -10.0, 0, 1}, {-43.0, -10.0, 0, 1},
+
58 {-42.0, -10.0, 0, 1}, {-41.0, -10.0, 0, 1}, {-40.0, -10.0, 0, 1}, {-39.0, -10.0, 0, 1}, {-38.0, -10.0, 0, 1}, {-37.0, -10.0, 0, 1},
+
59 {-33.0, -10.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1}, {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1},
+
60 {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1},
+
61 {-21.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1}, {-13.0, -10.0, 0, 1},
+
62 {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1}, {-7.0, -10.0, 0, 1},
+
63 {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1},
+
64 {4.0, -10.0, 0, 1}, {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1},
+
65 {10.0, -10.0, 0, 1}, {15.0, -10.0, 0, 1}, {16.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1},
+
66 {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1},
+
67 {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {32.0, -10.0, 0, 1}, {33.0, -10.0, 0, 1}, {34.0, -10.0, 0, 1}, {35.0, -10.0, 0, 1},
+
68 {36.0, -10.0, 0, 1}, {37.0, -10.0, 0, 1}, {38.0, -10.0, 0, 1}, {39.0, -10.0, 0, 1}, {40.0, -10.0, 0, 1}, {41.0, -10.0, 0, 1},
+
69 {45.0, -10.0, 0, 1}, {46.0, -10.0, 0, 1}, {47.0, -10.0, 0, 1}, {52.0, -10.0, 0, 1}, {53.0, -10.0, 0, 1}, {54.0, -10.0, 0, 1},
+
70 {55.0, -10.0, 0, 1}, {56.0, -10.0, 0, 1}, {57.0, -10.0, 0, 1}, {58.0, -10.0, 0, 1}, {59.0, -10.0, 0, 1}, {60.0, -10.0, 0, 1},
+
71 {61.0, -10.0, 0, 1}, {62.0, -10.0, 0, 1}, {-63.0, -9.0, 0, 1}, {-62.0, -9.0, 0, 1}, {-61.0, -9.0, 0, 1}, {-60.0, -9.0, 0, 1},
+
72 {-59.0, -9.0, 0, 1}, {-58.0, -9.0, 0, 1}, {-57.0, -9.0, 0, 1}, {-56.0, -9.0, 0, 1}, {-55.0, -9.0, 0, 1}, {-54.0, -9.0, 0, 1},
+
73 {-53.0, -9.0, 0, 1}, {-52.0, -9.0, 0, 1}, {-48.0, -9.0, 0, 1}, {-47.0, -9.0, 0, 1}, {-46.0, -9.0, 0, 1}, {-45.0, -9.0, 0, 1},
+
74 {-44.0, -9.0, 0, 1}, {-43.0, -9.0, 0, 1}, {-42.0, -9.0, 0, 1}, {-41.0, -9.0, 0, 1}, {-40.0, -9.0, 0, 1}, {-39.0, -9.0, 0, 1},
+
75 {-38.0, -9.0, 0, 1}, {-37.0, -9.0, 0, 1}, {-33.0, -9.0, 0, 1}, {-32.0, -9.0, 0, 1}, {-31.0, -9.0, 0, 1}, {-30.0, -9.0, 0, 1},
+
76 {-29.0, -9.0, 0, 1}, {-28.0, -9.0, 0, 1}, {-27.0, -9.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-24.0, -9.0, 0, 1},
+
77 {-23.0, -9.0, 0, 1}, {-22.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1},
+
78 {-14.0, -9.0, 0, 1}, {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
79 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1},
+
80 {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1}, {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1},
+
81 {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1}, {10.0, -9.0, 0, 1}, {14.0, -9.0, 0, 1}, {15.0, -9.0, 0, 1},
+
82 {16.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1},
+
83 {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {24.0, -9.0, 0, 1}, {25.0, -9.0, 0, 1}, {30.0, -9.0, 0, 1}, {31.0, -9.0, 0, 1},
+
84 {32.0, -9.0, 0, 1}, {33.0, -9.0, 0, 1}, {34.0, -9.0, 0, 1}, {35.0, -9.0, 0, 1}, {36.0, -9.0, 0, 1}, {37.0, -9.0, 0, 1},
+
85 {38.0, -9.0, 0, 1}, {39.0, -9.0, 0, 1}, {40.0, -9.0, 0, 1}, {41.0, -9.0, 0, 1}, {45.0, -9.0, 0, 1}, {46.0, -9.0, 0, 1},
+
86 {47.0, -9.0, 0, 1}, {51.0, -9.0, 0, 1}, {52.0, -9.0, 0, 1}, {53.0, -9.0, 0, 1}, {54.0, -9.0, 0, 1}, {55.0, -9.0, 0, 1},
+
87 {56.0, -9.0, 0, 1}, {57.0, -9.0, 0, 1}, {58.0, -9.0, 0, 1}, {59.0, -9.0, 0, 1}, {60.0, -9.0, 0, 1}, {61.0, -9.0, 0, 1},
+
88 {62.0, -9.0, 0, 1}, {-63.0, -8.0, 0, 1}, {-62.0, -8.0, 0, 1}, {-61.0, -8.0, 0, 1}, {-48.0, -8.0, 0, 1}, {-47.0, -8.0, 0, 1},
+
89 {-46.0, -8.0, 0, 1}, {-33.0, -8.0, 0, 1}, {-32.0, -8.0, 0, 1}, {-31.0, -8.0, 0, 1}, {-30.0, -8.0, 0, 1}, {-23.0, -8.0, 0, 1},
+
90 {-22.0, -8.0, 0, 1}, {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1}, {-15.0, -8.0, 0, 1},
+
91 {-14.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {0.0, -8.0, 0, 1},
+
92 {1.0, -8.0, 0, 1}, {14.0, -8.0, 0, 1}, {15.0, -8.0, 0, 1}, {16.0, -8.0, 0, 1}, {29.0, -8.0, 0, 1}, {30.0, -8.0, 0, 1},
+
93 {31.0, -8.0, 0, 1}, {32.0, -8.0, 0, 1}, {45.0, -8.0, 0, 1}, {46.0, -8.0, 0, 1}, {47.0, -8.0, 0, 1}, {51.0, -8.0, 0, 1},
+
94 {52.0, -8.0, 0, 1}, {53.0, -8.0, 0, 1}, {54.0, -8.0, 0, 1}, {-63.0, -7.0, 0, 1}, {-62.0, -7.0, 0, 1}, {-61.0, -7.0, 0, 1},
+
95 {-48.0, -7.0, 0, 1}, {-47.0, -7.0, 0, 1}, {-46.0, -7.0, 0, 1}, {-33.0, -7.0, 0, 1}, {-32.0, -7.0, 0, 1}, {-31.0, -7.0, 0, 1},
+
96 {-30.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1},
+
97 {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1}, {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
98 {0.0, -7.0, 0, 1}, {1.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {16.0, -7.0, 0, 1}, {29.0, -7.0, 0, 1},
+
99 {30.0, -7.0, 0, 1}, {31.0, -7.0, 0, 1}, {32.0, -7.0, 0, 1}, {45.0, -7.0, 0, 1}, {46.0, -7.0, 0, 1}, {47.0, -7.0, 0, 1},
+
100 {51.0, -7.0, 0, 1}, {52.0, -7.0, 0, 1}, {53.0, -7.0, 0, 1}, {-63.0, -6.0, 0, 1}, {-62.0, -6.0, 0, 1}, {-61.0, -6.0, 0, 1},
+
101 {-48.0, -6.0, 0, 1}, {-47.0, -6.0, 0, 1}, {-46.0, -6.0, 0, 1}, {-33.0, -6.0, 0, 1}, {-32.0, -6.0, 0, 1}, {-31.0, -6.0, 0, 1},
+
102 {-30.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1}, {-16.0, -6.0, 0, 1},
+
103 {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1},
+
104 {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {16.0, -6.0, 0, 1}, {29.0, -6.0, 0, 1},
+
105 {30.0, -6.0, 0, 1}, {31.0, -6.0, 0, 1}, {32.0, -6.0, 0, 1}, {45.0, -6.0, 0, 1}, {46.0, -6.0, 0, 1}, {47.0, -6.0, 0, 1},
+
106 {51.0, -6.0, 0, 1}, {52.0, -6.0, 0, 1}, {53.0, -6.0, 0, 1}, {-63.0, -5.0, 0, 1}, {-62.0, -5.0, 0, 1}, {-61.0, -5.0, 0, 1},
+
107 {-48.0, -5.0, 0, 1}, {-47.0, -5.0, 0, 1}, {-46.0, -5.0, 0, 1}, {-33.0, -5.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1},
+
108 {-30.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1},
+
109 {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1}, {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-1.0, -5.0, 0, 1},
+
110 {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1}, {16.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1},
+
111 {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {32.0, -5.0, 0, 1}, {45.0, -5.0, 0, 1}, {46.0, -5.0, 0, 1}, {47.0, -5.0, 0, 1},
+
112 {51.0, -5.0, 0, 1}, {52.0, -5.0, 0, 1}, {53.0, -5.0, 0, 1}, {-63.0, -4.0, 0, 1}, {-62.0, -4.0, 0, 1}, {-61.0, -4.0, 0, 1},
+
113 {-48.0, -4.0, 0, 1}, {-47.0, -4.0, 0, 1}, {-46.0, -4.0, 0, 1}, {-33.0, -4.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
114 {-30.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1},
+
115 {-15.0, -4.0, 0, 1}, {-14.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1},
+
116 {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1},
+
117 {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1}, {32.0, -4.0, 0, 1}, {45.0, -4.0, 0, 1}, {46.0, -4.0, 0, 1}, {47.0, -4.0, 0, 1},
+
118 {51.0, -4.0, 0, 1}, {52.0, -4.0, 0, 1}, {53.0, -4.0, 0, 1}, {-63.0, -3.0, 0, 1}, {-62.0, -3.0, 0, 1}, {-61.0, -3.0, 0, 1},
+
119 {-48.0, -3.0, 0, 1}, {-47.0, -3.0, 0, 1}, {-46.0, -3.0, 0, 1}, {-33.0, -3.0, 0, 1}, {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1},
+
120 {-30.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
121 {-15.0, -3.0, 0, 1}, {-14.0, -3.0, 0, 1}, {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-1.0, -3.0, 0, 1},
+
122 {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1}, {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
123 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {32.0, -3.0, 0, 1}, {45.0, -3.0, 0, 1}, {46.0, -3.0, 0, 1}, {47.0, -3.0, 0, 1},
+
124 {51.0, -3.0, 0, 1}, {52.0, -3.0, 0, 1}, {53.0, -3.0, 0, 1}, {-63.0, -2.0, 0, 1}, {-62.0, -2.0, 0, 1}, {-61.0, -2.0, 0, 1},
+
125 {-60.0, -2.0, 0, 1}, {-59.0, -2.0, 0, 1}, {-58.0, -2.0, 0, 1}, {-57.0, -2.0, 0, 1}, {-56.0, -2.0, 0, 1}, {-55.0, -2.0, 0, 1},
+
126 {-54.0, -2.0, 0, 1}, {-53.0, -2.0, 0, 1}, {-48.0, -2.0, 0, 1}, {-47.0, -2.0, 0, 1}, {-46.0, -2.0, 0, 1}, {-45.0, -2.0, 0, 1},
+
127 {-44.0, -2.0, 0, 1}, {-43.0, -2.0, 0, 1}, {-42.0, -2.0, 0, 1}, {-41.0, -2.0, 0, 1}, {-40.0, -2.0, 0, 1}, {-39.0, -2.0, 0, 1},
+
128 {-38.0, -2.0, 0, 1}, {-33.0, -2.0, 0, 1}, {-32.0, -2.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1},
+
129 {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
130 {-14.0, -2.0, 0, 1}, {-7.0, -2.0, 0, 1}, {-6.0, -2.0, 0, 1}, {-5.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
131 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {6.0, -2.0, 0, 1},
+
132 {7.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
133 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
134 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {30.0, -2.0, 0, 1}, {31.0, -2.0, 0, 1}, {32.0, -2.0, 0, 1}, {33.0, -2.0, 0, 1},
+
135 {34.0, -2.0, 0, 1}, {35.0, -2.0, 0, 1}, {36.0, -2.0, 0, 1}, {37.0, -2.0, 0, 1}, {38.0, -2.0, 0, 1}, {39.0, -2.0, 0, 1},
+
136 {40.0, -2.0, 0, 1}, {45.0, -2.0, 0, 1}, {46.0, -2.0, 0, 1}, {47.0, -2.0, 0, 1}, {51.0, -2.0, 0, 1}, {52.0, -2.0, 0, 1},
+
137 {53.0, -2.0, 0, 1}, {54.0, -2.0, 0, 1}, {55.0, -2.0, 0, 1}, {56.0, -2.0, 0, 1}, {57.0, -2.0, 0, 1}, {58.0, -2.0, 0, 1},
+
138 {59.0, -2.0, 0, 1}, {60.0, -2.0, 0, 1}, {61.0, -2.0, 0, 1}, {-63.0, -1.0, 0, 1}, {-62.0, -1.0, 0, 1}, {-61.0, -1.0, 0, 1},
+
139 {-60.0, -1.0, 0, 1}, {-59.0, -1.0, 0, 1}, {-58.0, -1.0, 0, 1}, {-57.0, -1.0, 0, 1}, {-56.0, -1.0, 0, 1}, {-55.0, -1.0, 0, 1},
+
140 {-54.0, -1.0, 0, 1}, {-53.0, -1.0, 0, 1}, {-48.0, -1.0, 0, 1}, {-47.0, -1.0, 0, 1}, {-46.0, -1.0, 0, 1}, {-45.0, -1.0, 0, 1},
+
141 {-44.0, -1.0, 0, 1}, {-43.0, -1.0, 0, 1}, {-42.0, -1.0, 0, 1}, {-41.0, -1.0, 0, 1}, {-40.0, -1.0, 0, 1}, {-39.0, -1.0, 0, 1},
+
142 {-38.0, -1.0, 0, 1}, {-37.0, -1.0, 0, 1}, {-33.0, -1.0, 0, 1}, {-32.0, -1.0, 0, 1}, {-31.0, -1.0, 0, 1}, {-30.0, -1.0, 0, 1},
+
143 {-29.0, -1.0, 0, 1}, {-28.0, -1.0, 0, 1}, {-27.0, -1.0, 0, 1}, {-26.0, -1.0, 0, 1}, {-25.0, -1.0, 0, 1}, {-24.0, -1.0, 0, 1},
+
144 {-23.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1},
+
145 {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1}, {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1},
+
146 {-9.0, -1.0, 0, 1}, {-8.0, -1.0, 0, 1}, {-7.0, -1.0, 0, 1}, {-6.0, -1.0, 0, 1}, {-5.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1},
+
147 {0.0, -1.0, 0, 1}, {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1},
+
148 {6.0, -1.0, 0, 1}, {7.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
149 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {21.0, -1.0, 0, 1},
+
150 {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1}, {25.0, -1.0, 0, 1}, {30.0, -1.0, 0, 1}, {31.0, -1.0, 0, 1},
+
151 {32.0, -1.0, 0, 1}, {33.0, -1.0, 0, 1}, {34.0, -1.0, 0, 1}, {35.0, -1.0, 0, 1}, {36.0, -1.0, 0, 1}, {37.0, -1.0, 0, 1},
+
152 {38.0, -1.0, 0, 1}, {39.0, -1.0, 0, 1}, {40.0, -1.0, 0, 1}, {41.0, -1.0, 0, 1}, {45.0, -1.0, 0, 1}, {46.0, -1.0, 0, 1},
+
153 {47.0, -1.0, 0, 1}, {51.0, -1.0, 0, 1}, {52.0, -1.0, 0, 1}, {53.0, -1.0, 0, 1}, {54.0, -1.0, 0, 1}, {55.0, -1.0, 0, 1},
+
154 {56.0, -1.0, 0, 1}, {57.0, -1.0, 0, 1}, {58.0, -1.0, 0, 1}, {59.0, -1.0, 0, 1}, {60.0, -1.0, 0, 1}, {61.0, -1.0, 0, 1},
+
155 {-63.0, 0.0, 0, 1}, {-62.0, 0.0, 0, 1}, {-61.0, 0.0, 0, 1}, {-60.0, 0.0, 0, 1}, {-59.0, 0.0, 0, 1}, {-58.0, 0.0, 0, 1},
+
156 {-57.0, 0.0, 0, 1}, {-56.0, 0.0, 0, 1}, {-55.0, 0.0, 0, 1}, {-54.0, 0.0, 0, 1}, {-53.0, 0.0, 0, 1}, {-47.0, 0.0, 0, 1},
+
157 {-46.0, 0.0, 0, 1}, {-45.0, 0.0, 0, 1}, {-44.0, 0.0, 0, 1}, {-43.0, 0.0, 0, 1}, {-42.0, 0.0, 0, 1}, {-41.0, 0.0, 0, 1},
+
158 {-40.0, 0.0, 0, 1}, {-39.0, 0.0, 0, 1}, {-38.0, 0.0, 0, 1}, {-37.0, 0.0, 0, 1}, {-33.0, 0.0, 0, 1}, {-32.0, 0.0, 0, 1},
+
159 {-31.0, 0.0, 0, 1}, {-30.0, 0.0, 0, 1}, {-29.0, 0.0, 0, 1}, {-28.0, 0.0, 0, 1}, {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1},
+
160 {-25.0, 0.0, 0, 1}, {-24.0, 0.0, 0, 1}, {-23.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1},
+
161 {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1},
+
162 {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-8.0, 0.0, 0, 1}, {-7.0, 0.0, 0, 1}, {-6.0, 0.0, 0, 1}, {-5.0, 0.0, 0, 1},
+
163 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
164 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1},
+
165 {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {21.0, 0.0, 0, 1},
+
166 {22.0, 0.0, 0, 1}, {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {25.0, 0.0, 0, 1}, {26.0, 0.0, 0, 1}, {31.0, 0.0, 0, 1},
+
167 {32.0, 0.0, 0, 1}, {33.0, 0.0, 0, 1}, {34.0, 0.0, 0, 1}, {35.0, 0.0, 0, 1}, {36.0, 0.0, 0, 1}, {37.0, 0.0, 0, 1},
+
168 {38.0, 0.0, 0, 1}, {39.0, 0.0, 0, 1}, {40.0, 0.0, 0, 1}, {41.0, 0.0, 0, 1}, {45.0, 0.0, 0, 1}, {46.0, 0.0, 0, 1},
+
169 {47.0, 0.0, 0, 1}, {51.0, 0.0, 0, 1}, {52.0, 0.0, 0, 1}, {53.0, 0.0, 0, 1}, {54.0, 0.0, 0, 1}, {55.0, 0.0, 0, 1},
+
170 {56.0, 0.0, 0, 1}, {57.0, 0.0, 0, 1}, {58.0, 0.0, 0, 1}, {59.0, 0.0, 0, 1}, {60.0, 0.0, 0, 1}, {61.0, 0.0, 0, 1},
+
171 {-63.0, 1.0, 0, 1}, {-62.0, 1.0, 0, 1}, {-61.0, 1.0, 0, 1}, {-39.0, 1.0, 0, 1}, {-38.0, 1.0, 0, 1}, {-37.0, 1.0, 0, 1},
+
172 {-36.0, 1.0, 0, 1}, {-33.0, 1.0, 0, 1}, {-32.0, 1.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
173 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
174 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1}, {-14.0, 1.0, 0, 1},
+
175 {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {-8.0, 1.0, 0, 1},
+
176 {-7.0, 1.0, 0, 1}, {-6.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1},
+
177 {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {38.0, 1.0, 0, 1}, {39.0, 1.0, 0, 1}, {40.0, 1.0, 0, 1},
+
178 {41.0, 1.0, 0, 1}, {45.0, 1.0, 0, 1}, {46.0, 1.0, 0, 1}, {47.0, 1.0, 0, 1}, {51.0, 1.0, 0, 1}, {52.0, 1.0, 0, 1},
+
179 {53.0, 1.0, 0, 1}, {-63.0, 2.0, 0, 1}, {-62.0, 2.0, 0, 1}, {-61.0, 2.0, 0, 1}, {-39.0, 2.0, 0, 1}, {-38.0, 2.0, 0, 1},
+
180 {-37.0, 2.0, 0, 1}, {-36.0, 2.0, 0, 1}, {-33.0, 2.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
181 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
182 {-23.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1},
+
183 {-8.0, 2.0, 0, 1}, {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1},
+
184 {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1}, {39.0, 2.0, 0, 1}, {40.0, 2.0, 0, 1}, {41.0, 2.0, 0, 1},
+
185 {45.0, 2.0, 0, 1}, {46.0, 2.0, 0, 1}, {47.0, 2.0, 0, 1}, {51.0, 2.0, 0, 1}, {52.0, 2.0, 0, 1}, {53.0, 2.0, 0, 1},
+
186 {-63.0, 3.0, 0, 1}, {-62.0, 3.0, 0, 1}, {-61.0, 3.0, 0, 1}, {-39.0, 3.0, 0, 1}, {-38.0, 3.0, 0, 1}, {-37.0, 3.0, 0, 1},
+
187 {-36.0, 3.0, 0, 1}, {-33.0, 3.0, 0, 1}, {-32.0, 3.0, 0, 1}, {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1},
+
188 {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1}, {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1},
+
189 {-1.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1}, {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1},
+
190 {39.0, 3.0, 0, 1}, {40.0, 3.0, 0, 1}, {41.0, 3.0, 0, 1}, {45.0, 3.0, 0, 1}, {46.0, 3.0, 0, 1}, {47.0, 3.0, 0, 1},
+
191 {51.0, 3.0, 0, 1}, {52.0, 3.0, 0, 1}, {53.0, 3.0, 0, 1}, {-63.0, 4.0, 0, 1}, {-62.0, 4.0, 0, 1}, {-61.0, 4.0, 0, 1},
+
192 {-39.0, 4.0, 0, 1}, {-38.0, 4.0, 0, 1}, {-37.0, 4.0, 0, 1}, {-36.0, 4.0, 0, 1}, {-33.0, 4.0, 0, 1}, {-32.0, 4.0, 0, 1},
+
193 {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1},
+
194 {-7.0, 4.0, 0, 1}, {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-1.0, 4.0, 0, 1}, {0.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1},
+
195 {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {39.0, 4.0, 0, 1}, {40.0, 4.0, 0, 1}, {41.0, 4.0, 0, 1},
+
196 {45.0, 4.0, 0, 1}, {46.0, 4.0, 0, 1}, {47.0, 4.0, 0, 1}, {51.0, 4.0, 0, 1}, {52.0, 4.0, 0, 1}, {53.0, 4.0, 0, 1},
+
197 {-63.0, 5.0, 0, 1}, {-62.0, 5.0, 0, 1}, {-61.0, 5.0, 0, 1}, {-39.0, 5.0, 0, 1}, {-38.0, 5.0, 0, 1}, {-37.0, 5.0, 0, 1},
+
198 {-36.0, 5.0, 0, 1}, {-33.0, 5.0, 0, 1}, {-32.0, 5.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1},
+
199 {-16.0, 5.0, 0, 1}, {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1},
+
200 {-1.0, 5.0, 0, 1}, {0.0, 5.0, 0, 1}, {1.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1},
+
201 {39.0, 5.0, 0, 1}, {40.0, 5.0, 0, 1}, {41.0, 5.0, 0, 1}, {45.0, 5.0, 0, 1}, {46.0, 5.0, 0, 1}, {47.0, 5.0, 0, 1},
+
202 {51.0, 5.0, 0, 1}, {52.0, 5.0, 0, 1}, {53.0, 5.0, 0, 1}, {-63.0, 6.0, 0, 1}, {-62.0, 6.0, 0, 1}, {-61.0, 6.0, 0, 1},
+
203 {-39.0, 6.0, 0, 1}, {-38.0, 6.0, 0, 1}, {-37.0, 6.0, 0, 1}, {-36.0, 6.0, 0, 1}, {-33.0, 6.0, 0, 1}, {-32.0, 6.0, 0, 1},
+
204 {-31.0, 6.0, 0, 1}, {-30.0, 6.0, 0, 1}, {-17.0, 6.0, 0, 1}, {-16.0, 6.0, 0, 1}, {-15.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1},
+
205 {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-1.0, 6.0, 0, 1}, {0.0, 6.0, 0, 1}, {1.0, 6.0, 0, 1},
+
206 {24.0, 6.0, 0, 1}, {25.0, 6.0, 0, 1}, {26.0, 6.0, 0, 1}, {39.0, 6.0, 0, 1}, {40.0, 6.0, 0, 1}, {41.0, 6.0, 0, 1},
+
207 {45.0, 6.0, 0, 1}, {46.0, 6.0, 0, 1}, {47.0, 6.0, 0, 1}, {51.0, 6.0, 0, 1}, {52.0, 6.0, 0, 1}, {53.0, 6.0, 0, 1},
+
208 {-63.0, 7.0, 0, 1}, {-62.0, 7.0, 0, 1}, {-61.0, 7.0, 0, 1}, {-39.0, 7.0, 0, 1}, {-38.0, 7.0, 0, 1}, {-37.0, 7.0, 0, 1},
+
209 {-36.0, 7.0, 0, 1}, {-33.0, 7.0, 0, 1}, {-32.0, 7.0, 0, 1}, {-31.0, 7.0, 0, 1}, {-30.0, 7.0, 0, 1}, {-17.0, 7.0, 0, 1},
+
210 {-16.0, 7.0, 0, 1}, {-15.0, 7.0, 0, 1}, {-14.0, 7.0, 0, 1}, {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1},
+
211 {-1.0, 7.0, 0, 1}, {0.0, 7.0, 0, 1}, {1.0, 7.0, 0, 1}, {24.0, 7.0, 0, 1}, {25.0, 7.0, 0, 1}, {26.0, 7.0, 0, 1},
+
212 {39.0, 7.0, 0, 1}, {40.0, 7.0, 0, 1}, {41.0, 7.0, 0, 1}, {45.0, 7.0, 0, 1}, {46.0, 7.0, 0, 1}, {47.0, 7.0, 0, 1},
+
213 {51.0, 7.0, 0, 1}, {52.0, 7.0, 0, 1}, {53.0, 7.0, 0, 1}, {-63.0, 8.0, 0, 1}, {-62.0, 8.0, 0, 1}, {-61.0, 8.0, 0, 1},
+
214 {-60.0, 8.0, 0, 1}, {-59.0, 8.0, 0, 1}, {-58.0, 8.0, 0, 1}, {-57.0, 8.0, 0, 1}, {-56.0, 8.0, 0, 1}, {-55.0, 8.0, 0, 1},
+
215 {-54.0, 8.0, 0, 1}, {-53.0, 8.0, 0, 1}, {-52.0, 8.0, 0, 1}, {-48.0, 8.0, 0, 1}, {-47.0, 8.0, 0, 1}, {-46.0, 8.0, 0, 1},
+
216 {-45.0, 8.0, 0, 1}, {-44.0, 8.0, 0, 1}, {-43.0, 8.0, 0, 1}, {-42.0, 8.0, 0, 1}, {-41.0, 8.0, 0, 1}, {-40.0, 8.0, 0, 1},
+
217 {-39.0, 8.0, 0, 1}, {-38.0, 8.0, 0, 1}, {-37.0, 8.0, 0, 1}, {-33.0, 8.0, 0, 1}, {-32.0, 8.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
218 {-30.0, 8.0, 0, 1}, {-17.0, 8.0, 0, 1}, {-16.0, 8.0, 0, 1}, {-15.0, 8.0, 0, 1}, {-14.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1},
+
219 {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1},
+
220 {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1}, {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1},
+
221 {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1}, {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1},
+
222 {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {22.0, 8.0, 0, 1},
+
223 {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {30.0, 8.0, 0, 1},
+
224 {31.0, 8.0, 0, 1}, {32.0, 8.0, 0, 1}, {33.0, 8.0, 0, 1}, {34.0, 8.0, 0, 1}, {35.0, 8.0, 0, 1}, {36.0, 8.0, 0, 1},
+
225 {37.0, 8.0, 0, 1}, {38.0, 8.0, 0, 1}, {39.0, 8.0, 0, 1}, {40.0, 8.0, 0, 1}, {41.0, 8.0, 0, 1}, {45.0, 8.0, 0, 1},
+
226 {46.0, 8.0, 0, 1}, {47.0, 8.0, 0, 1}, {51.0, 8.0, 0, 1}, {52.0, 8.0, 0, 1}, {53.0, 8.0, 0, 1}, {-63.0, 9.0, 0, 1},
+
227 {-62.0, 9.0, 0, 1}, {-61.0, 9.0, 0, 1}, {-60.0, 9.0, 0, 1}, {-59.0, 9.0, 0, 1}, {-58.0, 9.0, 0, 1}, {-57.0, 9.0, 0, 1},
+
228 {-56.0, 9.0, 0, 1}, {-55.0, 9.0, 0, 1}, {-54.0, 9.0, 0, 1}, {-53.0, 9.0, 0, 1}, {-52.0, 9.0, 0, 1}, {-48.0, 9.0, 0, 1},
+
229 {-47.0, 9.0, 0, 1}, {-46.0, 9.0, 0, 1}, {-45.0, 9.0, 0, 1}, {-44.0, 9.0, 0, 1}, {-43.0, 9.0, 0, 1}, {-42.0, 9.0, 0, 1},
+
230 {-41.0, 9.0, 0, 1}, {-40.0, 9.0, 0, 1}, {-39.0, 9.0, 0, 1}, {-38.0, 9.0, 0, 1}, {-37.0, 9.0, 0, 1}, {-33.0, 9.0, 0, 1},
+
231 {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-17.0, 9.0, 0, 1}, {-16.0, 9.0, 0, 1}, {-15.0, 9.0, 0, 1},
+
232 {-14.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1}, {1.0, 9.0, 0, 1},
+
233 {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1}, {7.0, 9.0, 0, 1},
+
234 {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1}, {16.0, 9.0, 0, 1},
+
235 {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1},
+
236 {23.0, 9.0, 0, 1}, {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1}, {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1},
+
237 {32.0, 9.0, 0, 1}, {33.0, 9.0, 0, 1}, {34.0, 9.0, 0, 1}, {35.0, 9.0, 0, 1}, {36.0, 9.0, 0, 1}, {37.0, 9.0, 0, 1},
+
238 {38.0, 9.0, 0, 1}, {39.0, 9.0, 0, 1}, {40.0, 9.0, 0, 1}, {41.0, 9.0, 0, 1}, {45.0, 9.0, 0, 1}, {46.0, 9.0, 0, 1},
+
239 {47.0, 9.0, 0, 1}, {51.0, 9.0, 0, 1}, {52.0, 9.0, 0, 1}, {53.0, 9.0, 0, 1}, {-62.0, 10.0, 0, 1}, {-61.0, 10.0, 0, 1},
+
240 {-60.0, 10.0, 0, 1}, {-59.0, 10.0, 0, 1}, {-58.0, 10.0, 0, 1}, {-57.0, 10.0, 0, 1}, {-56.0, 10.0, 0, 1}, {-55.0, 10.0, 0, 1},
+
241 {-54.0, 10.0, 0, 1}, {-53.0, 10.0, 0, 1}, {-52.0, 10.0, 0, 1}, {-48.0, 10.0, 0, 1}, {-47.0, 10.0, 0, 1}, {-46.0, 10.0, 0, 1},
+
242 {-45.0, 10.0, 0, 1}, {-44.0, 10.0, 0, 1}, {-43.0, 10.0, 0, 1}, {-42.0, 10.0, 0, 1}, {-41.0, 10.0, 0, 1}, {-40.0, 10.0, 0, 1},
+
243 {-39.0, 10.0, 0, 1}, {-38.0, 10.0, 0, 1}, {-33.0, 10.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1},
+
244 {-17.0, 10.0, 0, 1}, {-16.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1},
+
245 {-4.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1}, {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1},
+
246 {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1},
+
247 {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1},
+
248 {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1}, {24.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
249 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {32.0, 10.0, 0, 1}, {33.0, 10.0, 0, 1}, {34.0, 10.0, 0, 1}, {35.0, 10.0, 0, 1},
+
250 {36.0, 10.0, 0, 1}, {37.0, 10.0, 0, 1}, {38.0, 10.0, 0, 1}, {39.0, 10.0, 0, 1}, {40.0, 10.0, 0, 1}, {45.0, 10.0, 0, 1},
+
251 {46.0, 10.0, 0, 1}, {47.0, 10.0, 0, 1}, {51.0, 10.0, 0, 1}, {52.0, 10.0, 0, 1}, {53.0, 10.0, 0, 1}
+
252};
+
+ + + +
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html new file mode 100644 index 0000000..7d74b10 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html @@ -0,0 +1,424 @@ + + + + + + + +ESP-IDF Firmware: esp_text.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_text.h File Reference
+
+
+
#include <stdint.h>
+
+Include dependency graph for applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_bmp_array_esp_text [384]
const float image_3d_array_esp_text [1271][4]
+

Variable Documentation

+ +

◆ image_3d_array_esp_text

+ +
+
+ + + + + +
+ + + + +
const float image_3d_array_esp_text[1271][4]
+
+extern
+
+ +

Definition at line 38 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
38 {
+
39
+
40 {-62.0, -11.0, 0, 1}, {-61.0, -11.0, 0, 1}, {-60.0, -11.0, 0, 1}, {-59.0, -11.0, 0, 1}, {-58.0, -11.0, 0, 1}, {-57.0, -11.0, 0, 1},
+
41 {-56.0, -11.0, 0, 1}, {-55.0, -11.0, 0, 1}, {-54.0, -11.0, 0, 1}, {-53.0, -11.0, 0, 1}, {-52.0, -11.0, 0, 1}, {-47.0, -11.0, 0, 1},
+
42 {-46.0, -11.0, 0, 1}, {-45.0, -11.0, 0, 1}, {-44.0, -11.0, 0, 1}, {-43.0, -11.0, 0, 1}, {-42.0, -11.0, 0, 1}, {-41.0, -11.0, 0, 1},
+
43 {-40.0, -11.0, 0, 1}, {-39.0, -11.0, 0, 1}, {-38.0, -11.0, 0, 1}, {-37.0, -11.0, 0, 1}, {-33.0, -11.0, 0, 1}, {-32.0, -11.0, 0, 1},
+
44 {-31.0, -11.0, 0, 1}, {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1},
+
45 {-25.0, -11.0, 0, 1}, {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1},
+
46 {-15.0, -11.0, 0, 1}, {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1},
+
47 {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1},
+
48 {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1}, {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1},
+
49 {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
50 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1},
+
51 {31.0, -11.0, 0, 1}, {32.0, -11.0, 0, 1}, {33.0, -11.0, 0, 1}, {34.0, -11.0, 0, 1}, {35.0, -11.0, 0, 1}, {36.0, -11.0, 0, 1},
+
52 {37.0, -11.0, 0, 1}, {38.0, -11.0, 0, 1}, {39.0, -11.0, 0, 1}, {40.0, -11.0, 0, 1}, {41.0, -11.0, 0, 1}, {45.0, -11.0, 0, 1},
+
53 {46.0, -11.0, 0, 1}, {47.0, -11.0, 0, 1}, {53.0, -11.0, 0, 1}, {54.0, -11.0, 0, 1}, {55.0, -11.0, 0, 1}, {56.0, -11.0, 0, 1},
+
54 {57.0, -11.0, 0, 1}, {58.0, -11.0, 0, 1}, {59.0, -11.0, 0, 1}, {60.0, -11.0, 0, 1}, {61.0, -11.0, 0, 1}, {62.0, -11.0, 0, 1},
+
55 {-63.0, -10.0, 0, 1}, {-62.0, -10.0, 0, 1}, {-61.0, -10.0, 0, 1}, {-60.0, -10.0, 0, 1}, {-59.0, -10.0, 0, 1}, {-58.0, -10.0, 0, 1},
+
56 {-57.0, -10.0, 0, 1}, {-56.0, -10.0, 0, 1}, {-55.0, -10.0, 0, 1}, {-54.0, -10.0, 0, 1}, {-53.0, -10.0, 0, 1}, {-52.0, -10.0, 0, 1},
+
57 {-48.0, -10.0, 0, 1}, {-47.0, -10.0, 0, 1}, {-46.0, -10.0, 0, 1}, {-45.0, -10.0, 0, 1}, {-44.0, -10.0, 0, 1}, {-43.0, -10.0, 0, 1},
+
58 {-42.0, -10.0, 0, 1}, {-41.0, -10.0, 0, 1}, {-40.0, -10.0, 0, 1}, {-39.0, -10.0, 0, 1}, {-38.0, -10.0, 0, 1}, {-37.0, -10.0, 0, 1},
+
59 {-33.0, -10.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1}, {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1},
+
60 {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1},
+
61 {-21.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1}, {-13.0, -10.0, 0, 1},
+
62 {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1}, {-7.0, -10.0, 0, 1},
+
63 {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1},
+
64 {4.0, -10.0, 0, 1}, {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1},
+
65 {10.0, -10.0, 0, 1}, {15.0, -10.0, 0, 1}, {16.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1},
+
66 {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1},
+
67 {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {32.0, -10.0, 0, 1}, {33.0, -10.0, 0, 1}, {34.0, -10.0, 0, 1}, {35.0, -10.0, 0, 1},
+
68 {36.0, -10.0, 0, 1}, {37.0, -10.0, 0, 1}, {38.0, -10.0, 0, 1}, {39.0, -10.0, 0, 1}, {40.0, -10.0, 0, 1}, {41.0, -10.0, 0, 1},
+
69 {45.0, -10.0, 0, 1}, {46.0, -10.0, 0, 1}, {47.0, -10.0, 0, 1}, {52.0, -10.0, 0, 1}, {53.0, -10.0, 0, 1}, {54.0, -10.0, 0, 1},
+
70 {55.0, -10.0, 0, 1}, {56.0, -10.0, 0, 1}, {57.0, -10.0, 0, 1}, {58.0, -10.0, 0, 1}, {59.0, -10.0, 0, 1}, {60.0, -10.0, 0, 1},
+
71 {61.0, -10.0, 0, 1}, {62.0, -10.0, 0, 1}, {-63.0, -9.0, 0, 1}, {-62.0, -9.0, 0, 1}, {-61.0, -9.0, 0, 1}, {-60.0, -9.0, 0, 1},
+
72 {-59.0, -9.0, 0, 1}, {-58.0, -9.0, 0, 1}, {-57.0, -9.0, 0, 1}, {-56.0, -9.0, 0, 1}, {-55.0, -9.0, 0, 1}, {-54.0, -9.0, 0, 1},
+
73 {-53.0, -9.0, 0, 1}, {-52.0, -9.0, 0, 1}, {-48.0, -9.0, 0, 1}, {-47.0, -9.0, 0, 1}, {-46.0, -9.0, 0, 1}, {-45.0, -9.0, 0, 1},
+
74 {-44.0, -9.0, 0, 1}, {-43.0, -9.0, 0, 1}, {-42.0, -9.0, 0, 1}, {-41.0, -9.0, 0, 1}, {-40.0, -9.0, 0, 1}, {-39.0, -9.0, 0, 1},
+
75 {-38.0, -9.0, 0, 1}, {-37.0, -9.0, 0, 1}, {-33.0, -9.0, 0, 1}, {-32.0, -9.0, 0, 1}, {-31.0, -9.0, 0, 1}, {-30.0, -9.0, 0, 1},
+
76 {-29.0, -9.0, 0, 1}, {-28.0, -9.0, 0, 1}, {-27.0, -9.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-24.0, -9.0, 0, 1},
+
77 {-23.0, -9.0, 0, 1}, {-22.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1},
+
78 {-14.0, -9.0, 0, 1}, {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
79 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1},
+
80 {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1}, {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1},
+
81 {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1}, {10.0, -9.0, 0, 1}, {14.0, -9.0, 0, 1}, {15.0, -9.0, 0, 1},
+
82 {16.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1},
+
83 {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {24.0, -9.0, 0, 1}, {25.0, -9.0, 0, 1}, {30.0, -9.0, 0, 1}, {31.0, -9.0, 0, 1},
+
84 {32.0, -9.0, 0, 1}, {33.0, -9.0, 0, 1}, {34.0, -9.0, 0, 1}, {35.0, -9.0, 0, 1}, {36.0, -9.0, 0, 1}, {37.0, -9.0, 0, 1},
+
85 {38.0, -9.0, 0, 1}, {39.0, -9.0, 0, 1}, {40.0, -9.0, 0, 1}, {41.0, -9.0, 0, 1}, {45.0, -9.0, 0, 1}, {46.0, -9.0, 0, 1},
+
86 {47.0, -9.0, 0, 1}, {51.0, -9.0, 0, 1}, {52.0, -9.0, 0, 1}, {53.0, -9.0, 0, 1}, {54.0, -9.0, 0, 1}, {55.0, -9.0, 0, 1},
+
87 {56.0, -9.0, 0, 1}, {57.0, -9.0, 0, 1}, {58.0, -9.0, 0, 1}, {59.0, -9.0, 0, 1}, {60.0, -9.0, 0, 1}, {61.0, -9.0, 0, 1},
+
88 {62.0, -9.0, 0, 1}, {-63.0, -8.0, 0, 1}, {-62.0, -8.0, 0, 1}, {-61.0, -8.0, 0, 1}, {-48.0, -8.0, 0, 1}, {-47.0, -8.0, 0, 1},
+
89 {-46.0, -8.0, 0, 1}, {-33.0, -8.0, 0, 1}, {-32.0, -8.0, 0, 1}, {-31.0, -8.0, 0, 1}, {-30.0, -8.0, 0, 1}, {-23.0, -8.0, 0, 1},
+
90 {-22.0, -8.0, 0, 1}, {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1}, {-15.0, -8.0, 0, 1},
+
91 {-14.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {0.0, -8.0, 0, 1},
+
92 {1.0, -8.0, 0, 1}, {14.0, -8.0, 0, 1}, {15.0, -8.0, 0, 1}, {16.0, -8.0, 0, 1}, {29.0, -8.0, 0, 1}, {30.0, -8.0, 0, 1},
+
93 {31.0, -8.0, 0, 1}, {32.0, -8.0, 0, 1}, {45.0, -8.0, 0, 1}, {46.0, -8.0, 0, 1}, {47.0, -8.0, 0, 1}, {51.0, -8.0, 0, 1},
+
94 {52.0, -8.0, 0, 1}, {53.0, -8.0, 0, 1}, {54.0, -8.0, 0, 1}, {-63.0, -7.0, 0, 1}, {-62.0, -7.0, 0, 1}, {-61.0, -7.0, 0, 1},
+
95 {-48.0, -7.0, 0, 1}, {-47.0, -7.0, 0, 1}, {-46.0, -7.0, 0, 1}, {-33.0, -7.0, 0, 1}, {-32.0, -7.0, 0, 1}, {-31.0, -7.0, 0, 1},
+
96 {-30.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1},
+
97 {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1}, {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
98 {0.0, -7.0, 0, 1}, {1.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {16.0, -7.0, 0, 1}, {29.0, -7.0, 0, 1},
+
99 {30.0, -7.0, 0, 1}, {31.0, -7.0, 0, 1}, {32.0, -7.0, 0, 1}, {45.0, -7.0, 0, 1}, {46.0, -7.0, 0, 1}, {47.0, -7.0, 0, 1},
+
100 {51.0, -7.0, 0, 1}, {52.0, -7.0, 0, 1}, {53.0, -7.0, 0, 1}, {-63.0, -6.0, 0, 1}, {-62.0, -6.0, 0, 1}, {-61.0, -6.0, 0, 1},
+
101 {-48.0, -6.0, 0, 1}, {-47.0, -6.0, 0, 1}, {-46.0, -6.0, 0, 1}, {-33.0, -6.0, 0, 1}, {-32.0, -6.0, 0, 1}, {-31.0, -6.0, 0, 1},
+
102 {-30.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1}, {-16.0, -6.0, 0, 1},
+
103 {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1},
+
104 {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {16.0, -6.0, 0, 1}, {29.0, -6.0, 0, 1},
+
105 {30.0, -6.0, 0, 1}, {31.0, -6.0, 0, 1}, {32.0, -6.0, 0, 1}, {45.0, -6.0, 0, 1}, {46.0, -6.0, 0, 1}, {47.0, -6.0, 0, 1},
+
106 {51.0, -6.0, 0, 1}, {52.0, -6.0, 0, 1}, {53.0, -6.0, 0, 1}, {-63.0, -5.0, 0, 1}, {-62.0, -5.0, 0, 1}, {-61.0, -5.0, 0, 1},
+
107 {-48.0, -5.0, 0, 1}, {-47.0, -5.0, 0, 1}, {-46.0, -5.0, 0, 1}, {-33.0, -5.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1},
+
108 {-30.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1},
+
109 {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1}, {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-1.0, -5.0, 0, 1},
+
110 {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1}, {16.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1},
+
111 {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {32.0, -5.0, 0, 1}, {45.0, -5.0, 0, 1}, {46.0, -5.0, 0, 1}, {47.0, -5.0, 0, 1},
+
112 {51.0, -5.0, 0, 1}, {52.0, -5.0, 0, 1}, {53.0, -5.0, 0, 1}, {-63.0, -4.0, 0, 1}, {-62.0, -4.0, 0, 1}, {-61.0, -4.0, 0, 1},
+
113 {-48.0, -4.0, 0, 1}, {-47.0, -4.0, 0, 1}, {-46.0, -4.0, 0, 1}, {-33.0, -4.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
114 {-30.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1},
+
115 {-15.0, -4.0, 0, 1}, {-14.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1},
+
116 {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1},
+
117 {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1}, {32.0, -4.0, 0, 1}, {45.0, -4.0, 0, 1}, {46.0, -4.0, 0, 1}, {47.0, -4.0, 0, 1},
+
118 {51.0, -4.0, 0, 1}, {52.0, -4.0, 0, 1}, {53.0, -4.0, 0, 1}, {-63.0, -3.0, 0, 1}, {-62.0, -3.0, 0, 1}, {-61.0, -3.0, 0, 1},
+
119 {-48.0, -3.0, 0, 1}, {-47.0, -3.0, 0, 1}, {-46.0, -3.0, 0, 1}, {-33.0, -3.0, 0, 1}, {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1},
+
120 {-30.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
121 {-15.0, -3.0, 0, 1}, {-14.0, -3.0, 0, 1}, {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-1.0, -3.0, 0, 1},
+
122 {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1}, {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
123 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {32.0, -3.0, 0, 1}, {45.0, -3.0, 0, 1}, {46.0, -3.0, 0, 1}, {47.0, -3.0, 0, 1},
+
124 {51.0, -3.0, 0, 1}, {52.0, -3.0, 0, 1}, {53.0, -3.0, 0, 1}, {-63.0, -2.0, 0, 1}, {-62.0, -2.0, 0, 1}, {-61.0, -2.0, 0, 1},
+
125 {-60.0, -2.0, 0, 1}, {-59.0, -2.0, 0, 1}, {-58.0, -2.0, 0, 1}, {-57.0, -2.0, 0, 1}, {-56.0, -2.0, 0, 1}, {-55.0, -2.0, 0, 1},
+
126 {-54.0, -2.0, 0, 1}, {-53.0, -2.0, 0, 1}, {-48.0, -2.0, 0, 1}, {-47.0, -2.0, 0, 1}, {-46.0, -2.0, 0, 1}, {-45.0, -2.0, 0, 1},
+
127 {-44.0, -2.0, 0, 1}, {-43.0, -2.0, 0, 1}, {-42.0, -2.0, 0, 1}, {-41.0, -2.0, 0, 1}, {-40.0, -2.0, 0, 1}, {-39.0, -2.0, 0, 1},
+
128 {-38.0, -2.0, 0, 1}, {-33.0, -2.0, 0, 1}, {-32.0, -2.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1},
+
129 {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
130 {-14.0, -2.0, 0, 1}, {-7.0, -2.0, 0, 1}, {-6.0, -2.0, 0, 1}, {-5.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
131 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {6.0, -2.0, 0, 1},
+
132 {7.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
133 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
134 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {30.0, -2.0, 0, 1}, {31.0, -2.0, 0, 1}, {32.0, -2.0, 0, 1}, {33.0, -2.0, 0, 1},
+
135 {34.0, -2.0, 0, 1}, {35.0, -2.0, 0, 1}, {36.0, -2.0, 0, 1}, {37.0, -2.0, 0, 1}, {38.0, -2.0, 0, 1}, {39.0, -2.0, 0, 1},
+
136 {40.0, -2.0, 0, 1}, {45.0, -2.0, 0, 1}, {46.0, -2.0, 0, 1}, {47.0, -2.0, 0, 1}, {51.0, -2.0, 0, 1}, {52.0, -2.0, 0, 1},
+
137 {53.0, -2.0, 0, 1}, {54.0, -2.0, 0, 1}, {55.0, -2.0, 0, 1}, {56.0, -2.0, 0, 1}, {57.0, -2.0, 0, 1}, {58.0, -2.0, 0, 1},
+
138 {59.0, -2.0, 0, 1}, {60.0, -2.0, 0, 1}, {61.0, -2.0, 0, 1}, {-63.0, -1.0, 0, 1}, {-62.0, -1.0, 0, 1}, {-61.0, -1.0, 0, 1},
+
139 {-60.0, -1.0, 0, 1}, {-59.0, -1.0, 0, 1}, {-58.0, -1.0, 0, 1}, {-57.0, -1.0, 0, 1}, {-56.0, -1.0, 0, 1}, {-55.0, -1.0, 0, 1},
+
140 {-54.0, -1.0, 0, 1}, {-53.0, -1.0, 0, 1}, {-48.0, -1.0, 0, 1}, {-47.0, -1.0, 0, 1}, {-46.0, -1.0, 0, 1}, {-45.0, -1.0, 0, 1},
+
141 {-44.0, -1.0, 0, 1}, {-43.0, -1.0, 0, 1}, {-42.0, -1.0, 0, 1}, {-41.0, -1.0, 0, 1}, {-40.0, -1.0, 0, 1}, {-39.0, -1.0, 0, 1},
+
142 {-38.0, -1.0, 0, 1}, {-37.0, -1.0, 0, 1}, {-33.0, -1.0, 0, 1}, {-32.0, -1.0, 0, 1}, {-31.0, -1.0, 0, 1}, {-30.0, -1.0, 0, 1},
+
143 {-29.0, -1.0, 0, 1}, {-28.0, -1.0, 0, 1}, {-27.0, -1.0, 0, 1}, {-26.0, -1.0, 0, 1}, {-25.0, -1.0, 0, 1}, {-24.0, -1.0, 0, 1},
+
144 {-23.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1},
+
145 {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1}, {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1},
+
146 {-9.0, -1.0, 0, 1}, {-8.0, -1.0, 0, 1}, {-7.0, -1.0, 0, 1}, {-6.0, -1.0, 0, 1}, {-5.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1},
+
147 {0.0, -1.0, 0, 1}, {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1},
+
148 {6.0, -1.0, 0, 1}, {7.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
149 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {21.0, -1.0, 0, 1},
+
150 {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1}, {25.0, -1.0, 0, 1}, {30.0, -1.0, 0, 1}, {31.0, -1.0, 0, 1},
+
151 {32.0, -1.0, 0, 1}, {33.0, -1.0, 0, 1}, {34.0, -1.0, 0, 1}, {35.0, -1.0, 0, 1}, {36.0, -1.0, 0, 1}, {37.0, -1.0, 0, 1},
+
152 {38.0, -1.0, 0, 1}, {39.0, -1.0, 0, 1}, {40.0, -1.0, 0, 1}, {41.0, -1.0, 0, 1}, {45.0, -1.0, 0, 1}, {46.0, -1.0, 0, 1},
+
153 {47.0, -1.0, 0, 1}, {51.0, -1.0, 0, 1}, {52.0, -1.0, 0, 1}, {53.0, -1.0, 0, 1}, {54.0, -1.0, 0, 1}, {55.0, -1.0, 0, 1},
+
154 {56.0, -1.0, 0, 1}, {57.0, -1.0, 0, 1}, {58.0, -1.0, 0, 1}, {59.0, -1.0, 0, 1}, {60.0, -1.0, 0, 1}, {61.0, -1.0, 0, 1},
+
155 {-63.0, 0.0, 0, 1}, {-62.0, 0.0, 0, 1}, {-61.0, 0.0, 0, 1}, {-60.0, 0.0, 0, 1}, {-59.0, 0.0, 0, 1}, {-58.0, 0.0, 0, 1},
+
156 {-57.0, 0.0, 0, 1}, {-56.0, 0.0, 0, 1}, {-55.0, 0.0, 0, 1}, {-54.0, 0.0, 0, 1}, {-53.0, 0.0, 0, 1}, {-47.0, 0.0, 0, 1},
+
157 {-46.0, 0.0, 0, 1}, {-45.0, 0.0, 0, 1}, {-44.0, 0.0, 0, 1}, {-43.0, 0.0, 0, 1}, {-42.0, 0.0, 0, 1}, {-41.0, 0.0, 0, 1},
+
158 {-40.0, 0.0, 0, 1}, {-39.0, 0.0, 0, 1}, {-38.0, 0.0, 0, 1}, {-37.0, 0.0, 0, 1}, {-33.0, 0.0, 0, 1}, {-32.0, 0.0, 0, 1},
+
159 {-31.0, 0.0, 0, 1}, {-30.0, 0.0, 0, 1}, {-29.0, 0.0, 0, 1}, {-28.0, 0.0, 0, 1}, {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1},
+
160 {-25.0, 0.0, 0, 1}, {-24.0, 0.0, 0, 1}, {-23.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1},
+
161 {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1},
+
162 {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-8.0, 0.0, 0, 1}, {-7.0, 0.0, 0, 1}, {-6.0, 0.0, 0, 1}, {-5.0, 0.0, 0, 1},
+
163 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
164 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1},
+
165 {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {21.0, 0.0, 0, 1},
+
166 {22.0, 0.0, 0, 1}, {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {25.0, 0.0, 0, 1}, {26.0, 0.0, 0, 1}, {31.0, 0.0, 0, 1},
+
167 {32.0, 0.0, 0, 1}, {33.0, 0.0, 0, 1}, {34.0, 0.0, 0, 1}, {35.0, 0.0, 0, 1}, {36.0, 0.0, 0, 1}, {37.0, 0.0, 0, 1},
+
168 {38.0, 0.0, 0, 1}, {39.0, 0.0, 0, 1}, {40.0, 0.0, 0, 1}, {41.0, 0.0, 0, 1}, {45.0, 0.0, 0, 1}, {46.0, 0.0, 0, 1},
+
169 {47.0, 0.0, 0, 1}, {51.0, 0.0, 0, 1}, {52.0, 0.0, 0, 1}, {53.0, 0.0, 0, 1}, {54.0, 0.0, 0, 1}, {55.0, 0.0, 0, 1},
+
170 {56.0, 0.0, 0, 1}, {57.0, 0.0, 0, 1}, {58.0, 0.0, 0, 1}, {59.0, 0.0, 0, 1}, {60.0, 0.0, 0, 1}, {61.0, 0.0, 0, 1},
+
171 {-63.0, 1.0, 0, 1}, {-62.0, 1.0, 0, 1}, {-61.0, 1.0, 0, 1}, {-39.0, 1.0, 0, 1}, {-38.0, 1.0, 0, 1}, {-37.0, 1.0, 0, 1},
+
172 {-36.0, 1.0, 0, 1}, {-33.0, 1.0, 0, 1}, {-32.0, 1.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
173 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
174 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1}, {-14.0, 1.0, 0, 1},
+
175 {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {-8.0, 1.0, 0, 1},
+
176 {-7.0, 1.0, 0, 1}, {-6.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1},
+
177 {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {38.0, 1.0, 0, 1}, {39.0, 1.0, 0, 1}, {40.0, 1.0, 0, 1},
+
178 {41.0, 1.0, 0, 1}, {45.0, 1.0, 0, 1}, {46.0, 1.0, 0, 1}, {47.0, 1.0, 0, 1}, {51.0, 1.0, 0, 1}, {52.0, 1.0, 0, 1},
+
179 {53.0, 1.0, 0, 1}, {-63.0, 2.0, 0, 1}, {-62.0, 2.0, 0, 1}, {-61.0, 2.0, 0, 1}, {-39.0, 2.0, 0, 1}, {-38.0, 2.0, 0, 1},
+
180 {-37.0, 2.0, 0, 1}, {-36.0, 2.0, 0, 1}, {-33.0, 2.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
181 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
182 {-23.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1},
+
183 {-8.0, 2.0, 0, 1}, {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1},
+
184 {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1}, {39.0, 2.0, 0, 1}, {40.0, 2.0, 0, 1}, {41.0, 2.0, 0, 1},
+
185 {45.0, 2.0, 0, 1}, {46.0, 2.0, 0, 1}, {47.0, 2.0, 0, 1}, {51.0, 2.0, 0, 1}, {52.0, 2.0, 0, 1}, {53.0, 2.0, 0, 1},
+
186 {-63.0, 3.0, 0, 1}, {-62.0, 3.0, 0, 1}, {-61.0, 3.0, 0, 1}, {-39.0, 3.0, 0, 1}, {-38.0, 3.0, 0, 1}, {-37.0, 3.0, 0, 1},
+
187 {-36.0, 3.0, 0, 1}, {-33.0, 3.0, 0, 1}, {-32.0, 3.0, 0, 1}, {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1},
+
188 {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1}, {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1},
+
189 {-1.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1}, {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1},
+
190 {39.0, 3.0, 0, 1}, {40.0, 3.0, 0, 1}, {41.0, 3.0, 0, 1}, {45.0, 3.0, 0, 1}, {46.0, 3.0, 0, 1}, {47.0, 3.0, 0, 1},
+
191 {51.0, 3.0, 0, 1}, {52.0, 3.0, 0, 1}, {53.0, 3.0, 0, 1}, {-63.0, 4.0, 0, 1}, {-62.0, 4.0, 0, 1}, {-61.0, 4.0, 0, 1},
+
192 {-39.0, 4.0, 0, 1}, {-38.0, 4.0, 0, 1}, {-37.0, 4.0, 0, 1}, {-36.0, 4.0, 0, 1}, {-33.0, 4.0, 0, 1}, {-32.0, 4.0, 0, 1},
+
193 {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1},
+
194 {-7.0, 4.0, 0, 1}, {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-1.0, 4.0, 0, 1}, {0.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1},
+
195 {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {39.0, 4.0, 0, 1}, {40.0, 4.0, 0, 1}, {41.0, 4.0, 0, 1},
+
196 {45.0, 4.0, 0, 1}, {46.0, 4.0, 0, 1}, {47.0, 4.0, 0, 1}, {51.0, 4.0, 0, 1}, {52.0, 4.0, 0, 1}, {53.0, 4.0, 0, 1},
+
197 {-63.0, 5.0, 0, 1}, {-62.0, 5.0, 0, 1}, {-61.0, 5.0, 0, 1}, {-39.0, 5.0, 0, 1}, {-38.0, 5.0, 0, 1}, {-37.0, 5.0, 0, 1},
+
198 {-36.0, 5.0, 0, 1}, {-33.0, 5.0, 0, 1}, {-32.0, 5.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1},
+
199 {-16.0, 5.0, 0, 1}, {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1},
+
200 {-1.0, 5.0, 0, 1}, {0.0, 5.0, 0, 1}, {1.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1},
+
201 {39.0, 5.0, 0, 1}, {40.0, 5.0, 0, 1}, {41.0, 5.0, 0, 1}, {45.0, 5.0, 0, 1}, {46.0, 5.0, 0, 1}, {47.0, 5.0, 0, 1},
+
202 {51.0, 5.0, 0, 1}, {52.0, 5.0, 0, 1}, {53.0, 5.0, 0, 1}, {-63.0, 6.0, 0, 1}, {-62.0, 6.0, 0, 1}, {-61.0, 6.0, 0, 1},
+
203 {-39.0, 6.0, 0, 1}, {-38.0, 6.0, 0, 1}, {-37.0, 6.0, 0, 1}, {-36.0, 6.0, 0, 1}, {-33.0, 6.0, 0, 1}, {-32.0, 6.0, 0, 1},
+
204 {-31.0, 6.0, 0, 1}, {-30.0, 6.0, 0, 1}, {-17.0, 6.0, 0, 1}, {-16.0, 6.0, 0, 1}, {-15.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1},
+
205 {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-1.0, 6.0, 0, 1}, {0.0, 6.0, 0, 1}, {1.0, 6.0, 0, 1},
+
206 {24.0, 6.0, 0, 1}, {25.0, 6.0, 0, 1}, {26.0, 6.0, 0, 1}, {39.0, 6.0, 0, 1}, {40.0, 6.0, 0, 1}, {41.0, 6.0, 0, 1},
+
207 {45.0, 6.0, 0, 1}, {46.0, 6.0, 0, 1}, {47.0, 6.0, 0, 1}, {51.0, 6.0, 0, 1}, {52.0, 6.0, 0, 1}, {53.0, 6.0, 0, 1},
+
208 {-63.0, 7.0, 0, 1}, {-62.0, 7.0, 0, 1}, {-61.0, 7.0, 0, 1}, {-39.0, 7.0, 0, 1}, {-38.0, 7.0, 0, 1}, {-37.0, 7.0, 0, 1},
+
209 {-36.0, 7.0, 0, 1}, {-33.0, 7.0, 0, 1}, {-32.0, 7.0, 0, 1}, {-31.0, 7.0, 0, 1}, {-30.0, 7.0, 0, 1}, {-17.0, 7.0, 0, 1},
+
210 {-16.0, 7.0, 0, 1}, {-15.0, 7.0, 0, 1}, {-14.0, 7.0, 0, 1}, {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1},
+
211 {-1.0, 7.0, 0, 1}, {0.0, 7.0, 0, 1}, {1.0, 7.0, 0, 1}, {24.0, 7.0, 0, 1}, {25.0, 7.0, 0, 1}, {26.0, 7.0, 0, 1},
+
212 {39.0, 7.0, 0, 1}, {40.0, 7.0, 0, 1}, {41.0, 7.0, 0, 1}, {45.0, 7.0, 0, 1}, {46.0, 7.0, 0, 1}, {47.0, 7.0, 0, 1},
+
213 {51.0, 7.0, 0, 1}, {52.0, 7.0, 0, 1}, {53.0, 7.0, 0, 1}, {-63.0, 8.0, 0, 1}, {-62.0, 8.0, 0, 1}, {-61.0, 8.0, 0, 1},
+
214 {-60.0, 8.0, 0, 1}, {-59.0, 8.0, 0, 1}, {-58.0, 8.0, 0, 1}, {-57.0, 8.0, 0, 1}, {-56.0, 8.0, 0, 1}, {-55.0, 8.0, 0, 1},
+
215 {-54.0, 8.0, 0, 1}, {-53.0, 8.0, 0, 1}, {-52.0, 8.0, 0, 1}, {-48.0, 8.0, 0, 1}, {-47.0, 8.0, 0, 1}, {-46.0, 8.0, 0, 1},
+
216 {-45.0, 8.0, 0, 1}, {-44.0, 8.0, 0, 1}, {-43.0, 8.0, 0, 1}, {-42.0, 8.0, 0, 1}, {-41.0, 8.0, 0, 1}, {-40.0, 8.0, 0, 1},
+
217 {-39.0, 8.0, 0, 1}, {-38.0, 8.0, 0, 1}, {-37.0, 8.0, 0, 1}, {-33.0, 8.0, 0, 1}, {-32.0, 8.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
218 {-30.0, 8.0, 0, 1}, {-17.0, 8.0, 0, 1}, {-16.0, 8.0, 0, 1}, {-15.0, 8.0, 0, 1}, {-14.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1},
+
219 {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1},
+
220 {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1}, {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1},
+
221 {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1}, {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1},
+
222 {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {22.0, 8.0, 0, 1},
+
223 {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {30.0, 8.0, 0, 1},
+
224 {31.0, 8.0, 0, 1}, {32.0, 8.0, 0, 1}, {33.0, 8.0, 0, 1}, {34.0, 8.0, 0, 1}, {35.0, 8.0, 0, 1}, {36.0, 8.0, 0, 1},
+
225 {37.0, 8.0, 0, 1}, {38.0, 8.0, 0, 1}, {39.0, 8.0, 0, 1}, {40.0, 8.0, 0, 1}, {41.0, 8.0, 0, 1}, {45.0, 8.0, 0, 1},
+
226 {46.0, 8.0, 0, 1}, {47.0, 8.0, 0, 1}, {51.0, 8.0, 0, 1}, {52.0, 8.0, 0, 1}, {53.0, 8.0, 0, 1}, {-63.0, 9.0, 0, 1},
+
227 {-62.0, 9.0, 0, 1}, {-61.0, 9.0, 0, 1}, {-60.0, 9.0, 0, 1}, {-59.0, 9.0, 0, 1}, {-58.0, 9.0, 0, 1}, {-57.0, 9.0, 0, 1},
+
228 {-56.0, 9.0, 0, 1}, {-55.0, 9.0, 0, 1}, {-54.0, 9.0, 0, 1}, {-53.0, 9.0, 0, 1}, {-52.0, 9.0, 0, 1}, {-48.0, 9.0, 0, 1},
+
229 {-47.0, 9.0, 0, 1}, {-46.0, 9.0, 0, 1}, {-45.0, 9.0, 0, 1}, {-44.0, 9.0, 0, 1}, {-43.0, 9.0, 0, 1}, {-42.0, 9.0, 0, 1},
+
230 {-41.0, 9.0, 0, 1}, {-40.0, 9.0, 0, 1}, {-39.0, 9.0, 0, 1}, {-38.0, 9.0, 0, 1}, {-37.0, 9.0, 0, 1}, {-33.0, 9.0, 0, 1},
+
231 {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-17.0, 9.0, 0, 1}, {-16.0, 9.0, 0, 1}, {-15.0, 9.0, 0, 1},
+
232 {-14.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1}, {1.0, 9.0, 0, 1},
+
233 {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1}, {7.0, 9.0, 0, 1},
+
234 {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1}, {16.0, 9.0, 0, 1},
+
235 {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1},
+
236 {23.0, 9.0, 0, 1}, {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1}, {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1},
+
237 {32.0, 9.0, 0, 1}, {33.0, 9.0, 0, 1}, {34.0, 9.0, 0, 1}, {35.0, 9.0, 0, 1}, {36.0, 9.0, 0, 1}, {37.0, 9.0, 0, 1},
+
238 {38.0, 9.0, 0, 1}, {39.0, 9.0, 0, 1}, {40.0, 9.0, 0, 1}, {41.0, 9.0, 0, 1}, {45.0, 9.0, 0, 1}, {46.0, 9.0, 0, 1},
+
239 {47.0, 9.0, 0, 1}, {51.0, 9.0, 0, 1}, {52.0, 9.0, 0, 1}, {53.0, 9.0, 0, 1}, {-62.0, 10.0, 0, 1}, {-61.0, 10.0, 0, 1},
+
240 {-60.0, 10.0, 0, 1}, {-59.0, 10.0, 0, 1}, {-58.0, 10.0, 0, 1}, {-57.0, 10.0, 0, 1}, {-56.0, 10.0, 0, 1}, {-55.0, 10.0, 0, 1},
+
241 {-54.0, 10.0, 0, 1}, {-53.0, 10.0, 0, 1}, {-52.0, 10.0, 0, 1}, {-48.0, 10.0, 0, 1}, {-47.0, 10.0, 0, 1}, {-46.0, 10.0, 0, 1},
+
242 {-45.0, 10.0, 0, 1}, {-44.0, 10.0, 0, 1}, {-43.0, 10.0, 0, 1}, {-42.0, 10.0, 0, 1}, {-41.0, 10.0, 0, 1}, {-40.0, 10.0, 0, 1},
+
243 {-39.0, 10.0, 0, 1}, {-38.0, 10.0, 0, 1}, {-33.0, 10.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1},
+
244 {-17.0, 10.0, 0, 1}, {-16.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1},
+
245 {-4.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1}, {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1},
+
246 {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1},
+
247 {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1},
+
248 {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1}, {24.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
249 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {32.0, 10.0, 0, 1}, {33.0, 10.0, 0, 1}, {34.0, 10.0, 0, 1}, {35.0, 10.0, 0, 1},
+
250 {36.0, 10.0, 0, 1}, {37.0, 10.0, 0, 1}, {38.0, 10.0, 0, 1}, {39.0, 10.0, 0, 1}, {40.0, 10.0, 0, 1}, {45.0, 10.0, 0, 1},
+
251 {46.0, 10.0, 0, 1}, {47.0, 10.0, 0, 1}, {51.0, 10.0, 0, 1}, {52.0, 10.0, 0, 1}, {53.0, 10.0, 0, 1}
+
252};
+
+
+
+ +

◆ image_bmp_array_esp_text

+ +
+
+ + + + + +
+ + + + +
const uint8_t image_bmp_array_esp_text[384]
+
+extern
+
+ +

Definition at line 9 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
9 {
+
10
+
11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
12 0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
13 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
14 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
15 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
16 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
17 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
18 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
19 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
20 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
21 0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
22 0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
23 0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
24 0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
25 0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
26 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
27 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
28 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
29 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
30 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
31 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
32 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
33 0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
35
+
36};
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js new file mode 100644 index 0000000..6881b9e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js @@ -0,0 +1,5 @@ +var applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h = +[ + [ "image_3d_array_esp_text", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html#aca921c7ba529f39acf0b48eddef96266", null ], + [ "image_bmp_array_esp_text", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html#ace7ab8bb5752781ce55ed3b3f7b01c06", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 new file mode 100644 index 0000000..0690a34 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 @@ -0,0 +1 @@ +5aa126a4ddd99143417a195b691ddb7f \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg new file mode 100644 index 0000000..bc39fe8 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +esp_text.c + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg new file mode 100644 index 0000000..9abec0e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +esp_text.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 new file mode 100644 index 0000000..be5b932 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 @@ -0,0 +1 @@ +95b3e9fdb506061330e38f6b1c0d5574 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg new file mode 100644 index 0000000..a946a82 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg new file mode 100644 index 0000000..e377c9f --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html new file mode 100644 index 0000000..b9636b0 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: esp_text.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.h
+
+
+Go to the documentation of this file.
1// File generated by image_to_3d_array.py
+
2
+
3#pragma once
+
4
+
5#include <stdint.h>
+
6
+
7#ifdef __cplusplus
+
8extern "C" {
+
9#endif
+
10
+
11extern const uint8_t image_bmp_array_esp_text[384];
+
12extern const float image_3d_array_esp_text[1271][4];
+
13
+
14#ifdef __cplusplus
+
15}
+
16#endif
+ + +
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html new file mode 100644 index 0000000..c49377e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image_to_3d_matrix.c File Reference
+
+
+
+Include dependency graph for applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.md5 new file mode 100644 index 0000000..0698eeb --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.md5 @@ -0,0 +1 @@ +9aafc53363a158c0833450ca1727e5e3 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.svg new file mode 100644 index 0000000..3ae434a --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +image_to_3d_matrix.c + + +Node1 + + +image_to_3d_matrix.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl_org.svg new file mode 100644 index 0000000..a8cdb74 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +image_to_3d_matrix.c + + +Node1 + + +image_to_3d_matrix.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c_source.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c_source.html new file mode 100644 index 0000000..86fd3f5 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c_source.html @@ -0,0 +1,447 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.c
+
+
+Go to the documentation of this file.
1// File generated by ImgTo3D.py
+
2// Image file converted to 3D matrix cpu_logo.png
+
3
+ +
5
+
6#ifdef CONFIG_3D_OBJECT_CUSTOM
+
7
+
8const uint8_t image_to_bmp_array_custom[512] = {
+
9
+
10 0x00, 0x00, 0x0e, 0x1c, 0x38, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
11 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
12 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
13 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
14 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
15 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
16 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
17 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
18 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
19 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe,
+
20 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff,
+
21 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0x00, 0x1e, 0x0f, 0xff, 0xff, 0xf0, 0x78, 0x00,
+
22 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00,
+
23 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfe, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff,
+
24 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff,
+
25 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfc, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00,
+
26 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfe,
+
27 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff,
+
28 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff, 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfe,
+
29 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00,
+
30 0x7f, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xfc, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff,
+
31 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff,
+
32 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
33 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
34 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
35 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
36 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
37 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
38 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
39 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
40 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
41 0x00, 0x00, 0x1e, 0x3c, 0x7c, 0x78, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1c, 0x38, 0x70, 0x00, 0x00
+
42
+
43};
+
44
+
45const float image_to_3d_matrix_custom[1732][4] = {
+
46
+
47 {-12.0, -32.0, 0, 1}, {-11.0, -32.0, 0, 1}, {-10.0, -32.0, 0, 1}, {-5.0, -32.0, 0, 1}, {-4.0, -32.0, 0, 1}, {-3.0, -32.0, 0, 1},
+
48 {2.0, -32.0, 0, 1}, {3.0, -32.0, 0, 1}, {4.0, -32.0, 0, 1}, {9.0, -32.0, 0, 1}, {10.0, -32.0, 0, 1}, {11.0, -32.0, 0, 1},
+
49 {-13.0, -31.0, 0, 1}, {-12.0, -31.0, 0, 1}, {-11.0, -31.0, 0, 1}, {-10.0, -31.0, 0, 1}, {-6.0, -31.0, 0, 1}, {-5.0, -31.0, 0, 1},
+
50 {-4.0, -31.0, 0, 1}, {-3.0, -31.0, 0, 1}, {-2.0, -31.0, 0, 1}, {1.0, -31.0, 0, 1}, {2.0, -31.0, 0, 1}, {3.0, -31.0, 0, 1},
+
51 {4.0, -31.0, 0, 1}, {5.0, -31.0, 0, 1}, {8.0, -31.0, 0, 1}, {9.0, -31.0, 0, 1}, {10.0, -31.0, 0, 1}, {11.0, -31.0, 0, 1},
+
52 {12.0, -31.0, 0, 1}, {-13.0, -30.0, 0, 1}, {-12.0, -30.0, 0, 1}, {-11.0, -30.0, 0, 1}, {-10.0, -30.0, 0, 1}, {-6.0, -30.0, 0, 1},
+
53 {-5.0, -30.0, 0, 1}, {-4.0, -30.0, 0, 1}, {-3.0, -30.0, 0, 1}, {-2.0, -30.0, 0, 1}, {1.0, -30.0, 0, 1}, {2.0, -30.0, 0, 1},
+
54 {3.0, -30.0, 0, 1}, {4.0, -30.0, 0, 1}, {5.0, -30.0, 0, 1}, {8.0, -30.0, 0, 1}, {9.0, -30.0, 0, 1}, {10.0, -30.0, 0, 1},
+
55 {11.0, -30.0, 0, 1}, {12.0, -30.0, 0, 1}, {-13.0, -29.0, 0, 1}, {-12.0, -29.0, 0, 1}, {-11.0, -29.0, 0, 1}, {-10.0, -29.0, 0, 1},
+
56 {-6.0, -29.0, 0, 1}, {-5.0, -29.0, 0, 1}, {-4.0, -29.0, 0, 1}, {-3.0, -29.0, 0, 1}, {-2.0, -29.0, 0, 1}, {1.0, -29.0, 0, 1},
+
57 {2.0, -29.0, 0, 1}, {3.0, -29.0, 0, 1}, {4.0, -29.0, 0, 1}, {5.0, -29.0, 0, 1}, {8.0, -29.0, 0, 1}, {9.0, -29.0, 0, 1},
+
58 {10.0, -29.0, 0, 1}, {11.0, -29.0, 0, 1}, {12.0, -29.0, 0, 1}, {-13.0, -28.0, 0, 1}, {-12.0, -28.0, 0, 1}, {-11.0, -28.0, 0, 1},
+
59 {-10.0, -28.0, 0, 1}, {-6.0, -28.0, 0, 1}, {-5.0, -28.0, 0, 1}, {-4.0, -28.0, 0, 1}, {-3.0, -28.0, 0, 1}, {-2.0, -28.0, 0, 1},
+
60 {1.0, -28.0, 0, 1}, {2.0, -28.0, 0, 1}, {3.0, -28.0, 0, 1}, {4.0, -28.0, 0, 1}, {5.0, -28.0, 0, 1}, {8.0, -28.0, 0, 1},
+
61 {9.0, -28.0, 0, 1}, {10.0, -28.0, 0, 1}, {11.0, -28.0, 0, 1}, {12.0, -28.0, 0, 1}, {-13.0, -27.0, 0, 1}, {-12.0, -27.0, 0, 1},
+
62 {-11.0, -27.0, 0, 1}, {-10.0, -27.0, 0, 1}, {-6.0, -27.0, 0, 1}, {-5.0, -27.0, 0, 1}, {-4.0, -27.0, 0, 1}, {-3.0, -27.0, 0, 1},
+
63 {-2.0, -27.0, 0, 1}, {1.0, -27.0, 0, 1}, {2.0, -27.0, 0, 1}, {3.0, -27.0, 0, 1}, {4.0, -27.0, 0, 1}, {5.0, -27.0, 0, 1},
+
64 {8.0, -27.0, 0, 1}, {9.0, -27.0, 0, 1}, {10.0, -27.0, 0, 1}, {11.0, -27.0, 0, 1}, {12.0, -27.0, 0, 1}, {-13.0, -26.0, 0, 1},
+
65 {-12.0, -26.0, 0, 1}, {-11.0, -26.0, 0, 1}, {-10.0, -26.0, 0, 1}, {-6.0, -26.0, 0, 1}, {-5.0, -26.0, 0, 1}, {-4.0, -26.0, 0, 1},
+
66 {-3.0, -26.0, 0, 1}, {-2.0, -26.0, 0, 1}, {1.0, -26.0, 0, 1}, {2.0, -26.0, 0, 1}, {3.0, -26.0, 0, 1}, {4.0, -26.0, 0, 1},
+
67 {5.0, -26.0, 0, 1}, {8.0, -26.0, 0, 1}, {9.0, -26.0, 0, 1}, {10.0, -26.0, 0, 1}, {11.0, -26.0, 0, 1}, {12.0, -26.0, 0, 1},
+
68 {-13.0, -25.0, 0, 1}, {-12.0, -25.0, 0, 1}, {-11.0, -25.0, 0, 1}, {-10.0, -25.0, 0, 1}, {-6.0, -25.0, 0, 1}, {-5.0, -25.0, 0, 1},
+
69 {-4.0, -25.0, 0, 1}, {-3.0, -25.0, 0, 1}, {-2.0, -25.0, 0, 1}, {1.0, -25.0, 0, 1}, {2.0, -25.0, 0, 1}, {3.0, -25.0, 0, 1},
+
70 {4.0, -25.0, 0, 1}, {5.0, -25.0, 0, 1}, {8.0, -25.0, 0, 1}, {9.0, -25.0, 0, 1}, {10.0, -25.0, 0, 1}, {11.0, -25.0, 0, 1},
+
71 {12.0, -25.0, 0, 1}, {-13.0, -24.0, 0, 1}, {-12.0, -24.0, 0, 1}, {-11.0, -24.0, 0, 1}, {-10.0, -24.0, 0, 1}, {-6.0, -24.0, 0, 1},
+
72 {-5.0, -24.0, 0, 1}, {-4.0, -24.0, 0, 1}, {-3.0, -24.0, 0, 1}, {-2.0, -24.0, 0, 1}, {1.0, -24.0, 0, 1}, {2.0, -24.0, 0, 1},
+
73 {3.0, -24.0, 0, 1}, {4.0, -24.0, 0, 1}, {5.0, -24.0, 0, 1}, {8.0, -24.0, 0, 1}, {9.0, -24.0, 0, 1}, {10.0, -24.0, 0, 1},
+
74 {11.0, -24.0, 0, 1}, {12.0, -24.0, 0, 1}, {-13.0, -23.0, 0, 1}, {-12.0, -23.0, 0, 1}, {-11.0, -23.0, 0, 1}, {-10.0, -23.0, 0, 1},
+
75 {-6.0, -23.0, 0, 1}, {-5.0, -23.0, 0, 1}, {-4.0, -23.0, 0, 1}, {-3.0, -23.0, 0, 1}, {-2.0, -23.0, 0, 1}, {1.0, -23.0, 0, 1},
+
76 {2.0, -23.0, 0, 1}, {3.0, -23.0, 0, 1}, {4.0, -23.0, 0, 1}, {5.0, -23.0, 0, 1}, {8.0, -23.0, 0, 1}, {9.0, -23.0, 0, 1},
+
77 {10.0, -23.0, 0, 1}, {11.0, -23.0, 0, 1}, {12.0, -23.0, 0, 1}, {-13.0, -22.0, 0, 1}, {-12.0, -22.0, 0, 1}, {-11.0, -22.0, 0, 1},
+
78 {-10.0, -22.0, 0, 1}, {-6.0, -22.0, 0, 1}, {-5.0, -22.0, 0, 1}, {-4.0, -22.0, 0, 1}, {-3.0, -22.0, 0, 1}, {-2.0, -22.0, 0, 1},
+
79 {1.0, -22.0, 0, 1}, {2.0, -22.0, 0, 1}, {3.0, -22.0, 0, 1}, {4.0, -22.0, 0, 1}, {5.0, -22.0, 0, 1}, {8.0, -22.0, 0, 1},
+
80 {9.0, -22.0, 0, 1}, {10.0, -22.0, 0, 1}, {11.0, -22.0, 0, 1}, {12.0, -22.0, 0, 1}, {-21.0, -21.0, 0, 1}, {-20.0, -21.0, 0, 1},
+
81 {-19.0, -21.0, 0, 1}, {-18.0, -21.0, 0, 1}, {-17.0, -21.0, 0, 1}, {-16.0, -21.0, 0, 1}, {-15.0, -21.0, 0, 1}, {-14.0, -21.0, 0, 1},
+
82 {-13.0, -21.0, 0, 1}, {-12.0, -21.0, 0, 1}, {-11.0, -21.0, 0, 1}, {-10.0, -21.0, 0, 1}, {-9.0, -21.0, 0, 1}, {-8.0, -21.0, 0, 1},
+
83 {-7.0, -21.0, 0, 1}, {-6.0, -21.0, 0, 1}, {-5.0, -21.0, 0, 1}, {-4.0, -21.0, 0, 1}, {-3.0, -21.0, 0, 1}, {-2.0, -21.0, 0, 1},
+
84 {-1.0, -21.0, 0, 1}, {0.0, -21.0, 0, 1}, {1.0, -21.0, 0, 1}, {2.0, -21.0, 0, 1}, {3.0, -21.0, 0, 1}, {4.0, -21.0, 0, 1},
+
85 {5.0, -21.0, 0, 1}, {6.0, -21.0, 0, 1}, {7.0, -21.0, 0, 1}, {8.0, -21.0, 0, 1}, {9.0, -21.0, 0, 1}, {10.0, -21.0, 0, 1},
+
86 {11.0, -21.0, 0, 1}, {12.0, -21.0, 0, 1}, {13.0, -21.0, 0, 1}, {14.0, -21.0, 0, 1}, {15.0, -21.0, 0, 1}, {16.0, -21.0, 0, 1},
+
87 {17.0, -21.0, 0, 1}, {18.0, -21.0, 0, 1}, {19.0, -21.0, 0, 1}, {20.0, -21.0, 0, 1}, {-21.0, -20.0, 0, 1}, {-20.0, -20.0, 0, 1},
+
88 {-19.0, -20.0, 0, 1}, {-18.0, -20.0, 0, 1}, {-17.0, -20.0, 0, 1}, {-16.0, -20.0, 0, 1}, {-15.0, -20.0, 0, 1}, {-14.0, -20.0, 0, 1},
+
89 {-13.0, -20.0, 0, 1}, {-12.0, -20.0, 0, 1}, {-11.0, -20.0, 0, 1}, {-10.0, -20.0, 0, 1}, {-9.0, -20.0, 0, 1}, {-8.0, -20.0, 0, 1},
+
90 {-7.0, -20.0, 0, 1}, {-6.0, -20.0, 0, 1}, {-5.0, -20.0, 0, 1}, {-4.0, -20.0, 0, 1}, {-3.0, -20.0, 0, 1}, {-2.0, -20.0, 0, 1},
+
91 {-1.0, -20.0, 0, 1}, {0.0, -20.0, 0, 1}, {1.0, -20.0, 0, 1}, {2.0, -20.0, 0, 1}, {3.0, -20.0, 0, 1}, {4.0, -20.0, 0, 1},
+
92 {5.0, -20.0, 0, 1}, {6.0, -20.0, 0, 1}, {7.0, -20.0, 0, 1}, {8.0, -20.0, 0, 1}, {9.0, -20.0, 0, 1}, {10.0, -20.0, 0, 1},
+
93 {11.0, -20.0, 0, 1}, {12.0, -20.0, 0, 1}, {13.0, -20.0, 0, 1}, {14.0, -20.0, 0, 1}, {15.0, -20.0, 0, 1}, {16.0, -20.0, 0, 1},
+
94 {17.0, -20.0, 0, 1}, {18.0, -20.0, 0, 1}, {19.0, -20.0, 0, 1}, {20.0, -20.0, 0, 1}, {-21.0, -19.0, 0, 1}, {-20.0, -19.0, 0, 1},
+
95 {-19.0, -19.0, 0, 1}, {-18.0, -19.0, 0, 1}, {-17.0, -19.0, 0, 1}, {-16.0, -19.0, 0, 1}, {-15.0, -19.0, 0, 1}, {-14.0, -19.0, 0, 1},
+
96 {-13.0, -19.0, 0, 1}, {-12.0, -19.0, 0, 1}, {-11.0, -19.0, 0, 1}, {-10.0, -19.0, 0, 1}, {-9.0, -19.0, 0, 1}, {-8.0, -19.0, 0, 1},
+
97 {-7.0, -19.0, 0, 1}, {-6.0, -19.0, 0, 1}, {-5.0, -19.0, 0, 1}, {-4.0, -19.0, 0, 1}, {-3.0, -19.0, 0, 1}, {-2.0, -19.0, 0, 1},
+
98 {-1.0, -19.0, 0, 1}, {0.0, -19.0, 0, 1}, {1.0, -19.0, 0, 1}, {2.0, -19.0, 0, 1}, {3.0, -19.0, 0, 1}, {4.0, -19.0, 0, 1},
+
99 {5.0, -19.0, 0, 1}, {6.0, -19.0, 0, 1}, {7.0, -19.0, 0, 1}, {8.0, -19.0, 0, 1}, {9.0, -19.0, 0, 1}, {10.0, -19.0, 0, 1},
+
100 {11.0, -19.0, 0, 1}, {12.0, -19.0, 0, 1}, {13.0, -19.0, 0, 1}, {14.0, -19.0, 0, 1}, {15.0, -19.0, 0, 1}, {16.0, -19.0, 0, 1},
+
101 {17.0, -19.0, 0, 1}, {18.0, -19.0, 0, 1}, {19.0, -19.0, 0, 1}, {20.0, -19.0, 0, 1}, {-21.0, -18.0, 0, 1}, {-20.0, -18.0, 0, 1},
+
102 {-19.0, -18.0, 0, 1}, {-18.0, -18.0, 0, 1}, {-17.0, -18.0, 0, 1}, {-16.0, -18.0, 0, 1}, {-15.0, -18.0, 0, 1}, {-14.0, -18.0, 0, 1},
+
103 {-13.0, -18.0, 0, 1}, {-12.0, -18.0, 0, 1}, {-11.0, -18.0, 0, 1}, {-10.0, -18.0, 0, 1}, {-9.0, -18.0, 0, 1}, {-8.0, -18.0, 0, 1},
+
104 {-7.0, -18.0, 0, 1}, {-6.0, -18.0, 0, 1}, {-5.0, -18.0, 0, 1}, {-4.0, -18.0, 0, 1}, {-3.0, -18.0, 0, 1}, {-2.0, -18.0, 0, 1},
+
105 {-1.0, -18.0, 0, 1}, {0.0, -18.0, 0, 1}, {1.0, -18.0, 0, 1}, {2.0, -18.0, 0, 1}, {3.0, -18.0, 0, 1}, {4.0, -18.0, 0, 1},
+
106 {5.0, -18.0, 0, 1}, {6.0, -18.0, 0, 1}, {7.0, -18.0, 0, 1}, {8.0, -18.0, 0, 1}, {9.0, -18.0, 0, 1}, {10.0, -18.0, 0, 1},
+
107 {11.0, -18.0, 0, 1}, {12.0, -18.0, 0, 1}, {13.0, -18.0, 0, 1}, {14.0, -18.0, 0, 1}, {15.0, -18.0, 0, 1}, {16.0, -18.0, 0, 1},
+
108 {17.0, -18.0, 0, 1}, {18.0, -18.0, 0, 1}, {19.0, -18.0, 0, 1}, {20.0, -18.0, 0, 1}, {-21.0, -17.0, 0, 1}, {-20.0, -17.0, 0, 1},
+
109 {-19.0, -17.0, 0, 1}, {-18.0, -17.0, 0, 1}, {17.0, -17.0, 0, 1}, {18.0, -17.0, 0, 1}, {19.0, -17.0, 0, 1}, {20.0, -17.0, 0, 1},
+
110 {-21.0, -16.0, 0, 1}, {-20.0, -16.0, 0, 1}, {-19.0, -16.0, 0, 1}, {-18.0, -16.0, 0, 1}, {17.0, -16.0, 0, 1}, {18.0, -16.0, 0, 1},
+
111 {19.0, -16.0, 0, 1}, {20.0, -16.0, 0, 1}, {-21.0, -15.0, 0, 1}, {-20.0, -15.0, 0, 1}, {-19.0, -15.0, 0, 1}, {-18.0, -15.0, 0, 1},
+
112 {17.0, -15.0, 0, 1}, {18.0, -15.0, 0, 1}, {19.0, -15.0, 0, 1}, {20.0, -15.0, 0, 1}, {-21.0, -14.0, 0, 1}, {-20.0, -14.0, 0, 1},
+
113 {-19.0, -14.0, 0, 1}, {-18.0, -14.0, 0, 1}, {17.0, -14.0, 0, 1}, {18.0, -14.0, 0, 1}, {19.0, -14.0, 0, 1}, {20.0, -14.0, 0, 1},
+
114 {-31.0, -13.0, 0, 1}, {-30.0, -13.0, 0, 1}, {-29.0, -13.0, 0, 1}, {-28.0, -13.0, 0, 1}, {-27.0, -13.0, 0, 1}, {-26.0, -13.0, 0, 1},
+
115 {-25.0, -13.0, 0, 1}, {-24.0, -13.0, 0, 1}, {-23.0, -13.0, 0, 1}, {-22.0, -13.0, 0, 1}, {-21.0, -13.0, 0, 1}, {-20.0, -13.0, 0, 1},
+
116 {-19.0, -13.0, 0, 1}, {-18.0, -13.0, 0, 1}, {17.0, -13.0, 0, 1}, {18.0, -13.0, 0, 1}, {19.0, -13.0, 0, 1}, {20.0, -13.0, 0, 1},
+
117 {21.0, -13.0, 0, 1}, {22.0, -13.0, 0, 1}, {23.0, -13.0, 0, 1}, {24.0, -13.0, 0, 1}, {25.0, -13.0, 0, 1}, {26.0, -13.0, 0, 1},
+
118 {27.0, -13.0, 0, 1}, {28.0, -13.0, 0, 1}, {29.0, -13.0, 0, 1}, {30.0, -13.0, 0, 1}, {-32.0, -12.0, 0, 1}, {-31.0, -12.0, 0, 1},
+
119 {-30.0, -12.0, 0, 1}, {-29.0, -12.0, 0, 1}, {-28.0, -12.0, 0, 1}, {-27.0, -12.0, 0, 1}, {-26.0, -12.0, 0, 1}, {-25.0, -12.0, 0, 1},
+
120 {-24.0, -12.0, 0, 1}, {-23.0, -12.0, 0, 1}, {-22.0, -12.0, 0, 1}, {-21.0, -12.0, 0, 1}, {-20.0, -12.0, 0, 1}, {-19.0, -12.0, 0, 1},
+
121 {-18.0, -12.0, 0, 1}, {-12.0, -12.0, 0, 1}, {-11.0, -12.0, 0, 1}, {-10.0, -12.0, 0, 1}, {-9.0, -12.0, 0, 1}, {-8.0, -12.0, 0, 1},
+
122 {-7.0, -12.0, 0, 1}, {-6.0, -12.0, 0, 1}, {-5.0, -12.0, 0, 1}, {-4.0, -12.0, 0, 1}, {-3.0, -12.0, 0, 1}, {-2.0, -12.0, 0, 1},
+
123 {-1.0, -12.0, 0, 1}, {0.0, -12.0, 0, 1}, {1.0, -12.0, 0, 1}, {2.0, -12.0, 0, 1}, {3.0, -12.0, 0, 1}, {4.0, -12.0, 0, 1},
+
124 {5.0, -12.0, 0, 1}, {6.0, -12.0, 0, 1}, {7.0, -12.0, 0, 1}, {8.0, -12.0, 0, 1}, {9.0, -12.0, 0, 1}, {10.0, -12.0, 0, 1},
+
125 {11.0, -12.0, 0, 1}, {17.0, -12.0, 0, 1}, {18.0, -12.0, 0, 1}, {19.0, -12.0, 0, 1}, {20.0, -12.0, 0, 1}, {21.0, -12.0, 0, 1},
+
126 {22.0, -12.0, 0, 1}, {23.0, -12.0, 0, 1}, {24.0, -12.0, 0, 1}, {25.0, -12.0, 0, 1}, {26.0, -12.0, 0, 1}, {27.0, -12.0, 0, 1},
+
127 {28.0, -12.0, 0, 1}, {29.0, -12.0, 0, 1}, {30.0, -12.0, 0, 1}, {31.0, -12.0, 0, 1}, {-32.0, -11.0, 0, 1}, {-31.0, -11.0, 0, 1},
+
128 {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1}, {-25.0, -11.0, 0, 1},
+
129 {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-21.0, -11.0, 0, 1}, {-20.0, -11.0, 0, 1}, {-19.0, -11.0, 0, 1},
+
130 {-18.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1}, {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1},
+
131 {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {-5.0, -11.0, 0, 1}, {-4.0, -11.0, 0, 1}, {-3.0, -11.0, 0, 1}, {-2.0, -11.0, 0, 1},
+
132 {-1.0, -11.0, 0, 1}, {0.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1}, {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1},
+
133 {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1}, {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1},
+
134 {11.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1}, {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1},
+
135 {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1}, {26.0, -11.0, 0, 1}, {27.0, -11.0, 0, 1},
+
136 {28.0, -11.0, 0, 1}, {29.0, -11.0, 0, 1}, {30.0, -11.0, 0, 1}, {31.0, -11.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1},
+
137 {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1}, {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1},
+
138 {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1}, {-21.0, -10.0, 0, 1}, {-20.0, -10.0, 0, 1}, {-19.0, -10.0, 0, 1},
+
139 {-18.0, -10.0, 0, 1}, {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1},
+
140 {-7.0, -10.0, 0, 1}, {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {-4.0, -10.0, 0, 1}, {-3.0, -10.0, 0, 1}, {-2.0, -10.0, 0, 1},
+
141 {-1.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1}, {4.0, -10.0, 0, 1},
+
142 {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1}, {10.0, -10.0, 0, 1},
+
143 {11.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1}, {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1},
+
144 {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1}, {26.0, -10.0, 0, 1}, {27.0, -10.0, 0, 1},
+
145 {28.0, -10.0, 0, 1}, {29.0, -10.0, 0, 1}, {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-20.0, -9.0, 0, 1},
+
146 {-19.0, -9.0, 0, 1}, {-18.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
147 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-4.0, -9.0, 0, 1}, {-3.0, -9.0, 0, 1},
+
148 {-2.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1}, {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1},
+
149 {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1}, {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1},
+
150 {10.0, -9.0, 0, 1}, {11.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1},
+
151 {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-19.0, -8.0, 0, 1}, {-18.0, -8.0, 0, 1}, {-12.0, -8.0, 0, 1}, {-11.0, -8.0, 0, 1},
+
152 {-10.0, -8.0, 0, 1}, {-9.0, -8.0, 0, 1}, {8.0, -8.0, 0, 1}, {9.0, -8.0, 0, 1}, {10.0, -8.0, 0, 1}, {11.0, -8.0, 0, 1},
+
153 {17.0, -8.0, 0, 1}, {18.0, -8.0, 0, 1}, {19.0, -8.0, 0, 1}, {20.0, -8.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1},
+
154 {-19.0, -7.0, 0, 1}, {-18.0, -7.0, 0, 1}, {-12.0, -7.0, 0, 1}, {-11.0, -7.0, 0, 1}, {-10.0, -7.0, 0, 1}, {-9.0, -7.0, 0, 1},
+
155 {8.0, -7.0, 0, 1}, {9.0, -7.0, 0, 1}, {10.0, -7.0, 0, 1}, {11.0, -7.0, 0, 1}, {17.0, -7.0, 0, 1}, {18.0, -7.0, 0, 1},
+
156 {19.0, -7.0, 0, 1}, {20.0, -7.0, 0, 1}, {-31.0, -6.0, 0, 1}, {-30.0, -6.0, 0, 1}, {-29.0, -6.0, 0, 1}, {-28.0, -6.0, 0, 1},
+
157 {-27.0, -6.0, 0, 1}, {-26.0, -6.0, 0, 1}, {-25.0, -6.0, 0, 1}, {-24.0, -6.0, 0, 1}, {-23.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1},
+
158 {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-19.0, -6.0, 0, 1}, {-18.0, -6.0, 0, 1}, {-12.0, -6.0, 0, 1}, {-11.0, -6.0, 0, 1},
+
159 {-10.0, -6.0, 0, 1}, {-9.0, -6.0, 0, 1}, {8.0, -6.0, 0, 1}, {9.0, -6.0, 0, 1}, {10.0, -6.0, 0, 1}, {11.0, -6.0, 0, 1},
+
160 {17.0, -6.0, 0, 1}, {18.0, -6.0, 0, 1}, {19.0, -6.0, 0, 1}, {20.0, -6.0, 0, 1}, {21.0, -6.0, 0, 1}, {22.0, -6.0, 0, 1},
+
161 {23.0, -6.0, 0, 1}, {24.0, -6.0, 0, 1}, {25.0, -6.0, 0, 1}, {26.0, -6.0, 0, 1}, {27.0, -6.0, 0, 1}, {28.0, -6.0, 0, 1},
+
162 {29.0, -6.0, 0, 1}, {30.0, -6.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1}, {-30.0, -5.0, 0, 1}, {-29.0, -5.0, 0, 1},
+
163 {-28.0, -5.0, 0, 1}, {-27.0, -5.0, 0, 1}, {-26.0, -5.0, 0, 1}, {-25.0, -5.0, 0, 1}, {-24.0, -5.0, 0, 1}, {-23.0, -5.0, 0, 1},
+
164 {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-19.0, -5.0, 0, 1}, {-18.0, -5.0, 0, 1}, {-12.0, -5.0, 0, 1},
+
165 {-11.0, -5.0, 0, 1}, {-10.0, -5.0, 0, 1}, {-9.0, -5.0, 0, 1}, {8.0, -5.0, 0, 1}, {9.0, -5.0, 0, 1}, {10.0, -5.0, 0, 1},
+
166 {11.0, -5.0, 0, 1}, {17.0, -5.0, 0, 1}, {18.0, -5.0, 0, 1}, {19.0, -5.0, 0, 1}, {20.0, -5.0, 0, 1}, {21.0, -5.0, 0, 1},
+
167 {22.0, -5.0, 0, 1}, {23.0, -5.0, 0, 1}, {24.0, -5.0, 0, 1}, {25.0, -5.0, 0, 1}, {26.0, -5.0, 0, 1}, {27.0, -5.0, 0, 1},
+
168 {28.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1}, {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
169 {-30.0, -4.0, 0, 1}, {-29.0, -4.0, 0, 1}, {-28.0, -4.0, 0, 1}, {-27.0, -4.0, 0, 1}, {-26.0, -4.0, 0, 1}, {-25.0, -4.0, 0, 1},
+
170 {-24.0, -4.0, 0, 1}, {-23.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-19.0, -4.0, 0, 1},
+
171 {-18.0, -4.0, 0, 1}, {-12.0, -4.0, 0, 1}, {-11.0, -4.0, 0, 1}, {-10.0, -4.0, 0, 1}, {-9.0, -4.0, 0, 1}, {8.0, -4.0, 0, 1},
+
172 {9.0, -4.0, 0, 1}, {10.0, -4.0, 0, 1}, {11.0, -4.0, 0, 1}, {17.0, -4.0, 0, 1}, {18.0, -4.0, 0, 1}, {19.0, -4.0, 0, 1},
+
173 {20.0, -4.0, 0, 1}, {21.0, -4.0, 0, 1}, {22.0, -4.0, 0, 1}, {23.0, -4.0, 0, 1}, {24.0, -4.0, 0, 1}, {25.0, -4.0, 0, 1},
+
174 {26.0, -4.0, 0, 1}, {27.0, -4.0, 0, 1}, {28.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1}, {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1},
+
175 {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1}, {-30.0, -3.0, 0, 1}, {-29.0, -3.0, 0, 1}, {-28.0, -3.0, 0, 1}, {-27.0, -3.0, 0, 1},
+
176 {-26.0, -3.0, 0, 1}, {-25.0, -3.0, 0, 1}, {-24.0, -3.0, 0, 1}, {-23.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1},
+
177 {-20.0, -3.0, 0, 1}, {-19.0, -3.0, 0, 1}, {-18.0, -3.0, 0, 1}, {-12.0, -3.0, 0, 1}, {-11.0, -3.0, 0, 1}, {-10.0, -3.0, 0, 1},
+
178 {-9.0, -3.0, 0, 1}, {8.0, -3.0, 0, 1}, {9.0, -3.0, 0, 1}, {10.0, -3.0, 0, 1}, {11.0, -3.0, 0, 1}, {17.0, -3.0, 0, 1},
+
179 {18.0, -3.0, 0, 1}, {19.0, -3.0, 0, 1}, {20.0, -3.0, 0, 1}, {21.0, -3.0, 0, 1}, {22.0, -3.0, 0, 1}, {23.0, -3.0, 0, 1},
+
180 {24.0, -3.0, 0, 1}, {25.0, -3.0, 0, 1}, {26.0, -3.0, 0, 1}, {27.0, -3.0, 0, 1}, {28.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
181 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-29.0, -2.0, 0, 1}, {-28.0, -2.0, 0, 1},
+
182 {-27.0, -2.0, 0, 1}, {-26.0, -2.0, 0, 1}, {-25.0, -2.0, 0, 1}, {-24.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1}, {-22.0, -2.0, 0, 1},
+
183 {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-19.0, -2.0, 0, 1}, {-18.0, -2.0, 0, 1}, {-12.0, -2.0, 0, 1}, {-11.0, -2.0, 0, 1},
+
184 {-10.0, -2.0, 0, 1}, {-9.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {10.0, -2.0, 0, 1}, {11.0, -2.0, 0, 1},
+
185 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
186 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {25.0, -2.0, 0, 1}, {26.0, -2.0, 0, 1}, {27.0, -2.0, 0, 1}, {28.0, -2.0, 0, 1},
+
187 {29.0, -2.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-19.0, -1.0, 0, 1}, {-18.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1},
+
188 {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1}, {-9.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {10.0, -1.0, 0, 1},
+
189 {11.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {-21.0, 0.0, 0, 1},
+
190 {-20.0, 0.0, 0, 1}, {-19.0, 0.0, 0, 1}, {-18.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1}, {-10.0, 0.0, 0, 1},
+
191 {-9.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {10.0, 0.0, 0, 1}, {11.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1},
+
192 {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
193 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
194 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-20.0, 1.0, 0, 1}, {-19.0, 1.0, 0, 1}, {-18.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1},
+
195 {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {8.0, 1.0, 0, 1}, {9.0, 1.0, 0, 1}, {10.0, 1.0, 0, 1},
+
196 {11.0, 1.0, 0, 1}, {17.0, 1.0, 0, 1}, {18.0, 1.0, 0, 1}, {19.0, 1.0, 0, 1}, {20.0, 1.0, 0, 1}, {21.0, 1.0, 0, 1},
+
197 {22.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1}, {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {27.0, 1.0, 0, 1},
+
198 {28.0, 1.0, 0, 1}, {29.0, 1.0, 0, 1}, {30.0, 1.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
199 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
200 {-23.0, 2.0, 0, 1}, {-22.0, 2.0, 0, 1}, {-21.0, 2.0, 0, 1}, {-20.0, 2.0, 0, 1}, {-19.0, 2.0, 0, 1}, {-18.0, 2.0, 0, 1},
+
201 {-12.0, 2.0, 0, 1}, {-11.0, 2.0, 0, 1}, {-10.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1}, {8.0, 2.0, 0, 1}, {9.0, 2.0, 0, 1},
+
202 {10.0, 2.0, 0, 1}, {11.0, 2.0, 0, 1}, {17.0, 2.0, 0, 1}, {18.0, 2.0, 0, 1}, {19.0, 2.0, 0, 1}, {20.0, 2.0, 0, 1},
+
203 {21.0, 2.0, 0, 1}, {22.0, 2.0, 0, 1}, {23.0, 2.0, 0, 1}, {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1},
+
204 {27.0, 2.0, 0, 1}, {28.0, 2.0, 0, 1}, {29.0, 2.0, 0, 1}, {30.0, 2.0, 0, 1}, {31.0, 2.0, 0, 1}, {-32.0, 3.0, 0, 1},
+
205 {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-29.0, 3.0, 0, 1}, {-28.0, 3.0, 0, 1}, {-27.0, 3.0, 0, 1}, {-26.0, 3.0, 0, 1},
+
206 {-25.0, 3.0, 0, 1}, {-24.0, 3.0, 0, 1}, {-23.0, 3.0, 0, 1}, {-22.0, 3.0, 0, 1}, {-21.0, 3.0, 0, 1}, {-20.0, 3.0, 0, 1},
+
207 {-19.0, 3.0, 0, 1}, {-18.0, 3.0, 0, 1}, {-12.0, 3.0, 0, 1}, {-11.0, 3.0, 0, 1}, {-10.0, 3.0, 0, 1}, {-9.0, 3.0, 0, 1},
+
208 {8.0, 3.0, 0, 1}, {9.0, 3.0, 0, 1}, {10.0, 3.0, 0, 1}, {11.0, 3.0, 0, 1}, {17.0, 3.0, 0, 1}, {18.0, 3.0, 0, 1},
+
209 {19.0, 3.0, 0, 1}, {20.0, 3.0, 0, 1}, {21.0, 3.0, 0, 1}, {22.0, 3.0, 0, 1}, {23.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1},
+
210 {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1}, {27.0, 3.0, 0, 1}, {28.0, 3.0, 0, 1}, {29.0, 3.0, 0, 1}, {30.0, 3.0, 0, 1},
+
211 {31.0, 3.0, 0, 1}, {-32.0, 4.0, 0, 1}, {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-29.0, 4.0, 0, 1}, {-28.0, 4.0, 0, 1},
+
212 {-27.0, 4.0, 0, 1}, {-26.0, 4.0, 0, 1}, {-25.0, 4.0, 0, 1}, {-24.0, 4.0, 0, 1}, {-23.0, 4.0, 0, 1}, {-22.0, 4.0, 0, 1},
+
213 {-21.0, 4.0, 0, 1}, {-20.0, 4.0, 0, 1}, {-19.0, 4.0, 0, 1}, {-18.0, 4.0, 0, 1}, {-12.0, 4.0, 0, 1}, {-11.0, 4.0, 0, 1},
+
214 {-10.0, 4.0, 0, 1}, {-9.0, 4.0, 0, 1}, {8.0, 4.0, 0, 1}, {9.0, 4.0, 0, 1}, {10.0, 4.0, 0, 1}, {11.0, 4.0, 0, 1},
+
215 {17.0, 4.0, 0, 1}, {18.0, 4.0, 0, 1}, {19.0, 4.0, 0, 1}, {20.0, 4.0, 0, 1}, {21.0, 4.0, 0, 1}, {22.0, 4.0, 0, 1},
+
216 {23.0, 4.0, 0, 1}, {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {27.0, 4.0, 0, 1}, {28.0, 4.0, 0, 1},
+
217 {29.0, 4.0, 0, 1}, {30.0, 4.0, 0, 1}, {31.0, 4.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-29.0, 5.0, 0, 1},
+
218 {-28.0, 5.0, 0, 1}, {-27.0, 5.0, 0, 1}, {-26.0, 5.0, 0, 1}, {-25.0, 5.0, 0, 1}, {-24.0, 5.0, 0, 1}, {-23.0, 5.0, 0, 1},
+
219 {-22.0, 5.0, 0, 1}, {-21.0, 5.0, 0, 1}, {-20.0, 5.0, 0, 1}, {-19.0, 5.0, 0, 1}, {-18.0, 5.0, 0, 1}, {-12.0, 5.0, 0, 1},
+
220 {-11.0, 5.0, 0, 1}, {-10.0, 5.0, 0, 1}, {-9.0, 5.0, 0, 1}, {8.0, 5.0, 0, 1}, {9.0, 5.0, 0, 1}, {10.0, 5.0, 0, 1},
+
221 {11.0, 5.0, 0, 1}, {17.0, 5.0, 0, 1}, {18.0, 5.0, 0, 1}, {19.0, 5.0, 0, 1}, {20.0, 5.0, 0, 1}, {21.0, 5.0, 0, 1},
+
222 {22.0, 5.0, 0, 1}, {23.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1}, {27.0, 5.0, 0, 1},
+
223 {28.0, 5.0, 0, 1}, {29.0, 5.0, 0, 1}, {30.0, 5.0, 0, 1}, {-21.0, 6.0, 0, 1}, {-20.0, 6.0, 0, 1}, {-19.0, 6.0, 0, 1},
+
224 {-18.0, 6.0, 0, 1}, {-12.0, 6.0, 0, 1}, {-11.0, 6.0, 0, 1}, {-10.0, 6.0, 0, 1}, {-9.0, 6.0, 0, 1}, {8.0, 6.0, 0, 1},
+
225 {9.0, 6.0, 0, 1}, {10.0, 6.0, 0, 1}, {11.0, 6.0, 0, 1}, {17.0, 6.0, 0, 1}, {18.0, 6.0, 0, 1}, {19.0, 6.0, 0, 1},
+
226 {20.0, 6.0, 0, 1}, {-21.0, 7.0, 0, 1}, {-20.0, 7.0, 0, 1}, {-19.0, 7.0, 0, 1}, {-18.0, 7.0, 0, 1}, {-12.0, 7.0, 0, 1},
+
227 {-11.0, 7.0, 0, 1}, {-10.0, 7.0, 0, 1}, {-9.0, 7.0, 0, 1}, {8.0, 7.0, 0, 1}, {9.0, 7.0, 0, 1}, {10.0, 7.0, 0, 1},
+
228 {11.0, 7.0, 0, 1}, {17.0, 7.0, 0, 1}, {18.0, 7.0, 0, 1}, {19.0, 7.0, 0, 1}, {20.0, 7.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
229 {-30.0, 8.0, 0, 1}, {-29.0, 8.0, 0, 1}, {-28.0, 8.0, 0, 1}, {-27.0, 8.0, 0, 1}, {-26.0, 8.0, 0, 1}, {-25.0, 8.0, 0, 1},
+
230 {-24.0, 8.0, 0, 1}, {-23.0, 8.0, 0, 1}, {-22.0, 8.0, 0, 1}, {-21.0, 8.0, 0, 1}, {-20.0, 8.0, 0, 1}, {-19.0, 8.0, 0, 1},
+
231 {-18.0, 8.0, 0, 1}, {-12.0, 8.0, 0, 1}, {-11.0, 8.0, 0, 1}, {-10.0, 8.0, 0, 1}, {-9.0, 8.0, 0, 1}, {-8.0, 8.0, 0, 1},
+
232 {-7.0, 8.0, 0, 1}, {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-3.0, 8.0, 0, 1}, {-2.0, 8.0, 0, 1},
+
233 {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1}, {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1},
+
234 {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1}, {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1},
+
235 {11.0, 8.0, 0, 1}, {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1},
+
236 {22.0, 8.0, 0, 1}, {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {27.0, 8.0, 0, 1},
+
237 {28.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-29.0, 9.0, 0, 1},
+
238 {-28.0, 9.0, 0, 1}, {-27.0, 9.0, 0, 1}, {-26.0, 9.0, 0, 1}, {-25.0, 9.0, 0, 1}, {-24.0, 9.0, 0, 1}, {-23.0, 9.0, 0, 1},
+
239 {-22.0, 9.0, 0, 1}, {-21.0, 9.0, 0, 1}, {-20.0, 9.0, 0, 1}, {-19.0, 9.0, 0, 1}, {-18.0, 9.0, 0, 1}, {-12.0, 9.0, 0, 1},
+
240 {-11.0, 9.0, 0, 1}, {-10.0, 9.0, 0, 1}, {-9.0, 9.0, 0, 1}, {-8.0, 9.0, 0, 1}, {-7.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1},
+
241 {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {-3.0, 9.0, 0, 1}, {-2.0, 9.0, 0, 1}, {-1.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1},
+
242 {1.0, 9.0, 0, 1}, {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1},
+
243 {7.0, 9.0, 0, 1}, {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {11.0, 9.0, 0, 1}, {17.0, 9.0, 0, 1},
+
244 {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1}, {23.0, 9.0, 0, 1},
+
245 {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {26.0, 9.0, 0, 1}, {27.0, 9.0, 0, 1}, {28.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1},
+
246 {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1}, {-29.0, 10.0, 0, 1},
+
247 {-28.0, 10.0, 0, 1}, {-27.0, 10.0, 0, 1}, {-26.0, 10.0, 0, 1}, {-25.0, 10.0, 0, 1}, {-24.0, 10.0, 0, 1}, {-23.0, 10.0, 0, 1},
+
248 {-22.0, 10.0, 0, 1}, {-21.0, 10.0, 0, 1}, {-20.0, 10.0, 0, 1}, {-19.0, 10.0, 0, 1}, {-18.0, 10.0, 0, 1}, {-12.0, 10.0, 0, 1},
+
249 {-11.0, 10.0, 0, 1}, {-10.0, 10.0, 0, 1}, {-9.0, 10.0, 0, 1}, {-8.0, 10.0, 0, 1}, {-7.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1},
+
250 {-5.0, 10.0, 0, 1}, {-4.0, 10.0, 0, 1}, {-3.0, 10.0, 0, 1}, {-2.0, 10.0, 0, 1}, {-1.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1},
+
251 {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1}, {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1},
+
252 {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1}, {11.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1},
+
253 {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1}, {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1},
+
254 {24.0, 10.0, 0, 1}, {25.0, 10.0, 0, 1}, {26.0, 10.0, 0, 1}, {27.0, 10.0, 0, 1}, {28.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
255 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {-32.0, 11.0, 0, 1}, {-31.0, 11.0, 0, 1}, {-30.0, 11.0, 0, 1}, {-29.0, 11.0, 0, 1},
+
256 {-28.0, 11.0, 0, 1}, {-27.0, 11.0, 0, 1}, {-26.0, 11.0, 0, 1}, {-25.0, 11.0, 0, 1}, {-24.0, 11.0, 0, 1}, {-23.0, 11.0, 0, 1},
+
257 {-22.0, 11.0, 0, 1}, {-21.0, 11.0, 0, 1}, {-20.0, 11.0, 0, 1}, {-19.0, 11.0, 0, 1}, {-18.0, 11.0, 0, 1}, {-12.0, 11.0, 0, 1},
+
258 {-11.0, 11.0, 0, 1}, {-10.0, 11.0, 0, 1}, {-9.0, 11.0, 0, 1}, {-8.0, 11.0, 0, 1}, {-7.0, 11.0, 0, 1}, {-6.0, 11.0, 0, 1},
+
259 {-5.0, 11.0, 0, 1}, {-4.0, 11.0, 0, 1}, {-3.0, 11.0, 0, 1}, {-2.0, 11.0, 0, 1}, {-1.0, 11.0, 0, 1}, {0.0, 11.0, 0, 1},
+
260 {1.0, 11.0, 0, 1}, {2.0, 11.0, 0, 1}, {3.0, 11.0, 0, 1}, {4.0, 11.0, 0, 1}, {5.0, 11.0, 0, 1}, {6.0, 11.0, 0, 1},
+
261 {7.0, 11.0, 0, 1}, {8.0, 11.0, 0, 1}, {9.0, 11.0, 0, 1}, {10.0, 11.0, 0, 1}, {11.0, 11.0, 0, 1}, {17.0, 11.0, 0, 1},
+
262 {18.0, 11.0, 0, 1}, {19.0, 11.0, 0, 1}, {20.0, 11.0, 0, 1}, {21.0, 11.0, 0, 1}, {22.0, 11.0, 0, 1}, {23.0, 11.0, 0, 1},
+
263 {24.0, 11.0, 0, 1}, {25.0, 11.0, 0, 1}, {26.0, 11.0, 0, 1}, {27.0, 11.0, 0, 1}, {28.0, 11.0, 0, 1}, {29.0, 11.0, 0, 1},
+
264 {30.0, 11.0, 0, 1}, {31.0, 11.0, 0, 1}, {-31.0, 12.0, 0, 1}, {-30.0, 12.0, 0, 1}, {-29.0, 12.0, 0, 1}, {-28.0, 12.0, 0, 1},
+
265 {-27.0, 12.0, 0, 1}, {-26.0, 12.0, 0, 1}, {-25.0, 12.0, 0, 1}, {-24.0, 12.0, 0, 1}, {-23.0, 12.0, 0, 1}, {-22.0, 12.0, 0, 1},
+
266 {-21.0, 12.0, 0, 1}, {-20.0, 12.0, 0, 1}, {-19.0, 12.0, 0, 1}, {-18.0, 12.0, 0, 1}, {17.0, 12.0, 0, 1}, {18.0, 12.0, 0, 1},
+
267 {19.0, 12.0, 0, 1}, {20.0, 12.0, 0, 1}, {21.0, 12.0, 0, 1}, {22.0, 12.0, 0, 1}, {23.0, 12.0, 0, 1}, {24.0, 12.0, 0, 1},
+
268 {25.0, 12.0, 0, 1}, {26.0, 12.0, 0, 1}, {27.0, 12.0, 0, 1}, {28.0, 12.0, 0, 1}, {29.0, 12.0, 0, 1}, {30.0, 12.0, 0, 1},
+
269 {-21.0, 13.0, 0, 1}, {-20.0, 13.0, 0, 1}, {-19.0, 13.0, 0, 1}, {-18.0, 13.0, 0, 1}, {17.0, 13.0, 0, 1}, {18.0, 13.0, 0, 1},
+
270 {19.0, 13.0, 0, 1}, {20.0, 13.0, 0, 1}, {-21.0, 14.0, 0, 1}, {-20.0, 14.0, 0, 1}, {-19.0, 14.0, 0, 1}, {-18.0, 14.0, 0, 1},
+
271 {17.0, 14.0, 0, 1}, {18.0, 14.0, 0, 1}, {19.0, 14.0, 0, 1}, {20.0, 14.0, 0, 1}, {-21.0, 15.0, 0, 1}, {-20.0, 15.0, 0, 1},
+
272 {-19.0, 15.0, 0, 1}, {-18.0, 15.0, 0, 1}, {17.0, 15.0, 0, 1}, {18.0, 15.0, 0, 1}, {19.0, 15.0, 0, 1}, {20.0, 15.0, 0, 1},
+
273 {-21.0, 16.0, 0, 1}, {-20.0, 16.0, 0, 1}, {-19.0, 16.0, 0, 1}, {-18.0, 16.0, 0, 1}, {17.0, 16.0, 0, 1}, {18.0, 16.0, 0, 1},
+
274 {19.0, 16.0, 0, 1}, {20.0, 16.0, 0, 1}, {-21.0, 17.0, 0, 1}, {-20.0, 17.0, 0, 1}, {-19.0, 17.0, 0, 1}, {-18.0, 17.0, 0, 1},
+
275 {-17.0, 17.0, 0, 1}, {-16.0, 17.0, 0, 1}, {-15.0, 17.0, 0, 1}, {-14.0, 17.0, 0, 1}, {-13.0, 17.0, 0, 1}, {-12.0, 17.0, 0, 1},
+
276 {-11.0, 17.0, 0, 1}, {-10.0, 17.0, 0, 1}, {-9.0, 17.0, 0, 1}, {-8.0, 17.0, 0, 1}, {-7.0, 17.0, 0, 1}, {-6.0, 17.0, 0, 1},
+
277 {-5.0, 17.0, 0, 1}, {-4.0, 17.0, 0, 1}, {-3.0, 17.0, 0, 1}, {-2.0, 17.0, 0, 1}, {-1.0, 17.0, 0, 1}, {0.0, 17.0, 0, 1},
+
278 {1.0, 17.0, 0, 1}, {2.0, 17.0, 0, 1}, {3.0, 17.0, 0, 1}, {4.0, 17.0, 0, 1}, {5.0, 17.0, 0, 1}, {6.0, 17.0, 0, 1},
+
279 {7.0, 17.0, 0, 1}, {8.0, 17.0, 0, 1}, {9.0, 17.0, 0, 1}, {10.0, 17.0, 0, 1}, {11.0, 17.0, 0, 1}, {12.0, 17.0, 0, 1},
+
280 {13.0, 17.0, 0, 1}, {14.0, 17.0, 0, 1}, {15.0, 17.0, 0, 1}, {16.0, 17.0, 0, 1}, {17.0, 17.0, 0, 1}, {18.0, 17.0, 0, 1},
+
281 {19.0, 17.0, 0, 1}, {20.0, 17.0, 0, 1}, {-21.0, 18.0, 0, 1}, {-20.0, 18.0, 0, 1}, {-19.0, 18.0, 0, 1}, {-18.0, 18.0, 0, 1},
+
282 {-17.0, 18.0, 0, 1}, {-16.0, 18.0, 0, 1}, {-15.0, 18.0, 0, 1}, {-14.0, 18.0, 0, 1}, {-13.0, 18.0, 0, 1}, {-12.0, 18.0, 0, 1},
+
283 {-11.0, 18.0, 0, 1}, {-10.0, 18.0, 0, 1}, {-9.0, 18.0, 0, 1}, {-8.0, 18.0, 0, 1}, {-7.0, 18.0, 0, 1}, {-6.0, 18.0, 0, 1},
+
284 {-5.0, 18.0, 0, 1}, {-4.0, 18.0, 0, 1}, {-3.0, 18.0, 0, 1}, {-2.0, 18.0, 0, 1}, {-1.0, 18.0, 0, 1}, {0.0, 18.0, 0, 1},
+
285 {1.0, 18.0, 0, 1}, {2.0, 18.0, 0, 1}, {3.0, 18.0, 0, 1}, {4.0, 18.0, 0, 1}, {5.0, 18.0, 0, 1}, {6.0, 18.0, 0, 1},
+
286 {7.0, 18.0, 0, 1}, {8.0, 18.0, 0, 1}, {9.0, 18.0, 0, 1}, {10.0, 18.0, 0, 1}, {11.0, 18.0, 0, 1}, {12.0, 18.0, 0, 1},
+
287 {13.0, 18.0, 0, 1}, {14.0, 18.0, 0, 1}, {15.0, 18.0, 0, 1}, {16.0, 18.0, 0, 1}, {17.0, 18.0, 0, 1}, {18.0, 18.0, 0, 1},
+
288 {19.0, 18.0, 0, 1}, {20.0, 18.0, 0, 1}, {-21.0, 19.0, 0, 1}, {-20.0, 19.0, 0, 1}, {-19.0, 19.0, 0, 1}, {-18.0, 19.0, 0, 1},
+
289 {-17.0, 19.0, 0, 1}, {-16.0, 19.0, 0, 1}, {-15.0, 19.0, 0, 1}, {-14.0, 19.0, 0, 1}, {-13.0, 19.0, 0, 1}, {-12.0, 19.0, 0, 1},
+
290 {-11.0, 19.0, 0, 1}, {-10.0, 19.0, 0, 1}, {-9.0, 19.0, 0, 1}, {-8.0, 19.0, 0, 1}, {-7.0, 19.0, 0, 1}, {-6.0, 19.0, 0, 1},
+
291 {-5.0, 19.0, 0, 1}, {-4.0, 19.0, 0, 1}, {-3.0, 19.0, 0, 1}, {-2.0, 19.0, 0, 1}, {-1.0, 19.0, 0, 1}, {0.0, 19.0, 0, 1},
+
292 {1.0, 19.0, 0, 1}, {2.0, 19.0, 0, 1}, {3.0, 19.0, 0, 1}, {4.0, 19.0, 0, 1}, {5.0, 19.0, 0, 1}, {6.0, 19.0, 0, 1},
+
293 {7.0, 19.0, 0, 1}, {8.0, 19.0, 0, 1}, {9.0, 19.0, 0, 1}, {10.0, 19.0, 0, 1}, {11.0, 19.0, 0, 1}, {12.0, 19.0, 0, 1},
+
294 {13.0, 19.0, 0, 1}, {14.0, 19.0, 0, 1}, {15.0, 19.0, 0, 1}, {16.0, 19.0, 0, 1}, {17.0, 19.0, 0, 1}, {18.0, 19.0, 0, 1},
+
295 {19.0, 19.0, 0, 1}, {20.0, 19.0, 0, 1}, {-21.0, 20.0, 0, 1}, {-20.0, 20.0, 0, 1}, {-19.0, 20.0, 0, 1}, {-18.0, 20.0, 0, 1},
+
296 {-17.0, 20.0, 0, 1}, {-16.0, 20.0, 0, 1}, {-15.0, 20.0, 0, 1}, {-14.0, 20.0, 0, 1}, {-13.0, 20.0, 0, 1}, {-12.0, 20.0, 0, 1},
+
297 {-11.0, 20.0, 0, 1}, {-10.0, 20.0, 0, 1}, {-9.0, 20.0, 0, 1}, {-8.0, 20.0, 0, 1}, {-7.0, 20.0, 0, 1}, {-6.0, 20.0, 0, 1},
+
298 {-5.0, 20.0, 0, 1}, {-4.0, 20.0, 0, 1}, {-3.0, 20.0, 0, 1}, {-2.0, 20.0, 0, 1}, {-1.0, 20.0, 0, 1}, {0.0, 20.0, 0, 1},
+
299 {1.0, 20.0, 0, 1}, {2.0, 20.0, 0, 1}, {3.0, 20.0, 0, 1}, {4.0, 20.0, 0, 1}, {5.0, 20.0, 0, 1}, {6.0, 20.0, 0, 1},
+
300 {7.0, 20.0, 0, 1}, {8.0, 20.0, 0, 1}, {9.0, 20.0, 0, 1}, {10.0, 20.0, 0, 1}, {11.0, 20.0, 0, 1}, {12.0, 20.0, 0, 1},
+
301 {13.0, 20.0, 0, 1}, {14.0, 20.0, 0, 1}, {15.0, 20.0, 0, 1}, {16.0, 20.0, 0, 1}, {17.0, 20.0, 0, 1}, {18.0, 20.0, 0, 1},
+
302 {19.0, 20.0, 0, 1}, {20.0, 20.0, 0, 1}, {-13.0, 21.0, 0, 1}, {-12.0, 21.0, 0, 1}, {-11.0, 21.0, 0, 1}, {-10.0, 21.0, 0, 1},
+
303 {-6.0, 21.0, 0, 1}, {-5.0, 21.0, 0, 1}, {-4.0, 21.0, 0, 1}, {-3.0, 21.0, 0, 1}, {-2.0, 21.0, 0, 1}, {1.0, 21.0, 0, 1},
+
304 {2.0, 21.0, 0, 1}, {3.0, 21.0, 0, 1}, {4.0, 21.0, 0, 1}, {5.0, 21.0, 0, 1}, {8.0, 21.0, 0, 1}, {9.0, 21.0, 0, 1},
+
305 {10.0, 21.0, 0, 1}, {11.0, 21.0, 0, 1}, {12.0, 21.0, 0, 1}, {-13.0, 22.0, 0, 1}, {-12.0, 22.0, 0, 1}, {-11.0, 22.0, 0, 1},
+
306 {-10.0, 22.0, 0, 1}, {-6.0, 22.0, 0, 1}, {-5.0, 22.0, 0, 1}, {-4.0, 22.0, 0, 1}, {-3.0, 22.0, 0, 1}, {-2.0, 22.0, 0, 1},
+
307 {1.0, 22.0, 0, 1}, {2.0, 22.0, 0, 1}, {3.0, 22.0, 0, 1}, {4.0, 22.0, 0, 1}, {5.0, 22.0, 0, 1}, {8.0, 22.0, 0, 1},
+
308 {9.0, 22.0, 0, 1}, {10.0, 22.0, 0, 1}, {11.0, 22.0, 0, 1}, {12.0, 22.0, 0, 1}, {-13.0, 23.0, 0, 1}, {-12.0, 23.0, 0, 1},
+
309 {-11.0, 23.0, 0, 1}, {-10.0, 23.0, 0, 1}, {-6.0, 23.0, 0, 1}, {-5.0, 23.0, 0, 1}, {-4.0, 23.0, 0, 1}, {-3.0, 23.0, 0, 1},
+
310 {-2.0, 23.0, 0, 1}, {1.0, 23.0, 0, 1}, {2.0, 23.0, 0, 1}, {3.0, 23.0, 0, 1}, {4.0, 23.0, 0, 1}, {5.0, 23.0, 0, 1},
+
311 {8.0, 23.0, 0, 1}, {9.0, 23.0, 0, 1}, {10.0, 23.0, 0, 1}, {11.0, 23.0, 0, 1}, {12.0, 23.0, 0, 1}, {-13.0, 24.0, 0, 1},
+
312 {-12.0, 24.0, 0, 1}, {-11.0, 24.0, 0, 1}, {-10.0, 24.0, 0, 1}, {-6.0, 24.0, 0, 1}, {-5.0, 24.0, 0, 1}, {-4.0, 24.0, 0, 1},
+
313 {-3.0, 24.0, 0, 1}, {-2.0, 24.0, 0, 1}, {1.0, 24.0, 0, 1}, {2.0, 24.0, 0, 1}, {3.0, 24.0, 0, 1}, {4.0, 24.0, 0, 1},
+
314 {5.0, 24.0, 0, 1}, {8.0, 24.0, 0, 1}, {9.0, 24.0, 0, 1}, {10.0, 24.0, 0, 1}, {11.0, 24.0, 0, 1}, {12.0, 24.0, 0, 1},
+
315 {-13.0, 25.0, 0, 1}, {-12.0, 25.0, 0, 1}, {-11.0, 25.0, 0, 1}, {-10.0, 25.0, 0, 1}, {-6.0, 25.0, 0, 1}, {-5.0, 25.0, 0, 1},
+
316 {-4.0, 25.0, 0, 1}, {-3.0, 25.0, 0, 1}, {-2.0, 25.0, 0, 1}, {1.0, 25.0, 0, 1}, {2.0, 25.0, 0, 1}, {3.0, 25.0, 0, 1},
+
317 {4.0, 25.0, 0, 1}, {5.0, 25.0, 0, 1}, {8.0, 25.0, 0, 1}, {9.0, 25.0, 0, 1}, {10.0, 25.0, 0, 1}, {11.0, 25.0, 0, 1},
+
318 {12.0, 25.0, 0, 1}, {-13.0, 26.0, 0, 1}, {-12.0, 26.0, 0, 1}, {-11.0, 26.0, 0, 1}, {-10.0, 26.0, 0, 1}, {-6.0, 26.0, 0, 1},
+
319 {-5.0, 26.0, 0, 1}, {-4.0, 26.0, 0, 1}, {-3.0, 26.0, 0, 1}, {-2.0, 26.0, 0, 1}, {1.0, 26.0, 0, 1}, {2.0, 26.0, 0, 1},
+
320 {3.0, 26.0, 0, 1}, {4.0, 26.0, 0, 1}, {5.0, 26.0, 0, 1}, {8.0, 26.0, 0, 1}, {9.0, 26.0, 0, 1}, {10.0, 26.0, 0, 1},
+
321 {11.0, 26.0, 0, 1}, {12.0, 26.0, 0, 1}, {-13.0, 27.0, 0, 1}, {-12.0, 27.0, 0, 1}, {-11.0, 27.0, 0, 1}, {-10.0, 27.0, 0, 1},
+
322 {-6.0, 27.0, 0, 1}, {-5.0, 27.0, 0, 1}, {-4.0, 27.0, 0, 1}, {-3.0, 27.0, 0, 1}, {-2.0, 27.0, 0, 1}, {1.0, 27.0, 0, 1},
+
323 {2.0, 27.0, 0, 1}, {3.0, 27.0, 0, 1}, {4.0, 27.0, 0, 1}, {5.0, 27.0, 0, 1}, {8.0, 27.0, 0, 1}, {9.0, 27.0, 0, 1},
+
324 {10.0, 27.0, 0, 1}, {11.0, 27.0, 0, 1}, {12.0, 27.0, 0, 1}, {-13.0, 28.0, 0, 1}, {-12.0, 28.0, 0, 1}, {-11.0, 28.0, 0, 1},
+
325 {-10.0, 28.0, 0, 1}, {-6.0, 28.0, 0, 1}, {-5.0, 28.0, 0, 1}, {-4.0, 28.0, 0, 1}, {-3.0, 28.0, 0, 1}, {-2.0, 28.0, 0, 1},
+
326 {1.0, 28.0, 0, 1}, {2.0, 28.0, 0, 1}, {3.0, 28.0, 0, 1}, {4.0, 28.0, 0, 1}, {5.0, 28.0, 0, 1}, {8.0, 28.0, 0, 1},
+
327 {9.0, 28.0, 0, 1}, {10.0, 28.0, 0, 1}, {11.0, 28.0, 0, 1}, {12.0, 28.0, 0, 1}, {-13.0, 29.0, 0, 1}, {-12.0, 29.0, 0, 1},
+
328 {-11.0, 29.0, 0, 1}, {-10.0, 29.0, 0, 1}, {-6.0, 29.0, 0, 1}, {-5.0, 29.0, 0, 1}, {-4.0, 29.0, 0, 1}, {-3.0, 29.0, 0, 1},
+
329 {-2.0, 29.0, 0, 1}, {1.0, 29.0, 0, 1}, {2.0, 29.0, 0, 1}, {3.0, 29.0, 0, 1}, {4.0, 29.0, 0, 1}, {5.0, 29.0, 0, 1},
+
330 {8.0, 29.0, 0, 1}, {9.0, 29.0, 0, 1}, {10.0, 29.0, 0, 1}, {11.0, 29.0, 0, 1}, {12.0, 29.0, 0, 1}, {-13.0, 30.0, 0, 1},
+
331 {-12.0, 30.0, 0, 1}, {-11.0, 30.0, 0, 1}, {-10.0, 30.0, 0, 1}, {-6.0, 30.0, 0, 1}, {-5.0, 30.0, 0, 1}, {-4.0, 30.0, 0, 1},
+
332 {-3.0, 30.0, 0, 1}, {1.0, 30.0, 0, 1}, {2.0, 30.0, 0, 1}, {3.0, 30.0, 0, 1}, {4.0, 30.0, 0, 1}, {5.0, 30.0, 0, 1},
+
333 {9.0, 30.0, 0, 1}, {10.0, 30.0, 0, 1}, {11.0, 30.0, 0, 1}, {12.0, 30.0, 0, 1}, {-12.0, 31.0, 0, 1}, {-11.0, 31.0, 0, 1},
+
334 {-10.0, 31.0, 0, 1}, {-5.0, 31.0, 0, 1}, {-4.0, 31.0, 0, 1}, {-3.0, 31.0, 0, 1}, {2.0, 31.0, 0, 1}, {3.0, 31.0, 0, 1},
+
335 {4.0, 31.0, 0, 1}, {9.0, 31.0, 0, 1}, {10.0, 31.0, 0, 1}, {11.0, 31.0, 0, 1}
+
336};
+
337
+
338#endif // CONFIG_3D_OBJECT_CUSTOM
+ +
const float image_to_3d_matrix_custom[1732][4]
+
const uint8_t image_to_bmp_array_custom[512]
+
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html new file mode 100644 index 0000000..ba3c309 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html @@ -0,0 +1,180 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image_to_3d_matrix.h File Reference
+
+
+
#include <stdint.h>
+#include "sdkconfig.h"
+
+Include dependency graph for applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_to_bmp_array_custom [512]
const float image_to_3d_matrix_custom [1732][4]
+

Variable Documentation

+ +

◆ image_to_3d_matrix_custom

+ +
+
+ + + + + +
+ + + + +
const float image_to_3d_matrix_custom[1732][4]
+
+extern
+
+
+ +

◆ image_to_bmp_array_custom

+ +
+
+ + + + + +
+ + + + +
const uint8_t image_to_bmp_array_custom[512]
+
+extern
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.js b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.js new file mode 100644 index 0000000..3c5f8c1 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.js @@ -0,0 +1,5 @@ +var applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h = +[ + [ "image_to_3d_matrix_custom", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html#a721fe700ee8e1b1734407b4c6c1b74d0", null ], + [ "image_to_bmp_array_custom", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html#adbd688e9067b26602a73dad45dd9c275", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.md5 new file mode 100644 index 0000000..83017db --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.md5 @@ -0,0 +1 @@ +7805ec9597f669c50caebade2a25863d \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.svg new file mode 100644 index 0000000..9013daa --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +image_to_3d_matrix.c + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl_org.svg new file mode 100644 index 0000000..2c799e4 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +image_to_3d_matrix.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.md5 new file mode 100644 index 0000000..94fcaac --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.md5 @@ -0,0 +1 @@ +4c0f14b797821d1a5a5519103ab1b445 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.svg new file mode 100644 index 0000000..7172da9 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl_org.svg new file mode 100644 index 0000000..6d44af1 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h_source.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h_source.html new file mode 100644 index 0000000..ed584f7 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h_source.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.h
+
+
+Go to the documentation of this file.
1// File generated by ImgTo3D.py
+
2// Image file converted to 3D matrix: cpu_logo.png
+
3
+
4#pragma once
+
5
+
6#include <stdint.h>
+
7#include "sdkconfig.h"
+
8
+
9#ifdef __cplusplus
+
10extern "C" {
+
11#endif
+
12
+
13extern const uint8_t image_to_bmp_array_custom[512];
+
14extern const float image_to_3d_matrix_custom[1732][4];
+
15
+
16#ifdef __cplusplus
+
17}
+
18#endif
+
const float image_to_3d_matrix_custom[1732][4]
+
const uint8_t image_to_bmp_array_custom[512]
+
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html new file mode 100644 index 0000000..8b4b5cf --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html @@ -0,0 +1,523 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics_support.cpp File Reference
+
+
+
#include <malloc.h>
+#include <math.h>
+#include "graphics_support.h"
+
+Include dependency graph for applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

void init_perspective_matrix (dspm::Mat &P_m)
 initialize perspective projection matrix
void update_perspective_matrix (dspm::Mat &P_m, float fov)
 update perspective matrix
void update_scaling_matrix (dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
 update scaling matrix
void update_translation_matrix (dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
 update translation matrix
void update_rotation_matrix (dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
 update rotation matrix
void print_matrix (dspm::Mat matrix)
 printf matrix to the terminal output
+

Function Documentation

+ +

◆ init_perspective_matrix()

+ +
+
+ + + + + + + +
void init_perspective_matrix (dspm::Mat & P_m)
+
+ +

initialize perspective projection matrix

+

Function initializes Mat class object holding perspective projection matrix.

+
Parameters
+ + +
P_mperspective projection matrix object from the Mat class
+
+
+ +

Definition at line 12 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
13{
+
14 const float fov = 90; // field of view in degrees
+
15 const float near = 0.0001;
+
16 const float far = 1;
+
17
+
18 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
19
+
20 // Initialize matrix to zero
+
21 for (int row = 0; row < P_m.rows; row++) {
+
22 for (int col = 0; col < P_m.cols; col++) {
+
23 P_m(row, col) = 0;
+
24 }
+
25 }
+
26
+
27 P_m(0, 0) = S;
+
28 P_m(1, 1) = S;
+
29 P_m(2, 2) = -far / (far - near);
+
30 P_m(3, 2) = (-far * near) / (far - near);
+
31 P_m(2, 3) = -1;
+
32 P_m(3, 3) = 1;
+
33}
+ +
int cols
Definition mat.h:34
+
int rows
Definition mat.h:33
+
+

References dspm::Mat::cols, DEG_TO_RAD, and dspm::Mat::rows.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ print_matrix()

+ +
+
+ + + + + + + +
void print_matrix (dspm::Mat matrix)
+
+ +

printf matrix to the terminal output

+

Print matrix for debug purposes

+
Parameters
+ + +
matrixmatrix to be printed
+
+
+ +

Definition at line 105 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
106{
+
107 for (int rows = 0; rows < matrix.rows; rows++) {
+
108 for (int cols = 0; cols < matrix.cols; cols++) {
+
109 std::cout << matrix(rows, cols) << ", \t";
+
110 }
+
111 std::cout << std::endl;
+
112 }
+
113 std::cout << std::endl << std::endl;
+
114}
+
+

References dspm::Mat::cols, and dspm::Mat::rows.

+ +
+
+ +

◆ update_perspective_matrix()

+ +
+
+ + + + + + + + + + + +
void update_perspective_matrix (dspm::Mat & P_m,
float fov )
+
+ +

update perspective matrix

+

Function updates perspective matrix with a new value of field of view

+
Parameters
+ + + +
P_mperspective projection matrix object from the Mat class
fovfield of view in degrees
+
+
+ +

Definition at line 35 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
36{
+
37 const float near = 0.0001;
+
38 const float far = 1;
+
39
+
40 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
41
+
42 // Initialize matrix to zero
+
43 for (int row = 0; row < P_m.rows; row++) {
+
44 for (int col = 0; col < P_m.cols; col++) {
+
45 P_m(row, col) = 0;
+
46 }
+
47 }
+
48
+
49 P_m(0, 0) = S;
+
50 P_m(1, 1) = S;
+
51 P_m(2, 2) = -far / (far - near);
+
52 P_m(3, 2) = (-far * near) / (far - near);
+
53 P_m(2, 3) = -1;
+
54 P_m(3, 3) = 1;
+
55
+
56 P_m(3, 0) = (float)SSD1606_X_CENTER;
+
57 P_m(3, 1) = (float)SSD1606_Y_CENTER;
+
58}
+ + +
+

References dspm::Mat::cols, DEG_TO_RAD, dspm::Mat::rows, SSD1606_X_CENTER, and SSD1606_Y_CENTER.

+ +

Referenced by draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image(), get_pressure_task(), get_pressure_task(), get_pressure_task(), get_pressure_task(), kalman_filter_task(), kalman_filter_task(), kalman_filter_task(), and kalman_filter_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ update_rotation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void update_rotation_matrix (dspm::Mat & T_m,
float rot_x,
float rot_y,
float rot_z )
+
+ +

update rotation matrix

+

Function updates rotation part of the tranformation matrix

+
Parameters
+ + + + + +
T_mtransformation matrix object from the Mat class
rot_xrotation angle for x direction of the vector
rot_yrotation angle for y direction of the vector
rot_zrotation angle for z direction of the vector
+
+
+ +

Definition at line 87 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
88{
+
89 dspm::Mat rotation_data(3, 1); // matrix(3x1) that holds x, y, z rotation data
+
90 rotation_data(0, 0) = DEG_TO_RAD * rot_x; // rotation data x
+
91 rotation_data(1, 0) = DEG_TO_RAD * rot_y; // rotation data y
+
92 rotation_data(2, 0) = DEG_TO_RAD * rot_z; // rotation data z
+
93
+
94 // Create and populate rotation matrix R(3x3). Then inverse it
+
95 dspm::Mat R = ekf::eul2rotm(rotation_data.data).t();
+
96
+
97 // Enlarge rotation matrix from 3x3 to 4x4
+
98 for (int row = 0; row < R.rows; row++) { // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
99 for (int col = 0; col < R.cols; col++) {
+
100 T_m(row, col) = R(row, col);
+
101 }
+
102 }
+
103}
+
Matrix.
Definition mat.h:30
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
+

References dspm::Mat::cols, dspm::Mat::data, DEG_TO_RAD, ekf::eul2rotm(), dspm::Mat::rows, and dspm::Mat::t().

+ +

Referenced by draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), and draw_3d_image_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ update_scaling_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_scaling_matrix (dspm::Mat & T_m,
bool keep_diagonal,
float scale_x,
float scale_y,
float scale_z )
+
+ +

update scaling matrix

+

Function updates scaling part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
keep_diagonalif true: diagonal row of the transformation matrix T_m will be mulitplied with the scaling values if false: diagonal row of the transformation matrix T_m will be substituted with new scaling values
scale_xscaling value for x coordinate of the vector
scale_yscaling value for y coordinate of the vector
scale_zscaling value for z coordinate of the vector
+
+
+ +

Definition at line 60 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
61{
+
62 if (keep_diagonal) { // Multiply the diagonal values of the transformation matrix with the scaling
+
63 T_m(0, 0) *= scale_x; // (in case a rotation is already applied)
+
64 T_m(1, 1) *= scale_y;
+
65 T_m(2, 2) *= scale_z;
+
66 } else {
+
67 T_m(0, 0) = scale_x;
+
68 T_m(1, 1) = scale_y;
+
69 T_m(2, 2) = scale_z;
+
70 }
+
71}
+
+

Referenced by dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), draw_3d_image_task(), and draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ update_translation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_translation_matrix (dspm::Mat & T_m,
bool row,
float move_x,
float move_y,
float move_z )
+
+ +

update translation matrix

+

Function updates translation part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
rowif true: translation values will be placed to the 3rd row of the transformation matrix T_m if false: translation values will be placed to the 3rd col of the transformation matrix T_m
move_xtranslation value for x coordinate of the vector
move_ytranslation value for y coordinate of the vector
move_ztranslation value for z coordinate of the vector
+
+
+ +

Definition at line 73 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
74{
+
75 if (row) { // update values in 4-th row, if translation matrix is the second multiplier
+
76 T_m(3, 0) = move_x;
+
77 T_m(3, 1) = move_y;
+
78 T_m(3, 2) = move_z;
+
79 } else { // update values in 4-th collum, if translation matrix is the first multiplier
+
80 T_m(0, 3) = move_x;
+
81 T_m(1, 3) = move_y;
+
82 T_m(2, 3) = move_z;
+
83 }
+
84}
+
+

Referenced by dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), and draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js new file mode 100644 index 0000000..dda4e82 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js @@ -0,0 +1,9 @@ +var applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp = +[ + [ "init_perspective_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#ab5c13c601603a6d1b586b8ad9aa7ee98", null ], + [ "print_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a99863c33e6651eb83f8211d67ccc7f2e", null ], + [ "update_perspective_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a7361f858eac611923f3e090a2a4837c8", null ], + [ "update_rotation_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#abddf00a5f71e067190147e3ecdb49d3f", null ], + [ "update_scaling_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a7d3520bcf116c1dcaa67c1925e48b2d9", null ], + [ "update_translation_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a2f5dfc8616993b1485635978ec29513d", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.md5 new file mode 100644 index 0000000..3d88030 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.md5 @@ -0,0 +1 @@ +99ea1452f97cec0a4b809da6d9fe2646 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.svg new file mode 100644 index 0000000..7a92f9e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.svg @@ -0,0 +1,716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +graphics_support.cpp + + +Node1 + + +graphics_support.cpp + + + + + +Node2 + + +malloc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +graphics_support.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node4->Node7 + + + + + + + + +Node75 + + +ekf_imu13states.h + + + + + +Node4->Node75 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node5->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node5->Node17 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node5->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node5->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node5->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node5->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node5->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node5->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node5->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node5->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node5->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node5->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node5->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node5->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node5->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node5->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node5->Node74 + + + + + + + + +Node6->Node7 + + + + + + + + +Node15->Node7 + + + + + + + + +Node33->Node6 + + + + + + + + +Node35->Node33 + + + + + + + + +Node72->Node15 + + + + + + + + +Node74->Node15 + + + + + + + + +Node76 + + +ekf.h + + + + + +Node75->Node76 + + + + + + + + +Node76->Node3 + + + + + + + + +Node76->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl_org.svg new file mode 100644 index 0000000..89d5b94 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl_org.svg @@ -0,0 +1,633 @@ + + + + + + +graphics_support.cpp + + +Node1 + + +graphics_support.cpp + + + + + +Node2 + + +malloc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +graphics_support.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node4->Node7 + + + + + + + + +Node75 + + +ekf_imu13states.h + + + + + +Node4->Node75 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node5->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node5->Node17 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node5->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node5->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node5->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node5->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node5->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node5->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node5->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node5->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node5->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node5->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node5->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node5->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node5->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node5->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node5->Node74 + + + + + + + + +Node6->Node7 + + + + + + + + +Node15->Node7 + + + + + + + + +Node33->Node6 + + + + + + + + +Node35->Node33 + + + + + + + + +Node72->Node15 + + + + + + + + +Node74->Node15 + + + + + + + + +Node76 + + +ekf.h + + + + + +Node75->Node76 + + + + + + + + +Node76->Node3 + + + + + + + + +Node76->Node7 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph.md5 new file mode 100644 index 0000000..86b185b --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph.md5 @@ -0,0 +1 @@ +13046a5980dc3772a4d2f0c5ab772bc6 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph.svg new file mode 100644 index 0000000..b22cb45 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph.svg @@ -0,0 +1,345 @@ + + + + + + + + + + + + +update_translation_matrix + + +Node1 + + +update_translation +_matrix + + + + + +Node2 + + +dispaly_esp_text + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dispaly_esp_text + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dispaly_esp_text + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +draw_3d_image_task + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +draw_3d_image_task + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +draw_3d_image_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +draw_3d_image_task + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +draw_3d_image_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +draw_3d_image_task + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +draw_3d_image_task + + + + + +Node1->Node17 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph_org.svg new file mode 100644 index 0000000..1b07d6e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a2f5dfc8616993b1485635978ec29513d_icgraph_org.svg @@ -0,0 +1,319 @@ + + + + + + +update_translation_matrix + + +Node1 + + +update_translation +_matrix + + + + + +Node2 + + +dispaly_esp_text + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dispaly_esp_text + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dispaly_esp_text + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +draw_3d_image_task + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +draw_3d_image_task + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +draw_3d_image_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +draw_3d_image_task + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +draw_3d_image_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +draw_3d_image_task + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +draw_3d_image_task + + + + + +Node1->Node17 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph.md5 new file mode 100644 index 0000000..e3899cc --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph.md5 @@ -0,0 +1 @@ +c282c82ef6ec64526d084af376e1209a \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph.svg new file mode 100644 index 0000000..13051c0 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph.svg @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +update_perspective_matrix + + +Node1 + + +update_perspective +_matrix + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node1->Node3 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +get_pressure_task + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +get_pressure_task + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +get_pressure_task + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +get_pressure_task + + + + + +Node1->Node21 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14->Node15 + + + + + + + + +Node16->Node17 + + + + + + + + +Node18->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph_org.svg new file mode 100644 index 0000000..16634d0 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7361f858eac611923f3e090a2a4837c8_icgraph_org.svg @@ -0,0 +1,382 @@ + + + + + + +update_perspective_matrix + + +Node1 + + +update_perspective +_matrix + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node1->Node3 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +get_pressure_task + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +get_pressure_task + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +get_pressure_task + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +get_pressure_task + + + + + +Node1->Node21 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14->Node15 + + + + + + + + +Node16->Node17 + + + + + + + + +Node18->Node4 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 new file mode 100644 index 0000000..42a9de0 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 @@ -0,0 +1 @@ +1505fdbefcbf0e4632d97affcfd16b7a \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg new file mode 100644 index 0000000..86723b0 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg @@ -0,0 +1,227 @@ + + + + + + + + + + + + +update_scaling_matrix + + +Node1 + + +update_scaling_matrix + + + + + +Node2 + + +dispaly_esp_text + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dispaly_esp_text + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dispaly_esp_text + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +draw_3d_image_task + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg new file mode 100644 index 0000000..eb75493 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg @@ -0,0 +1,201 @@ + + + + + + +update_scaling_matrix + + +Node1 + + +update_scaling_matrix + + + + + +Node2 + + +dispaly_esp_text + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dispaly_esp_text + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dispaly_esp_text + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +draw_3d_image_task + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 new file mode 100644 index 0000000..d169a63 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 @@ -0,0 +1 @@ +cc1ee0d713a0ca24ebd9d8214acceebc \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg new file mode 100644 index 0000000..49f65b8 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_perspective_matrix + + +Node1 + + +init_perspective_matrix + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph_org.svg new file mode 100644 index 0000000..b359648 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_perspective_matrix + + +Node1 + + +init_perspective_matrix + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 new file mode 100644 index 0000000..064f8e5 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 @@ -0,0 +1 @@ +1483069897a11440e85500ca78981929 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg new file mode 100644 index 0000000..e0b5c81 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::t + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg new file mode 100644 index 0000000..4b84755 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::t + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph.md5 new file mode 100644 index 0000000..2c3b18d --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph.md5 @@ -0,0 +1 @@ +495c42c0c9ed3f035c49e63f23f664e0 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph.svg new file mode 100644 index 0000000..b17aa32 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph.svg @@ -0,0 +1,509 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +draw_3d_image_task + + + + + +Node1->Node18 + + + + + + + + +Node20 + + +draw_3d_image_task + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +draw_3d_image_task + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +draw_3d_image_task + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +draw_3d_image_task + + + + + +Node1->Node23 + + + + + + + + +Node24 + + +draw_3d_image_task + + + + + +Node1->Node24 + + + + + + + + +Node25 + + +draw_3d_image_task + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +draw_3d_image_task + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +app_main + + + + + +Node18->Node19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph_org.svg new file mode 100644 index 0000000..db1fe42 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_icgraph_org.svg @@ -0,0 +1,426 @@ + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +draw_3d_image_task + + + + + +Node1->Node18 + + + + + + + + +Node20 + + +draw_3d_image_task + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +draw_3d_image_task + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +draw_3d_image_task + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +draw_3d_image_task + + + + + +Node1->Node23 + + + + + + + + +Node24 + + +draw_3d_image_task + + + + + +Node1->Node24 + + + + + + + + +Node25 + + +draw_3d_image_task + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +draw_3d_image_task + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +app_main + + + + + +Node18->Node19 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html new file mode 100644 index 0000000..560739e --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html @@ -0,0 +1,248 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <malloc.h>
+
8#include <math.h>
+
9#include "graphics_support.h"
+
10
+
11
+
+ +
13{
+
14 const float fov = 90; // field of view in degrees
+
15 const float near = 0.0001;
+
16 const float far = 1;
+
17
+
18 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
19
+
20 // Initialize matrix to zero
+
21 for (int row = 0; row < P_m.rows; row++) {
+
22 for (int col = 0; col < P_m.cols; col++) {
+
23 P_m(row, col) = 0;
+
24 }
+
25 }
+
26
+
27 P_m(0, 0) = S;
+
28 P_m(1, 1) = S;
+
29 P_m(2, 2) = -far / (far - near);
+
30 P_m(3, 2) = (-far * near) / (far - near);
+
31 P_m(2, 3) = -1;
+
32 P_m(3, 3) = 1;
+
33}
+
+
34
+
+ +
36{
+
37 const float near = 0.0001;
+
38 const float far = 1;
+
39
+
40 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
41
+
42 // Initialize matrix to zero
+
43 for (int row = 0; row < P_m.rows; row++) {
+
44 for (int col = 0; col < P_m.cols; col++) {
+
45 P_m(row, col) = 0;
+
46 }
+
47 }
+
48
+
49 P_m(0, 0) = S;
+
50 P_m(1, 1) = S;
+
51 P_m(2, 2) = -far / (far - near);
+
52 P_m(3, 2) = (-far * near) / (far - near);
+
53 P_m(2, 3) = -1;
+
54 P_m(3, 3) = 1;
+
55
+
56 P_m(3, 0) = (float)SSD1606_X_CENTER;
+
57 P_m(3, 1) = (float)SSD1606_Y_CENTER;
+
58}
+
+
59
+
+
60void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
+
61{
+
62 if (keep_diagonal) { // Multiply the diagonal values of the transformation matrix with the scaling
+
63 T_m(0, 0) *= scale_x; // (in case a rotation is already applied)
+
64 T_m(1, 1) *= scale_y;
+
65 T_m(2, 2) *= scale_z;
+
66 } else {
+
67 T_m(0, 0) = scale_x;
+
68 T_m(1, 1) = scale_y;
+
69 T_m(2, 2) = scale_z;
+
70 }
+
71}
+
+
72
+
+
73void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
+
74{
+
75 if (row) { // update values in 4-th row, if translation matrix is the second multiplier
+
76 T_m(3, 0) = move_x;
+
77 T_m(3, 1) = move_y;
+
78 T_m(3, 2) = move_z;
+
79 } else { // update values in 4-th collum, if translation matrix is the first multiplier
+
80 T_m(0, 3) = move_x;
+
81 T_m(1, 3) = move_y;
+
82 T_m(2, 3) = move_z;
+
83 }
+
84}
+
+
85
+
86
+
+
87void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
+
88{
+
89 dspm::Mat rotation_data(3, 1); // matrix(3x1) that holds x, y, z rotation data
+
90 rotation_data(0, 0) = DEG_TO_RAD * rot_x; // rotation data x
+
91 rotation_data(1, 0) = DEG_TO_RAD * rot_y; // rotation data y
+
92 rotation_data(2, 0) = DEG_TO_RAD * rot_z; // rotation data z
+
93
+
94 // Create and populate rotation matrix R(3x3). Then inverse it
+
95 dspm::Mat R = ekf::eul2rotm(rotation_data.data).t();
+
96
+
97 // Enlarge rotation matrix from 3x3 to 4x4
+
98 for (int row = 0; row < R.rows; row++) { // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
99 for (int col = 0; col < R.cols; col++) {
+
100 T_m(row, col) = R(row, col);
+
101 }
+
102 }
+
103}
+
+
104
+
+ +
106{
+
107 for (int rows = 0; rows < matrix.rows; rows++) {
+
108 for (int cols = 0; cols < matrix.cols; cols++) {
+
109 std::cout << matrix(rows, cols) << ", \t";
+
110 }
+
111 std::cout << std::endl;
+
112 }
+
113 std::cout << std::endl << std::endl;
+
114}
+
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void print_matrix(dspm::Mat matrix)
printf matrix to the terminal output
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + + +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
int cols
Definition mat.h:34
+
int rows
Definition mat.h:33
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html new file mode 100644 index 0000000..2abf2be --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html @@ -0,0 +1,662 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics_support.h File Reference
+
+
+
#include "esp_dsp.h"
+#include "ekf_imu13states.h"
+#include <stdint.h>
+
+Include dependency graph for applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  image_3d_matrix_s
 Data struct of 3d image matrix. More...
struct  image_3d_matrix_kalman_s
 Data struct of 3d image matrix with kalman filter object. More...
+ + + + + + + + +

+Macros

#define DEG_TO_RAD   0.01745329252f
#define RAD_TO_DEG   57.29577951f
#define MATRIX_SIZE   4
#define SSD1306_WIDTH   128
#define SSD1306_HEIGHT   64
#define SSD1606_X_CENTER   (SSD1306_WIDTH / 2)
#define SSD1606_Y_CENTER   (SSD1306_HEIGHT / 2)
+ + + + + +

+Typedefs

typedef struct image_3d_matrix_s image_3d_matrix_t
 Data struct of 3d image matrix.
typedef struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
 Data struct of 3d image matrix with kalman filter object.
+ + + + + + + + + + + + + +

+Functions

void init_perspective_matrix (dspm::Mat &P_m)
 initialize perspective projection matrix
void update_scaling_matrix (dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
 update scaling matrix
void update_translation_matrix (dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
 update translation matrix
void update_rotation_matrix (dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
 update rotation matrix
void update_perspective_matrix (dspm::Mat &P_m, float fov)
 update perspective matrix
void print_matrix (dspm::Mat matrix)
 printf matrix to the terminal output
+

Macro Definition Documentation

+ +

◆ DEG_TO_RAD

+ + + +

◆ MATRIX_SIZE

+ + + +

◆ RAD_TO_DEG

+ +
+
+ + + + +
#define RAD_TO_DEG   57.29577951f
+
+
+ +

◆ SSD1306_HEIGHT

+ +
+
+ + + + +
#define SSD1306_HEIGHT   64
+
+
+ +

◆ SSD1306_WIDTH

+ +
+
+ + + + +
#define SSD1306_WIDTH   128
+
+
+ +

◆ SSD1606_X_CENTER

+ + + +

◆ SSD1606_Y_CENTER

+ + +

Typedef Documentation

+ +

◆ image_3d_matrix_kalman_t

+ +
+
+ +

Data struct of 3d image matrix with kalman filter object.

+

This structure is used to hold a 3d coordinates of a monochromatic image centered to the origin of the cartesian space (0, 0, 0), that has ben processed by the image_to_3d_array.py. Kalman filter object is added to the matrix, for the purpose of RTOS task arguments.

+ +
+
+ +

◆ image_3d_matrix_t

+ +
+
+ + + + +
typedef struct image_3d_matrix_s image_3d_matrix_t
+
+ +

Data struct of 3d image matrix.

+

This structure is used to hold a 3d coordinates of a monochromatic image centered to the origin of the cartesian space (0, 0, 0), that has ben processed by the image_to_3d_array.py.

+ +
+
+

Function Documentation

+ +

◆ init_perspective_matrix()

+ +
+
+ + + + + + + +
void init_perspective_matrix (dspm::Mat & P_m)
+
+ +

initialize perspective projection matrix

+

Function initializes Mat class object holding perspective projection matrix.

+
Parameters
+ + +
P_mperspective projection matrix object from the Mat class
+
+
+ +

Definition at line 12 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
13{
+
14 const float fov = 90; // field of view in degrees
+
15 const float near = 0.0001;
+
16 const float far = 1;
+
17
+
18 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
19
+
20 // Initialize matrix to zero
+
21 for (int row = 0; row < P_m.rows; row++) {
+
22 for (int col = 0; col < P_m.cols; col++) {
+
23 P_m(row, col) = 0;
+
24 }
+
25 }
+
26
+
27 P_m(0, 0) = S;
+
28 P_m(1, 1) = S;
+
29 P_m(2, 2) = -far / (far - near);
+
30 P_m(3, 2) = (-far * near) / (far - near);
+
31 P_m(2, 3) = -1;
+
32 P_m(3, 3) = 1;
+
33}
+ +
int cols
Definition mat.h:34
+
int rows
Definition mat.h:33
+
+
+
+ +

◆ print_matrix()

+ +
+
+ + + + + + + +
void print_matrix (dspm::Mat matrix)
+
+ +

printf matrix to the terminal output

+

Print matrix for debug purposes

+
Parameters
+ + +
matrixmatrix to be printed
+
+
+ +

Definition at line 105 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
106{
+
107 for (int rows = 0; rows < matrix.rows; rows++) {
+
108 for (int cols = 0; cols < matrix.cols; cols++) {
+
109 std::cout << matrix(rows, cols) << ", \t";
+
110 }
+
111 std::cout << std::endl;
+
112 }
+
113 std::cout << std::endl << std::endl;
+
114}
+
+
+
+ +

◆ update_perspective_matrix()

+ +
+
+ + + + + + + + + + + +
void update_perspective_matrix (dspm::Mat & P_m,
float fov )
+
+ +

update perspective matrix

+

Function updates perspective matrix with a new value of field of view

+
Parameters
+ + + +
P_mperspective projection matrix object from the Mat class
fovfield of view in degrees
+
+
+ +

Definition at line 35 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
36{
+
37 const float near = 0.0001;
+
38 const float far = 1;
+
39
+
40 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
41
+
42 // Initialize matrix to zero
+
43 for (int row = 0; row < P_m.rows; row++) {
+
44 for (int col = 0; col < P_m.cols; col++) {
+
45 P_m(row, col) = 0;
+
46 }
+
47 }
+
48
+
49 P_m(0, 0) = S;
+
50 P_m(1, 1) = S;
+
51 P_m(2, 2) = -far / (far - near);
+
52 P_m(3, 2) = (-far * near) / (far - near);
+
53 P_m(2, 3) = -1;
+
54 P_m(3, 3) = 1;
+
55
+
56 P_m(3, 0) = (float)SSD1606_X_CENTER;
+
57 P_m(3, 1) = (float)SSD1606_Y_CENTER;
+
58}
+ + +
+
+
+ +

◆ update_rotation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void update_rotation_matrix (dspm::Mat & T_m,
float rot_x,
float rot_y,
float rot_z )
+
+ +

update rotation matrix

+

Function updates rotation part of the tranformation matrix

+
Parameters
+ + + + + +
T_mtransformation matrix object from the Mat class
rot_xrotation angle for x direction of the vector
rot_yrotation angle for y direction of the vector
rot_zrotation angle for z direction of the vector
+
+
+ +

Definition at line 87 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
88{
+
89 dspm::Mat rotation_data(3, 1); // matrix(3x1) that holds x, y, z rotation data
+
90 rotation_data(0, 0) = DEG_TO_RAD * rot_x; // rotation data x
+
91 rotation_data(1, 0) = DEG_TO_RAD * rot_y; // rotation data y
+
92 rotation_data(2, 0) = DEG_TO_RAD * rot_z; // rotation data z
+
93
+
94 // Create and populate rotation matrix R(3x3). Then inverse it
+
95 dspm::Mat R = ekf::eul2rotm(rotation_data.data).t();
+
96
+
97 // Enlarge rotation matrix from 3x3 to 4x4
+
98 for (int row = 0; row < R.rows; row++) { // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
99 for (int col = 0; col < R.cols; col++) {
+
100 T_m(row, col) = R(row, col);
+
101 }
+
102 }
+
103}
+
Matrix.
Definition mat.h:30
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
+
+
+ +

◆ update_scaling_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_scaling_matrix (dspm::Mat & T_m,
bool keep_diagonal,
float scale_x,
float scale_y,
float scale_z )
+
+ +

update scaling matrix

+

Function updates scaling part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
keep_diagonalif true: diagonal row of the transformation matrix T_m will be mulitplied with the scaling values if false: diagonal row of the transformation matrix T_m will be substituted with new scaling values
scale_xscaling value for x coordinate of the vector
scale_yscaling value for y coordinate of the vector
scale_zscaling value for z coordinate of the vector
+
+
+ +

Definition at line 60 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
61{
+
62 if (keep_diagonal) { // Multiply the diagonal values of the transformation matrix with the scaling
+
63 T_m(0, 0) *= scale_x; // (in case a rotation is already applied)
+
64 T_m(1, 1) *= scale_y;
+
65 T_m(2, 2) *= scale_z;
+
66 } else {
+
67 T_m(0, 0) = scale_x;
+
68 T_m(1, 1) = scale_y;
+
69 T_m(2, 2) = scale_z;
+
70 }
+
71}
+
+
+
+ +

◆ update_translation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_translation_matrix (dspm::Mat & T_m,
bool row,
float move_x,
float move_y,
float move_z )
+
+ +

update translation matrix

+

Function updates translation part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
rowif true: translation values will be placed to the 3rd row of the transformation matrix T_m if false: translation values will be placed to the 3rd col of the transformation matrix T_m
move_xtranslation value for x coordinate of the vector
move_ytranslation value for y coordinate of the vector
move_ztranslation value for z coordinate of the vector
+
+
+ +

Definition at line 73 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
74{
+
75 if (row) { // update values in 4-th row, if translation matrix is the second multiplier
+
76 T_m(3, 0) = move_x;
+
77 T_m(3, 1) = move_y;
+
78 T_m(3, 2) = move_z;
+
79 } else { // update values in 4-th collum, if translation matrix is the first multiplier
+
80 T_m(0, 3) = move_x;
+
81 T_m(1, 3) = move_y;
+
82 T_m(2, 3) = move_z;
+
83 }
+
84}
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js new file mode 100644 index 0000000..21b30bd --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js @@ -0,0 +1,20 @@ +var applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h = +[ + [ "image_3d_matrix_s", "structimage__3d__matrix__s.html", "structimage__3d__matrix__s" ], + [ "image_3d_matrix_kalman_s", "structimage__3d__matrix__kalman__s.html", "structimage__3d__matrix__kalman__s" ], + [ "DEG_TO_RAD", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a212460e743fecb084d717bb2180c5a56", null ], + [ "MATRIX_SIZE", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a2bd32349fcbeb6ee86434a65226cba1a", null ], + [ "RAD_TO_DEG", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a89e47af0449640d4f15191aba5ca24c6", null ], + [ "SSD1306_HEIGHT", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a4e9409448a0df95c1686670e09b457b7", null ], + [ "SSD1306_WIDTH", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#ae5a2aa8865dd03537b97fd1c9037371b", null ], + [ "SSD1606_X_CENTER", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a7e67b59980d1941c4973fdd5e9f58b4f", null ], + [ "SSD1606_Y_CENTER", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#ab905ba021420183fc79b4d8a71213b1d", null ], + [ "image_3d_matrix_kalman_t", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a85a113d368cff695e92112af79745f63", null ], + [ "image_3d_matrix_t", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#aef6b2b7c7e85607408b2328992dc4c92", null ], + [ "init_perspective_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#ab5c13c601603a6d1b586b8ad9aa7ee98", null ], + [ "print_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a99863c33e6651eb83f8211d67ccc7f2e", null ], + [ "update_perspective_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a7361f858eac611923f3e090a2a4837c8", null ], + [ "update_rotation_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#abddf00a5f71e067190147e3ecdb49d3f", null ], + [ "update_scaling_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a7d3520bcf116c1dcaa67c1925e48b2d9", null ], + [ "update_translation_matrix", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a2f5dfc8616993b1485635978ec29513d", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.md5 new file mode 100644 index 0000000..4ccaf36 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.md5 @@ -0,0 +1 @@ +2b39874549aa96f8e28de40da4e2df39 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.svg new file mode 100644 index 0000000..dd81b96 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +graphics_support.cpp + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl_org.svg new file mode 100644 index 0000000..681eda5 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +graphics_support.cpp + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.md5 new file mode 100644 index 0000000..c47bcc0 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.md5 @@ -0,0 +1 @@ +f220a0c2d9ec084061edc671fba556af \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.svg new file mode 100644 index 0000000..cb19e15 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.svg @@ -0,0 +1,1672 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node1->Node4 + + + + + + + + +Node72 + + +ekf_imu13states.h + + + + + +Node1->Node72 + + + + + + + + +Node3 + + +dsp_common.h + + + + + +Node2->Node3 + + + + + + + + +Node12 + + +dsp_types.h + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +dsps_dotprod.h + + + + + +Node2->Node14 + + + + + + + + +Node18 + + +dsps_math.h + + + + + +Node2->Node18 + + + + + + + + +Node30 + + +dsps_fir.h + + + + + +Node2->Node30 + + + + + + + + +Node32 + + +dsps_resampler.h + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +dsps_biquad.h + + + + + +Node2->Node33 + + + + + + + + +Node35 + + +dsps_biquad_gen.h + + + + + +Node2->Node35 + + + + + + + + +Node36 + + +dsps_wind.h + + + + + +Node2->Node36 + + + + + + + + +Node43 + + +dsps_conv.h + + + + + +Node2->Node43 + + + + + + + + +Node45 + + +dsps_corr.h + + + + + +Node2->Node45 + + + + + + + + +Node46 + + +dsps_d_gen.h + + + + + +Node2->Node46 + + + + + + + + +Node47 + + +dsps_h_gen.h + + + + + +Node2->Node47 + + + + + + + + +Node48 + + +dsps_tone_gen.h + + + + + +Node2->Node48 + + + + + + + + +Node49 + + +dsps_snr.h + + + + + +Node2->Node49 + + + + + + + + +Node50 + + +dsps_sfdr.h + + + + + +Node2->Node50 + + + + + + + + +Node51 + + +dsps_fft2r.h + + + + + +Node2->Node51 + + + + + + + + +Node54 + + +dsps_fft4r.h + + + + + +Node2->Node54 + + + + + + + + +Node56 + + +dsps_dct.h + + + + + +Node2->Node56 + + + + + + + + +Node57 + + +dspm_matrix.h + + + + + +Node2->Node57 + + + + + + + + +Node68 + + +dsps_view.h + + + + + +Node2->Node68 + + + + + + + + +Node69 + + +dspi_dotprod.h + + + + + +Node2->Node69 + + + + + + + + +Node71 + + +dspi_conv.h + + + + + +Node2->Node71 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdbool.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dsp_err.h + + + + + +Node3->Node6 + + + + + + + + +Node10 + + +esp_idf_version.h + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +x86intrin.h + + + + + +Node3->Node11 + + + + + + + + +Node6->Node4 + + + + + + + + +Node12->Node4 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +inttypes.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node15 + + +esp_log.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_dotprod_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +sdkconfig.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_add.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_sub.h + + + + + +Node18->Node21 + + + + + + + + +Node23 + + +dsps_mul.h + + + + + +Node18->Node23 + + + + + + + + +Node25 + + +dsps_addc.h + + + + + +Node18->Node25 + + + + + + + + +Node27 + + +dsps_mulc.h + + + + + +Node18->Node27 + + + + + + + + +Node29 + + +dsps_sqrt.h + + + + + +Node18->Node29 + + + + + + + + +Node19->Node6 + + + + + + + + +Node21->Node6 + + + + + + + + +Node23->Node6 + + + + + + + + +Node25->Node6 + + + + + + + + +Node27->Node6 + + + + + + + + +Node29->Node6 + + + + + + + + +Node30->Node3 + + + + + + + + +Node30->Node6 + + + + + + + + +Node31 + + +dsps_fir_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node31->Node17 + + + + + + + + +Node32->Node6 + + + + + + + + +Node32->Node30 + + + + + + + + +Node33->Node6 + + + + + + + + +Node34 + + +dsps_biquad_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node17 + + + + + + + + +Node35->Node6 + + + + + + + + +Node37 + + +dsps_wind_hann.h + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman.h + + + + + +Node36->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_harris.h + + + + + +Node36->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +dsps_wind_nuttall.h + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +dsps_wind_flat_top.h + + + + + +Node36->Node42 + + + + + + + + +Node43->Node6 + + + + + + + + +Node44 + + +dsps_conv_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node6 + + + + + + + + +Node45->Node44 + + + + + + + + +Node46->Node6 + + + + + + + + +Node47->Node6 + + + + + + + + +Node48->Node6 + + + + + + + + +Node49->Node6 + + + + + + + + +Node50->Node6 + + + + + + + + +Node51->Node6 + + + + + + + + +Node51->Node17 + + + + + + + + +Node52 + + +dsps_fft_tables.h + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +dsps_fft2r_platform.h + + + + + +Node51->Node53 + + + + + + + + +Node53->Node17 + + + + + + + + +Node54->Node6 + + + + + + + + +Node54->Node17 + + + + + + + + +Node54->Node52 + + + + + + + + +Node55 + + +dsps_fft4r_platform.h + + + + + +Node54->Node55 + + + + + + + + +Node55->Node17 + + + + + + + + +Node56->Node6 + + + + + + + + +Node56->Node17 + + + + + + + + +Node58 + + +dspm_add.h + + + + + +Node57->Node58 + + + + + + + + +Node60 + + +dspm_addc.h + + + + + +Node57->Node60 + + + + + + + + +Node62 + + +dspm_mult.h + + + + + +Node57->Node62 + + + + + + + + +Node64 + + +dspm_mulc.h + + + + + +Node57->Node64 + + + + + + + + +Node66 + + +dspm_sub.h + + + + + +Node57->Node66 + + + + + + + + +Node58->Node6 + + + + + + + + +Node60->Node6 + + + + + + + + +Node62->Node6 + + + + + + + + +Node64->Node6 + + + + + + + + +Node66->Node6 + + + + + + + + +Node68->Node6 + + + + + + + + +Node69->Node6 + + + + + + + + +Node69->Node12 + + + + + + + + +Node69->Node15 + + + + + + + + +Node70 + + +dspi_dotprod_platform.h + + + + + +Node69->Node70 + + + + + + + + +Node70->Node17 + + + + + + + + +Node71->Node6 + + + + + + + + +Node71->Node12 + + + + + + + + +Node71->Node44 + + + + + + + + +Node73 + + +ekf.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node73->Node5 + + + + + + + + +Node74 + + +math.h + + + + + +Node73->Node74 + + + + + + + + +Node75 + + +mat.h + + + + + +Node73->Node75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl_org.svg new file mode 100644 index 0000000..dea979c --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl_org.svg @@ -0,0 +1,1589 @@ + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node1->Node4 + + + + + + + + +Node72 + + +ekf_imu13states.h + + + + + +Node1->Node72 + + + + + + + + +Node3 + + +dsp_common.h + + + + + +Node2->Node3 + + + + + + + + +Node12 + + +dsp_types.h + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +dsps_dotprod.h + + + + + +Node2->Node14 + + + + + + + + +Node18 + + +dsps_math.h + + + + + +Node2->Node18 + + + + + + + + +Node30 + + +dsps_fir.h + + + + + +Node2->Node30 + + + + + + + + +Node32 + + +dsps_resampler.h + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +dsps_biquad.h + + + + + +Node2->Node33 + + + + + + + + +Node35 + + +dsps_biquad_gen.h + + + + + +Node2->Node35 + + + + + + + + +Node36 + + +dsps_wind.h + + + + + +Node2->Node36 + + + + + + + + +Node43 + + +dsps_conv.h + + + + + +Node2->Node43 + + + + + + + + +Node45 + + +dsps_corr.h + + + + + +Node2->Node45 + + + + + + + + +Node46 + + +dsps_d_gen.h + + + + + +Node2->Node46 + + + + + + + + +Node47 + + +dsps_h_gen.h + + + + + +Node2->Node47 + + + + + + + + +Node48 + + +dsps_tone_gen.h + + + + + +Node2->Node48 + + + + + + + + +Node49 + + +dsps_snr.h + + + + + +Node2->Node49 + + + + + + + + +Node50 + + +dsps_sfdr.h + + + + + +Node2->Node50 + + + + + + + + +Node51 + + +dsps_fft2r.h + + + + + +Node2->Node51 + + + + + + + + +Node54 + + +dsps_fft4r.h + + + + + +Node2->Node54 + + + + + + + + +Node56 + + +dsps_dct.h + + + + + +Node2->Node56 + + + + + + + + +Node57 + + +dspm_matrix.h + + + + + +Node2->Node57 + + + + + + + + +Node68 + + +dsps_view.h + + + + + +Node2->Node68 + + + + + + + + +Node69 + + +dspi_dotprod.h + + + + + +Node2->Node69 + + + + + + + + +Node71 + + +dspi_conv.h + + + + + +Node2->Node71 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdbool.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dsp_err.h + + + + + +Node3->Node6 + + + + + + + + +Node10 + + +esp_idf_version.h + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +x86intrin.h + + + + + +Node3->Node11 + + + + + + + + +Node6->Node4 + + + + + + + + +Node12->Node4 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +inttypes.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node15 + + +esp_log.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_dotprod_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +sdkconfig.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_add.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_sub.h + + + + + +Node18->Node21 + + + + + + + + +Node23 + + +dsps_mul.h + + + + + +Node18->Node23 + + + + + + + + +Node25 + + +dsps_addc.h + + + + + +Node18->Node25 + + + + + + + + +Node27 + + +dsps_mulc.h + + + + + +Node18->Node27 + + + + + + + + +Node29 + + +dsps_sqrt.h + + + + + +Node18->Node29 + + + + + + + + +Node19->Node6 + + + + + + + + +Node21->Node6 + + + + + + + + +Node23->Node6 + + + + + + + + +Node25->Node6 + + + + + + + + +Node27->Node6 + + + + + + + + +Node29->Node6 + + + + + + + + +Node30->Node3 + + + + + + + + +Node30->Node6 + + + + + + + + +Node31 + + +dsps_fir_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node31->Node17 + + + + + + + + +Node32->Node6 + + + + + + + + +Node32->Node30 + + + + + + + + +Node33->Node6 + + + + + + + + +Node34 + + +dsps_biquad_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node17 + + + + + + + + +Node35->Node6 + + + + + + + + +Node37 + + +dsps_wind_hann.h + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman.h + + + + + +Node36->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_harris.h + + + + + +Node36->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +dsps_wind_nuttall.h + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +dsps_wind_flat_top.h + + + + + +Node36->Node42 + + + + + + + + +Node43->Node6 + + + + + + + + +Node44 + + +dsps_conv_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node6 + + + + + + + + +Node45->Node44 + + + + + + + + +Node46->Node6 + + + + + + + + +Node47->Node6 + + + + + + + + +Node48->Node6 + + + + + + + + +Node49->Node6 + + + + + + + + +Node50->Node6 + + + + + + + + +Node51->Node6 + + + + + + + + +Node51->Node17 + + + + + + + + +Node52 + + +dsps_fft_tables.h + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +dsps_fft2r_platform.h + + + + + +Node51->Node53 + + + + + + + + +Node53->Node17 + + + + + + + + +Node54->Node6 + + + + + + + + +Node54->Node17 + + + + + + + + +Node54->Node52 + + + + + + + + +Node55 + + +dsps_fft4r_platform.h + + + + + +Node54->Node55 + + + + + + + + +Node55->Node17 + + + + + + + + +Node56->Node6 + + + + + + + + +Node56->Node17 + + + + + + + + +Node58 + + +dspm_add.h + + + + + +Node57->Node58 + + + + + + + + +Node60 + + +dspm_addc.h + + + + + +Node57->Node60 + + + + + + + + +Node62 + + +dspm_mult.h + + + + + +Node57->Node62 + + + + + + + + +Node64 + + +dspm_mulc.h + + + + + +Node57->Node64 + + + + + + + + +Node66 + + +dspm_sub.h + + + + + +Node57->Node66 + + + + + + + + +Node58->Node6 + + + + + + + + +Node60->Node6 + + + + + + + + +Node62->Node6 + + + + + + + + +Node64->Node6 + + + + + + + + +Node66->Node6 + + + + + + + + +Node68->Node6 + + + + + + + + +Node69->Node6 + + + + + + + + +Node69->Node12 + + + + + + + + +Node69->Node15 + + + + + + + + +Node70 + + +dspi_dotprod_platform.h + + + + + +Node69->Node70 + + + + + + + + +Node70->Node17 + + + + + + + + +Node71->Node6 + + + + + + + + +Node71->Node12 + + + + + + + + +Node71->Node44 + + + + + + + + +Node73 + + +ekf.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node73->Node5 + + + + + + + + +Node74 + + +math.h + + + + + +Node73->Node74 + + + + + + + + +Node75 + + +mat.h + + + + + +Node73->Node75 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html new file mode 100644 index 0000000..ae6b952 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html @@ -0,0 +1,189 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include "esp_dsp.h"
+
10#include "ekf_imu13states.h"
+
11
+
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
18#include <stdint.h>
+
19
+
20#define DEG_TO_RAD 0.01745329252f // Degrees to radians conversion
+
21#define RAD_TO_DEG 57.29577951f // Radians to degrees conversion
+
22#define MATRIX_SIZE 4 // 4x4 matrices are used
+
23#define SSD1306_WIDTH 128 // Display widh in pixels
+
24#define SSD1306_HEIGHT 64 // DIsplay height
+
25#define SSD1606_X_CENTER (SSD1306_WIDTH / 2) // Width center point
+
26#define SSD1606_Y_CENTER (SSD1306_HEIGHT / 2) // Height center point
+
27
+
+
34typedef struct image_3d_matrix_s {
+
35 const float (*matrix)[MATRIX_SIZE];
+
36 uint32_t matrix_len;
+ +
+
38
+ +
51
+
52
+ +
61
+
62
+
75void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z);
+
76
+
77
+
90void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z);
+
91
+
92
+
103void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z);
+
104
+
105
+
114void update_perspective_matrix(dspm::Mat &P_m, float fov);
+
115
+
116
+
124void print_matrix(dspm::Mat matrix);
+
125
+
126#ifdef __cplusplus
+
127}
+
128#endif
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+
void print_matrix(dspm::Mat matrix)
printf matrix to the terminal output
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+
Matrix.
Definition mat.h:30
+
This class is used to process and calculate attitude from imu sensors.
+ + + + + + + + + + +
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html new file mode 100644 index 0000000..ff6943d --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
template_img_to_3d.c File Reference
+
+
+
#include "image_to_3d_matrix.h"
+
+Include dependency graph for applications/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.md5 new file mode 100644 index 0000000..dba0672 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.md5 @@ -0,0 +1 @@ +020772f75f2fde487958097c75cc4df4 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.svg new file mode 100644 index 0000000..e425bc6 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +template_img_to_3d.c + + +Node1 + + +template_img_to_3d.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl_org.svg new file mode 100644 index 0000000..13b7815 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +template_img_to_3d.c + + +Node1 + + +template_img_to_3d.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c_source.html b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c_source.html new file mode 100644 index 0000000..3599e55 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c_source.html @@ -0,0 +1,119 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.c
+
+
+Go to the documentation of this file.
1// template file - template_img_to_3d.c
+
2// arrays declarations will be modified by python script ImgTo3D.py
+
3
+
4#include "image_to_3d_matrix.h"
+
5
+
6#ifdef CONFIG_3D_OBJECT_CUSTOM
+
7
+
8const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES] = {};
+
9const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4] = {};
+
10
+
11#endif // CONFIG_3D_OBJECT_CUSTOM
+
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4]
+
const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES]
+
+
+
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html new file mode 100644 index 0000000..e14a8a9 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html @@ -0,0 +1,173 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
template_img_to_3d.h File Reference
+
+
+
#include <stdint.h>
+#include "sdkconfig.h"
+
+Include dependency graph for applications/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.h:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t TEMPLATE_ARRAY_BMP_IMAGE [NUM_OF_BYTES]
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX [NUM_OF_POINTS][4]
+

Variable Documentation

+ +

◆ TEMPLATE_ARRAY_BMP_IMAGE

+ +
+
+ + + + + +
+ + + + +
const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES]
+
+extern
+
+ +
+
+ +

◆ TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX

+ +
+
+ + + + + +
+ + + + +
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4]
+
+extern
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.js b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.js new file mode 100644 index 0000000..2e83d5c --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.js @@ -0,0 +1,5 @@ +var applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h = +[ + [ "TEMPLATE_ARRAY_BMP_IMAGE", "applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html#a69c27a8cb01eba6e6385d526f4ab3e4f", null ], + [ "TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX", "applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html#a17d49aa03d0f1653f57cb840ba9b23ed", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.md5 b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.md5 new file mode 100644 index 0000000..db9a32d --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.md5 @@ -0,0 +1 @@ +7175bfbb6e58cf57fb08f01c1ecc0d00 \ No newline at end of file diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.svg b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.svg new file mode 100644 index 0000000..d4d5941 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +template_img_to_3d.h + + +Node1 + + +template_img_to_3d.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl_org.svg b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl_org.svg new file mode 100644 index 0000000..ac9f72b --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +template_img_to_3d.h + + +Node1 + + +template_img_to_3d.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h_source.html b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h_source.html new file mode 100644 index 0000000..739f0c5 --- /dev/null +++ b/docs/html/applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h_source.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.h
+
+
+Go to the documentation of this file.
1// template file - template_img_to_3d.h
+
2// arrays declarations will be modified by python script ImgTo3D.py
+
3
+
4#pragma once
+
5
+
6#include <stdint.h>
+
7#include "sdkconfig.h"
+
8
+
9#ifdef __cplusplus
+
10extern "C" {
+
11#endif
+
12
+
13extern const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES];
+
14extern const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4];
+
15
+
16#ifdef __cplusplus
+
17}
+
18#endif
+
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4]
+
const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES]
+
+
+
+ + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c.html b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c.html new file mode 100644 index 0000000..3dcc0b9 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c.html @@ -0,0 +1,1479 @@ + + + + + + + +ESP-IDF Firmware: audio_amp_main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
audio_amp_main.c File Reference
+
+
+
#include <stdio.h>
+#include <inttypes.h>
+#include <sdkconfig.h>
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "freertos/queue.h"
+#include "esp_log.h"
+#include "esp_dsp.h"
+#include "bsp/esp-bsp.h"
+#include <stdint.h>
+#include <math.h>
+
+Include dependency graph for applications/lyrat_board_app/main/audio_amp_main.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Macros

#define BUFFER_SIZE   (64)
#define SAMPLE_RATE   (16000)
#define DEFAULT_VOLUME   (100)
+ + +

+Typedefs

typedef enum audio_set audio_set_t
+ + +

+Enumerations

enum  audio_set { AUDIO_VOLUME +, AUDIO_BASS +, AUDIO_TREBLE + }
+ + + + + + + + + + +

+Functions

static void btn_handler (void *button_handle, void *usr_data)
struct __attribute__ ((packed))
static void buttons_process_task (void *arg)
static void audio_read_task (void *arg)
static void audio_process_task (void *arg)
static void convert_short2float (int16_t *int16_data, float *float_data, int len)
static void convert_float2short (float *float_data, int16_t *int16_data, int len)
void digitalLimiter (float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
void app_main (void)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

static const char * TAG = "example"
static QueueHandle_t audio_button_q = NULL
 dumb_wav_header_t
static esp_codec_dev_handle_t spk_codec_dev = NULL
static FILE * play_file = NULL
static const char play_filename [] = BSP_SPIFFS_MOUNT_POINT"/16bit_mono_44_1_khz.wav"
static dumb_wav_header_t wav_header
static audio_set_t current_set = AUDIO_VOLUME
float iir_coeffs_lpf [5]
float iir_w_lpf [5] = {0, 0}
float iir_coeffs_hpf [5]
float iir_w_hpf [5] = {0, 0}
float lpf_gain = 0
float lpf_qFactor = 0.5
float lpf_freq = 0.01
float hpf_gain = 0
float hpf_qFactor = 1
float hpf_freq = 0.15
float full_volume = 1
int full_volume_db = -12
float full_envelope = 0
float processing_audio_buffer [(64)] = {0}
int16_t triple_audio_buffer [3 *(64)] = {0}
int audio_buffer_write_index = 0
int audio_buffer_read_index = 0
static SemaphoreHandle_t sync_read_task
+

Macro Definition Documentation

+ +

◆ BUFFER_SIZE

+ +
+
+ + + + +
#define BUFFER_SIZE   (64)
+
+
+ +

◆ DEFAULT_VOLUME

+ +
+
+ + + + +
#define DEFAULT_VOLUME   (100)
+
+
+ +

◆ SAMPLE_RATE

+ +
+
+ + + + +
#define SAMPLE_RATE   (16000)
+
+
+

Typedef Documentation

+ +

◆ audio_set_t

+ +
+
+ + + + +
typedef enum audio_set audio_set_t
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ audio_set

+ +
+
+ + + + +
enum audio_set
+
+ + + + +
Enumerator
AUDIO_VOLUME 
AUDIO_BASS 
AUDIO_TREBLE 
+ +

Definition at line 50 of file applications/lyrat_board_app/main/audio_amp_main.c.

+ +
+
+

Function Documentation

+ +

◆ __attribute__()

+ +
+
+ + + + + + + +
struct __attribute__ ((packed) )
+
+ +

Definition at line 31 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
39{
+
40 uint8_t ignore_0[22];
+
41 uint16_t num_channels;
+
42 uint32_t sample_rate;
+
43 uint8_t ignore_1[6];
+
44 uint16_t bits_per_sample;
+
45 uint8_t ignore_2[4];
+
46 uint32_t data_size;
+
47 uint8_t data[];
+ + +
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References audio_button_q, and button_pressed.

+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 365 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
366{
+
367 ESP_ERROR_CHECK(bsp_spiffs_mount());
+
368
+
369 // Create FreeRTOS tasks and queues
+
370 audio_button_q = xQueueCreate(10, sizeof(int));
+
371 assert (audio_button_q != NULL);
+
372
+
373 BaseType_t ret = xTaskCreate(audio_process_task, "audio_process_task", 4096, NULL, 6, NULL);
+
374 assert(ret == pdPASS);
+
375
+
376 // Init audio buttons
+
377 button_handle_t btns[BSP_BUTTON_NUM];
+
378 ESP_ERROR_CHECK(bsp_iot_button_create(btns, NULL, BSP_BUTTON_NUM));
+
379 for (int i = 0; i < BSP_BUTTON_NUM; i++) {
+
380 ESP_ERROR_CHECK(iot_button_register_cb(btns[i], BUTTON_PRESS_DOWN, btn_handler, (void *) i));
+
381 }
+
382}
+
static QueueHandle_t audio_button_q
+
static void btn_handler(void *button_handle, void *usr_data)
+
static void audio_process_task(void *arg)
+
+

References audio_button_q, audio_process_task(), and btn_handler().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ audio_process_task()

+ +
+
+ + + + + +
+ + + + + + + +
void audio_process_task (void * arg)
+
+static
+
+ +

Definition at line 155 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
156{
+
157 // Init codeac and apply the initial volume to maximum
+
158 spk_codec_dev = bsp_audio_codec_speaker_init();
+
159 assert(spk_codec_dev);
+
160 esp_codec_dev_set_out_vol(spk_codec_dev, DEFAULT_VOLUME);
+
161
+
162 // Open file and het the WAV header to set up the sample frequency, amount of channels and resolution
+
163 play_file = fopen(play_filename, "rb");
+
164 if (play_file == NULL) {
+
165 ESP_LOGW(TAG, "%s file does not exist!", play_filename);
+
166 }
+
167 // Read WAV header
+
168 if (fread((void *)&wav_header, 1, sizeof(wav_header), play_file) != sizeof(wav_header)) {
+
169 ESP_LOGW(TAG, "Error in reading file");
+
170 return;
+
171 }
+
172
+
173 ESP_LOGI(TAG, "Number of channels: %" PRIu16 "", wav_header.num_channels);
+
174 ESP_LOGI(TAG, "Bits per sample: %" PRIu16 "", wav_header.bits_per_sample);
+
175 ESP_LOGI(TAG, "Sample rate: %" PRIu32 "", wav_header.sample_rate);
+
176 ESP_LOGI(TAG, "Data size: %" PRIu32 "", wav_header.data_size);
+
177 esp_codec_dev_sample_info_t fs = {
+
178 .sample_rate = wav_header.sample_rate,
+
179 .channel = wav_header.num_channels,
+
180 .bits_per_sample = wav_header.bits_per_sample,
+
181 };
+
182 if (spk_codec_dev != NULL) {
+
183 int result = esp_codec_dev_open(spk_codec_dev, &fs);
+
184 }
+
185 // Calculate initial volume value
+
186 full_volume = exp10f((float)full_volume_db / 20);
+
187 // Calculate initial state for LPF
+ +
189 // Calculate initial state for HPF
+ +
191
+
192 BaseType_t ret = xTaskCreate(buttons_process_task, "buttons_process_task", 4096, NULL, 4, NULL);
+
193 assert(ret == pdPASS);
+
194
+
195 sync_read_task = xSemaphoreCreateCounting(1, 0);
+
196
+
197 ret = xTaskCreate(audio_read_task, "audio_read_task", 4096, NULL, 7, NULL);
+
198 assert(ret == pdPASS);
+
199 vTaskDelay(1);
+
200
+
201 ESP_LOGW(TAG, "To select volume/bass/treble please use the 'Set' button. And adjust the value with +/- buttons.");
+
202
+
203 for (;;) {
+
204 /* Get data from SPIFFS and send it to codec */
+ +
206 // Write samples to audio codec
+
207 esp_codec_dev_write(spk_codec_dev, wav_bytes, BUFFER_SIZE * sizeof(int16_t));
+ +
209 if (audio_buffer_write_index >= 3) {
+ +
211 }
+
212 // Check the triple buffer overflow
+ +
214 // Call delay to switch the task to fill the buffer
+
215 vTaskDelay(1);
+
216 // Check and indicate overflow status
+ +
218 ESP_LOGW(TAG, "Audio buffer overflow!");
+
219 }
+
220 }
+
221 // Generate synt event to read task:
+
222 xSemaphoreGive(sync_read_task);
+
223 }
+
224}
+
static SemaphoreHandle_t sync_read_task
+ + + +
static void audio_read_task(void *arg)
+ + + + + +
static const char play_filename[]
+ + + + +
static void buttons_process_task(void *arg)
+
static dumb_wav_header_t wav_header
+ + + +
static esp_codec_dev_handle_t spk_codec_dev
+ +
esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor)
low shelf IIR filter coefficients
+
esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor)
high shelf IIR filter coefficients
+
static const char * TAG
Definition main/main.c:31
+
+

References audio_buffer_read_index, audio_buffer_write_index, audio_read_task(), BUFFER_SIZE, buttons_process_task(), DEFAULT_VOLUME, dsps_biquad_gen_highShelf_f32(), dsps_biquad_gen_lowShelf_f32(), full_volume, full_volume_db, hpf_freq, hpf_gain, hpf_qFactor, iir_coeffs_hpf, iir_coeffs_lpf, lpf_freq, lpf_gain, lpf_qFactor, play_file, play_filename, spk_codec_dev, sync_read_task, TAG, triple_audio_buffer, and wav_header.

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ audio_read_task()

+ +
+
+ + + + + +
+ + + + + + + +
void audio_read_task (void * arg)
+
+static
+
+ +

Definition at line 229 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
230{
+
231 while (1) {
+
232 // Wait the sync semaphore
+
233 if (xSemaphoreTake(sync_read_task, 100)) {
+
234 // Get the pointer to the current audio buffer
+ +
236 // Read the data from the file
+
237 uint32_t bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
238 // Convert input samples from int16 to float for processing
+ +
240 // Apply bass
+ +
242 // Apply treble
+ +
244 // Apply voluve
+ +
246 // Apply limiter
+ +
248 // Convert from float to int16 for audio codec
+ +
250
+
251 if (bytes_read_from_spiffs != BUFFER_SIZE) {
+
252 // Rewind the file and read the WAV header
+
253 rewind(play_file);
+
254 fread((void *)&wav_header, 1, sizeof(wav_header), play_file);
+
255 // Read data to the audio buffer
+
256 bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
257 }
+ +
259 if (audio_buffer_read_index >= 3) {
+ +
261 }
+
262 } else {
+
263 // Error in case of timeout
+
264 ESP_LOGE(TAG, "Audio timeout!");
+
265 }
+
266 }
+
267}
+
void digitalLimiter(float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
+ + + + +
static void convert_float2short(float *float_data, int16_t *int16_data, int len)
+
static void convert_short2float(int16_t *int16_data, float *float_data, int len)
+
#define dsps_biquad_f32
Definition dsps_biquad.h:99
+
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+
+

References audio_buffer_read_index, BUFFER_SIZE, convert_float2short(), convert_short2float(), digitalLimiter(), dsps_biquad_f32, dsps_mulc_f32_ansi(), full_envelope, full_volume, iir_coeffs_hpf, iir_coeffs_lpf, iir_w_hpf, iir_w_lpf, play_file, processing_audio_buffer, sync_read_task, TAG, triple_audio_buffer, and wav_header.

+ +

Referenced by audio_process_task(), audio_process_task(), and audio_process_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ btn_handler()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void btn_handler (void * button_handle,
void * usr_data )
+
+static
+
+ +

Definition at line 31 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
32{
+
33 int button_pressed = (int)usr_data;
+
34 xQueueSend(audio_button_q, &button_pressed, 0);
+
35}
+ +
+

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ buttons_process_task()

+ +
+
+ + + + + +
+ + + + + + + +
void buttons_process_task (void * arg)
+
+static
+
+ +

Definition at line 269 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
270{
+
271 while (1) {
+
272 int btn_index = 0;
+
273 if (xQueueReceive(audio_button_q, &btn_index, portMAX_DELAY) == pdTRUE) {
+
274 switch (btn_index) {
+
275 case BSP_BUTTON_SET: {
+
276 current_set += 1;
+
277 if (current_set > 2) {
+ +
279 }
+
280 switch (current_set) {
+
281 case AUDIO_VOLUME:
+
282 ESP_LOGW(TAG, "Select volume");
+
283 break;
+
284 case AUDIO_BASS:
+
285 ESP_LOGW(TAG, "Select bass");
+
286 break;
+
287 case AUDIO_TREBLE:
+
288 ESP_LOGW(TAG, "Select treble");
+
289 break;
+
290 default:
+
291 break;
+
292 }
+
293 break;
+
294 }
+
295 case BSP_BUTTON_VOLDOWN: {
+
296 switch (current_set) {
+
297 case AUDIO_VOLUME:
+
298 full_volume_db -= 3;
+
299 if (full_volume_db < -36) {
+
300 full_volume_db = -36;
+
301 }
+
302 full_volume = exp10f((float)full_volume_db / 20);
+
303 ESP_LOGI(TAG, "Volume Down: %i dB", full_volume_db);
+
304 break;
+
305 case AUDIO_BASS:
+
306 lpf_gain -= 1;
+
307 if (lpf_gain < -12) {
+
308 lpf_gain = -12;
+
309 }
+
310 ESP_LOGI(TAG, "Bass Down: %i", (int)lpf_gain);
+ +
312 break;
+
313 case AUDIO_TREBLE:
+
314 hpf_gain -= 1;
+
315 if (hpf_gain < -12) {
+
316 hpf_gain = -12;
+
317 }
+
318 ESP_LOGI(TAG, "Treble Down: %i", (int)hpf_gain);
+ +
320 break;
+
321 default:
+
322 break;
+
323 }
+
324 break;
+
325 }
+
326 case BSP_BUTTON_VOLUP: {
+
327 switch (current_set) {
+
328 case AUDIO_VOLUME:
+
329 full_volume_db += 3;
+
330 if (full_volume_db > 0) {
+
331 full_volume_db = 0;
+
332 }
+
333 full_volume = exp10f((float)full_volume_db / 20);
+
334 ESP_LOGI(TAG, "Volume Up: %i dB", full_volume_db);
+
335 break;
+
336 case AUDIO_BASS:
+
337 lpf_gain += 1;
+
338 if (lpf_gain > 12) {
+
339 lpf_gain = 12;
+
340 }
+
341 ESP_LOGI(TAG, "Bass Up: %i", (int)lpf_gain);
+ +
343 break;
+
344 case AUDIO_TREBLE:
+
345 hpf_gain += 1;
+
346 if (hpf_gain > 12) {
+
347 hpf_gain = 12;
+
348 }
+
349 ESP_LOGI(TAG, "Treble Up: %i", (int)hpf_gain);
+ +
351 break;
+
352 default:
+
353 break;
+
354 }
+
355 break;
+
356 }
+
357 default:
+
358 ESP_LOGI(TAG, "No function for this button");
+
359 break;
+
360 }
+
361 }
+
362 }
+
363}
+ +
+

References AUDIO_BASS, audio_button_q, AUDIO_TREBLE, AUDIO_VOLUME, current_set, dsps_biquad_gen_highShelf_f32(), dsps_biquad_gen_lowShelf_f32(), full_volume, full_volume_db, hpf_freq, hpf_gain, hpf_qFactor, iir_coeffs_hpf, iir_coeffs_lpf, lpf_freq, lpf_gain, lpf_qFactor, and TAG.

+ +

Referenced by audio_process_task(), audio_process_task(), and audio_process_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ convert_float2short()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
void convert_float2short (float * float_data,
int16_t * int16_data,
int len )
+
+static
+
+ +

Definition at line 119 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
120{
+
121 float multiplier = (float)(INT16_MAX + 1);
+
122 for (int i = 0 ; i < len ; i++) {
+
123 int16_data[i] = (int16_t)((float)multiplier * (float)float_data[i]);
+
124 }
+
125}
+
+

Referenced by audio_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ convert_short2float()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
void convert_short2float (int16_t * int16_data,
float * float_data,
int len )
+
+static
+
+ +

Definition at line 110 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
111{
+
112 float multiplier = 1.0 / (float)(INT16_MAX + 1);
+
113 for (int i = 0 ; i < len ; i++) {
+
114 float_data[i] = (float)int16_data[i] * multiplier;
+
115 }
+
116}
+
+

Referenced by audio_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ digitalLimiter()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void digitalLimiter (float * input_signal,
float * output_signal,
int signal_length,
float threshold,
float attack_value,
float release_value,
float * in_envelope )
+
+ +

Definition at line 133 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
134{
+
135 float envelope = *in_envelope;
+
136 for (int i = 0; i < signal_length; i++) {
+
137 // Calculate envelope
+
138 float abs_input = fabsf(input_signal[i]);
+
139 if (abs_input > envelope) {
+
140 envelope = envelope * (1 - attack_value) + attack_value * abs_input;
+
141 } else {
+
142 envelope = envelope * (1 - release_value) + release_value * abs_input;
+
143 }
+
144
+
145 // Apply compression
+
146 if (envelope > threshold) {
+
147 output_signal[i] = input_signal[i] * (threshold / envelope);
+
148 } else {
+
149 output_signal[i] = input_signal[i];
+
150 }
+
151 }
+
152 *in_envelope = envelope;
+
153}
+
+

Referenced by audio_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ audio_buffer_read_index

+ +
+
+ + + + +
int audio_buffer_read_index = 0
+
+
+ +

◆ audio_buffer_write_index

+ +
+
+ + + + +
int audio_buffer_write_index = 0
+
+
+ +

◆ audio_button_q

+ +
+
+ + + + + +
+ + + + +
QueueHandle_t audio_button_q = NULL
+
+static
+
+
+ +

◆ current_set

+ +
+
+ + + + + +
+ + + + +
audio_set_t current_set = AUDIO_VOLUME
+
+static
+
+
+ +

◆ dumb_wav_header_t

+ +
+
+ + + + +
dumb_wav_header_t
+
+ +

Definition at line 48 of file applications/lyrat_board_app/main/audio_amp_main.c.

+ +
+
+ +

◆ full_envelope

+ +
+
+ + + + +
float full_envelope = 0
+
+
+ +

◆ full_volume

+ + + +

◆ full_volume_db

+ + + +

◆ hpf_freq

+ + + +

◆ hpf_gain

+ + + +

◆ hpf_qFactor

+ + + +

◆ iir_coeffs_hpf

+ + + +

◆ iir_coeffs_lpf

+ + + +

◆ iir_w_hpf

+ +
+
+ + + + +
float iir_w_hpf[5] = {0, 0}
+
+ +

Definition at line 76 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
76{0, 0};
+
+

Referenced by audio_read_task(), audio_read_task(), and audio_read_task().

+ +
+
+ +

◆ iir_w_lpf

+ +
+
+ + + + +
float iir_w_lpf[5] = {0, 0}
+
+ +

Definition at line 73 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
73{0, 0};
+
+

Referenced by audio_read_task(), audio_read_task(), and audio_read_task().

+ +
+
+ +

◆ lpf_freq

+ + + +

◆ lpf_gain

+ + + +

◆ lpf_qFactor

+ + + +

◆ play_file

+ +
+
+ + + + + +
+ + + + +
FILE* play_file = NULL
+
+static
+
+
+ +

◆ play_filename

+ +
+
+ + + + + +
+ + + + +
const char play_filename[] = BSP_SPIFFS_MOUNT_POINT"/16bit_mono_44_1_khz.wav"
+
+static
+
+
+ +

◆ processing_audio_buffer

+ +
+
+ + + + +
float processing_audio_buffer[(64)] = {0}
+
+ +

Definition at line 97 of file applications/lyrat_board_app/main/audio_amp_main.c.

+
97{0};
+
+

Referenced by audio_read_task(), audio_read_task(), and audio_read_task().

+ +
+
+ +

◆ spk_codec_dev

+ +
+
+ + + + + +
+ + + + +
esp_codec_dev_handle_t spk_codec_dev = NULL
+
+static
+
+
+ +

◆ sync_read_task

+ +
+
+ + + + + +
+ + + + +
SemaphoreHandle_t sync_read_task
+
+static
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "example"
+
+static
+
+ +

Definition at line 28 of file applications/lyrat_board_app/main/audio_amp_main.c.

+ +
+
+ +

◆ triple_audio_buffer

+ +
+
+ + + + +
int16_t triple_audio_buffer[3 *(64)] = {0}
+
+
+ +

◆ wav_header

+ +
+
+ + + + + +
+ + + + +
dumb_wav_header_t wav_header
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c.js b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c.js new file mode 100644 index 0000000..1ba3b9f --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c.js @@ -0,0 +1,47 @@ +var applications_2lyrat__board__app_2main_2audio__amp__main_8c = +[ + [ "BUFFER_SIZE", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a6b20d41d6252e9871430c242cb1a56e7", null ], + [ "DEFAULT_VOLUME", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a2c0c52208e7308ae9eecd726fe8d94b9", null ], + [ "SAMPLE_RATE", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a4b76a0c2859cfd819a343a780070ee2b", null ], + [ "audio_set_t", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aa88550699697fdf29720e2001ebb2dfa", null ], + [ "audio_set", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636", [ + [ "AUDIO_VOLUME", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636a7db21c3a9676776cbeb08d3d4d8cff26", null ], + [ "AUDIO_BASS", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636a8838dc83b8126cc7b822eeeb3c27549e", null ], + [ "AUDIO_TREBLE", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636aa31bb158eee95bcc6d353235eeccfc8d", null ] + ] ], + [ "__attribute__", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab898071398b359603a35c202e9c65f3b", null ], + [ "app_main", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a630544a7f0a2cc40d8a7fefab7e2fe70", null ], + [ "audio_process_task", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab091c1cbf0cdee1a9e75495e68236ab6", null ], + [ "audio_read_task", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a11a7e6affe758e24d45f22bade3f7ac3", null ], + [ "btn_handler", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a562facc4884e8a7bb96fe161d64a12da", null ], + [ "buttons_process_task", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a9b37162177a4acfc9abcc52ca620736c", null ], + [ "convert_float2short", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ae8bef2245ac9fb55d56a7af6c4b5fe5d", null ], + [ "convert_short2float", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aedfa0ee2b0d2e41a702707315faa5e10", null ], + [ "digitalLimiter", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a021b7404dd661c25c3fba8503b22d2d7", null ], + [ "audio_buffer_read_index", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#abf0a171fa05c9285f220a8a7c026ea78", null ], + [ "audio_buffer_write_index", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ac4ce7486838450737f3407388be27eb1", null ], + [ "audio_button_q", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a2f9f737de08975b7c91db166e446e5ed", null ], + [ "current_set", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a0f4d8e352563fad11f630e3397b2a35e", null ], + [ "dumb_wav_header_t", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a6fb523d3374e90c95487a5856fe27e4d", null ], + [ "full_envelope", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#adb05d809ff35d5a84ac5c81e6ad029fa", null ], + [ "full_volume", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a473c835640976f08dd3c043cf45594f8", null ], + [ "full_volume_db", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a377a70f7d7888e69a7e59475fa56a64d", null ], + [ "hpf_freq", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a7de9a65dd6a82e5c3bef5c36ad9601ef", null ], + [ "hpf_gain", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a86d4f7276dc47c628790ae25cba8b392", null ], + [ "hpf_qFactor", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a0930702ca45368023f87e4174b354777", null ], + [ "iir_coeffs_hpf", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a218cca73ec4cafd56e29bd5d340dac7d", null ], + [ "iir_coeffs_lpf", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a09781b3eff0bdb87ac78d7cf8438c14f", null ], + [ "iir_w_hpf", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab1a44c64c14e4b4d396460ffc1251234", null ], + [ "iir_w_lpf", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a588993507c1c1661225d5088161f4662", null ], + [ "lpf_freq", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a292487b90ca105833138c5ff4ca13ed2", null ], + [ "lpf_gain", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a73023995ad1fb684def3089e5daa297e", null ], + [ "lpf_qFactor", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab1726f72aeeb2b5c71770a0418648ce9", null ], + [ "play_file", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a064e97adf9481d8a0c99fd365104a8ca", null ], + [ "play_filename", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a581468e92cddeed61e7312af79f18716", null ], + [ "processing_audio_buffer", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a827e26f8698590947b9f34455d4157b5", null ], + [ "spk_codec_dev", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ad5b8a1d8b6ad98b17025c531aafe538b", null ], + [ "sync_read_task", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a0398e7777d8ed80fde3d926ece68d644", null ], + [ "TAG", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ], + [ "triple_audio_buffer", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ae9ae3ea56c76edece8c7bf7b3c6adfc1", null ], + [ "wav_header", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aaa4fc915cb78785c7514677c6ec73df0", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 new file mode 100644 index 0000000..e5e8c59 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 @@ -0,0 +1 @@ +7be942ec435b23a222e43e38f8808047 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg new file mode 100644 index 0000000..9d4d6ca --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg @@ -0,0 +1,1735 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +audio_amp_main.c + + +Node1 + + +audio_amp_main.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +inttypes.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/FreeRTOS.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +freertos/task.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +freertos/queue.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_log.h + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +esp_dsp.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node1->Node12 + + + + + + + + +Node76 + + +bsp/esp-bsp.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +math.h + + + + + +Node1->Node77 + + + + + + + + +Node9 + + +stdlib.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node10->Node11 + + + + + + + + +Node19 + + +dsp_types.h + + + + + +Node10->Node19 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node10->Node20 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node10->Node22 + + + + + + + + +Node34 + + +dsps_fir.h + + + + + +Node10->Node34 + + + + + + + + +Node36 + + +dsps_resampler.h + + + + + +Node10->Node36 + + + + + + + + +Node37 + + +dsps_biquad.h + + + + + +Node10->Node37 + + + + + + + + +Node39 + + +dsps_biquad_gen.h + + + + + +Node10->Node39 + + + + + + + + +Node40 + + +dsps_wind.h + + + + + +Node10->Node40 + + + + + + + + +Node47 + + +dsps_conv.h + + + + + +Node10->Node47 + + + + + + + + +Node49 + + +dsps_corr.h + + + + + +Node10->Node49 + + + + + + + + +Node50 + + +dsps_d_gen.h + + + + + +Node10->Node50 + + + + + + + + +Node51 + + +dsps_h_gen.h + + + + + +Node10->Node51 + + + + + + + + +Node52 + + +dsps_tone_gen.h + + + + + +Node10->Node52 + + + + + + + + +Node53 + + +dsps_snr.h + + + + + +Node10->Node53 + + + + + + + + +Node54 + + +dsps_sfdr.h + + + + + +Node10->Node54 + + + + + + + + +Node55 + + +dsps_fft2r.h + + + + + +Node10->Node55 + + + + + + + + +Node58 + + +dsps_fft4r.h + + + + + +Node10->Node58 + + + + + + + + +Node60 + + +dsps_dct.h + + + + + +Node10->Node60 + + + + + + + + +Node61 + + +dspm_matrix.h + + + + + +Node10->Node61 + + + + + + + + +Node72 + + +dsps_view.h + + + + + +Node10->Node72 + + + + + + + + +Node73 + + +dspi_dotprod.h + + + + + +Node10->Node73 + + + + + + + + +Node75 + + +dspi_conv.h + + + + + +Node10->Node75 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +dsp_err.h + + + + + +Node11->Node14 + + + + + + + + +Node17 + + +esp_idf_version.h + + + + + +Node11->Node17 + + + + + + + + +Node18 + + +x86intrin.h + + + + + +Node11->Node18 + + + + + + + + +Node14->Node12 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node12 + + + + + + + + +Node19->Node13 + + + + + + + + +Node20->Node8 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21 + + +dsps_dotprod_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node4 + + + + + + + + +Node23 + + +dsps_add.h + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +dsps_sub.h + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +dsps_mul.h + + + + + +Node22->Node27 + + + + + + + + +Node29 + + +dsps_addc.h + + + + + +Node22->Node29 + + + + + + + + +Node31 + + +dsps_mulc.h + + + + + +Node22->Node31 + + + + + + + + +Node33 + + +dsps_sqrt.h + + + + + +Node22->Node33 + + + + + + + + +Node23->Node14 + + + + + + + + +Node25->Node14 + + + + + + + + +Node27->Node14 + + + + + + + + +Node29->Node14 + + + + + + + + +Node31->Node14 + + + + + + + + +Node33->Node14 + + + + + + + + +Node34->Node11 + + + + + + + + +Node34->Node14 + + + + + + + + +Node35 + + +dsps_fir_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node4 + + + + + + + + +Node36->Node14 + + + + + + + + +Node36->Node34 + + + + + + + + +Node37->Node14 + + + + + + + + +Node38 + + +dsps_biquad_platform.h + + + + + +Node37->Node38 + + + + + + + + +Node38->Node4 + + + + + + + + +Node39->Node14 + + + + + + + + +Node41 + + +dsps_wind_hann.h + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman.h + + + + + +Node40->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_harris.h + + + + + +Node40->Node43 + + + + + + + + +Node44 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node40->Node44 + + + + + + + + +Node45 + + +dsps_wind_nuttall.h + + + + + +Node40->Node45 + + + + + + + + +Node46 + + +dsps_wind_flat_top.h + + + + + +Node40->Node46 + + + + + + + + +Node47->Node14 + + + + + + + + +Node48 + + +dsps_conv_platform.h + + + + + +Node47->Node48 + + + + + + + + +Node48->Node4 + + + + + + + + +Node49->Node14 + + + + + + + + +Node49->Node48 + + + + + + + + +Node50->Node14 + + + + + + + + +Node51->Node14 + + + + + + + + +Node52->Node14 + + + + + + + + +Node53->Node14 + + + + + + + + +Node54->Node14 + + + + + + + + +Node55->Node4 + + + + + + + + +Node55->Node14 + + + + + + + + +Node56 + + +dsps_fft_tables.h + + + + + +Node55->Node56 + + + + + + + + +Node57 + + +dsps_fft2r_platform.h + + + + + +Node55->Node57 + + + + + + + + +Node57->Node4 + + + + + + + + +Node58->Node4 + + + + + + + + +Node58->Node14 + + + + + + + + +Node58->Node56 + + + + + + + + +Node59 + + +dsps_fft4r_platform.h + + + + + +Node58->Node59 + + + + + + + + +Node59->Node4 + + + + + + + + +Node60->Node4 + + + + + + + + +Node60->Node14 + + + + + + + + +Node62 + + +dspm_add.h + + + + + +Node61->Node62 + + + + + + + + +Node64 + + +dspm_addc.h + + + + + +Node61->Node64 + + + + + + + + +Node66 + + +dspm_mult.h + + + + + +Node61->Node66 + + + + + + + + +Node68 + + +dspm_mulc.h + + + + + +Node61->Node68 + + + + + + + + +Node70 + + +dspm_sub.h + + + + + +Node61->Node70 + + + + + + + + +Node62->Node14 + + + + + + + + +Node64->Node14 + + + + + + + + +Node66->Node14 + + + + + + + + +Node68->Node14 + + + + + + + + +Node70->Node14 + + + + + + + + +Node72->Node14 + + + + + + + + +Node73->Node8 + + + + + + + + +Node73->Node14 + + + + + + + + +Node73->Node19 + + + + + + + + +Node74 + + +dspi_dotprod_platform.h + + + + + +Node73->Node74 + + + + + + + + +Node74->Node4 + + + + + + + + +Node75->Node14 + + + + + + + + +Node75->Node19 + + + + + + + + +Node75->Node48 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg new file mode 100644 index 0000000..e4d1434 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg @@ -0,0 +1,1652 @@ + + + + + + +audio_amp_main.c + + +Node1 + + +audio_amp_main.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +inttypes.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/FreeRTOS.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +freertos/task.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +freertos/queue.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_log.h + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +esp_dsp.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node1->Node12 + + + + + + + + +Node76 + + +bsp/esp-bsp.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +math.h + + + + + +Node1->Node77 + + + + + + + + +Node9 + + +stdlib.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node10->Node11 + + + + + + + + +Node19 + + +dsp_types.h + + + + + +Node10->Node19 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node10->Node20 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node10->Node22 + + + + + + + + +Node34 + + +dsps_fir.h + + + + + +Node10->Node34 + + + + + + + + +Node36 + + +dsps_resampler.h + + + + + +Node10->Node36 + + + + + + + + +Node37 + + +dsps_biquad.h + + + + + +Node10->Node37 + + + + + + + + +Node39 + + +dsps_biquad_gen.h + + + + + +Node10->Node39 + + + + + + + + +Node40 + + +dsps_wind.h + + + + + +Node10->Node40 + + + + + + + + +Node47 + + +dsps_conv.h + + + + + +Node10->Node47 + + + + + + + + +Node49 + + +dsps_corr.h + + + + + +Node10->Node49 + + + + + + + + +Node50 + + +dsps_d_gen.h + + + + + +Node10->Node50 + + + + + + + + +Node51 + + +dsps_h_gen.h + + + + + +Node10->Node51 + + + + + + + + +Node52 + + +dsps_tone_gen.h + + + + + +Node10->Node52 + + + + + + + + +Node53 + + +dsps_snr.h + + + + + +Node10->Node53 + + + + + + + + +Node54 + + +dsps_sfdr.h + + + + + +Node10->Node54 + + + + + + + + +Node55 + + +dsps_fft2r.h + + + + + +Node10->Node55 + + + + + + + + +Node58 + + +dsps_fft4r.h + + + + + +Node10->Node58 + + + + + + + + +Node60 + + +dsps_dct.h + + + + + +Node10->Node60 + + + + + + + + +Node61 + + +dspm_matrix.h + + + + + +Node10->Node61 + + + + + + + + +Node72 + + +dsps_view.h + + + + + +Node10->Node72 + + + + + + + + +Node73 + + +dspi_dotprod.h + + + + + +Node10->Node73 + + + + + + + + +Node75 + + +dspi_conv.h + + + + + +Node10->Node75 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +dsp_err.h + + + + + +Node11->Node14 + + + + + + + + +Node17 + + +esp_idf_version.h + + + + + +Node11->Node17 + + + + + + + + +Node18 + + +x86intrin.h + + + + + +Node11->Node18 + + + + + + + + +Node14->Node12 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node12 + + + + + + + + +Node19->Node13 + + + + + + + + +Node20->Node8 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21 + + +dsps_dotprod_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node4 + + + + + + + + +Node23 + + +dsps_add.h + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +dsps_sub.h + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +dsps_mul.h + + + + + +Node22->Node27 + + + + + + + + +Node29 + + +dsps_addc.h + + + + + +Node22->Node29 + + + + + + + + +Node31 + + +dsps_mulc.h + + + + + +Node22->Node31 + + + + + + + + +Node33 + + +dsps_sqrt.h + + + + + +Node22->Node33 + + + + + + + + +Node23->Node14 + + + + + + + + +Node25->Node14 + + + + + + + + +Node27->Node14 + + + + + + + + +Node29->Node14 + + + + + + + + +Node31->Node14 + + + + + + + + +Node33->Node14 + + + + + + + + +Node34->Node11 + + + + + + + + +Node34->Node14 + + + + + + + + +Node35 + + +dsps_fir_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node4 + + + + + + + + +Node36->Node14 + + + + + + + + +Node36->Node34 + + + + + + + + +Node37->Node14 + + + + + + + + +Node38 + + +dsps_biquad_platform.h + + + + + +Node37->Node38 + + + + + + + + +Node38->Node4 + + + + + + + + +Node39->Node14 + + + + + + + + +Node41 + + +dsps_wind_hann.h + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman.h + + + + + +Node40->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_harris.h + + + + + +Node40->Node43 + + + + + + + + +Node44 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node40->Node44 + + + + + + + + +Node45 + + +dsps_wind_nuttall.h + + + + + +Node40->Node45 + + + + + + + + +Node46 + + +dsps_wind_flat_top.h + + + + + +Node40->Node46 + + + + + + + + +Node47->Node14 + + + + + + + + +Node48 + + +dsps_conv_platform.h + + + + + +Node47->Node48 + + + + + + + + +Node48->Node4 + + + + + + + + +Node49->Node14 + + + + + + + + +Node49->Node48 + + + + + + + + +Node50->Node14 + + + + + + + + +Node51->Node14 + + + + + + + + +Node52->Node14 + + + + + + + + +Node53->Node14 + + + + + + + + +Node54->Node14 + + + + + + + + +Node55->Node4 + + + + + + + + +Node55->Node14 + + + + + + + + +Node56 + + +dsps_fft_tables.h + + + + + +Node55->Node56 + + + + + + + + +Node57 + + +dsps_fft2r_platform.h + + + + + +Node55->Node57 + + + + + + + + +Node57->Node4 + + + + + + + + +Node58->Node4 + + + + + + + + +Node58->Node14 + + + + + + + + +Node58->Node56 + + + + + + + + +Node59 + + +dsps_fft4r_platform.h + + + + + +Node58->Node59 + + + + + + + + +Node59->Node4 + + + + + + + + +Node60->Node4 + + + + + + + + +Node60->Node14 + + + + + + + + +Node62 + + +dspm_add.h + + + + + +Node61->Node62 + + + + + + + + +Node64 + + +dspm_addc.h + + + + + +Node61->Node64 + + + + + + + + +Node66 + + +dspm_mult.h + + + + + +Node61->Node66 + + + + + + + + +Node68 + + +dspm_mulc.h + + + + + +Node61->Node68 + + + + + + + + +Node70 + + +dspm_sub.h + + + + + +Node61->Node70 + + + + + + + + +Node62->Node14 + + + + + + + + +Node64->Node14 + + + + + + + + +Node66->Node14 + + + + + + + + +Node68->Node14 + + + + + + + + +Node70->Node14 + + + + + + + + +Node72->Node14 + + + + + + + + +Node73->Node8 + + + + + + + + +Node73->Node14 + + + + + + + + +Node73->Node19 + + + + + + + + +Node74 + + +dspi_dotprod_platform.h + + + + + +Node73->Node74 + + + + + + + + +Node74->Node4 + + + + + + + + +Node75->Node14 + + + + + + + + +Node75->Node19 + + + + + + + + +Node75->Node48 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 new file mode 100644 index 0000000..435aa18 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 @@ -0,0 +1 @@ +9c27e3155dfcfb6c2b556d984fa57c94 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg new file mode 100644 index 0000000..82bc244 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +digitalLimiter + + +Node1 + + +digitalLimiter + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg new file mode 100644 index 0000000..9918b67 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +digitalLimiter + + +Node1 + + +digitalLimiter + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 new file mode 100644 index 0000000..9a61974 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 @@ -0,0 +1 @@ +b2d89d5ebef0278762ba48c461bc7f43 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg new file mode 100644 index 0000000..23c3b93 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +audio_read_task + + +Node1 + + +audio_read_task + + + + + +Node2 + + +convert_float2short + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +convert_short2float + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +digitalLimiter + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node5 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg new file mode 100644 index 0000000..0b1d004 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +audio_read_task + + +Node1 + + +audio_read_task + + + + + +Node2 + + +convert_float2short + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +convert_short2float + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +digitalLimiter + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node5 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph.md5 new file mode 100644 index 0000000..66d98a1 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph.md5 @@ -0,0 +1 @@ +9e9ab2da04bae161d1b664749386796f \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph.svg new file mode 100644 index 0000000..9f16c46 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +audio_read_task + + +Node1 + + +audio_read_task + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph_org.svg new file mode 100644 index 0000000..d9ba600 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_icgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +audio_read_task + + +Node1 + + +audio_read_task + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph.md5 new file mode 100644 index 0000000..7ea2e71 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph.md5 @@ -0,0 +1 @@ +ae2ae27f8897228defe67b40a5a4d921 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph.svg new file mode 100644 index 0000000..2221ad1 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +btn_handler + + +Node1 + + +btn_handler + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph_org.svg new file mode 100644 index 0000000..59bd0c8 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a562facc4884e8a7bb96fe161d64a12da_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +btn_handler + + +Node1 + + +btn_handler + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 new file mode 100644 index 0000000..f321aba --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 @@ -0,0 +1 @@ +63e463e9ec6183c911201917dda71995 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg new file mode 100644 index 0000000..1e512a5 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +btn_handler + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +audio_read_task + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +convert_float2short + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +convert_short2float + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +digitalLimiter + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +dsps_mulc_f32_ansi + + + + + +Node3->Node7 + + + + + + + + +Node8->Node9 + + + + + + + + +Node8->Node10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg new file mode 100644 index 0000000..5bcb075 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg @@ -0,0 +1,219 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +btn_handler + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +audio_read_task + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +convert_float2short + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +convert_short2float + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +digitalLimiter + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +dsps_mulc_f32_ansi + + + + + +Node3->Node7 + + + + + + + + +Node8->Node9 + + + + + + + + +Node8->Node10 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 new file mode 100644 index 0000000..488e780 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 @@ -0,0 +1 @@ +af768cffde963741e7573c2290d82b55 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg new file mode 100644 index 0000000..b44f798 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +buttons_process_task + + +Node1 + + +buttons_process_task + + + + + +Node2 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg new file mode 100644 index 0000000..a21b6e3 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +buttons_process_task + + +Node1 + + +buttons_process_task + + + + + +Node2 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph.md5 new file mode 100644 index 0000000..f1d5324 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph.md5 @@ -0,0 +1 @@ +b4778bfe32d0e0e369c8819560386f90 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph.svg new file mode 100644 index 0000000..04f25bf --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +buttons_process_task + + +Node1 + + +buttons_process_task + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph_org.svg new file mode 100644 index 0000000..ddee72a --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_icgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +buttons_process_task + + +Node1 + + +buttons_process_task + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 new file mode 100644 index 0000000..f36e26c --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 @@ -0,0 +1 @@ +47cd52c93d34c5a0d8a133210d2b1343 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg new file mode 100644 index 0000000..ef7a576 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg @@ -0,0 +1,209 @@ + + + + + + + + + + + + +audio_process_task + + +Node1 + + +audio_process_task + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +convert_float2short + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +convert_short2float + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +digitalLimiter + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_mulc_f32_ansi + + + + + +Node2->Node6 + + + + + + + + +Node7->Node8 + + + + + + + + +Node7->Node9 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg new file mode 100644 index 0000000..9aa5079 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg @@ -0,0 +1,183 @@ + + + + + + +audio_process_task + + +Node1 + + +audio_process_task + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +convert_float2short + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +convert_short2float + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +digitalLimiter + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_mulc_f32_ansi + + + + + +Node2->Node6 + + + + + + + + +Node7->Node8 + + + + + + + + +Node7->Node9 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph.md5 new file mode 100644 index 0000000..1d5f47b --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph.md5 @@ -0,0 +1 @@ +d5844bfa0c96aad8dd5bb4e7ce7e84d8 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph.svg new file mode 100644 index 0000000..2fbb4d7 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +audio_process_task + + +Node1 + + +audio_process_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph_org.svg new file mode 100644 index 0000000..533c2df --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +audio_process_task + + +Node1 + + +audio_process_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 new file mode 100644 index 0000000..59b969e --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 @@ -0,0 +1 @@ +66aee02694cd08a45a57653de9276f73 \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg new file mode 100644 index 0000000..ac9ab3b --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +convert_float2short + + +Node1 + + +convert_float2short + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg new file mode 100644 index 0000000..52e82c6 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +convert_float2short + + +Node1 + + +convert_float2short + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 new file mode 100644 index 0000000..45f4186 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 @@ -0,0 +1 @@ +e19aa8f070bceebc7c5278e48d045fae \ No newline at end of file diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg new file mode 100644 index 0000000..fe2eb85 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +convert_short2float + + +Node1 + + +convert_short2float + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg new file mode 100644 index 0000000..3e21d0e --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +convert_short2float + + +Node1 + + +convert_short2float + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_source.html b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_source.html new file mode 100644 index 0000000..8668445 --- /dev/null +++ b/docs/html/applications_2lyrat__board__app_2main_2audio__amp__main_8c_source.html @@ -0,0 +1,556 @@ + + + + + + + +ESP-IDF Firmware: audio_amp_main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/lyrat_board_app/main/audio_amp_main.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: CC0-1.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include <inttypes.h>
+
9#include <sdkconfig.h>
+
10#include "freertos/FreeRTOS.h"
+
11#include "freertos/task.h"
+
12#include "freertos/queue.h"
+
13#include "esp_log.h"
+
14#include "esp_dsp.h"
+
15#include "bsp/esp-bsp.h"
+
16#include <stdint.h>
+
17#include <math.h>
+
18
+
19// Buffer for reading/writing to I2S driver. Same length as SPIFFS buffer and I2S buffer, for optimal read/write performance.
+
20// Recording audio data path:
+
21// I2S peripheral -> I2S buffer (DMA) -> App buffer (RAM) -> SPIFFS buffer -> External SPI Flash.
+
22// Vice versa for playback.
+
23#define BUFFER_SIZE (64)
+
24#define SAMPLE_RATE (16000) // For recording
+
25#define DEFAULT_VOLUME (100)
+
26
+
27// Globals
+
28static const char *TAG = "example";
+
29static QueueHandle_t audio_button_q = NULL;
+
30
+
+
31static void btn_handler(void *button_handle, void *usr_data)
+
32{
+
33 int button_pressed = (int)usr_data;
+
34 xQueueSend(audio_button_q, &button_pressed, 0);
+
35}
+
36
+
37// Very simple WAV header, ignores most fields
+
38typedef struct __attribute__((packed))
+
39{
+
40 uint8_t ignore_0[22];
+
41 uint16_t num_channels;
+
42 uint32_t sample_rate;
+
43 uint8_t ignore_1[6];
+
44 uint16_t bits_per_sample;
+
45 uint8_t ignore_2[4];
+
46 uint32_t data_size;
+
47 uint8_t data[];
+ +
+
49
+ +
55
+
56static esp_codec_dev_handle_t spk_codec_dev = NULL;
+
57static FILE *play_file = NULL;
+
58// Pointer to a file that is going to be played
+
59static const char play_filename[] = BSP_SPIFFS_MOUNT_POINT"/16bit_mono_44_1_khz.wav";
+
60
+
61// Definition for all tasks
+
62static void buttons_process_task(void *arg);
+
63static void audio_read_task(void *arg);
+
64static void audio_process_task(void *arg);
+
65
+
66
+
67// Wave file header
+ + +
70
+
71// Data for IIR filters
+ +
73float iir_w_lpf[5] = {0, 0};
+
74
+ +
76float iir_w_hpf[5] = {0, 0};
+
77
+
78// IIR filters parameters
+
79// Parameters for low-pass filter (LPF)
+
80float lpf_gain = 0;
+
81float lpf_qFactor = 0.5;
+
82float lpf_freq = 0.01;
+
83
+
84// Parameters for high-pass filter (HPF)
+
85float hpf_gain = 0;
+
86float hpf_qFactor = 1;
+
87float hpf_freq = 0.15;
+
88
+
89// Volume control definitions
+
90float full_volume = 1;
+
91// Volume in dB
+ +
93// Digital limiter envelope value
+
94float full_envelope = 0;
+
95
+
96// processing audio buffer
+ +
98
+
99// The triple_audio_buffer contains tree data arrays sizeof BUFFER_SIZE, for writing audio data to the codec
+ +
101// The write index shows the audio buffer that will be used to write data to the codec
+ +
103// The read index shows the audio buffer that will be used to fill data from the data source to the processing buffer
+ +
105
+
106// Semaphore to synchronize the read and write
+
107static SemaphoreHandle_t sync_read_task;
+
108
+
109// Convert input int16_t Q15 values array to the float values array
+
+
110static void convert_short2float(int16_t *int16_data, float *float_data, int len)
+
111{
+
112 float multiplier = 1.0 / (float)(INT16_MAX + 1);
+
113 for (int i = 0 ; i < len ; i++) {
+
114 float_data[i] = (float)int16_data[i] * multiplier;
+
115 }
+
116}
+
+
117
+
118// Convert input float values to the int16_t Q15 values array
+
+
119static void convert_float2short(float *float_data, int16_t *int16_data, int len)
+
120{
+
121 float multiplier = (float)(INT16_MAX + 1);
+
122 for (int i = 0 ; i < len ; i++) {
+
123 int16_data[i] = (int16_t)((float)multiplier * (float)float_data[i]);
+
124 }
+
125}
+
+
126
+
127// In the audio processing the valid output audio values for the floating point format should be in range +/- 1.0,
+
128// because these values will be converted to the 0x8000 and 0x7fff int16_t values, and will be accepted by the codec.
+
129// With additional amplification, for example bass, treble, and for other processing, it is possible that the audio
+
130// signal will reach the maximum values and will make an overflow at the DAC.
+
131// To avoid this situation the digital limiter analyze the output values and control the full amplification gain.
+
132//
+
+
133void digitalLimiter(float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
+
134{
+
135 float envelope = *in_envelope;
+
136 for (int i = 0; i < signal_length; i++) {
+
137 // Calculate envelope
+
138 float abs_input = fabsf(input_signal[i]);
+
139 if (abs_input > envelope) {
+
140 envelope = envelope * (1 - attack_value) + attack_value * abs_input;
+
141 } else {
+
142 envelope = envelope * (1 - release_value) + release_value * abs_input;
+
143 }
+
144
+
145 // Apply compression
+
146 if (envelope > threshold) {
+
147 output_signal[i] = input_signal[i] * (threshold / envelope);
+
148 } else {
+
149 output_signal[i] = input_signal[i];
+
150 }
+
151 }
+
152 *in_envelope = envelope;
+
153}
+
+
154
+
+
155static void audio_process_task(void *arg)
+
156{
+
157 // Init codeac and apply the initial volume to maximum
+
158 spk_codec_dev = bsp_audio_codec_speaker_init();
+
159 assert(spk_codec_dev);
+
160 esp_codec_dev_set_out_vol(spk_codec_dev, DEFAULT_VOLUME);
+
161
+
162 // Open file and het the WAV header to set up the sample frequency, amount of channels and resolution
+
163 play_file = fopen(play_filename, "rb");
+
164 if (play_file == NULL) {
+
165 ESP_LOGW(TAG, "%s file does not exist!", play_filename);
+
166 }
+
167 // Read WAV header
+
168 if (fread((void *)&wav_header, 1, sizeof(wav_header), play_file) != sizeof(wav_header)) {
+
169 ESP_LOGW(TAG, "Error in reading file");
+
170 return;
+
171 }
+
172
+
173 ESP_LOGI(TAG, "Number of channels: %" PRIu16 "", wav_header.num_channels);
+
174 ESP_LOGI(TAG, "Bits per sample: %" PRIu16 "", wav_header.bits_per_sample);
+
175 ESP_LOGI(TAG, "Sample rate: %" PRIu32 "", wav_header.sample_rate);
+
176 ESP_LOGI(TAG, "Data size: %" PRIu32 "", wav_header.data_size);
+
177 esp_codec_dev_sample_info_t fs = {
+
178 .sample_rate = wav_header.sample_rate,
+
179 .channel = wav_header.num_channels,
+
180 .bits_per_sample = wav_header.bits_per_sample,
+
181 };
+
182 if (spk_codec_dev != NULL) {
+
183 int result = esp_codec_dev_open(spk_codec_dev, &fs);
+
184 }
+
185 // Calculate initial volume value
+
186 full_volume = exp10f((float)full_volume_db / 20);
+
187 // Calculate initial state for LPF
+ +
189 // Calculate initial state for HPF
+ +
191
+
192 BaseType_t ret = xTaskCreate(buttons_process_task, "buttons_process_task", 4096, NULL, 4, NULL);
+
193 assert(ret == pdPASS);
+
194
+
195 sync_read_task = xSemaphoreCreateCounting(1, 0);
+
196
+
197 ret = xTaskCreate(audio_read_task, "audio_read_task", 4096, NULL, 7, NULL);
+
198 assert(ret == pdPASS);
+
199 vTaskDelay(1);
+
200
+
201 ESP_LOGW(TAG, "To select volume/bass/treble please use the 'Set' button. And adjust the value with +/- buttons.");
+
202
+
203 for (;;) {
+
204 /* Get data from SPIFFS and send it to codec */
+ +
206 // Write samples to audio codec
+
207 esp_codec_dev_write(spk_codec_dev, wav_bytes, BUFFER_SIZE * sizeof(int16_t));
+ +
209 if (audio_buffer_write_index >= 3) {
+ +
211 }
+
212 // Check the triple buffer overflow
+ +
214 // Call delay to switch the task to fill the buffer
+
215 vTaskDelay(1);
+
216 // Check and indicate overflow status
+ +
218 ESP_LOGW(TAG, "Audio buffer overflow!");
+
219 }
+
220 }
+
221 // Generate synt event to read task:
+
222 xSemaphoreGive(sync_read_task);
+
223 }
+
224}
+
+
225
+
226// The audio_read_task is responsible to read data from the file and fill it to the audio buffer.
+
227// The audio buffer is places inside of triple buffer, to avoid overflow situation in case if
+
228// the processing task busy for a while.
+
+
229static void audio_read_task(void *arg)
+
230{
+
231 while (1) {
+
232 // Wait the sync semaphore
+
233 if (xSemaphoreTake(sync_read_task, 100)) {
+
234 // Get the pointer to the current audio buffer
+ +
236 // Read the data from the file
+
237 uint32_t bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
238 // Convert input samples from int16 to float for processing
+ +
240 // Apply bass
+ +
242 // Apply treble
+ +
244 // Apply voluve
+ +
246 // Apply limiter
+ +
248 // Convert from float to int16 for audio codec
+ +
250
+
251 if (bytes_read_from_spiffs != BUFFER_SIZE) {
+
252 // Rewind the file and read the WAV header
+
253 rewind(play_file);
+
254 fread((void *)&wav_header, 1, sizeof(wav_header), play_file);
+
255 // Read data to the audio buffer
+
256 bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
257 }
+ +
259 if (audio_buffer_read_index >= 3) {
+ +
261 }
+
262 } else {
+
263 // Error in case of timeout
+
264 ESP_LOGE(TAG, "Audio timeout!");
+
265 }
+
266 }
+
267}
+
+
268
+
+
269static void buttons_process_task(void *arg)
+
270{
+
271 while (1) {
+
272 int btn_index = 0;
+
273 if (xQueueReceive(audio_button_q, &btn_index, portMAX_DELAY) == pdTRUE) {
+
274 switch (btn_index) {
+
275 case BSP_BUTTON_SET: {
+
276 current_set += 1;
+
277 if (current_set > 2) {
+ +
279 }
+
280 switch (current_set) {
+
281 case AUDIO_VOLUME:
+
282 ESP_LOGW(TAG, "Select volume");
+
283 break;
+
284 case AUDIO_BASS:
+
285 ESP_LOGW(TAG, "Select bass");
+
286 break;
+
287 case AUDIO_TREBLE:
+
288 ESP_LOGW(TAG, "Select treble");
+
289 break;
+
290 default:
+
291 break;
+
292 }
+
293 break;
+
294 }
+
295 case BSP_BUTTON_VOLDOWN: {
+
296 switch (current_set) {
+
297 case AUDIO_VOLUME:
+
298 full_volume_db -= 3;
+
299 if (full_volume_db < -36) {
+
300 full_volume_db = -36;
+
301 }
+
302 full_volume = exp10f((float)full_volume_db / 20);
+
303 ESP_LOGI(TAG, "Volume Down: %i dB", full_volume_db);
+
304 break;
+
305 case AUDIO_BASS:
+
306 lpf_gain -= 1;
+
307 if (lpf_gain < -12) {
+
308 lpf_gain = -12;
+
309 }
+
310 ESP_LOGI(TAG, "Bass Down: %i", (int)lpf_gain);
+ +
312 break;
+
313 case AUDIO_TREBLE:
+
314 hpf_gain -= 1;
+
315 if (hpf_gain < -12) {
+
316 hpf_gain = -12;
+
317 }
+
318 ESP_LOGI(TAG, "Treble Down: %i", (int)hpf_gain);
+ +
320 break;
+
321 default:
+
322 break;
+
323 }
+
324 break;
+
325 }
+
326 case BSP_BUTTON_VOLUP: {
+
327 switch (current_set) {
+
328 case AUDIO_VOLUME:
+
329 full_volume_db += 3;
+
330 if (full_volume_db > 0) {
+
331 full_volume_db = 0;
+
332 }
+
333 full_volume = exp10f((float)full_volume_db / 20);
+
334 ESP_LOGI(TAG, "Volume Up: %i dB", full_volume_db);
+
335 break;
+
336 case AUDIO_BASS:
+
337 lpf_gain += 1;
+
338 if (lpf_gain > 12) {
+
339 lpf_gain = 12;
+
340 }
+
341 ESP_LOGI(TAG, "Bass Up: %i", (int)lpf_gain);
+ +
343 break;
+
344 case AUDIO_TREBLE:
+
345 hpf_gain += 1;
+
346 if (hpf_gain > 12) {
+
347 hpf_gain = 12;
+
348 }
+
349 ESP_LOGI(TAG, "Treble Up: %i", (int)hpf_gain);
+ +
351 break;
+
352 default:
+
353 break;
+
354 }
+
355 break;
+
356 }
+
357 default:
+
358 ESP_LOGI(TAG, "No function for this button");
+
359 break;
+
360 }
+
361 }
+
362 }
+
363}
+
+
364
+
+
365void app_main(void)
+
366{
+
367 ESP_ERROR_CHECK(bsp_spiffs_mount());
+
368
+
369 // Create FreeRTOS tasks and queues
+
370 audio_button_q = xQueueCreate(10, sizeof(int));
+
371 assert (audio_button_q != NULL);
+
372
+
373 BaseType_t ret = xTaskCreate(audio_process_task, "audio_process_task", 4096, NULL, 6, NULL);
+
374 assert(ret == pdPASS);
+
375
+
376 // Init audio buttons
+
377 button_handle_t btns[BSP_BUTTON_NUM];
+
378 ESP_ERROR_CHECK(bsp_iot_button_create(btns, NULL, BSP_BUTTON_NUM));
+
379 for (int i = 0; i < BSP_BUTTON_NUM; i++) {
+
380 ESP_ERROR_CHECK(iot_button_register_cb(btns[i], BUTTON_PRESS_DOWN, btn_handler, (void *) i));
+
381 }
+
382}
+
+ +
void digitalLimiter(float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
+
static SemaphoreHandle_t sync_read_task
+ + + + +
static void audio_read_task(void *arg)
+ + + +
static QueueHandle_t audio_button_q
+ + +
static void btn_handler(void *button_handle, void *usr_data)
+
static const char play_filename[]
+ + + + + + + + +
static void buttons_process_task(void *arg)
+
enum audio_set audio_set_t
+
static dumb_wav_header_t wav_header
+
static void audio_process_task(void *arg)
+ + + + +
static esp_codec_dev_handle_t spk_codec_dev
+ +
static void convert_float2short(float *float_data, int16_t *int16_data, int len)
+ + + + + +
static void convert_short2float(int16_t *int16_data, float *float_data, int len)
+
#define dsps_biquad_f32
Definition dsps_biquad.h:99
+
esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor)
low shelf IIR filter coefficients
+
esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor)
high shelf IIR filter coefficients
+
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+ + +
static const char * TAG
Definition main/main.c:31
+
struct __attribute__((packed))
Definition main/main.c:65
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html new file mode 100644 index 0000000..eba9ff6 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html @@ -0,0 +1,555 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include "sdkconfig.h"
+#include "esp_log.h"
+#include "bsp/m5stack_core_s3.h"
+#include "esp_dsp.h"
+#include "cube_matrix.h"
+#include "esp_logo.h"
+#include "image_to_3d_matrix.h"
+#include "esp_lcd_types.h"
+
+Include dependency graph for applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

void app_main ()
static void init_3d_matrix_struct (image_3d_matrix_t *image)
 Initialize 3d image structure.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void draw_3d_image_task (void *arg)
 RTOS task to draw a 3d image.
lv_display_t * display_init (void)
+ + + + + + +

+Variables

static const char * TAG = "3D image demo"
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
image_3d_matrix_t image
lv_display_t * display = NULL
lv_color16_t color_data [BSP_LCD_H_RES *BSP_LCD_V_RES]
+

Function Documentation

+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 117 of file applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
118{
+
119 ESP_LOGI(TAG, "Start the 3D graphics application");
+ +
121 ekf13->Init();
+
122
+ + +
125
+
126 // Init the display
+ +
128
+
129 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
130
+
131 xTaskCreate(draw_3d_image_task, "draw_3d_image", 16384, &image, 3, NULL);
+
132 ESP_LOGI(TAG, "Showing 3D image");
+
133}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+ + + + +
This class is used to process and calculate attitude from imu sensors.
+
static const char * TAG
Definition main/main.c:31
+
+

References display, display_init(), draw_3d_image_task(), ekf13, image, init_3d_matrix_struct(), init_perspective_matrix(), perspective_matrix, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

Fill the display buffer with points from Logo matrix

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 49 of file applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
50{
+
51 for (int i = 0 ; i < projected_image.rows ; i++) {
+
52 int x = projected_image(i, 0);
+
53 int y = projected_image(i, 1);
+
54
+
55 for (size_t xx = 0; xx < 4; xx++) {
+
56 for (size_t yy = 0; yy < 4; yy++) {
+
57 int index = (y + yy) * BSP_LCD_H_RES + (x + xx);
+
58 color_data[index].blue = 0x00;
+
59 color_data[index].red = 0x1f;
+
60 color_data[index].green = 0x00;
+
61 }
+
62 }
+
63 }
+
64}
+
lv_color16_t color_data[BSP_LCD_H_RES *BSP_LCD_V_RES]
+
int rows
Definition mat.h:33
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References color_data, dspm::Mat::rows, x, and y.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_init()

+ +
+
+ + + + + + + +
lv_display_t * display_init (void )
+
+ +

Definition at line 288 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
289{
+
290 bsp_display_cfg_t cfg = {
+
291 .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(),
+
292 .buffer_size = BSP_LCD_DRAW_BUFF_SIZE,
+
293 .double_buffer = BSP_LCD_DRAW_BUFF_DOUBLE,
+
294 .flags = {
+
295 .buff_dma = true,
+
296 .buff_spiram = false,
+
297 }
+
298 };
+
299 cfg.lvgl_port_cfg.task_affinity = 1; /* For camera */
+ +
301}
+
static lv_display_t * dsp_display_start_with_config(const bsp_display_cfg_t *cfg)
+
+

References dsp_display_start_with_config().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image_task()

+ +
+
+ + + + + +
+ + + + + + + +
void draw_3d_image_task (void * arg)
+
+static
+
+ +

RTOS task to draw a 3d image.

+

Updates 3d matrices, prepares the final 3d matrix to be displayed on the display

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 74 of file applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
75{
+
76 float rot_y = 0;
+
77 const float angle_increment_y = 4;
+ +
79
+
80 dspm::Mat T0 = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
81 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
82 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
83 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
84
+
85 esp_lcd_panel_handle_t panel_handle = (esp_lcd_panel_handle_t)lv_display_get_user_data(display);
+
86 int size = BSP_LCD_H_RES * BSP_LCD_V_RES;
+
87
+
88 while (1) {
+
89
+
90 rot_y -= angle_increment_y;
+
91 if (rot_y <= 0) {
+
92 rot_y += 360;
+
93 }
+
94
+
95 // Apply rotation in all the axes to the transformation matrix
+
96 update_rotation_matrix(T0, 0, rot_y, 0);
+
97 // Scale input matrix to fit the display
+
98 update_scaling_matrix(T0, true, 4, 4, 1);
+
99 // Apply translation to the transformation matrix
+
100 update_translation_matrix(T0, true, ((float)BSP_LCD_H_RES / 2), ((float)BSP_LCD_V_RES / 2), 0);
+
101
+
102 dspm::Mat result_image = matrix_3d * T0 * perspective_matrix;
+
103 // Clear buffer before update
+
104 memset(color_data, 0xff, size * 2);
+
105 // Fill the display buffer with result matrix data
+
106 display_3d_image(result_image);
+
107 // Swap colors to the display format
+
108 lv_draw_sw_rgb565_swap(color_data, size);
+
109 // Update the display
+
110 esp_lcd_panel_draw_bitmap(panel_handle, 0, 0, BSP_LCD_H_RES, BSP_LCD_V_RES, color_data);
+
111 vTaskDelay(20 / portTICK_PERIOD_MS);
+
112 }
+
113}
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
+

References color_data, display, display_3d_image(), dspm::Mat::eye(), image, MATRIX_SIZE, perspective_matrix, update_rotation_matrix(), update_scaling_matrix(), and update_translation_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_t * image)
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure

+
Parameters
+ + +
image3d image structure
+
+
+ +

Definition at line 32 of file applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
33{
+ +
35 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
36 ESP_LOGI(TAG, "Selected 3D image - ESP Logo");
+
37}
+
const float image_3d_matrix_esp_logo[1427][4]
+
+

References image, image_3d_matrix_esp_logo, MATRIX_SIZE, and TAG.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ color_data

+ +
+
+ + + + +
lv_color16_t color_data[BSP_LCD_H_RES *BSP_LCD_V_RES]
+
+
+ +

◆ display

+ +
+
+ + + + +
lv_display_t* display = NULL
+
+
+ +

◆ image

+ + + +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "3D image demo"
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js new file mode 100644 index 0000000..1251d2b --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js @@ -0,0 +1,13 @@ +var applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp = +[ + [ "app_main", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "display_3d_image", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "display_init", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af2392dd06c1a7e0f317d26309d9e0d18", null ], + [ "draw_3d_image_task", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af3debef909dca35dbf0b6f842df6def3", null ], + [ "init_3d_matrix_struct", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a3340d28d7e9de0fd62d17e02ce70a52c", null ], + [ "color_data", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a379686c37cdcf19146cc64955aad7553", null ], + [ "display", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a94cee89137dc23941cca5f855cc1140c", null ], + [ "image", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af643ed4087a70fb8ad4885eadf1fd862", null ], + [ "perspective_matrix", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "TAG", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 new file mode 100644 index 0000000..9c0f8a7 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +b190e8b8e20fae01b0aaa0a07ae77d47 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg new file mode 100644 index 0000000..bbf1492 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg @@ -0,0 +1,1735 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_dsp.h + + + + + +Node1->Node8 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +image_to_3d_matrix.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +esp_lcd_types.h + + + + + +Node1->Node78 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +dsp_common.h + + + + + +Node8->Node9 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node8->Node17 + + + + + + + + +Node19 + + +dsps_dotprod.h + + + + + +Node8->Node19 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node8->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node8->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node8->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node8->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node8->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node8->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node8->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node8->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node8->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node8->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node8->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node8->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node8->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node8->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node8->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node8->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node8->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node8->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node8->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node8->Node74 + + + + + + + + +Node10 + + +stdint.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +dsp_err.h + + + + + +Node9->Node12 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node9->Node15 + + + + + + + + +Node16 + + +x86intrin.h + + + + + +Node9->Node16 + + + + + + + + +Node12->Node10 + + + + + + + + +Node17->Node10 + + + + + + + + +Node17->Node11 + + + + + + + + +Node18 + + +inttypes.h + + + + + +Node17->Node18 + + + + + + + + +Node19->Node5 + + + + + + + + +Node19->Node12 + + + + + + + + +Node20 + + +dsps_dotprod_platform.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node12 + + + + + + + + +Node24->Node12 + + + + + + + + +Node26->Node12 + + + + + + + + +Node28->Node12 + + + + + + + + +Node30->Node12 + + + + + + + + +Node32->Node12 + + + + + + + + +Node33->Node9 + + + + + + + + +Node33->Node12 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node4 + + + + + + + + +Node35->Node12 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node12 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node4 + + + + + + + + +Node38->Node12 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node12 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node4 + + + + + + + + +Node48->Node12 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node12 + + + + + + + + +Node50->Node12 + + + + + + + + +Node51->Node12 + + + + + + + + +Node52->Node12 + + + + + + + + +Node53->Node12 + + + + + + + + +Node54->Node4 + + + + + + + + +Node54->Node12 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node4 + + + + + + + + +Node57->Node4 + + + + + + + + +Node57->Node12 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node4 + + + + + + + + +Node59->Node4 + + + + + + + + +Node59->Node12 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node12 + + + + + + + + +Node63->Node12 + + + + + + + + +Node65->Node12 + + + + + + + + +Node67->Node12 + + + + + + + + +Node69->Node12 + + + + + + + + +Node71->Node12 + + + + + + + + +Node72->Node5 + + + + + + + + +Node72->Node12 + + + + + + + + +Node72->Node17 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node74->Node12 + + + + + + + + +Node74->Node17 + + + + + + + + +Node74->Node47 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..73a2cdc --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg @@ -0,0 +1,1652 @@ + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_dsp.h + + + + + +Node1->Node8 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +image_to_3d_matrix.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +esp_lcd_types.h + + + + + +Node1->Node78 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +dsp_common.h + + + + + +Node8->Node9 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node8->Node17 + + + + + + + + +Node19 + + +dsps_dotprod.h + + + + + +Node8->Node19 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node8->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node8->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node8->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node8->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node8->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node8->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node8->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node8->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node8->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node8->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node8->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node8->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node8->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node8->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node8->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node8->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node8->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node8->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node8->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node8->Node74 + + + + + + + + +Node10 + + +stdint.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +dsp_err.h + + + + + +Node9->Node12 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node9->Node15 + + + + + + + + +Node16 + + +x86intrin.h + + + + + +Node9->Node16 + + + + + + + + +Node12->Node10 + + + + + + + + +Node17->Node10 + + + + + + + + +Node17->Node11 + + + + + + + + +Node18 + + +inttypes.h + + + + + +Node17->Node18 + + + + + + + + +Node19->Node5 + + + + + + + + +Node19->Node12 + + + + + + + + +Node20 + + +dsps_dotprod_platform.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node12 + + + + + + + + +Node24->Node12 + + + + + + + + +Node26->Node12 + + + + + + + + +Node28->Node12 + + + + + + + + +Node30->Node12 + + + + + + + + +Node32->Node12 + + + + + + + + +Node33->Node9 + + + + + + + + +Node33->Node12 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node4 + + + + + + + + +Node35->Node12 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node12 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node4 + + + + + + + + +Node38->Node12 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node12 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node4 + + + + + + + + +Node48->Node12 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node12 + + + + + + + + +Node50->Node12 + + + + + + + + +Node51->Node12 + + + + + + + + +Node52->Node12 + + + + + + + + +Node53->Node12 + + + + + + + + +Node54->Node4 + + + + + + + + +Node54->Node12 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node4 + + + + + + + + +Node57->Node4 + + + + + + + + +Node57->Node12 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node4 + + + + + + + + +Node59->Node4 + + + + + + + + +Node59->Node12 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node12 + + + + + + + + +Node63->Node12 + + + + + + + + +Node65->Node12 + + + + + + + + +Node67->Node12 + + + + + + + + +Node69->Node12 + + + + + + + + +Node71->Node12 + + + + + + + + +Node72->Node5 + + + + + + + + +Node72->Node12 + + + + + + + + +Node72->Node17 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node74->Node12 + + + + + + + + +Node74->Node17 + + + + + + + + +Node74->Node47 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 new file mode 100644 index 0000000..6551dac --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 @@ -0,0 +1 @@ +afd52d0cbc4c40df0174dd7ba5ecd42b \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg new file mode 100644 index 0000000..67c5662 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg new file mode 100644 index 0000000..cf46833 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..a6597e1 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +b9abac877f10a26e1a970ee8c6953dda \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..073d336 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..5560d7d --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..068e41a --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +8c17bdec56589e4a8dae814c47088617 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..7b799db --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +display_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node19 + + +init_3d_matrix_struct + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +init_perspective_matrix + + + + + +Node1->Node20 + + + + + + + + +Node3 + + +dsp_display_start_with +_config + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_display_lcd_init + + + + + +Node3->Node4 + + + + + + + + +Node9 + + +dsp_display_brightness_init + + + + + +Node3->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +dspm::Mat::eye + + + + + +Node10->Node12 + + + + + + + + +Node15 + + +update_rotation_matrix + + + + + +Node10->Node15 + + + + + + + + +Node18 + + +update_translation +_matrix + + + + + +Node10->Node18 + + + + + + + + +Node13 + + +dspm::Mat::Mat + + + + + +Node12->Node13 + + + + + + + + +Node16 + + +ekf::eul2rotm + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dspm::Mat::t + + + + + +Node15->Node17 + + + + + + + + +Node17->Node13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..790ab99 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,284 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +display_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node19 + + +init_3d_matrix_struct + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +init_perspective_matrix + + + + + +Node1->Node20 + + + + + + + + +Node3 + + +dsp_display_start_with +_config + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_display_lcd_init + + + + + +Node3->Node4 + + + + + + + + +Node9 + + +dsp_display_brightness_init + + + + + +Node3->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +dspm::Mat::eye + + + + + +Node10->Node12 + + + + + + + + +Node15 + + +update_rotation_matrix + + + + + +Node10->Node15 + + + + + + + + +Node18 + + +update_translation +_matrix + + + + + +Node10->Node18 + + + + + + + + +Node13 + + +dspm::Mat::Mat + + + + + +Node12->Node13 + + + + + + + + +Node16 + + +ekf::eul2rotm + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dspm::Mat::t + + + + + +Node15->Node17 + + + + + + + + +Node17->Node13 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 new file mode 100644 index 0000000..51a3e53 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 @@ -0,0 +1 @@ +b3021dd6c46ff937b19ae7aa8d0afe7c \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg new file mode 100644 index 0000000..fe49f94 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsp_display_brightness_init + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +dsp_display_new + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_i2c_init + + + + + +Node8->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg new file mode 100644 index 0000000..06be0bc --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg @@ -0,0 +1,112 @@ + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsp_display_brightness_init + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +dsp_display_new + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_i2c_init + + + + + +Node8->Node6 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 new file mode 100644 index 0000000..d90b552 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 @@ -0,0 +1 @@ +af8232b033464037f3ef044bd734346f \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg new file mode 100644 index 0000000..3631eaa --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg new file mode 100644 index 0000000..8ba5406 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 new file mode 100644 index 0000000..8a00c67 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 @@ -0,0 +1 @@ +d34e43428f6d7cc65ebceb1575f9c239 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg new file mode 100644 index 0000000..7180b16 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_scaling_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_translation +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg new file mode 100644 index 0000000..b3fdb55 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg @@ -0,0 +1,193 @@ + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_scaling_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_translation +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html new file mode 100644 index 0000000..f3f65e3 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html @@ -0,0 +1,254 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include <string.h>
+
9#include "sdkconfig.h"
+
10#include "esp_log.h"
+
11#include "bsp/m5stack_core_s3.h"
+
12#include "esp_dsp.h"
+
13#include "cube_matrix.h"
+
14#include "esp_logo.h"
+
15#include "image_to_3d_matrix.h"
+
16#include "esp_lcd_types.h"
+
17
+
18
+
19static const char *TAG = "3D image demo";
+ + +
22
+
23extern "C" void app_main();
+
24
+
+ +
33{
+ +
35 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
36 ESP_LOGI(TAG, "Selected 3D image - ESP Logo");
+
37}
+
+
38
+
39lv_display_t *display = NULL;
+
40lv_color16_t color_data[BSP_LCD_H_RES * BSP_LCD_V_RES];
+
41
+
+
49static void display_3d_image(dspm::Mat projected_image)
+
50{
+
51 for (int i = 0 ; i < projected_image.rows ; i++) {
+
52 int x = projected_image(i, 0);
+
53 int y = projected_image(i, 1);
+
54
+
55 for (size_t xx = 0; xx < 4; xx++) {
+
56 for (size_t yy = 0; yy < 4; yy++) {
+
57 int index = (y + yy) * BSP_LCD_H_RES + (x + xx);
+
58 color_data[index].blue = 0x00;
+
59 color_data[index].red = 0x1f;
+
60 color_data[index].green = 0x00;
+
61 }
+
62 }
+
63 }
+
64}
+
+
65
+
73
+
+
74static void draw_3d_image_task(void *arg)
+
75{
+
76 float rot_y = 0;
+
77 const float angle_increment_y = 4;
+ +
79
+
80 dspm::Mat T0 = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
81 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
82 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
83 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
84
+
85 esp_lcd_panel_handle_t panel_handle = (esp_lcd_panel_handle_t)lv_display_get_user_data(display);
+
86 int size = BSP_LCD_H_RES * BSP_LCD_V_RES;
+
87
+
88 while (1) {
+
89
+
90 rot_y -= angle_increment_y;
+
91 if (rot_y <= 0) {
+
92 rot_y += 360;
+
93 }
+
94
+
95 // Apply rotation in all the axes to the transformation matrix
+
96 update_rotation_matrix(T0, 0, rot_y, 0);
+
97 // Scale input matrix to fit the display
+
98 update_scaling_matrix(T0, true, 4, 4, 1);
+
99 // Apply translation to the transformation matrix
+
100 update_translation_matrix(T0, true, ((float)BSP_LCD_H_RES / 2), ((float)BSP_LCD_V_RES / 2), 0);
+
101
+
102 dspm::Mat result_image = matrix_3d * T0 * perspective_matrix;
+
103 // Clear buffer before update
+
104 memset(color_data, 0xff, size * 2);
+
105 // Fill the display buffer with result matrix data
+
106 display_3d_image(result_image);
+
107 // Swap colors to the display format
+
108 lv_draw_sw_rgb565_swap(color_data, size);
+
109 // Update the display
+
110 esp_lcd_panel_draw_bitmap(panel_handle, 0, 0, BSP_LCD_H_RES, BSP_LCD_V_RES, color_data);
+
111 vTaskDelay(20 / portTICK_PERIOD_MS);
+
112 }
+
113}
+
+
114
+
115extern "C" lv_display_t *display_init(void);
+
116
+
+
117void app_main(void)
+
118{
+
119 ESP_LOGI(TAG, "Start the 3D graphics application");
+ +
121 ekf13->Init();
+
122
+ + +
125
+
126 // Init the display
+ +
128
+
129 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
130
+
131 xTaskCreate(draw_3d_image_task, "draw_3d_image", 16384, &image, 3, NULL);
+
132 ESP_LOGI(TAG, "Showing 3D image");
+
133}
+
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
const float image_3d_matrix_esp_logo[1427][4]
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+
lv_color16_t color_data[BSP_LCD_H_RES *BSP_LCD_V_RES]
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ + + +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+ + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+ + +
static const char * TAG
Definition main/main.c:31
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html new file mode 100644 index 0000000..9634efa --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html @@ -0,0 +1,1213 @@ + + + + + + + +ESP-IDF Firmware: init_display.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
init_display.c File Reference
+
+
+
#include "bsp/m5stack_core_s3.h"
+#include "esp_log.h"
+#include "esp_dsp.h"
+#include "esp_lcd_ili9341.h"
+#include "esp_err.h"
+
+Include dependency graph for applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + +

+Macros

#define BSP_AXP2101_ADDR   0x34
#define BSP_AW9523_ADDR   0x58
#define BSP_ERROR_CHECK_RETURN_ERR(x)
#define ESP_RETURN_ON_ERROR(x, log_tag, format, ...)
#define BSP_ERROR_CHECK_RETURN_NULL(x)
#define BSP_NULL_CHECK(x, ret)
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format, ...)
#define LCD_CMD_BITS   8
#define LCD_PARAM_BITS   8
#define LCD_LEDC_CH   CONFIG_BSP_DISPLAY_BRIGHTNESS_LEDC_CH
+ + +

+Enumerations

enum  bsp_feature_t {
+  BSP_FEATURE_LCD +, BSP_FEATURE_TOUCH +, BSP_FEATURE_SD +, BSP_FEATURE_SPEAKER +,
+  BSP_FEATURE_CAMERA +
+ }
+ + + + + + + + + +

+Functions

esp_err_t bsp_i2c_init (void)
static esp_err_t dsp_display_brightness_init (void)
static esp_err_t bsp_spi_init (uint32_t max_transfer_sz)
static esp_err_t bsp_enable_feature (bsp_feature_t feature)
esp_err_t dsp_display_new (const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io)
static lv_display_t * bsp_display_lcd_init (const bsp_display_cfg_t *cfg)
static lv_display_t * dsp_display_start_with_config (const bsp_display_cfg_t *cfg)
lv_display_t * display_init (void)
+ + + + + + + + +

+Variables

static i2c_master_bus_handle_t i2c_handle = NULL
static bool i2c_initialized = false
static i2c_master_dev_handle_t axp2101_h = NULL
static i2c_master_dev_handle_t aw9523_h = NULL
static bool spi_initialized = false
static const char * TAG = "3d-graphics"
static lv_display_t * disp
+

Macro Definition Documentation

+ +

◆ BSP_AW9523_ADDR

+ +
+
+ + + + +
#define BSP_AW9523_ADDR   0x58
+
+ +

Definition at line 19 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+ +

Referenced by bsp_i2c_init().

+ +
+
+ +

◆ BSP_AXP2101_ADDR

+ +
+
+ + + + +
#define BSP_AXP2101_ADDR   0x34
+
+ +

Definition at line 18 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+ +

Referenced by bsp_i2c_init().

+ +
+
+ +

◆ BSP_ERROR_CHECK_RETURN_ERR

+ +
+
+ + + + + + + +
#define BSP_ERROR_CHECK_RETURN_ERR( x)
+
+Value:
do { \
+
esp_err_t err_rc_ = (x); \
+
if (unlikely(err_rc_ != ESP_OK)) { \
+
return err_rc_; \
+
} \
+
} while(0)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float x[1024]
Definition test_fir.c:10
+
+

Definition at line 21 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
21#define BSP_ERROR_CHECK_RETURN_ERR(x) do { \
+
22 esp_err_t err_rc_ = (x); \
+
23 if (unlikely(err_rc_ != ESP_OK)) { \
+
24 return err_rc_; \
+
25 } \
+
26} while(0)
+
+

Referenced by bsp_enable_feature(), bsp_i2c_init(), dsp_display_brightness_init(), and dsp_display_new().

+ +
+
+ +

◆ BSP_ERROR_CHECK_RETURN_NULL

+ +
+
+ + + + + + + +
#define BSP_ERROR_CHECK_RETURN_NULL( x)
+
+Value:
do { \
+
if (unlikely((x) != ESP_OK)) { \
+
return NULL; \
+
} \
+
} while(0)
+
+

Definition at line 37 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
37#define BSP_ERROR_CHECK_RETURN_NULL(x) do { \
+
38 if (unlikely((x) != ESP_OK)) { \
+
39 return NULL; \
+
40 } \
+
41} while(0)
+
+

Referenced by bsp_display_lcd_init(), and dsp_display_start_with_config().

+ +
+
+ +

◆ BSP_NULL_CHECK

+ +
+
+ + + + + + + + + + + +
#define BSP_NULL_CHECK( x,
ret )
+
+Value:
do { \
+
if ((x) == NULL) { \
+
return ret; \
+
} \
+
} while(0)
+
+

Definition at line 43 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
43#define BSP_NULL_CHECK(x, ret) do { \
+
44 if ((x) == NULL) { \
+
45 return ret; \
+
46 } \
+
47} while(0)
+
+

Referenced by dsp_display_start_with_config().

+ +
+
+ +

◆ ESP_GOTO_ON_ERROR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
#define ESP_GOTO_ON_ERROR( x,
goto_tag,
log_tag,
format,
... )
+
+Value:
do { \
+
esp_err_t err_rc_ = (x); \
+
if (unlikely(err_rc_ != ESP_OK)) { \
+
ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
ret = err_rc_; \
+
goto goto_tag; \
+
} \
+
} while(0)
+
+

Definition at line 49 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
49#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format, ...) do { \
+
50 esp_err_t err_rc_ = (x); \
+
51 if (unlikely(err_rc_ != ESP_OK)) { \
+
52 ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
53 ret = err_rc_; \
+
54 goto goto_tag; \
+
55 } \
+
56} while(0)
+
+

Referenced by dsp_display_new(), led_strip_new_rmt_device(), led_strip_new_rmt_device(), led_strip_new_spi_device(), and rmt_new_led_strip_encoder().

+ +
+
+ +

◆ ESP_RETURN_ON_ERROR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
#define ESP_RETURN_ON_ERROR( x,
log_tag,
format,
... )
+
+Value:
do { \
+
esp_err_t err_rc_ = (x); \
+
if (unlikely(err_rc_ != ESP_OK)) { \
+
ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
return err_rc_; \
+
} \
+
} while(0)
+
+

Definition at line 29 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
29#define ESP_RETURN_ON_ERROR(x, log_tag, format, ...) do { \
+
30 esp_err_t err_rc_ = (x); \
+
31 if (unlikely(err_rc_ != ESP_OK)) { \
+
32 ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
33 return err_rc_; \
+
34 } \
+
35} while(0)
+
+

Referenced by bsp_spi_init(), dsp_display_brightness_init(), dsp_display_new(), esp_tusb_deinit_console(), esp_tusb_init_console(), led_strip_rmt_del(), led_strip_rmt_del(), led_strip_rmt_refresh(), led_strip_rmt_refresh(), led_strip_spi_del(), led_strip_spi_refresh(), tinyusb_cdc_deinit(), tinyusb_cdc_init(), tinyusb_cdcacm_read(), tinyusb_driver_install(), tusb_cdc_acm_init(), tusb_cdc_comm_init(), tusb_cdc_data_init(), tusb_cdc_deinit_comm(), tusb_cdc_deinit_data(), wave_gen_init(), wave_gen_sdm_start(), and wave_gen_start().

+ +
+
+ +

◆ LCD_CMD_BITS

+ +
+
+ + + + +
#define LCD_CMD_BITS   8
+
+
+ +

◆ LCD_LEDC_CH

+ +
+
+ + + + +
#define LCD_LEDC_CH   CONFIG_BSP_DISPLAY_BRIGHTNESS_LEDC_CH
+
+
+ +

◆ LCD_PARAM_BITS

+ +
+
+ + + + +
#define LCD_PARAM_BITS   8
+
+
+

Enumeration Type Documentation

+ +

◆ bsp_feature_t

+ + +

Function Documentation

+ +

◆ bsp_display_lcd_init()

+ +
+
+ + + + + +
+ + + + + + + +
lv_display_t * bsp_display_lcd_init (const bsp_display_cfg_t * cfg)
+
+static
+
+ +

Definition at line 253 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
254{
+
255 assert(cfg != NULL);
+
256 esp_lcd_panel_io_handle_t io_handle = NULL;
+
257 esp_lcd_panel_handle_t panel_handle = NULL;
+
258 const bsp_display_config_t bsp_disp_cfg = {
+
259 .max_transfer_sz = BSP_LCD_DRAW_BUFF_SIZE * sizeof(uint16_t),
+
260 };
+
261 BSP_ERROR_CHECK_RETURN_NULL(dsp_display_new(&bsp_disp_cfg, &panel_handle, &io_handle));
+
262
+
263 esp_lcd_panel_disp_on_off(panel_handle, true);
+
264
+
265 lv_display_t *display = lv_display_create(BSP_LCD_H_RES, BSP_LCD_V_RES);
+
266
+
267 lv_display_set_user_data(display, panel_handle);
+
268 // set color depth
+
269 lv_display_set_color_format(display, LV_COLOR_FORMAT_RGB565);
+
270
+
271 return display;
+
272}
+ +
esp_err_t dsp_display_new(const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io)
+ +
+

References BSP_ERROR_CHECK_RETURN_NULL, display, and dsp_display_new().

+ +

Referenced by dsp_display_start_with_config().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ bsp_enable_feature()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t bsp_enable_feature (bsp_feature_t feature)
+
+static
+
+ +

Definition at line 139 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
140{
+
141 esp_err_t err = ESP_OK;
+
142 static uint8_t aw9523_P0 = 0b10;
+
143 static uint8_t aw9523_P1 = 0b10100000;
+
144 uint8_t data[2];
+
145
+
146 /* Initilize I2C */
+ +
148
+
149 switch (feature) {
+
150 case BSP_FEATURE_LCD:
+
151 /* Enable LCD */
+
152 aw9523_P1 |= (1 << 1);
+
153 break;
+ +
155 /* Enable Touch */
+
156 aw9523_P0 |= (1);
+
157 break;
+
158 case BSP_FEATURE_SD:
+
159 /* AXP ALDO4 voltage / SD Card / 3V3 */
+
160 data[0] = 0x95;
+
161 data[1] = 0b00011100; //3V3
+
162 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
163 /* Enable SD */
+
164 aw9523_P0 |= (1 << 4);
+
165 break;
+ +
167 /* AXP ALDO1 voltage / PA PVDD / 1V8 */
+
168 data[0] = 0x92;
+
169 data[1] = 0b00001101; //1V8
+
170 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
171 /* AXP ALDO2 voltage / Codec / 3V3 */
+
172 data[0] = 0x93;
+
173 data[1] = 0b00011100; //3V3
+
174 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
175 /* AXP ALDO3 voltage / Codec+Mic / 3V3 */
+
176 data[0] = 0x94;
+
177 data[1] = 0b00011100; //3V3
+
178 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
179 /* AW9523 P0 is in push-pull mode */
+
180 data[0] = 0x11;
+
181 data[1] = 0x10;
+
182 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
183 /* Enable Codec AW88298 */
+
184 aw9523_P0 |= (1 << 2);
+
185 break;
+ +
187 /* Enable Camera */
+
188 aw9523_P1 |= (1);
+
189 break;
+
190 }
+
191
+
192 data[0] = 0x02;
+
193 data[1] = aw9523_P0;
+
194 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
195
+
196 data[0] = 0x03;
+
197 data[1] = aw9523_P1;
+
198 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
199
+
200 return err;
+
201}
+ + + + +
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References aw9523_h, axp2101_h, BSP_ERROR_CHECK_RETURN_ERR, BSP_FEATURE_CAMERA, BSP_FEATURE_LCD, BSP_FEATURE_SD, BSP_FEATURE_SPEAKER, BSP_FEATURE_TOUCH, bsp_i2c_init(), data, and ESP_OK.

+ +

Referenced by dsp_display_new().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ bsp_i2c_init()

+ +
+
+ + + + + + + +
esp_err_t bsp_i2c_init (void )
+
+ +

Definition at line 60 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
61{
+
62 /* I2C was initialized before */
+
63 if (i2c_initialized) {
+
64 return ESP_OK;
+
65 }
+
66
+
67 const i2c_master_bus_config_t i2c_config = {
+
68 .i2c_port = BSP_I2C_NUM,
+
69 .sda_io_num = BSP_I2C_SDA,
+
70 .scl_io_num = BSP_I2C_SCL,
+
71 .clk_source = 1,
+
72 };
+
73 BSP_ERROR_CHECK_RETURN_ERR(i2c_new_master_bus(&i2c_config, &i2c_handle));
+
74
+
75 // AXP2101 and AW9523 are managed by this BSP
+
76 const i2c_device_config_t axp2101_config = {
+
77 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
78 .device_address = BSP_AXP2101_ADDR,
+
79 .scl_speed_hz = 400000,
+
80 };
+
81 BSP_ERROR_CHECK_RETURN_ERR(i2c_master_bus_add_device(i2c_handle, &axp2101_config, &axp2101_h));
+
82 const i2c_device_config_t aw9523_config = {
+
83 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
84 .device_address = BSP_AW9523_ADDR,
+
85 .scl_speed_hz = 400000,
+
86 };
+
87 BSP_ERROR_CHECK_RETURN_ERR(i2c_master_bus_add_device(i2c_handle, &aw9523_config, &aw9523_h));
+
88
+
89 i2c_initialized = true;
+
90 return ESP_OK;
+
91}
+
static i2c_master_bus_handle_t i2c_handle
+ + + +
+

References aw9523_h, axp2101_h, BSP_AW9523_ADDR, BSP_AXP2101_ADDR, BSP_ERROR_CHECK_RETURN_ERR, ESP_OK, i2c_handle, and i2c_initialized.

+ +

Referenced by app_main(), app_main(), bsp_enable_feature(), and dsp_display_brightness_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ bsp_spi_init()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t bsp_spi_init (uint32_t max_transfer_sz)
+
+static
+
+ +

Definition at line 107 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
108{
+
109 /* SPI was initialized before */
+
110 if (spi_initialized) {
+
111 return ESP_OK;
+
112 }
+
113
+
114 ESP_LOGD(TAG, "Initialize SPI bus");
+
115 const spi_bus_config_t buscfg = {
+
116 .sclk_io_num = BSP_LCD_PCLK,
+
117 .mosi_io_num = BSP_LCD_MOSI,
+
118 .miso_io_num = BSP_LCD_MISO,
+
119 .quadwp_io_num = GPIO_NUM_NC,
+
120 .quadhd_io_num = GPIO_NUM_NC,
+
121 .max_transfer_sz = max_transfer_sz,
+
122 };
+
123 ESP_RETURN_ON_ERROR(spi_bus_initialize(BSP_LCD_SPI_NUM, &buscfg, SPI_DMA_CH_AUTO), TAG, "SPI init failed");
+
124
+
125 spi_initialized = true;
+
126
+
127 return ESP_OK;
+
128}
+ +
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, spi_initialized, and TAG.

+ +

Referenced by dsp_display_new().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_init()

+ +
+
+ + + + + + + +
lv_display_t * display_init (void )
+
+ +

Definition at line 288 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
289{
+
290 bsp_display_cfg_t cfg = {
+
291 .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(),
+
292 .buffer_size = BSP_LCD_DRAW_BUFF_SIZE,
+
293 .double_buffer = BSP_LCD_DRAW_BUFF_DOUBLE,
+
294 .flags = {
+
295 .buff_dma = true,
+
296 .buff_spiram = false,
+
297 }
+
298 };
+
299 cfg.lvgl_port_cfg.task_affinity = 1; /* For camera */
+ +
301}
+
static lv_display_t * dsp_display_start_with_config(const bsp_display_cfg_t *cfg)
+
+
+
+ +

◆ dsp_display_brightness_init()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t dsp_display_brightness_init (void )
+
+static
+
+ +

Definition at line 93 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
94{
+
95 /* Initilize I2C */
+ +
97
+
98 const uint8_t lcd_bl_en[] = { 0x90, 0xBF }; // AXP DLDO1 Enable
+
99 ESP_RETURN_ON_ERROR(i2c_master_transmit(axp2101_h, lcd_bl_en, sizeof(lcd_bl_en), 1000), TAG, "I2C write failed");
+
100 const uint8_t lcd_bl_val[] = { 0x99, 0b00011000 }; // AXP DLDO1 voltage
+
101 ESP_RETURN_ON_ERROR(i2c_master_transmit(axp2101_h, lcd_bl_val, sizeof(lcd_bl_val), 1000), TAG, "I2C write failed");
+
102
+
103 return ESP_OK;
+
104}
+
+

References axp2101_h, BSP_ERROR_CHECK_RETURN_ERR, bsp_i2c_init(), ESP_OK, ESP_RETURN_ON_ERROR, and TAG.

+ +

Referenced by dsp_display_start_with_config().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsp_display_new()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsp_display_new (const bsp_display_config_t * config,
esp_lcd_panel_handle_t * ret_panel,
esp_lcd_panel_io_handle_t * ret_io )
+
+ +

Definition at line 207 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
208{
+
209 esp_err_t ret = ESP_OK;
+
210 assert(config != NULL && config->max_transfer_sz > 0);
+
211
+ +
213
+
214 /* Initialize SPI */
+
215 ESP_RETURN_ON_ERROR(bsp_spi_init(config->max_transfer_sz), TAG, "");
+
216
+
217 ESP_LOGD(TAG, "Install panel IO");
+
218 const esp_lcd_panel_io_spi_config_t io_config = {
+
219 .dc_gpio_num = BSP_LCD_DC,
+
220 .cs_gpio_num = BSP_LCD_CS,
+
221 .pclk_hz = BSP_LCD_PIXEL_CLOCK_HZ,
+
222 .lcd_cmd_bits = LCD_CMD_BITS,
+
223 .lcd_param_bits = LCD_PARAM_BITS,
+
224 .spi_mode = 0,
+
225 .trans_queue_depth = 10,
+
226 };
+
227 ESP_GOTO_ON_ERROR(esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)BSP_LCD_SPI_NUM, &io_config, ret_io), err, TAG, "New panel IO failed");
+
228
+
229 ESP_LOGD(TAG, "Install LCD driver");
+
230 const esp_lcd_panel_dev_config_t panel_config = {
+
231 .reset_gpio_num = BSP_LCD_RST, // Shared with Touch reset
+
232 .color_space = BSP_LCD_COLOR_SPACE,
+
233 .bits_per_pixel = BSP_LCD_BITS_PER_PIXEL,
+
234 };
+
235 ESP_GOTO_ON_ERROR(esp_lcd_new_panel_ili9341(*ret_io, &panel_config, ret_panel), err, TAG, "New panel failed");
+
236
+
237 esp_lcd_panel_reset(*ret_panel);
+
238 esp_lcd_panel_init(*ret_panel);
+
239 esp_lcd_panel_invert_color(*ret_panel, true);
+
240 return ret;
+
241
+
242err:
+
243 if (*ret_panel) {
+
244 esp_lcd_panel_del(*ret_panel);
+
245 }
+
246 if (*ret_io) {
+
247 esp_lcd_panel_io_del(*ret_io);
+
248 }
+
249 spi_bus_free(BSP_LCD_SPI_NUM);
+
250 return ret;
+
251}
+ +
static esp_err_t bsp_spi_init(uint32_t max_transfer_sz)
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
static esp_err_t bsp_enable_feature(bsp_feature_t feature)
+ +
+

References bsp_enable_feature(), BSP_ERROR_CHECK_RETURN_ERR, BSP_FEATURE_LCD, bsp_spi_init(), ESP_GOTO_ON_ERROR, ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, LCD_CMD_BITS, LCD_PARAM_BITS, and TAG.

+ +

Referenced by bsp_display_lcd_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsp_display_start_with_config()

+ +
+
+ + + + + +
+ + + + + + + +
lv_display_t * dsp_display_start_with_config (const bsp_display_cfg_t * cfg)
+
+static
+
+ +

Definition at line 276 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
277{
+
278 assert(cfg != NULL);
+
279 BSP_ERROR_CHECK_RETURN_NULL(lvgl_port_init(&cfg->lvgl_port_cfg));
+
280
+ +
282
+ +
284
+
285 return disp;
+
286}
+
static lv_display_t * bsp_display_lcd_init(const bsp_display_cfg_t *cfg)
+ + + +
+

References bsp_display_lcd_init(), BSP_ERROR_CHECK_RETURN_NULL, BSP_NULL_CHECK, disp, and dsp_display_brightness_init().

+ +

Referenced by display_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ aw9523_h

+ +
+
+ + + + + +
+ + + + +
i2c_master_dev_handle_t aw9523_h = NULL
+
+static
+
+
+ +

◆ axp2101_h

+ +
+
+ + + + + +
+ + + + +
i2c_master_dev_handle_t axp2101_h = NULL
+
+static
+
+
+ +

◆ disp

+ +
+
+ + + + + +
+ + + + +
lv_display_t* disp
+
+static
+
+
+ +

◆ i2c_handle

+ +
+
+ + + + + +
+ + + + +
i2c_master_bus_handle_t i2c_handle = NULL
+
+static
+
+
+ +

◆ i2c_initialized

+ +
+
+ + + + + +
+ + + + +
bool i2c_initialized = false
+
+static
+
+ +

Definition at line 11 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+ +

Referenced by bsp_i2c_init().

+ +
+
+ +

◆ spi_initialized

+ +
+
+ + + + + +
+ + + + +
bool spi_initialized = false
+
+static
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "3d-graphics"
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.js b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.js new file mode 100644 index 0000000..368f917 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.js @@ -0,0 +1,35 @@ +var applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c = +[ + [ "BSP_AW9523_ADDR", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#af26a1317243d1c4836855a12c97963c1", null ], + [ "BSP_AXP2101_ADDR", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ac7f42f3ac0330fd8b18a0b9b91e75405", null ], + [ "BSP_ERROR_CHECK_RETURN_ERR", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a61088fe7ad2d295829742a6ec0e19b1a", null ], + [ "BSP_ERROR_CHECK_RETURN_NULL", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ae1234d6b90fa48eec75a6d7e0c57fda7", null ], + [ "BSP_NULL_CHECK", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a7fd051982b5301efc6858cd719d1ec27", null ], + [ "ESP_GOTO_ON_ERROR", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ac3e1c009ea90e132ccb81365e1416efd", null ], + [ "ESP_RETURN_ON_ERROR", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ac36d5544986130fd34797e69253b5788", null ], + [ "LCD_CMD_BITS", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a970dd1ec4cf86ef299ba32369eb49ce2", null ], + [ "LCD_LEDC_CH", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ac3368a2115f9a8a758510b974eb12743", null ], + [ "LCD_PARAM_BITS", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#aeaa4b9f3aa7437180455e8da8e37c11f", null ], + [ "bsp_feature_t", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0", [ + [ "BSP_FEATURE_LCD", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0aa223485cede138815d7de224aa7535c5", null ], + [ "BSP_FEATURE_TOUCH", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0a4b4ea988f1b58458d7ae99beec7e9397", null ], + [ "BSP_FEATURE_SD", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0afe8e34c6a6af478efafeeb153bcb86ba", null ], + [ "BSP_FEATURE_SPEAKER", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0a01a1c9f8cc4f9cafbccdcb9355e5fabc", null ], + [ "BSP_FEATURE_CAMERA", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0a10cffa066e9775cf06f05e3006583d3e", null ] + ] ], + [ "bsp_display_lcd_init", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a042e5da5d3336dd10ebda5674ec495c3", null ], + [ "bsp_enable_feature", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ad7f56c5752f2747c0774a27b5622674b", null ], + [ "bsp_i2c_init", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#afb504c284aa8a47f2ffee89038bd5b98", null ], + [ "bsp_spi_init", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ab742706b828d976fd293882d63d561a7", null ], + [ "display_init", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#af2392dd06c1a7e0f317d26309d9e0d18", null ], + [ "dsp_display_brightness_init", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ae0e932afc1e59f18ce869a88e5954baf", null ], + [ "dsp_display_new", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#acbf166af6a0c6f9ee069922e14c83023", null ], + [ "dsp_display_start_with_config", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#aea76cb12d19d5676634c1a78817fa316", null ], + [ "aw9523_h", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a8b7f1a963c7ba13f9173bdbad24ab08c", null ], + [ "axp2101_h", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a423b0e2878a0a50ee3732437255dd7fb", null ], + [ "disp", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a647e5f267167a38dcd0e6fe55dfcfc61", null ], + [ "i2c_handle", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a721c9ecee4307bc707d56f8289af4bfb", null ], + [ "i2c_initialized", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a95927f9862fd820b287d27c4f9465da7", null ], + [ "spi_initialized", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a90589f9cd41f89c868ea376bc091ad9d", null ], + [ "TAG", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.md5 new file mode 100644 index 0000000..dd63080 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.md5 @@ -0,0 +1 @@ +e3a46ea5fde015c87a8cf569213445ba \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.svg new file mode 100644 index 0000000..487f110 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.svg @@ -0,0 +1,1672 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +init_display.c + + +Node1 + + +init_display.c + + + + + +Node2 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node1->Node5 + + + + + + + + +Node10 + + +esp_err.h + + + + + +Node1->Node10 + + + + + + + + +Node73 + + +esp_lcd_ili9341.h + + + + + +Node1->Node73 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node14 + + +dsp_types.h + + + + + +Node5->Node14 + + + + + + + + +Node16 + + +dsps_dotprod.h + + + + + +Node5->Node16 + + + + + + + + +Node19 + + +dsps_math.h + + + + + +Node5->Node19 + + + + + + + + +Node31 + + +dsps_fir.h + + + + + +Node5->Node31 + + + + + + + + +Node33 + + +dsps_resampler.h + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +dsps_biquad.h + + + + + +Node5->Node34 + + + + + + + + +Node36 + + +dsps_biquad_gen.h + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +dsps_wind.h + + + + + +Node5->Node37 + + + + + + + + +Node44 + + +dsps_conv.h + + + + + +Node5->Node44 + + + + + + + + +Node46 + + +dsps_corr.h + + + + + +Node5->Node46 + + + + + + + + +Node47 + + +dsps_d_gen.h + + + + + +Node5->Node47 + + + + + + + + +Node48 + + +dsps_h_gen.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_tone_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_snr.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_sfdr.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_fft2r.h + + + + + +Node5->Node52 + + + + + + + + +Node55 + + +dsps_fft4r.h + + + + + +Node5->Node55 + + + + + + + + +Node57 + + +dsps_dct.h + + + + + +Node5->Node57 + + + + + + + + +Node58 + + +dspm_matrix.h + + + + + +Node5->Node58 + + + + + + + + +Node69 + + +dsps_view.h + + + + + +Node5->Node69 + + + + + + + + +Node70 + + +dspi_dotprod.h + + + + + +Node5->Node70 + + + + + + + + +Node72 + + +dspi_conv.h + + + + + +Node5->Node72 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +stdbool.h + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +dsp_err.h + + + + + +Node6->Node9 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node6->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node6->Node13 + + + + + + + + +Node9->Node7 + + + + + + + + +Node9->Node10 + + + + + + + + +Node10->Node4 + + + + + + + + +Node14->Node7 + + + + + + + + +Node14->Node8 + + + + + + + + +Node15 + + +inttypes.h + + + + + +Node14->Node15 + + + + + + + + +Node16->Node3 + + + + + + + + +Node16->Node9 + + + + + + + + +Node17 + + +dsps_dotprod_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +sdkconfig.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_add.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_sub.h + + + + + +Node19->Node22 + + + + + + + + +Node24 + + +dsps_mul.h + + + + + +Node19->Node24 + + + + + + + + +Node26 + + +dsps_addc.h + + + + + +Node19->Node26 + + + + + + + + +Node28 + + +dsps_mulc.h + + + + + +Node19->Node28 + + + + + + + + +Node30 + + +dsps_sqrt.h + + + + + +Node19->Node30 + + + + + + + + +Node20->Node9 + + + + + + + + +Node22->Node9 + + + + + + + + +Node24->Node9 + + + + + + + + +Node26->Node9 + + + + + + + + +Node28->Node9 + + + + + + + + +Node30->Node9 + + + + + + + + +Node31->Node6 + + + + + + + + +Node31->Node9 + + + + + + + + +Node32 + + +dsps_fir_platform.h + + + + + +Node31->Node32 + + + + + + + + +Node32->Node18 + + + + + + + + +Node33->Node9 + + + + + + + + +Node33->Node31 + + + + + + + + +Node34->Node9 + + + + + + + + +Node35 + + +dsps_biquad_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node18 + + + + + + + + +Node36->Node9 + + + + + + + + +Node38 + + +dsps_wind_hann.h + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman.h + + + + + +Node37->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_harris.h + + + + + +Node37->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node37->Node41 + + + + + + + + +Node42 + + +dsps_wind_nuttall.h + + + + + +Node37->Node42 + + + + + + + + +Node43 + + +dsps_wind_flat_top.h + + + + + +Node37->Node43 + + + + + + + + +Node44->Node9 + + + + + + + + +Node45 + + +dsps_conv_platform.h + + + + + +Node44->Node45 + + + + + + + + +Node45->Node18 + + + + + + + + +Node46->Node9 + + + + + + + + +Node46->Node45 + + + + + + + + +Node47->Node9 + + + + + + + + +Node48->Node9 + + + + + + + + +Node49->Node9 + + + + + + + + +Node50->Node9 + + + + + + + + +Node51->Node9 + + + + + + + + +Node52->Node9 + + + + + + + + +Node52->Node18 + + + + + + + + +Node53 + + +dsps_fft_tables.h + + + + + +Node52->Node53 + + + + + + + + +Node54 + + +dsps_fft2r_platform.h + + + + + +Node52->Node54 + + + + + + + + +Node54->Node18 + + + + + + + + +Node55->Node9 + + + + + + + + +Node55->Node18 + + + + + + + + +Node55->Node53 + + + + + + + + +Node56 + + +dsps_fft4r_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node18 + + + + + + + + +Node57->Node9 + + + + + + + + +Node57->Node18 + + + + + + + + +Node59 + + +dspm_add.h + + + + + +Node58->Node59 + + + + + + + + +Node61 + + +dspm_addc.h + + + + + +Node58->Node61 + + + + + + + + +Node63 + + +dspm_mult.h + + + + + +Node58->Node63 + + + + + + + + +Node65 + + +dspm_mulc.h + + + + + +Node58->Node65 + + + + + + + + +Node67 + + +dspm_sub.h + + + + + +Node58->Node67 + + + + + + + + +Node59->Node9 + + + + + + + + +Node61->Node9 + + + + + + + + +Node63->Node9 + + + + + + + + +Node65->Node9 + + + + + + + + +Node67->Node9 + + + + + + + + +Node69->Node9 + + + + + + + + +Node70->Node3 + + + + + + + + +Node70->Node9 + + + + + + + + +Node70->Node14 + + + + + + + + +Node71 + + +dspi_dotprod_platform.h + + + + + +Node70->Node71 + + + + + + + + +Node71->Node18 + + + + + + + + +Node72->Node9 + + + + + + + + +Node72->Node14 + + + + + + + + +Node72->Node45 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl_org.svg new file mode 100644 index 0000000..2847e1d --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl_org.svg @@ -0,0 +1,1589 @@ + + + + + + +init_display.c + + +Node1 + + +init_display.c + + + + + +Node2 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node1->Node5 + + + + + + + + +Node10 + + +esp_err.h + + + + + +Node1->Node10 + + + + + + + + +Node73 + + +esp_lcd_ili9341.h + + + + + +Node1->Node73 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node14 + + +dsp_types.h + + + + + +Node5->Node14 + + + + + + + + +Node16 + + +dsps_dotprod.h + + + + + +Node5->Node16 + + + + + + + + +Node19 + + +dsps_math.h + + + + + +Node5->Node19 + + + + + + + + +Node31 + + +dsps_fir.h + + + + + +Node5->Node31 + + + + + + + + +Node33 + + +dsps_resampler.h + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +dsps_biquad.h + + + + + +Node5->Node34 + + + + + + + + +Node36 + + +dsps_biquad_gen.h + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +dsps_wind.h + + + + + +Node5->Node37 + + + + + + + + +Node44 + + +dsps_conv.h + + + + + +Node5->Node44 + + + + + + + + +Node46 + + +dsps_corr.h + + + + + +Node5->Node46 + + + + + + + + +Node47 + + +dsps_d_gen.h + + + + + +Node5->Node47 + + + + + + + + +Node48 + + +dsps_h_gen.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_tone_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_snr.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_sfdr.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_fft2r.h + + + + + +Node5->Node52 + + + + + + + + +Node55 + + +dsps_fft4r.h + + + + + +Node5->Node55 + + + + + + + + +Node57 + + +dsps_dct.h + + + + + +Node5->Node57 + + + + + + + + +Node58 + + +dspm_matrix.h + + + + + +Node5->Node58 + + + + + + + + +Node69 + + +dsps_view.h + + + + + +Node5->Node69 + + + + + + + + +Node70 + + +dspi_dotprod.h + + + + + +Node5->Node70 + + + + + + + + +Node72 + + +dspi_conv.h + + + + + +Node5->Node72 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +stdbool.h + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +dsp_err.h + + + + + +Node6->Node9 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node6->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node6->Node13 + + + + + + + + +Node9->Node7 + + + + + + + + +Node9->Node10 + + + + + + + + +Node10->Node4 + + + + + + + + +Node14->Node7 + + + + + + + + +Node14->Node8 + + + + + + + + +Node15 + + +inttypes.h + + + + + +Node14->Node15 + + + + + + + + +Node16->Node3 + + + + + + + + +Node16->Node9 + + + + + + + + +Node17 + + +dsps_dotprod_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +sdkconfig.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_add.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_sub.h + + + + + +Node19->Node22 + + + + + + + + +Node24 + + +dsps_mul.h + + + + + +Node19->Node24 + + + + + + + + +Node26 + + +dsps_addc.h + + + + + +Node19->Node26 + + + + + + + + +Node28 + + +dsps_mulc.h + + + + + +Node19->Node28 + + + + + + + + +Node30 + + +dsps_sqrt.h + + + + + +Node19->Node30 + + + + + + + + +Node20->Node9 + + + + + + + + +Node22->Node9 + + + + + + + + +Node24->Node9 + + + + + + + + +Node26->Node9 + + + + + + + + +Node28->Node9 + + + + + + + + +Node30->Node9 + + + + + + + + +Node31->Node6 + + + + + + + + +Node31->Node9 + + + + + + + + +Node32 + + +dsps_fir_platform.h + + + + + +Node31->Node32 + + + + + + + + +Node32->Node18 + + + + + + + + +Node33->Node9 + + + + + + + + +Node33->Node31 + + + + + + + + +Node34->Node9 + + + + + + + + +Node35 + + +dsps_biquad_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node18 + + + + + + + + +Node36->Node9 + + + + + + + + +Node38 + + +dsps_wind_hann.h + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman.h + + + + + +Node37->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_harris.h + + + + + +Node37->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node37->Node41 + + + + + + + + +Node42 + + +dsps_wind_nuttall.h + + + + + +Node37->Node42 + + + + + + + + +Node43 + + +dsps_wind_flat_top.h + + + + + +Node37->Node43 + + + + + + + + +Node44->Node9 + + + + + + + + +Node45 + + +dsps_conv_platform.h + + + + + +Node44->Node45 + + + + + + + + +Node45->Node18 + + + + + + + + +Node46->Node9 + + + + + + + + +Node46->Node45 + + + + + + + + +Node47->Node9 + + + + + + + + +Node48->Node9 + + + + + + + + +Node49->Node9 + + + + + + + + +Node50->Node9 + + + + + + + + +Node51->Node9 + + + + + + + + +Node52->Node9 + + + + + + + + +Node52->Node18 + + + + + + + + +Node53 + + +dsps_fft_tables.h + + + + + +Node52->Node53 + + + + + + + + +Node54 + + +dsps_fft2r_platform.h + + + + + +Node52->Node54 + + + + + + + + +Node54->Node18 + + + + + + + + +Node55->Node9 + + + + + + + + +Node55->Node18 + + + + + + + + +Node55->Node53 + + + + + + + + +Node56 + + +dsps_fft4r_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node18 + + + + + + + + +Node57->Node9 + + + + + + + + +Node57->Node18 + + + + + + + + +Node59 + + +dspm_add.h + + + + + +Node58->Node59 + + + + + + + + +Node61 + + +dspm_addc.h + + + + + +Node58->Node61 + + + + + + + + +Node63 + + +dspm_mult.h + + + + + +Node58->Node63 + + + + + + + + +Node65 + + +dspm_mulc.h + + + + + +Node58->Node65 + + + + + + + + +Node67 + + +dspm_sub.h + + + + + +Node58->Node67 + + + + + + + + +Node59->Node9 + + + + + + + + +Node61->Node9 + + + + + + + + +Node63->Node9 + + + + + + + + +Node65->Node9 + + + + + + + + +Node67->Node9 + + + + + + + + +Node69->Node9 + + + + + + + + +Node70->Node3 + + + + + + + + +Node70->Node9 + + + + + + + + +Node70->Node14 + + + + + + + + +Node71 + + +dspi_dotprod_platform.h + + + + + +Node70->Node71 + + + + + + + + +Node71->Node18 + + + + + + + + +Node72->Node9 + + + + + + + + +Node72->Node14 + + + + + + + + +Node72->Node45 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.md5 new file mode 100644 index 0000000..6989f83 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.md5 @@ -0,0 +1 @@ +223d5d63cfe92753b59722241f19f3ea \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.svg new file mode 100644 index 0000000..464be90 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +bsp_display_lcd_init + + +Node1 + + +bsp_display_lcd_init + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_enable_feature + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +bsp_spi_init + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +bsp_i2c_init + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph_org.svg new file mode 100644 index 0000000..61a3e7b --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +bsp_display_lcd_init + + +Node1 + + +bsp_display_lcd_init + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_enable_feature + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +bsp_spi_init + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +bsp_i2c_init + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.md5 new file mode 100644 index 0000000..65aaef2 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.md5 @@ -0,0 +1 @@ +c9b0bb22ca7eaf286c60081183a8f804 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.svg new file mode 100644 index 0000000..9af578c --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +bsp_display_lcd_init + + +Node1 + + +bsp_display_lcd_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +display_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph_org.svg new file mode 100644 index 0000000..8dd74db --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +bsp_display_lcd_init + + +Node1 + + +bsp_display_lcd_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +display_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.md5 new file mode 100644 index 0000000..e1c33ec --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.md5 @@ -0,0 +1 @@ +25849fe5d9302b0dc19deb2d2572ff69 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.svg new file mode 100644 index 0000000..c5ec606 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +bsp_spi_init + + +Node1 + + +bsp_spi_init + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_display_start_with +_config + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph_org.svg new file mode 100644 index 0000000..c5235f7 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +bsp_spi_init + + +Node1 + + +bsp_spi_init + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_display_start_with +_config + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.md5 new file mode 100644 index 0000000..4ee785b --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.md5 @@ -0,0 +1 @@ +ef4101b2afee75cdf3759c207e110532 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.svg new file mode 100644 index 0000000..a7c0023 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsp_display_new + + +Node1 + + +dsp_display_new + + + + + +Node2 + + +bsp_enable_feature + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +bsp_spi_init + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph_org.svg new file mode 100644 index 0000000..a86b6b8 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsp_display_new + + +Node1 + + +dsp_display_new + + + + + +Node2 + + +bsp_enable_feature + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +bsp_spi_init + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.md5 new file mode 100644 index 0000000..68fab2a --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.md5 @@ -0,0 +1 @@ +26377c543c40eb25b1ea3cee9ad3d248 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.svg new file mode 100644 index 0000000..372dcc5 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +dsp_display_new + + +Node1 + + +dsp_display_new + + + + + +Node2 + + +bsp_display_lcd_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_display_start_with +_config + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +display_init + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph_org.svg new file mode 100644 index 0000000..d297715 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +dsp_display_new + + +Node1 + + +dsp_display_new + + + + + +Node2 + + +bsp_display_lcd_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_display_start_with +_config + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +display_init + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.md5 new file mode 100644 index 0000000..a554993 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.md5 @@ -0,0 +1 @@ +08fd67d4168c4b0db419d3b09475975e \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.svg new file mode 100644 index 0000000..629d8c4 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +bsp_enable_feature + + +Node1 + + +bsp_enable_feature + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph_org.svg new file mode 100644 index 0000000..b469f7a --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +bsp_enable_feature + + +Node1 + + +bsp_enable_feature + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.md5 new file mode 100644 index 0000000..55366f4 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.md5 @@ -0,0 +1 @@ +9073b9c9c9aff67f9e1a3f6801edd6b8 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.svg new file mode 100644 index 0000000..ec6d2db --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.svg @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +bsp_enable_feature + + +Node1 + + +bsp_enable_feature + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_display_start_with +_config + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph_org.svg new file mode 100644 index 0000000..870195a --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +bsp_enable_feature + + +Node1 + + +bsp_enable_feature + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_display_start_with +_config + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.md5 new file mode 100644 index 0000000..7f86b56 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.md5 @@ -0,0 +1 @@ +ab6e63fc385d648229ac191b566bf671 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.svg new file mode 100644 index 0000000..0295e9a --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsp_display_brightness_init + + +Node1 + + +dsp_display_brightness_init + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph_org.svg new file mode 100644 index 0000000..de5f950 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsp_display_brightness_init + + +Node1 + + +dsp_display_brightness_init + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.md5 new file mode 100644 index 0000000..52837bd --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.md5 @@ -0,0 +1 @@ +79b7347ca8c3bb0d14d4c9d4a6fa31fc \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.svg new file mode 100644 index 0000000..bb1b74f --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +dsp_display_brightness_init + + +Node1 + + +dsp_display_brightness_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +display_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph_org.svg new file mode 100644 index 0000000..574b16e --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +dsp_display_brightness_init + + +Node1 + + +dsp_display_brightness_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +display_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.md5 new file mode 100644 index 0000000..1311dcb --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.md5 @@ -0,0 +1 @@ +c9be81f3ce36e7980bd74cc1f0133fdd \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.svg new file mode 100644 index 0000000..4ccf94f --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.svg @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_display_start_with_config + + +Node1 + + +dsp_display_start_with +_config + + + + + +Node2 + + +bsp_display_lcd_init + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsp_display_brightness_init + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +dsp_display_new + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_enable_feature + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_spi_init + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node4->Node5 + + + + + + + + +Node7->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph_org.svg new file mode 100644 index 0000000..9de270b --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph_org.svg @@ -0,0 +1,139 @@ + + + + + + +dsp_display_start_with_config + + +Node1 + + +dsp_display_start_with +_config + + + + + +Node2 + + +bsp_display_lcd_init + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsp_display_brightness_init + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +dsp_display_new + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_enable_feature + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_spi_init + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node4->Node5 + + + + + + + + +Node7->Node5 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.md5 new file mode 100644 index 0000000..94442a2 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.md5 @@ -0,0 +1 @@ +e15ba4929afc7e98ee575a959fba279b \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.svg new file mode 100644 index 0000000..b9b5ee1 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +dsp_display_start_with_config + + +Node1 + + +dsp_display_start_with +_config + + + + + +Node2 + + +display_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph_org.svg new file mode 100644 index 0000000..ce8658b --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +dsp_display_start_with_config + + +Node1 + + +dsp_display_start_with +_config + + + + + +Node2 + + +display_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.md5 new file mode 100644 index 0000000..90c9625 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.md5 @@ -0,0 +1 @@ +8a7b53647a2388260bc3ede9cc7492fd \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.svg new file mode 100644 index 0000000..aa15dc4 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +bsp_i2c_init + + +Node1 + + +bsp_i2c_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +bsp_enable_feature + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +dsp_display_brightness_init + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dsp_display_new + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +bsp_display_lcd_init + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dsp_display_start_with +_config + + + + + +Node6->Node7 + + + + + + + + +Node10->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph_org.svg new file mode 100644 index 0000000..c215b02 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph_org.svg @@ -0,0 +1,157 @@ + + + + + + +bsp_i2c_init + + +Node1 + + +bsp_i2c_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +bsp_enable_feature + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +dsp_display_brightness_init + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dsp_display_new + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +bsp_display_lcd_init + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dsp_display_start_with +_config + + + + + +Node6->Node7 + + + + + + + + +Node10->Node7 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_source.html b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_source.html new file mode 100644 index 0000000..41515af --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_source.html @@ -0,0 +1,473 @@ + + + + + + + +ESP-IDF Firmware: init_display.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c
+
+
+Go to the documentation of this file.
1
+
2
+
3#include "bsp/m5stack_core_s3.h"
+
4#include "esp_log.h"
+
5#include "esp_dsp.h"
+
6#include "esp_lcd_ili9341.h"
+
7#include "esp_err.h"
+
8
+
9
+
10static i2c_master_bus_handle_t i2c_handle = NULL;
+
11static bool i2c_initialized = false;
+
12static i2c_master_dev_handle_t axp2101_h = NULL;
+
13static i2c_master_dev_handle_t aw9523_h = NULL;
+
14static bool spi_initialized = false;
+
15
+
16static const char *TAG = "3d-graphics";
+
17
+
18#define BSP_AXP2101_ADDR 0x34
+
19#define BSP_AW9523_ADDR 0x58
+
20
+
+
21#define BSP_ERROR_CHECK_RETURN_ERR(x) do { \
+
22 esp_err_t err_rc_ = (x); \
+
23 if (unlikely(err_rc_ != ESP_OK)) { \
+
24 return err_rc_; \
+
25 } \
+
26} while(0)
+
+
27
+
28
+
+
29#define ESP_RETURN_ON_ERROR(x, log_tag, format, ...) do { \
+
30 esp_err_t err_rc_ = (x); \
+
31 if (unlikely(err_rc_ != ESP_OK)) { \
+
32 ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
33 return err_rc_; \
+
34 } \
+
35} while(0)
+
+
36
+
+
37#define BSP_ERROR_CHECK_RETURN_NULL(x) do { \
+
38 if (unlikely((x) != ESP_OK)) { \
+
39 return NULL; \
+
40 } \
+
41} while(0)
+
+
42
+
+
43#define BSP_NULL_CHECK(x, ret) do { \
+
44 if ((x) == NULL) { \
+
45 return ret; \
+
46 } \
+
47} while(0)
+
+
48
+
+
49#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format, ...) do { \
+
50 esp_err_t err_rc_ = (x); \
+
51 if (unlikely(err_rc_ != ESP_OK)) { \
+
52 ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
53 ret = err_rc_; \
+
54 goto goto_tag; \
+
55 } \
+
56} while(0)
+
+
57
+
58
+
59
+
+ +
61{
+
62 /* I2C was initialized before */
+
63 if (i2c_initialized) {
+
64 return ESP_OK;
+
65 }
+
66
+
67 const i2c_master_bus_config_t i2c_config = {
+
68 .i2c_port = BSP_I2C_NUM,
+
69 .sda_io_num = BSP_I2C_SDA,
+
70 .scl_io_num = BSP_I2C_SCL,
+
71 .clk_source = 1,
+
72 };
+
73 BSP_ERROR_CHECK_RETURN_ERR(i2c_new_master_bus(&i2c_config, &i2c_handle));
+
74
+
75 // AXP2101 and AW9523 are managed by this BSP
+
76 const i2c_device_config_t axp2101_config = {
+
77 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
78 .device_address = BSP_AXP2101_ADDR,
+
79 .scl_speed_hz = 400000,
+
80 };
+
81 BSP_ERROR_CHECK_RETURN_ERR(i2c_master_bus_add_device(i2c_handle, &axp2101_config, &axp2101_h));
+
82 const i2c_device_config_t aw9523_config = {
+
83 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
84 .device_address = BSP_AW9523_ADDR,
+
85 .scl_speed_hz = 400000,
+
86 };
+
87 BSP_ERROR_CHECK_RETURN_ERR(i2c_master_bus_add_device(i2c_handle, &aw9523_config, &aw9523_h));
+
88
+
89 i2c_initialized = true;
+
90 return ESP_OK;
+
91}
+
+
92
+
+ +
94{
+
95 /* Initilize I2C */
+ +
97
+
98 const uint8_t lcd_bl_en[] = { 0x90, 0xBF }; // AXP DLDO1 Enable
+
99 ESP_RETURN_ON_ERROR(i2c_master_transmit(axp2101_h, lcd_bl_en, sizeof(lcd_bl_en), 1000), TAG, "I2C write failed");
+
100 const uint8_t lcd_bl_val[] = { 0x99, 0b00011000 }; // AXP DLDO1 voltage
+
101 ESP_RETURN_ON_ERROR(i2c_master_transmit(axp2101_h, lcd_bl_val, sizeof(lcd_bl_val), 1000), TAG, "I2C write failed");
+
102
+
103 return ESP_OK;
+
104}
+
+
105
+
106
+
+
107static esp_err_t bsp_spi_init(uint32_t max_transfer_sz)
+
108{
+
109 /* SPI was initialized before */
+
110 if (spi_initialized) {
+
111 return ESP_OK;
+
112 }
+
113
+
114 ESP_LOGD(TAG, "Initialize SPI bus");
+
115 const spi_bus_config_t buscfg = {
+
116 .sclk_io_num = BSP_LCD_PCLK,
+
117 .mosi_io_num = BSP_LCD_MOSI,
+
118 .miso_io_num = BSP_LCD_MISO,
+
119 .quadwp_io_num = GPIO_NUM_NC,
+
120 .quadhd_io_num = GPIO_NUM_NC,
+
121 .max_transfer_sz = max_transfer_sz,
+
122 };
+
123 ESP_RETURN_ON_ERROR(spi_bus_initialize(BSP_LCD_SPI_NUM, &buscfg, SPI_DMA_CH_AUTO), TAG, "SPI init failed");
+
124
+
125 spi_initialized = true;
+
126
+
127 return ESP_OK;
+
128}
+
+
129
+
130/* Features */
+ +
138
+
+ +
140{
+
141 esp_err_t err = ESP_OK;
+
142 static uint8_t aw9523_P0 = 0b10;
+
143 static uint8_t aw9523_P1 = 0b10100000;
+
144 uint8_t data[2];
+
145
+
146 /* Initilize I2C */
+ +
148
+
149 switch (feature) {
+
150 case BSP_FEATURE_LCD:
+
151 /* Enable LCD */
+
152 aw9523_P1 |= (1 << 1);
+
153 break;
+ +
155 /* Enable Touch */
+
156 aw9523_P0 |= (1);
+
157 break;
+
158 case BSP_FEATURE_SD:
+
159 /* AXP ALDO4 voltage / SD Card / 3V3 */
+
160 data[0] = 0x95;
+
161 data[1] = 0b00011100; //3V3
+
162 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
163 /* Enable SD */
+
164 aw9523_P0 |= (1 << 4);
+
165 break;
+ +
167 /* AXP ALDO1 voltage / PA PVDD / 1V8 */
+
168 data[0] = 0x92;
+
169 data[1] = 0b00001101; //1V8
+
170 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
171 /* AXP ALDO2 voltage / Codec / 3V3 */
+
172 data[0] = 0x93;
+
173 data[1] = 0b00011100; //3V3
+
174 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
175 /* AXP ALDO3 voltage / Codec+Mic / 3V3 */
+
176 data[0] = 0x94;
+
177 data[1] = 0b00011100; //3V3
+
178 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
179 /* AW9523 P0 is in push-pull mode */
+
180 data[0] = 0x11;
+
181 data[1] = 0x10;
+
182 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
183 /* Enable Codec AW88298 */
+
184 aw9523_P0 |= (1 << 2);
+
185 break;
+ +
187 /* Enable Camera */
+
188 aw9523_P1 |= (1);
+
189 break;
+
190 }
+
191
+
192 data[0] = 0x02;
+
193 data[1] = aw9523_P0;
+
194 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
195
+
196 data[0] = 0x03;
+
197 data[1] = aw9523_P1;
+
198 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
199
+
200 return err;
+
201}
+
+
202
+
203#define LCD_CMD_BITS 8
+
204#define LCD_PARAM_BITS 8
+
205#define LCD_LEDC_CH CONFIG_BSP_DISPLAY_BRIGHTNESS_LEDC_CH
+
206
+
+
207esp_err_t dsp_display_new(const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io)
+
208{
+
209 esp_err_t ret = ESP_OK;
+
210 assert(config != NULL && config->max_transfer_sz > 0);
+
211
+ +
213
+
214 /* Initialize SPI */
+
215 ESP_RETURN_ON_ERROR(bsp_spi_init(config->max_transfer_sz), TAG, "");
+
216
+
217 ESP_LOGD(TAG, "Install panel IO");
+
218 const esp_lcd_panel_io_spi_config_t io_config = {
+
219 .dc_gpio_num = BSP_LCD_DC,
+
220 .cs_gpio_num = BSP_LCD_CS,
+
221 .pclk_hz = BSP_LCD_PIXEL_CLOCK_HZ,
+
222 .lcd_cmd_bits = LCD_CMD_BITS,
+
223 .lcd_param_bits = LCD_PARAM_BITS,
+
224 .spi_mode = 0,
+
225 .trans_queue_depth = 10,
+
226 };
+
227 ESP_GOTO_ON_ERROR(esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)BSP_LCD_SPI_NUM, &io_config, ret_io), err, TAG, "New panel IO failed");
+
228
+
229 ESP_LOGD(TAG, "Install LCD driver");
+
230 const esp_lcd_panel_dev_config_t panel_config = {
+
231 .reset_gpio_num = BSP_LCD_RST, // Shared with Touch reset
+
232 .color_space = BSP_LCD_COLOR_SPACE,
+
233 .bits_per_pixel = BSP_LCD_BITS_PER_PIXEL,
+
234 };
+
235 ESP_GOTO_ON_ERROR(esp_lcd_new_panel_ili9341(*ret_io, &panel_config, ret_panel), err, TAG, "New panel failed");
+
236
+
237 esp_lcd_panel_reset(*ret_panel);
+
238 esp_lcd_panel_init(*ret_panel);
+
239 esp_lcd_panel_invert_color(*ret_panel, true);
+
240 return ret;
+
241
+
242err:
+
243 if (*ret_panel) {
+
244 esp_lcd_panel_del(*ret_panel);
+
245 }
+
246 if (*ret_io) {
+
247 esp_lcd_panel_io_del(*ret_io);
+
248 }
+
249 spi_bus_free(BSP_LCD_SPI_NUM);
+
250 return ret;
+
251}
+
+
252
+
+
253static lv_display_t *bsp_display_lcd_init(const bsp_display_cfg_t *cfg)
+
254{
+
255 assert(cfg != NULL);
+
256 esp_lcd_panel_io_handle_t io_handle = NULL;
+
257 esp_lcd_panel_handle_t panel_handle = NULL;
+
258 const bsp_display_config_t bsp_disp_cfg = {
+
259 .max_transfer_sz = BSP_LCD_DRAW_BUFF_SIZE * sizeof(uint16_t),
+
260 };
+
261 BSP_ERROR_CHECK_RETURN_NULL(dsp_display_new(&bsp_disp_cfg, &panel_handle, &io_handle));
+
262
+
263 esp_lcd_panel_disp_on_off(panel_handle, true);
+
264
+
265 lv_display_t *display = lv_display_create(BSP_LCD_H_RES, BSP_LCD_V_RES);
+
266
+
267 lv_display_set_user_data(display, panel_handle);
+
268 // set color depth
+
269 lv_display_set_color_format(display, LV_COLOR_FORMAT_RGB565);
+
270
+
271 return display;
+
272}
+
+
273
+
274static lv_display_t *disp;
+
275
+
+
276static lv_display_t *dsp_display_start_with_config(const bsp_display_cfg_t *cfg)
+
277{
+
278 assert(cfg != NULL);
+
279 BSP_ERROR_CHECK_RETURN_NULL(lvgl_port_init(&cfg->lvgl_port_cfg));
+
280
+ +
282
+ +
284
+
285 return disp;
+
286}
+
+
287
+
+
288lv_display_t *display_init(void)
+
289{
+
290 bsp_display_cfg_t cfg = {
+
291 .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(),
+
292 .buffer_size = BSP_LCD_DRAW_BUFF_SIZE,
+
293 .double_buffer = BSP_LCD_DRAW_BUFF_DOUBLE,
+
294 .flags = {
+
295 .buff_dma = true,
+
296 .buff_spiram = false,
+
297 }
+
298 };
+
299 cfg.lvgl_port_cfg.task_affinity = 1; /* For camera */
+ +
301}
+
+ +
static lv_display_t * bsp_display_lcd_init(const bsp_display_cfg_t *cfg)
+ + + +
static i2c_master_bus_handle_t i2c_handle
+ + + + + +
static esp_err_t bsp_spi_init(uint32_t max_transfer_sz)
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+ +
esp_err_t dsp_display_new(const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io)
+
static esp_err_t bsp_enable_feature(bsp_feature_t feature)
+ + + + + + + + +
static lv_display_t * dsp_display_start_with_config(const bsp_display_cfg_t *cfg)
+ + + + + + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html new file mode 100644 index 0000000..2feb35c --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html @@ -0,0 +1,1816 @@ + + + + + + + +ESP-IDF Firmware: 3d_kalman_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_kalman_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include "esp_log.h"
+#include "bsp/m5stack_core_s3.h"
+#include "esp_dsp.h"
+#include "cube_matrix.h"
+#include "esp_logo.h"
+#include "esp_text.h"
+#include "graphics_support.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define M5_CUBE_SIDE   (BSP_LCD_V_RES / 4)
#define BSP_BMI270_ADDR   0x69
#define BSP_BMM150_ADDR   0x10
#define BMI270_IF_CONF   0x6B
#define BMI270_AUX_DEV_ID   0x4B
#define BMI270_PWR_CONF   0x7C
#define BMI270_PWR_CTRL   0x7D
#define BMI270_CMD   0x7E
#define BMI270_AUX_IF_CONFIG   0x4C
#define BMI270_AUX_READ_ADDR   0x4D
#define BMI270_AUX_WRITE_ADDR   0x4E
#define BMI270_AUX_WRITE_DATA   0x4F
#define BMI270_AUX_STATUS   0x03
#define BMI270_AUX_DATA0   0x04
#define BMI270_ACC_DATA0   0x0C
#define BMI270_GYR_DATA0   0x12
#define BMI270_ACC_CONF   0x40
#define BMI270_ACC_RANGE   0x41
#define BMI270_GYR_CONF   0x42
#define BMI270_GYR_RANGE   0x43
#define BMI270_AUX_CONF   0x44
#define BMI270_INIT_CTRL   0x59
#define BMI270_INIT_DATA   0x5e
#define BMI270_INTERNAL_STATUS   0x21
#define BMM150_REG_POWER_CONTROL   0x4B
#define BMM150_SHIP_ID   0x40
#define BMM150_DATA0   0x42
+ + + + + + + + + + + + + + + + +

+Functions

void app_main ()
static void init_3d_matrix_struct (image_3d_matrix_t *image)
 Initialize 3d image structure.
esp_err_t read_bmm150_data (uint8_t addr, uint8_t *data, int length)
esp_err_t write_bmm150_data (uint8_t addr, uint8_t *data, int length)
esp_err_t write_bmi270_data (uint8_t addr, uint8_t *data, int length)
esp_err_t read_bmi270_data (uint8_t addr, uint8_t *data, int length)
esp_err_t write_bmi270_reg (uint8_t addr, uint8_t data)
uint8_t read_bmi270_reg (uint8_t addr, esp_err_t *err)
static void app_init (void)
 Initialize the application.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void draw_3d_image_task (void *arg)
 RTOS task to draw a 3d image.
+ + + + + + + + + + + + + + + + + + + +

+Variables

static const char * TAG = "3d-kalman"
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
const float m5_cube_vectors_3d [CUBE_POINTS][MATRIX_SIZE]
lv_style_t style_red
lv_style_t style_blue
lv_display_t * display = NULL
lv_obj_t ** objs
 Initialize display.
lv_point_precise_t * points
static i2c_master_bus_handle_t i2c_handle
static i2c_master_dev_handle_t bmi270_h = NULL
static uint8_t i2c_read_buffer [32]
static uint8_t i2c_write_buffer [32]
uint8_t bmi270_context_config_file []
const int bmi270_context_config_file_size
int16_t sensors_data [32]
ekf_imu13statesekf13 = NULL
image_3d_matrix_t image
+

Macro Definition Documentation

+ +

◆ BMI270_ACC_CONF

+ +
+
+ + + + +
#define BMI270_ACC_CONF   0x40
+
+ +

Definition at line 85 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_ACC_DATA0

+ +
+
+ + + + +
#define BMI270_ACC_DATA0   0x0C
+
+
+ +

◆ BMI270_ACC_RANGE

+ +
+
+ + + + +
#define BMI270_ACC_RANGE   0x41
+
+ +

Definition at line 86 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_AUX_CONF

+ +
+
+ + + + +
#define BMI270_AUX_CONF   0x44
+
+ +

Definition at line 89 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_AUX_DATA0

+ +
+
+ + + + +
#define BMI270_AUX_DATA0   0x04
+
+
+ +

◆ BMI270_AUX_DEV_ID

+ +
+
+ + + + +
#define BMI270_AUX_DEV_ID   0x4B
+
+
+ +

◆ BMI270_AUX_IF_CONFIG

+ +
+
+ + + + +
#define BMI270_AUX_IF_CONFIG   0x4C
+
+ +

Definition at line 77 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_AUX_READ_ADDR

+ +
+
+ + + + +
#define BMI270_AUX_READ_ADDR   0x4D
+
+
+ +

◆ BMI270_AUX_STATUS

+ +
+
+ + + + +
#define BMI270_AUX_STATUS   0x03
+
+
+ +

◆ BMI270_AUX_WRITE_ADDR

+ +
+
+ + + + +
#define BMI270_AUX_WRITE_ADDR   0x4E
+
+
+ +

◆ BMI270_AUX_WRITE_DATA

+ +
+
+ + + + +
#define BMI270_AUX_WRITE_DATA   0x4F
+
+
+ +

◆ BMI270_CMD

+ +
+
+ + + + +
#define BMI270_CMD   0x7E
+
+
+ +

◆ BMI270_GYR_CONF

+ +
+
+ + + + +
#define BMI270_GYR_CONF   0x42
+
+ +

Definition at line 87 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_GYR_DATA0

+ +
+
+ + + + +
#define BMI270_GYR_DATA0   0x12
+
+
+ +

◆ BMI270_GYR_RANGE

+ +
+
+ + + + +
#define BMI270_GYR_RANGE   0x43
+
+ +

Definition at line 88 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_IF_CONF

+ +
+
+ + + + +
#define BMI270_IF_CONF   0x6B
+
+ +

Definition at line 72 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_INIT_CTRL

+ +
+
+ + + + +
#define BMI270_INIT_CTRL   0x59
+
+ +

Definition at line 90 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_INIT_DATA

+ +
+
+ + + + +
#define BMI270_INIT_DATA   0x5e
+
+ +

Definition at line 91 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_INTERNAL_STATUS

+ +
+
+ + + + +
#define BMI270_INTERNAL_STATUS   0x21
+
+ +

Definition at line 92 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_PWR_CONF

+ +
+
+ + + + +
#define BMI270_PWR_CONF   0x7C
+
+ +

Definition at line 74 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMI270_PWR_CTRL

+ +
+
+ + + + +
#define BMI270_PWR_CTRL   0x7D
+
+ +

Definition at line 75 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMM150_DATA0

+ +
+
+ + + + +
#define BMM150_DATA0   0x42
+
+ +

Definition at line 97 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMM150_REG_POWER_CONTROL

+ +
+
+ + + + +
#define BMM150_REG_POWER_CONTROL   0x4B
+
+ +

Definition at line 95 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BMM150_SHIP_ID

+ +
+
+ + + + +
#define BMM150_SHIP_ID   0x40
+
+ +

Definition at line 96 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BSP_BMI270_ADDR

+ +
+
+ + + + +
#define BSP_BMI270_ADDR   0x69
+
+ +

Definition at line 64 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ BSP_BMM150_ADDR

+ +
+
+ + + + +
#define BSP_BMM150_ADDR   0x10
+
+
+ +

◆ M5_CUBE_SIDE

+ +
+
+ + + + +
#define M5_CUBE_SIDE   (BSP_LCD_V_RES / 4)
+
+
+

Function Documentation

+ +

◆ app_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_init (void )
+
+static
+
+ +

Initialize the application.

+

This function initialize the display 3D points and chips: mbi270 and bmm150

+ +

Definition at line 186 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
187{
+
188 lv_style_init(&style_red);
+
189 lv_style_init(&style_blue);
+
190
+
191 lv_style_set_line_color(&style_red, lv_palette_main(LV_PALETTE_RED));
+
192 lv_style_set_line_width(&style_red, 10);
+
193 lv_style_set_line_rounded(&style_red, false);
+
194 lv_style_set_line_color(&style_blue, lv_palette_main(LV_PALETTE_BLUE));
+
195 lv_style_set_line_width(&style_blue, 10);
+
196 lv_style_set_line_rounded(&style_blue, false);
+
197
+
198 objs = (lv_obj_t **)malloc(CUBE_EDGES * sizeof(lv_obj_t *));
+
199 points = (lv_point_precise_t *)malloc(CUBE_EDGES * 2 * sizeof(lv_point_precise_t));
+
200
+
201 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES / 2; cube_point++) {
+
202
+
203 objs[cube_point] = lv_line_create(lv_screen_active());
+
204 lv_obj_add_style(objs[cube_point], &style_red, 0);
+
205 }
+
206 for (uint8_t cube_point = CUBE_EDGES / 2; cube_point < CUBE_EDGES; cube_point++) {
+
207
+
208 objs[cube_point] = lv_line_create(lv_screen_active());
+
209 lv_obj_add_style(objs[cube_point], &style_blue, 0);
+
210 }
+
211
+
212 // Init the bmi270 and bmm150 chips
+
213 esp_err_t err = i2c_master_get_bus_handle(CONFIG_BSP_I2C_NUM, &i2c_handle);
+
214
+
215 const i2c_device_config_t bmi270_config = {
+
216 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
217 .device_address = BSP_BMI270_ADDR,
+
218 .scl_speed_hz = 400000,
+
219 };
+
220 err = i2c_master_bus_add_device(i2c_handle, &bmi270_config, &bmi270_h);
+
221 vTaskDelay(10);
+
222 // Read chip ID to check the connection
+
223 i2c_write_buffer[0] = 0x00;
+
224 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
225 ESP_LOGI(TAG, "bmi270 ChipID = 0x%2.2x (should be 0x24), err = %2.2x", i2c_read_buffer[0], err);
+
226
+ +
228 i2c_write_buffer[1] = 0x20;
+
229 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
230
+ +
232 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
233
+ +
235 i2c_write_buffer[1] = 0x0f;
+
236 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
237
+ +
239 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
240
+ +
242 i2c_write_buffer[1] = 0x80;
+
243 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
244
+ +
246 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
247 // vTaskDelay(1);
+
248
+ +
250 i2c_read_buffer[0] = 1;
+ + +
253 vTaskDelay(1);
+
254
+ +
256 ESP_LOGI(TAG, "bmm150 chip ID = 0x%2.2x (should be 0x32), err = %2.2x", i2c_read_buffer[0], err);
+
257
+
258 err = read_bmm150_data(0x4c, i2c_read_buffer, 1);
+
259 i2c_read_buffer[0] = 0x3 << 3;
+ +
261 err = read_bmm150_data(0x4c, i2c_read_buffer, 1);
+
262 vTaskDelay(1);
+
263
+ +
265 ESP_LOGI(TAG, "bmi270 status = %2.2x", read_bmi270_reg(BMI270_INTERNAL_STATUS, &err));
+
266 vTaskDelay(10 / portTICK_PERIOD_MS);
+
267
+ + + +
271 ESP_LOGI(TAG, "bmi270 status = %2.2x", read_bmi270_reg(BMI270_INTERNAL_STATUS, &err));
+
272
+ + + + + + + +
280
+ +
282 i2c_write_buffer[1] = 0x00;
+
283 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
284
+ + +
287 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
288
+ +
290 i2c_write_buffer[1] = 0x20;
+
291 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
292
+ +
294 i2c_write_buffer[1] = 0x03;
+
295 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
296
+
297 ESP_LOGI(TAG, "bmi270 initialization is done");
+
298}
+ +
static i2c_master_bus_handle_t i2c_handle
+ + + + + + + +
esp_err_t write_bmi270_data(uint8_t addr, uint8_t *data, int length)
+
esp_err_t write_bmm150_data(uint8_t addr, uint8_t *data, int length)
+
esp_err_t write_bmi270_reg(uint8_t addr, uint8_t data)
+ + + + + + + + + + + + +
esp_err_t read_bmm150_data(uint8_t addr, uint8_t *data, int length)
+ + + + + + +
uint8_t read_bmi270_reg(uint8_t addr, esp_err_t *err)
+ +
int esp_err_t
Definition esp_err.h:21
+
static const char * TAG
Definition main/main.c:31
+
+

References BMI270_ACC_CONF, BMI270_ACC_RANGE, BMI270_AUX_CONF, BMI270_AUX_IF_CONFIG, BMI270_AUX_READ_ADDR, bmi270_context_config_file, bmi270_context_config_file_size, BMI270_GYR_CONF, BMI270_GYR_RANGE, bmi270_h, BMI270_IF_CONF, BMI270_INIT_CTRL, BMI270_INIT_DATA, BMI270_INTERNAL_STATUS, BMI270_PWR_CONF, BMI270_PWR_CTRL, BMM150_DATA0, BMM150_REG_POWER_CONTROL, BMM150_SHIP_ID, BSP_BMI270_ADDR, CUBE_EDGES, i2c_handle, i2c_read_buffer, i2c_write_buffer, objs, points, read_bmi270_reg(), read_bmm150_data(), style_blue, style_red, TAG, write_bmi270_data(), write_bmi270_reg(), and write_bmm150_data().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 421 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
422{
+
423 ekf13 = new ekf_imu13states();
+
424 ekf13->Init();
+
425
+
426 // Init all board components
+
427 display = bsp_display_start();
+ + +
430 app_init();
+
431
+
432 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
433
+
434 xTaskCreate(draw_3d_image_task, "draw_3d_image", 16384, &image, 4, NULL);
+
435 ESP_LOGI(TAG, "Showing 3D image");
+
436
+
437}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+ + + +
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+
static void app_init(void)
Initialize the application.
+
This class is used to process and calculate attitude from imu sensors.
+
+

References app_init(), display, draw_3d_image_task(), ekf13, image, init_3d_matrix_struct(), init_perspective_matrix(), perspective_matrix, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 308 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
309{
+
310 // For the 3D cube, only the 6 points of the cube are transformed
+
311 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
312 bsp_display_lock(10000);
+
313 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
314 points[cube_point * 2 + 0].x = (int16_t)projected_image(cube_dict_line_begin[cube_point], 0);
+
315 points[cube_point * 2 + 0].y = (int16_t)projected_image(cube_dict_line_begin[cube_point], 1);
+
316 points[cube_point * 2 + 1].x = (int16_t)projected_image(cube_dict_line_end[cube_point], 0);
+
317 points[cube_point * 2 + 1].y = (int16_t)projected_image(cube_dict_line_end[cube_point], 1);
+
318 lv_line_set_points(objs[cube_point], &points[cube_point * 2 + 0], 2);
+
319 lv_obj_set_pos(objs[cube_point], 0, 0);
+
320 }
+
321 bsp_display_unlock();
+
322}
+ + +
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, objs, and points.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image_task()

+ +
+
+ + + + + +
+ + + + + + + +
void draw_3d_image_task (void * arg)
+
+static
+
+ +

RTOS task to draw a 3d image.

+

Updates 3d matrices, prepares the final 3d matrix to be displayed on the display

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 333 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
334{
+ +
336
+
337 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
338 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
339 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
340
+
341 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
342
+
343 float dt = 0;
+
344 static float prev_time = 0;
+
345 float current_time = dsp_get_cpu_cycle_count();
+
346 float R_m[6] = {0.01, 0.01, 0.01, 0.01, 0.01, 0.01};
+
347
+
348 float magn_norm = 1;
+
349 while (1) {
+
350
+
351 esp_err_t err;
+
352
+
353 // Calculate dt for kalman filter
+
354 current_time = dsp_get_cpu_cycle_count();
+
355 if (current_time > prev_time) {
+
356 dt = current_time - prev_time;
+
357 dt = dt / 240000000.0;
+
358 }
+
359 prev_time = current_time;
+
360
+
361
+
362 // Read and convert data from bmi270 and bmm150 sensors
+
363 err = read_bmi270_data(BMI270_AUX_DATA0, (uint8_t *)sensors_data, 20);
+
364 float accel[3];
+
365 float gyro[3];
+
366 float magn[3];
+
367 for (size_t i = 0; i < 3; i++) {
+
368 magn[i] = sensors_data[i];
+
369 accel[i] = sensors_data[4 + i];
+
370 gyro[i] = sensors_data[7 + i];
+
371 /* code */
+
372 }
+
373
+
374 // We have to apply this because initial direction of sensors
+
375 magn[1] = -magn[1];
+
376 accel[1] = -accel[1];
+
377 gyro[1] = -gyro[1];
+
378
+
379 magn[2] = -magn[2];
+
380 accel[2] = -accel[2];
+
381 gyro[2] = -gyro[2];
+
382
+
383 dspm::Mat gyro_input_mat(gyro, 3, 1);
+
384 dspm::Mat accel_input_mat(accel, 3, 1);
+
385 dspm::Mat mag_input_mat(magn, 3, 1);
+
386
+
387 // Accelerometer has 166 max range fit to the int16 value
+
388 accel_input_mat = accel_input_mat / 32768 * 16;
+
389 if (magn_norm < mag_input_mat.norm()) {
+
390 magn_norm = mag_input_mat.norm();
+
391 }
+
392 mag_input_mat = (1 / magn_norm) * mag_input_mat;
+
393
+
394 // range 2000 gedree/sec fit to the int16 range
+
395 gyro_input_mat *= (2000 * DEG_TO_RAD / 32768);
+
396
+
397 ekf13->Process(gyro_input_mat.data, dt);
+
398 ekf13->UpdateRefMeasurementMagn(accel_input_mat.data, mag_input_mat.data, R_m);
+
399
+
400 // Convert directin quaternion to rotation matrix
+
401 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data).t(); // matrix(3x1) that holds x, y, z rotation data
+
402 // Convert rotation matrix to Euler angels
+
403 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
404 // Apply radian to degree
+
405 eul_angles *= RAD_TO_DEG;
+
406 // Apply rotation in all the axes to the transformation matrix
+
407 update_rotation_matrix(T, eul_angles(0, 0), eul_angles(1, 0), eul_angles(2, 0));
+
408 // Apply translation to the transformation matrix
+
409 update_translation_matrix(T, true, ((float)BSP_LCD_H_RES / 2), ((float)BSP_LCD_V_RES / 2), 0);
+
410
+
411 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
412 transformed_image = matrix_3d * T;
+
413 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
414 projected_image = transformed_image * perspective_matrix;
+
415
+
416 display_3d_image(projected_image);
+
417 vTaskDelay(5 / portTICK_PERIOD_MS);
+
418 }
+
419}
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+
esp_err_t read_bmi270_data(uint8_t addr, uint8_t *data, int length)
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+
+

References BMI270_AUX_DATA0, dspm::Mat::data, DEG_TO_RAD, display_3d_image(), dsp_get_cpu_cycle_count, ekf13, dspm::Mat::eye(), image, MATRIX_SIZE, dspm::Mat::norm(), perspective_matrix, ekf::quat2rotm(), RAD_TO_DEG, read_bmi270_data(), ekf::rotm2eul(), sensors_data, dspm::Mat::t(), update_rotation_matrix(), and update_translation_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_t * image)
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + +
image3d image structure
+
+
+ +

Definition at line 46 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
47{
+
48 image->matrix = m5_cube_vectors_3d;
+
49 image->matrix_len = ((sizeof(m5_cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
50}
+
const float m5_cube_vectors_3d[CUBE_POINTS][MATRIX_SIZE]
+
+

References image, m5_cube_vectors_3d, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ read_bmi270_data()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t read_bmi270_data (uint8_t addr,
uint8_t * data,
int length )
+
+ +

Definition at line 149 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
150{
+
151
+
152 i2c_write_buffer[0] = addr;
+
153 esp_err_t err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
154 return err;
+
155}
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ read_bmi270_reg()

+ +
+
+ + + + + + + + + + + +
uint8_t read_bmi270_reg (uint8_t addr,
esp_err_t * err )
+
+ +

Definition at line 166 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
167{
+
168
+
169 i2c_write_buffer[0] = addr;
+
170 *err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, &i2c_write_buffer[16], 1, 1000);
+
171 return i2c_write_buffer[16];
+
172}
+
+

References bmi270_h, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ read_bmm150_data()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t read_bmm150_data (uint8_t addr,
uint8_t * data,
int length )
+
+ +

Definition at line 100 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
101{
+ +
103 i2c_write_buffer[1] = addr;
+
104 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
105
+ +
107 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
108
+ +
110 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
111 return err;
+
112}
+ +
+

References BMI270_AUX_DATA0, BMI270_AUX_READ_ADDR, BMI270_AUX_STATUS, bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ write_bmi270_data()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t write_bmi270_data (uint8_t addr,
uint8_t * data,
int length )
+
+ +

Definition at line 127 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
128{
+
129 if (length < 32) {
+ +
131 for (size_t i = 0; i < length; i++) {
+
132 i2c_write_buffer[1 + i] = data[i];
+
133 }
+
134 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 1 + length, 1000);
+
135 return err;
+
136 }
+
137
+
138 uint8_t *temp_data = (uint8_t *)malloc(length + 4);
+
139 for (size_t i = 0; i < length; i++) {
+
140 temp_data[1 + i] = data[i];
+
141 }
+
142 temp_data[0] = addr;
+
143
+
144 esp_err_t err = i2c_master_transmit(bmi270_h, temp_data, 1 + length, 1000);
+
145 free(temp_data);
+
146 return err;
+
147}
+ +
+

References BMI270_AUX_WRITE_DATA, bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ write_bmi270_reg()

+ +
+
+ + + + + + + + + + + +
esp_err_t write_bmi270_reg (uint8_t addr,
uint8_t data )
+
+ +

Definition at line 157 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
158{
+
159
+
160 i2c_write_buffer[0] = addr;
+ +
162 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
163 return err;
+
164}
+
+

References bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ write_bmm150_data()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t write_bmm150_data (uint8_t addr,
uint8_t * data,
int length )
+
+ +

Definition at line 114 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
115{
+ +
117 i2c_write_buffer[1] = data[0];
+
118 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
119
+ +
121 i2c_write_buffer[1] = addr;
+
122 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
123
+
124 return err;
+
125}
+ +
+

References BMI270_AUX_WRITE_ADDR, BMI270_AUX_WRITE_DATA, bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ bmi270_context_config_file

+ +
+
+ + + + +
uint8_t bmi270_context_config_file[]
+
+
+ +

◆ bmi270_context_config_file_size

+ +
+
+ + + + +
const int bmi270_context_config_file_size
+
+
+ +

◆ bmi270_h

+ +
+
+ + + + + +
+ + + + +
i2c_master_dev_handle_t bmi270_h = NULL
+
+static
+
+
+ +

◆ display

+ +
+
+ + + + +
lv_display_t* display = NULL
+
+
+ +

◆ ekf13

+ + + +

◆ i2c_handle

+ +
+
+ + + + + +
+ + + + +
i2c_master_bus_handle_t i2c_handle
+
+static
+
+
+ +

◆ i2c_read_buffer

+ +
+
+ + + + + +
+ + + + +
uint8_t i2c_read_buffer[32]
+
+static
+
+ +

Definition at line 68 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ i2c_write_buffer

+ +
+
+ + + + + +
+ + + + +
uint8_t i2c_write_buffer[32]
+
+static
+
+
+ +

◆ image

+ + + +

◆ m5_cube_vectors_3d

+ +
+
+ + + + +
const float m5_cube_vectors_3d[CUBE_POINTS][MATRIX_SIZE]
+
+Initial value:
=
+
+
{ {- (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , 1},
+
{- (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , 1},
+
{- (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , 1},
+
{- (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , 1},
+
{ (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , 1},
+
{ (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , 1},
+
{ (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , 1},
+
{ (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , 1}
+
}
+
+

Definition at line 26 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
27{ {-M5_CUBE_SIDE, -M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // -1, -1, -1
+
28 {-M5_CUBE_SIDE, -M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // -1, -1, 1
+
29 {-M5_CUBE_SIDE, M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // -1, 1, -1
+
30 {-M5_CUBE_SIDE, M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // -1, 1, 1
+
31 { M5_CUBE_SIDE, -M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // 1, -1, -1
+
32 { M5_CUBE_SIDE, -M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // 1, -1, 1
+
33 { M5_CUBE_SIDE, M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // 1, 1, -1
+
34 { M5_CUBE_SIDE, M5_CUBE_SIDE, M5_CUBE_SIDE, 1} // 1, 1, 1
+
35};
+ +
+

Referenced by init_3d_matrix_struct(), and init_3d_matrix_struct().

+ +
+
+ +

◆ objs

+ +
+
+ + + + +
lv_obj_t** objs
+
+ +

Initialize display.

+ +

Definition at line 58 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), app_init(), display_3d_image(), and display_3d_image().

+ +
+
+ +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ points

+ +
+
+ + + + +
lv_point_precise_t* points
+
+
+ +

◆ sensors_data

+ +
+
+ + + + +
int16_t sensors_data[32]
+
+
+ +

◆ style_blue

+ +
+
+ + + + +
lv_style_t style_blue
+
+ +

Definition at line 53 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ style_red

+ +
+
+ + + + +
lv_style_t style_red
+
+ +

Definition at line 52 of file applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+ +

Referenced by app_init(), and app_init().

+ +
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "3d-kalman"
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.js b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.js new file mode 100644 index 0000000..dea2180 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.js @@ -0,0 +1,58 @@ +var applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp = +[ + [ "BMI270_ACC_CONF", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a302ab862a12aea554841bf879c800d69", null ], + [ "BMI270_ACC_DATA0", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a13f9a96bb100fae787aed5ecb048920e", null ], + [ "BMI270_ACC_RANGE", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#ad339f43519ef728071749fa5bf24a94c", null ], + [ "BMI270_AUX_CONF", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a431740815383893f193f7e325faed96f", null ], + [ "BMI270_AUX_DATA0", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5f6e3ac399a1db2466e076baf53617ed", null ], + [ "BMI270_AUX_DEV_ID", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5761489077fac77ccfb8343b5e81dc54", null ], + [ "BMI270_AUX_IF_CONFIG", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a2f979fbaaf88c2ea93b2c802ccd77829", null ], + [ "BMI270_AUX_READ_ADDR", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a72aff8db236db27c6fae0622ec41637b", null ], + [ "BMI270_AUX_STATUS", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a316c3dcb9642aa09d7a476a47e10d374", null ], + [ "BMI270_AUX_WRITE_ADDR", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a704fbcf64829ea456f71ae401b8431fd", null ], + [ "BMI270_AUX_WRITE_DATA", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#ac28e035e6810d0aca652a2a913a9e95c", null ], + [ "BMI270_CMD", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aff410faa3b939ca283bba65dde31c481", null ], + [ "BMI270_GYR_CONF", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#ace9258df23dc2c6acf1253557d852cfb", null ], + [ "BMI270_GYR_DATA0", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a61ea8948e21792e9ba6c4f78ca7cd72c", null ], + [ "BMI270_GYR_RANGE", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a20e904c9db43a5e1f17e5e99850e459d", null ], + [ "BMI270_IF_CONF", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a2ed960fd2445023c703ed7db07352246", null ], + [ "BMI270_INIT_CTRL", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5975395053a058a51536904ffdabd2d5", null ], + [ "BMI270_INIT_DATA", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a59f0ba6db98757f8b5b58382839401f4", null ], + [ "BMI270_INTERNAL_STATUS", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a8417736c4f6f8a47c9d87ba0ec47d5bf", null ], + [ "BMI270_PWR_CONF", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a131c2843948b849fb984ed7965c0c82a", null ], + [ "BMI270_PWR_CTRL", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aaf34db37b8cce607713bbd3a792708de", null ], + [ "BMM150_DATA0", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a768e0293eb6e69dbbdb113e4439ca8f0", null ], + [ "BMM150_REG_POWER_CONTROL", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#adc1ea0dc872e8f5770a1a450d7d5876b", null ], + [ "BMM150_SHIP_ID", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5b4fec38edca346abc26b88eb7377d5c", null ], + [ "BSP_BMI270_ADDR", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a29e62dd1ad24d04a89c53d9bd14a0066", null ], + [ "BSP_BMM150_ADDR", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#af08fe3c9790efb2c5ce75b1821e35f8b", null ], + [ "M5_CUBE_SIDE", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a79dd3de696f1f190ada50dd2b957b5d7", null ], + [ "app_init", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#ad6cae3f4505c3e369a1ac0d3c3b60f42", null ], + [ "app_main", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "display_3d_image", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image_task", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#af3debef909dca35dbf0b6f842df6def3", null ], + [ "init_3d_matrix_struct", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a3340d28d7e9de0fd62d17e02ce70a52c", null ], + [ "read_bmi270_data", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a0eb4c2dc5d13163ccfd6157eadb637e5", null ], + [ "read_bmi270_reg", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#af738e0476293a8e7822b85ba126ba159", null ], + [ "read_bmm150_data", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aaa70e24a0cabfe8a2f7b4d1a8cb38915", null ], + [ "write_bmi270_data", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a3bbb9efa771a4f9e06817a8cb0d14501", null ], + [ "write_bmi270_reg", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a41d4e2f025faabb41f47bc054cf3d92a", null ], + [ "write_bmm150_data", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a3ea8f747686c9736edb1c30a2bf5d3ca", null ], + [ "bmi270_context_config_file", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a841b02d0c8bb3bdea76038e60aa6d76f", null ], + [ "bmi270_context_config_file_size", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aaed4743b4089675e78e99c4e70acee64", null ], + [ "bmi270_h", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aec9920416991f6e1ed23dfcdcfced7f4", null ], + [ "display", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a94cee89137dc23941cca5f855cc1140c", null ], + [ "ekf13", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a1a1d8c3374e1c88601f520bceeb0e8d7", null ], + [ "i2c_handle", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a721c9ecee4307bc707d56f8289af4bfb", null ], + [ "i2c_read_buffer", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#affe417de6fa5765dee1c825c3d89b407", null ], + [ "i2c_write_buffer", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a773df93a11da89f8b675eca97e5a6e84", null ], + [ "image", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#af643ed4087a70fb8ad4885eadf1fd862", null ], + [ "m5_cube_vectors_3d", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a21f4cd7ce8be87b679a464bd16a3e6b9", null ], + [ "objs", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a6a758a9d57bc160314df99d17c57ee34", null ], + [ "perspective_matrix", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "points", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a04c6fdadd11e089581037007e9406763", null ], + [ "sensors_data", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a7ccbd63f9db1fc2533bcad702b77628f", null ], + [ "style_blue", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a4acacc55f9f20c7b359cfdb5673d94c4", null ], + [ "style_red", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a6de19fc49a7e5b192f007a32602bb9e4", null ], + [ "TAG", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.md5 new file mode 100644 index 0000000..d5a7d4d --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +57a1c14e0fa1769dbc4d8fcf54be4e70 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.svg new file mode 100644 index 0000000..1da5556 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.svg @@ -0,0 +1,1726 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3d_kalman_demo.cpp + + +Node1 + + +3d_kalman_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_dsp.h + + + + + +Node1->Node6 + + + + + + + + +Node74 + + +cube_matrix.h + + + + + +Node1->Node74 + + + + + + + + +Node75 + + +esp_logo.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_text.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +graphics_support.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +image_to_3d_matrix.h + + + + + +Node1->Node78 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +dsp_common.h + + + + + +Node6->Node7 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node6->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node6->Node17 + + + + + + + + +Node20 + + +dsps_math.h + + + + + +Node6->Node20 + + + + + + + + +Node32 + + +dsps_fir.h + + + + + +Node6->Node32 + + + + + + + + +Node34 + + +dsps_resampler.h + + + + + +Node6->Node34 + + + + + + + + +Node35 + + +dsps_biquad.h + + + + + +Node6->Node35 + + + + + + + + +Node37 + + +dsps_biquad_gen.h + + + + + +Node6->Node37 + + + + + + + + +Node38 + + +dsps_wind.h + + + + + +Node6->Node38 + + + + + + + + +Node45 + + +dsps_conv.h + + + + + +Node6->Node45 + + + + + + + + +Node47 + + +dsps_corr.h + + + + + +Node6->Node47 + + + + + + + + +Node48 + + +dsps_d_gen.h + + + + + +Node6->Node48 + + + + + + + + +Node49 + + +dsps_h_gen.h + + + + + +Node6->Node49 + + + + + + + + +Node50 + + +dsps_tone_gen.h + + + + + +Node6->Node50 + + + + + + + + +Node51 + + +dsps_snr.h + + + + + +Node6->Node51 + + + + + + + + +Node52 + + +dsps_sfdr.h + + + + + +Node6->Node52 + + + + + + + + +Node53 + + +dsps_fft2r.h + + + + + +Node6->Node53 + + + + + + + + +Node56 + + +dsps_fft4r.h + + + + + +Node6->Node56 + + + + + + + + +Node58 + + +dsps_dct.h + + + + + +Node6->Node58 + + + + + + + + +Node59 + + +dspm_matrix.h + + + + + +Node6->Node59 + + + + + + + + +Node70 + + +dsps_view.h + + + + + +Node6->Node70 + + + + + + + + +Node71 + + +dspi_dotprod.h + + + + + +Node6->Node71 + + + + + + + + +Node73 + + +dspi_conv.h + + + + + +Node6->Node73 + + + + + + + + +Node8 + + +stdint.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +stdbool.h + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +dsp_err.h + + + + + +Node7->Node10 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node7->Node14 + + + + + + + + +Node10->Node8 + + + + + + + + +Node15->Node8 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + +Node17->Node3 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18 + + +dsps_dotprod_platform.h + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +sdkconfig.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_add.h + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +dsps_sub.h + + + + + +Node20->Node23 + + + + + + + + +Node25 + + +dsps_mul.h + + + + + +Node20->Node25 + + + + + + + + +Node27 + + +dsps_addc.h + + + + + +Node20->Node27 + + + + + + + + +Node29 + + +dsps_mulc.h + + + + + +Node20->Node29 + + + + + + + + +Node31 + + +dsps_sqrt.h + + + + + +Node20->Node31 + + + + + + + + +Node21->Node10 + + + + + + + + +Node23->Node10 + + + + + + + + +Node25->Node10 + + + + + + + + +Node27->Node10 + + + + + + + + +Node29->Node10 + + + + + + + + +Node31->Node10 + + + + + + + + +Node32->Node7 + + + + + + + + +Node32->Node10 + + + + + + + + +Node33 + + +dsps_fir_platform.h + + + + + +Node32->Node33 + + + + + + + + +Node33->Node19 + + + + + + + + +Node34->Node10 + + + + + + + + +Node34->Node32 + + + + + + + + +Node35->Node10 + + + + + + + + +Node36 + + +dsps_biquad_platform.h + + + + + +Node35->Node36 + + + + + + + + +Node36->Node19 + + + + + + + + +Node37->Node10 + + + + + + + + +Node39 + + +dsps_wind_hann.h + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman.h + + + + + +Node38->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman +_harris.h + + + + + +Node38->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node38->Node42 + + + + + + + + +Node43 + + +dsps_wind_nuttall.h + + + + + +Node38->Node43 + + + + + + + + +Node44 + + +dsps_wind_flat_top.h + + + + + +Node38->Node44 + + + + + + + + +Node45->Node10 + + + + + + + + +Node46 + + +dsps_conv_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node19 + + + + + + + + +Node47->Node10 + + + + + + + + +Node47->Node46 + + + + + + + + +Node48->Node10 + + + + + + + + +Node49->Node10 + + + + + + + + +Node50->Node10 + + + + + + + + +Node51->Node10 + + + + + + + + +Node52->Node10 + + + + + + + + +Node53->Node10 + + + + + + + + +Node53->Node19 + + + + + + + + +Node54 + + +dsps_fft_tables.h + + + + + +Node53->Node54 + + + + + + + + +Node55 + + +dsps_fft2r_platform.h + + + + + +Node53->Node55 + + + + + + + + +Node55->Node19 + + + + + + + + +Node56->Node10 + + + + + + + + +Node56->Node19 + + + + + + + + +Node56->Node54 + + + + + + + + +Node57 + + +dsps_fft4r_platform.h + + + + + +Node56->Node57 + + + + + + + + +Node57->Node19 + + + + + + + + +Node58->Node10 + + + + + + + + +Node58->Node19 + + + + + + + + +Node60 + + +dspm_add.h + + + + + +Node59->Node60 + + + + + + + + +Node62 + + +dspm_addc.h + + + + + +Node59->Node62 + + + + + + + + +Node64 + + +dspm_mult.h + + + + + +Node59->Node64 + + + + + + + + +Node66 + + +dspm_mulc.h + + + + + +Node59->Node66 + + + + + + + + +Node68 + + +dspm_sub.h + + + + + +Node59->Node68 + + + + + + + + +Node60->Node10 + + + + + + + + +Node62->Node10 + + + + + + + + +Node64->Node10 + + + + + + + + +Node66->Node10 + + + + + + + + +Node68->Node10 + + + + + + + + +Node70->Node10 + + + + + + + + +Node71->Node3 + + + + + + + + +Node71->Node10 + + + + + + + + +Node71->Node15 + + + + + + + + +Node72 + + +dspi_dotprod_platform.h + + + + + +Node71->Node72 + + + + + + + + +Node72->Node19 + + + + + + + + +Node73->Node10 + + + + + + + + +Node73->Node15 + + + + + + + + +Node73->Node46 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..811a559 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl_org.svg @@ -0,0 +1,1643 @@ + + + + + + +3d_kalman_demo.cpp + + +Node1 + + +3d_kalman_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_dsp.h + + + + + +Node1->Node6 + + + + + + + + +Node74 + + +cube_matrix.h + + + + + +Node1->Node74 + + + + + + + + +Node75 + + +esp_logo.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_text.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +graphics_support.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +image_to_3d_matrix.h + + + + + +Node1->Node78 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +dsp_common.h + + + + + +Node6->Node7 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node6->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node6->Node17 + + + + + + + + +Node20 + + +dsps_math.h + + + + + +Node6->Node20 + + + + + + + + +Node32 + + +dsps_fir.h + + + + + +Node6->Node32 + + + + + + + + +Node34 + + +dsps_resampler.h + + + + + +Node6->Node34 + + + + + + + + +Node35 + + +dsps_biquad.h + + + + + +Node6->Node35 + + + + + + + + +Node37 + + +dsps_biquad_gen.h + + + + + +Node6->Node37 + + + + + + + + +Node38 + + +dsps_wind.h + + + + + +Node6->Node38 + + + + + + + + +Node45 + + +dsps_conv.h + + + + + +Node6->Node45 + + + + + + + + +Node47 + + +dsps_corr.h + + + + + +Node6->Node47 + + + + + + + + +Node48 + + +dsps_d_gen.h + + + + + +Node6->Node48 + + + + + + + + +Node49 + + +dsps_h_gen.h + + + + + +Node6->Node49 + + + + + + + + +Node50 + + +dsps_tone_gen.h + + + + + +Node6->Node50 + + + + + + + + +Node51 + + +dsps_snr.h + + + + + +Node6->Node51 + + + + + + + + +Node52 + + +dsps_sfdr.h + + + + + +Node6->Node52 + + + + + + + + +Node53 + + +dsps_fft2r.h + + + + + +Node6->Node53 + + + + + + + + +Node56 + + +dsps_fft4r.h + + + + + +Node6->Node56 + + + + + + + + +Node58 + + +dsps_dct.h + + + + + +Node6->Node58 + + + + + + + + +Node59 + + +dspm_matrix.h + + + + + +Node6->Node59 + + + + + + + + +Node70 + + +dsps_view.h + + + + + +Node6->Node70 + + + + + + + + +Node71 + + +dspi_dotprod.h + + + + + +Node6->Node71 + + + + + + + + +Node73 + + +dspi_conv.h + + + + + +Node6->Node73 + + + + + + + + +Node8 + + +stdint.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +stdbool.h + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +dsp_err.h + + + + + +Node7->Node10 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node7->Node14 + + + + + + + + +Node10->Node8 + + + + + + + + +Node15->Node8 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + +Node17->Node3 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18 + + +dsps_dotprod_platform.h + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +sdkconfig.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_add.h + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +dsps_sub.h + + + + + +Node20->Node23 + + + + + + + + +Node25 + + +dsps_mul.h + + + + + +Node20->Node25 + + + + + + + + +Node27 + + +dsps_addc.h + + + + + +Node20->Node27 + + + + + + + + +Node29 + + +dsps_mulc.h + + + + + +Node20->Node29 + + + + + + + + +Node31 + + +dsps_sqrt.h + + + + + +Node20->Node31 + + + + + + + + +Node21->Node10 + + + + + + + + +Node23->Node10 + + + + + + + + +Node25->Node10 + + + + + + + + +Node27->Node10 + + + + + + + + +Node29->Node10 + + + + + + + + +Node31->Node10 + + + + + + + + +Node32->Node7 + + + + + + + + +Node32->Node10 + + + + + + + + +Node33 + + +dsps_fir_platform.h + + + + + +Node32->Node33 + + + + + + + + +Node33->Node19 + + + + + + + + +Node34->Node10 + + + + + + + + +Node34->Node32 + + + + + + + + +Node35->Node10 + + + + + + + + +Node36 + + +dsps_biquad_platform.h + + + + + +Node35->Node36 + + + + + + + + +Node36->Node19 + + + + + + + + +Node37->Node10 + + + + + + + + +Node39 + + +dsps_wind_hann.h + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman.h + + + + + +Node38->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman +_harris.h + + + + + +Node38->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node38->Node42 + + + + + + + + +Node43 + + +dsps_wind_nuttall.h + + + + + +Node38->Node43 + + + + + + + + +Node44 + + +dsps_wind_flat_top.h + + + + + +Node38->Node44 + + + + + + + + +Node45->Node10 + + + + + + + + +Node46 + + +dsps_conv_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node19 + + + + + + + + +Node47->Node10 + + + + + + + + +Node47->Node46 + + + + + + + + +Node48->Node10 + + + + + + + + +Node49->Node10 + + + + + + + + +Node50->Node10 + + + + + + + + +Node51->Node10 + + + + + + + + +Node52->Node10 + + + + + + + + +Node53->Node10 + + + + + + + + +Node53->Node19 + + + + + + + + +Node54 + + +dsps_fft_tables.h + + + + + +Node53->Node54 + + + + + + + + +Node55 + + +dsps_fft2r_platform.h + + + + + +Node53->Node55 + + + + + + + + +Node55->Node19 + + + + + + + + +Node56->Node10 + + + + + + + + +Node56->Node19 + + + + + + + + +Node56->Node54 + + + + + + + + +Node57 + + +dsps_fft4r_platform.h + + + + + +Node56->Node57 + + + + + + + + +Node57->Node19 + + + + + + + + +Node58->Node10 + + + + + + + + +Node58->Node19 + + + + + + + + +Node60 + + +dspm_add.h + + + + + +Node59->Node60 + + + + + + + + +Node62 + + +dspm_addc.h + + + + + +Node59->Node62 + + + + + + + + +Node64 + + +dspm_mult.h + + + + + +Node59->Node64 + + + + + + + + +Node66 + + +dspm_mulc.h + + + + + +Node59->Node66 + + + + + + + + +Node68 + + +dspm_sub.h + + + + + +Node59->Node68 + + + + + + + + +Node60->Node10 + + + + + + + + +Node62->Node10 + + + + + + + + +Node64->Node10 + + + + + + + + +Node66->Node10 + + + + + + + + +Node68->Node10 + + + + + + + + +Node70->Node10 + + + + + + + + +Node71->Node3 + + + + + + + + +Node71->Node10 + + + + + + + + +Node71->Node15 + + + + + + + + +Node72 + + +dspi_dotprod_platform.h + + + + + +Node71->Node72 + + + + + + + + +Node72->Node19 + + + + + + + + +Node73->Node10 + + + + + + + + +Node73->Node15 + + + + + + + + +Node73->Node46 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 new file mode 100644 index 0000000..fd42677 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 @@ -0,0 +1 @@ +7c814473c13679bb9547b76b248b03bb \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.svg new file mode 100644 index 0000000..f9fbdc6 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +read_bmi270_data + + +Node1 + + +read_bmi270_data + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph_org.svg new file mode 100644 index 0000000..0613e4f --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +read_bmi270_data + + +Node1 + + +read_bmi270_data + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 new file mode 100644 index 0000000..8f594ab --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 @@ -0,0 +1 @@ +5cf0a525cfd00626c05d350ec1a0c0b5 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg new file mode 100644 index 0000000..b62288b --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg new file mode 100644 index 0000000..aabb5ff --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.md5 new file mode 100644 index 0000000..8176685 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.md5 @@ -0,0 +1 @@ +c7bbfbfc9d2641348d8afcae0ddaab6f \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.svg new file mode 100644 index 0000000..a0e42f5 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +write_bmi270_data + + +Node1 + + +write_bmi270_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph_org.svg new file mode 100644 index 0000000..5d71a07 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +write_bmi270_data + + +Node1 + + +write_bmi270_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 new file mode 100644 index 0000000..918e896 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 @@ -0,0 +1 @@ +93bf1e54c42b4fc8ac87fea8a0471f0d \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.svg new file mode 100644 index 0000000..85c06a4 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +write_bmm150_data + + +Node1 + + +write_bmm150_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph_org.svg new file mode 100644 index 0000000..0877630 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +write_bmm150_data + + +Node1 + + +write_bmm150_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 new file mode 100644 index 0000000..eeec2e0 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 @@ -0,0 +1 @@ +044c42d4f54067a85930d2630266127e \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.svg new file mode 100644 index 0000000..3328e0c --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +write_bmi270_reg + + +Node1 + + +write_bmi270_reg + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph_org.svg new file mode 100644 index 0000000..a440197 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +write_bmi270_reg + + +Node1 + + +write_bmi270_reg + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..e3192ad --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +c283539de6a8e404898819e961803c02 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..b090c6c --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..4d9779d --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 new file mode 100644 index 0000000..6d85527 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 @@ -0,0 +1 @@ +9f45dba4b4a2752ff4bcd16458ef707a \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg new file mode 100644 index 0000000..8316acb --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +read_bmm150_data + + +Node1 + + +read_bmm150_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg new file mode 100644 index 0000000..a3a1dc2 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +read_bmm150_data + + +Node1 + + +read_bmm150_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..06b486b --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +f8e3480b4d1a8f3b8f3a6587669fd391 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..c9a248f --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,402 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +draw_3d_image_task + + + + + +Node1->Node8 + + + + + + + + +Node17 + + +init_3d_matrix_struct + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +init_perspective_matrix + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +read_bmi270_reg + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +read_bmm150_data + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +write_bmi270_data + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +write_bmi270_reg + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +write_bmm150_data + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +display_3d_image + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dspm::Mat::eye + + + + + +Node8->Node10 + + + + + + + + +Node13 + + +update_rotation_matrix + + + + + +Node8->Node13 + + + + + + + + +Node16 + + +update_translation +_matrix + + + + + +Node8->Node16 + + + + + + + + +Node11 + + +dspm::Mat::Mat + + + + + +Node10->Node11 + + + + + + + + +Node14 + + +ekf::eul2rotm + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dspm::Mat::t + + + + + +Node13->Node15 + + + + + + + + +Node15->Node11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..d185206 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,319 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +draw_3d_image_task + + + + + +Node1->Node8 + + + + + + + + +Node17 + + +init_3d_matrix_struct + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +init_perspective_matrix + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +read_bmi270_reg + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +read_bmm150_data + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +write_bmi270_data + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +write_bmi270_reg + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +write_bmm150_data + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +display_3d_image + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dspm::Mat::eye + + + + + +Node8->Node10 + + + + + + + + +Node13 + + +update_rotation_matrix + + + + + +Node8->Node13 + + + + + + + + +Node16 + + +update_translation +_matrix + + + + + +Node8->Node16 + + + + + + + + +Node11 + + +dspm::Mat::Mat + + + + + +Node10->Node11 + + + + + + + + +Node14 + + +ekf::eul2rotm + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dspm::Mat::t + + + + + +Node13->Node15 + + + + + + + + +Node15->Node11 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 new file mode 100644 index 0000000..b5885a8 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 @@ -0,0 +1 @@ +473d86c9c31774ce5be1bcbd7312be0c \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg new file mode 100644 index 0000000..949a534 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +app_init + + +Node1 + + +app_init + + + + + +Node2 + + +read_bmi270_reg + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +read_bmm150_data + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +write_bmi270_data + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +write_bmi270_reg + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +write_bmm150_data + + + + + +Node1->Node6 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg new file mode 100644 index 0000000..27544a5 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +app_init + + +Node1 + + +app_init + + + + + +Node2 + + +read_bmi270_reg + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +read_bmm150_data + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +write_bmi270_data + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +write_bmi270_reg + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +write_bmm150_data + + + + + +Node1->Node6 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 new file mode 100644 index 0000000..79eaac0 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 @@ -0,0 +1 @@ +3aa6be729fbe44eb2cf59d39baf7ae01 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg new file mode 100644 index 0000000..97540e9 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_init + + +Node1 + + +app_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg new file mode 100644 index 0000000..48912ae --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_init + + +Node1 + + +app_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 new file mode 100644 index 0000000..0549b6f --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 @@ -0,0 +1 @@ +3064c09a9da7685fe2b60df14343961d \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg new file mode 100644 index 0000000..27b94cc --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +dspm::Mat::norm + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +read_bmi270_data + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::t + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +update_translation +_matrix + + + + + +Node1->Node13 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +ekf::eul2rotm + + + + + +Node11->Node12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg new file mode 100644 index 0000000..e73a617 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg @@ -0,0 +1,256 @@ + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +dspm::Mat::norm + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +read_bmi270_data + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::t + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +update_translation +_matrix + + + + + +Node1->Node13 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +ekf::eul2rotm + + + + + +Node11->Node12 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.md5 new file mode 100644 index 0000000..2cf4e3d --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.md5 @@ -0,0 +1 @@ +33f546a1bb99f9b01793164d6d42ba8f \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.svg new file mode 100644 index 0000000..4d72b62 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +read_bmi270_reg + + +Node1 + + +read_bmi270_reg + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph_org.svg new file mode 100644 index 0000000..8dd9bd9 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +read_bmi270_reg + + +Node1 + + +read_bmi270_reg + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_source.html b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_source.html new file mode 100644 index 0000000..e449cb2 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_source.html @@ -0,0 +1,611 @@ + + + + + + + +ESP-IDF Firmware: 3d_kalman_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include "esp_log.h"
+
9#include "bsp/m5stack_core_s3.h"
+
10#include "esp_dsp.h"
+
11#include "cube_matrix.h"
+
12#include "esp_logo.h"
+
13#include "esp_text.h"
+
14#include "graphics_support.h"
+
15#include "image_to_3d_matrix.h"
+
16
+
17static const char *TAG = "3d-kalman";
+
18
+ +
20
+
21extern "C" void app_main();
+
22
+
23#define M5_CUBE_SIDE (BSP_LCD_V_RES / 4)
+
24
+
25// X Y Z coordinates of the cube centered to (0, 0, 0)
+
+ +
27 // X Y Z W
+
28{ {-M5_CUBE_SIDE, -M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // -1, -1, -1
+
29 {-M5_CUBE_SIDE, -M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // -1, -1, 1
+
30 {-M5_CUBE_SIDE, M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // -1, 1, -1
+
31 {-M5_CUBE_SIDE, M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // -1, 1, 1
+
32 { M5_CUBE_SIDE, -M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // 1, -1, -1
+
33 { M5_CUBE_SIDE, -M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // 1, -1, 1
+
34 { M5_CUBE_SIDE, M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // 1, 1, -1
+
35 { M5_CUBE_SIDE, M5_CUBE_SIDE, M5_CUBE_SIDE, 1} // 1, 1, 1
+
36};
+
+
37
+
+ +
47{
+
48 image->matrix = m5_cube_vectors_3d;
+
49 image->matrix_len = ((sizeof(m5_cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
50}
+
+
51
+
52lv_style_t style_red;
+
53lv_style_t style_blue;
+
54lv_display_t *display = NULL;
+
58lv_obj_t **objs;
+
59lv_point_precise_t *points;
+
60
+
61
+
62static i2c_master_bus_handle_t i2c_handle;
+
63static i2c_master_dev_handle_t bmi270_h = NULL;
+
64#define BSP_BMI270_ADDR 0x69
+
65#define BSP_BMM150_ADDR 0x10
+
66
+
67// i2c read/write buffers
+
68static uint8_t i2c_read_buffer[32];
+
69static uint8_t i2c_write_buffer[32];
+
70
+
71// Definitions for bmi270 registers
+
72#define BMI270_IF_CONF 0x6B // Auxiliary I2C
+
73#define BMI270_AUX_DEV_ID 0x4B // Auxiliary I2C Device address
+
74#define BMI270_PWR_CONF 0x7C
+
75#define BMI270_PWR_CTRL 0x7D // Auxiliary I2C Device address
+
76#define BMI270_CMD 0x7E // CMD
+
77#define BMI270_AUX_IF_CONFIG 0x4C // Auxiliary I2C configuration register
+
78#define BMI270_AUX_READ_ADDR 0x4D // Read from auxiliary device
+
79#define BMI270_AUX_WRITE_ADDR 0x4E // Write to auxiliary device
+
80#define BMI270_AUX_WRITE_DATA 0x4F // Write to auxiliary device
+
81#define BMI270_AUX_STATUS 0x03
+
82#define BMI270_AUX_DATA0 0x04
+
83#define BMI270_ACC_DATA0 0x0C
+
84#define BMI270_GYR_DATA0 0x12
+
85#define BMI270_ACC_CONF 0x40
+
86#define BMI270_ACC_RANGE 0x41
+
87#define BMI270_GYR_CONF 0x42
+
88#define BMI270_GYR_RANGE 0x43
+
89#define BMI270_AUX_CONF 0x44
+
90#define BMI270_INIT_CTRL 0x59
+
91#define BMI270_INIT_DATA 0x5e
+
92#define BMI270_INTERNAL_STATUS 0x21
+
93
+
94// Definitions for bmi150 registers
+
95#define BMM150_REG_POWER_CONTROL 0x4B
+
96#define BMM150_SHIP_ID 0x40
+
97#define BMM150_DATA0 0x42
+
98
+
99// Basic fuctions to access bmi270 and bmm150
+
+
100esp_err_t read_bmm150_data(uint8_t addr, uint8_t *data, int length)
+
101{
+ +
103 i2c_write_buffer[1] = addr;
+
104 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
105
+ +
107 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
108
+ +
110 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
111 return err;
+
112}
+
+
113
+
+
114esp_err_t write_bmm150_data(uint8_t addr, uint8_t *data, int length)
+
115{
+ +
117 i2c_write_buffer[1] = data[0];
+
118 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
119
+ +
121 i2c_write_buffer[1] = addr;
+
122 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
123
+
124 return err;
+
125}
+
+
126
+
+
127esp_err_t write_bmi270_data(uint8_t addr, uint8_t *data, int length)
+
128{
+
129 if (length < 32) {
+ +
131 for (size_t i = 0; i < length; i++) {
+
132 i2c_write_buffer[1 + i] = data[i];
+
133 }
+
134 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 1 + length, 1000);
+
135 return err;
+
136 }
+
137
+
138 uint8_t *temp_data = (uint8_t *)malloc(length + 4);
+
139 for (size_t i = 0; i < length; i++) {
+
140 temp_data[1 + i] = data[i];
+
141 }
+
142 temp_data[0] = addr;
+
143
+
144 esp_err_t err = i2c_master_transmit(bmi270_h, temp_data, 1 + length, 1000);
+
145 free(temp_data);
+
146 return err;
+
147}
+
+
148
+
+
149esp_err_t read_bmi270_data(uint8_t addr, uint8_t *data, int length)
+
150{
+
151
+
152 i2c_write_buffer[0] = addr;
+
153 esp_err_t err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
154 return err;
+
155}
+
+
156
+
+
157esp_err_t write_bmi270_reg(uint8_t addr, uint8_t data)
+
158{
+
159
+
160 i2c_write_buffer[0] = addr;
+ +
162 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
163 return err;
+
164}
+
+
165
+
+
166uint8_t read_bmi270_reg(uint8_t addr, esp_err_t *err)
+
167{
+
168
+
169 i2c_write_buffer[0] = addr;
+
170 *err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, &i2c_write_buffer[16], 1, 1000);
+
171 return i2c_write_buffer[16];
+
172}
+
+
173
+
174extern "C" uint8_t bmi270_context_config_file[];
+ +
176
+
177int16_t sensors_data[32];
+
178
+
185
+
+
186static void app_init(void)
+
187{
+
188 lv_style_init(&style_red);
+
189 lv_style_init(&style_blue);
+
190
+
191 lv_style_set_line_color(&style_red, lv_palette_main(LV_PALETTE_RED));
+
192 lv_style_set_line_width(&style_red, 10);
+
193 lv_style_set_line_rounded(&style_red, false);
+
194 lv_style_set_line_color(&style_blue, lv_palette_main(LV_PALETTE_BLUE));
+
195 lv_style_set_line_width(&style_blue, 10);
+
196 lv_style_set_line_rounded(&style_blue, false);
+
197
+
198 objs = (lv_obj_t **)malloc(CUBE_EDGES * sizeof(lv_obj_t *));
+
199 points = (lv_point_precise_t *)malloc(CUBE_EDGES * 2 * sizeof(lv_point_precise_t));
+
200
+
201 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES / 2; cube_point++) {
+
202
+
203 objs[cube_point] = lv_line_create(lv_screen_active());
+
204 lv_obj_add_style(objs[cube_point], &style_red, 0);
+
205 }
+
206 for (uint8_t cube_point = CUBE_EDGES / 2; cube_point < CUBE_EDGES; cube_point++) {
+
207
+
208 objs[cube_point] = lv_line_create(lv_screen_active());
+
209 lv_obj_add_style(objs[cube_point], &style_blue, 0);
+
210 }
+
211
+
212 // Init the bmi270 and bmm150 chips
+
213 esp_err_t err = i2c_master_get_bus_handle(CONFIG_BSP_I2C_NUM, &i2c_handle);
+
214
+
215 const i2c_device_config_t bmi270_config = {
+
216 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
217 .device_address = BSP_BMI270_ADDR,
+
218 .scl_speed_hz = 400000,
+
219 };
+
220 err = i2c_master_bus_add_device(i2c_handle, &bmi270_config, &bmi270_h);
+
221 vTaskDelay(10);
+
222 // Read chip ID to check the connection
+
223 i2c_write_buffer[0] = 0x00;
+
224 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
225 ESP_LOGI(TAG, "bmi270 ChipID = 0x%2.2x (should be 0x24), err = %2.2x", i2c_read_buffer[0], err);
+
226
+ +
228 i2c_write_buffer[1] = 0x20;
+
229 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
230
+ +
232 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
233
+ +
235 i2c_write_buffer[1] = 0x0f;
+
236 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
237
+ +
239 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
240
+ +
242 i2c_write_buffer[1] = 0x80;
+
243 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
244
+ +
246 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
247 // vTaskDelay(1);
+
248
+ +
250 i2c_read_buffer[0] = 1;
+ + +
253 vTaskDelay(1);
+
254
+ +
256 ESP_LOGI(TAG, "bmm150 chip ID = 0x%2.2x (should be 0x32), err = %2.2x", i2c_read_buffer[0], err);
+
257
+
258 err = read_bmm150_data(0x4c, i2c_read_buffer, 1);
+
259 i2c_read_buffer[0] = 0x3 << 3;
+ +
261 err = read_bmm150_data(0x4c, i2c_read_buffer, 1);
+
262 vTaskDelay(1);
+
263
+ +
265 ESP_LOGI(TAG, "bmi270 status = %2.2x", read_bmi270_reg(BMI270_INTERNAL_STATUS, &err));
+
266 vTaskDelay(10 / portTICK_PERIOD_MS);
+
267
+ + + +
271 ESP_LOGI(TAG, "bmi270 status = %2.2x", read_bmi270_reg(BMI270_INTERNAL_STATUS, &err));
+
272
+ + + + + + + +
280
+ +
282 i2c_write_buffer[1] = 0x00;
+
283 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
284
+ + +
287 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
288
+ +
290 i2c_write_buffer[1] = 0x20;
+
291 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
292
+ +
294 i2c_write_buffer[1] = 0x03;
+
295 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
296
+
297 ESP_LOGI(TAG, "bmi270 initialization is done");
+
298}
+
+
299
+
+
308static void display_3d_image(dspm::Mat projected_image)
+
309{
+
310 // For the 3D cube, only the 6 points of the cube are transformed
+
311 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
312 bsp_display_lock(10000);
+
313 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
314 points[cube_point * 2 + 0].x = (int16_t)projected_image(cube_dict_line_begin[cube_point], 0);
+
315 points[cube_point * 2 + 0].y = (int16_t)projected_image(cube_dict_line_begin[cube_point], 1);
+
316 points[cube_point * 2 + 1].x = (int16_t)projected_image(cube_dict_line_end[cube_point], 0);
+
317 points[cube_point * 2 + 1].y = (int16_t)projected_image(cube_dict_line_end[cube_point], 1);
+
318 lv_line_set_points(objs[cube_point], &points[cube_point * 2 + 0], 2);
+
319 lv_obj_set_pos(objs[cube_point], 0, 0);
+
320 }
+
321 bsp_display_unlock();
+
322}
+
+
323
+ +
325
+
+
333static void draw_3d_image_task(void *arg)
+
334{
+ +
336
+
337 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
338 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
339 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
340
+
341 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
342
+
343 float dt = 0;
+
344 static float prev_time = 0;
+
345 float current_time = dsp_get_cpu_cycle_count();
+
346 float R_m[6] = {0.01, 0.01, 0.01, 0.01, 0.01, 0.01};
+
347
+
348 float magn_norm = 1;
+
349 while (1) {
+
350
+
351 esp_err_t err;
+
352
+
353 // Calculate dt for kalman filter
+
354 current_time = dsp_get_cpu_cycle_count();
+
355 if (current_time > prev_time) {
+
356 dt = current_time - prev_time;
+
357 dt = dt / 240000000.0;
+
358 }
+
359 prev_time = current_time;
+
360
+
361
+
362 // Read and convert data from bmi270 and bmm150 sensors
+
363 err = read_bmi270_data(BMI270_AUX_DATA0, (uint8_t *)sensors_data, 20);
+
364 float accel[3];
+
365 float gyro[3];
+
366 float magn[3];
+
367 for (size_t i = 0; i < 3; i++) {
+
368 magn[i] = sensors_data[i];
+
369 accel[i] = sensors_data[4 + i];
+
370 gyro[i] = sensors_data[7 + i];
+
371 /* code */
+
372 }
+
373
+
374 // We have to apply this because initial direction of sensors
+
375 magn[1] = -magn[1];
+
376 accel[1] = -accel[1];
+
377 gyro[1] = -gyro[1];
+
378
+
379 magn[2] = -magn[2];
+
380 accel[2] = -accel[2];
+
381 gyro[2] = -gyro[2];
+
382
+
383 dspm::Mat gyro_input_mat(gyro, 3, 1);
+
384 dspm::Mat accel_input_mat(accel, 3, 1);
+
385 dspm::Mat mag_input_mat(magn, 3, 1);
+
386
+
387 // Accelerometer has 166 max range fit to the int16 value
+
388 accel_input_mat = accel_input_mat / 32768 * 16;
+
389 if (magn_norm < mag_input_mat.norm()) {
+
390 magn_norm = mag_input_mat.norm();
+
391 }
+
392 mag_input_mat = (1 / magn_norm) * mag_input_mat;
+
393
+
394 // range 2000 gedree/sec fit to the int16 range
+
395 gyro_input_mat *= (2000 * DEG_TO_RAD / 32768);
+
396
+
397 ekf13->Process(gyro_input_mat.data, dt);
+
398 ekf13->UpdateRefMeasurementMagn(accel_input_mat.data, mag_input_mat.data, R_m);
+
399
+
400 // Convert directin quaternion to rotation matrix
+
401 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data).t(); // matrix(3x1) that holds x, y, z rotation data
+
402 // Convert rotation matrix to Euler angels
+
403 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
404 // Apply radian to degree
+
405 eul_angles *= RAD_TO_DEG;
+
406 // Apply rotation in all the axes to the transformation matrix
+
407 update_rotation_matrix(T, eul_angles(0, 0), eul_angles(1, 0), eul_angles(2, 0));
+
408 // Apply translation to the transformation matrix
+
409 update_translation_matrix(T, true, ((float)BSP_LCD_H_RES / 2), ((float)BSP_LCD_V_RES / 2), 0);
+
410
+
411 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
412 transformed_image = matrix_3d * T;
+
413 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
414 projected_image = transformed_image * perspective_matrix;
+
415
+
416 display_3d_image(projected_image);
+
417 vTaskDelay(5 / portTICK_PERIOD_MS);
+
418 }
+
419}
+
+ +
+
421void app_main(void)
+
422{
+
423 ekf13 = new ekf_imu13states();
+
424 ekf13->Init();
+
425
+
426 // Init all board components
+
427 display = bsp_display_start();
+ + +
430 app_init();
+
431
+
432 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
433
+
434 xTaskCreate(draw_3d_image_task, "draw_3d_image", 16384, &image, 4, NULL);
+
435 ESP_LOGI(TAG, "Showing 3D image");
+
436
+
437}
+
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+ + + + +
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + +
static i2c_master_bus_handle_t i2c_handle
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
esp_err_t read_bmi270_data(uint8_t addr, uint8_t *data, int length)
+ + + +
const float m5_cube_vectors_3d[CUBE_POINTS][MATRIX_SIZE]
+ + + + + +
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+
esp_err_t write_bmi270_data(uint8_t addr, uint8_t *data, int length)
+
esp_err_t write_bmm150_data(uint8_t addr, uint8_t *data, int length)
+
esp_err_t write_bmi270_reg(uint8_t addr, uint8_t data)
+ + +
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ + + + + + + + + + + + + + +
esp_err_t read_bmm150_data(uint8_t addr, uint8_t *data, int length)
+ + + + + + +
static void app_init(void)
Initialize the application.
+ + +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
uint8_t read_bmi270_reg(uint8_t addr, esp_err_t *err)
+ +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
float norm(void)
Definition mat.cpp:456
+
static Mat eye(int size)
Definition mat.cpp:394
+
Mat t()
Definition mat.cpp:383
+
This class is used to process and calculate attitude from imu sensors.
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+ +
int esp_err_t
Definition esp_err.h:21
+ +
static const char * TAG
Definition main/main.c:31
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html new file mode 100644 index 0000000..f9ad578 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html @@ -0,0 +1,594 @@ + + + + + + + +ESP-IDF Firmware: bmi270_context.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
bmi270_context.c File Reference
+
+
+
#include <stdint.h>
+
+Include dependency graph for applications/m5stack_core_s3/apps/kalman_filter/main/bmi270_context.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t bmi270_context_config_file []
const int bmi270_context_config_file_size = sizeof(bmi270_context_config_file)
+

Variable Documentation

+ +

◆ bmi270_context_config_file

+ +
+
+ + + + +
const uint8_t bmi270_context_config_file[]
+
+ +

Definition at line 9 of file applications/m5stack_core_s3/apps/kalman_filter/main/bmi270_context.c.

+
9 {
+
10 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0x00, 0xb0, 0xc8, 0x2e, 0x00, 0x2e, 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0xc9,
+
11 0x01, 0x80, 0x2e, 0xe2, 0x00, 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0x77, 0xb0, 0x50, 0x30, 0x21, 0x2e, 0x59, 0xf5,
+
12 0x10, 0x30, 0x21, 0x2e, 0x6a, 0xf5, 0x80, 0x2e, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x01, 0x00, 0x22,
+
13 0x00, 0x76, 0x00, 0x00, 0x10, 0x00, 0x10, 0xd1, 0x00, 0xcb, 0xa7, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
14 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
15 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
16 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
17 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
18 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
19 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
20 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
21 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
22 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0xfd, 0x2d, 0x2c, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
23 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00,
+
24 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
25 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
26 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
27 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
28 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x24, 0x22, 0x00, 0x80, 0x2e, 0x48, 0x02, 0x01, 0x2e, 0x49,
+
29 0xf1, 0x0b, 0xbc, 0x10, 0x50, 0x0f, 0xb8, 0x00, 0x90, 0xfb, 0x7f, 0x07, 0x2f, 0x03, 0x2e, 0x21, 0xf2, 0x02, 0x31,
+
30 0x4a, 0x0a, 0x23, 0x2e, 0x21, 0xf2, 0x09, 0x2c, 0x00, 0x30, 0x98, 0x2e, 0x0e, 0xc7, 0x03, 0x2e, 0x21, 0xf2, 0xf2,
+
31 0x3e, 0x4a, 0x08, 0x23, 0x2e, 0x21, 0xf2, 0xfb, 0x6f, 0xf0, 0x5f, 0xb8, 0x2e, 0x13, 0x52, 0x00, 0x2e, 0x60, 0x40,
+
32 0x41, 0x40, 0x0d, 0xbc, 0x98, 0xbc, 0xc0, 0x2e, 0x01, 0x0a, 0x0f, 0xb8, 0x43, 0x86, 0x25, 0x40, 0x04, 0x40, 0xd8,
+
33 0xbe, 0x2c, 0x0b, 0x22, 0x11, 0x54, 0x42, 0x03, 0x80, 0x4b, 0x0e, 0xf6, 0x2f, 0xb8, 0x2e, 0x20, 0x50, 0xe7, 0x7f,
+
34 0xf6, 0x7f, 0x46, 0x30, 0x0f, 0x2e, 0xa4, 0xf1, 0xbe, 0x09, 0x80, 0xb3, 0x06, 0x2f, 0x0d, 0x2e, 0x84, 0x00, 0x84,
+
35 0xaf, 0x02, 0x2f, 0x16, 0x30, 0x2d, 0x2e, 0x7b, 0x00, 0x86, 0x30, 0x2d, 0x2e, 0x60, 0xf5, 0xf6, 0x6f, 0xe7, 0x6f,
+
36 0xe0, 0x5f, 0xc8, 0x2e, 0x80, 0x2e, 0xfb, 0x00, 0x00, 0x30, 0xc0, 0x2e, 0x21, 0x2e, 0x8d, 0x00, 0x44, 0x47, 0x99,
+
37 0x00, 0xff, 0x3f, 0x00, 0x0c, 0xff, 0x0f, 0x00, 0x04, 0xc0, 0x00, 0x5b, 0xf5, 0x90, 0x00, 0x1e, 0xf2, 0xfd, 0xf5,
+
38 0x8e, 0x00, 0x96, 0x00, 0x96, 0x00, 0xe0, 0x00, 0x19, 0xf4, 0x66, 0xf5, 0x00, 0x18, 0x64, 0xf5, 0x9d, 0x00, 0x7f,
+
39 0x00, 0x81, 0x00, 0xae, 0x00, 0xff, 0xfb, 0x21, 0x02, 0x00, 0x10, 0x00, 0x40, 0xff, 0x00, 0x00, 0x80, 0xff, 0x7f,
+
40 0x54, 0x0f, 0xeb, 0x00, 0x7f, 0xff, 0xc2, 0xf5, 0x68, 0xf7, 0xb3, 0xf1, 0x4e, 0x0f, 0x42, 0x0f, 0x48, 0x0f, 0x80,
+
41 0x00, 0x67, 0x0f, 0x58, 0xf7, 0x5b, 0xf7, 0x6a, 0x0f, 0x86, 0x00, 0x59, 0x0f, 0x6c, 0x0f, 0xc6, 0xf1, 0x66, 0x0f,
+
42 0x6c, 0xf7, 0x00, 0xe0, 0x00, 0xff, 0xd1, 0xf5, 0x6e, 0x0f, 0x71, 0x0f, 0xff, 0x03, 0x00, 0xfc, 0xf0, 0x3f, 0xb9,
+
43 0x00, 0x2d, 0xf5, 0xca, 0xf5, 0x8a, 0x00, 0x00, 0x08, 0x71, 0x7d, 0xfe, 0xc0, 0x03, 0x3f, 0x05, 0x3e, 0x49, 0x01,
+
44 0x92, 0x02, 0xf5, 0xd6, 0xe8, 0x63, 0xd3, 0xf8, 0x2e, 0x07, 0x5c, 0xce, 0xa5, 0x67, 0x28, 0x02, 0x4e, 0x01, 0x00,
+
45 0xf0, 0x33, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
47 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
48 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
49 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
50 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x50, 0x10,
+
55 0x50, 0x17, 0x52, 0x05, 0x2e, 0x7d, 0x00, 0xfb, 0x7f, 0x00, 0x2e, 0x13, 0x40, 0x93, 0x42, 0x41, 0x0e, 0xfb, 0x2f,
+
56 0x98, 0x2e, 0x91, 0x03, 0x98, 0x2e, 0x87, 0xcf, 0x01, 0x2e, 0x89, 0x00, 0x00, 0xb2, 0x08, 0x2f, 0x01, 0x2e, 0x69,
+
57 0xf7, 0xb1, 0x3f, 0x01, 0x08, 0x01, 0x30, 0x23, 0x2e, 0x89, 0x00, 0x21, 0x2e, 0x69, 0xf7, 0xfb, 0x6f, 0xf0, 0x5f,
+
58 0xb8, 0x2e, 0xa0, 0x50, 0x80, 0x7f, 0xe7, 0x7f, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0xa2, 0x7f, 0x91, 0x7f, 0xf6,
+
59 0x7f, 0x7b, 0x7f, 0x00, 0x2e, 0x01, 0x2e, 0x60, 0xf5, 0x60, 0x7f, 0x98, 0x2e, 0xce, 0x00, 0x62, 0x6f, 0x01, 0x32,
+
60 0x91, 0x08, 0x80, 0xb2, 0x11, 0x2f, 0x00, 0xb2, 0x03, 0x2f, 0x05, 0x2e, 0x18, 0x00, 0x80, 0x90, 0x09, 0x2f, 0x60,
+
61 0x7f, 0x98, 0x2e, 0xf9, 0x00, 0x23, 0x50, 0x01, 0x32, 0x01, 0x42, 0x02, 0x86, 0x60, 0x6f, 0x02, 0x30, 0xc2, 0x42,
+
62 0x23, 0x2e, 0x60, 0xf5, 0x00, 0x90, 0x00, 0x30, 0x01, 0x2f, 0x21, 0x2e, 0x7a, 0x00, 0xf6, 0x6f, 0x91, 0x6f, 0xa2,
+
63 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0xe7, 0x6f, 0x7b, 0x6f, 0x80, 0x6f, 0x60, 0x5f, 0xc8, 0x2e, 0x00, 0x00,
+
64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x01, 0xd4, 0x7b, 0x3b,
+
65 0x01, 0xdb, 0x7a, 0x04, 0x00, 0x3f, 0x7b, 0xcd, 0x6c, 0xc3, 0x04, 0x85, 0x09, 0xc3, 0x04, 0xec, 0xe6, 0x0c, 0x46,
+
66 0x01, 0x00, 0x27, 0x00, 0x19, 0x00, 0x96, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x0c, 0x00, 0xf0, 0x3c, 0x00, 0x01, 0x01,
+
67 0x00, 0x03, 0x00, 0x01, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
68 0x00, 0x00, 0x01, 0x00, 0xe1, 0x06, 0x66, 0x0a, 0x0a, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
70 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
71 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x50, 0x98, 0x2e, 0xd7, 0x0e, 0x50, 0x32, 0x98, 0x2e,
+
72 0x48, 0x03, 0x10, 0x30, 0x21, 0x2e, 0x21, 0xf2, 0x00, 0x30, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0x00, 0x2e, 0x01,
+
73 0x80, 0x06, 0xa2, 0xfb, 0x2f, 0x01, 0x2e, 0x9c, 0x00, 0x00, 0xb2, 0x10, 0x2f, 0x01, 0x2e, 0x18, 0x00, 0x00, 0xb2,
+
74 0x0c, 0x2f, 0x01, 0x54, 0x03, 0x52, 0x01, 0x50, 0x98, 0x2e, 0xc2, 0xc0, 0x98, 0x2e, 0xf5, 0xb0, 0x01, 0x50, 0x98,
+
75 0x2e, 0xd5, 0xb6, 0x10, 0x30, 0x21, 0x2e, 0x19, 0x00, 0x01, 0x2e, 0x84, 0x00, 0x04, 0xae, 0x0b, 0x2f, 0x01, 0x2e,
+
76 0x9c, 0x00, 0x00, 0xb2, 0x07, 0x2f, 0x01, 0x52, 0x98, 0x2e, 0x8e, 0x0e, 0x00, 0xb2, 0x02, 0x2f, 0x10, 0x30, 0x21,
+
77 0x2e, 0x79, 0x00, 0x01, 0x2e, 0x79, 0x00, 0x00, 0x90, 0x90, 0x2e, 0x14, 0x03, 0x01, 0x2e, 0x87, 0x00, 0x00, 0xb2,
+
78 0x04, 0x2f, 0x98, 0x2e, 0x2f, 0x0e, 0x00, 0x30, 0x21, 0x2e, 0x7b, 0x00, 0x01, 0x2e, 0x7b, 0x00, 0x00, 0xb2, 0x12,
+
79 0x2f, 0x01, 0x2e, 0x84, 0x00, 0x00, 0x90, 0x02, 0x2f, 0x98, 0x2e, 0x1f, 0x0e, 0x09, 0x2d, 0x98, 0x2e, 0x81, 0x0d,
+
80 0x01, 0x2e, 0x84, 0x00, 0x04, 0x90, 0x02, 0x2f, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x7b,
+
81 0x00, 0x01, 0x2e, 0x78, 0x00, 0x00, 0xb2, 0x90, 0x2e, 0x2c, 0x03, 0x01, 0x2e, 0x78, 0x00, 0x81, 0x30, 0x01, 0x08,
+
82 0x00, 0xb2, 0x61, 0x2f, 0x03, 0x2e, 0x24, 0x02, 0x01, 0x2e, 0x84, 0x00, 0x98, 0xbc, 0x98, 0xb8, 0x05, 0xb2, 0x0d,
+
83 0x58, 0x23, 0x2f, 0x07, 0x90, 0x07, 0x54, 0x00, 0x30, 0x37, 0x2f, 0x15, 0x41, 0x04, 0x41, 0xdc, 0xbe, 0x44, 0xbe,
+
84 0xdc, 0xba, 0x2c, 0x01, 0x61, 0x00, 0x0d, 0x56, 0x4a, 0x0f, 0x0c, 0x2f, 0xd1, 0x42, 0x94, 0xb8, 0xc1, 0x42, 0x11,
+
85 0x30, 0x05, 0x2e, 0x6a, 0xf7, 0x2c, 0xbd, 0x2f, 0xb9, 0x80, 0xb2, 0x08, 0x22, 0x98, 0x2e, 0xaf, 0x03, 0x21, 0x2d,
+
86 0x61, 0x30, 0x23, 0x2e, 0x84, 0x00, 0x98, 0x2e, 0xaf, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x5a, 0xf5, 0x18, 0x2d, 0xf1,
+
87 0x7f, 0x50, 0x30, 0x98, 0x2e, 0x48, 0x03, 0x0d, 0x52, 0x05, 0x50, 0x50, 0x42, 0x70, 0x30, 0x0b, 0x54, 0x42, 0x42,
+
88 0x7e, 0x82, 0xf2, 0x6f, 0x80, 0xb2, 0x42, 0x42, 0x05, 0x2f, 0x21, 0x2e, 0x84, 0x00, 0x10, 0x30, 0x98, 0x2e, 0xaf,
+
89 0x03, 0x03, 0x2d, 0x60, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x01, 0x2e, 0x84, 0x00, 0x06, 0x90, 0x18, 0x2f, 0x01, 0x2e,
+
90 0x77, 0x00, 0x09, 0x54, 0x05, 0x52, 0xf0, 0x7f, 0x98, 0x2e, 0x7a, 0xc1, 0xf1, 0x6f, 0x08, 0x1a, 0x40, 0x30, 0x08,
+
91 0x2f, 0x21, 0x2e, 0x84, 0x00, 0x20, 0x30, 0x98, 0x2e, 0x9b, 0x03, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x05, 0x2d,
+
92 0x98, 0x2e, 0x38, 0x0e, 0x00, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x00, 0x30, 0x21, 0x2e, 0x78, 0x00, 0x18, 0x2d, 0x01,
+
93 0x2e, 0x84, 0x00, 0x03, 0xaa, 0x01, 0x2f, 0x98, 0x2e, 0x45, 0x0e, 0x01, 0x2e, 0x84, 0x00, 0x3f, 0x80, 0x03, 0xa2,
+
94 0x01, 0x2f, 0x00, 0x2e, 0x02, 0x2d, 0x98, 0x2e, 0x5b, 0x0e, 0x30, 0x30, 0x98, 0x2e, 0xba, 0x03, 0x00, 0x30, 0x21,
+
95 0x2e, 0x79, 0x00, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x01, 0x2e, 0x19, 0x00, 0x00, 0xb2, 0x10, 0x2f, 0x01, 0x2e,
+
96 0x85, 0x00, 0x21, 0x2e, 0x90, 0x00, 0x0f, 0x52, 0x7e, 0x82, 0x11, 0x50, 0x41, 0x40, 0x18, 0xb9, 0x11, 0x42, 0x02,
+
97 0x42, 0x02, 0x80, 0x00, 0x2e, 0x01, 0x40, 0x01, 0x42, 0x98, 0x2e, 0xaa, 0x01, 0x00, 0x30, 0x21, 0x2e, 0x19, 0x00,
+
98 0x21, 0x2e, 0x9c, 0x00, 0x80, 0x2e, 0x52, 0x02, 0x21, 0x2e, 0x59, 0xf5, 0x10, 0x30, 0xc0, 0x2e, 0x21, 0x2e, 0x4a,
+
99 0xf1, 0x80, 0x2e, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x01,
+
100 0x34, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
101 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
102 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
104 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
106 0x00, 0x00, 0x03, 0x2e, 0x7d, 0x00, 0x16, 0xb8, 0x02, 0x34, 0x4a, 0x0c, 0x21, 0x2e, 0x2d, 0xf5, 0xc0, 0x2e, 0x23,
+
107 0x2e, 0x7d, 0x00, 0x03, 0xbc, 0x21, 0x2e, 0x85, 0x00, 0x03, 0x2e, 0x85, 0x00, 0x40, 0xb2, 0x10, 0x30, 0x21, 0x2e,
+
108 0x19, 0x00, 0x01, 0x30, 0x05, 0x2f, 0x05, 0x2e, 0x88, 0x00, 0x80, 0x90, 0x01, 0x2f, 0x23, 0x2e, 0x6f, 0xf5, 0xc0,
+
109 0x2e, 0x21, 0x2e, 0x89, 0x00, 0x11, 0x30, 0x81, 0x08, 0x01, 0x2e, 0x6a, 0xf7, 0x71, 0x3f, 0x23, 0xbd, 0x01, 0x08,
+
110 0x02, 0x0a, 0xc0, 0x2e, 0x21, 0x2e, 0x6a, 0xf7, 0x30, 0x25, 0x00, 0x30, 0x21, 0x2e, 0x5a, 0xf5, 0x10, 0x50, 0x21,
+
111 0x2e, 0x7b, 0x00, 0x21, 0x2e, 0x78, 0x00, 0xfb, 0x7f, 0x98, 0x2e, 0xaf, 0x03, 0x40, 0x30, 0x21, 0x2e, 0x84, 0x00,
+
112 0xfb, 0x6f, 0xf0, 0x5f, 0x03, 0x25, 0x80, 0x2e, 0x9b, 0x03, 0x0b, 0x00, 0x94, 0x02, 0x14, 0x24, 0x80, 0x00, 0x04,
+
113 0x00, 0x04, 0x30, 0x08, 0xb8, 0x94, 0x02, 0xc0, 0x2e, 0x28, 0xbd, 0x02, 0x0a, 0x0d, 0x82, 0x02, 0x30, 0x12, 0x42,
+
114 0x41, 0x0e, 0xfc, 0x2f, 0xb8, 0x2e, 0x95, 0x50, 0xc0, 0x2e, 0x21, 0x2e, 0xa9, 0x01, 0x02, 0x30, 0x02, 0x2c, 0x41,
+
115 0x00, 0x12, 0x42, 0x41, 0x0e, 0xfc, 0x2f, 0xb8, 0x2e, 0x13, 0x82, 0x02, 0x30, 0x12, 0x42, 0x41, 0x0e, 0xfc, 0x2f,
+
116 0x3f, 0x80, 0xa1, 0x30, 0xc0, 0x2e, 0x01, 0x42, 0x00, 0x2e, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
117 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0xc0, 0x50, 0xe7, 0x7f,
+
118 0xf6, 0x7f, 0x26, 0x30, 0x0f, 0x2e, 0x61, 0xf5, 0x2f, 0x2e, 0x78, 0x00, 0x0f, 0x2e, 0x78, 0x00, 0xbe, 0x09, 0xa2,
+
119 0x7f, 0x80, 0x7f, 0x80, 0xb3, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0x91, 0x7f, 0x7b, 0x7f, 0x0b, 0x2f, 0x19, 0x50,
+
120 0x1a, 0x25, 0x12, 0x40, 0x42, 0x7f, 0x74, 0x82, 0x12, 0x40, 0x52, 0x7f, 0x00, 0x2e, 0x00, 0x40, 0x60, 0x7f, 0x98,
+
121 0x2e, 0x6a, 0xd6, 0x81, 0x30, 0x01, 0x2e, 0x78, 0x00, 0x01, 0x08, 0x00, 0xb2, 0x42, 0x2f, 0x03, 0x2e, 0x24, 0x02,
+
122 0x01, 0x2e, 0x24, 0x02, 0x97, 0xbc, 0x06, 0xbc, 0x9f, 0xb8, 0x0f, 0xb8, 0x00, 0x90, 0x23, 0x2e, 0x88, 0x00, 0x10,
+
123 0x30, 0x01, 0x30, 0x2a, 0x2f, 0x03, 0x2e, 0x84, 0x00, 0x44, 0xb2, 0x05, 0x2f, 0x47, 0xb2, 0x00, 0x30, 0x2d, 0x2f,
+
124 0x21, 0x2e, 0x78, 0x00, 0x2b, 0x2d, 0x03, 0x2e, 0xfd, 0xf5, 0x9e, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x14, 0x2f, 0x03,
+
125 0x2e, 0xfc, 0xf5, 0x99, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x0e, 0x2f, 0x03, 0x2e, 0x49, 0xf1, 0x1b, 0x54, 0x4a, 0x08,
+
126 0x40, 0x90, 0x08, 0x2f, 0x98, 0x2e, 0xce, 0x00, 0x00, 0xb2, 0x10, 0x30, 0x03, 0x2f, 0x50, 0x30, 0x21, 0x2e, 0x84,
+
127 0x00, 0x10, 0x2d, 0x98, 0x2e, 0x9b, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x78, 0x00, 0x0a, 0x2d, 0x05, 0x2e, 0x69, 0xf7,
+
128 0x2d, 0xbd, 0x2f, 0xb9, 0x80, 0xb2, 0x01, 0x2f, 0x21, 0x2e, 0x79, 0x00, 0x23, 0x2e, 0x78, 0x00, 0xe0, 0x31, 0x21,
+
129 0x2e, 0x61, 0xf5, 0xf6, 0x6f, 0xe7, 0x6f, 0x80, 0x6f, 0xa2, 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0x7b, 0x6f,
+
130 0x91, 0x6f, 0x40, 0x5f, 0xc8, 0x2e, 0x90, 0x50, 0xf7, 0x7f, 0xe6, 0x7f, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0xa1,
+
131 0x7f, 0x90, 0x7f, 0x82, 0x7f, 0x7b, 0x7f, 0x98, 0x2e, 0xce, 0x00, 0x00, 0xb2, 0x10, 0x30, 0x49, 0x2f, 0x05, 0x2e,
+
132 0x21, 0x02, 0x03, 0x2e, 0x2d, 0x02, 0x21, 0x56, 0x08, 0x08, 0x93, 0x08, 0x90, 0x0a, 0x25, 0x2e, 0x18, 0x00, 0x05,
+
133 0x2e, 0xc1, 0xf5, 0x2e, 0xbc, 0x05, 0x2e, 0x84, 0x00, 0x84, 0xa2, 0x0e, 0xb8, 0x31, 0x30, 0x88, 0x04, 0x03, 0x2f,
+
134 0x01, 0x2e, 0x18, 0x00, 0x00, 0xb2, 0x0c, 0x2f, 0x1d, 0x50, 0x01, 0x52, 0x98, 0x2e, 0xd7, 0x00, 0x05, 0x2e, 0x7a,
+
135 0x00, 0x80, 0x90, 0x02, 0x2f, 0x10, 0x30, 0x21, 0x2e, 0x7a, 0x00, 0x25, 0x2e, 0x9c, 0x00, 0x05, 0x2e, 0x18, 0x00,
+
136 0x80, 0xb2, 0x20, 0x2f, 0x01, 0x2e, 0xc0, 0xf5, 0xf2, 0x30, 0x02, 0x08, 0x07, 0xaa, 0x73, 0x30, 0x03, 0x2e, 0x7c,
+
137 0x00, 0x18, 0x22, 0x41, 0x1a, 0x05, 0x2f, 0x03, 0x2e, 0x66, 0xf5, 0x9f, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x0c, 0x2f,
+
138 0x1f, 0x52, 0x03, 0x30, 0x53, 0x42, 0x2b, 0x30, 0x90, 0x04, 0x5b, 0x42, 0x21, 0x2e, 0x7c, 0x00, 0x24, 0xbd, 0x7e,
+
139 0x80, 0x81, 0x84, 0x43, 0x42, 0x02, 0x42, 0x02, 0x32, 0x25, 0x2e, 0x62, 0xf5, 0x05, 0x2e, 0x86, 0x00, 0x81, 0x84,
+
140 0x25, 0x2e, 0x86, 0x00, 0x02, 0x31, 0x25, 0x2e, 0x60, 0xf5, 0x05, 0x2e, 0x25, 0x02, 0x10, 0x30, 0x90, 0x08, 0x80,
+
141 0xb2, 0x0b, 0x2f, 0x05, 0x2e, 0xca, 0xf5, 0xf0, 0x3e, 0x90, 0x08, 0x25, 0x2e, 0xca, 0xf5, 0x05, 0x2e, 0x59, 0xf5,
+
142 0xe0, 0x3f, 0x90, 0x08, 0x25, 0x2e, 0x59, 0xf5, 0x90, 0x6f, 0xa1, 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0xe6,
+
143 0x6f, 0xf7, 0x6f, 0x7b, 0x6f, 0x82, 0x6f, 0x70, 0x5f, 0xc8, 0x2e, 0x2f, 0x52, 0x90, 0x50, 0x53, 0x40, 0x4a, 0x25,
+
144 0x40, 0x40, 0x39, 0x8b, 0xfb, 0x7f, 0x0c, 0xbc, 0x21, 0x52, 0x37, 0x89, 0x0b, 0x30, 0x59, 0x08, 0x0c, 0xb8, 0xe0,
+
145 0x7f, 0x8b, 0x7f, 0x4b, 0x43, 0x0b, 0x43, 0x40, 0xb2, 0xd1, 0x7f, 0x6e, 0x2f, 0x01, 0x2e, 0x83, 0x00, 0x00, 0xb2,
+
146 0x0e, 0x2f, 0x25, 0x52, 0x01, 0x2e, 0x7e, 0x00, 0xc3, 0x7f, 0xb4, 0x7f, 0xa5, 0x7f, 0x98, 0x2e, 0xbb, 0xcc, 0x05,
+
147 0x30, 0x2b, 0x2e, 0x83, 0x00, 0xc3, 0x6f, 0xd1, 0x6f, 0xb4, 0x6f, 0xa5, 0x6f, 0x36, 0xbc, 0x06, 0xb9, 0x35, 0xbc,
+
148 0x0f, 0xb8, 0x94, 0xb0, 0xc6, 0x7f, 0x00, 0xb2, 0x0c, 0x2f, 0x27, 0x50, 0x29, 0x56, 0x0b, 0x30, 0x05, 0x2e, 0x21,
+
149 0x02, 0x2d, 0x5c, 0x1b, 0x42, 0xdb, 0x42, 0x96, 0x08, 0x25, 0x2e, 0x21, 0x02, 0x0b, 0x42, 0xcb, 0x42, 0x00, 0x2e,
+
150 0x31, 0x56, 0xcb, 0x08, 0x25, 0x52, 0x01, 0x2e, 0x7e, 0x00, 0x01, 0x54, 0x2b, 0x5c, 0x98, 0x2e, 0x06, 0xcd, 0xd2,
+
151 0x6f, 0x27, 0x5a, 0x94, 0x6f, 0xa4, 0xbc, 0x53, 0x41, 0x00, 0xb3, 0x1f, 0xb8, 0x44, 0x41, 0x01, 0x30, 0xd5, 0x7f,
+
152 0x05, 0x2f, 0x00, 0xb2, 0x03, 0x2f, 0x29, 0x5c, 0x11, 0x30, 0x93, 0x43, 0x84, 0x43, 0x23, 0xbd, 0x2f, 0xb9, 0x80,
+
153 0xb2, 0x1c, 0x2f, 0x72, 0x6f, 0xda, 0x00, 0x82, 0x6f, 0x22, 0x03, 0x44, 0x43, 0x00, 0x90, 0x27, 0x2e, 0x7f, 0x00,
+
154 0x29, 0x5a, 0x12, 0x2f, 0x29, 0x54, 0x00, 0x2e, 0x90, 0x40, 0x82, 0x40, 0x18, 0x04, 0xa2, 0x06, 0x80, 0xaa, 0x04,
+
155 0x2f, 0x80, 0x90, 0x08, 0x2f, 0xc2, 0x6f, 0x50, 0x0f, 0x05, 0x2f, 0xc0, 0x6f, 0x00, 0xb2, 0x02, 0x2f, 0x53, 0x43,
+
156 0x44, 0x43, 0x11, 0x30, 0xe0, 0x6f, 0x98, 0x2e, 0x95, 0xcf, 0xd1, 0x6f, 0x15, 0x5a, 0x09, 0x2e, 0x7f, 0x00, 0x41,
+
157 0x40, 0x54, 0x43, 0x08, 0x2c, 0x41, 0x43, 0x15, 0x30, 0x2b, 0x2e, 0x83, 0x00, 0x01, 0x30, 0xe0, 0x6f, 0x98, 0x2e,
+
158 0x95, 0xcf, 0x00, 0x2e, 0xfb, 0x6f, 0x70, 0x5f, 0xb8, 0x2e, 0x50, 0x86, 0xcd, 0x88, 0x34, 0x85, 0xc5, 0x40, 0x91,
+
159 0x40, 0x8c, 0x80, 0x06, 0x41, 0x13, 0x40, 0x50, 0x50, 0x6e, 0x01, 0x82, 0x40, 0x04, 0x40, 0x34, 0x8c, 0xfb, 0x7f,
+
160 0x98, 0x2e, 0xce, 0x03, 0xe0, 0x7f, 0x00, 0x2e, 0x91, 0x41, 0x8c, 0x81, 0x82, 0x41, 0x13, 0x40, 0x04, 0x40, 0x34,
+
161 0x8e, 0x98, 0x2e, 0xce, 0x03, 0xc0, 0x7f, 0xd5, 0x7f, 0x13, 0x24, 0xff, 0x00, 0xd6, 0x41, 0xcc, 0x83, 0xc2, 0x41,
+
162 0x57, 0x40, 0x74, 0x80, 0x44, 0x40, 0x11, 0x40, 0x0c, 0x8a, 0xf7, 0x01, 0x94, 0x03, 0x12, 0x24, 0x80, 0x00, 0x3a,
+
163 0x01, 0x02, 0x30, 0xb2, 0x03, 0xce, 0x17, 0xfb, 0x08, 0x23, 0x01, 0xb2, 0x02, 0x48, 0xbb, 0x28, 0xbd, 0xf2, 0x0b,
+
164 0x53, 0x41, 0x02, 0x40, 0x44, 0x41, 0x74, 0x8d, 0xb7, 0x7f, 0x98, 0x2e, 0xce, 0x03, 0x50, 0x25, 0x91, 0x41, 0x8c,
+
165 0x81, 0x82, 0x41, 0x13, 0x40, 0x04, 0x40, 0x34, 0x8e, 0x98, 0x2e, 0xce, 0x03, 0x60, 0x25, 0xd1, 0x41, 0xcc, 0x81,
+
166 0xc2, 0x41, 0x13, 0x40, 0x04, 0x40, 0x98, 0x2e, 0xce, 0x03, 0x11, 0x24, 0xb3, 0x00, 0x71, 0x0e, 0xd3, 0x6f, 0xe1,
+
167 0x6f, 0x33, 0x2f, 0x12, 0x24, 0xdd, 0x00, 0xda, 0x0f, 0x2b, 0x2f, 0x12, 0x24, 0x8c, 0x00, 0x5a, 0x0e, 0x09, 0x2f,
+
168 0x10, 0x24, 0x83, 0x05, 0x48, 0x0e, 0x11, 0x24, 0x7f, 0x22, 0x10, 0x24, 0x18, 0x32, 0x08, 0x22, 0x80, 0x2e, 0xd7,
+
169 0xb4, 0x13, 0x24, 0xf4, 0x00, 0x73, 0x0e, 0x0f, 0x2f, 0x10, 0x24, 0x11, 0x10, 0x68, 0x0e, 0x10, 0x24, 0xa2, 0x30,
+
170 0x13, 0x24, 0x97, 0x23, 0x03, 0x22, 0x13, 0x24, 0x3b, 0x04, 0x4b, 0x0e, 0x11, 0x24, 0x0f, 0x30, 0x01, 0x22, 0x80,
+
171 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x53, 0x02, 0x41, 0x0e, 0x11, 0x24, 0xe7, 0x31, 0x10, 0x24, 0xfc, 0x25, 0x08, 0x22,
+
172 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xe8, 0x40, 0x80, 0x2e, 0xd7, 0xb4, 0xf2, 0x37, 0x5a, 0x0e, 0x90, 0x2e, 0x50,
+
173 0xb3, 0x12, 0x24, 0xea, 0x00, 0x4a, 0x0e, 0x90, 0x2e, 0xc7, 0xb2, 0xc2, 0x6f, 0x14, 0x24, 0x4c, 0x0b, 0x54, 0x0e,
+
174 0x90, 0x2e, 0xab, 0xb2, 0x14, 0x24, 0x9b, 0x00, 0x5c, 0x0e, 0x90, 0x2e, 0xa1, 0xb2, 0x14, 0x24, 0x22, 0x01, 0x4c,
+
175 0x0e, 0x70, 0x2f, 0x82, 0xa3, 0x5e, 0x2f, 0x11, 0x24, 0xba, 0x0b, 0x51, 0x0e, 0x35, 0x2f, 0x11, 0x24, 0x03, 0x08,
+
176 0x69, 0x0e, 0x2d, 0x2f, 0xb1, 0x6f, 0x14, 0x24, 0x90, 0x00, 0x0c, 0x0e, 0x24, 0x2f, 0x11, 0x24, 0x31, 0x08, 0x69,
+
177 0x0e, 0x16, 0x2f, 0x11, 0x24, 0x7d, 0x01, 0x59, 0x0e, 0x0e, 0x2f, 0x11, 0x24, 0xd7, 0x0c, 0x51, 0x0e, 0x11, 0x24,
+
178 0x9f, 0x44, 0x13, 0x24, 0x41, 0x57, 0x4b, 0x22, 0x93, 0x35, 0x43, 0x0e, 0x10, 0x24, 0xbd, 0x42, 0x08, 0x22, 0x80,
+
179 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x1c, 0x42, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x47, 0x01, 0x59, 0x0e, 0x11, 0x24,
+
180 0xa2, 0x45, 0x10, 0x24, 0x31, 0x51, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x80, 0x41, 0x80, 0x2e, 0xd7,
+
181 0xb4, 0x10, 0x24, 0x67, 0x54, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x8c, 0x08, 0xe9, 0x0f, 0x10, 0x24, 0x0a, 0x48,
+
182 0x90, 0x2e, 0xd7, 0xb4, 0xb1, 0x6f, 0x13, 0x24, 0xe8, 0x03, 0x8b, 0x0f, 0x10, 0x24, 0xcd, 0x57, 0x90, 0x2e, 0xd7,
+
183 0xb4, 0x73, 0x35, 0x8b, 0x0f, 0x10, 0x24, 0x6f, 0x42, 0x90, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa0, 0xfe, 0x08, 0x0e,
+
184 0x10, 0x24, 0x38, 0x54, 0x13, 0x24, 0xa3, 0x46, 0x03, 0x22, 0x13, 0x24, 0x45, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0x04,
+
185 0x43, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xb1, 0x6f, 0x00, 0x3a, 0x08, 0x0e, 0x11, 0x24, 0x3d, 0x45, 0x10, 0x24,
+
186 0x52, 0x54, 0x48, 0x22, 0x10, 0x24, 0x8f, 0x01, 0x58, 0x0e, 0x10, 0x24, 0x48, 0x44, 0x01, 0x22, 0x80, 0x2e, 0xd7,
+
187 0xb4, 0xb1, 0x6f, 0x13, 0x24, 0xfa, 0x03, 0x0b, 0x0e, 0x11, 0x24, 0x85, 0x43, 0x13, 0x24, 0x35, 0x55, 0x4b, 0x22,
+
188 0x11, 0xa2, 0x10, 0x24, 0xf6, 0x57, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xa4, 0x0a, 0x69, 0x0e, 0x11,
+
189 0x24, 0x7b, 0x5a, 0x10, 0x24, 0x5e, 0x20, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x0f, 0x01, 0x59, 0x0e,
+
190 0x0d, 0x2f, 0x18, 0xa2, 0x11, 0x24, 0x2b, 0x47, 0x10, 0x24, 0xf4, 0x55, 0x48, 0x22, 0x10, 0x24, 0x16, 0x0b, 0x50,
+
191 0x0e, 0x10, 0x24, 0xc7, 0x51, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x72, 0x0a, 0x51, 0x0e, 0x11, 0x24,
+
192 0x85, 0x55, 0x10, 0x24, 0xb2, 0x47, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x83, 0x00, 0x48, 0x0e, 0x53,
+
193 0x2f, 0x11, 0x24, 0xe1, 0x07, 0x69, 0x0e, 0x2d, 0x2f, 0x95, 0xaf, 0x27, 0x2f, 0x82, 0xaf, 0x21, 0x2f, 0x11, 0x24,
+
194 0xd7, 0x00, 0x59, 0x0e, 0x19, 0x2f, 0xb1, 0x6f, 0x10, 0x24, 0xcc, 0x03, 0x88, 0x0f, 0x10, 0x2f, 0x10, 0x24, 0xe8,
+
195 0xfe, 0x08, 0x0e, 0x11, 0x24, 0x7e, 0x56, 0x10, 0x24, 0x94, 0x45, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0x06, 0x0b,
+
196 0x43, 0x0e, 0x10, 0x24, 0x2f, 0x51, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xde, 0x51, 0x80, 0x2e, 0xd7,
+
197 0xb4, 0x10, 0x24, 0xe8, 0x54, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa4, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24,
+
198 0xd0, 0x44, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xb8, 0x00, 0xd9, 0x0f, 0x19, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xe7,
+
199 0x0c, 0xc8, 0x0f, 0x10, 0x2f, 0x11, 0x24, 0xc7, 0x07, 0x69, 0x0e, 0x11, 0x24, 0xf6, 0x52, 0x10, 0x24, 0x7a, 0x12,
+
200 0x48, 0x22, 0xb0, 0x6f, 0x13, 0x24, 0x5d, 0x02, 0x03, 0x0e, 0x10, 0x24, 0x7c, 0x54, 0x01, 0x22, 0x80, 0x2e, 0xd7,
+
201 0xb4, 0x10, 0x24, 0x8d, 0x51, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x28, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24,
+
202 0xd2, 0x07, 0xe8, 0x0f, 0x28, 0x2f, 0x10, 0x24, 0xb0, 0x00, 0xd8, 0x0f, 0x20, 0x2f, 0x10, 0x24, 0xc6, 0x07, 0x68,
+
203 0x0e, 0x18, 0x2f, 0x50, 0x35, 0x48, 0x0e, 0x11, 0x2f, 0xb1, 0x6f, 0x10, 0x24, 0xf4, 0x01, 0x08, 0x0e, 0x11, 0x24,
+
204 0x35, 0x51, 0x10, 0x24, 0x22, 0x12, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0xe0, 0x0c, 0x43, 0x0e, 0x10, 0x24, 0x7b,
+
205 0x50, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x81, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x3b, 0x53,
+
206 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x63, 0x51, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x27, 0x51, 0x80, 0x2e, 0xd7,
+
207 0xb4, 0x18, 0xa2, 0x90, 0x2e, 0xdb, 0xb3, 0x12, 0x24, 0x08, 0x02, 0x4a, 0x0e, 0x37, 0x2f, 0x12, 0x24, 0x2a, 0x09,
+
208 0x6a, 0x0e, 0x1d, 0x2f, 0x13, 0x24, 0x8e, 0x00, 0x73, 0x0e, 0x09, 0x2f, 0x11, 0x24, 0xa5, 0x01, 0x41, 0x0e, 0x11,
+
209 0x24, 0x76, 0x32, 0x10, 0x24, 0x12, 0x25, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa9, 0x0d, 0x68, 0x0e,
+
210 0x10, 0x24, 0x04, 0x27, 0x13, 0x24, 0x73, 0x20, 0x03, 0x22, 0x13, 0x24, 0x14, 0x04, 0x4b, 0x0e, 0x11, 0x24, 0x15,
+
211 0x2c, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xae, 0x08, 0x69, 0x0e, 0x08, 0x2f, 0xa1, 0x35, 0x71, 0x0e,
+
212 0x11, 0x24, 0x8b, 0x2b, 0x10, 0x24, 0x07, 0x35, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x91, 0x34, 0x59, 0x0e, 0x11,
+
213 0x24, 0x7b, 0x19, 0x10, 0x24, 0x50, 0x59, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x62, 0x32, 0x42, 0x0e, 0x22, 0x2f,
+
214 0xa2, 0x32, 0x5a, 0x0e, 0x1b, 0x2f, 0x12, 0x24, 0x0b, 0x08, 0x6a, 0x0e, 0x0e, 0x2f, 0xa3, 0x34, 0x43, 0x0e, 0x10,
+
215 0x24, 0x28, 0x2b, 0x13, 0x24, 0x20, 0x23, 0x03, 0x22, 0x13, 0x24, 0x8d, 0x01, 0x4b, 0x0e, 0x11, 0x24, 0x5c, 0x21,
+
216 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x31, 0x36, 0x59, 0x0e, 0x11, 0x24, 0x43, 0x25, 0x10, 0x24, 0xfa, 0x49, 0x08,
+
217 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xc7, 0x2a, 0x80, 0x2e, 0xd7, 0xb4, 0x40, 0x36, 0x58, 0x0e, 0x09, 0x2f,
+
218 0x11, 0x24, 0x9e, 0x08, 0x69, 0x0e, 0x11, 0x24, 0xe3, 0x54, 0x10, 0x24, 0x73, 0x22, 0x08, 0x22, 0x80, 0x2e, 0xd7,
+
219 0xb4, 0x10, 0x24, 0x38, 0x01, 0xc8, 0x0f, 0x10, 0x2f, 0x11, 0x24, 0x11, 0x08, 0x69, 0x0e, 0x11, 0x24, 0x6e, 0x48,
+
220 0x10, 0x24, 0x2b, 0x28, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0xc1, 0x0a, 0x43, 0x0e, 0x10, 0x24, 0x0f, 0x23, 0x08,
+
221 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xd0, 0x1a, 0x80, 0x2e, 0xd7, 0xb4, 0xe2, 0x33, 0x5a, 0x0e, 0x77, 0x2f,
+
222 0x12, 0x24, 0x0c, 0x08, 0x6a, 0x0e, 0x2a, 0x2f, 0x12, 0x24, 0xc5, 0x00, 0x4a, 0x0e, 0x08, 0x2f, 0x11, 0x36, 0x59,
+
223 0x0e, 0x11, 0x24, 0xfd, 0x18, 0x10, 0x24, 0x75, 0x58, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xc2, 0x34, 0x5a, 0x0e,
+
224 0x0d, 0x2f, 0x11, 0x24, 0x36, 0x08, 0x69, 0x0e, 0x11, 0x24, 0x08, 0x58, 0x13, 0x24, 0x3b, 0x54, 0x4b, 0x22, 0x01,
+
225 0xa2, 0x10, 0x24, 0xc6, 0x52, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xb3, 0x36, 0x4b, 0x0e, 0x11, 0x24, 0x0e, 0x24,
+
226 0x13, 0x24, 0x7b, 0x50, 0x59, 0x22, 0x0e, 0xa2, 0x10, 0x24, 0xf7, 0x56, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xc2,
+
227 0x35, 0x5a, 0x0e, 0x12, 0x2f, 0x01, 0xa2, 0x0c, 0x2f, 0x84, 0xa3, 0x10, 0x24, 0xd4, 0x58, 0x13, 0x24, 0x76, 0x56,
+
228 0x03, 0x22, 0x73, 0x36, 0x4b, 0x0e, 0x11, 0x24, 0xeb, 0x52, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x87,
+
229 0x16, 0x80, 0x2e, 0xd7, 0xb4, 0xb0, 0x6f, 0x13, 0x24, 0x02, 0xfd, 0x03, 0x0e, 0x29, 0x2f, 0x84, 0xa3, 0xc0, 0x6f,
+
230 0x09, 0x2f, 0x11, 0x24, 0xe4, 0x0a, 0x41, 0x0e, 0x11, 0x24, 0x5d, 0x44, 0x10, 0x24, 0x2f, 0x5a, 0x08, 0x22, 0x80,
+
231 0x2e, 0xd7, 0xb4, 0x13, 0x24, 0x96, 0x0c, 0x43, 0x0e, 0x0e, 0x2f, 0x40, 0x33, 0x48, 0x0e, 0x10, 0x24, 0xf2, 0x18,
+
232 0x13, 0x24, 0x31, 0x49, 0x03, 0x22, 0x13, 0x24, 0x99, 0x00, 0x4b, 0x0e, 0x11, 0x24, 0xab, 0x18, 0x01, 0x22, 0x80,
+
233 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xc6, 0x07, 0x69, 0x0e, 0x11, 0x24, 0xb0, 0x49, 0x10, 0x24, 0xbf, 0x17, 0x08, 0x22,
+
234 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x03, 0x15, 0x80, 0x2e, 0xd7, 0xb4, 0xb0, 0x32, 0x48, 0x0e, 0x57, 0x2f, 0xa0,
+
235 0x37, 0x48, 0x0e, 0x13, 0x2f, 0x83, 0xa3, 0x08, 0x2f, 0x10, 0x24, 0xe0, 0x00, 0x48, 0x0e, 0x11, 0x24, 0xf6, 0x25,
+
236 0x10, 0x24, 0x75, 0x17, 0x71, 0x2c, 0x08, 0x22, 0x10, 0x24, 0xa0, 0x00, 0x48, 0x0e, 0x11, 0x24, 0x7f, 0x18, 0x10,
+
237 0x24, 0xa6, 0x13, 0x68, 0x2c, 0x08, 0x22, 0x11, 0x24, 0xf9, 0x07, 0x69, 0x0e, 0x0d, 0x2f, 0x11, 0x24, 0x10, 0x08,
+
238 0x69, 0x0e, 0x11, 0x24, 0xb1, 0x14, 0x10, 0x24, 0x8e, 0x58, 0x48, 0x22, 0x90, 0x32, 0x58, 0x0e, 0x10, 0x24, 0x6d,
+
239 0x14, 0x56, 0x2c, 0x01, 0x22, 0xc1, 0x6f, 0x10, 0x24, 0x68, 0x0c, 0x48, 0x0e, 0xb1, 0x6f, 0x0c, 0x2f, 0xcd, 0xa2,
+
240 0x10, 0x24, 0x23, 0x14, 0x13, 0x24, 0x8d, 0x42, 0x03, 0x22, 0x13, 0x24, 0x2a, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0x53,
+
241 0x12, 0x43, 0x2c, 0x08, 0x22, 0x10, 0x24, 0xcc, 0x07, 0x68, 0x0e, 0x0e, 0x2f, 0x10, 0x24, 0x08, 0xfd, 0x08, 0x0e,
+
242 0x10, 0x24, 0x08, 0x16, 0x13, 0x24, 0x83, 0x45, 0x03, 0x22, 0x13, 0x24, 0xa1, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0xa6,
+
243 0x14, 0x30, 0x2c, 0x01, 0x22, 0x10, 0x24, 0x5b, 0x01, 0x08, 0x0e, 0x11, 0x24, 0x2f, 0x12, 0x10, 0x24, 0xdd, 0x44,
+
244 0x27, 0x2c, 0x08, 0x22, 0xdb, 0xa2, 0x0f, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xb2, 0x0b, 0x48, 0x0e, 0x11, 0x24, 0x21,
+
245 0x55, 0x10, 0x24, 0xc8, 0x14, 0x48, 0x22, 0x10, 0x24, 0x4c, 0x08, 0x68, 0x0e, 0x10, 0x24, 0xe4, 0x57, 0x15, 0x2c,
+
246 0x01, 0x22, 0x44, 0xa2, 0x0f, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xcb, 0x0b, 0x48, 0x0e, 0x11, 0x24, 0x09, 0x58, 0x10,
+
247 0x24, 0xe4, 0x10, 0x48, 0x22, 0x10, 0x24, 0x4d, 0x08, 0x68, 0x0e, 0x10, 0x24, 0x1a, 0x12, 0x03, 0x2c, 0x01, 0x22,
+
248 0x10, 0x24, 0x0c, 0x10, 0xfb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0xa3, 0x32, 0xc3, 0x00, 0x60, 0x51, 0xc2, 0x40, 0x81,
+
249 0x84, 0xd3, 0x7f, 0xd2, 0x42, 0xe0, 0x7f, 0x00, 0x30, 0xc4, 0x40, 0x20, 0x02, 0xc3, 0x7f, 0xd0, 0x42, 0x42, 0x3d,
+
250 0xc0, 0x40, 0x01, 0x80, 0xc0, 0x42, 0xda, 0x00, 0x93, 0x7f, 0xb1, 0x7f, 0xab, 0x7f, 0x98, 0x2e, 0xb3, 0xc0, 0x91,
+
251 0x6f, 0xf3, 0x32, 0x40, 0x42, 0x00, 0xac, 0x8b, 0x00, 0x02, 0x2f, 0xe1, 0x6f, 0x39, 0x56, 0x43, 0x42, 0xa1, 0x82,
+
252 0x91, 0x7f, 0x33, 0x33, 0x4b, 0x00, 0x81, 0x7f, 0x13, 0x3c, 0x4b, 0x00, 0x80, 0x40, 0x53, 0x34, 0xb5, 0x6f, 0x8b,
+
253 0x00, 0x0d, 0xb0, 0x43, 0x87, 0x76, 0x7f, 0xb2, 0x7f, 0x63, 0x7f, 0x65, 0x25, 0xb5, 0x6f, 0x92, 0x41, 0x63, 0x41,
+
254 0x64, 0x41, 0x44, 0x81, 0x56, 0x7f, 0x41, 0x7f, 0x00, 0x2e, 0x26, 0x40, 0x27, 0x40, 0x45, 0x41, 0xf7, 0x7f, 0xb0,
+
255 0x7f, 0x98, 0x2e, 0x67, 0xcc, 0x81, 0x6f, 0x0f, 0xa4, 0x43, 0x40, 0x72, 0x6f, 0x94, 0x6f, 0x05, 0x30, 0x01, 0x2f,
+
256 0xc0, 0xa0, 0x03, 0x2f, 0x31, 0xac, 0x07, 0x2f, 0xc0, 0xa4, 0x05, 0x2f, 0xa2, 0x00, 0xeb, 0x04, 0x80, 0x40, 0x01,
+
257 0x80, 0x43, 0x42, 0x80, 0x42, 0x41, 0x86, 0x56, 0x6f, 0x62, 0x6f, 0x41, 0x6f, 0x42, 0x82, 0x72, 0x0e, 0x83, 0x7f,
+
258 0xd5, 0x2f, 0x53, 0x32, 0x8b, 0x00, 0xa1, 0x86, 0x56, 0x25, 0xf0, 0x82, 0x82, 0x40, 0x8d, 0xb0, 0x52, 0x40, 0xde,
+
259 0x00, 0x91, 0x7f, 0xb3, 0x7f, 0x85, 0x7f, 0xb3, 0x30, 0x7b, 0x52, 0x98, 0x2e, 0x5a, 0xca, 0x1a, 0x25, 0x83, 0x6f,
+
260 0x6d, 0x82, 0xfd, 0x88, 0x50, 0x7f, 0x71, 0x7f, 0x81, 0x7f, 0x05, 0x30, 0x83, 0x30, 0x00, 0x30, 0x11, 0x41, 0x52,
+
261 0x6f, 0x25, 0x7f, 0x30, 0x7f, 0x44, 0x7f, 0x98, 0x2e, 0x0f, 0xca, 0x73, 0x6f, 0x20, 0x25, 0x90, 0x6f, 0x7d, 0x52,
+
262 0xd2, 0x42, 0x73, 0x7f, 0x12, 0x7f, 0x98, 0x2e, 0x86, 0xb7, 0x93, 0x6f, 0x11, 0x6f, 0xd2, 0x40, 0x0a, 0x18, 0x31,
+
263 0x6f, 0x0e, 0x00, 0x93, 0x7f, 0x83, 0x30, 0x44, 0x6f, 0x21, 0x6f, 0x62, 0x6f, 0x62, 0x0e, 0x4f, 0x03, 0xe1, 0x2f,
+
264 0x33, 0x52, 0x01, 0x00, 0x01, 0x30, 0x69, 0x03, 0x3a, 0x25, 0xea, 0x82, 0x92, 0x6f, 0xf0, 0x86, 0xd1, 0xbe, 0x0f,
+
265 0xb8, 0xbd, 0x84, 0x94, 0x7f, 0x05, 0x0a, 0x23, 0x7f, 0x52, 0x7f, 0x40, 0x7f, 0x31, 0x7f, 0x71, 0x7f, 0xd3, 0x30,
+
266 0x84, 0x6f, 0x55, 0x6f, 0x10, 0x41, 0x52, 0x41, 0x41, 0x6f, 0x55, 0x7f, 0x10, 0x7f, 0x04, 0x7f, 0x98, 0x2e, 0x0f,
+
267 0xca, 0x11, 0x6f, 0x20, 0x25, 0x98, 0x2e, 0xfe, 0xc9, 0x31, 0x6f, 0x04, 0x6f, 0x50, 0x42, 0x31, 0x7f, 0xd3, 0x30,
+
268 0x21, 0x6f, 0x61, 0x0e, 0xea, 0x2f, 0xb1, 0x6f, 0x41, 0x84, 0x32, 0x25, 0x90, 0x40, 0x84, 0x40, 0x71, 0x6f, 0xb4,
+
269 0x7f, 0x72, 0x7f, 0x40, 0x7f, 0x33, 0x7f, 0x98, 0x2e, 0xb3, 0xc0, 0x53, 0x6f, 0xb1, 0x32, 0x99, 0x00, 0x83, 0xb9,
+
270 0x41, 0x6f, 0x4b, 0x00, 0xb0, 0x6f, 0x03, 0x30, 0xc3, 0x02, 0x84, 0x40, 0xb2, 0x7f, 0xa1, 0x84, 0x0d, 0xb1, 0x52,
+
271 0x7f, 0x56, 0x01, 0x74, 0x6f, 0x30, 0x6f, 0x92, 0x6f, 0x43, 0x8b, 0x03, 0x43, 0x01, 0x42, 0x95, 0x7f, 0xbd, 0x86,
+
272 0x51, 0x41, 0x41, 0x7f, 0x75, 0x7f, 0x00, 0x2e, 0xd1, 0x40, 0x42, 0x41, 0x32, 0x7f, 0x23, 0x7f, 0x98, 0x2e, 0x74,
+
273 0xc0, 0x41, 0x6f, 0xc8, 0x00, 0x90, 0x6f, 0x01, 0x30, 0x75, 0x6f, 0x32, 0x6f, 0x03, 0x42, 0x91, 0x02, 0x23, 0x6f,
+
274 0x61, 0x6f, 0x59, 0x0e, 0x62, 0x43, 0x95, 0x7f, 0xe7, 0x2f, 0xb2, 0x6f, 0x51, 0x6f, 0x82, 0x40, 0x8d, 0xb0, 0x8e,
+
275 0x00, 0xfd, 0x8a, 0xb2, 0x7f, 0x02, 0x30, 0x79, 0x52, 0x05, 0x25, 0x03, 0x30, 0x54, 0x40, 0xec, 0x01, 0x16, 0x40,
+
276 0x43, 0x89, 0xc7, 0x41, 0x37, 0x18, 0x3d, 0x8b, 0x96, 0x00, 0x44, 0x0e, 0xdf, 0x02, 0xf4, 0x2f, 0x09, 0x52, 0x51,
+
277 0x00, 0x02, 0x30, 0x9a, 0x02, 0xb5, 0x6f, 0x45, 0x87, 0x1b, 0xba, 0x25, 0xbc, 0x51, 0x6f, 0x4d, 0x8b, 0x7a, 0x82,
+
278 0xc6, 0x40, 0x20, 0x0a, 0x30, 0x00, 0xd0, 0x42, 0x2b, 0xb5, 0xc0, 0x40, 0x82, 0x02, 0x40, 0x34, 0x08, 0x00, 0xd2,
+
279 0x42, 0xb0, 0x7f, 0x75, 0x7f, 0x93, 0x7f, 0x00, 0x2e, 0xb5, 0x6f, 0xe2, 0x6f, 0x63, 0x41, 0x64, 0x41, 0x44, 0x8f,
+
280 0x82, 0x40, 0xe6, 0x41, 0xc0, 0x41, 0xc4, 0x8f, 0x45, 0x41, 0xf0, 0x7f, 0xb7, 0x7f, 0x61, 0x7f, 0x98, 0x2e, 0x67,
+
281 0xcc, 0x00, 0x18, 0x09, 0x52, 0x71, 0x00, 0x03, 0x30, 0xbb, 0x02, 0x1b, 0xba, 0x93, 0x6f, 0x25, 0xbc, 0x61, 0x6f,
+
282 0xc5, 0x40, 0x42, 0x82, 0x20, 0x0a, 0x28, 0x00, 0xd0, 0x42, 0x2b, 0xb9, 0xc0, 0x40, 0x82, 0x02, 0xd2, 0x42, 0x93,
+
283 0x7f, 0x00, 0x2e, 0x72, 0x6f, 0x5a, 0x0e, 0xd9, 0x2f, 0xb1, 0x6f, 0xf3, 0x3c, 0xcb, 0x00, 0xda, 0x82, 0xc3, 0x40,
+
284 0x41, 0x40, 0x59, 0x0e, 0x50, 0x2f, 0xe1, 0x6f, 0xe3, 0x32, 0xcb, 0x00, 0xb3, 0x7f, 0x22, 0x30, 0xc0, 0x40, 0x01,
+
285 0x80, 0xc0, 0x42, 0x02, 0xa2, 0x30, 0x2f, 0xc2, 0x42, 0x98, 0x2e, 0x83, 0xb1, 0xe1, 0x6f, 0xb3, 0x35, 0xcb, 0x00,
+
286 0x24, 0x3d, 0xc2, 0x40, 0xdc, 0x00, 0x84, 0x40, 0x00, 0x91, 0x93, 0x7f, 0x02, 0x2f, 0x00, 0x2e, 0x06, 0x2c, 0x0c,
+
287 0xb8, 0x30, 0x25, 0x00, 0x33, 0x48, 0x00, 0x98, 0x2e, 0xf6, 0xb6, 0x91, 0x6f, 0x90, 0x7f, 0x00, 0x2e, 0x44, 0x40,
+
288 0x20, 0x1a, 0x15, 0x2f, 0xd3, 0x6f, 0xc1, 0x6f, 0xc3, 0x40, 0x35, 0x5a, 0x42, 0x40, 0xd3, 0x7e, 0x08, 0xbc, 0x25,
+
289 0x09, 0xe2, 0x7e, 0xc4, 0x0a, 0x42, 0x82, 0xf3, 0x7e, 0xd1, 0x7f, 0x34, 0x30, 0x83, 0x6f, 0x82, 0x30, 0x31, 0x30,
+
290 0x98, 0x2e, 0xb3, 0x00, 0xd1, 0x6f, 0x93, 0x6f, 0x43, 0x42, 0xf0, 0x32, 0xb1, 0x6f, 0x41, 0x82, 0xe2, 0x6f, 0x43,
+
291 0x40, 0xc1, 0x86, 0xc2, 0xa2, 0x43, 0x42, 0x03, 0x30, 0x02, 0x2f, 0x90, 0x00, 0x00, 0x2e, 0x83, 0x42, 0x61, 0x88,
+
292 0x42, 0x40, 0x8d, 0xb0, 0x26, 0x00, 0x98, 0x2e, 0xd9, 0x03, 0x1c, 0x83, 0x00, 0x2e, 0x43, 0x42, 0x00, 0x2e, 0xab,
+
293 0x6f, 0xa0, 0x5e, 0xb8, 0x2e, 0xb1, 0x35, 0x40, 0x51, 0x41, 0x01, 0x02, 0x30, 0x1a, 0x25, 0x13, 0x30, 0x40, 0x25,
+
294 0x12, 0x42, 0x45, 0x0e, 0xfc, 0x2f, 0x65, 0x34, 0x28, 0x80, 0x25, 0x01, 0x13, 0x42, 0x44, 0x0e, 0xfc, 0x2f, 0x27,
+
295 0x80, 0x65, 0x56, 0x03, 0x42, 0x15, 0x80, 0xa3, 0x30, 0x03, 0x42, 0x04, 0x80, 0x4d, 0x56, 0x7f, 0x58, 0x13, 0x42,
+
296 0xd4, 0x7e, 0xc2, 0x7e, 0xf2, 0x7e, 0x6c, 0x8c, 0x81, 0x56, 0x83, 0x58, 0xe3, 0x7e, 0x04, 0x7f, 0x71, 0x8a, 0x97,
+
297 0x41, 0x17, 0x42, 0x75, 0x0e, 0xfb, 0x2f, 0x85, 0x5c, 0x87, 0x5e, 0x16, 0x7f, 0x36, 0x7f, 0x27, 0x7f, 0x00, 0x2e,
+
298 0x89, 0x5c, 0x8b, 0x5e, 0x46, 0x7f, 0x57, 0x7f, 0x76, 0x8c, 0x57, 0x41, 0x17, 0x42, 0x6e, 0x0e, 0xfb, 0x2f, 0x8d,
+
299 0x5a, 0x8f, 0x5e, 0x65, 0x7f, 0x87, 0x7f, 0x72, 0x7f, 0x00, 0x2e, 0x91, 0x5a, 0x93, 0x5e, 0x95, 0x7f, 0xa7, 0x7f,
+
300 0x7b, 0x8a, 0x97, 0x41, 0x17, 0x42, 0x75, 0x0e, 0xfb, 0x2f, 0x7f, 0x5c, 0xb2, 0x7f, 0xc6, 0x7f, 0xd3, 0x7f, 0xe2,
+
301 0x7f, 0xf4, 0x7f, 0x40, 0x82, 0x52, 0x41, 0x12, 0x42, 0x69, 0x0e, 0xfb, 0x2f, 0xc0, 0x5e, 0xb8, 0x2e, 0x03, 0x2e,
+
302 0x2d, 0x02, 0x9f, 0xbc, 0x9f, 0xb8, 0x20, 0x50, 0x40, 0xb2, 0x14, 0x2f, 0x10, 0x25, 0x01, 0x2e, 0x8d, 0x00, 0x00,
+
303 0x90, 0x0b, 0x2f, 0x97, 0x50, 0xf1, 0x7f, 0xeb, 0x7f, 0x98, 0x2e, 0x83, 0xb6, 0x01, 0x2e, 0x8d, 0x00, 0x01, 0x80,
+
304 0x21, 0x2e, 0x8d, 0x00, 0xf1, 0x6f, 0xeb, 0x6f, 0xe0, 0x5f, 0x97, 0x50, 0x80, 0x2e, 0xda, 0xb4, 0x00, 0x30, 0x21,
+
305 0x2e, 0x8d, 0x00, 0xe0, 0x5f, 0xb8, 0x2e, 0x41, 0x25, 0x42, 0x8a, 0x50, 0x50, 0x99, 0x52, 0x81, 0x80, 0x99, 0x09,
+
306 0xf5, 0x7f, 0x52, 0x25, 0x07, 0x52, 0x03, 0x8e, 0xd9, 0x08, 0x02, 0x40, 0x03, 0x81, 0x44, 0x83, 0x6c, 0xbb, 0xda,
+
307 0x0e, 0xe7, 0x7f, 0xdb, 0x7f, 0x20, 0x2f, 0x02, 0x41, 0x32, 0x1a, 0x1d, 0x2f, 0x42, 0x85, 0x00, 0x2e, 0x82, 0x40,
+
308 0xda, 0x0e, 0x03, 0x30, 0x05, 0x2f, 0xf1, 0x6f, 0x06, 0x30, 0x42, 0x40, 0x81, 0x84, 0x18, 0x2c, 0x42, 0x42, 0xbf,
+
309 0x85, 0x82, 0x00, 0x41, 0x40, 0x86, 0x40, 0x81, 0x8d, 0x86, 0x42, 0x20, 0x25, 0x13, 0x30, 0x06, 0x30, 0x97, 0x40,
+
310 0x81, 0x8d, 0xf9, 0x0f, 0x09, 0x2f, 0x85, 0xa3, 0xf9, 0x2f, 0x03, 0x30, 0x06, 0x2c, 0x06, 0x30, 0x9b, 0x52, 0xd9,
+
311 0x0e, 0x13, 0x30, 0x01, 0x30, 0xd9, 0x22, 0xc0, 0xb2, 0x12, 0x83, 0xc1, 0x7f, 0x03, 0x30, 0xb4, 0x7f, 0x06, 0x2f,
+
312 0x51, 0x30, 0x70, 0x25, 0x98, 0x2e, 0xe3, 0x03, 0xff, 0x81, 0x00, 0x2e, 0x03, 0x42, 0x43, 0x8b, 0xe0, 0x6f, 0xf1,
+
313 0x6f, 0x00, 0x40, 0x41, 0x40, 0xc8, 0x0f, 0x37, 0x2f, 0x00, 0x41, 0x80, 0xa7, 0x3c, 0x2f, 0x01, 0x83, 0x47, 0x8e,
+
314 0x42, 0x40, 0xfa, 0x01, 0x81, 0x84, 0x08, 0x89, 0x45, 0x41, 0x55, 0x0e, 0xc6, 0x43, 0x42, 0x42, 0xf4, 0x7f, 0x00,
+
315 0x2f, 0x43, 0x42, 0x51, 0x82, 0x70, 0x1a, 0x41, 0x40, 0x06, 0x2f, 0xc3, 0x6f, 0x41, 0x82, 0xc1, 0x42, 0xcd, 0x0e,
+
316 0x26, 0x2f, 0xc5, 0x42, 0x25, 0x2d, 0x7f, 0x82, 0x51, 0xbb, 0xa5, 0x00, 0xce, 0x0f, 0x12, 0x2f, 0x14, 0x30, 0x05,
+
317 0x30, 0xf7, 0x6f, 0x06, 0x30, 0x05, 0x2c, 0xe0, 0x7f, 0xd0, 0x41, 0x05, 0x1a, 0x23, 0x22, 0xb0, 0x01, 0x7a, 0x0e,
+
318 0xf9, 0x2f, 0x71, 0x0f, 0xe0, 0x6f, 0x28, 0x22, 0x41, 0x8b, 0x71, 0x22, 0x45, 0xa7, 0xee, 0x2f, 0xb3, 0x6f, 0xc2,
+
319 0x6f, 0xc0, 0x42, 0x81, 0x42, 0x08, 0x2d, 0x04, 0x25, 0xc4, 0x6f, 0x98, 0x2e, 0xea, 0x03, 0x00, 0x2e, 0x40, 0x41,
+
320 0x00, 0x43, 0x00, 0x30, 0xdb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0x10, 0x50, 0x03, 0x40, 0x19, 0x18, 0x37, 0x56, 0x19,
+
321 0x05, 0x36, 0x25, 0xf7, 0x7f, 0x4a, 0x17, 0x54, 0x18, 0xec, 0x18, 0x09, 0x17, 0x01, 0x30, 0x0c, 0x07, 0xe2, 0x18,
+
322 0xde, 0x00, 0xf2, 0x6f, 0x97, 0x02, 0x33, 0x58, 0xdc, 0x00, 0x91, 0x02, 0xbf, 0xb8, 0x21, 0xbd, 0x8a, 0x0a, 0xc0,
+
323 0x2e, 0x02, 0x42, 0xf0, 0x5f, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
324 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
325 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
326 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
327 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
328 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
329 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
330 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
331 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
332 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
333 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x01, 0x2e, 0x5d, 0xf7, 0x08, 0xbc, 0x80, 0xac, 0x0e, 0xbb, 0x02, 0x2f,
+
334 0x00, 0x30, 0x41, 0x04, 0x82, 0x06, 0xc0, 0xa4, 0x00, 0x30, 0x11, 0x2f, 0x40, 0xa9, 0x03, 0x2f, 0x40, 0x91, 0x0d,
+
335 0x2f, 0x00, 0xa7, 0x0b, 0x2f, 0x80, 0xb3, 0x33, 0x58, 0x02, 0x2f, 0x90, 0xa1, 0x26, 0x13, 0x20, 0x23, 0x80, 0x90,
+
336 0x10, 0x30, 0x01, 0x2f, 0xcc, 0x0e, 0x00, 0x2f, 0x00, 0x30, 0xb8, 0x2e, 0x35, 0x50, 0x18, 0x08, 0x08, 0xbc, 0x88,
+
337 0xb6, 0x0d, 0x17, 0xc6, 0xbd, 0x56, 0xbc, 0x37, 0x58, 0xda, 0xba, 0x04, 0x01, 0x1d, 0x0a, 0x10, 0x50, 0x05, 0x30,
+
338 0x32, 0x25, 0x45, 0x03, 0xfb, 0x7f, 0xf6, 0x30, 0x21, 0x25, 0x98, 0x2e, 0x37, 0xca, 0x16, 0xb5, 0x9a, 0xbc, 0x06,
+
339 0xb8, 0x80, 0xa8, 0x41, 0x0a, 0x0e, 0x2f, 0x80, 0x90, 0x02, 0x2f, 0x39, 0x50, 0x48, 0x0f, 0x09, 0x2f, 0xbf, 0xa0,
+
340 0x04, 0x2f, 0xbf, 0x90, 0x06, 0x2f, 0x37, 0x54, 0xca, 0x0f, 0x03, 0x2f, 0x00, 0x2e, 0x02, 0x2c, 0x37, 0x52, 0x39,
+
341 0x52, 0xf2, 0x33, 0x98, 0x2e, 0xd9, 0xc0, 0xfb, 0x6f, 0xf1, 0x37, 0xc0, 0x2e, 0x01, 0x08, 0xf0, 0x5f, 0x41, 0x56,
+
342 0x3b, 0x54, 0xd0, 0x40, 0xc4, 0x40, 0x0b, 0x2e, 0xfd, 0xf3, 0x41, 0x52, 0x90, 0x42, 0x94, 0x42, 0x95, 0x42, 0x05,
+
343 0x30, 0x43, 0x50, 0x0f, 0x88, 0x06, 0x40, 0x04, 0x41, 0x96, 0x42, 0xc5, 0x42, 0x48, 0xbe, 0x73, 0x30, 0x0d, 0x2e,
+
344 0x88, 0x00, 0x4f, 0xba, 0x84, 0x42, 0x03, 0x42, 0x81, 0xb3, 0x02, 0x2f, 0x2b, 0x2e, 0x6f, 0xf5, 0x06, 0x2d, 0x05,
+
345 0x2e, 0x77, 0xf7, 0x3f, 0x56, 0x93, 0x08, 0x25, 0x2e, 0x77, 0xf7, 0x3d, 0x54, 0x25, 0x2e, 0xc2, 0xf5, 0x07, 0x2e,
+
346 0xfd, 0xf3, 0x42, 0x30, 0xb4, 0x33, 0xda, 0x0a, 0x4c, 0x00, 0x27, 0x2e, 0xfd, 0xf3, 0x43, 0x40, 0xd4, 0x3f, 0xdc,
+
347 0x08, 0x43, 0x42, 0x00, 0x2e, 0x00, 0x2e, 0x43, 0x40, 0x24, 0x30, 0xdc, 0x0a, 0x43, 0x42, 0x04, 0x80, 0x03, 0x2e,
+
348 0xfd, 0xf3, 0x4a, 0x0a, 0x23, 0x2e, 0xfd, 0xf3, 0x61, 0x34, 0xc0, 0x2e, 0x01, 0x42, 0x00, 0x2e, 0x60, 0x50, 0x1a,
+
349 0x25, 0x7a, 0x86, 0xe0, 0x7f, 0xf3, 0x7f, 0x03, 0x25, 0x45, 0x52, 0x41, 0x84, 0xdb, 0x7f, 0x33, 0x30, 0x98, 0x2e,
+
350 0x16, 0xc2, 0x1a, 0x25, 0x7d, 0x82, 0xf0, 0x6f, 0xe2, 0x6f, 0x32, 0x25, 0x16, 0x40, 0x94, 0x40, 0x26, 0x01, 0x85,
+
351 0x40, 0x8e, 0x17, 0xc4, 0x42, 0x6e, 0x03, 0x95, 0x42, 0x41, 0x0e, 0xf4, 0x2f, 0xdb, 0x6f, 0xa0, 0x5f, 0xb8, 0x2e,
+
352 0xb0, 0x51, 0xfb, 0x7f, 0x98, 0x2e, 0xe8, 0x0d, 0x5a, 0x25, 0x98, 0x2e, 0x0f, 0x0e, 0x4f, 0x58, 0x32, 0x87, 0xc4,
+
353 0x7f, 0x65, 0x89, 0x6b, 0x8d, 0x47, 0x5a, 0x65, 0x7f, 0xe1, 0x7f, 0x83, 0x7f, 0xa6, 0x7f, 0x74, 0x7f, 0xd0, 0x7f,
+
354 0xb6, 0x7f, 0x94, 0x7f, 0x17, 0x30, 0x49, 0x52, 0x4b, 0x54, 0x51, 0x7f, 0x00, 0x2e, 0x85, 0x6f, 0x42, 0x7f, 0x00,
+
355 0x2e, 0x51, 0x41, 0x45, 0x81, 0x42, 0x41, 0x13, 0x40, 0x3b, 0x8a, 0x00, 0x40, 0x4b, 0x04, 0xd0, 0x06, 0xc0, 0xac,
+
356 0x85, 0x7f, 0x02, 0x2f, 0x02, 0x30, 0x51, 0x04, 0xd3, 0x06, 0x41, 0x84, 0x05, 0x30, 0x5d, 0x02, 0xc9, 0x16, 0xdf,
+
357 0x08, 0xd3, 0x00, 0x8d, 0x02, 0xaf, 0xbc, 0xb1, 0xb9, 0x59, 0x0a, 0x65, 0x6f, 0x11, 0x43, 0xa1, 0xb4, 0x52, 0x41,
+
358 0x53, 0x41, 0x01, 0x43, 0x34, 0x7f, 0x65, 0x7f, 0x26, 0x31, 0xe5, 0x6f, 0xd4, 0x6f, 0x98, 0x2e, 0x37, 0xca, 0x32,
+
359 0x6f, 0x75, 0x6f, 0x83, 0x40, 0x42, 0x41, 0x23, 0x7f, 0x12, 0x7f, 0xf6, 0x30, 0x40, 0x25, 0x51, 0x25, 0x98, 0x2e,
+
360 0x37, 0xca, 0x14, 0x6f, 0x20, 0x05, 0x70, 0x6f, 0x25, 0x6f, 0x69, 0x07, 0xa2, 0x6f, 0x31, 0x6f, 0x0b, 0x30, 0x04,
+
361 0x42, 0x9b, 0x42, 0x8b, 0x42, 0x55, 0x42, 0x32, 0x7f, 0x40, 0xa9, 0xc3, 0x6f, 0x71, 0x7f, 0x02, 0x30, 0xd0, 0x40,
+
362 0xc3, 0x7f, 0x03, 0x2f, 0x40, 0x91, 0x15, 0x2f, 0x00, 0xa7, 0x13, 0x2f, 0x00, 0xa4, 0x11, 0x2f, 0x84, 0xbd, 0x98,
+
363 0x2e, 0x79, 0xca, 0x55, 0x6f, 0x37, 0x54, 0x54, 0x41, 0x82, 0x00, 0xf3, 0x3f, 0x45, 0x41, 0xcb, 0x02, 0xf6, 0x30,
+
364 0x98, 0x2e, 0x37, 0xca, 0x35, 0x6f, 0xa4, 0x6f, 0x41, 0x43, 0x03, 0x2c, 0x00, 0x43, 0xa4, 0x6f, 0x35, 0x6f, 0x17,
+
365 0x30, 0x42, 0x6f, 0x51, 0x6f, 0x93, 0x40, 0x42, 0x82, 0x00, 0x41, 0xc3, 0x00, 0x03, 0x43, 0x51, 0x7f, 0x00, 0x2e,
+
366 0x94, 0x40, 0x41, 0x41, 0x4c, 0x02, 0xc4, 0x6f, 0x55, 0x56, 0x63, 0x0e, 0x74, 0x6f, 0x51, 0x43, 0xa5, 0x7f, 0x8a,
+
367 0x2f, 0x09, 0x2e, 0x88, 0x00, 0x01, 0xb3, 0x21, 0x2f, 0x4f, 0x58, 0x90, 0x6f, 0x13, 0x41, 0xb6, 0x6f, 0xe4, 0x7f,
+
368 0x00, 0x2e, 0x91, 0x41, 0x14, 0x40, 0x92, 0x41, 0x15, 0x40, 0x17, 0x2e, 0x6f, 0xf5, 0xb6, 0x7f, 0xd0, 0x7f, 0xcb,
+
369 0x7f, 0x98, 0x2e, 0x00, 0x0c, 0x07, 0x15, 0xc2, 0x6f, 0x14, 0x0b, 0x29, 0x2e, 0x6f, 0xf5, 0xc3, 0xa3, 0xc1, 0x8f,
+
370 0xe4, 0x6f, 0xd0, 0x6f, 0xe6, 0x2f, 0x14, 0x30, 0x05, 0x2e, 0x6f, 0xf5, 0x14, 0x0b, 0x29, 0x2e, 0x6f, 0xf5, 0x18,
+
371 0x2d, 0x51, 0x56, 0x04, 0x32, 0xb5, 0x6f, 0x1c, 0x01, 0x51, 0x41, 0x52, 0x41, 0xc3, 0x40, 0xb5, 0x7f, 0xe4, 0x7f,
+
372 0x98, 0x2e, 0x1f, 0x0c, 0xe4, 0x6f, 0x21, 0x87, 0x00, 0x43, 0x04, 0x32, 0x53, 0x54, 0x5a, 0x0e, 0xef, 0x2f, 0x4d,
+
373 0x54, 0x09, 0x2e, 0x77, 0xf7, 0x22, 0x0b, 0x29, 0x2e, 0x77, 0xf7, 0xfb, 0x6f, 0x50, 0x5e, 0xb8, 0x2e, 0x10, 0x50,
+
374 0x01, 0x2e, 0x84, 0x00, 0x00, 0xb2, 0xfb, 0x7f, 0x51, 0x2f, 0x01, 0xb2, 0x48, 0x2f, 0x02, 0xb2, 0x42, 0x2f, 0x03,
+
375 0x90, 0x56, 0x2f, 0x5b, 0x52, 0x79, 0x80, 0x42, 0x40, 0x81, 0x84, 0x00, 0x40, 0x42, 0x42, 0x98, 0x2e, 0x93, 0x0c,
+
376 0x5d, 0x54, 0x5b, 0x50, 0xa1, 0x40, 0x98, 0xbd, 0x82, 0x40, 0x3e, 0x82, 0xda, 0x0a, 0x44, 0x40, 0x8b, 0x16, 0xe3,
+
377 0x00, 0x53, 0x42, 0x00, 0x2e, 0x43, 0x40, 0x9a, 0x02, 0x52, 0x42, 0x00, 0x2e, 0x41, 0x40, 0x4d, 0x54, 0x4a, 0x0e,
+
378 0x3a, 0x2f, 0x3a, 0x82, 0x00, 0x30, 0x41, 0x40, 0x21, 0x2e, 0x6c, 0x0f, 0x40, 0xb2, 0x0a, 0x2f, 0x98, 0x2e, 0xb1,
+
379 0x0c, 0x98, 0x2e, 0x45, 0x0e, 0x98, 0x2e, 0x5b, 0x0e, 0xfb, 0x6f, 0xf0, 0x5f, 0x00, 0x30, 0x80, 0x2e, 0xba, 0x03,
+
380 0x61, 0x52, 0x57, 0x54, 0x42, 0x42, 0x4f, 0x84, 0x73, 0x30, 0x5f, 0x52, 0x83, 0x42, 0x1b, 0x30, 0x6b, 0x42, 0x23,
+
381 0x30, 0x27, 0x2e, 0x87, 0x00, 0x37, 0x2e, 0x84, 0x00, 0x21, 0x2e, 0x86, 0x00, 0x7a, 0x84, 0x17, 0x2c, 0x42, 0x42,
+
382 0x30, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x12, 0x2d, 0x21, 0x30, 0x00, 0x30, 0x23, 0x2e, 0x84, 0x00, 0x21, 0x2e, 0x7b,
+
383 0xf7, 0x0b, 0x2d, 0x17, 0x30, 0x98, 0x2e, 0x51, 0x0c, 0x59, 0x50, 0x0c, 0x82, 0x72, 0x30, 0x2f, 0x2e, 0x84, 0x00,
+
384 0x25, 0x2e, 0x7b, 0xf7, 0x40, 0x42, 0x00, 0x2e, 0xfb, 0x6f, 0xf0, 0x5f, 0xb8, 0x2e, 0x70, 0x50, 0x0a, 0x25, 0x39,
+
385 0x86, 0xfb, 0x7f, 0xe1, 0x32, 0x62, 0x30, 0x98, 0x2e, 0xc2, 0xc4, 0x35, 0x56, 0xa5, 0x6f, 0xab, 0x08, 0x91, 0x6f,
+
386 0x4b, 0x08, 0x63, 0x56, 0xc4, 0x6f, 0x23, 0x09, 0x4d, 0xba, 0x93, 0xbc, 0x8c, 0x0b, 0xd1, 0x6f, 0x0b, 0x09, 0x4f,
+
387 0x52, 0x65, 0x5e, 0x56, 0x42, 0xaf, 0x09, 0x4d, 0xba, 0x23, 0xbd, 0x94, 0x0a, 0xe5, 0x6f, 0x68, 0xbb, 0xeb, 0x08,
+
388 0xbd, 0xb9, 0x63, 0xbe, 0xfb, 0x6f, 0x52, 0x42, 0xe3, 0x0a, 0xc0, 0x2e, 0x43, 0x42, 0x90, 0x5f, 0x55, 0x50, 0x03,
+
389 0x2e, 0x25, 0xf3, 0x13, 0x40, 0x00, 0x40, 0x9b, 0xbc, 0x9b, 0xb4, 0x08, 0xbd, 0xb8, 0xb9, 0x98, 0xbc, 0xda, 0x0a,
+
390 0x08, 0xb6, 0x89, 0x16, 0xc0, 0x2e, 0x19, 0x00, 0x62, 0x02, 0x10, 0x50, 0xfb, 0x7f, 0x98, 0x2e, 0x81, 0x0d, 0x01,
+
391 0x2e, 0x84, 0x00, 0x31, 0x30, 0x08, 0x04, 0xfb, 0x6f, 0x01, 0x30, 0xf0, 0x5f, 0x23, 0x2e, 0x86, 0x00, 0x21, 0x2e,
+
392 0x87, 0x00, 0xb8, 0x2e, 0x01, 0x2e, 0x87, 0x00, 0x03, 0x2e, 0x86, 0x00, 0x48, 0x0e, 0x01, 0x2f, 0x80, 0x2e, 0x1f,
+
393 0x0e, 0xb8, 0x2e, 0x67, 0x50, 0x21, 0x34, 0x01, 0x42, 0x82, 0x30, 0xc1, 0x32, 0x25, 0x2e, 0x62, 0xf5, 0x01, 0x00,
+
394 0x22, 0x30, 0x01, 0x40, 0x4a, 0x0a, 0x01, 0x42, 0xb8, 0x2e, 0x67, 0x54, 0xf0, 0x3b, 0x83, 0x40, 0xd8, 0x08, 0x69,
+
395 0x52, 0x83, 0x42, 0x00, 0x30, 0x83, 0x30, 0x50, 0x42, 0xc4, 0x32, 0x27, 0x2e, 0x64, 0xf5, 0x94, 0x00, 0x50, 0x42,
+
396 0x40, 0x42, 0xd3, 0x3f, 0x84, 0x40, 0x7d, 0x82, 0xe3, 0x08, 0x40, 0x42, 0x83, 0x42, 0xb8, 0x2e, 0x61, 0x52, 0x00,
+
397 0x30, 0x40, 0x42, 0x7c, 0x86, 0x3b, 0x52, 0x09, 0x2e, 0x57, 0x0f, 0x41, 0x54, 0xc4, 0x42, 0xd3, 0x86, 0x54, 0x40,
+
398 0x55, 0x40, 0x94, 0x42, 0x85, 0x42, 0x21, 0x2e, 0x87, 0x00, 0x42, 0x40, 0x25, 0x2e, 0xfd, 0xf3, 0xc0, 0x42, 0x7e,
+
399 0x82, 0x05, 0x2e, 0x79, 0x00, 0x80, 0xb2, 0x14, 0x2f, 0x05, 0x2e, 0x24, 0x02, 0x27, 0xbd, 0x2f, 0xb9, 0x80, 0x90,
+
400 0x02, 0x2f, 0x21, 0x2e, 0x6f, 0xf5, 0x0c, 0x2d, 0x07, 0x2e, 0x58, 0x0f, 0x14, 0x30, 0x1c, 0x09, 0x05, 0x2e, 0x77,
+
401 0xf7, 0x3f, 0x56, 0x47, 0xbe, 0x93, 0x08, 0x94, 0x0a, 0x25, 0x2e, 0x77, 0xf7, 0x6b, 0x54, 0x50, 0x42, 0x4a, 0x0e,
+
402 0xfc, 0x2f, 0xb8, 0x2e, 0x50, 0x50, 0x02, 0x30, 0x43, 0x86, 0x69, 0x50, 0xfb, 0x7f, 0xe3, 0x7f, 0xd2, 0x7f, 0xc0,
+
403 0x7f, 0xb1, 0x7f, 0x00, 0x2e, 0x41, 0x40, 0x00, 0x40, 0x48, 0x04, 0x98, 0x2e, 0x74, 0xc0, 0x1e, 0xaa, 0xd3, 0x6f,
+
404 0x14, 0x30, 0xb1, 0x6f, 0xe3, 0x22, 0xc0, 0x6f, 0x52, 0x40, 0xe4, 0x6f, 0x4c, 0x0e, 0x12, 0x42, 0xd3, 0x7f, 0xeb,
+
405 0x2f, 0x03, 0x2e, 0x6d, 0x0f, 0x40, 0x90, 0x11, 0x30, 0x03, 0x2f, 0x23, 0x2e, 0x6d, 0x0f, 0x02, 0x2c, 0x00, 0x30,
+
406 0xd0, 0x6f, 0xfb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0x40, 0x50, 0xf1, 0x7f, 0x0a, 0x25, 0x3c, 0x86, 0xeb, 0x7f, 0x41,
+
407 0x33, 0x22, 0x30, 0x98, 0x2e, 0xc2, 0xc4, 0xd3, 0x6f, 0xf4, 0x30, 0xdc, 0x09, 0x6f, 0x58, 0xc2, 0x6f, 0x94, 0x09,
+
408 0x71, 0x58, 0x6a, 0xbb, 0xdc, 0x08, 0xb4, 0xb9, 0xb1, 0xbd, 0x6d, 0x5a, 0x95, 0x08, 0x21, 0xbd, 0xf6, 0xbf, 0x77,
+
409 0x0b, 0x51, 0xbe, 0xf1, 0x6f, 0xeb, 0x6f, 0x52, 0x42, 0x54, 0x42, 0xc0, 0x2e, 0x43, 0x42, 0xc0, 0x5f, 0x50, 0x50,
+
410 0x75, 0x52, 0x93, 0x30, 0x53, 0x42, 0xfb, 0x7f, 0x7b, 0x30, 0x4b, 0x42, 0x13, 0x30, 0x42, 0x82, 0x20, 0x33, 0x43,
+
411 0x42, 0xc8, 0x00, 0x01, 0x2e, 0x80, 0x03, 0x05, 0x2e, 0x7d, 0x00, 0x19, 0x52, 0xe2, 0x7f, 0xd0, 0x7f, 0xc3, 0x7f,
+
412 0x98, 0x2e, 0xb6, 0x0e, 0xd1, 0x6f, 0x48, 0x0a, 0xd1, 0x7f, 0x3a, 0x25, 0xfb, 0x86, 0x01, 0x33, 0x12, 0x30, 0x98,
+
413 0x2e, 0xc2, 0xc4, 0xd1, 0x6f, 0x48, 0x0a, 0x40, 0xb2, 0x0d, 0x2f, 0xe0, 0x6f, 0x03, 0x2e, 0x80, 0x03, 0x53, 0x30,
+
414 0x07, 0x80, 0x27, 0x2e, 0x21, 0xf2, 0x98, 0xbc, 0x01, 0x42, 0x98, 0x2e, 0x91, 0x03, 0x00, 0x2e, 0x00, 0x2e, 0xd0,
+
415 0x2e, 0xb1, 0x6f, 0x9b, 0xb8, 0x07, 0x2e, 0x1b, 0x00, 0x19, 0x1a, 0xb1, 0x7f, 0x71, 0x30, 0x04, 0x2f, 0x23, 0x2e,
+
416 0x21, 0xf2, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0x98, 0x2e, 0x6d, 0xc0, 0x98, 0x2e, 0x5d, 0xc0, 0x98, 0x2e, 0xdf,
+
417 0x03, 0x20, 0x26, 0xc1, 0x6f, 0x02, 0x31, 0x52, 0x42, 0xab, 0x30, 0x4b, 0x42, 0x20, 0x33, 0x77, 0x56, 0xf1, 0x37,
+
418 0xc4, 0x40, 0xa2, 0x0a, 0xc2, 0x42, 0xd8, 0x00, 0x01, 0x2e, 0x5e, 0xf7, 0x41, 0x08, 0x23, 0x2e, 0x94, 0x00, 0xe3,
+
419 0x7f, 0x98, 0x2e, 0xaa, 0x01, 0xe1, 0x6f, 0x83, 0x30, 0x43, 0x42, 0x03, 0x30, 0xfb, 0x6f, 0x73, 0x50, 0x02, 0x30,
+
420 0x00, 0x2e, 0x00, 0x2e, 0x81, 0x84, 0x50, 0x0e, 0xfa, 0x2f, 0x43, 0x42, 0x11, 0x30, 0xb0, 0x5f, 0x23, 0x2e, 0x21,
+
421 0xf2, 0xb8, 0x2e, 0xc1, 0x4a, 0x00, 0x00, 0x6d, 0x57, 0x00, 0x00, 0x77, 0x8e, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff,
+
422 0xd3, 0xff, 0xff, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xee, 0xe1, 0xff, 0xff, 0x7c, 0x13, 0x00, 0x00, 0x46, 0xe6, 0xff,
+
423 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
424 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
425 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
426 0x00, 0x00, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
427 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
428 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
429 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
430 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
431 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
432 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
433 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
434 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
435 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
436 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
437 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
438 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
439 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
440 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
441 0xc1, 0xfd, 0x2d
+
442};
+
+
+
+ +

◆ bmi270_context_config_file_size

+ +
+
+ + + + +
const int bmi270_context_config_file_size = sizeof(bmi270_context_config_file)
+
+
+
+
+ +
+ + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.js b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.js new file mode 100644 index 0000000..edf4d25 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.js @@ -0,0 +1,5 @@ +var applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c = +[ + [ "bmi270_context_config_file", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html#a6ddd3db541b4dfe98c640a978a268874", null ], + [ "bmi270_context_config_file_size", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html#aaed4743b4089675e78e99c4e70acee64", null ] +]; \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.md5 b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.md5 new file mode 100644 index 0000000..ef63a1c --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.md5 @@ -0,0 +1 @@ +d6ba9685f237c2a885bbc62cbd347235 \ No newline at end of file diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.svg new file mode 100644 index 0000000..b5e1cea --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +bmi270_context.c + + +Node1 + + +bmi270_context.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl_org.svg b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl_org.svg new file mode 100644 index 0000000..f29b884 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +bmi270_context.c + + +Node1 + + +bmi270_context.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c_source.html b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c_source.html new file mode 100644 index 0000000..9bc4530 --- /dev/null +++ b/docs/html/applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c_source.html @@ -0,0 +1,554 @@ + + + + + + + +ESP-IDF Firmware: bmi270_context.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications/m5stack_core_s3/apps/kalman_filter/main/bmi270_context.c
+
+
+Go to the documentation of this file.
1
+
2/*
+
3 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
4 *
+
5 * SPDX-License-Identifier: Apache-2.0
+
6 */
+
7#include <stdint.h>
+
8
+
+
9const uint8_t bmi270_context_config_file[] = {
+
10 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0x00, 0xb0, 0xc8, 0x2e, 0x00, 0x2e, 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0xc9,
+
11 0x01, 0x80, 0x2e, 0xe2, 0x00, 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0x77, 0xb0, 0x50, 0x30, 0x21, 0x2e, 0x59, 0xf5,
+
12 0x10, 0x30, 0x21, 0x2e, 0x6a, 0xf5, 0x80, 0x2e, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x01, 0x00, 0x22,
+
13 0x00, 0x76, 0x00, 0x00, 0x10, 0x00, 0x10, 0xd1, 0x00, 0xcb, 0xa7, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
14 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
15 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
16 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
17 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
18 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
19 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
20 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
21 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
22 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0xfd, 0x2d, 0x2c, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
23 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00,
+
24 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
25 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
26 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
27 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
28 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x24, 0x22, 0x00, 0x80, 0x2e, 0x48, 0x02, 0x01, 0x2e, 0x49,
+
29 0xf1, 0x0b, 0xbc, 0x10, 0x50, 0x0f, 0xb8, 0x00, 0x90, 0xfb, 0x7f, 0x07, 0x2f, 0x03, 0x2e, 0x21, 0xf2, 0x02, 0x31,
+
30 0x4a, 0x0a, 0x23, 0x2e, 0x21, 0xf2, 0x09, 0x2c, 0x00, 0x30, 0x98, 0x2e, 0x0e, 0xc7, 0x03, 0x2e, 0x21, 0xf2, 0xf2,
+
31 0x3e, 0x4a, 0x08, 0x23, 0x2e, 0x21, 0xf2, 0xfb, 0x6f, 0xf0, 0x5f, 0xb8, 0x2e, 0x13, 0x52, 0x00, 0x2e, 0x60, 0x40,
+
32 0x41, 0x40, 0x0d, 0xbc, 0x98, 0xbc, 0xc0, 0x2e, 0x01, 0x0a, 0x0f, 0xb8, 0x43, 0x86, 0x25, 0x40, 0x04, 0x40, 0xd8,
+
33 0xbe, 0x2c, 0x0b, 0x22, 0x11, 0x54, 0x42, 0x03, 0x80, 0x4b, 0x0e, 0xf6, 0x2f, 0xb8, 0x2e, 0x20, 0x50, 0xe7, 0x7f,
+
34 0xf6, 0x7f, 0x46, 0x30, 0x0f, 0x2e, 0xa4, 0xf1, 0xbe, 0x09, 0x80, 0xb3, 0x06, 0x2f, 0x0d, 0x2e, 0x84, 0x00, 0x84,
+
35 0xaf, 0x02, 0x2f, 0x16, 0x30, 0x2d, 0x2e, 0x7b, 0x00, 0x86, 0x30, 0x2d, 0x2e, 0x60, 0xf5, 0xf6, 0x6f, 0xe7, 0x6f,
+
36 0xe0, 0x5f, 0xc8, 0x2e, 0x80, 0x2e, 0xfb, 0x00, 0x00, 0x30, 0xc0, 0x2e, 0x21, 0x2e, 0x8d, 0x00, 0x44, 0x47, 0x99,
+
37 0x00, 0xff, 0x3f, 0x00, 0x0c, 0xff, 0x0f, 0x00, 0x04, 0xc0, 0x00, 0x5b, 0xf5, 0x90, 0x00, 0x1e, 0xf2, 0xfd, 0xf5,
+
38 0x8e, 0x00, 0x96, 0x00, 0x96, 0x00, 0xe0, 0x00, 0x19, 0xf4, 0x66, 0xf5, 0x00, 0x18, 0x64, 0xf5, 0x9d, 0x00, 0x7f,
+
39 0x00, 0x81, 0x00, 0xae, 0x00, 0xff, 0xfb, 0x21, 0x02, 0x00, 0x10, 0x00, 0x40, 0xff, 0x00, 0x00, 0x80, 0xff, 0x7f,
+
40 0x54, 0x0f, 0xeb, 0x00, 0x7f, 0xff, 0xc2, 0xf5, 0x68, 0xf7, 0xb3, 0xf1, 0x4e, 0x0f, 0x42, 0x0f, 0x48, 0x0f, 0x80,
+
41 0x00, 0x67, 0x0f, 0x58, 0xf7, 0x5b, 0xf7, 0x6a, 0x0f, 0x86, 0x00, 0x59, 0x0f, 0x6c, 0x0f, 0xc6, 0xf1, 0x66, 0x0f,
+
42 0x6c, 0xf7, 0x00, 0xe0, 0x00, 0xff, 0xd1, 0xf5, 0x6e, 0x0f, 0x71, 0x0f, 0xff, 0x03, 0x00, 0xfc, 0xf0, 0x3f, 0xb9,
+
43 0x00, 0x2d, 0xf5, 0xca, 0xf5, 0x8a, 0x00, 0x00, 0x08, 0x71, 0x7d, 0xfe, 0xc0, 0x03, 0x3f, 0x05, 0x3e, 0x49, 0x01,
+
44 0x92, 0x02, 0xf5, 0xd6, 0xe8, 0x63, 0xd3, 0xf8, 0x2e, 0x07, 0x5c, 0xce, 0xa5, 0x67, 0x28, 0x02, 0x4e, 0x01, 0x00,
+
45 0xf0, 0x33, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
47 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
48 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
49 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
50 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x50, 0x10,
+
55 0x50, 0x17, 0x52, 0x05, 0x2e, 0x7d, 0x00, 0xfb, 0x7f, 0x00, 0x2e, 0x13, 0x40, 0x93, 0x42, 0x41, 0x0e, 0xfb, 0x2f,
+
56 0x98, 0x2e, 0x91, 0x03, 0x98, 0x2e, 0x87, 0xcf, 0x01, 0x2e, 0x89, 0x00, 0x00, 0xb2, 0x08, 0x2f, 0x01, 0x2e, 0x69,
+
57 0xf7, 0xb1, 0x3f, 0x01, 0x08, 0x01, 0x30, 0x23, 0x2e, 0x89, 0x00, 0x21, 0x2e, 0x69, 0xf7, 0xfb, 0x6f, 0xf0, 0x5f,
+
58 0xb8, 0x2e, 0xa0, 0x50, 0x80, 0x7f, 0xe7, 0x7f, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0xa2, 0x7f, 0x91, 0x7f, 0xf6,
+
59 0x7f, 0x7b, 0x7f, 0x00, 0x2e, 0x01, 0x2e, 0x60, 0xf5, 0x60, 0x7f, 0x98, 0x2e, 0xce, 0x00, 0x62, 0x6f, 0x01, 0x32,
+
60 0x91, 0x08, 0x80, 0xb2, 0x11, 0x2f, 0x00, 0xb2, 0x03, 0x2f, 0x05, 0x2e, 0x18, 0x00, 0x80, 0x90, 0x09, 0x2f, 0x60,
+
61 0x7f, 0x98, 0x2e, 0xf9, 0x00, 0x23, 0x50, 0x01, 0x32, 0x01, 0x42, 0x02, 0x86, 0x60, 0x6f, 0x02, 0x30, 0xc2, 0x42,
+
62 0x23, 0x2e, 0x60, 0xf5, 0x00, 0x90, 0x00, 0x30, 0x01, 0x2f, 0x21, 0x2e, 0x7a, 0x00, 0xf6, 0x6f, 0x91, 0x6f, 0xa2,
+
63 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0xe7, 0x6f, 0x7b, 0x6f, 0x80, 0x6f, 0x60, 0x5f, 0xc8, 0x2e, 0x00, 0x00,
+
64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x01, 0xd4, 0x7b, 0x3b,
+
65 0x01, 0xdb, 0x7a, 0x04, 0x00, 0x3f, 0x7b, 0xcd, 0x6c, 0xc3, 0x04, 0x85, 0x09, 0xc3, 0x04, 0xec, 0xe6, 0x0c, 0x46,
+
66 0x01, 0x00, 0x27, 0x00, 0x19, 0x00, 0x96, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x0c, 0x00, 0xf0, 0x3c, 0x00, 0x01, 0x01,
+
67 0x00, 0x03, 0x00, 0x01, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
68 0x00, 0x00, 0x01, 0x00, 0xe1, 0x06, 0x66, 0x0a, 0x0a, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
70 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
71 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x50, 0x98, 0x2e, 0xd7, 0x0e, 0x50, 0x32, 0x98, 0x2e,
+
72 0x48, 0x03, 0x10, 0x30, 0x21, 0x2e, 0x21, 0xf2, 0x00, 0x30, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0x00, 0x2e, 0x01,
+
73 0x80, 0x06, 0xa2, 0xfb, 0x2f, 0x01, 0x2e, 0x9c, 0x00, 0x00, 0xb2, 0x10, 0x2f, 0x01, 0x2e, 0x18, 0x00, 0x00, 0xb2,
+
74 0x0c, 0x2f, 0x01, 0x54, 0x03, 0x52, 0x01, 0x50, 0x98, 0x2e, 0xc2, 0xc0, 0x98, 0x2e, 0xf5, 0xb0, 0x01, 0x50, 0x98,
+
75 0x2e, 0xd5, 0xb6, 0x10, 0x30, 0x21, 0x2e, 0x19, 0x00, 0x01, 0x2e, 0x84, 0x00, 0x04, 0xae, 0x0b, 0x2f, 0x01, 0x2e,
+
76 0x9c, 0x00, 0x00, 0xb2, 0x07, 0x2f, 0x01, 0x52, 0x98, 0x2e, 0x8e, 0x0e, 0x00, 0xb2, 0x02, 0x2f, 0x10, 0x30, 0x21,
+
77 0x2e, 0x79, 0x00, 0x01, 0x2e, 0x79, 0x00, 0x00, 0x90, 0x90, 0x2e, 0x14, 0x03, 0x01, 0x2e, 0x87, 0x00, 0x00, 0xb2,
+
78 0x04, 0x2f, 0x98, 0x2e, 0x2f, 0x0e, 0x00, 0x30, 0x21, 0x2e, 0x7b, 0x00, 0x01, 0x2e, 0x7b, 0x00, 0x00, 0xb2, 0x12,
+
79 0x2f, 0x01, 0x2e, 0x84, 0x00, 0x00, 0x90, 0x02, 0x2f, 0x98, 0x2e, 0x1f, 0x0e, 0x09, 0x2d, 0x98, 0x2e, 0x81, 0x0d,
+
80 0x01, 0x2e, 0x84, 0x00, 0x04, 0x90, 0x02, 0x2f, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x7b,
+
81 0x00, 0x01, 0x2e, 0x78, 0x00, 0x00, 0xb2, 0x90, 0x2e, 0x2c, 0x03, 0x01, 0x2e, 0x78, 0x00, 0x81, 0x30, 0x01, 0x08,
+
82 0x00, 0xb2, 0x61, 0x2f, 0x03, 0x2e, 0x24, 0x02, 0x01, 0x2e, 0x84, 0x00, 0x98, 0xbc, 0x98, 0xb8, 0x05, 0xb2, 0x0d,
+
83 0x58, 0x23, 0x2f, 0x07, 0x90, 0x07, 0x54, 0x00, 0x30, 0x37, 0x2f, 0x15, 0x41, 0x04, 0x41, 0xdc, 0xbe, 0x44, 0xbe,
+
84 0xdc, 0xba, 0x2c, 0x01, 0x61, 0x00, 0x0d, 0x56, 0x4a, 0x0f, 0x0c, 0x2f, 0xd1, 0x42, 0x94, 0xb8, 0xc1, 0x42, 0x11,
+
85 0x30, 0x05, 0x2e, 0x6a, 0xf7, 0x2c, 0xbd, 0x2f, 0xb9, 0x80, 0xb2, 0x08, 0x22, 0x98, 0x2e, 0xaf, 0x03, 0x21, 0x2d,
+
86 0x61, 0x30, 0x23, 0x2e, 0x84, 0x00, 0x98, 0x2e, 0xaf, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x5a, 0xf5, 0x18, 0x2d, 0xf1,
+
87 0x7f, 0x50, 0x30, 0x98, 0x2e, 0x48, 0x03, 0x0d, 0x52, 0x05, 0x50, 0x50, 0x42, 0x70, 0x30, 0x0b, 0x54, 0x42, 0x42,
+
88 0x7e, 0x82, 0xf2, 0x6f, 0x80, 0xb2, 0x42, 0x42, 0x05, 0x2f, 0x21, 0x2e, 0x84, 0x00, 0x10, 0x30, 0x98, 0x2e, 0xaf,
+
89 0x03, 0x03, 0x2d, 0x60, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x01, 0x2e, 0x84, 0x00, 0x06, 0x90, 0x18, 0x2f, 0x01, 0x2e,
+
90 0x77, 0x00, 0x09, 0x54, 0x05, 0x52, 0xf0, 0x7f, 0x98, 0x2e, 0x7a, 0xc1, 0xf1, 0x6f, 0x08, 0x1a, 0x40, 0x30, 0x08,
+
91 0x2f, 0x21, 0x2e, 0x84, 0x00, 0x20, 0x30, 0x98, 0x2e, 0x9b, 0x03, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x05, 0x2d,
+
92 0x98, 0x2e, 0x38, 0x0e, 0x00, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x00, 0x30, 0x21, 0x2e, 0x78, 0x00, 0x18, 0x2d, 0x01,
+
93 0x2e, 0x84, 0x00, 0x03, 0xaa, 0x01, 0x2f, 0x98, 0x2e, 0x45, 0x0e, 0x01, 0x2e, 0x84, 0x00, 0x3f, 0x80, 0x03, 0xa2,
+
94 0x01, 0x2f, 0x00, 0x2e, 0x02, 0x2d, 0x98, 0x2e, 0x5b, 0x0e, 0x30, 0x30, 0x98, 0x2e, 0xba, 0x03, 0x00, 0x30, 0x21,
+
95 0x2e, 0x79, 0x00, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x01, 0x2e, 0x19, 0x00, 0x00, 0xb2, 0x10, 0x2f, 0x01, 0x2e,
+
96 0x85, 0x00, 0x21, 0x2e, 0x90, 0x00, 0x0f, 0x52, 0x7e, 0x82, 0x11, 0x50, 0x41, 0x40, 0x18, 0xb9, 0x11, 0x42, 0x02,
+
97 0x42, 0x02, 0x80, 0x00, 0x2e, 0x01, 0x40, 0x01, 0x42, 0x98, 0x2e, 0xaa, 0x01, 0x00, 0x30, 0x21, 0x2e, 0x19, 0x00,
+
98 0x21, 0x2e, 0x9c, 0x00, 0x80, 0x2e, 0x52, 0x02, 0x21, 0x2e, 0x59, 0xf5, 0x10, 0x30, 0xc0, 0x2e, 0x21, 0x2e, 0x4a,
+
99 0xf1, 0x80, 0x2e, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x01,
+
100 0x34, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
101 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
102 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
104 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
106 0x00, 0x00, 0x03, 0x2e, 0x7d, 0x00, 0x16, 0xb8, 0x02, 0x34, 0x4a, 0x0c, 0x21, 0x2e, 0x2d, 0xf5, 0xc0, 0x2e, 0x23,
+
107 0x2e, 0x7d, 0x00, 0x03, 0xbc, 0x21, 0x2e, 0x85, 0x00, 0x03, 0x2e, 0x85, 0x00, 0x40, 0xb2, 0x10, 0x30, 0x21, 0x2e,
+
108 0x19, 0x00, 0x01, 0x30, 0x05, 0x2f, 0x05, 0x2e, 0x88, 0x00, 0x80, 0x90, 0x01, 0x2f, 0x23, 0x2e, 0x6f, 0xf5, 0xc0,
+
109 0x2e, 0x21, 0x2e, 0x89, 0x00, 0x11, 0x30, 0x81, 0x08, 0x01, 0x2e, 0x6a, 0xf7, 0x71, 0x3f, 0x23, 0xbd, 0x01, 0x08,
+
110 0x02, 0x0a, 0xc0, 0x2e, 0x21, 0x2e, 0x6a, 0xf7, 0x30, 0x25, 0x00, 0x30, 0x21, 0x2e, 0x5a, 0xf5, 0x10, 0x50, 0x21,
+
111 0x2e, 0x7b, 0x00, 0x21, 0x2e, 0x78, 0x00, 0xfb, 0x7f, 0x98, 0x2e, 0xaf, 0x03, 0x40, 0x30, 0x21, 0x2e, 0x84, 0x00,
+
112 0xfb, 0x6f, 0xf0, 0x5f, 0x03, 0x25, 0x80, 0x2e, 0x9b, 0x03, 0x0b, 0x00, 0x94, 0x02, 0x14, 0x24, 0x80, 0x00, 0x04,
+
113 0x00, 0x04, 0x30, 0x08, 0xb8, 0x94, 0x02, 0xc0, 0x2e, 0x28, 0xbd, 0x02, 0x0a, 0x0d, 0x82, 0x02, 0x30, 0x12, 0x42,
+
114 0x41, 0x0e, 0xfc, 0x2f, 0xb8, 0x2e, 0x95, 0x50, 0xc0, 0x2e, 0x21, 0x2e, 0xa9, 0x01, 0x02, 0x30, 0x02, 0x2c, 0x41,
+
115 0x00, 0x12, 0x42, 0x41, 0x0e, 0xfc, 0x2f, 0xb8, 0x2e, 0x13, 0x82, 0x02, 0x30, 0x12, 0x42, 0x41, 0x0e, 0xfc, 0x2f,
+
116 0x3f, 0x80, 0xa1, 0x30, 0xc0, 0x2e, 0x01, 0x42, 0x00, 0x2e, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
117 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0xc0, 0x50, 0xe7, 0x7f,
+
118 0xf6, 0x7f, 0x26, 0x30, 0x0f, 0x2e, 0x61, 0xf5, 0x2f, 0x2e, 0x78, 0x00, 0x0f, 0x2e, 0x78, 0x00, 0xbe, 0x09, 0xa2,
+
119 0x7f, 0x80, 0x7f, 0x80, 0xb3, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0x91, 0x7f, 0x7b, 0x7f, 0x0b, 0x2f, 0x19, 0x50,
+
120 0x1a, 0x25, 0x12, 0x40, 0x42, 0x7f, 0x74, 0x82, 0x12, 0x40, 0x52, 0x7f, 0x00, 0x2e, 0x00, 0x40, 0x60, 0x7f, 0x98,
+
121 0x2e, 0x6a, 0xd6, 0x81, 0x30, 0x01, 0x2e, 0x78, 0x00, 0x01, 0x08, 0x00, 0xb2, 0x42, 0x2f, 0x03, 0x2e, 0x24, 0x02,
+
122 0x01, 0x2e, 0x24, 0x02, 0x97, 0xbc, 0x06, 0xbc, 0x9f, 0xb8, 0x0f, 0xb8, 0x00, 0x90, 0x23, 0x2e, 0x88, 0x00, 0x10,
+
123 0x30, 0x01, 0x30, 0x2a, 0x2f, 0x03, 0x2e, 0x84, 0x00, 0x44, 0xb2, 0x05, 0x2f, 0x47, 0xb2, 0x00, 0x30, 0x2d, 0x2f,
+
124 0x21, 0x2e, 0x78, 0x00, 0x2b, 0x2d, 0x03, 0x2e, 0xfd, 0xf5, 0x9e, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x14, 0x2f, 0x03,
+
125 0x2e, 0xfc, 0xf5, 0x99, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x0e, 0x2f, 0x03, 0x2e, 0x49, 0xf1, 0x1b, 0x54, 0x4a, 0x08,
+
126 0x40, 0x90, 0x08, 0x2f, 0x98, 0x2e, 0xce, 0x00, 0x00, 0xb2, 0x10, 0x30, 0x03, 0x2f, 0x50, 0x30, 0x21, 0x2e, 0x84,
+
127 0x00, 0x10, 0x2d, 0x98, 0x2e, 0x9b, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x78, 0x00, 0x0a, 0x2d, 0x05, 0x2e, 0x69, 0xf7,
+
128 0x2d, 0xbd, 0x2f, 0xb9, 0x80, 0xb2, 0x01, 0x2f, 0x21, 0x2e, 0x79, 0x00, 0x23, 0x2e, 0x78, 0x00, 0xe0, 0x31, 0x21,
+
129 0x2e, 0x61, 0xf5, 0xf6, 0x6f, 0xe7, 0x6f, 0x80, 0x6f, 0xa2, 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0x7b, 0x6f,
+
130 0x91, 0x6f, 0x40, 0x5f, 0xc8, 0x2e, 0x90, 0x50, 0xf7, 0x7f, 0xe6, 0x7f, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0xa1,
+
131 0x7f, 0x90, 0x7f, 0x82, 0x7f, 0x7b, 0x7f, 0x98, 0x2e, 0xce, 0x00, 0x00, 0xb2, 0x10, 0x30, 0x49, 0x2f, 0x05, 0x2e,
+
132 0x21, 0x02, 0x03, 0x2e, 0x2d, 0x02, 0x21, 0x56, 0x08, 0x08, 0x93, 0x08, 0x90, 0x0a, 0x25, 0x2e, 0x18, 0x00, 0x05,
+
133 0x2e, 0xc1, 0xf5, 0x2e, 0xbc, 0x05, 0x2e, 0x84, 0x00, 0x84, 0xa2, 0x0e, 0xb8, 0x31, 0x30, 0x88, 0x04, 0x03, 0x2f,
+
134 0x01, 0x2e, 0x18, 0x00, 0x00, 0xb2, 0x0c, 0x2f, 0x1d, 0x50, 0x01, 0x52, 0x98, 0x2e, 0xd7, 0x00, 0x05, 0x2e, 0x7a,
+
135 0x00, 0x80, 0x90, 0x02, 0x2f, 0x10, 0x30, 0x21, 0x2e, 0x7a, 0x00, 0x25, 0x2e, 0x9c, 0x00, 0x05, 0x2e, 0x18, 0x00,
+
136 0x80, 0xb2, 0x20, 0x2f, 0x01, 0x2e, 0xc0, 0xf5, 0xf2, 0x30, 0x02, 0x08, 0x07, 0xaa, 0x73, 0x30, 0x03, 0x2e, 0x7c,
+
137 0x00, 0x18, 0x22, 0x41, 0x1a, 0x05, 0x2f, 0x03, 0x2e, 0x66, 0xf5, 0x9f, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x0c, 0x2f,
+
138 0x1f, 0x52, 0x03, 0x30, 0x53, 0x42, 0x2b, 0x30, 0x90, 0x04, 0x5b, 0x42, 0x21, 0x2e, 0x7c, 0x00, 0x24, 0xbd, 0x7e,
+
139 0x80, 0x81, 0x84, 0x43, 0x42, 0x02, 0x42, 0x02, 0x32, 0x25, 0x2e, 0x62, 0xf5, 0x05, 0x2e, 0x86, 0x00, 0x81, 0x84,
+
140 0x25, 0x2e, 0x86, 0x00, 0x02, 0x31, 0x25, 0x2e, 0x60, 0xf5, 0x05, 0x2e, 0x25, 0x02, 0x10, 0x30, 0x90, 0x08, 0x80,
+
141 0xb2, 0x0b, 0x2f, 0x05, 0x2e, 0xca, 0xf5, 0xf0, 0x3e, 0x90, 0x08, 0x25, 0x2e, 0xca, 0xf5, 0x05, 0x2e, 0x59, 0xf5,
+
142 0xe0, 0x3f, 0x90, 0x08, 0x25, 0x2e, 0x59, 0xf5, 0x90, 0x6f, 0xa1, 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0xe6,
+
143 0x6f, 0xf7, 0x6f, 0x7b, 0x6f, 0x82, 0x6f, 0x70, 0x5f, 0xc8, 0x2e, 0x2f, 0x52, 0x90, 0x50, 0x53, 0x40, 0x4a, 0x25,
+
144 0x40, 0x40, 0x39, 0x8b, 0xfb, 0x7f, 0x0c, 0xbc, 0x21, 0x52, 0x37, 0x89, 0x0b, 0x30, 0x59, 0x08, 0x0c, 0xb8, 0xe0,
+
145 0x7f, 0x8b, 0x7f, 0x4b, 0x43, 0x0b, 0x43, 0x40, 0xb2, 0xd1, 0x7f, 0x6e, 0x2f, 0x01, 0x2e, 0x83, 0x00, 0x00, 0xb2,
+
146 0x0e, 0x2f, 0x25, 0x52, 0x01, 0x2e, 0x7e, 0x00, 0xc3, 0x7f, 0xb4, 0x7f, 0xa5, 0x7f, 0x98, 0x2e, 0xbb, 0xcc, 0x05,
+
147 0x30, 0x2b, 0x2e, 0x83, 0x00, 0xc3, 0x6f, 0xd1, 0x6f, 0xb4, 0x6f, 0xa5, 0x6f, 0x36, 0xbc, 0x06, 0xb9, 0x35, 0xbc,
+
148 0x0f, 0xb8, 0x94, 0xb0, 0xc6, 0x7f, 0x00, 0xb2, 0x0c, 0x2f, 0x27, 0x50, 0x29, 0x56, 0x0b, 0x30, 0x05, 0x2e, 0x21,
+
149 0x02, 0x2d, 0x5c, 0x1b, 0x42, 0xdb, 0x42, 0x96, 0x08, 0x25, 0x2e, 0x21, 0x02, 0x0b, 0x42, 0xcb, 0x42, 0x00, 0x2e,
+
150 0x31, 0x56, 0xcb, 0x08, 0x25, 0x52, 0x01, 0x2e, 0x7e, 0x00, 0x01, 0x54, 0x2b, 0x5c, 0x98, 0x2e, 0x06, 0xcd, 0xd2,
+
151 0x6f, 0x27, 0x5a, 0x94, 0x6f, 0xa4, 0xbc, 0x53, 0x41, 0x00, 0xb3, 0x1f, 0xb8, 0x44, 0x41, 0x01, 0x30, 0xd5, 0x7f,
+
152 0x05, 0x2f, 0x00, 0xb2, 0x03, 0x2f, 0x29, 0x5c, 0x11, 0x30, 0x93, 0x43, 0x84, 0x43, 0x23, 0xbd, 0x2f, 0xb9, 0x80,
+
153 0xb2, 0x1c, 0x2f, 0x72, 0x6f, 0xda, 0x00, 0x82, 0x6f, 0x22, 0x03, 0x44, 0x43, 0x00, 0x90, 0x27, 0x2e, 0x7f, 0x00,
+
154 0x29, 0x5a, 0x12, 0x2f, 0x29, 0x54, 0x00, 0x2e, 0x90, 0x40, 0x82, 0x40, 0x18, 0x04, 0xa2, 0x06, 0x80, 0xaa, 0x04,
+
155 0x2f, 0x80, 0x90, 0x08, 0x2f, 0xc2, 0x6f, 0x50, 0x0f, 0x05, 0x2f, 0xc0, 0x6f, 0x00, 0xb2, 0x02, 0x2f, 0x53, 0x43,
+
156 0x44, 0x43, 0x11, 0x30, 0xe0, 0x6f, 0x98, 0x2e, 0x95, 0xcf, 0xd1, 0x6f, 0x15, 0x5a, 0x09, 0x2e, 0x7f, 0x00, 0x41,
+
157 0x40, 0x54, 0x43, 0x08, 0x2c, 0x41, 0x43, 0x15, 0x30, 0x2b, 0x2e, 0x83, 0x00, 0x01, 0x30, 0xe0, 0x6f, 0x98, 0x2e,
+
158 0x95, 0xcf, 0x00, 0x2e, 0xfb, 0x6f, 0x70, 0x5f, 0xb8, 0x2e, 0x50, 0x86, 0xcd, 0x88, 0x34, 0x85, 0xc5, 0x40, 0x91,
+
159 0x40, 0x8c, 0x80, 0x06, 0x41, 0x13, 0x40, 0x50, 0x50, 0x6e, 0x01, 0x82, 0x40, 0x04, 0x40, 0x34, 0x8c, 0xfb, 0x7f,
+
160 0x98, 0x2e, 0xce, 0x03, 0xe0, 0x7f, 0x00, 0x2e, 0x91, 0x41, 0x8c, 0x81, 0x82, 0x41, 0x13, 0x40, 0x04, 0x40, 0x34,
+
161 0x8e, 0x98, 0x2e, 0xce, 0x03, 0xc0, 0x7f, 0xd5, 0x7f, 0x13, 0x24, 0xff, 0x00, 0xd6, 0x41, 0xcc, 0x83, 0xc2, 0x41,
+
162 0x57, 0x40, 0x74, 0x80, 0x44, 0x40, 0x11, 0x40, 0x0c, 0x8a, 0xf7, 0x01, 0x94, 0x03, 0x12, 0x24, 0x80, 0x00, 0x3a,
+
163 0x01, 0x02, 0x30, 0xb2, 0x03, 0xce, 0x17, 0xfb, 0x08, 0x23, 0x01, 0xb2, 0x02, 0x48, 0xbb, 0x28, 0xbd, 0xf2, 0x0b,
+
164 0x53, 0x41, 0x02, 0x40, 0x44, 0x41, 0x74, 0x8d, 0xb7, 0x7f, 0x98, 0x2e, 0xce, 0x03, 0x50, 0x25, 0x91, 0x41, 0x8c,
+
165 0x81, 0x82, 0x41, 0x13, 0x40, 0x04, 0x40, 0x34, 0x8e, 0x98, 0x2e, 0xce, 0x03, 0x60, 0x25, 0xd1, 0x41, 0xcc, 0x81,
+
166 0xc2, 0x41, 0x13, 0x40, 0x04, 0x40, 0x98, 0x2e, 0xce, 0x03, 0x11, 0x24, 0xb3, 0x00, 0x71, 0x0e, 0xd3, 0x6f, 0xe1,
+
167 0x6f, 0x33, 0x2f, 0x12, 0x24, 0xdd, 0x00, 0xda, 0x0f, 0x2b, 0x2f, 0x12, 0x24, 0x8c, 0x00, 0x5a, 0x0e, 0x09, 0x2f,
+
168 0x10, 0x24, 0x83, 0x05, 0x48, 0x0e, 0x11, 0x24, 0x7f, 0x22, 0x10, 0x24, 0x18, 0x32, 0x08, 0x22, 0x80, 0x2e, 0xd7,
+
169 0xb4, 0x13, 0x24, 0xf4, 0x00, 0x73, 0x0e, 0x0f, 0x2f, 0x10, 0x24, 0x11, 0x10, 0x68, 0x0e, 0x10, 0x24, 0xa2, 0x30,
+
170 0x13, 0x24, 0x97, 0x23, 0x03, 0x22, 0x13, 0x24, 0x3b, 0x04, 0x4b, 0x0e, 0x11, 0x24, 0x0f, 0x30, 0x01, 0x22, 0x80,
+
171 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x53, 0x02, 0x41, 0x0e, 0x11, 0x24, 0xe7, 0x31, 0x10, 0x24, 0xfc, 0x25, 0x08, 0x22,
+
172 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xe8, 0x40, 0x80, 0x2e, 0xd7, 0xb4, 0xf2, 0x37, 0x5a, 0x0e, 0x90, 0x2e, 0x50,
+
173 0xb3, 0x12, 0x24, 0xea, 0x00, 0x4a, 0x0e, 0x90, 0x2e, 0xc7, 0xb2, 0xc2, 0x6f, 0x14, 0x24, 0x4c, 0x0b, 0x54, 0x0e,
+
174 0x90, 0x2e, 0xab, 0xb2, 0x14, 0x24, 0x9b, 0x00, 0x5c, 0x0e, 0x90, 0x2e, 0xa1, 0xb2, 0x14, 0x24, 0x22, 0x01, 0x4c,
+
175 0x0e, 0x70, 0x2f, 0x82, 0xa3, 0x5e, 0x2f, 0x11, 0x24, 0xba, 0x0b, 0x51, 0x0e, 0x35, 0x2f, 0x11, 0x24, 0x03, 0x08,
+
176 0x69, 0x0e, 0x2d, 0x2f, 0xb1, 0x6f, 0x14, 0x24, 0x90, 0x00, 0x0c, 0x0e, 0x24, 0x2f, 0x11, 0x24, 0x31, 0x08, 0x69,
+
177 0x0e, 0x16, 0x2f, 0x11, 0x24, 0x7d, 0x01, 0x59, 0x0e, 0x0e, 0x2f, 0x11, 0x24, 0xd7, 0x0c, 0x51, 0x0e, 0x11, 0x24,
+
178 0x9f, 0x44, 0x13, 0x24, 0x41, 0x57, 0x4b, 0x22, 0x93, 0x35, 0x43, 0x0e, 0x10, 0x24, 0xbd, 0x42, 0x08, 0x22, 0x80,
+
179 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x1c, 0x42, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x47, 0x01, 0x59, 0x0e, 0x11, 0x24,
+
180 0xa2, 0x45, 0x10, 0x24, 0x31, 0x51, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x80, 0x41, 0x80, 0x2e, 0xd7,
+
181 0xb4, 0x10, 0x24, 0x67, 0x54, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x8c, 0x08, 0xe9, 0x0f, 0x10, 0x24, 0x0a, 0x48,
+
182 0x90, 0x2e, 0xd7, 0xb4, 0xb1, 0x6f, 0x13, 0x24, 0xe8, 0x03, 0x8b, 0x0f, 0x10, 0x24, 0xcd, 0x57, 0x90, 0x2e, 0xd7,
+
183 0xb4, 0x73, 0x35, 0x8b, 0x0f, 0x10, 0x24, 0x6f, 0x42, 0x90, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa0, 0xfe, 0x08, 0x0e,
+
184 0x10, 0x24, 0x38, 0x54, 0x13, 0x24, 0xa3, 0x46, 0x03, 0x22, 0x13, 0x24, 0x45, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0x04,
+
185 0x43, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xb1, 0x6f, 0x00, 0x3a, 0x08, 0x0e, 0x11, 0x24, 0x3d, 0x45, 0x10, 0x24,
+
186 0x52, 0x54, 0x48, 0x22, 0x10, 0x24, 0x8f, 0x01, 0x58, 0x0e, 0x10, 0x24, 0x48, 0x44, 0x01, 0x22, 0x80, 0x2e, 0xd7,
+
187 0xb4, 0xb1, 0x6f, 0x13, 0x24, 0xfa, 0x03, 0x0b, 0x0e, 0x11, 0x24, 0x85, 0x43, 0x13, 0x24, 0x35, 0x55, 0x4b, 0x22,
+
188 0x11, 0xa2, 0x10, 0x24, 0xf6, 0x57, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xa4, 0x0a, 0x69, 0x0e, 0x11,
+
189 0x24, 0x7b, 0x5a, 0x10, 0x24, 0x5e, 0x20, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x0f, 0x01, 0x59, 0x0e,
+
190 0x0d, 0x2f, 0x18, 0xa2, 0x11, 0x24, 0x2b, 0x47, 0x10, 0x24, 0xf4, 0x55, 0x48, 0x22, 0x10, 0x24, 0x16, 0x0b, 0x50,
+
191 0x0e, 0x10, 0x24, 0xc7, 0x51, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x72, 0x0a, 0x51, 0x0e, 0x11, 0x24,
+
192 0x85, 0x55, 0x10, 0x24, 0xb2, 0x47, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x83, 0x00, 0x48, 0x0e, 0x53,
+
193 0x2f, 0x11, 0x24, 0xe1, 0x07, 0x69, 0x0e, 0x2d, 0x2f, 0x95, 0xaf, 0x27, 0x2f, 0x82, 0xaf, 0x21, 0x2f, 0x11, 0x24,
+
194 0xd7, 0x00, 0x59, 0x0e, 0x19, 0x2f, 0xb1, 0x6f, 0x10, 0x24, 0xcc, 0x03, 0x88, 0x0f, 0x10, 0x2f, 0x10, 0x24, 0xe8,
+
195 0xfe, 0x08, 0x0e, 0x11, 0x24, 0x7e, 0x56, 0x10, 0x24, 0x94, 0x45, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0x06, 0x0b,
+
196 0x43, 0x0e, 0x10, 0x24, 0x2f, 0x51, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xde, 0x51, 0x80, 0x2e, 0xd7,
+
197 0xb4, 0x10, 0x24, 0xe8, 0x54, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa4, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24,
+
198 0xd0, 0x44, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xb8, 0x00, 0xd9, 0x0f, 0x19, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xe7,
+
199 0x0c, 0xc8, 0x0f, 0x10, 0x2f, 0x11, 0x24, 0xc7, 0x07, 0x69, 0x0e, 0x11, 0x24, 0xf6, 0x52, 0x10, 0x24, 0x7a, 0x12,
+
200 0x48, 0x22, 0xb0, 0x6f, 0x13, 0x24, 0x5d, 0x02, 0x03, 0x0e, 0x10, 0x24, 0x7c, 0x54, 0x01, 0x22, 0x80, 0x2e, 0xd7,
+
201 0xb4, 0x10, 0x24, 0x8d, 0x51, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x28, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24,
+
202 0xd2, 0x07, 0xe8, 0x0f, 0x28, 0x2f, 0x10, 0x24, 0xb0, 0x00, 0xd8, 0x0f, 0x20, 0x2f, 0x10, 0x24, 0xc6, 0x07, 0x68,
+
203 0x0e, 0x18, 0x2f, 0x50, 0x35, 0x48, 0x0e, 0x11, 0x2f, 0xb1, 0x6f, 0x10, 0x24, 0xf4, 0x01, 0x08, 0x0e, 0x11, 0x24,
+
204 0x35, 0x51, 0x10, 0x24, 0x22, 0x12, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0xe0, 0x0c, 0x43, 0x0e, 0x10, 0x24, 0x7b,
+
205 0x50, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x81, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x3b, 0x53,
+
206 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x63, 0x51, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x27, 0x51, 0x80, 0x2e, 0xd7,
+
207 0xb4, 0x18, 0xa2, 0x90, 0x2e, 0xdb, 0xb3, 0x12, 0x24, 0x08, 0x02, 0x4a, 0x0e, 0x37, 0x2f, 0x12, 0x24, 0x2a, 0x09,
+
208 0x6a, 0x0e, 0x1d, 0x2f, 0x13, 0x24, 0x8e, 0x00, 0x73, 0x0e, 0x09, 0x2f, 0x11, 0x24, 0xa5, 0x01, 0x41, 0x0e, 0x11,
+
209 0x24, 0x76, 0x32, 0x10, 0x24, 0x12, 0x25, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa9, 0x0d, 0x68, 0x0e,
+
210 0x10, 0x24, 0x04, 0x27, 0x13, 0x24, 0x73, 0x20, 0x03, 0x22, 0x13, 0x24, 0x14, 0x04, 0x4b, 0x0e, 0x11, 0x24, 0x15,
+
211 0x2c, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xae, 0x08, 0x69, 0x0e, 0x08, 0x2f, 0xa1, 0x35, 0x71, 0x0e,
+
212 0x11, 0x24, 0x8b, 0x2b, 0x10, 0x24, 0x07, 0x35, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x91, 0x34, 0x59, 0x0e, 0x11,
+
213 0x24, 0x7b, 0x19, 0x10, 0x24, 0x50, 0x59, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x62, 0x32, 0x42, 0x0e, 0x22, 0x2f,
+
214 0xa2, 0x32, 0x5a, 0x0e, 0x1b, 0x2f, 0x12, 0x24, 0x0b, 0x08, 0x6a, 0x0e, 0x0e, 0x2f, 0xa3, 0x34, 0x43, 0x0e, 0x10,
+
215 0x24, 0x28, 0x2b, 0x13, 0x24, 0x20, 0x23, 0x03, 0x22, 0x13, 0x24, 0x8d, 0x01, 0x4b, 0x0e, 0x11, 0x24, 0x5c, 0x21,
+
216 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x31, 0x36, 0x59, 0x0e, 0x11, 0x24, 0x43, 0x25, 0x10, 0x24, 0xfa, 0x49, 0x08,
+
217 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xc7, 0x2a, 0x80, 0x2e, 0xd7, 0xb4, 0x40, 0x36, 0x58, 0x0e, 0x09, 0x2f,
+
218 0x11, 0x24, 0x9e, 0x08, 0x69, 0x0e, 0x11, 0x24, 0xe3, 0x54, 0x10, 0x24, 0x73, 0x22, 0x08, 0x22, 0x80, 0x2e, 0xd7,
+
219 0xb4, 0x10, 0x24, 0x38, 0x01, 0xc8, 0x0f, 0x10, 0x2f, 0x11, 0x24, 0x11, 0x08, 0x69, 0x0e, 0x11, 0x24, 0x6e, 0x48,
+
220 0x10, 0x24, 0x2b, 0x28, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0xc1, 0x0a, 0x43, 0x0e, 0x10, 0x24, 0x0f, 0x23, 0x08,
+
221 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xd0, 0x1a, 0x80, 0x2e, 0xd7, 0xb4, 0xe2, 0x33, 0x5a, 0x0e, 0x77, 0x2f,
+
222 0x12, 0x24, 0x0c, 0x08, 0x6a, 0x0e, 0x2a, 0x2f, 0x12, 0x24, 0xc5, 0x00, 0x4a, 0x0e, 0x08, 0x2f, 0x11, 0x36, 0x59,
+
223 0x0e, 0x11, 0x24, 0xfd, 0x18, 0x10, 0x24, 0x75, 0x58, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xc2, 0x34, 0x5a, 0x0e,
+
224 0x0d, 0x2f, 0x11, 0x24, 0x36, 0x08, 0x69, 0x0e, 0x11, 0x24, 0x08, 0x58, 0x13, 0x24, 0x3b, 0x54, 0x4b, 0x22, 0x01,
+
225 0xa2, 0x10, 0x24, 0xc6, 0x52, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xb3, 0x36, 0x4b, 0x0e, 0x11, 0x24, 0x0e, 0x24,
+
226 0x13, 0x24, 0x7b, 0x50, 0x59, 0x22, 0x0e, 0xa2, 0x10, 0x24, 0xf7, 0x56, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xc2,
+
227 0x35, 0x5a, 0x0e, 0x12, 0x2f, 0x01, 0xa2, 0x0c, 0x2f, 0x84, 0xa3, 0x10, 0x24, 0xd4, 0x58, 0x13, 0x24, 0x76, 0x56,
+
228 0x03, 0x22, 0x73, 0x36, 0x4b, 0x0e, 0x11, 0x24, 0xeb, 0x52, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x87,
+
229 0x16, 0x80, 0x2e, 0xd7, 0xb4, 0xb0, 0x6f, 0x13, 0x24, 0x02, 0xfd, 0x03, 0x0e, 0x29, 0x2f, 0x84, 0xa3, 0xc0, 0x6f,
+
230 0x09, 0x2f, 0x11, 0x24, 0xe4, 0x0a, 0x41, 0x0e, 0x11, 0x24, 0x5d, 0x44, 0x10, 0x24, 0x2f, 0x5a, 0x08, 0x22, 0x80,
+
231 0x2e, 0xd7, 0xb4, 0x13, 0x24, 0x96, 0x0c, 0x43, 0x0e, 0x0e, 0x2f, 0x40, 0x33, 0x48, 0x0e, 0x10, 0x24, 0xf2, 0x18,
+
232 0x13, 0x24, 0x31, 0x49, 0x03, 0x22, 0x13, 0x24, 0x99, 0x00, 0x4b, 0x0e, 0x11, 0x24, 0xab, 0x18, 0x01, 0x22, 0x80,
+
233 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xc6, 0x07, 0x69, 0x0e, 0x11, 0x24, 0xb0, 0x49, 0x10, 0x24, 0xbf, 0x17, 0x08, 0x22,
+
234 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x03, 0x15, 0x80, 0x2e, 0xd7, 0xb4, 0xb0, 0x32, 0x48, 0x0e, 0x57, 0x2f, 0xa0,
+
235 0x37, 0x48, 0x0e, 0x13, 0x2f, 0x83, 0xa3, 0x08, 0x2f, 0x10, 0x24, 0xe0, 0x00, 0x48, 0x0e, 0x11, 0x24, 0xf6, 0x25,
+
236 0x10, 0x24, 0x75, 0x17, 0x71, 0x2c, 0x08, 0x22, 0x10, 0x24, 0xa0, 0x00, 0x48, 0x0e, 0x11, 0x24, 0x7f, 0x18, 0x10,
+
237 0x24, 0xa6, 0x13, 0x68, 0x2c, 0x08, 0x22, 0x11, 0x24, 0xf9, 0x07, 0x69, 0x0e, 0x0d, 0x2f, 0x11, 0x24, 0x10, 0x08,
+
238 0x69, 0x0e, 0x11, 0x24, 0xb1, 0x14, 0x10, 0x24, 0x8e, 0x58, 0x48, 0x22, 0x90, 0x32, 0x58, 0x0e, 0x10, 0x24, 0x6d,
+
239 0x14, 0x56, 0x2c, 0x01, 0x22, 0xc1, 0x6f, 0x10, 0x24, 0x68, 0x0c, 0x48, 0x0e, 0xb1, 0x6f, 0x0c, 0x2f, 0xcd, 0xa2,
+
240 0x10, 0x24, 0x23, 0x14, 0x13, 0x24, 0x8d, 0x42, 0x03, 0x22, 0x13, 0x24, 0x2a, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0x53,
+
241 0x12, 0x43, 0x2c, 0x08, 0x22, 0x10, 0x24, 0xcc, 0x07, 0x68, 0x0e, 0x0e, 0x2f, 0x10, 0x24, 0x08, 0xfd, 0x08, 0x0e,
+
242 0x10, 0x24, 0x08, 0x16, 0x13, 0x24, 0x83, 0x45, 0x03, 0x22, 0x13, 0x24, 0xa1, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0xa6,
+
243 0x14, 0x30, 0x2c, 0x01, 0x22, 0x10, 0x24, 0x5b, 0x01, 0x08, 0x0e, 0x11, 0x24, 0x2f, 0x12, 0x10, 0x24, 0xdd, 0x44,
+
244 0x27, 0x2c, 0x08, 0x22, 0xdb, 0xa2, 0x0f, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xb2, 0x0b, 0x48, 0x0e, 0x11, 0x24, 0x21,
+
245 0x55, 0x10, 0x24, 0xc8, 0x14, 0x48, 0x22, 0x10, 0x24, 0x4c, 0x08, 0x68, 0x0e, 0x10, 0x24, 0xe4, 0x57, 0x15, 0x2c,
+
246 0x01, 0x22, 0x44, 0xa2, 0x0f, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xcb, 0x0b, 0x48, 0x0e, 0x11, 0x24, 0x09, 0x58, 0x10,
+
247 0x24, 0xe4, 0x10, 0x48, 0x22, 0x10, 0x24, 0x4d, 0x08, 0x68, 0x0e, 0x10, 0x24, 0x1a, 0x12, 0x03, 0x2c, 0x01, 0x22,
+
248 0x10, 0x24, 0x0c, 0x10, 0xfb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0xa3, 0x32, 0xc3, 0x00, 0x60, 0x51, 0xc2, 0x40, 0x81,
+
249 0x84, 0xd3, 0x7f, 0xd2, 0x42, 0xe0, 0x7f, 0x00, 0x30, 0xc4, 0x40, 0x20, 0x02, 0xc3, 0x7f, 0xd0, 0x42, 0x42, 0x3d,
+
250 0xc0, 0x40, 0x01, 0x80, 0xc0, 0x42, 0xda, 0x00, 0x93, 0x7f, 0xb1, 0x7f, 0xab, 0x7f, 0x98, 0x2e, 0xb3, 0xc0, 0x91,
+
251 0x6f, 0xf3, 0x32, 0x40, 0x42, 0x00, 0xac, 0x8b, 0x00, 0x02, 0x2f, 0xe1, 0x6f, 0x39, 0x56, 0x43, 0x42, 0xa1, 0x82,
+
252 0x91, 0x7f, 0x33, 0x33, 0x4b, 0x00, 0x81, 0x7f, 0x13, 0x3c, 0x4b, 0x00, 0x80, 0x40, 0x53, 0x34, 0xb5, 0x6f, 0x8b,
+
253 0x00, 0x0d, 0xb0, 0x43, 0x87, 0x76, 0x7f, 0xb2, 0x7f, 0x63, 0x7f, 0x65, 0x25, 0xb5, 0x6f, 0x92, 0x41, 0x63, 0x41,
+
254 0x64, 0x41, 0x44, 0x81, 0x56, 0x7f, 0x41, 0x7f, 0x00, 0x2e, 0x26, 0x40, 0x27, 0x40, 0x45, 0x41, 0xf7, 0x7f, 0xb0,
+
255 0x7f, 0x98, 0x2e, 0x67, 0xcc, 0x81, 0x6f, 0x0f, 0xa4, 0x43, 0x40, 0x72, 0x6f, 0x94, 0x6f, 0x05, 0x30, 0x01, 0x2f,
+
256 0xc0, 0xa0, 0x03, 0x2f, 0x31, 0xac, 0x07, 0x2f, 0xc0, 0xa4, 0x05, 0x2f, 0xa2, 0x00, 0xeb, 0x04, 0x80, 0x40, 0x01,
+
257 0x80, 0x43, 0x42, 0x80, 0x42, 0x41, 0x86, 0x56, 0x6f, 0x62, 0x6f, 0x41, 0x6f, 0x42, 0x82, 0x72, 0x0e, 0x83, 0x7f,
+
258 0xd5, 0x2f, 0x53, 0x32, 0x8b, 0x00, 0xa1, 0x86, 0x56, 0x25, 0xf0, 0x82, 0x82, 0x40, 0x8d, 0xb0, 0x52, 0x40, 0xde,
+
259 0x00, 0x91, 0x7f, 0xb3, 0x7f, 0x85, 0x7f, 0xb3, 0x30, 0x7b, 0x52, 0x98, 0x2e, 0x5a, 0xca, 0x1a, 0x25, 0x83, 0x6f,
+
260 0x6d, 0x82, 0xfd, 0x88, 0x50, 0x7f, 0x71, 0x7f, 0x81, 0x7f, 0x05, 0x30, 0x83, 0x30, 0x00, 0x30, 0x11, 0x41, 0x52,
+
261 0x6f, 0x25, 0x7f, 0x30, 0x7f, 0x44, 0x7f, 0x98, 0x2e, 0x0f, 0xca, 0x73, 0x6f, 0x20, 0x25, 0x90, 0x6f, 0x7d, 0x52,
+
262 0xd2, 0x42, 0x73, 0x7f, 0x12, 0x7f, 0x98, 0x2e, 0x86, 0xb7, 0x93, 0x6f, 0x11, 0x6f, 0xd2, 0x40, 0x0a, 0x18, 0x31,
+
263 0x6f, 0x0e, 0x00, 0x93, 0x7f, 0x83, 0x30, 0x44, 0x6f, 0x21, 0x6f, 0x62, 0x6f, 0x62, 0x0e, 0x4f, 0x03, 0xe1, 0x2f,
+
264 0x33, 0x52, 0x01, 0x00, 0x01, 0x30, 0x69, 0x03, 0x3a, 0x25, 0xea, 0x82, 0x92, 0x6f, 0xf0, 0x86, 0xd1, 0xbe, 0x0f,
+
265 0xb8, 0xbd, 0x84, 0x94, 0x7f, 0x05, 0x0a, 0x23, 0x7f, 0x52, 0x7f, 0x40, 0x7f, 0x31, 0x7f, 0x71, 0x7f, 0xd3, 0x30,
+
266 0x84, 0x6f, 0x55, 0x6f, 0x10, 0x41, 0x52, 0x41, 0x41, 0x6f, 0x55, 0x7f, 0x10, 0x7f, 0x04, 0x7f, 0x98, 0x2e, 0x0f,
+
267 0xca, 0x11, 0x6f, 0x20, 0x25, 0x98, 0x2e, 0xfe, 0xc9, 0x31, 0x6f, 0x04, 0x6f, 0x50, 0x42, 0x31, 0x7f, 0xd3, 0x30,
+
268 0x21, 0x6f, 0x61, 0x0e, 0xea, 0x2f, 0xb1, 0x6f, 0x41, 0x84, 0x32, 0x25, 0x90, 0x40, 0x84, 0x40, 0x71, 0x6f, 0xb4,
+
269 0x7f, 0x72, 0x7f, 0x40, 0x7f, 0x33, 0x7f, 0x98, 0x2e, 0xb3, 0xc0, 0x53, 0x6f, 0xb1, 0x32, 0x99, 0x00, 0x83, 0xb9,
+
270 0x41, 0x6f, 0x4b, 0x00, 0xb0, 0x6f, 0x03, 0x30, 0xc3, 0x02, 0x84, 0x40, 0xb2, 0x7f, 0xa1, 0x84, 0x0d, 0xb1, 0x52,
+
271 0x7f, 0x56, 0x01, 0x74, 0x6f, 0x30, 0x6f, 0x92, 0x6f, 0x43, 0x8b, 0x03, 0x43, 0x01, 0x42, 0x95, 0x7f, 0xbd, 0x86,
+
272 0x51, 0x41, 0x41, 0x7f, 0x75, 0x7f, 0x00, 0x2e, 0xd1, 0x40, 0x42, 0x41, 0x32, 0x7f, 0x23, 0x7f, 0x98, 0x2e, 0x74,
+
273 0xc0, 0x41, 0x6f, 0xc8, 0x00, 0x90, 0x6f, 0x01, 0x30, 0x75, 0x6f, 0x32, 0x6f, 0x03, 0x42, 0x91, 0x02, 0x23, 0x6f,
+
274 0x61, 0x6f, 0x59, 0x0e, 0x62, 0x43, 0x95, 0x7f, 0xe7, 0x2f, 0xb2, 0x6f, 0x51, 0x6f, 0x82, 0x40, 0x8d, 0xb0, 0x8e,
+
275 0x00, 0xfd, 0x8a, 0xb2, 0x7f, 0x02, 0x30, 0x79, 0x52, 0x05, 0x25, 0x03, 0x30, 0x54, 0x40, 0xec, 0x01, 0x16, 0x40,
+
276 0x43, 0x89, 0xc7, 0x41, 0x37, 0x18, 0x3d, 0x8b, 0x96, 0x00, 0x44, 0x0e, 0xdf, 0x02, 0xf4, 0x2f, 0x09, 0x52, 0x51,
+
277 0x00, 0x02, 0x30, 0x9a, 0x02, 0xb5, 0x6f, 0x45, 0x87, 0x1b, 0xba, 0x25, 0xbc, 0x51, 0x6f, 0x4d, 0x8b, 0x7a, 0x82,
+
278 0xc6, 0x40, 0x20, 0x0a, 0x30, 0x00, 0xd0, 0x42, 0x2b, 0xb5, 0xc0, 0x40, 0x82, 0x02, 0x40, 0x34, 0x08, 0x00, 0xd2,
+
279 0x42, 0xb0, 0x7f, 0x75, 0x7f, 0x93, 0x7f, 0x00, 0x2e, 0xb5, 0x6f, 0xe2, 0x6f, 0x63, 0x41, 0x64, 0x41, 0x44, 0x8f,
+
280 0x82, 0x40, 0xe6, 0x41, 0xc0, 0x41, 0xc4, 0x8f, 0x45, 0x41, 0xf0, 0x7f, 0xb7, 0x7f, 0x61, 0x7f, 0x98, 0x2e, 0x67,
+
281 0xcc, 0x00, 0x18, 0x09, 0x52, 0x71, 0x00, 0x03, 0x30, 0xbb, 0x02, 0x1b, 0xba, 0x93, 0x6f, 0x25, 0xbc, 0x61, 0x6f,
+
282 0xc5, 0x40, 0x42, 0x82, 0x20, 0x0a, 0x28, 0x00, 0xd0, 0x42, 0x2b, 0xb9, 0xc0, 0x40, 0x82, 0x02, 0xd2, 0x42, 0x93,
+
283 0x7f, 0x00, 0x2e, 0x72, 0x6f, 0x5a, 0x0e, 0xd9, 0x2f, 0xb1, 0x6f, 0xf3, 0x3c, 0xcb, 0x00, 0xda, 0x82, 0xc3, 0x40,
+
284 0x41, 0x40, 0x59, 0x0e, 0x50, 0x2f, 0xe1, 0x6f, 0xe3, 0x32, 0xcb, 0x00, 0xb3, 0x7f, 0x22, 0x30, 0xc0, 0x40, 0x01,
+
285 0x80, 0xc0, 0x42, 0x02, 0xa2, 0x30, 0x2f, 0xc2, 0x42, 0x98, 0x2e, 0x83, 0xb1, 0xe1, 0x6f, 0xb3, 0x35, 0xcb, 0x00,
+
286 0x24, 0x3d, 0xc2, 0x40, 0xdc, 0x00, 0x84, 0x40, 0x00, 0x91, 0x93, 0x7f, 0x02, 0x2f, 0x00, 0x2e, 0x06, 0x2c, 0x0c,
+
287 0xb8, 0x30, 0x25, 0x00, 0x33, 0x48, 0x00, 0x98, 0x2e, 0xf6, 0xb6, 0x91, 0x6f, 0x90, 0x7f, 0x00, 0x2e, 0x44, 0x40,
+
288 0x20, 0x1a, 0x15, 0x2f, 0xd3, 0x6f, 0xc1, 0x6f, 0xc3, 0x40, 0x35, 0x5a, 0x42, 0x40, 0xd3, 0x7e, 0x08, 0xbc, 0x25,
+
289 0x09, 0xe2, 0x7e, 0xc4, 0x0a, 0x42, 0x82, 0xf3, 0x7e, 0xd1, 0x7f, 0x34, 0x30, 0x83, 0x6f, 0x82, 0x30, 0x31, 0x30,
+
290 0x98, 0x2e, 0xb3, 0x00, 0xd1, 0x6f, 0x93, 0x6f, 0x43, 0x42, 0xf0, 0x32, 0xb1, 0x6f, 0x41, 0x82, 0xe2, 0x6f, 0x43,
+
291 0x40, 0xc1, 0x86, 0xc2, 0xa2, 0x43, 0x42, 0x03, 0x30, 0x02, 0x2f, 0x90, 0x00, 0x00, 0x2e, 0x83, 0x42, 0x61, 0x88,
+
292 0x42, 0x40, 0x8d, 0xb0, 0x26, 0x00, 0x98, 0x2e, 0xd9, 0x03, 0x1c, 0x83, 0x00, 0x2e, 0x43, 0x42, 0x00, 0x2e, 0xab,
+
293 0x6f, 0xa0, 0x5e, 0xb8, 0x2e, 0xb1, 0x35, 0x40, 0x51, 0x41, 0x01, 0x02, 0x30, 0x1a, 0x25, 0x13, 0x30, 0x40, 0x25,
+
294 0x12, 0x42, 0x45, 0x0e, 0xfc, 0x2f, 0x65, 0x34, 0x28, 0x80, 0x25, 0x01, 0x13, 0x42, 0x44, 0x0e, 0xfc, 0x2f, 0x27,
+
295 0x80, 0x65, 0x56, 0x03, 0x42, 0x15, 0x80, 0xa3, 0x30, 0x03, 0x42, 0x04, 0x80, 0x4d, 0x56, 0x7f, 0x58, 0x13, 0x42,
+
296 0xd4, 0x7e, 0xc2, 0x7e, 0xf2, 0x7e, 0x6c, 0x8c, 0x81, 0x56, 0x83, 0x58, 0xe3, 0x7e, 0x04, 0x7f, 0x71, 0x8a, 0x97,
+
297 0x41, 0x17, 0x42, 0x75, 0x0e, 0xfb, 0x2f, 0x85, 0x5c, 0x87, 0x5e, 0x16, 0x7f, 0x36, 0x7f, 0x27, 0x7f, 0x00, 0x2e,
+
298 0x89, 0x5c, 0x8b, 0x5e, 0x46, 0x7f, 0x57, 0x7f, 0x76, 0x8c, 0x57, 0x41, 0x17, 0x42, 0x6e, 0x0e, 0xfb, 0x2f, 0x8d,
+
299 0x5a, 0x8f, 0x5e, 0x65, 0x7f, 0x87, 0x7f, 0x72, 0x7f, 0x00, 0x2e, 0x91, 0x5a, 0x93, 0x5e, 0x95, 0x7f, 0xa7, 0x7f,
+
300 0x7b, 0x8a, 0x97, 0x41, 0x17, 0x42, 0x75, 0x0e, 0xfb, 0x2f, 0x7f, 0x5c, 0xb2, 0x7f, 0xc6, 0x7f, 0xd3, 0x7f, 0xe2,
+
301 0x7f, 0xf4, 0x7f, 0x40, 0x82, 0x52, 0x41, 0x12, 0x42, 0x69, 0x0e, 0xfb, 0x2f, 0xc0, 0x5e, 0xb8, 0x2e, 0x03, 0x2e,
+
302 0x2d, 0x02, 0x9f, 0xbc, 0x9f, 0xb8, 0x20, 0x50, 0x40, 0xb2, 0x14, 0x2f, 0x10, 0x25, 0x01, 0x2e, 0x8d, 0x00, 0x00,
+
303 0x90, 0x0b, 0x2f, 0x97, 0x50, 0xf1, 0x7f, 0xeb, 0x7f, 0x98, 0x2e, 0x83, 0xb6, 0x01, 0x2e, 0x8d, 0x00, 0x01, 0x80,
+
304 0x21, 0x2e, 0x8d, 0x00, 0xf1, 0x6f, 0xeb, 0x6f, 0xe0, 0x5f, 0x97, 0x50, 0x80, 0x2e, 0xda, 0xb4, 0x00, 0x30, 0x21,
+
305 0x2e, 0x8d, 0x00, 0xe0, 0x5f, 0xb8, 0x2e, 0x41, 0x25, 0x42, 0x8a, 0x50, 0x50, 0x99, 0x52, 0x81, 0x80, 0x99, 0x09,
+
306 0xf5, 0x7f, 0x52, 0x25, 0x07, 0x52, 0x03, 0x8e, 0xd9, 0x08, 0x02, 0x40, 0x03, 0x81, 0x44, 0x83, 0x6c, 0xbb, 0xda,
+
307 0x0e, 0xe7, 0x7f, 0xdb, 0x7f, 0x20, 0x2f, 0x02, 0x41, 0x32, 0x1a, 0x1d, 0x2f, 0x42, 0x85, 0x00, 0x2e, 0x82, 0x40,
+
308 0xda, 0x0e, 0x03, 0x30, 0x05, 0x2f, 0xf1, 0x6f, 0x06, 0x30, 0x42, 0x40, 0x81, 0x84, 0x18, 0x2c, 0x42, 0x42, 0xbf,
+
309 0x85, 0x82, 0x00, 0x41, 0x40, 0x86, 0x40, 0x81, 0x8d, 0x86, 0x42, 0x20, 0x25, 0x13, 0x30, 0x06, 0x30, 0x97, 0x40,
+
310 0x81, 0x8d, 0xf9, 0x0f, 0x09, 0x2f, 0x85, 0xa3, 0xf9, 0x2f, 0x03, 0x30, 0x06, 0x2c, 0x06, 0x30, 0x9b, 0x52, 0xd9,
+
311 0x0e, 0x13, 0x30, 0x01, 0x30, 0xd9, 0x22, 0xc0, 0xb2, 0x12, 0x83, 0xc1, 0x7f, 0x03, 0x30, 0xb4, 0x7f, 0x06, 0x2f,
+
312 0x51, 0x30, 0x70, 0x25, 0x98, 0x2e, 0xe3, 0x03, 0xff, 0x81, 0x00, 0x2e, 0x03, 0x42, 0x43, 0x8b, 0xe0, 0x6f, 0xf1,
+
313 0x6f, 0x00, 0x40, 0x41, 0x40, 0xc8, 0x0f, 0x37, 0x2f, 0x00, 0x41, 0x80, 0xa7, 0x3c, 0x2f, 0x01, 0x83, 0x47, 0x8e,
+
314 0x42, 0x40, 0xfa, 0x01, 0x81, 0x84, 0x08, 0x89, 0x45, 0x41, 0x55, 0x0e, 0xc6, 0x43, 0x42, 0x42, 0xf4, 0x7f, 0x00,
+
315 0x2f, 0x43, 0x42, 0x51, 0x82, 0x70, 0x1a, 0x41, 0x40, 0x06, 0x2f, 0xc3, 0x6f, 0x41, 0x82, 0xc1, 0x42, 0xcd, 0x0e,
+
316 0x26, 0x2f, 0xc5, 0x42, 0x25, 0x2d, 0x7f, 0x82, 0x51, 0xbb, 0xa5, 0x00, 0xce, 0x0f, 0x12, 0x2f, 0x14, 0x30, 0x05,
+
317 0x30, 0xf7, 0x6f, 0x06, 0x30, 0x05, 0x2c, 0xe0, 0x7f, 0xd0, 0x41, 0x05, 0x1a, 0x23, 0x22, 0xb0, 0x01, 0x7a, 0x0e,
+
318 0xf9, 0x2f, 0x71, 0x0f, 0xe0, 0x6f, 0x28, 0x22, 0x41, 0x8b, 0x71, 0x22, 0x45, 0xa7, 0xee, 0x2f, 0xb3, 0x6f, 0xc2,
+
319 0x6f, 0xc0, 0x42, 0x81, 0x42, 0x08, 0x2d, 0x04, 0x25, 0xc4, 0x6f, 0x98, 0x2e, 0xea, 0x03, 0x00, 0x2e, 0x40, 0x41,
+
320 0x00, 0x43, 0x00, 0x30, 0xdb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0x10, 0x50, 0x03, 0x40, 0x19, 0x18, 0x37, 0x56, 0x19,
+
321 0x05, 0x36, 0x25, 0xf7, 0x7f, 0x4a, 0x17, 0x54, 0x18, 0xec, 0x18, 0x09, 0x17, 0x01, 0x30, 0x0c, 0x07, 0xe2, 0x18,
+
322 0xde, 0x00, 0xf2, 0x6f, 0x97, 0x02, 0x33, 0x58, 0xdc, 0x00, 0x91, 0x02, 0xbf, 0xb8, 0x21, 0xbd, 0x8a, 0x0a, 0xc0,
+
323 0x2e, 0x02, 0x42, 0xf0, 0x5f, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
324 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
325 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
326 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
327 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
328 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
329 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
330 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
331 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
332 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
333 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x01, 0x2e, 0x5d, 0xf7, 0x08, 0xbc, 0x80, 0xac, 0x0e, 0xbb, 0x02, 0x2f,
+
334 0x00, 0x30, 0x41, 0x04, 0x82, 0x06, 0xc0, 0xa4, 0x00, 0x30, 0x11, 0x2f, 0x40, 0xa9, 0x03, 0x2f, 0x40, 0x91, 0x0d,
+
335 0x2f, 0x00, 0xa7, 0x0b, 0x2f, 0x80, 0xb3, 0x33, 0x58, 0x02, 0x2f, 0x90, 0xa1, 0x26, 0x13, 0x20, 0x23, 0x80, 0x90,
+
336 0x10, 0x30, 0x01, 0x2f, 0xcc, 0x0e, 0x00, 0x2f, 0x00, 0x30, 0xb8, 0x2e, 0x35, 0x50, 0x18, 0x08, 0x08, 0xbc, 0x88,
+
337 0xb6, 0x0d, 0x17, 0xc6, 0xbd, 0x56, 0xbc, 0x37, 0x58, 0xda, 0xba, 0x04, 0x01, 0x1d, 0x0a, 0x10, 0x50, 0x05, 0x30,
+
338 0x32, 0x25, 0x45, 0x03, 0xfb, 0x7f, 0xf6, 0x30, 0x21, 0x25, 0x98, 0x2e, 0x37, 0xca, 0x16, 0xb5, 0x9a, 0xbc, 0x06,
+
339 0xb8, 0x80, 0xa8, 0x41, 0x0a, 0x0e, 0x2f, 0x80, 0x90, 0x02, 0x2f, 0x39, 0x50, 0x48, 0x0f, 0x09, 0x2f, 0xbf, 0xa0,
+
340 0x04, 0x2f, 0xbf, 0x90, 0x06, 0x2f, 0x37, 0x54, 0xca, 0x0f, 0x03, 0x2f, 0x00, 0x2e, 0x02, 0x2c, 0x37, 0x52, 0x39,
+
341 0x52, 0xf2, 0x33, 0x98, 0x2e, 0xd9, 0xc0, 0xfb, 0x6f, 0xf1, 0x37, 0xc0, 0x2e, 0x01, 0x08, 0xf0, 0x5f, 0x41, 0x56,
+
342 0x3b, 0x54, 0xd0, 0x40, 0xc4, 0x40, 0x0b, 0x2e, 0xfd, 0xf3, 0x41, 0x52, 0x90, 0x42, 0x94, 0x42, 0x95, 0x42, 0x05,
+
343 0x30, 0x43, 0x50, 0x0f, 0x88, 0x06, 0x40, 0x04, 0x41, 0x96, 0x42, 0xc5, 0x42, 0x48, 0xbe, 0x73, 0x30, 0x0d, 0x2e,
+
344 0x88, 0x00, 0x4f, 0xba, 0x84, 0x42, 0x03, 0x42, 0x81, 0xb3, 0x02, 0x2f, 0x2b, 0x2e, 0x6f, 0xf5, 0x06, 0x2d, 0x05,
+
345 0x2e, 0x77, 0xf7, 0x3f, 0x56, 0x93, 0x08, 0x25, 0x2e, 0x77, 0xf7, 0x3d, 0x54, 0x25, 0x2e, 0xc2, 0xf5, 0x07, 0x2e,
+
346 0xfd, 0xf3, 0x42, 0x30, 0xb4, 0x33, 0xda, 0x0a, 0x4c, 0x00, 0x27, 0x2e, 0xfd, 0xf3, 0x43, 0x40, 0xd4, 0x3f, 0xdc,
+
347 0x08, 0x43, 0x42, 0x00, 0x2e, 0x00, 0x2e, 0x43, 0x40, 0x24, 0x30, 0xdc, 0x0a, 0x43, 0x42, 0x04, 0x80, 0x03, 0x2e,
+
348 0xfd, 0xf3, 0x4a, 0x0a, 0x23, 0x2e, 0xfd, 0xf3, 0x61, 0x34, 0xc0, 0x2e, 0x01, 0x42, 0x00, 0x2e, 0x60, 0x50, 0x1a,
+
349 0x25, 0x7a, 0x86, 0xe0, 0x7f, 0xf3, 0x7f, 0x03, 0x25, 0x45, 0x52, 0x41, 0x84, 0xdb, 0x7f, 0x33, 0x30, 0x98, 0x2e,
+
350 0x16, 0xc2, 0x1a, 0x25, 0x7d, 0x82, 0xf0, 0x6f, 0xe2, 0x6f, 0x32, 0x25, 0x16, 0x40, 0x94, 0x40, 0x26, 0x01, 0x85,
+
351 0x40, 0x8e, 0x17, 0xc4, 0x42, 0x6e, 0x03, 0x95, 0x42, 0x41, 0x0e, 0xf4, 0x2f, 0xdb, 0x6f, 0xa0, 0x5f, 0xb8, 0x2e,
+
352 0xb0, 0x51, 0xfb, 0x7f, 0x98, 0x2e, 0xe8, 0x0d, 0x5a, 0x25, 0x98, 0x2e, 0x0f, 0x0e, 0x4f, 0x58, 0x32, 0x87, 0xc4,
+
353 0x7f, 0x65, 0x89, 0x6b, 0x8d, 0x47, 0x5a, 0x65, 0x7f, 0xe1, 0x7f, 0x83, 0x7f, 0xa6, 0x7f, 0x74, 0x7f, 0xd0, 0x7f,
+
354 0xb6, 0x7f, 0x94, 0x7f, 0x17, 0x30, 0x49, 0x52, 0x4b, 0x54, 0x51, 0x7f, 0x00, 0x2e, 0x85, 0x6f, 0x42, 0x7f, 0x00,
+
355 0x2e, 0x51, 0x41, 0x45, 0x81, 0x42, 0x41, 0x13, 0x40, 0x3b, 0x8a, 0x00, 0x40, 0x4b, 0x04, 0xd0, 0x06, 0xc0, 0xac,
+
356 0x85, 0x7f, 0x02, 0x2f, 0x02, 0x30, 0x51, 0x04, 0xd3, 0x06, 0x41, 0x84, 0x05, 0x30, 0x5d, 0x02, 0xc9, 0x16, 0xdf,
+
357 0x08, 0xd3, 0x00, 0x8d, 0x02, 0xaf, 0xbc, 0xb1, 0xb9, 0x59, 0x0a, 0x65, 0x6f, 0x11, 0x43, 0xa1, 0xb4, 0x52, 0x41,
+
358 0x53, 0x41, 0x01, 0x43, 0x34, 0x7f, 0x65, 0x7f, 0x26, 0x31, 0xe5, 0x6f, 0xd4, 0x6f, 0x98, 0x2e, 0x37, 0xca, 0x32,
+
359 0x6f, 0x75, 0x6f, 0x83, 0x40, 0x42, 0x41, 0x23, 0x7f, 0x12, 0x7f, 0xf6, 0x30, 0x40, 0x25, 0x51, 0x25, 0x98, 0x2e,
+
360 0x37, 0xca, 0x14, 0x6f, 0x20, 0x05, 0x70, 0x6f, 0x25, 0x6f, 0x69, 0x07, 0xa2, 0x6f, 0x31, 0x6f, 0x0b, 0x30, 0x04,
+
361 0x42, 0x9b, 0x42, 0x8b, 0x42, 0x55, 0x42, 0x32, 0x7f, 0x40, 0xa9, 0xc3, 0x6f, 0x71, 0x7f, 0x02, 0x30, 0xd0, 0x40,
+
362 0xc3, 0x7f, 0x03, 0x2f, 0x40, 0x91, 0x15, 0x2f, 0x00, 0xa7, 0x13, 0x2f, 0x00, 0xa4, 0x11, 0x2f, 0x84, 0xbd, 0x98,
+
363 0x2e, 0x79, 0xca, 0x55, 0x6f, 0x37, 0x54, 0x54, 0x41, 0x82, 0x00, 0xf3, 0x3f, 0x45, 0x41, 0xcb, 0x02, 0xf6, 0x30,
+
364 0x98, 0x2e, 0x37, 0xca, 0x35, 0x6f, 0xa4, 0x6f, 0x41, 0x43, 0x03, 0x2c, 0x00, 0x43, 0xa4, 0x6f, 0x35, 0x6f, 0x17,
+
365 0x30, 0x42, 0x6f, 0x51, 0x6f, 0x93, 0x40, 0x42, 0x82, 0x00, 0x41, 0xc3, 0x00, 0x03, 0x43, 0x51, 0x7f, 0x00, 0x2e,
+
366 0x94, 0x40, 0x41, 0x41, 0x4c, 0x02, 0xc4, 0x6f, 0x55, 0x56, 0x63, 0x0e, 0x74, 0x6f, 0x51, 0x43, 0xa5, 0x7f, 0x8a,
+
367 0x2f, 0x09, 0x2e, 0x88, 0x00, 0x01, 0xb3, 0x21, 0x2f, 0x4f, 0x58, 0x90, 0x6f, 0x13, 0x41, 0xb6, 0x6f, 0xe4, 0x7f,
+
368 0x00, 0x2e, 0x91, 0x41, 0x14, 0x40, 0x92, 0x41, 0x15, 0x40, 0x17, 0x2e, 0x6f, 0xf5, 0xb6, 0x7f, 0xd0, 0x7f, 0xcb,
+
369 0x7f, 0x98, 0x2e, 0x00, 0x0c, 0x07, 0x15, 0xc2, 0x6f, 0x14, 0x0b, 0x29, 0x2e, 0x6f, 0xf5, 0xc3, 0xa3, 0xc1, 0x8f,
+
370 0xe4, 0x6f, 0xd0, 0x6f, 0xe6, 0x2f, 0x14, 0x30, 0x05, 0x2e, 0x6f, 0xf5, 0x14, 0x0b, 0x29, 0x2e, 0x6f, 0xf5, 0x18,
+
371 0x2d, 0x51, 0x56, 0x04, 0x32, 0xb5, 0x6f, 0x1c, 0x01, 0x51, 0x41, 0x52, 0x41, 0xc3, 0x40, 0xb5, 0x7f, 0xe4, 0x7f,
+
372 0x98, 0x2e, 0x1f, 0x0c, 0xe4, 0x6f, 0x21, 0x87, 0x00, 0x43, 0x04, 0x32, 0x53, 0x54, 0x5a, 0x0e, 0xef, 0x2f, 0x4d,
+
373 0x54, 0x09, 0x2e, 0x77, 0xf7, 0x22, 0x0b, 0x29, 0x2e, 0x77, 0xf7, 0xfb, 0x6f, 0x50, 0x5e, 0xb8, 0x2e, 0x10, 0x50,
+
374 0x01, 0x2e, 0x84, 0x00, 0x00, 0xb2, 0xfb, 0x7f, 0x51, 0x2f, 0x01, 0xb2, 0x48, 0x2f, 0x02, 0xb2, 0x42, 0x2f, 0x03,
+
375 0x90, 0x56, 0x2f, 0x5b, 0x52, 0x79, 0x80, 0x42, 0x40, 0x81, 0x84, 0x00, 0x40, 0x42, 0x42, 0x98, 0x2e, 0x93, 0x0c,
+
376 0x5d, 0x54, 0x5b, 0x50, 0xa1, 0x40, 0x98, 0xbd, 0x82, 0x40, 0x3e, 0x82, 0xda, 0x0a, 0x44, 0x40, 0x8b, 0x16, 0xe3,
+
377 0x00, 0x53, 0x42, 0x00, 0x2e, 0x43, 0x40, 0x9a, 0x02, 0x52, 0x42, 0x00, 0x2e, 0x41, 0x40, 0x4d, 0x54, 0x4a, 0x0e,
+
378 0x3a, 0x2f, 0x3a, 0x82, 0x00, 0x30, 0x41, 0x40, 0x21, 0x2e, 0x6c, 0x0f, 0x40, 0xb2, 0x0a, 0x2f, 0x98, 0x2e, 0xb1,
+
379 0x0c, 0x98, 0x2e, 0x45, 0x0e, 0x98, 0x2e, 0x5b, 0x0e, 0xfb, 0x6f, 0xf0, 0x5f, 0x00, 0x30, 0x80, 0x2e, 0xba, 0x03,
+
380 0x61, 0x52, 0x57, 0x54, 0x42, 0x42, 0x4f, 0x84, 0x73, 0x30, 0x5f, 0x52, 0x83, 0x42, 0x1b, 0x30, 0x6b, 0x42, 0x23,
+
381 0x30, 0x27, 0x2e, 0x87, 0x00, 0x37, 0x2e, 0x84, 0x00, 0x21, 0x2e, 0x86, 0x00, 0x7a, 0x84, 0x17, 0x2c, 0x42, 0x42,
+
382 0x30, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x12, 0x2d, 0x21, 0x30, 0x00, 0x30, 0x23, 0x2e, 0x84, 0x00, 0x21, 0x2e, 0x7b,
+
383 0xf7, 0x0b, 0x2d, 0x17, 0x30, 0x98, 0x2e, 0x51, 0x0c, 0x59, 0x50, 0x0c, 0x82, 0x72, 0x30, 0x2f, 0x2e, 0x84, 0x00,
+
384 0x25, 0x2e, 0x7b, 0xf7, 0x40, 0x42, 0x00, 0x2e, 0xfb, 0x6f, 0xf0, 0x5f, 0xb8, 0x2e, 0x70, 0x50, 0x0a, 0x25, 0x39,
+
385 0x86, 0xfb, 0x7f, 0xe1, 0x32, 0x62, 0x30, 0x98, 0x2e, 0xc2, 0xc4, 0x35, 0x56, 0xa5, 0x6f, 0xab, 0x08, 0x91, 0x6f,
+
386 0x4b, 0x08, 0x63, 0x56, 0xc4, 0x6f, 0x23, 0x09, 0x4d, 0xba, 0x93, 0xbc, 0x8c, 0x0b, 0xd1, 0x6f, 0x0b, 0x09, 0x4f,
+
387 0x52, 0x65, 0x5e, 0x56, 0x42, 0xaf, 0x09, 0x4d, 0xba, 0x23, 0xbd, 0x94, 0x0a, 0xe5, 0x6f, 0x68, 0xbb, 0xeb, 0x08,
+
388 0xbd, 0xb9, 0x63, 0xbe, 0xfb, 0x6f, 0x52, 0x42, 0xe3, 0x0a, 0xc0, 0x2e, 0x43, 0x42, 0x90, 0x5f, 0x55, 0x50, 0x03,
+
389 0x2e, 0x25, 0xf3, 0x13, 0x40, 0x00, 0x40, 0x9b, 0xbc, 0x9b, 0xb4, 0x08, 0xbd, 0xb8, 0xb9, 0x98, 0xbc, 0xda, 0x0a,
+
390 0x08, 0xb6, 0x89, 0x16, 0xc0, 0x2e, 0x19, 0x00, 0x62, 0x02, 0x10, 0x50, 0xfb, 0x7f, 0x98, 0x2e, 0x81, 0x0d, 0x01,
+
391 0x2e, 0x84, 0x00, 0x31, 0x30, 0x08, 0x04, 0xfb, 0x6f, 0x01, 0x30, 0xf0, 0x5f, 0x23, 0x2e, 0x86, 0x00, 0x21, 0x2e,
+
392 0x87, 0x00, 0xb8, 0x2e, 0x01, 0x2e, 0x87, 0x00, 0x03, 0x2e, 0x86, 0x00, 0x48, 0x0e, 0x01, 0x2f, 0x80, 0x2e, 0x1f,
+
393 0x0e, 0xb8, 0x2e, 0x67, 0x50, 0x21, 0x34, 0x01, 0x42, 0x82, 0x30, 0xc1, 0x32, 0x25, 0x2e, 0x62, 0xf5, 0x01, 0x00,
+
394 0x22, 0x30, 0x01, 0x40, 0x4a, 0x0a, 0x01, 0x42, 0xb8, 0x2e, 0x67, 0x54, 0xf0, 0x3b, 0x83, 0x40, 0xd8, 0x08, 0x69,
+
395 0x52, 0x83, 0x42, 0x00, 0x30, 0x83, 0x30, 0x50, 0x42, 0xc4, 0x32, 0x27, 0x2e, 0x64, 0xf5, 0x94, 0x00, 0x50, 0x42,
+
396 0x40, 0x42, 0xd3, 0x3f, 0x84, 0x40, 0x7d, 0x82, 0xe3, 0x08, 0x40, 0x42, 0x83, 0x42, 0xb8, 0x2e, 0x61, 0x52, 0x00,
+
397 0x30, 0x40, 0x42, 0x7c, 0x86, 0x3b, 0x52, 0x09, 0x2e, 0x57, 0x0f, 0x41, 0x54, 0xc4, 0x42, 0xd3, 0x86, 0x54, 0x40,
+
398 0x55, 0x40, 0x94, 0x42, 0x85, 0x42, 0x21, 0x2e, 0x87, 0x00, 0x42, 0x40, 0x25, 0x2e, 0xfd, 0xf3, 0xc0, 0x42, 0x7e,
+
399 0x82, 0x05, 0x2e, 0x79, 0x00, 0x80, 0xb2, 0x14, 0x2f, 0x05, 0x2e, 0x24, 0x02, 0x27, 0xbd, 0x2f, 0xb9, 0x80, 0x90,
+
400 0x02, 0x2f, 0x21, 0x2e, 0x6f, 0xf5, 0x0c, 0x2d, 0x07, 0x2e, 0x58, 0x0f, 0x14, 0x30, 0x1c, 0x09, 0x05, 0x2e, 0x77,
+
401 0xf7, 0x3f, 0x56, 0x47, 0xbe, 0x93, 0x08, 0x94, 0x0a, 0x25, 0x2e, 0x77, 0xf7, 0x6b, 0x54, 0x50, 0x42, 0x4a, 0x0e,
+
402 0xfc, 0x2f, 0xb8, 0x2e, 0x50, 0x50, 0x02, 0x30, 0x43, 0x86, 0x69, 0x50, 0xfb, 0x7f, 0xe3, 0x7f, 0xd2, 0x7f, 0xc0,
+
403 0x7f, 0xb1, 0x7f, 0x00, 0x2e, 0x41, 0x40, 0x00, 0x40, 0x48, 0x04, 0x98, 0x2e, 0x74, 0xc0, 0x1e, 0xaa, 0xd3, 0x6f,
+
404 0x14, 0x30, 0xb1, 0x6f, 0xe3, 0x22, 0xc0, 0x6f, 0x52, 0x40, 0xe4, 0x6f, 0x4c, 0x0e, 0x12, 0x42, 0xd3, 0x7f, 0xeb,
+
405 0x2f, 0x03, 0x2e, 0x6d, 0x0f, 0x40, 0x90, 0x11, 0x30, 0x03, 0x2f, 0x23, 0x2e, 0x6d, 0x0f, 0x02, 0x2c, 0x00, 0x30,
+
406 0xd0, 0x6f, 0xfb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0x40, 0x50, 0xf1, 0x7f, 0x0a, 0x25, 0x3c, 0x86, 0xeb, 0x7f, 0x41,
+
407 0x33, 0x22, 0x30, 0x98, 0x2e, 0xc2, 0xc4, 0xd3, 0x6f, 0xf4, 0x30, 0xdc, 0x09, 0x6f, 0x58, 0xc2, 0x6f, 0x94, 0x09,
+
408 0x71, 0x58, 0x6a, 0xbb, 0xdc, 0x08, 0xb4, 0xb9, 0xb1, 0xbd, 0x6d, 0x5a, 0x95, 0x08, 0x21, 0xbd, 0xf6, 0xbf, 0x77,
+
409 0x0b, 0x51, 0xbe, 0xf1, 0x6f, 0xeb, 0x6f, 0x52, 0x42, 0x54, 0x42, 0xc0, 0x2e, 0x43, 0x42, 0xc0, 0x5f, 0x50, 0x50,
+
410 0x75, 0x52, 0x93, 0x30, 0x53, 0x42, 0xfb, 0x7f, 0x7b, 0x30, 0x4b, 0x42, 0x13, 0x30, 0x42, 0x82, 0x20, 0x33, 0x43,
+
411 0x42, 0xc8, 0x00, 0x01, 0x2e, 0x80, 0x03, 0x05, 0x2e, 0x7d, 0x00, 0x19, 0x52, 0xe2, 0x7f, 0xd0, 0x7f, 0xc3, 0x7f,
+
412 0x98, 0x2e, 0xb6, 0x0e, 0xd1, 0x6f, 0x48, 0x0a, 0xd1, 0x7f, 0x3a, 0x25, 0xfb, 0x86, 0x01, 0x33, 0x12, 0x30, 0x98,
+
413 0x2e, 0xc2, 0xc4, 0xd1, 0x6f, 0x48, 0x0a, 0x40, 0xb2, 0x0d, 0x2f, 0xe0, 0x6f, 0x03, 0x2e, 0x80, 0x03, 0x53, 0x30,
+
414 0x07, 0x80, 0x27, 0x2e, 0x21, 0xf2, 0x98, 0xbc, 0x01, 0x42, 0x98, 0x2e, 0x91, 0x03, 0x00, 0x2e, 0x00, 0x2e, 0xd0,
+
415 0x2e, 0xb1, 0x6f, 0x9b, 0xb8, 0x07, 0x2e, 0x1b, 0x00, 0x19, 0x1a, 0xb1, 0x7f, 0x71, 0x30, 0x04, 0x2f, 0x23, 0x2e,
+
416 0x21, 0xf2, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0x98, 0x2e, 0x6d, 0xc0, 0x98, 0x2e, 0x5d, 0xc0, 0x98, 0x2e, 0xdf,
+
417 0x03, 0x20, 0x26, 0xc1, 0x6f, 0x02, 0x31, 0x52, 0x42, 0xab, 0x30, 0x4b, 0x42, 0x20, 0x33, 0x77, 0x56, 0xf1, 0x37,
+
418 0xc4, 0x40, 0xa2, 0x0a, 0xc2, 0x42, 0xd8, 0x00, 0x01, 0x2e, 0x5e, 0xf7, 0x41, 0x08, 0x23, 0x2e, 0x94, 0x00, 0xe3,
+
419 0x7f, 0x98, 0x2e, 0xaa, 0x01, 0xe1, 0x6f, 0x83, 0x30, 0x43, 0x42, 0x03, 0x30, 0xfb, 0x6f, 0x73, 0x50, 0x02, 0x30,
+
420 0x00, 0x2e, 0x00, 0x2e, 0x81, 0x84, 0x50, 0x0e, 0xfa, 0x2f, 0x43, 0x42, 0x11, 0x30, 0xb0, 0x5f, 0x23, 0x2e, 0x21,
+
421 0xf2, 0xb8, 0x2e, 0xc1, 0x4a, 0x00, 0x00, 0x6d, 0x57, 0x00, 0x00, 0x77, 0x8e, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff,
+
422 0xd3, 0xff, 0xff, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xee, 0xe1, 0xff, 0xff, 0x7c, 0x13, 0x00, 0x00, 0x46, 0xe6, 0xff,
+
423 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
424 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
425 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
426 0x00, 0x00, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
427 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
428 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
429 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
430 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
431 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
432 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
433 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
434 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
435 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
436 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
437 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
438 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
439 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
440 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
441 0xc1, 0xfd, 0x2d
+
442};
+
+
443
+ + + +
+
+
+ + + + diff --git a/docs/html/cdc_8c.html b/docs/html/cdc_8c.html new file mode 100644 index 0000000..6a466bd --- /dev/null +++ b/docs/html/cdc_8c.html @@ -0,0 +1,658 @@ + + + + + + + +ESP-IDF Firmware: cdc.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cdc.c File Reference
+
+
+
#include <stdint.h>
+#include "esp_check.h"
+#include "esp_err.h"
+#include "esp_log.h"
+#include "tusb.h"
+#include "cdc.h"
+
+Include dependency graph for cdc.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define CDC_INTF_NUM   CFG_TUD_CDC
+ + + + + + + + + + + + +

+Functions

esp_tusb_cdc_ttinyusb_cdc_get_intf (int itf_num)
 Return interface of a CDC device.
static esp_err_t cdc_obj_check (int itf, bool expected_inited, tusb_class_code_t expected_type)
static esp_err_t tusb_cdc_comm_init (int itf)
static esp_err_t tusb_cdc_deinit_comm (int itf)
static esp_err_t tusb_cdc_data_init (int itf)
static esp_err_t tusb_cdc_deinit_data (int itf)
esp_err_t tinyusb_cdc_init (int itf, const tinyusb_config_cdc_t *cfg)
 Initializing CDC basic object.
esp_err_t tinyusb_cdc_deinit (int itf)
 De-initializing CDC. Clean its objects.
+ + + +

+Variables

static esp_tusb_cdc_tcdc_obj [CFG_TUD_CDC] = {}
static const char * TAG = "tusb_cdc"
+

Macro Definition Documentation

+ +

◆ CDC_INTF_NUM

+ +
+
+ + + + +
#define CDC_INTF_NUM   CFG_TUD_CDC
+
+ +

Definition at line 14 of file cdc.c.

+ +

Referenced by tinyusb_cdc_get_intf().

+ +
+
+

Function Documentation

+ +

◆ cdc_obj_check()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
esp_err_t cdc_obj_check (int itf,
bool expected_inited,
tusb_class_code_t expected_type )
+
+static
+
+ +

Definition at line 26 of file cdc.c.

+
27{
+
28 esp_tusb_cdc_t *this_itf = tinyusb_cdc_get_intf(itf);
+
29
+
30 bool inited = (this_itf != NULL);
+
31 ESP_RETURN_ON_FALSE(expected_inited == inited, ESP_ERR_INVALID_STATE, TAG, "Wrong state of the interface. Expected state: %s", expected_inited ? "initialized" : "not initialized");
+
32 ESP_RETURN_ON_FALSE(!(inited && (expected_type != -1) && !(this_itf->type == expected_type)), ESP_ERR_INVALID_STATE, TAG, "Wrong type of the interface. Should be : 0x%x (tusb_class_code_t)", expected_type);
+
33 return ESP_OK;
+
34}
+
esp_tusb_cdc_t * tinyusb_cdc_get_intf(int itf_num)
Return interface of a CDC device.
Definition cdc.c:18
+
#define ESP_OK
Definition esp_err.h:23
+
static const char * TAG
Definition main/main.c:31
+ +
tusb_class_code_t type
Definition cdc.h:42
+
+

References ESP_OK, TAG, tinyusb_cdc_get_intf(), and esp_tusb_cdc_t::type.

+ +

Referenced by tinyusb_cdc_deinit(), tinyusb_cdc_init(), tusb_cdc_comm_init(), tusb_cdc_data_init(), tusb_cdc_deinit_comm(), and tusb_cdc_deinit_data().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tinyusb_cdc_deinit()

+ +
+
+ + + + + + + +
esp_err_t tinyusb_cdc_deinit (int itf)
+
+ +

De-initializing CDC. Clean its objects.

+
Parameters
+ + +
itf- number of a CDC object
+
+
+
Returns
esp_err_t ESP_OK, ESP_ERR_INVALID_ARG, ESP_ERR_INVALID_STATE
+ +

Definition at line 96 of file cdc.c.

+
97{
+
98 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, true, -1), TAG, "cdc_obj_check failed");
+
99
+
100 ESP_LOGD(TAG, "Deinit CDC %d", itf);
+
101 if (cdc_obj[itf]->type == TUSB_CLASS_CDC) {
+
102 ESP_RETURN_ON_ERROR(tusb_cdc_deinit_comm(itf), TAG, "tusb_cdc_deinit_comm failed");
+
103 } else if (cdc_obj[itf]->type == TUSB_CLASS_CDC_DATA) {
+
104 ESP_RETURN_ON_ERROR(tusb_cdc_deinit_data(itf), TAG, "tusb_cdc_deinit_data failed");
+
105 } else {
+
106 return ESP_ERR_INVALID_ARG;
+
107 }
+
108 return ESP_OK;
+
109}
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
static esp_err_t tusb_cdc_deinit_comm(int itf)
Definition cdc.c:50
+
static esp_err_t cdc_obj_check(int itf, bool expected_inited, tusb_class_code_t expected_type)
Definition cdc.c:26
+
static esp_err_t tusb_cdc_deinit_data(int itf)
Definition cdc.c:72
+
static esp_tusb_cdc_t * cdc_obj[CFG_TUD_CDC]
Definition cdc.c:15
+
#define ESP_LOGD
Definition esp_log.h:22
+
+

References cdc_obj, cdc_obj_check(), ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, TAG, tusb_cdc_deinit_comm(), and tusb_cdc_deinit_data().

+ +

Referenced by tusb_cdc_acm_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tinyusb_cdc_get_intf()

+ +
+
+ + + + + + + +
esp_tusb_cdc_t * tinyusb_cdc_get_intf (int itf_num)
+
+ +

Return interface of a CDC device.

+
Parameters
+ + +
itf_num
+
+
+
Returns
esp_tusb_cdc_t* pointer to the interface or (NULL) on error
+ +

Definition at line 18 of file cdc.c.

+
19{
+
20 if (itf_num >= CDC_INTF_NUM || itf_num < 0) {
+
21 return NULL;
+
22 }
+
23 return cdc_obj[itf_num];
+
24}
+
#define CDC_INTF_NUM
Definition cdc.c:14
+
+

References CDC_INTF_NUM, and cdc_obj.

+ +

Referenced by alloc_obj(), cdc_obj_check(), free_obj(), and get_acm().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tinyusb_cdc_init()

+ +
+
+ + + + + + + + + + + +
esp_err_t tinyusb_cdc_init (int itf,
const tinyusb_config_cdc_t * cfg )
+
+ +

Initializing CDC basic object.

+
Parameters
+ + + +
itf- number of a CDC object
cfg- CDC configuration structure
+
+
+
Returns
esp_err_t ESP_OK or ESP_FAIL
+ +

Definition at line 80 of file cdc.c.

+
81{
+
82 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, false, -1), TAG, "cdc_obj_check failed");
+
83
+
84 ESP_LOGD(TAG, "Init CDC %d", itf);
+
85 if (cfg->cdc_class == TUSB_CLASS_CDC) {
+
86 ESP_RETURN_ON_ERROR(tusb_cdc_comm_init(itf), TAG, "tusb_cdc_comm_init failed");
+
87 cdc_obj[itf]->cdc_subclass.comm_subclass = cfg->cdc_subclass.comm_subclass;
+
88 } else {
+
89 ESP_RETURN_ON_ERROR(tusb_cdc_data_init(itf), TAG, "tusb_cdc_data_init failed");
+
90 cdc_obj[itf]->cdc_subclass.data_subclass = cfg->cdc_subclass.data_subclass;
+
91 }
+
92 cdc_obj[itf]->usb_dev = cfg->usb_dev;
+
93 return ESP_OK;
+
94}
+
static esp_err_t tusb_cdc_comm_init(int itf)
Definition cdc.c:36
+
static esp_err_t tusb_cdc_data_init(int itf)
Definition cdc.c:58
+
tinyusb_usbdev_t usb_dev
Definition cdc.h:32
+
cdc_comm_sublcass_type_t comm_subclass
Definition cdc.h:35
+
union tinyusb_config_cdc_t::@312104222326077254040135322351363045356166043242 cdc_subclass
+
cdc_data_sublcass_type_t data_subclass
Definition cdc.h:36
+
tusb_class_code_t cdc_class
Definition cdc.h:33
+
+

References tinyusb_config_cdc_t::cdc_class, cdc_obj, cdc_obj_check(), tinyusb_config_cdc_t::cdc_subclass, tinyusb_config_cdc_t::comm_subclass, tinyusb_config_cdc_t::data_subclass, ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, TAG, tusb_cdc_comm_init(), tusb_cdc_data_init(), and tinyusb_config_cdc_t::usb_dev.

+ +

Referenced by tusb_cdc_acm_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tusb_cdc_comm_init()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t tusb_cdc_comm_init (int itf)
+
+static
+
+ +

Definition at line 36 of file cdc.c.

+
37{
+
38 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, false, -1), TAG, "cdc_obj_check failed");
+
39 cdc_obj[itf] = calloc(1, sizeof(esp_tusb_cdc_t));
+
40 if (cdc_obj[itf] != NULL) {
+
41 cdc_obj[itf]->type = TUSB_CLASS_CDC;
+
42 ESP_LOGD(TAG, "CDC Comm class initialized");
+
43 return ESP_OK;
+
44 } else {
+
45 ESP_LOGE(TAG, "CDC Comm initialization error");
+
46 return ESP_FAIL;
+
47 }
+
48}
+
+

References cdc_obj, cdc_obj_check(), ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, and TAG.

+ +

Referenced by tinyusb_cdc_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tusb_cdc_data_init()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t tusb_cdc_data_init (int itf)
+
+static
+
+ +

Definition at line 58 of file cdc.c.

+
59{
+
60 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, false, TUSB_CLASS_CDC_DATA), TAG, "cdc_obj_check failed");
+
61 cdc_obj[itf] = calloc(1, sizeof(esp_tusb_cdc_t));
+
62 if (cdc_obj[itf] != NULL) {
+
63 cdc_obj[itf]->type = TUSB_CLASS_CDC_DATA;
+
64 ESP_LOGD(TAG, "CDC Data class initialized");
+
65 return ESP_OK;
+
66 } else {
+
67 ESP_LOGE(TAG, "CDC Data initialization error");
+
68 return ESP_FAIL;
+
69 }
+
70}
+
+

References cdc_obj, cdc_obj_check(), ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, and TAG.

+ +

Referenced by tinyusb_cdc_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tusb_cdc_deinit_comm()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t tusb_cdc_deinit_comm (int itf)
+
+static
+
+ +

Definition at line 50 of file cdc.c.

+
51{
+
52 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, true, TUSB_CLASS_CDC), TAG, "cdc_obj_check failed");
+
53 free(cdc_obj[itf]);
+
54 cdc_obj[itf] = NULL;
+
55 return ESP_OK;
+
56}
+
+

References cdc_obj, cdc_obj_check(), ESP_OK, ESP_RETURN_ON_ERROR, and TAG.

+ +

Referenced by tinyusb_cdc_deinit().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tusb_cdc_deinit_data()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t tusb_cdc_deinit_data (int itf)
+
+static
+
+ +

Definition at line 72 of file cdc.c.

+
73{
+
74 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, true, TUSB_CLASS_CDC_DATA), TAG, "cdc_obj_check failed");
+
75 free(cdc_obj[itf]);
+
76 cdc_obj[itf] = NULL;
+
77 return ESP_OK;
+
78}
+
+

References cdc_obj, cdc_obj_check(), ESP_OK, ESP_RETURN_ON_ERROR, and TAG.

+ +

Referenced by tinyusb_cdc_deinit().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ cdc_obj

+ +
+
+ + + + + +
+ + + + +
esp_tusb_cdc_t* cdc_obj[CFG_TUD_CDC] = {}
+
+static
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "tusb_cdc"
+
+static
+
+ +

Definition at line 16 of file cdc.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/cdc_8c.js b/docs/html/cdc_8c.js new file mode 100644 index 0000000..ff8404f --- /dev/null +++ b/docs/html/cdc_8c.js @@ -0,0 +1,14 @@ +var cdc_8c = +[ + [ "CDC_INTF_NUM", "cdc_8c.html#a72b2503fb4e7f4ba3b4621eacb5cbb87", null ], + [ "cdc_obj_check", "cdc_8c.html#a53a3cac48508654d002fa4d573f87504", null ], + [ "tinyusb_cdc_deinit", "cdc_8c.html#a0fea5ebace85419b82be50d14552a846", null ], + [ "tinyusb_cdc_get_intf", "cdc_8c.html#a19af1be61f3d48fb87311dd61c06cbae", null ], + [ "tinyusb_cdc_init", "cdc_8c.html#ae8ab12e178b5e70f3da27e93d8d91a90", null ], + [ "tusb_cdc_comm_init", "cdc_8c.html#a36449a7b8addc224dc809d01cc5c887c", null ], + [ "tusb_cdc_data_init", "cdc_8c.html#aab3601e6d925be67b313996c6ed6cf37", null ], + [ "tusb_cdc_deinit_comm", "cdc_8c.html#a4475f282177737b28e4f3c87051e10a0", null ], + [ "tusb_cdc_deinit_data", "cdc_8c.html#a72a407d111850958c2a043f05798308f", null ], + [ "cdc_obj", "cdc_8c.html#ac44ad629c48185b9fc4aa3416c54226f", null ], + [ "TAG", "cdc_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/cdc_8c__incl.md5 b/docs/html/cdc_8c__incl.md5 new file mode 100644 index 0000000..93cbad8 --- /dev/null +++ b/docs/html/cdc_8c__incl.md5 @@ -0,0 +1 @@ +187666f0d9a30889ad894e74d26810c2 \ No newline at end of file diff --git a/docs/html/cdc_8c__incl.svg b/docs/html/cdc_8c__incl.svg new file mode 100644 index 0000000..4adbce4 --- /dev/null +++ b/docs/html/cdc_8c__incl.svg @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +cdc.c + + +Node1 + + +cdc.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_check.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +esp_log.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +tusb.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +cdc.h + + + + + +Node1->Node8 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + +Node8->Node2 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +freertos/FreeRTOS.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +freertos/semphr.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +freertos/timers.h + + + + + +Node8->Node11 + + + + + + + + +Node12 + + +tinyusb_types.h + + + + + +Node8->Node12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c__incl_org.svg b/docs/html/cdc_8c__incl_org.svg new file mode 100644 index 0000000..351f566 --- /dev/null +++ b/docs/html/cdc_8c__incl_org.svg @@ -0,0 +1,246 @@ + + + + + + +cdc.c + + +Node1 + + +cdc.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_check.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +esp_log.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +tusb.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +cdc.h + + + + + +Node1->Node8 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + +Node8->Node2 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +freertos/FreeRTOS.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +freertos/semphr.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +freertos/timers.h + + + + + +Node8->Node11 + + + + + + + + +Node12 + + +tinyusb_types.h + + + + + +Node8->Node12 + + + + + + + + diff --git a/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph.md5 b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph.md5 new file mode 100644 index 0000000..0f28c07 --- /dev/null +++ b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph.md5 @@ -0,0 +1 @@ +3e90a1e2ef1220bd289f5d78559c05c5 \ No newline at end of file diff --git a/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph.svg b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph.svg new file mode 100644 index 0000000..c8080f7 --- /dev/null +++ b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +tinyusb_cdc_deinit + + +Node1 + + +tinyusb_cdc_deinit + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +tusb_cdc_deinit_comm + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +tusb_cdc_deinit_data + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5->Node2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph_org.svg b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph_org.svg new file mode 100644 index 0000000..e9de98f --- /dev/null +++ b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +tinyusb_cdc_deinit + + +Node1 + + +tinyusb_cdc_deinit + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +tusb_cdc_deinit_comm + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +tusb_cdc_deinit_data + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5->Node2 + + + + + + + + diff --git a/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph.md5 b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph.md5 new file mode 100644 index 0000000..4ae1c3d --- /dev/null +++ b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph.md5 @@ -0,0 +1 @@ +8ebc15c008a00df7af76b9a07a0728d9 \ No newline at end of file diff --git a/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph.svg b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph.svg new file mode 100644 index 0000000..69a4dcf --- /dev/null +++ b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tinyusb_cdc_deinit + + +Node1 + + +tinyusb_cdc_deinit + + + + + +Node2 + + +tusb_cdc_acm_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph_org.svg b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph_org.svg new file mode 100644 index 0000000..eddeb14 --- /dev/null +++ b/docs/html/cdc_8c_a0fea5ebace85419b82be50d14552a846_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tinyusb_cdc_deinit + + +Node1 + + +tinyusb_cdc_deinit + + + + + +Node2 + + +tusb_cdc_acm_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph.md5 b/docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph.md5 new file mode 100644 index 0000000..9734f59 --- /dev/null +++ b/docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph.md5 @@ -0,0 +1 @@ +0e7453972eeafbe12ddb8d51a88756f6 \ No newline at end of file diff --git a/docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph.svg b/docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph.svg new file mode 100644 index 0000000..29a67b5 --- /dev/null +++ b/docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph.svg @@ -0,0 +1,712 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +tinyusb_cdc_get_intf + + +Node1 + + +tinyusb_cdc_get_intf + + + + + +Node2 + + +alloc_obj + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +cdc_obj_check + + + + + +Node1->Node5 + + + + + + + + +Node12 + + +free_obj + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +get_acm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +tinyusb_cdc_deinit + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +tinyusb_cdc_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +tusb_cdc_comm_init + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +tusb_cdc_data_init + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +tusb_cdc_deinit_comm + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +tusb_cdc_deinit_data + + + + + +Node5->Node11 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9->Node7 + + + + + + + + +Node10->Node6 + + + + + + + + +Node11->Node6 + + + + + + + + +Node12->Node3 + + + + + + + + +Node13->Node3 + + + + + + + + +Node14 + + +tinyusb_cdcacm_read + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +tinyusb_cdcacm_register +_callback + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +tinyusb_cdcacm_unregister +_callback + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +tinyusb_cdcacm_write +_flush + + + + + +Node13->Node17 + + + + + + + + +Node20 + + +tinyusb_cdcacm_write +_queue + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +tinyusb_cdcacm_write +_queue_char + + + + + +Node13->Node21 + + + + + + + + +Node25 + + +tud_cdc_line_coding_cb + + + + + +Node13->Node25 + + + + + + + + +Node26 + + +tud_cdc_line_state_cb + + + + + +Node13->Node26 + + + + + + + + +Node27 + + +tud_cdc_rx_cb + + + + + +Node13->Node27 + + + + + + + + +Node28 + + +tud_cdc_rx_wanted_cb + + + + + +Node13->Node28 + + + + + + + + +Node29 + + +tusb_cdc_acm_initialized + + + + + +Node13->Node29 + + + + + + + + +Node15->Node3 + + + + + + + + +Node18 + + +safe_cdcacm_write_flush + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +cdc_tx_task + + + + + +Node18->Node19 + + + + + + + + +Node19->Node4 + + + + + + + + +Node20->Node19 + + + + + + + + +Node22 + + +tusb_write + + + + + +Node21->Node22 + + + + + + + + +Node23 + + +esp_vfs_tusb_cdc_register + + + + + +Node22->Node23 + + + + + + + + +Node29->Node19 + + + + + + + + +Node29->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph_org.svg b/docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph_org.svg new file mode 100644 index 0000000..66b387d --- /dev/null +++ b/docs/html/cdc_8c_a19af1be61f3d48fb87311dd61c06cbae_icgraph_org.svg @@ -0,0 +1,629 @@ + + + + + + +tinyusb_cdc_get_intf + + +Node1 + + +tinyusb_cdc_get_intf + + + + + +Node2 + + +alloc_obj + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +cdc_obj_check + + + + + +Node1->Node5 + + + + + + + + +Node12 + + +free_obj + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +get_acm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +tinyusb_cdc_deinit + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +tinyusb_cdc_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +tusb_cdc_comm_init + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +tusb_cdc_data_init + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +tusb_cdc_deinit_comm + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +tusb_cdc_deinit_data + + + + + +Node5->Node11 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9->Node7 + + + + + + + + +Node10->Node6 + + + + + + + + +Node11->Node6 + + + + + + + + +Node12->Node3 + + + + + + + + +Node13->Node3 + + + + + + + + +Node14 + + +tinyusb_cdcacm_read + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +tinyusb_cdcacm_register +_callback + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +tinyusb_cdcacm_unregister +_callback + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +tinyusb_cdcacm_write +_flush + + + + + +Node13->Node17 + + + + + + + + +Node20 + + +tinyusb_cdcacm_write +_queue + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +tinyusb_cdcacm_write +_queue_char + + + + + +Node13->Node21 + + + + + + + + +Node25 + + +tud_cdc_line_coding_cb + + + + + +Node13->Node25 + + + + + + + + +Node26 + + +tud_cdc_line_state_cb + + + + + +Node13->Node26 + + + + + + + + +Node27 + + +tud_cdc_rx_cb + + + + + +Node13->Node27 + + + + + + + + +Node28 + + +tud_cdc_rx_wanted_cb + + + + + +Node13->Node28 + + + + + + + + +Node29 + + +tusb_cdc_acm_initialized + + + + + +Node13->Node29 + + + + + + + + +Node15->Node3 + + + + + + + + +Node18 + + +safe_cdcacm_write_flush + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +cdc_tx_task + + + + + +Node18->Node19 + + + + + + + + +Node19->Node4 + + + + + + + + +Node20->Node19 + + + + + + + + +Node22 + + +tusb_write + + + + + +Node21->Node22 + + + + + + + + +Node23 + + +esp_vfs_tusb_cdc_register + + + + + +Node22->Node23 + + + + + + + + +Node29->Node19 + + + + + + + + +Node29->Node23 + + + + + + + + diff --git a/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph.md5 b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph.md5 new file mode 100644 index 0000000..f3f9f8e --- /dev/null +++ b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph.md5 @@ -0,0 +1 @@ +51d132c136d2e6542b663a182d8ec260 \ No newline at end of file diff --git a/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph.svg b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph.svg new file mode 100644 index 0000000..c630ad9 --- /dev/null +++ b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tusb_cdc_comm_init + + +Node1 + + +tusb_cdc_comm_init + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph_org.svg b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph_org.svg new file mode 100644 index 0000000..f075611 --- /dev/null +++ b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tusb_cdc_comm_init + + +Node1 + + +tusb_cdc_comm_init + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph.md5 b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph.md5 new file mode 100644 index 0000000..6d807a0 --- /dev/null +++ b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph.md5 @@ -0,0 +1 @@ +3eb503dfb7b6ef1d73acb5f6f9c2f786 \ No newline at end of file diff --git a/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph.svg b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph.svg new file mode 100644 index 0000000..558543e --- /dev/null +++ b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +tusb_cdc_comm_init + + +Node1 + + +tusb_cdc_comm_init + + + + + +Node2 + + +tinyusb_cdc_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph_org.svg b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph_org.svg new file mode 100644 index 0000000..f206fbf --- /dev/null +++ b/docs/html/cdc_8c_a36449a7b8addc224dc809d01cc5c887c_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +tusb_cdc_comm_init + + +Node1 + + +tusb_cdc_comm_init + + + + + +Node2 + + +tinyusb_cdc_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph.md5 b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph.md5 new file mode 100644 index 0000000..f0c02f9 --- /dev/null +++ b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph.md5 @@ -0,0 +1 @@ +765ce8c9ce194f1d7a90278ce7829883 \ No newline at end of file diff --git a/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph.svg b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph.svg new file mode 100644 index 0000000..18e68ac --- /dev/null +++ b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tusb_cdc_deinit_comm + + +Node1 + + +tusb_cdc_deinit_comm + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph_org.svg b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph_org.svg new file mode 100644 index 0000000..203ca6c --- /dev/null +++ b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tusb_cdc_deinit_comm + + +Node1 + + +tusb_cdc_deinit_comm + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph.md5 b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph.md5 new file mode 100644 index 0000000..91bf9b2 --- /dev/null +++ b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph.md5 @@ -0,0 +1 @@ +8718e04fb4c44193998c37cdd9620fb1 \ No newline at end of file diff --git a/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph.svg b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph.svg new file mode 100644 index 0000000..70e8980 --- /dev/null +++ b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +tusb_cdc_deinit_comm + + +Node1 + + +tusb_cdc_deinit_comm + + + + + +Node2 + + +tinyusb_cdc_deinit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph_org.svg b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph_org.svg new file mode 100644 index 0000000..b76ffcb --- /dev/null +++ b/docs/html/cdc_8c_a4475f282177737b28e4f3c87051e10a0_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +tusb_cdc_deinit_comm + + +Node1 + + +tusb_cdc_deinit_comm + + + + + +Node2 + + +tinyusb_cdc_deinit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph.md5 b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph.md5 new file mode 100644 index 0000000..539d0cc --- /dev/null +++ b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph.md5 @@ -0,0 +1 @@ +65d2258881ff1cf632bb040f5af29dbc \ No newline at end of file diff --git a/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph.svg b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph.svg new file mode 100644 index 0000000..74deb76 --- /dev/null +++ b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +cdc_obj_check + + +Node1 + + +cdc_obj_check + + + + + +Node2 + + +tinyusb_cdc_get_intf + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph_org.svg b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph_org.svg new file mode 100644 index 0000000..cdc661b --- /dev/null +++ b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +cdc_obj_check + + +Node1 + + +cdc_obj_check + + + + + +Node2 + + +tinyusb_cdc_get_intf + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph.md5 b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph.md5 new file mode 100644 index 0000000..c0933e5 --- /dev/null +++ b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph.md5 @@ -0,0 +1 @@ +4aa4aba1eefb1db7a92779aba141723a \ No newline at end of file diff --git a/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph.svg b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph.svg new file mode 100644 index 0000000..d9c7128 --- /dev/null +++ b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph.svg @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +cdc_obj_check + + +Node1 + + +cdc_obj_check + + + + + +Node2 + + +tinyusb_cdc_deinit + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +tinyusb_cdc_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +tusb_cdc_comm_init + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +tusb_cdc_data_init + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +tusb_cdc_deinit_comm + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +tusb_cdc_deinit_data + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7->Node5 + + + + + + + + +Node8->Node2 + + + + + + + + +Node9->Node2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph_org.svg b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph_org.svg new file mode 100644 index 0000000..2c2a7da --- /dev/null +++ b/docs/html/cdc_8c_a53a3cac48508654d002fa4d573f87504_icgraph_org.svg @@ -0,0 +1,210 @@ + + + + + + +cdc_obj_check + + +Node1 + + +cdc_obj_check + + + + + +Node2 + + +tinyusb_cdc_deinit + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +tinyusb_cdc_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +tusb_cdc_comm_init + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +tusb_cdc_data_init + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +tusb_cdc_deinit_comm + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +tusb_cdc_deinit_data + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7->Node5 + + + + + + + + +Node8->Node2 + + + + + + + + +Node9->Node2 + + + + + + + + diff --git a/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph.md5 b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph.md5 new file mode 100644 index 0000000..afa0a27 --- /dev/null +++ b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph.md5 @@ -0,0 +1 @@ +0a17ea009ca407d033162d0a412cf6c5 \ No newline at end of file diff --git a/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph.svg b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph.svg new file mode 100644 index 0000000..85a2b34 --- /dev/null +++ b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tusb_cdc_deinit_data + + +Node1 + + +tusb_cdc_deinit_data + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph_org.svg b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph_org.svg new file mode 100644 index 0000000..dcda785 --- /dev/null +++ b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tusb_cdc_deinit_data + + +Node1 + + +tusb_cdc_deinit_data + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph.md5 b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph.md5 new file mode 100644 index 0000000..e1a158e --- /dev/null +++ b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph.md5 @@ -0,0 +1 @@ +d617cf577e6b7f9fc5f58432e4d28f03 \ No newline at end of file diff --git a/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph.svg b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph.svg new file mode 100644 index 0000000..38cbe34 --- /dev/null +++ b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +tusb_cdc_deinit_data + + +Node1 + + +tusb_cdc_deinit_data + + + + + +Node2 + + +tinyusb_cdc_deinit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph_org.svg b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph_org.svg new file mode 100644 index 0000000..e7e1941 --- /dev/null +++ b/docs/html/cdc_8c_a72a407d111850958c2a043f05798308f_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +tusb_cdc_deinit_data + + +Node1 + + +tusb_cdc_deinit_data + + + + + +Node2 + + +tinyusb_cdc_deinit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph.md5 b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph.md5 new file mode 100644 index 0000000..91e60cd --- /dev/null +++ b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph.md5 @@ -0,0 +1 @@ +2293db97617b3c077c7e5cdf060f461d \ No newline at end of file diff --git a/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph.svg b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph.svg new file mode 100644 index 0000000..fa0cc20 --- /dev/null +++ b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tusb_cdc_data_init + + +Node1 + + +tusb_cdc_data_init + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph_org.svg b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph_org.svg new file mode 100644 index 0000000..185cd23 --- /dev/null +++ b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tusb_cdc_data_init + + +Node1 + + +tusb_cdc_data_init + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph.md5 b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph.md5 new file mode 100644 index 0000000..2375e39 --- /dev/null +++ b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph.md5 @@ -0,0 +1 @@ +1773eadfed637d4bafe4d6a763d2a3a1 \ No newline at end of file diff --git a/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph.svg b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph.svg new file mode 100644 index 0000000..f13e92a --- /dev/null +++ b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +tusb_cdc_data_init + + +Node1 + + +tusb_cdc_data_init + + + + + +Node2 + + +tinyusb_cdc_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph_org.svg b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph_org.svg new file mode 100644 index 0000000..9f13d29 --- /dev/null +++ b/docs/html/cdc_8c_aab3601e6d925be67b313996c6ed6cf37_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +tusb_cdc_data_init + + +Node1 + + +tusb_cdc_data_init + + + + + +Node2 + + +tinyusb_cdc_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 new file mode 100644 index 0000000..2635772 --- /dev/null +++ b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 @@ -0,0 +1 @@ +8c867fd814077c2d3ca440abf9c6d360 \ No newline at end of file diff --git a/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg new file mode 100644 index 0000000..6dcbd2c --- /dev/null +++ b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +tinyusb_cdc_init + + +Node1 + + +tinyusb_cdc_init + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +tusb_cdc_comm_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +tusb_cdc_data_init + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5->Node2 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph_org.svg b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph_org.svg new file mode 100644 index 0000000..5eadf68 --- /dev/null +++ b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +tinyusb_cdc_init + + +Node1 + + +tinyusb_cdc_init + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +tusb_cdc_comm_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +tusb_cdc_data_init + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5->Node2 + + + + + + + + diff --git a/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 new file mode 100644 index 0000000..7fe8b54 --- /dev/null +++ b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 @@ -0,0 +1 @@ +4594d626555918d280fc5d147abab9be \ No newline at end of file diff --git a/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.svg b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.svg new file mode 100644 index 0000000..cfbb949 --- /dev/null +++ b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tinyusb_cdc_init + + +Node1 + + +tinyusb_cdc_init + + + + + +Node2 + + +tusb_cdc_acm_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph_org.svg b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph_org.svg new file mode 100644 index 0000000..210aab3 --- /dev/null +++ b/docs/html/cdc_8c_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tinyusb_cdc_init + + +Node1 + + +tinyusb_cdc_init + + + + + +Node2 + + +tusb_cdc_acm_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/cdc_8c_source.html b/docs/html/cdc_8c_source.html new file mode 100644 index 0000000..42f016e --- /dev/null +++ b/docs/html/cdc_8c_source.html @@ -0,0 +1,257 @@ + + + + + + + +ESP-IDF Firmware: cdc.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cdc.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdint.h>
+
8#include "esp_check.h"
+
9#include "esp_err.h"
+
10#include "esp_log.h"
+
11#include "tusb.h"
+
12#include "cdc.h"
+
13
+
14#define CDC_INTF_NUM CFG_TUD_CDC // number of cdc blocks
+ +
16static const char *TAG = "tusb_cdc";
+
17
+
+ +
19{
+
20 if (itf_num >= CDC_INTF_NUM || itf_num < 0) {
+
21 return NULL;
+
22 }
+
23 return cdc_obj[itf_num];
+
24}
+
+
25
+
+
26static esp_err_t cdc_obj_check(int itf, bool expected_inited, tusb_class_code_t expected_type)
+
27{
+
28 esp_tusb_cdc_t *this_itf = tinyusb_cdc_get_intf(itf);
+
29
+
30 bool inited = (this_itf != NULL);
+
31 ESP_RETURN_ON_FALSE(expected_inited == inited, ESP_ERR_INVALID_STATE, TAG, "Wrong state of the interface. Expected state: %s", expected_inited ? "initialized" : "not initialized");
+
32 ESP_RETURN_ON_FALSE(!(inited && (expected_type != -1) && !(this_itf->type == expected_type)), ESP_ERR_INVALID_STATE, TAG, "Wrong type of the interface. Should be : 0x%x (tusb_class_code_t)", expected_type);
+
33 return ESP_OK;
+
34}
+
+
35
+
+ +
37{
+
38 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, false, -1), TAG, "cdc_obj_check failed");
+
39 cdc_obj[itf] = calloc(1, sizeof(esp_tusb_cdc_t));
+
40 if (cdc_obj[itf] != NULL) {
+
41 cdc_obj[itf]->type = TUSB_CLASS_CDC;
+
42 ESP_LOGD(TAG, "CDC Comm class initialized");
+
43 return ESP_OK;
+
44 } else {
+
45 ESP_LOGE(TAG, "CDC Comm initialization error");
+
46 return ESP_FAIL;
+
47 }
+
48}
+
+
49
+
+ +
51{
+
52 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, true, TUSB_CLASS_CDC), TAG, "cdc_obj_check failed");
+
53 free(cdc_obj[itf]);
+
54 cdc_obj[itf] = NULL;
+
55 return ESP_OK;
+
56}
+
+
57
+
+ +
59{
+
60 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, false, TUSB_CLASS_CDC_DATA), TAG, "cdc_obj_check failed");
+
61 cdc_obj[itf] = calloc(1, sizeof(esp_tusb_cdc_t));
+
62 if (cdc_obj[itf] != NULL) {
+
63 cdc_obj[itf]->type = TUSB_CLASS_CDC_DATA;
+
64 ESP_LOGD(TAG, "CDC Data class initialized");
+
65 return ESP_OK;
+
66 } else {
+
67 ESP_LOGE(TAG, "CDC Data initialization error");
+
68 return ESP_FAIL;
+
69 }
+
70}
+
+
71
+
+ +
73{
+
74 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, true, TUSB_CLASS_CDC_DATA), TAG, "cdc_obj_check failed");
+
75 free(cdc_obj[itf]);
+
76 cdc_obj[itf] = NULL;
+
77 return ESP_OK;
+
78}
+
+
79
+
+ +
81{
+
82 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, false, -1), TAG, "cdc_obj_check failed");
+
83
+
84 ESP_LOGD(TAG, "Init CDC %d", itf);
+
85 if (cfg->cdc_class == TUSB_CLASS_CDC) {
+
86 ESP_RETURN_ON_ERROR(tusb_cdc_comm_init(itf), TAG, "tusb_cdc_comm_init failed");
+
87 cdc_obj[itf]->cdc_subclass.comm_subclass = cfg->cdc_subclass.comm_subclass;
+
88 } else {
+
89 ESP_RETURN_ON_ERROR(tusb_cdc_data_init(itf), TAG, "tusb_cdc_data_init failed");
+
90 cdc_obj[itf]->cdc_subclass.data_subclass = cfg->cdc_subclass.data_subclass;
+
91 }
+
92 cdc_obj[itf]->usb_dev = cfg->usb_dev;
+
93 return ESP_OK;
+
94}
+
+
95
+
+ +
97{
+
98 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, true, -1), TAG, "cdc_obj_check failed");
+
99
+
100 ESP_LOGD(TAG, "Deinit CDC %d", itf);
+
101 if (cdc_obj[itf]->type == TUSB_CLASS_CDC) {
+
102 ESP_RETURN_ON_ERROR(tusb_cdc_deinit_comm(itf), TAG, "tusb_cdc_deinit_comm failed");
+
103 } else if (cdc_obj[itf]->type == TUSB_CLASS_CDC_DATA) {
+
104 ESP_RETURN_ON_ERROR(tusb_cdc_deinit_data(itf), TAG, "tusb_cdc_deinit_data failed");
+
105 } else {
+
106 return ESP_ERR_INVALID_ARG;
+
107 }
+
108 return ESP_OK;
+
109}
+
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
esp_err_t tinyusb_cdc_deinit(int itf)
De-initializing CDC. Clean its objects.
Definition cdc.c:96
+
esp_tusb_cdc_t * tinyusb_cdc_get_intf(int itf_num)
Return interface of a CDC device.
Definition cdc.c:18
+
static esp_err_t tusb_cdc_comm_init(int itf)
Definition cdc.c:36
+
static esp_err_t tusb_cdc_deinit_comm(int itf)
Definition cdc.c:50
+
static esp_err_t cdc_obj_check(int itf, bool expected_inited, tusb_class_code_t expected_type)
Definition cdc.c:26
+
static esp_err_t tusb_cdc_deinit_data(int itf)
Definition cdc.c:72
+
#define CDC_INTF_NUM
Definition cdc.c:14
+
static esp_err_t tusb_cdc_data_init(int itf)
Definition cdc.c:58
+
static esp_tusb_cdc_t * cdc_obj[CFG_TUD_CDC]
Definition cdc.c:15
+
esp_err_t tinyusb_cdc_init(int itf, const tinyusb_config_cdc_t *cfg)
Initializing CDC basic object.
Definition cdc.c:80
+ + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+ +
tusb_class_code_t type
Definition cdc.h:42
+ +
tinyusb_usbdev_t usb_dev
Definition cdc.h:32
+
cdc_comm_sublcass_type_t comm_subclass
Definition cdc.h:35
+
union tinyusb_config_cdc_t::@312104222326077254040135322351363045356166043242 cdc_subclass
+
cdc_data_sublcass_type_t data_subclass
Definition cdc.h:36
+
tusb_class_code_t cdc_class
Definition cdc.h:33
+
+
+
+ + + + diff --git a/docs/html/cdc_8h.html b/docs/html/cdc_8h.html new file mode 100644 index 0000000..94c5e48 --- /dev/null +++ b/docs/html/cdc_8h.html @@ -0,0 +1,352 @@ + + + + + + + +ESP-IDF Firmware: cdc.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cdc.h File Reference
+
+
+
#include <stdint.h>
+#include "freertos/FreeRTOS.h"
+#include "freertos/semphr.h"
+#include "freertos/timers.h"
+#include "tusb.h"
+#include "tinyusb_types.h"
+
+Include dependency graph for cdc.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  tinyusb_config_cdc_t
struct  esp_tusb_cdc_t
+ + +

+Enumerations

enum  cdc_data_sublcass_type_t { TINYUSB_CDC_DATA = 0x00 + }
+ + + + + + + +

+Functions

esp_err_t tinyusb_cdc_init (int itf, const tinyusb_config_cdc_t *cfg)
 Initializing CDC basic object.
esp_err_t tinyusb_cdc_deinit (int itf)
 De-initializing CDC. Clean its objects.
esp_tusb_cdc_ttinyusb_cdc_get_intf (int itf_num)
 Return interface of a CDC device.
+

Enumeration Type Documentation

+ +

◆ cdc_data_sublcass_type_t

+ +
+
+ + + + +
enum cdc_data_sublcass_type_t
+
+ + +
Enumerator
TINYUSB_CDC_DATA 
+ +

Definition at line 22 of file cdc.h.

+
22 {
+
23 TINYUSB_CDC_DATA = 0x00,
+
24} cdc_data_sublcass_type_t; // CDC120 specification
+
cdc_data_sublcass_type_t
Definition cdc.h:22
+
@ TINYUSB_CDC_DATA
Definition cdc.h:23
+
+
+
+

Function Documentation

+ +

◆ tinyusb_cdc_deinit()

+ +
+
+ + + + + + + +
esp_err_t tinyusb_cdc_deinit (int itf)
+
+ +

De-initializing CDC. Clean its objects.

+
Parameters
+ + +
itf- number of a CDC object
+
+
+
Returns
esp_err_t ESP_OK, ESP_ERR_INVALID_ARG, ESP_ERR_INVALID_STATE
+ +

Definition at line 96 of file cdc.c.

+
97{
+
98 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, true, -1), TAG, "cdc_obj_check failed");
+
99
+
100 ESP_LOGD(TAG, "Deinit CDC %d", itf);
+
101 if (cdc_obj[itf]->type == TUSB_CLASS_CDC) {
+
102 ESP_RETURN_ON_ERROR(tusb_cdc_deinit_comm(itf), TAG, "tusb_cdc_deinit_comm failed");
+
103 } else if (cdc_obj[itf]->type == TUSB_CLASS_CDC_DATA) {
+
104 ESP_RETURN_ON_ERROR(tusb_cdc_deinit_data(itf), TAG, "tusb_cdc_deinit_data failed");
+
105 } else {
+
106 return ESP_ERR_INVALID_ARG;
+
107 }
+
108 return ESP_OK;
+
109}
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
static esp_err_t tusb_cdc_deinit_comm(int itf)
Definition cdc.c:50
+
static esp_err_t cdc_obj_check(int itf, bool expected_inited, tusb_class_code_t expected_type)
Definition cdc.c:26
+
static esp_err_t tusb_cdc_deinit_data(int itf)
Definition cdc.c:72
+
static esp_tusb_cdc_t * cdc_obj[CFG_TUD_CDC]
Definition cdc.c:15
+
#define ESP_OK
Definition esp_err.h:23
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References cdc_obj, cdc_obj_check(), ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, TAG, tusb_cdc_deinit_comm(), and tusb_cdc_deinit_data().

+ +

Referenced by tusb_cdc_acm_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tinyusb_cdc_get_intf()

+ +
+
+ + + + + + + +
esp_tusb_cdc_t * tinyusb_cdc_get_intf (int itf_num)
+
+ +

Return interface of a CDC device.

+
Parameters
+ + +
itf_num
+
+
+
Returns
esp_tusb_cdc_t* pointer to the interface or (NULL) on error
+ +

Definition at line 18 of file cdc.c.

+
19{
+
20 if (itf_num >= CDC_INTF_NUM || itf_num < 0) {
+
21 return NULL;
+
22 }
+
23 return cdc_obj[itf_num];
+
24}
+
#define CDC_INTF_NUM
Definition cdc.c:14
+
+

References CDC_INTF_NUM, and cdc_obj.

+ +

Referenced by alloc_obj(), cdc_obj_check(), free_obj(), and get_acm().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tinyusb_cdc_init()

+ +
+
+ + + + + + + + + + + +
esp_err_t tinyusb_cdc_init (int itf,
const tinyusb_config_cdc_t * cfg )
+
+ +

Initializing CDC basic object.

+
Parameters
+ + + +
itf- number of a CDC object
cfg- CDC configuration structure
+
+
+
Returns
esp_err_t ESP_OK or ESP_FAIL
+ +

Definition at line 80 of file cdc.c.

+
81{
+
82 ESP_RETURN_ON_ERROR(cdc_obj_check(itf, false, -1), TAG, "cdc_obj_check failed");
+
83
+
84 ESP_LOGD(TAG, "Init CDC %d", itf);
+
85 if (cfg->cdc_class == TUSB_CLASS_CDC) {
+
86 ESP_RETURN_ON_ERROR(tusb_cdc_comm_init(itf), TAG, "tusb_cdc_comm_init failed");
+
87 cdc_obj[itf]->cdc_subclass.comm_subclass = cfg->cdc_subclass.comm_subclass;
+
88 } else {
+
89 ESP_RETURN_ON_ERROR(tusb_cdc_data_init(itf), TAG, "tusb_cdc_data_init failed");
+
90 cdc_obj[itf]->cdc_subclass.data_subclass = cfg->cdc_subclass.data_subclass;
+
91 }
+
92 cdc_obj[itf]->usb_dev = cfg->usb_dev;
+
93 return ESP_OK;
+
94}
+
static esp_err_t tusb_cdc_comm_init(int itf)
Definition cdc.c:36
+
static esp_err_t tusb_cdc_data_init(int itf)
Definition cdc.c:58
+
tinyusb_usbdev_t usb_dev
Definition cdc.h:32
+
cdc_comm_sublcass_type_t comm_subclass
Definition cdc.h:35
+
union tinyusb_config_cdc_t::@312104222326077254040135322351363045356166043242 cdc_subclass
+
cdc_data_sublcass_type_t data_subclass
Definition cdc.h:36
+
tusb_class_code_t cdc_class
Definition cdc.h:33
+
+

References tinyusb_config_cdc_t::cdc_class, cdc_obj, cdc_obj_check(), tinyusb_config_cdc_t::cdc_subclass, tinyusb_config_cdc_t::comm_subclass, tinyusb_config_cdc_t::data_subclass, ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, TAG, tusb_cdc_comm_init(), tusb_cdc_data_init(), and tinyusb_config_cdc_t::usb_dev.

+ +

Referenced by tusb_cdc_acm_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/cdc_8h.js b/docs/html/cdc_8h.js new file mode 100644 index 0000000..83a80fc --- /dev/null +++ b/docs/html/cdc_8h.js @@ -0,0 +1,11 @@ +var cdc_8h = +[ + [ "tinyusb_config_cdc_t", "structtinyusb__config__cdc__t.html", "structtinyusb__config__cdc__t" ], + [ "esp_tusb_cdc_t", "structesp__tusb__cdc__t.html", "structesp__tusb__cdc__t" ], + [ "cdc_data_sublcass_type_t", "cdc_8h.html#ae157e6e8ce402fb83ba72c20d0ccd994", [ + [ "TINYUSB_CDC_DATA", "cdc_8h.html#ae157e6e8ce402fb83ba72c20d0ccd994a0de7a23699a2787886b1914a62cc7a5c", null ] + ] ], + [ "tinyusb_cdc_deinit", "cdc_8h.html#a0fea5ebace85419b82be50d14552a846", null ], + [ "tinyusb_cdc_get_intf", "cdc_8h.html#a19af1be61f3d48fb87311dd61c06cbae", null ], + [ "tinyusb_cdc_init", "cdc_8h.html#ae8ab12e178b5e70f3da27e93d8d91a90", null ] +]; \ No newline at end of file diff --git a/docs/html/cdc_8h__dep__incl.md5 b/docs/html/cdc_8h__dep__incl.md5 new file mode 100644 index 0000000..8159358 --- /dev/null +++ b/docs/html/cdc_8h__dep__incl.md5 @@ -0,0 +1 @@ +cc00ba14352e554c30d5a7f1ab6ed1ac \ No newline at end of file diff --git a/docs/html/cdc_8h__dep__incl.svg b/docs/html/cdc_8h__dep__incl.svg new file mode 100644 index 0000000..72fad16 --- /dev/null +++ b/docs/html/cdc_8h__dep__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +cdc.h + + +Node1 + + +cdc.h + + + + + +Node2 + + +cdc.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +tusb_console.c + + + + + +Node1->Node4 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8h__dep__incl_org.svg b/docs/html/cdc_8h__dep__incl_org.svg new file mode 100644 index 0000000..3de74e6 --- /dev/null +++ b/docs/html/cdc_8h__dep__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +cdc.h + + +Node1 + + +cdc.h + + + + + +Node2 + + +cdc.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tusb_cdc_acm.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +tusb_console.c + + + + + +Node1->Node4 + + + + + + + + diff --git a/docs/html/cdc_8h__incl.md5 b/docs/html/cdc_8h__incl.md5 new file mode 100644 index 0000000..0de6976 --- /dev/null +++ b/docs/html/cdc_8h__incl.md5 @@ -0,0 +1 @@ +ba56ff5001d430d33544222a6c98a904 \ No newline at end of file diff --git a/docs/html/cdc_8h__incl.svg b/docs/html/cdc_8h__incl.svg new file mode 100644 index 0000000..3776118 --- /dev/null +++ b/docs/html/cdc_8h__incl.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +cdc.h + + +Node1 + + +cdc.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +freertos/FreeRTOS.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +freertos/semphr.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/timers.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +tusb.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +tinyusb_types.h + + + + + +Node1->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/cdc_8h__incl_org.svg b/docs/html/cdc_8h__incl_org.svg new file mode 100644 index 0000000..4e7be53 --- /dev/null +++ b/docs/html/cdc_8h__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +cdc.h + + +Node1 + + +cdc.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +freertos/FreeRTOS.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +freertos/semphr.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/timers.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +tusb.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +tinyusb_types.h + + + + + +Node1->Node7 + + + + + + + + diff --git a/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph.md5 b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph.md5 new file mode 100644 index 0000000..0f28c07 --- /dev/null +++ b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph.md5 @@ -0,0 +1 @@ +3e90a1e2ef1220bd289f5d78559c05c5 \ No newline at end of file diff --git a/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph.svg b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph.svg new file mode 100644 index 0000000..abbd302 --- /dev/null +++ b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +tinyusb_cdc_deinit + + +Node1 + + +tinyusb_cdc_deinit + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +tusb_cdc_deinit_comm + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +tusb_cdc_deinit_data + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5->Node2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph_org.svg b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph_org.svg new file mode 100644 index 0000000..e9de98f --- /dev/null +++ b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +tinyusb_cdc_deinit + + +Node1 + + +tinyusb_cdc_deinit + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +tusb_cdc_deinit_comm + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +tusb_cdc_deinit_data + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5->Node2 + + + + + + + + diff --git a/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph.md5 b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph.md5 new file mode 100644 index 0000000..4ae1c3d --- /dev/null +++ b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph.md5 @@ -0,0 +1 @@ +8ebc15c008a00df7af76b9a07a0728d9 \ No newline at end of file diff --git a/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph.svg b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph.svg new file mode 100644 index 0000000..69a4dcf --- /dev/null +++ b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tinyusb_cdc_deinit + + +Node1 + + +tinyusb_cdc_deinit + + + + + +Node2 + + +tusb_cdc_acm_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph_org.svg b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph_org.svg new file mode 100644 index 0000000..eddeb14 --- /dev/null +++ b/docs/html/cdc_8h_a0fea5ebace85419b82be50d14552a846_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tinyusb_cdc_deinit + + +Node1 + + +tinyusb_cdc_deinit + + + + + +Node2 + + +tusb_cdc_acm_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph.md5 b/docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph.md5 new file mode 100644 index 0000000..9734f59 --- /dev/null +++ b/docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph.md5 @@ -0,0 +1 @@ +0e7453972eeafbe12ddb8d51a88756f6 \ No newline at end of file diff --git a/docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph.svg b/docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph.svg new file mode 100644 index 0000000..d9703ee --- /dev/null +++ b/docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph.svg @@ -0,0 +1,712 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +tinyusb_cdc_get_intf + + +Node1 + + +tinyusb_cdc_get_intf + + + + + +Node2 + + +alloc_obj + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +cdc_obj_check + + + + + +Node1->Node5 + + + + + + + + +Node12 + + +free_obj + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +get_acm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +tinyusb_cdc_deinit + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +tinyusb_cdc_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +tusb_cdc_comm_init + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +tusb_cdc_data_init + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +tusb_cdc_deinit_comm + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +tusb_cdc_deinit_data + + + + + +Node5->Node11 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9->Node7 + + + + + + + + +Node10->Node6 + + + + + + + + +Node11->Node6 + + + + + + + + +Node12->Node3 + + + + + + + + +Node13->Node3 + + + + + + + + +Node14 + + +tinyusb_cdcacm_read + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +tinyusb_cdcacm_register +_callback + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +tinyusb_cdcacm_unregister +_callback + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +tinyusb_cdcacm_write +_flush + + + + + +Node13->Node17 + + + + + + + + +Node20 + + +tinyusb_cdcacm_write +_queue + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +tinyusb_cdcacm_write +_queue_char + + + + + +Node13->Node21 + + + + + + + + +Node25 + + +tud_cdc_line_coding_cb + + + + + +Node13->Node25 + + + + + + + + +Node26 + + +tud_cdc_line_state_cb + + + + + +Node13->Node26 + + + + + + + + +Node27 + + +tud_cdc_rx_cb + + + + + +Node13->Node27 + + + + + + + + +Node28 + + +tud_cdc_rx_wanted_cb + + + + + +Node13->Node28 + + + + + + + + +Node29 + + +tusb_cdc_acm_initialized + + + + + +Node13->Node29 + + + + + + + + +Node15->Node3 + + + + + + + + +Node18 + + +safe_cdcacm_write_flush + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +cdc_tx_task + + + + + +Node18->Node19 + + + + + + + + +Node19->Node4 + + + + + + + + +Node20->Node19 + + + + + + + + +Node22 + + +tusb_write + + + + + +Node21->Node22 + + + + + + + + +Node23 + + +esp_vfs_tusb_cdc_register + + + + + +Node22->Node23 + + + + + + + + +Node29->Node19 + + + + + + + + +Node29->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph_org.svg b/docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph_org.svg new file mode 100644 index 0000000..66b387d --- /dev/null +++ b/docs/html/cdc_8h_a19af1be61f3d48fb87311dd61c06cbae_icgraph_org.svg @@ -0,0 +1,629 @@ + + + + + + +tinyusb_cdc_get_intf + + +Node1 + + +tinyusb_cdc_get_intf + + + + + +Node2 + + +alloc_obj + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +cdc_obj_check + + + + + +Node1->Node5 + + + + + + + + +Node12 + + +free_obj + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +get_acm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +tusb_cdc_acm_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +tinyusb_cdc_deinit + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +tinyusb_cdc_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +tusb_cdc_comm_init + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +tusb_cdc_data_init + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +tusb_cdc_deinit_comm + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +tusb_cdc_deinit_data + + + + + +Node5->Node11 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9->Node7 + + + + + + + + +Node10->Node6 + + + + + + + + +Node11->Node6 + + + + + + + + +Node12->Node3 + + + + + + + + +Node13->Node3 + + + + + + + + +Node14 + + +tinyusb_cdcacm_read + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +tinyusb_cdcacm_register +_callback + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +tinyusb_cdcacm_unregister +_callback + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +tinyusb_cdcacm_write +_flush + + + + + +Node13->Node17 + + + + + + + + +Node20 + + +tinyusb_cdcacm_write +_queue + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +tinyusb_cdcacm_write +_queue_char + + + + + +Node13->Node21 + + + + + + + + +Node25 + + +tud_cdc_line_coding_cb + + + + + +Node13->Node25 + + + + + + + + +Node26 + + +tud_cdc_line_state_cb + + + + + +Node13->Node26 + + + + + + + + +Node27 + + +tud_cdc_rx_cb + + + + + +Node13->Node27 + + + + + + + + +Node28 + + +tud_cdc_rx_wanted_cb + + + + + +Node13->Node28 + + + + + + + + +Node29 + + +tusb_cdc_acm_initialized + + + + + +Node13->Node29 + + + + + + + + +Node15->Node3 + + + + + + + + +Node18 + + +safe_cdcacm_write_flush + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +cdc_tx_task + + + + + +Node18->Node19 + + + + + + + + +Node19->Node4 + + + + + + + + +Node20->Node19 + + + + + + + + +Node22 + + +tusb_write + + + + + +Node21->Node22 + + + + + + + + +Node23 + + +esp_vfs_tusb_cdc_register + + + + + +Node22->Node23 + + + + + + + + +Node29->Node19 + + + + + + + + +Node29->Node23 + + + + + + + + diff --git a/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 new file mode 100644 index 0000000..2635772 --- /dev/null +++ b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.md5 @@ -0,0 +1 @@ +8c867fd814077c2d3ca440abf9c6d360 \ No newline at end of file diff --git a/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg new file mode 100644 index 0000000..6dcbd2c --- /dev/null +++ b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +tinyusb_cdc_init + + +Node1 + + +tinyusb_cdc_init + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +tusb_cdc_comm_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +tusb_cdc_data_init + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5->Node2 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph_org.svg b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph_org.svg new file mode 100644 index 0000000..5eadf68 --- /dev/null +++ b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +tinyusb_cdc_init + + +Node1 + + +tinyusb_cdc_init + + + + + +Node2 + + +cdc_obj_check + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +tusb_cdc_comm_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +tusb_cdc_data_init + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +tinyusb_cdc_get_intf + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5->Node2 + + + + + + + + diff --git a/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 new file mode 100644 index 0000000..7fe8b54 --- /dev/null +++ b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.md5 @@ -0,0 +1 @@ +4594d626555918d280fc5d147abab9be \ No newline at end of file diff --git a/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.svg b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.svg new file mode 100644 index 0000000..cfbb949 --- /dev/null +++ b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tinyusb_cdc_init + + +Node1 + + +tinyusb_cdc_init + + + + + +Node2 + + +tusb_cdc_acm_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph_org.svg b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph_org.svg new file mode 100644 index 0000000..210aab3 --- /dev/null +++ b/docs/html/cdc_8h_ae8ab12e178b5e70f3da27e93d8d91a90_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tinyusb_cdc_init + + +Node1 + + +tinyusb_cdc_init + + + + + +Node2 + + +tusb_cdc_acm_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/cdc_8h_source.html b/docs/html/cdc_8h_source.html new file mode 100644 index 0000000..79074af --- /dev/null +++ b/docs/html/cdc_8h_source.html @@ -0,0 +1,194 @@ + + + + + + + +ESP-IDF Firmware: cdc.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cdc.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#ifdef __cplusplus
+
10extern "C" {
+
11#endif
+
12
+
13#include <stdint.h>
+
14#include "freertos/FreeRTOS.h"
+
15#include "freertos/semphr.h"
+
16#include "freertos/timers.h"
+
17#include "tusb.h"
+
18#include "tinyusb_types.h"
+
19
+
20/* CDC classification
+
21 ********************************************************************* */
+
+
22typedef enum {
+ +
24} cdc_data_sublcass_type_t; // CDC120 specification
+
+
25
+
26/* Note:other classification is represented in the file components\tinyusb\tinyusb\src\class\cdc\cdc.h */
+
27
+
28/*********************************************************************** CDC classification*/
+
29/* Structs
+
30 ********************************************************************* */
+
+
31typedef struct {
+ +
33 tusb_class_code_t cdc_class;
+
34 union {
+
35 cdc_comm_sublcass_type_t comm_subclass;
+ +
37 } cdc_subclass;
+ +
+
39
+
+
40typedef struct {
+ +
42 tusb_class_code_t type;
+
43 union {
+
44 cdc_comm_sublcass_type_t comm_subclass;
+ +
46 } cdc_subclass;
+ + +
+
49/*********************************************************************** Structs*/
+
50/* Functions
+
51 ********************************************************************* */
+ +
60
+
61
+ +
69
+
70
+ +
78/*********************************************************************** Functions*/
+
79
+
80#ifdef __cplusplus
+
81}
+
82#endif
+
esp_err_t tinyusb_cdc_deinit(int itf)
De-initializing CDC. Clean its objects.
Definition cdc.c:96
+
esp_tusb_cdc_t * tinyusb_cdc_get_intf(int itf_num)
Return interface of a CDC device.
Definition cdc.c:18
+
cdc_data_sublcass_type_t
Definition cdc.h:22
+
@ TINYUSB_CDC_DATA
Definition cdc.h:23
+
esp_err_t tinyusb_cdc_init(int itf, const tinyusb_config_cdc_t *cfg)
Initializing CDC basic object.
Definition cdc.c:80
+
int esp_err_t
Definition esp_err.h:21
+ +
cdc_comm_sublcass_type_t comm_subclass
Definition cdc.h:44
+
tinyusb_usbdev_t usb_dev
Definition cdc.h:41
+
tusb_class_code_t type
Definition cdc.h:42
+
cdc_data_sublcass_type_t data_subclass
Definition cdc.h:45
+
void * subclass_obj
Definition cdc.h:47
+ +
tinyusb_usbdev_t usb_dev
Definition cdc.h:32
+
cdc_comm_sublcass_type_t comm_subclass
Definition cdc.h:35
+
cdc_data_sublcass_type_t data_subclass
Definition cdc.h:36
+
tusb_class_code_t cdc_class
Definition cdc.h:33
+ +
tinyusb_usbdev_t
+
+
+
+ + + + diff --git a/docs/html/classdspm_1_1_mat.html b/docs/html/classdspm_1_1_mat.html new file mode 100644 index 0000000..ab4f252 --- /dev/null +++ b/docs/html/classdspm_1_1_mat.html @@ -0,0 +1,3202 @@ + + + + + + + +ESP-IDF Firmware: dspm::Mat Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm::Mat Class Reference
+
+
+ +

Matrix. + More...

+ +

#include <mat.h>

+ + + + +

+Data Structures

struct  Rect
 Rectangular area. More...
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Mat (int rows, int cols)
 Mat (float *data, int rows, int cols)
 Mat (float *data, int rows, int cols, int stride)
 Mat ()
virtual ~Mat ()
 Mat (const Mat &src)
 Make copy of matrix.
Mat getROI (int startRow, int startCol, int roiRows, int roiCols)
 Create a subset of matrix as ROI (Region of Interest).
Mat getROI (int startRow, int startCol, int roiRows, int roiCols, int stride)
 Create a subset of matrix as ROI (Region of Interest).
Mat getROI (const Mat::Rect &rect)
 Create a subset of matrix as ROI (Region of Interest).
void Copy (const Mat &src, int row_pos, int col_pos)
void CopyHead (const Mat &src)
 copy header of matrix
void PrintHead (void)
 print matrix header
Mat Get (int row_start, int row_size, int col_start, int col_size)
Mat Get (const Mat::Rect &rect)
Matoperator= (const Mat &src)
float & operator() (int row, int col)
const float & operator() (int row, int col) const
Matoperator+= (const Mat &A)
Matoperator+= (float C)
Matoperator-= (const Mat &A)
Matoperator-= (float C)
Matoperator*= (const Mat &A)
Matoperator*= (float C)
Matoperator/= (float C)
Matoperator/= (const Mat &B)
Mat operator^ (int C)
void swapRows (int row1, int row2)
Mat t ()
Mat block (int startRow, int startCol, int blockRows, int blockCols)
void normalize (void)
float norm (void)
void clear (void)
Mat gaussianEliminate ()
 Gaussian Elimination.
Mat rowReduceFromGaussian ()
Mat inverse ()
Mat pinv ()
float det (int n)
+ + + + + + + + + + + + + + +

+Static Public Member Functions

static Mat eye (int size)
static Mat ones (int size)
static Mat ones (int rows, int cols)
static Mat solve (Mat A, Mat b)
 Solve the matrix.
static Mat bandSolve (Mat A, Mat b, int k)
 Band solve the matrix.
static Mat roots (Mat A, Mat y)
 Solve the matrix.
static float dotProduct (Mat A, Mat B)
 Dotproduct of two vectors.
static Mat augment (Mat A, Mat B)
 Augmented matrices.
+ + + + + + + + + +

+Data Fields

int rows
int cols
int stride
int padding
float * data
int length
bool ext_buff
bool sub_matrix
+ + +

+Static Public Attributes

static float abs_tol = 1e-10
+ + + + + +

+Private Member Functions

Mat cofactor (int row, int col, int n)
Mat adjoint ()
void allocate ()
Mat expHelper (const Mat &m, int num)
+

Detailed Description

+

Matrix.

+

The Mat class provides basic matrix operations on single-precision floating point values.

+ +

Definition at line 30 of file mat.h.

+

Constructor & Destructor Documentation

+ +

◆ Mat() [1/5]

+ +
+
+ + + + + + + + + + + +
dspm::Mat::Mat (int rows,
int cols )
+
+

Constructor allocate internal buffer.

Parameters
+ + + +
[in]rowsamount of matrix rows
[in]colsamount of matrix columns
+
+
+ +

Definition at line 69 of file mat.cpp.

+
70{
+
71 ESP_LOGD("Mat", "Mat(%i, %i)", rows, cols);
+
72 this->rows = rows;
+
73 this->cols = cols;
+
74 this->sub_matrix = false;
+
75 this->stride = cols;
+
76 this->padding = 0;
+
77 allocate();
+
78 memset(this->data, 0, this->length * sizeof(float));
+
79}
+
int stride
Definition mat.h:35
+
float * data
Definition mat.h:37
+
int cols
Definition mat.h:34
+
int length
Definition mat.h:38
+
bool sub_matrix
Definition mat.h:41
+
int padding
Definition mat.h:36
+
void allocate()
Definition mat.cpp:834
+
int rows
Definition mat.h:33
+
#define ESP_LOGD
Definition esp_log.h:22
+
+

References allocate(), cols, data, ESP_LOGD, length, padding, rows, stride, and sub_matrix.

+ +

Referenced by adjoint(), augment(), bandSolve(), block(), cofactor(), Copy(), CopyHead(), det(), dotProduct(), expHelper(), eye(), gaussianEliminate(), Get(), Get(), getROI(), getROI(), getROI(), inverse(), Mat(), ones(), ones(), operator*=(), operator*=(), operator+=(), operator+=(), operator-=(), operator-=(), operator/=(), operator/=(), operator=(), operator^(), pinv(), roots(), rowReduceFromGaussian(), solve(), and t().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ Mat() [2/5]

+ +
+
+ + + + + + + + + + + + + + + + +
dspm::Mat::Mat (float * data,
int rows,
int cols )
+
+

Constructor use external buffer.

Parameters
+ + + + +
[in]dataexternal buffer with row-major matrix data
[in]rowsamount of matrix rows
[in]colsamount of matrix columns
+
+
+ +

Definition at line 81 of file mat.cpp.

+
82{
+
83 ESP_LOGD("Mat", "Mat(data, %i, %i)", rows, cols);
+
84 this->rows = rows;
+
85 this->cols = cols;
+
86 this->sub_matrix = false;
+
87 this->stride = cols;
+
88 this->padding = 0;
+
89 this->length = this->rows * this->cols;
+
90 allocate();
+
91 this->ext_buff = false;
+
92 for (size_t i = 0; i < this->length; i++) {
+
93 this->data[i] = data[i];
+
94 }
+
95}
+
bool ext_buff
Definition mat.h:40
+
+

References allocate(), cols, data, ESP_LOGD, ext_buff, length, padding, rows, stride, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ Mat() [3/5]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
dspm::Mat::Mat (float * data,
int rows,
int cols,
int stride )
+
+

Constructor

Parameters
+ + + + + +
[in]dataexternal buffer with row-major matrix data
[in]rowsamount of matrix rows
[in]colsamount of matrix columns
[in]stridecol stride
+
+
+ +

Definition at line 57 of file mat.cpp.

+
58{
+
59 this->rows = roi_rows;
+
60 this->cols = roi_cols;
+
61 this->stride = stride;
+
62 this->padding = stride - roi_cols;
+
63 this->length = this->rows * this->cols;
+
64 this->sub_matrix = true;
+
65 this->ext_buff = true;
+
66 this->data = data;
+
67}
+
+

References cols, data, ext_buff, length, padding, rows, stride, and sub_matrix.

+ +
+
+ +

◆ Mat() [4/5]

+ +
+
+ + + + + + + +
dspm::Mat::Mat ()
+
+

Allocate matrix with undefined size.

+ +

Definition at line 98 of file mat.cpp.

+
99{
+
100 this->rows = 1;
+
101 this->cols = 1;
+
102 this->sub_matrix = false;
+
103 this->stride = cols;
+
104 this->padding = 0;
+
105 ESP_LOGD("Mat", "Mat()");
+
106
+
107 allocate();
+
108 this->data[0] = 0;
+
109}
+
+

References allocate(), cols, data, ESP_LOGD, padding, rows, stride, and sub_matrix.

+ +

Referenced by det().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ ~Mat()

+ +
+
+ + + + + +
+ + + + + + + +
dspm::Mat::~Mat ()
+
+virtual
+
+ +

Definition at line 111 of file mat.cpp.

+
112{
+
113 ESP_LOGD("Mat", "~Mat(%i, %i), ext_buff=%i, data = %p", this->rows, this->cols, this->ext_buff, this->data);
+
114 if (false == this->ext_buff) {
+
115 delete[] data;
+
116 }
+
117}
+
+

References cols, data, ESP_LOGD, ext_buff, and rows.

+ +
+
+ +

◆ Mat() [5/5]

+ +
+
+ + + + + + + +
dspm::Mat::Mat (const Mat & src)
+
+ +

Make copy of matrix.

+

if src matrix is sub matrix, only the header is copied if src matrix is matrix, header and data are copied

+
Parameters
+ + +
[in]srcsource matrix
+
+
+ +

Definition at line 119 of file mat.cpp.

+
120{
+
121 this->rows = m.rows;
+
122 this->cols = m.cols;
+
123 this->padding = m.padding;
+
124 this->stride = m.stride;
+
125 this->data = m.data;
+
126 this->sub_matrix = m.sub_matrix;
+
127
+
128 if (m.sub_matrix) {
+
129 this->length = m.length;
+
130 this->data = m.data;
+
131 this->ext_buff = true;
+
132 } else {
+
133 allocate();
+
134 memcpy(this->data, m.data, this->length * sizeof(float));
+
135 }
+
136}
+
const int m
Definition test_mmult.c:16
+
+

References allocate(), cols, data, ext_buff, length, m, Mat(), padding, rows, stride, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+

Member Function Documentation

+ +

◆ adjoint()

+ +
+
+ + + + + +
+ + + + + + + +
Mat dspm::Mat::adjoint ()
+
+private
+
+ +

Definition at line 783 of file mat.cpp.

+
784{
+
785 Mat adj(this->rows, this->cols);
+
786 if (this->rows == 1) {
+
787 adj(0, 0) = 1;
+
788 return adj;
+
789 }
+
790
+
791 // temp is used to store cofactors of A(,)
+
792 int sign = 1;
+
793 Mat temp(this->rows, this->cols);
+
794
+
795 for (int i = 0; i < this->rows; i++) {
+
796 for (int j = 0; j < this->cols; j++) {
+
797 // Get cofactor of A(i,j)
+
798 temp = this->cofactor( i, j, this->rows);
+
799
+
800 // sign of adj(j,i) positive if sum of row
+
801 // and column indexes is even.
+
802 sign = ((i + j) % 2 == 0) ? 1 : -1;
+
803
+
804 // Interchanging rows and columns to get the
+
805 // transpose of the cofactor matrix
+
806 adj(j, i) = (sign) * (temp.det(this->rows - 1));
+
807 }
+
808 }
+
809 return adj;
+
810}
+
Mat(int rows, int cols)
Definition mat.cpp:69
+
Mat cofactor(int row, int col, int n)
Definition mat.cpp:722
+
+

References cofactor(), cols, det(), Mat(), and rows.

+ +

Referenced by inverse().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ allocate()

+ +
+
+ + + + + +
+ + + + + + + +
void dspm::Mat::allocate ()
+
+private
+
+ +

Definition at line 834 of file mat.cpp.

+
835{
+
836 this->ext_buff = false;
+
837 this->length = this->rows * this->cols;
+
838 data = new float[this->length];
+
839 ESP_LOGD("Mat", "allocate(%i) = %p", this->length, this->data);
+
840}
+
+

References cols, data, ESP_LOGD, ext_buff, length, and rows.

+ +

Referenced by Mat(), Mat(), Mat(), Mat(), and operator=().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ augment()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
Mat dspm::Mat::augment (Mat A,
Mat B )
+
+static
+
+ +

Augmented matrices.

+

Augmented matrices

+
Parameters
+ + + +
[in]AInput vector A MxN
[in]BInput vector B MxK
+
+
+
Returns
    +
  • Augmented matrix Mx(N+K)
  • +
+
+ +

Definition at line 585 of file mat.cpp.

+
586{
+
587 Mat AB(A.rows, A.cols + B.cols);
+
588 for (int i = 0; i < AB.rows; ++i) {
+
589 for (int j = 0; j < AB.cols; ++j) {
+
590 if (j < A.cols) {
+
591 AB(i, j) = A(i, j);
+
592 } else {
+
593 AB(i, j) = B(i, j - A.cols);
+
594 }
+
595 }
+
596 }
+
597 return AB;
+
598}
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
+

References A, B, cols, Mat(), and rows.

+ +

Referenced by pinv(), and roots().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ bandSolve()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
Mat dspm::Mat::bandSolve (Mat A,
Mat b,
int k )
+
+static
+
+ +

Band solve the matrix.

+

Solve band matrix. Find roots for the matrix A*x = b with bandwidth k.

+
Parameters
+ + + + +
[in]Amatrix [N]x[N] with input coefficients
[in]bvector [N]x[1] with result values
[in]kupper bandwidth value
+
+
+
Returns
    +
  • matrix [N]x[1] with roots
  • +
+
+ +

Definition at line 514 of file mat.cpp.

+
515{
+
516 // optimized Gaussian elimination
+
517 int bandsBelow = (k - 1) / 2;
+
518 for (int i = 0; i < A.rows; ++i) {
+
519 if (A(i, i) == 0) {
+
520 // pivot 0 - error
+
521 ESP_LOGW("Mat", "Error: the coefficient matrix has 0 as a pivot. Please fix the input and try again.");
+
522 Mat err_result(b.rows, 1);
+
523 memset(err_result.data, 0, b.rows * sizeof(float));
+
524 return err_result;
+
525 }
+
526 float a_ii = 1 / A(i, i);
+
527 for (int j = i + 1; j < A.rows && j <= i + bandsBelow; ++j) {
+
528 int k = i + 1;
+
529 while ((k < A.cols) && (fabs(A(j, k)) > abs_tol)) {
+
530 A(j, k) -= A(i, k) * (A(j, i) * a_ii);
+
531 k++;
+
532 }
+
533 b(j, 0) -= b(i, 0) * (A(j, i) * a_ii);
+
534 A(j, i) = 0;
+
535 }
+
536 }
+
537
+
538 // Back substitution
+
539 Mat x(b.rows, 1);
+
540 x((x.rows - 1), 0) = b((x.rows - 1), 0) / A((x.rows - 1), (x.rows - 1));
+
541 for (int i = x.rows - 2; i >= 0; --i) {
+
542 float sum = 0;
+
543 for (int j = i + 1; j < x.rows; ++j) {
+
544 sum += A(i, j) * x(j, 0);
+
545 }
+
546 x(i, 0) = (b(i, 0) - sum) / A(i, i);
+
547 }
+
548
+
549 return x;
+
550}
+
static float abs_tol
Definition mat.h:39
+
float x[1024]
Definition test_fir.c:10
+
const int k
Definition test_mmult.c:18
+
+

References A, abs_tol, data, k, Mat(), rows, and x.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ block()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
Mat dspm::Mat::block (int startRow,
int startCol,
int blockRows,
int blockCols )
+
+

Return part of matrix from defined position (startRow, startCol) as a matrix[blockRows x blockCols].

+
Parameters
+ + + + + +
[in]startRowstart row position
[in]startColstart column position
[in]blockRowsamount of rows in result matrix
[in]blockColsamount of columns in the result matrix
+
+
+
Returns
    +
  • matrix [blockRows]x[blockCols]
  • +
+
+ +

Definition at line 433 of file mat.cpp.

+
434{
+
435 Mat result(blockRows, blockCols);
+
436 for (int i = 0; i < blockRows; ++i) {
+
437 for (int j = 0; j < blockCols; ++j) {
+
438 result(i, j) = (*this)(startRow + i, startCol + j);
+
439 }
+
440 }
+
441 return result;
+
442}
+
+

References Mat().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ clear()

+ +
+
+ + + + + + + +
void dspm::Mat::clear (void )
+
+

The method fill 0 to the matrix structure.

+ +

Definition at line 425 of file mat.cpp.

+
426{
+
427 for (int row = 0; row < this->rows; row++) {
+
428 memset(this->data + (row * this->stride), 0, this->cols * sizeof(float));
+
429 }
+
430}
+
+

References cols, data, rows, and stride.

+ +
+
+ +

◆ cofactor()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
Mat dspm::Mat::cofactor (int row,
int col,
int n )
+
+private
+
+ +

Definition at line 722 of file mat.cpp.

+
723{
+
724 int i = 0, j = 0;
+
725 Mat result(n, n);
+
726 // Looping for each element of the matrix
+
727 for (int r = 0; r < n; r++) {
+
728 for (int c = 0; c < n; c++) {
+
729 // Copying into temporary matrix only those element
+
730 // which are not in given row and column
+
731 if (r != row && c != col) {
+
732 result(i, j++) = (*this)(r, c);
+
733
+
734 // Row is filled, so increase row index and
+
735 // reset col index
+
736 if (j == this->rows - 1) {
+
737 j = 0;
+
738 i++;
+
739 }
+
740 }
+
741 }
+
742 }
+
743 return result;
+
744}
+
const int n
Definition test_mmult.c:17
+
+

References Mat(), n, and rows.

+ +

Referenced by adjoint().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ Copy()

+ +
+
+ + + + + + + + + + + + + + + + +
void dspm::Mat::Copy (const Mat & src,
int row_pos,
int col_pos )
+
+

Make copy of matrix.

Parameters
+ + + + +
[in]srcsource matrix
[in]row_posstart row position of destination matrix
[in]col_posstart col position of destination matrix
+
+
+ +

Definition at line 168 of file mat.cpp.

+
169{
+
170 if ((row_pos + src.rows) > this->rows) {
+
171 return;
+
172 }
+
173 if ((col_pos + src.cols) > this->cols) {
+
174 return;
+
175 }
+
176
+
177 for (size_t r = 0; r < src.rows; r++) {
+
178 memcpy(&this->data[(r + row_pos) * this->stride + col_pos], &src.data[r * src.cols], src.cols * sizeof(float));
+
179 }
+
180}
+
+

References cols, data, Mat(), rows, and stride.

+ +

Referenced by ekf_imu13states::StateXdot(), ekf_imu13states::UpdateRefMeasurement(), ekf_imu13states::UpdateRefMeasurement(), and ekf_imu13states::UpdateRefMeasurementMagn().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ CopyHead()

+ +
+
+ + + + + + + +
void dspm::Mat::CopyHead (const Mat & src)
+
+ +

copy header of matrix

+

Make a shallow copy of matrix (no data copy)

Parameters
+ + +
[in]srcsource matrix
+
+
+ +

Definition at line 182 of file mat.cpp.

+
183{
+
184 if (!this->ext_buff) {
+
185 delete[] this->data;
+
186 }
+
187 this->rows = src.rows;
+
188 this->cols = src.cols;
+
189 this->length = src.length;
+
190 this->padding = src.padding;
+
191 this->stride = src.stride;
+
192 this->data = src.data;
+
193 this->ext_buff = src.ext_buff;
+
194 this->sub_matrix = src.sub_matrix;
+
195}
+
+

References cols, data, ext_buff, length, Mat(), padding, rows, stride, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ det()

+ +
+
+ + + + + + + +
float dspm::Mat::det (int n)
+
+

Find determinant

Parameters
+ + +
[in]nelement number in first row
+
+
+
Returns
    +
  • determinant value
  • +
+
+ +

Definition at line 746 of file mat.cpp.

+
747{
+
748 // Base case : if matrix contains single element
+
749 if (n == 1) {
+
750 return (*this)(0, 0);
+
751 }
+
752
+
753 float det = 1.0;
+
754 Mat *temp = new Mat(n, n);
+
755 *temp = *this;
+
756
+
757 for (int i = 0; i < n; i++) {
+
758 int pivot = i;
+
759 for (int j = i + 1; j < n; j++) {
+
760 if (std::abs((*temp)(j, i)) > std::abs((*temp)(pivot, i))) {
+
761 pivot = j;
+
762 }
+
763 }
+
764 if (pivot != i) {
+
765 temp->swapRows(i, pivot);
+
766 det *= -1;
+
767 }
+
768 if ((*temp)(i, i) == 0) {
+
769 return 0;
+
770 }
+
771 det *= (*temp)(i, i);
+
772 for (int j = i + 1; j < n; j++) {
+
773 float factor = (*temp)(j, i) / (*temp)(i, i);
+
774 for (int k = i + 1; k < n; k++) {
+
775 (*temp)(j, k) -= factor * (*temp)(i, k);
+
776 }
+
777 }
+
778 }
+
779 delete temp;
+
780 return det;
+
781}
+
float det(int n)
Definition mat.cpp:746
+
Mat()
Definition mat.cpp:98
+
+

References det(), k, Mat(), Mat(), n, and swapRows().

+ +

Referenced by adjoint(), det(), and inverse().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dotProduct()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
float dspm::Mat::dotProduct (Mat A,
Mat B )
+
+static
+
+ +

Dotproduct of two vectors.

+

The method returns dotproduct of two vectors

+
Parameters
+ + + +
[in]AInput vector A Nx1
[in]BInput vector B Nx1
+
+
+
Returns
    +
  • dotproduct value
  • +
+
+ +

Definition at line 576 of file mat.cpp.

+
577{
+
578 float sum = 0;
+
579 for (int i = 0; i < a.rows; ++i) {
+
580 sum += (a(i, 0) * b(i, 0));
+
581 }
+
582 return sum;
+
583}
+
+

References Mat(), and rows.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ expHelper()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
Mat dspm::Mat::expHelper (const Mat & m,
int num )
+
+private
+
+ +

Definition at line 842 of file mat.cpp.

+
843{
+
844 if (num == 0) {
+
845 return Mat::eye(m.rows);
+
846 } else if (num == 1) {
+
847 return m;
+
848 } else if (num % 2 == 0) { // num is even
+
849 return expHelper(m * m, num / 2);
+
850 } else { // num is odd
+
851 return m * expHelper(m * m, (num - 1) / 2);
+
852 }
+
853}
+
static Mat eye(int size)
Definition mat.cpp:394
+
Mat expHelper(const Mat &m, int num)
Definition mat.cpp:842
+
+

References expHelper(), eye(), m, and Mat().

+ +

Referenced by expHelper(), and operator^().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ eye()

+ +
+
+ + + + + +
+ + + + + + + +
Mat dspm::Mat::eye (int size)
+
+static
+
+

Create identity matrix. Create a square matrix and fill diagonal with 1.

+
Parameters
+ + +
[in]sizematrix size
+
+
+
Returns
    +
  • matrix [N]x[N] with 1 in diagonal
  • +
+
+ +

Definition at line 394 of file mat.cpp.

+
395{
+
396 Mat temp(size, size);
+
397 for (int i = 0; i < temp.rows; ++i) {
+
398 for (int j = 0; j < temp.cols; ++j) {
+
399 if (i == j) {
+
400 temp(i, j) = 1;
+
401 } else {
+
402 temp(i, j) = 0;
+
403 }
+
404 }
+
405 }
+
406 return temp;
+
407}
+
+

References cols, Mat(), and rows.

+ +

Referenced by ekf::CovariancePrediction(), dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), expHelper(), ekf_imu13states::Init(), ekf_imu13states::LinearizeFG(), pinv(), ekf_imu13states::TestFull(), ekf::UpdateRef(), ekf_imu13states::UpdateRefMeasurement(), and ekf_imu13states::UpdateRefMeasurementMagn().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ gaussianEliminate()

+ +
+
+ + + + + + + +
Mat dspm::Mat::gaussianEliminate ()
+
+ +

Gaussian Elimination.

+

Gaussian Elimination of matrix

+
Returns
    +
  • result matrix
  • +
+
+ +

Definition at line 600 of file mat.cpp.

+
601{
+
602 Mat Ab(*this);
+
603 int rows = Ab.rows;
+
604 int cols = Ab.cols;
+
605 int Acols = cols - 1;
+
606
+
607 int i = 0; // row tracker
+
608 int j = 0; // column tracker
+
609
+
610 // iterate through the rows
+
611 while (i < rows) {
+
612 // find a pivot for the row
+
613 bool pivot_found = false;
+
614 while (j < Acols && !pivot_found) {
+
615 if (Ab(i, j) != 0) { // pivot not equal to 0
+
616 pivot_found = true;
+
617 } else { // check for a possible swap
+
618 int max_row = i;
+
619 float max_val = 0;
+
620 for (int k = i + 1; k < rows; ++k) {
+
621 float cur_abs = Ab(k, j) >= 0 ? Ab(k, j) : -1 * Ab(k, j);
+
622 if (cur_abs > max_val) {
+
623 max_row = k;
+
624 max_val = cur_abs;
+
625 }
+
626 }
+
627 if (max_row != i) {
+
628 Ab.swapRows(max_row, i);
+
629 pivot_found = true;
+
630 } else {
+
631 j++;
+
632 }
+
633 }
+
634 }
+
635
+
636 // perform elimination as normal if pivot was found
+
637 if (pivot_found) {
+
638 for (int t = i + 1; t < rows; ++t) {
+
639 for (int s = j + 1; s < cols; ++s) {
+
640 Ab(t, s) = Ab(t, s) - Ab(i, s) * (Ab(t, j) / Ab(i, j));
+
641 if (Ab(t, s) < abs_tol && Ab(t, s) > -1 * abs_tol) {
+
642 Ab(t, s) = 0;
+
643 }
+
644 }
+
645 Ab(t, j) = 0;
+
646 }
+
647 }
+
648
+
649 i++;
+
650 j++;
+
651 }
+
652
+
653 return Ab;
+
654}
+
Mat t()
Definition mat.cpp:383
+
+

References abs_tol, cols, k, Mat(), rows, swapRows(), and t().

+ +

Referenced by pinv().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ Get() [1/2]

+ +
+
+ + + + + + + +
Mat dspm::Mat::Get (const Mat::Rect & rect)
+
+

Make copy of matrix.

Parameters
+ + +
[in]rectrectangular area of interest
+
+
+
Returns
    +
  • result matrix size row_size x col_size
  • +
+
+ +

Definition at line 226 of file mat.cpp.

+
227{
+
228 return (Get(rect.y, rect.height, rect.x, rect.width));
+
229}
+
Mat Get(int row_start, int row_size, int col_start, int col_size)
Definition mat.cpp:209
+
+

References Get(), dspm::Mat::Rect::height, Mat(), dspm::Mat::Rect::width, dspm::Mat::Rect::x, and dspm::Mat::Rect::y.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ Get() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
Mat dspm::Mat::Get (int row_start,
int row_size,
int col_start,
int col_size )
+
+

Make copy of matrix.

Parameters
+ + + + + +
[in]row_startstart row position of source matrix to copy
[in]row_sizesize of wor elements of source matrix to copy
[in]col_startstart col position of source matrix to copy
[in]col_sizesize of wor elements of source matrix to copy
+
+
+
Returns
    +
  • result matrix size row_size x col_size
  • +
+
+ +

Definition at line 209 of file mat.cpp.

+
210{
+
211 Mat result(row_size, col_size);
+
212
+
213 if ((row_start + row_size) > this->rows) {
+
214 return result;
+
215 }
+
216 if ((col_start + col_size) > this->cols) {
+
217 return result;
+
218 }
+
219
+
220 for (size_t r = 0; r < result.rows; r++) {
+
221 memcpy(&result.data[r * result.cols], &this->data[(r + row_start) * this->stride + col_start], result.cols * sizeof(float));
+
222 }
+
223 return result;
+
224}
+
+

References cols, data, Mat(), and rows.

+ +

Referenced by Get(), ekf_imu13states::LinearizeFG(), and operator*=().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ getROI() [1/3]

+ +
+
+ + + + + + + +
Mat dspm::Mat::getROI (const Mat::Rect & rect)
+
+ +

Create a subset of matrix as ROI (Region of Interest).

+
Parameters
+ + +
[in]rectrectangular area of interest
+
+
+
Returns
    +
  • result matrix size rect.rectRows x rect.rectCols
  • +
+
+ +

Definition at line 158 of file mat.cpp.

+
159{
+
160 return (getROI(rect.y, rect.x, rect.height, rect.width, this->cols));
+
161}
+
Mat getROI(int startRow, int startCol, int roiRows, int roiCols)
Create a subset of matrix as ROI (Region of Interest).
Definition mat.cpp:163
+
+

References getROI(), dspm::Mat::Rect::height, Mat(), dspm::Mat::Rect::width, dspm::Mat::Rect::x, and dspm::Mat::Rect::y.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ getROI() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
Mat dspm::Mat::getROI (int startRow,
int startCol,
int roiRows,
int roiCols )
+
+ +

Create a subset of matrix as ROI (Region of Interest).

+
Parameters
+ + + + + +
[in]startRowstart row position of source matrix to get the subset matrix from
[in]startColstart col position of source matrix to get the subset matrix from
[in]roiRowssize of row elements of source matrix to get the subset matrix from
[in]roiColssize of col elements of source matrix to get the subset matrix from
+
+
+
Returns
    +
  • result matrix size roiRows x roiCols
  • +
+
+ +

Definition at line 163 of file mat.cpp.

+
164{
+
165 return (getROI(startRow, startCol, roiRows, roiCols, this->cols));
+
166}
+
+

References cols, getROI(), and Mat().

+ +

Referenced by getROI(), and getROI().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ getROI() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Mat dspm::Mat::getROI (int startRow,
int startCol,
int roiRows,
int roiCols,
int stride )
+
+ +

Create a subset of matrix as ROI (Region of Interest).

+
Parameters
+ + + + + + +
[in]startRowstart row position of source matrix to get the subset matrix from
[in]startColstart col position of source matrix to get the subset matrix from
[in]roiRowssize of row elements of source matrix to get the subset matrix from
[in]roiColssize of col elements of source matrix to get the subset matrix from
[in]stridenumber of cols + padding between 2 rows
+
+
+
Returns
    +
  • result matrix size roiRows x roiCols
  • +
+
+ +

Definition at line 138 of file mat.cpp.

+
139{
+
140 Mat result(this->data, roiRows, roiCols, 0);
+
141
+
142 if ((startRow + roiRows) > this->rows) {
+
143 return result;
+
144 }
+
145 if ((startCol + roiCols) > this->cols) {
+
146 return result;
+
147 }
+
148
+
149 const int ptr_move = startRow * this->cols + startCol;
+
150 float *new_data_ptr = this->data + ptr_move;
+
151
+
152 result.data = new_data_ptr;
+
153 result.stride = stride;
+
154 result.padding = result.stride - result.cols;
+
155 return result;
+
156}
+
+

References cols, data, Mat(), padding, rows, and stride.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ inverse()

+ +
+
+ + + + + + + +
Mat dspm::Mat::inverse ()
+
+

Find the inverse matrix

+
Returns
    +
  • inverse matrix
  • +
+
+ +

Definition at line 812 of file mat.cpp.

+
813{
+
814 Mat result(this->rows, this->cols);
+
815 // Find determinant of matrix
+
816 float det = this->det(this->rows);
+
817 if (det == 0) {
+
818 //std::cout << "Singular matrix, can't find its inverse";
+
819 return result;
+
820 }
+
821
+
822 // Find adjoint
+
823 Mat adj = this->adjoint();
+
824
+
825 // Find Inverse using formula "inverse(A) = adj(A)/det(A)"
+
826 for (int i = 0; i < this->rows; i++)
+
827 for (int j = 0; j < this->cols; j++) {
+
828 result(i, j) = adj(i, j) / float(det);
+
829 }
+
830
+
831 return result;
+
832}
+
Mat adjoint()
Definition mat.cpp:783
+
+

References adjoint(), cols, det(), Mat(), and rows.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ norm()

+ +
+
+ + + + + + + +
float dspm::Mat::norm (void )
+
+

Return norm of the vector. If it's matrix, calculate matrix norm

+
Returns
    +
  • matrix norm
  • +
+
+ +

Definition at line 456 of file mat.cpp.

+
457{
+
458 float sqr_norm = 0;
+
459 for (int i = 0; i < this->rows; ++i) {
+
460 for (int j = 0; j < this->cols; ++j) {
+
461 sqr_norm += (*this)(i, j) * (*this)(i, j);
+
462 }
+
463 }
+
464 sqr_norm = sqrtf(sqr_norm);
+
465 return sqr_norm;
+
466}
+
+

References cols, and rows.

+ +

Referenced by draw_3d_image_task(), draw_3d_image_task(), kalman_filter_task(), kalman_filter_task(), kalman_filter_task(), kalman_filter_task(), ekf::rotm2quat(), ekf_imu13states::TestFull(), ekf_imu13states::UpdateRefMeasurement(), ekf_imu13states::UpdateRefMeasurement(), and ekf_imu13states::UpdateRefMeasurementMagn().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ normalize()

+ +
+
+ + + + + + + +
void dspm::Mat::normalize (void )
+
+

Normalizes the vector, i.e. divides it by its own norm. If it's matrix, calculate matrix norm

+ +

Definition at line 444 of file mat.cpp.

+
445{
+
446 float sqr_norm = 0;
+
447 for (int i = 0; i < this->rows; ++i) {
+
448 for (int j = 0; j < this->cols; ++j) {
+
449 sqr_norm += (*this)(i, j) * (*this)(i, j);
+
450 }
+
451 }
+
452 sqr_norm = 1 / sqrtf(sqr_norm);
+
453 *this *= sqr_norm;
+
454}
+
+

References cols, and rows.

+ +
+
+ +

◆ ones() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
Mat dspm::Mat::ones (int rows,
int cols )
+
+static
+
+

Create matrix with all elements 1. Create a matrix and fill all elements with 1.

+
Parameters
+ + + +
[in]rowsmatrix rows
[in]colsmatrix cols
+
+
+
Returns
    +
  • matrix [N]x[N] with 1 in all elements
  • +
+
+ +

Definition at line 414 of file mat.cpp.

+
415{
+
416 Mat temp(rows, cols);
+
417 for (int row = 0; row < temp.rows; ++row) {
+
418 for (int col = 0; col < temp.cols; ++col) {
+
419 temp(row, col) = 1;
+
420 }
+
421 }
+
422 return temp;
+
423}
+
+

References cols, Mat(), and rows.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ ones() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
Mat dspm::Mat::ones (int size)
+
+static
+
+

Create matrix with all elements 1. Create a square matrix and fill all elements with 1.

+
Parameters
+ + +
[in]sizematrix size
+
+
+
Returns
    +
  • matrix [N]x[N] with 1 in all elements
  • +
+
+ +

Definition at line 409 of file mat.cpp.

+
410{
+
411 return (ones(size, size));
+
412}
+
static Mat ones(int size)
Definition mat.cpp:409
+
+

References Mat(), and ones().

+ +

Referenced by ones().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ operator()() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
float & dspm::Mat::operator() (int row,
int col )
+
+inline
+
+

Access to the matrix elements.

Parameters
+ + + +
[in]rowrow position
[in]colcolumn position
+
+
+
Returns
    +
  • element of matrix M[row][col]
  • +
+
+ +

Definition at line 218 of file mat.h.

+
219 {
+
220 return data[row * this->stride + col];
+
221 }
+
+

References data.

+ +
+
+ +

◆ operator()() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
const float & dspm::Mat::operator() (int row,
int col ) const
+
+inline
+
+

Access to the matrix elements.

Parameters
+ + + +
[in]rowrow position
[in]colcolumn position
+
+
+
Returns
    +
  • element of matrix M[row][col]
  • +
+
+ +

Definition at line 230 of file mat.h.

+
231 {
+
232 return data[row * this->stride + col];
+
233 }
+
+

References data.

+ +
+
+ +

◆ operator*=() [1/2]

+ +
+
+ + + + + + + +
Mat & dspm::Mat::operator*= (const Mat & A)
+
+

*= operator The operator use DSP optimized implementation of multiplication.

+
Parameters
+ + +
[in]Asource matrix
+
+
+
Returns
    +
  • result matrix: result -= A
  • +
+
+ +

Definition at line 312 of file mat.cpp.

+
313{
+
314 if (this->cols != m.rows) {
+
315 ESP_LOGW("Mat", "operator *= Error: matrices do not have equal dimensions");
+
316 return *this;
+
317 }
+
318
+
319 if (this->sub_matrix || m.sub_matrix) {
+
320 Mat temp = this->Get(0, this->rows, 0, this->cols);
+
321 dspm_mult_ex_f32(temp.data, m.data, this->data, temp.rows, temp.cols, m.cols, temp.padding, m.padding, this->padding);
+
322 } else {
+
323 Mat temp = *this;
+
324 dspm_mult_f32(temp.data, m.data, this->data, temp.rows, temp.cols, m.cols);
+
325 }
+
326 return (*this);
+
327}
+
#define dspm_mult_ex_f32
Definition dspm_mult.h:226
+
#define dspm_mult_f32
Definition dspm_mult.h:221
+
+

References cols, data, dspm_mult_ex_f32, dspm_mult_f32, Get(), m, Mat(), padding, rows, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ operator*=() [2/2]

+ +
+
+ + + + + + + +
Mat & dspm::Mat::operator*= (float C)
+
+

+= with constant operator The operator use DSP optimized implementation of multiplication.

+
Parameters
+ + +
[in]Cconstant value
+
+
+
Returns
    +
  • result matrix: result *= C
  • +
+
+ +

Definition at line 329 of file mat.cpp.

+
330{
+
331 if (this->sub_matrix) {
+
332 dspm_mulc_f32(this->data, this->data, num, this->rows, this->cols, this->padding, this->padding, 1, 1);
+
333 } else {
+
334 dsps_mulc_f32_ansi(this->data, this->data, this->length, num, 1, 1);
+
335 }
+
336 return *this;
+
337}
+
#define dspm_mulc_f32
Definition dspm_mulc.h:57
+
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+
+

References cols, data, dspm_mulc_f32, dsps_mulc_f32_ansi(), length, Mat(), padding, rows, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ operator+=() [1/2]

+ +
+
+ + + + + + + +
Mat & dspm::Mat::operator+= (const Mat & A)
+
+

+= operator The operator use DSP optimized implementation of multiplication.

+
Parameters
+ + +
[in]Asource matrix
+
+
+
Returns
    +
  • result matrix: result += A
  • +
+
+ +

Definition at line 262 of file mat.cpp.

+
263{
+
264 if ((this->rows != m.rows) || (this->cols != m.cols)) {
+
265 ESP_LOGW("Mat", "operator += Error: matrices do not have equal dimensions");
+
266 return *this;
+
267 }
+
268
+
269 if (this->sub_matrix || m.sub_matrix) {
+
270 dspm_add_f32(this->data, m.data, this->data, this->rows, this->cols, this->padding, m.padding, this->padding, 1, 1, 1);
+
271 } else {
+
272 dsps_add_f32(this->data, m.data, this->data, this->length, 1, 1, 1);
+
273 }
+
274 return *this;
+
275}
+
#define dspm_add_f32
Definition dspm_add.h:62
+
#define dsps_add_f32
Definition dsps_add.h:84
+
+

References data, dspm_add_f32, dsps_add_f32, m, Mat(), rows, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ operator+=() [2/2]

+ +
+
+ + + + + + + +
Mat & dspm::Mat::operator+= (float C)
+
+

+= operator The operator use DSP optimized implementation of multiplication.

+
Parameters
+ + +
[in]Cconstant
+
+
+
Returns
    +
  • result matrix: result += C
  • +
+
+ +

Definition at line 277 of file mat.cpp.

+
278{
+
279 if (this->sub_matrix) {
+
280 dspm_addc_f32(this->data, this->data, C, this->rows, this->cols, this->padding, this->padding, 1, 1);
+
281 } else {
+
282 dsps_addc_f32_ansi(this->data, this->data, this->length, C, 1, 1);
+
283 }
+
284 return *this;
+
285}
+
#define dspm_addc_f32
Definition dspm_addc.h:57
+
esp_err_t dsps_addc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
add constant
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, cols, data, dspm_addc_f32, dsps_addc_f32_ansi(), length, Mat(), padding, rows, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ operator-=() [1/2]

+ +
+
+ + + + + + + +
Mat & dspm::Mat::operator-= (const Mat & A)
+
+

-= operator The operator use DSP optimized implementation of multiplication.

+
Parameters
+ + +
[in]Asource matrix
+
+
+
Returns
    +
  • result matrix: result -= A
  • +
+
+ +

Definition at line 287 of file mat.cpp.

+
288{
+
289 if ((this->rows != m.rows) || (this->cols != m.cols)) {
+
290 ESP_LOGW("Mat", "operator -= Error: matrices do not have equal dimensions");
+
291 return *this;
+
292 }
+
293
+
294 if (this->sub_matrix || m.sub_matrix) {
+
295 dspm_sub_f32(this->data, m.data, this->data, this->rows, this->cols, this->padding, m.padding, this->padding, 1, 1, 1);
+
296 } else {
+
297 dsps_sub_f32(this->data, m.data, this->data, this->length, 1, 1, 1);
+
298 }
+
299 return *this;
+
300}
+
#define dspm_sub_f32
Definition dspm_sub.h:58
+
#define dsps_sub_f32
Definition dsps_sub.h:82
+
+

References data, dspm_sub_f32, dsps_sub_f32, m, Mat(), rows, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ operator-=() [2/2]

+ +
+
+ + + + + + + +
Mat & dspm::Mat::operator-= (float C)
+
+

-= operator The operator use DSP optimized implementation of multiplication.

+
Parameters
+ + +
[in]Cconstant
+
+
+
Returns
    +
  • result matrix: result -= C
  • +
+
+ +

Definition at line 302 of file mat.cpp.

+
303{
+
304 if (this->sub_matrix) {
+
305 dspm_addc_f32(this->data, this->data, -C, this->rows, this->cols, this->padding, this->padding, 1, 1);
+
306 } else {
+
307 dsps_addc_f32_ansi(this->data, this->data, this->length, -C, 1, 1);
+
308 }
+
309 return *this;
+
310}
+
+

References C, cols, data, dspm_addc_f32, dsps_addc_f32_ansi(), length, Mat(), padding, rows, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ operator/=() [1/2]

+ +
+
+ + + + + + + +
Mat & dspm::Mat::operator/= (const Mat & B)
+
+

/= operator

+
Parameters
+ + +
[in]Bsource matrix
+
+
+
Returns
    +
  • result matrix: result[i,j] = result[i,j]/B[i,j]
  • +
+
+ +

Definition at line 339 of file mat.cpp.

+
340{
+
341 if ((this->rows != B.rows) || (this->cols != B.cols)) {
+
342 ESP_LOGW("Mat", "operator /= Error: matrices do not have equal dimensions");
+
343 return *this;
+
344 }
+
345
+
346 for (int row = 0; row < this->rows; row++) {
+
347 for (int col = 0; col < this->cols; col++) {
+
348 (*this)(row, col) = (*this)(row, col) / B(row, col);
+
349 }
+
350 }
+
351 return (*this);
+
352}
+
+

References B, cols, Mat(), and rows.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ operator/=() [2/2]

+ +
+
+ + + + + + + +
Mat & dspm::Mat::operator/= (float C)
+
+

/= with constant operator The operator use DSP optimized implementation of multiplication.

+
Parameters
+ + +
[in]Cconstant value
+
+
+
Returns
    +
  • result matrix: result /= C
  • +
+
+ +

Definition at line 354 of file mat.cpp.

+
355{
+
356 if (this->sub_matrix) {
+
357 dspm_mulc_f32(this->data, this->data, 1 / num, this->rows, this->cols, this->padding, this->padding, 1, 1);
+
358 } else {
+
359 dsps_mulc_f32_ansi(this->data, this->data, this->length, 1 / num, 1, 1);
+
360 }
+
361 return *this;
+
362}
+
+

References cols, data, dspm_mulc_f32, dsps_mulc_f32_ansi(), length, Mat(), padding, rows, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ operator=()

+ +
+
+ + + + + + + +
Mat & dspm::Mat::operator= (const Mat & src)
+
+

Copy operator

+
Parameters
+ + +
[in]srcsource matrix
+
+
+
Returns
    +
  • matrix copy
  • +
+
+ +

Definition at line 231 of file mat.cpp.

+
232{
+
233 if (this == &m) {
+
234 return *this;
+
235 }
+
236
+
237 // matrix dimensions not equal
+
238 if (this->rows != m.rows || this->cols != m.cols) {
+
239 // left operand is a sub-matrix - error
+
240 if (this->sub_matrix) {
+
241 ESP_LOGE("Mat", "operator = Error for sub-matrices: operands matrices dimensions %dx%d and %dx%d do not match", this->rows, this->cols, m.rows, m.cols);
+
242 return *this;
+
243 }
+
244 if (!this->ext_buff) {
+
245 delete[] this->data;
+
246 }
+
247 this->ext_buff = false;
+
248 this->rows = m.rows;
+
249 this->cols = m.cols;
+
250 this->stride = this->cols;
+
251 this->padding = 0;
+
252 this->sub_matrix = false;
+
253 allocate();
+
254 }
+
255
+
256 for (int row = 0; row < this->rows; row++) {
+
257 memcpy(this->data + (row * this->stride), m.data + (row * m.stride), this->cols * sizeof(float));
+
258 }
+
259 return *this;
+
260}
+
+

References allocate(), cols, data, ext_buff, m, Mat(), padding, rows, stride, and sub_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ operator^()

+ +
+
+ + + + + + + +
Mat dspm::Mat::operator^ (int C)
+
+

^= xor with constant operator The operator use DSP optimized implementation of multiplication.

Parameters
+ + +
[in]Cconstant value
+
+
+
Returns
    +
  • result matrix: result ^= C
  • +
+
+ +

Definition at line 364 of file mat.cpp.

+
365{
+
366 Mat temp(*this);
+
367 return expHelper(temp, num);
+
368}
+
+

References expHelper(), and Mat().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ pinv()

+ +
+
+ + + + + + + +
Mat dspm::Mat::pinv ()
+
+

Find pseudo inverse matrix

+
Returns
    +
  • inverse matrix
  • +
+
+ +

Definition at line 707 of file mat.cpp.

+
708{
+
709 Mat I = Mat::eye(this->rows);
+
710 Mat AI = Mat::augment(*this, I);
+
711 Mat U = AI.gaussianEliminate();
+
712 Mat IAInverse = U.rowReduceFromGaussian();
+
713 Mat AInverse(this->rows, this->cols);
+
714 for (int i = 0; i < this->rows; ++i) {
+
715 for (int j = 0; j < this->cols; ++j) {
+
716 AInverse(i, j) = IAInverse(i, j + this->cols);
+
717 }
+
718 }
+
719 return AInverse;
+
720}
+
static Mat augment(Mat A, Mat B)
Augmented matrices.
Definition mat.cpp:585
+
+

References augment(), cols, eye(), gaussianEliminate(), Mat(), rowReduceFromGaussian(), and rows.

+ +

Referenced by ekf::UpdateRef().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ PrintHead()

+ +
+
+ + + + + + + +
void dspm::Mat::PrintHead (void )
+
+ +

print matrix header

+

Print all information about matrix to the terminal

Parameters
+ + +
[in]srcsource matrix
+
+
+ +

Definition at line 197 of file mat.cpp.

+
198{
+
199 std::cout << "rows " << this->rows << std::endl;
+
200 std::cout << "cols " << this->cols << std::endl;
+
201 std::cout << "lenght " << this->length << std::endl;
+
202 std::cout << "data " << this->data << std::endl;
+
203 std::cout << "ext_buff " << this->ext_buff << std::endl;
+
204 std::cout << "sub_mat " << this->sub_matrix << std::endl;
+
205 std::cout << "stride " << this->stride << std::endl;
+
206 std::cout << "padding " << this->padding << std::endl << std::endl;
+
207}
+
+

References cols, data, ext_buff, length, padding, rows, stride, and sub_matrix.

+ +
+
+ +

◆ roots()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
Mat dspm::Mat::roots (Mat A,
Mat y )
+
+static
+
+ +

Solve the matrix.

+

Different way to solve the matrix. Find roots for the matrix A*x = y

+
Parameters
+ + + +
[in]Amatrix [N]x[N] with input coefficients
[in]yvector [N]x[1] with result values
+
+
+
Returns
    +
  • matrix [N]x[1] with roots
  • +
+
+ +

Definition at line 552 of file mat.cpp.

+
553{
+
554 int n = A.cols + 1;
+
555
+
556 Mat result(y.rows, 1);
+
557
+
558 Mat g_m = Mat::augment(A, y);
+
559 for (int j = 0; j < A.cols; j++) {
+
560 float g_jj = 1 / g_m(j, j);
+
561 for (int i = 0; i < A.cols; i++) {
+
562 if (i != j) {
+
563 float c = g_m(i, j) * g_jj;
+
564 for (int k = 0; k < n; k++) {
+
565 g_m(i, k) = g_m(i, k) - c * g_m(j, k);
+
566 }
+
567 }
+
568 }
+
569 }
+
570 for (int i = 0; i < A.rows; i++) {
+
571 result(i, 0) = g_m(i, A.cols) / g_m(i, i);
+
572 }
+
573 return result;
+
574}
+
float y[1024]
Definition test_fir.c:11
+
+

References A, augment(), k, Mat(), n, and y.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ rowReduceFromGaussian()

+ +
+
+ + + + + + + +
Mat dspm::Mat::rowReduceFromGaussian ()
+
+

Row reduction for Gaussian elimination

+
Returns
    +
  • result matrix
  • +
+
+ +

Definition at line 656 of file mat.cpp.

+
657{
+
658 Mat R(*this);
+
659 int rows = R.rows;
+
660 int cols = R.cols;
+
661
+
662 int i = rows - 1; // row tracker
+
663 int j = cols - 2; // column tracker
+
664
+
665 // iterate through every row
+
666 while (i >= 0) {
+
667 // find the pivot column
+
668 int k = j - 1;
+
669 while (k >= 0) {
+
670 if (R(i, k) != 0) {
+
671 j = k;
+
672 }
+
673 k--;
+
674 }
+
675
+
676 // zero out elements above pivots if pivot not 0
+
677 if (R(i, j) != 0) {
+
678 for (int t = i - 1; t >= 0; --t) {
+
679 for (int s = 0; s < cols; ++s) {
+
680 if (s != j) {
+
681 R(t, s) = R(t, s) - R(i, s) * (R(t, j) / R(i, j));
+
682 if (R(t, s) < abs_tol && R(t, s) > -1 * abs_tol) {
+
683 R(t, s) = 0;
+
684 }
+
685 }
+
686 }
+
687 R(t, j) = 0;
+
688 }
+
689
+
690 // divide row by pivot
+
691 for (int k = j + 1; k < cols; ++k) {
+
692 R(i, k) = R(i, k) / R(i, j);
+
693 if (R(i, k) < abs_tol && R(i, k) > -1 * abs_tol) {
+
694 R(i, k) = 0;
+
695 }
+
696 }
+
697 R(i, j) = 1;
+
698 }
+
699
+
700 i--;
+
701 j--;
+
702 }
+
703
+
704 return R;
+
705}
+
+

References abs_tol, cols, k, Mat(), rows, and t().

+ +

Referenced by pinv().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ solve()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
Mat dspm::Mat::solve (Mat A,
Mat b )
+
+static
+
+ +

Solve the matrix.

+

Solve matrix. Find roots for the matrix A*x = b

+
Parameters
+ + + +
[in]Amatrix [N]x[N] with input coefficients
[in]bvector [N]x[1] with result values
+
+
+
Returns
    +
  • matrix [N]x[1] with roots
  • +
+
+ +

Definition at line 468 of file mat.cpp.

+
469{
+
470 // Gaussian elimination
+
471 for (int i = 0; i < A.rows; ++i) {
+
472 if (A(i, i) == 0) {
+
473 // pivot 0 - error
+
474 ESP_LOGW("Mat", "Error: the coefficient matrix has 0 as a pivot. Please fix the input and try again.");
+
475 Mat err_result(0, 0);
+
476 return err_result;
+
477 }
+
478 float a_ii = 1 / A(i, i);
+
479 for (int j = i + 1; j < A.rows; ++j) {
+
480 float a_ji = A(j, i) * a_ii;
+
481 for (int k = i + 1; k < A.cols; ++k) {
+
482 A(j, k) -= A(i, k) * a_ji;
+
483 if ((A(j, k) < abs_tol) && (A(j, k) > -1 * abs_tol)) {
+
484 A(j, k) = 0;
+
485 }
+
486 }
+
487 b(j, 0) -= b(i, 0) * a_ji;
+
488 if (A(j, 0) < abs_tol && A(j, 0) > -1 * abs_tol) {
+
489 A(j, 0) = 0;
+
490 }
+
491 A(j, i) = 0;
+
492 }
+
493 }
+
494
+
495 // Back substitution
+
496 Mat x(b.rows, 1);
+
497 x((x.rows - 1), 0) = b((x.rows - 1), 0) / A((x.rows - 1), (x.rows - 1));
+
498 if (x((x.rows - 1), 0) < abs_tol && x((x.rows - 1), 0) > -1 * abs_tol) {
+
499 x((x.rows - 1), 0) = 0;
+
500 }
+
501 for (int i = x.rows - 2; i >= 0; --i) {
+
502 float sum = 0;
+
503 for (int j = i + 1; j < x.rows; ++j) {
+
504 sum += A(i, j) * x(j, 0);
+
505 }
+
506 x(i, 0) = (b(i, 0) - sum) / A(i, i);
+
507 if (x(i, 0) < abs_tol && x(i, 0) > -1 * abs_tol) {
+
508 x(i, 0) = 0;
+
509 }
+
510 }
+
511 return x;
+
512}
+
+

References A, abs_tol, k, Mat(), rows, and x.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ swapRows()

+ +
+
+ + + + + + + + + + + +
void dspm::Mat::swapRows (int row1,
int row2 )
+
+

Swap two rows between each other.

Parameters
+ + + +
[in]row1position of first row
[in]row2position of second row
+
+
+ +

Definition at line 370 of file mat.cpp.

+
371{
+
372 if ((this->rows <= r1) || (this->rows <= r2)) {
+
373 ESP_LOGW("Mat", "swapRows Error: row %d or %d out of matrix row %d range", r1, r2, this->rows);
+
374 } else {
+
375 for (int i = 0; i < this->cols; i++) {
+
376 float temp = this->data[r1 * this->stride + i];
+
377 this->data[r1 * this->stride + i] = this->data[r2 * this->stride + i];
+
378 this->data[r2 * this->stride + i] = temp;
+
379 }
+
380 }
+
381}
+
+

References cols, data, rows, and stride.

+ +

Referenced by det(), and gaussianEliminate().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ t()

+ +
+
+ + + + + + + +
Mat dspm::Mat::t ()
+
+

Matrix transpose. Change rows and columns between each other.

+
Returns
    +
  • transposed matrix
  • +
+
+ +

Definition at line 383 of file mat.cpp.

+
384{
+
385 Mat ret(this->cols, this->rows);
+
386 for (int i = 0; i < this->rows; ++i) {
+
387 for (int j = 0; j < this->cols; ++j) {
+
388 ret(j, i) = this->data[i * this->stride + j];
+
389 }
+
390 }
+
391 return ret;
+
392}
+
+

References cols, data, Mat(), rows, and stride.

+ +

Referenced by ekf::CovariancePrediction(), draw_3d_image_task(), draw_3d_image_task(), gaussianEliminate(), rowReduceFromGaussian(), ekf_imu13states::TestFull(), update_rotation_matrix(), ekf::UpdateRef(), ekf_imu13states::UpdateRefMeasurement(), ekf_imu13states::UpdateRefMeasurement(), and ekf_imu13states::UpdateRefMeasurementMagn().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Field Documentation

+ +

◆ abs_tol

+ +
+
+ + + + + +
+ + + + +
float dspm::Mat::abs_tol = 1e-10
+
+static
+
+

Max acceptable absolute tolerance

+ +

Definition at line 39 of file mat.h.

+ +

Referenced by bandSolve(), gaussianEliminate(), rowReduceFromGaussian(), and solve().

+ +
+
+ +

◆ cols

+ + + +

◆ data

+ + + +

◆ ext_buff

+ +
+
+ + + + +
bool dspm::Mat::ext_buff
+
+

Flag indicates that matrix use external buffer

+ +

Definition at line 40 of file mat.h.

+ +

Referenced by allocate(), CopyHead(), Mat(), Mat(), Mat(), operator=(), PrintHead(), and ~Mat().

+ +
+
+ +

◆ length

+ +
+
+ + + + +
int dspm::Mat::length
+
+

Total amount of data in data array

+ +

Definition at line 38 of file mat.h.

+ +

Referenced by allocate(), CopyHead(), Mat(), Mat(), Mat(), Mat(), operator*=(), operator+=(), operator-=(), operator/=(), and PrintHead().

+ +
+
+ +

◆ padding

+ + + +

◆ rows

+ + + +

◆ stride

+ +
+
+ + + + +
int dspm::Mat::stride
+
+

Stride = (number of elements in a row) + padding

+ +

Definition at line 35 of file mat.h.

+ +

Referenced by clear(), Copy(), CopyHead(), getROI(), Mat(), Mat(), Mat(), Mat(), Mat(), operator=(), PrintHead(), swapRows(), and t().

+ +
+
+ +

◆ sub_matrix

+ +
+
+ + + + +
bool dspm::Mat::sub_matrix
+
+

Flag indicates that matrix is a subset of another matrix

+ +

Definition at line 41 of file mat.h.

+ +

Referenced by CopyHead(), Mat(), Mat(), Mat(), Mat(), Mat(), dspm::operator*(), operator*=(), operator*=(), dspm::operator+(), operator+=(), operator+=(), dspm::operator-(), operator-=(), operator-=(), operator/=(), operator=(), and PrintHead().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ +
+ + + + diff --git a/docs/html/classdspm_1_1_mat.js b/docs/html/classdspm_1_1_mat.js new file mode 100644 index 0000000..9648211 --- /dev/null +++ b/docs/html/classdspm_1_1_mat.js @@ -0,0 +1,62 @@ +var classdspm_1_1_mat = +[ + [ "Rect", "structdspm_1_1_mat_1_1_rect.html", "structdspm_1_1_mat_1_1_rect" ], + [ "Mat", "classdspm_1_1_mat.html#a5eb6987452e618ba8d638a6773a074df", null ], + [ "Mat", "classdspm_1_1_mat.html#ad48017c1f1dc16c62bf629a505040cb3", null ], + [ "Mat", "classdspm_1_1_mat.html#aabb5dfd79aeda22f1e51d53f8daa9f5e", null ], + [ "Mat", "classdspm_1_1_mat.html#a4c822cafab693f430803cc91f0143214", null ], + [ "~Mat", "classdspm_1_1_mat.html#a7ffd4a64aeee64dfa941a04e71d05d0f", null ], + [ "Mat", "classdspm_1_1_mat.html#a5a88624f27c4de9a94cd68d538ae02b0", null ], + [ "adjoint", "classdspm_1_1_mat.html#a2944f7de712a8ebe6cbbb68b08372ead", null ], + [ "allocate", "classdspm_1_1_mat.html#aa82f099abe2da9662fd06e72056df323", null ], + [ "augment", "classdspm_1_1_mat.html#ad6b5781e65c612fa063313333abad614", null ], + [ "bandSolve", "classdspm_1_1_mat.html#a8acbcd773c6158ec2ee1fa51599bc64a", null ], + [ "block", "classdspm_1_1_mat.html#a7ec320d03cbb5a898d4e9cdeb38a87d4", null ], + [ "clear", "classdspm_1_1_mat.html#a676ed57c4f8083b46096c84abab53781", null ], + [ "cofactor", "classdspm_1_1_mat.html#ae8001066240ab06aa1390ac944835ff1", null ], + [ "Copy", "classdspm_1_1_mat.html#a9b11a8f5022e6c54b212bf9af880b670", null ], + [ "CopyHead", "classdspm_1_1_mat.html#aa1c170522b5c50effcb87452a2b85471", null ], + [ "det", "classdspm_1_1_mat.html#a1307da8f13edcf4b1f2bdbf23c9f0ce8", null ], + [ "dotProduct", "classdspm_1_1_mat.html#a51fe6b5b8909e956f9fe54d7cb9b7a9a", null ], + [ "expHelper", "classdspm_1_1_mat.html#a765a86e94b3d404e8578e22a36e7d424", null ], + [ "eye", "classdspm_1_1_mat.html#a7502c6d836d1ae05f6880620c1a832b5", null ], + [ "gaussianEliminate", "classdspm_1_1_mat.html#ac5482cf5daed6c1f7f66639913d71b39", null ], + [ "Get", "classdspm_1_1_mat.html#a57f625f9b842f266a8c6db6a688a42ca", null ], + [ "Get", "classdspm_1_1_mat.html#a025beb99e548d50925c88c65272b021e", null ], + [ "getROI", "classdspm_1_1_mat.html#aea26a323d8700c5ed4a3cf0930ff9527", null ], + [ "getROI", "classdspm_1_1_mat.html#aa70caf8f197878395a4a8324c2bd6594", null ], + [ "getROI", "classdspm_1_1_mat.html#acf58a251e4f3cce0dcd48d3b277c3ea7", null ], + [ "inverse", "classdspm_1_1_mat.html#af5c78c8f94cf90af1c9a8bfe9ac4209f", null ], + [ "norm", "classdspm_1_1_mat.html#a3b4566db0f4ad277e70c09f5e934b91e", null ], + [ "normalize", "classdspm_1_1_mat.html#a34b2352c3ba2382a9be4fbd50333b7da", null ], + [ "ones", "classdspm_1_1_mat.html#a773a2a3c35bdd961c597fa3cf9b0aa2c", null ], + [ "ones", "classdspm_1_1_mat.html#a2178baaad6a99fdfa2eb611f73bbcc5e", null ], + [ "operator()", "classdspm_1_1_mat.html#ac1f9bbaf87f55ac1113cd5a63ef21367", null ], + [ "operator()", "classdspm_1_1_mat.html#ae4768524f69491775f14d47f3e235f5b", null ], + [ "operator*=", "classdspm_1_1_mat.html#a6db445423c3ba0600145c883a534662c", null ], + [ "operator*=", "classdspm_1_1_mat.html#a162f0bdd51e92b35c0573e5111a8c48a", null ], + [ "operator+=", "classdspm_1_1_mat.html#a07a4336e1ffd7ee7783458acda78762b", null ], + [ "operator+=", "classdspm_1_1_mat.html#af051fad655af0540d571cf345241a2d8", null ], + [ "operator-=", "classdspm_1_1_mat.html#af83846df6f2ec2e1901affce82b1df6f", null ], + [ "operator-=", "classdspm_1_1_mat.html#a7070672481a32261bd5f01ec5c02184b", null ], + [ "operator/=", "classdspm_1_1_mat.html#ac2b42e38e401e60aa31ad0ca37532ae0", null ], + [ "operator/=", "classdspm_1_1_mat.html#abecd4c41d26bbe015c86e0a7f1205af3", null ], + [ "operator=", "classdspm_1_1_mat.html#a6c4c4a4928e3ffbc8166ab6bb9a9ac91", null ], + [ "operator^", "classdspm_1_1_mat.html#a169cb1f531813dfe48f94f4392261c61", null ], + [ "pinv", "classdspm_1_1_mat.html#a3d8be6dbfbc64fa98f08ef9ce8860a12", null ], + [ "PrintHead", "classdspm_1_1_mat.html#a22d61a1e773fb5a3c919fd0a0b66eff2", null ], + [ "roots", "classdspm_1_1_mat.html#af10a9ed71cd84b42c44a035e71e40132", null ], + [ "rowReduceFromGaussian", "classdspm_1_1_mat.html#a1e7cd45e323d85d2025a9ad1d79b62f0", null ], + [ "solve", "classdspm_1_1_mat.html#ada20f15fbc75e0fdc1c0d2e15fc48a1a", null ], + [ "swapRows", "classdspm_1_1_mat.html#a9de682e7d416fa60f41a25da37350d7f", null ], + [ "t", "classdspm_1_1_mat.html#af1013adcb6d601fba7bf788fd52d80b4", null ], + [ "abs_tol", "classdspm_1_1_mat.html#a157c25a721f0f8039e6c91c2c8557174", null ], + [ "cols", "classdspm_1_1_mat.html#a5b79600a4a02e1250b5a760bcd71304d", null ], + [ "data", "classdspm_1_1_mat.html#a339b34179223279effbd285c36bc71d0", null ], + [ "ext_buff", "classdspm_1_1_mat.html#a5f35cc608fea8af8d30571cad1368d8e", null ], + [ "length", "classdspm_1_1_mat.html#a73c091552001a4879227528a5451c59e", null ], + [ "padding", "classdspm_1_1_mat.html#a8f4718aa2f7302a4b1fc1ce9bab71827", null ], + [ "rows", "classdspm_1_1_mat.html#ab10c4b469d0e3e0fc751ba44e45f9fec", null ], + [ "stride", "classdspm_1_1_mat.html#a231b7356e51f2b22945e3307b4cea742", null ], + [ "sub_matrix", "classdspm_1_1_mat.html#a8dc2aacba07225fe17aa37b97534a9ad", null ] +]; \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph.md5 b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph.md5 new file mode 100644 index 0000000..7b2e31b --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph.md5 @@ -0,0 +1 @@ +3851023bd99ef3c0c949bf22c7f82723 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph.svg b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph.svg new file mode 100644 index 0000000..f201cb4 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::Get + + +Node1 + + +dspm::Mat::Get + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph_org.svg new file mode 100644 index 0000000..802f57b --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::Get + + +Node1 + + +dspm::Mat::Get + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph.md5 b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph.md5 new file mode 100644 index 0000000..58adfc5 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph.md5 @@ -0,0 +1 @@ +0b003fb3300ad85d6648e36c6a8df0df \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph.svg b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph.svg new file mode 100644 index 0000000..c7edc2e --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dspm::Mat::Get + + +Node1 + + +dspm::Mat::Get + + + + + +Node2 + + +dspm::Mat::Get + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::operator*= + + + + + +Node1->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph_org.svg new file mode 100644 index 0000000..e9cafc2 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a025beb99e548d50925c88c65272b021e_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dspm::Mat::Get + + +Node1 + + +dspm::Mat::Get + + + + + +Node2 + + +dspm::Mat::Get + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::operator*= + + + + + +Node1->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph.md5 b/docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph.md5 new file mode 100644 index 0000000..00dd8ac --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph.md5 @@ -0,0 +1 @@ +701200b56f21402cd06c401ce2307684 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph.svg b/docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph.svg new file mode 100644 index 0000000..1945dc4 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::operator+= + + +Node1 + + +dspm::Mat::operator+= + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph_org.svg new file mode 100644 index 0000000..ded7a76 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a07a4336e1ffd7ee7783458acda78762b_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::operator+= + + +Node1 + + +dspm::Mat::operator+= + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.md5 b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.md5 new file mode 100644 index 0000000..d950f05 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.md5 @@ -0,0 +1 @@ +80d241b924643fcc1d49570a2a4dc1d4 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.svg b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.svg new file mode 100644 index 0000000..f68843b --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dspm::Mat::det + + +Node1 + + +dspm::Mat::det + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dspm::Mat::swapRows + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph_org.svg new file mode 100644 index 0000000..f97ae90 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +dspm::Mat::det + + +Node1 + + +dspm::Mat::det + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dspm::Mat::swapRows + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.md5 b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.md5 new file mode 100644 index 0000000..337ca40 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.md5 @@ -0,0 +1 @@ +70971aeb2a2d50ec56d7ca6590e7da44 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.svg b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.svg new file mode 100644 index 0000000..f8fad31 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dspm::Mat::det + + +Node1 + + +dspm::Mat::det + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::adjoint + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::inverse + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph_org.svg new file mode 100644 index 0000000..3b1739a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1307da8f13edcf4b1f2bdbf23c9f0ce8_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dspm::Mat::det + + +Node1 + + +dspm::Mat::det + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::adjoint + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::inverse + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph.md5 b/docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph.md5 new file mode 100644 index 0000000..f6cec86 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph.md5 @@ -0,0 +1 @@ +b14b37757418fdfdd147e123eccd5659 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph.svg b/docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph.svg new file mode 100644 index 0000000..5608107 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dspm::Mat::operator*= + + +Node1 + + +dspm::Mat::operator*= + + + + + +Node2 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph_org.svg new file mode 100644 index 0000000..2b8bbbb --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a162f0bdd51e92b35c0573e5111a8c48a_cgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dspm::Mat::operator*= + + +Node1 + + +dspm::Mat::operator*= + + + + + +Node2 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph.md5 b/docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph.md5 new file mode 100644 index 0000000..007b304 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph.md5 @@ -0,0 +1 @@ +20fa4a8e8e56e5634268f4f3cfca25a9 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph.svg b/docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph.svg new file mode 100644 index 0000000..c71f8f5 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::operator^ + + +Node1 + + +dspm::Mat::operator^ + + + + + +Node2 + + +dspm::Mat::expHelper + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node1->Node4 + + + + + + + + +Node2->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph_org.svg new file mode 100644 index 0000000..175ba8d --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a169cb1f531813dfe48f94f4392261c61_cgraph_org.svg @@ -0,0 +1,102 @@ + + + + + + +dspm::Mat::operator^ + + +Node1 + + +dspm::Mat::operator^ + + + + + +Node2 + + +dspm::Mat::expHelper + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node1->Node4 + + + + + + + + +Node2->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph.md5 b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph.md5 new file mode 100644 index 0000000..658af39 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph.md5 @@ -0,0 +1 @@ +55951de4dab7575cb658af6800d51eac \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph.svg b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph.svg new file mode 100644 index 0000000..3a22842 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::rowReduceFromGaussian + + +Node1 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::t + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph_org.svg new file mode 100644 index 0000000..eb6c4f2 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_cgraph_org.svg @@ -0,0 +1,85 @@ + + + + + + +dspm::Mat::rowReduceFromGaussian + + +Node1 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::t + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph.md5 b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph.md5 new file mode 100644 index 0000000..b416d87 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph.md5 @@ -0,0 +1 @@ +4e4e34b653766d8a07704c1c51676e73 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph.svg b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph.svg new file mode 100644 index 0000000..07d91e1 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +dspm::Mat::rowReduceFromGaussian + + +Node1 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node2 + + +dspm::Mat::pinv + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::UpdateRef + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph_org.svg new file mode 100644 index 0000000..1c3d83c --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a1e7cd45e323d85d2025a9ad1d79b62f0_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +dspm::Mat::rowReduceFromGaussian + + +Node1 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node2 + + +dspm::Mat::pinv + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::UpdateRef + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph.md5 b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph.md5 new file mode 100644 index 0000000..0bbaf02 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph.md5 @@ -0,0 +1 @@ +f514e3fc696c851926bb325eab34f2d3 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph.svg b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph.svg new file mode 100644 index 0000000..4571950 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + +dspm::Mat::ones + + +Node1 + + +dspm::Mat::ones + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph_org.svg new file mode 100644 index 0000000..ec995c1 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_cgraph_org.svg @@ -0,0 +1,66 @@ + + + + + + +dspm::Mat::ones + + +Node1 + + +dspm::Mat::ones + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph.md5 b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph.md5 new file mode 100644 index 0000000..67aaa53 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph.md5 @@ -0,0 +1 @@ +62cf39e0acbec95e724a105169d6ad7e \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph.svg b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph.svg new file mode 100644 index 0000000..789ede2 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + +dspm::Mat::ones + + +Node1 + + +dspm::Mat::ones + + + + + +Node1->Node1 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph_org.svg new file mode 100644 index 0000000..8a2eb64 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2178baaad6a99fdfa2eb611f73bbcc5e_icgraph_org.svg @@ -0,0 +1,30 @@ + + + + + + +dspm::Mat::ones + + +Node1 + + +dspm::Mat::ones + + + + + +Node1->Node1 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph.md5 b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph.md5 new file mode 100644 index 0000000..cda96dc --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph.md5 @@ -0,0 +1 @@ +6285480303fc00216c4421147110e23a \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph.svg b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph.svg new file mode 100644 index 0000000..bf46cd0 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::adjoint + + +Node1 + + +dspm::Mat::adjoint + + + + + +Node2 + + +dspm::Mat::cofactor + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dspm::Mat::det + + + + + +Node1->Node5 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + +Node5->Node5 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dspm::Mat::swapRows + + + + + +Node5->Node7 + + + + + + + + +Node6->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph_org.svg new file mode 100644 index 0000000..7d3c6c1 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_cgraph_org.svg @@ -0,0 +1,165 @@ + + + + + + +dspm::Mat::adjoint + + +Node1 + + +dspm::Mat::adjoint + + + + + +Node2 + + +dspm::Mat::cofactor + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dspm::Mat::det + + + + + +Node1->Node5 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + +Node5->Node5 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dspm::Mat::swapRows + + + + + +Node5->Node7 + + + + + + + + +Node6->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph.md5 b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph.md5 new file mode 100644 index 0000000..1fdb0a6 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph.md5 @@ -0,0 +1 @@ +1816afd105ea6e432380daeeaae7c375 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph.svg b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph.svg new file mode 100644 index 0000000..24fbb7f --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm::Mat::adjoint + + +Node1 + + +dspm::Mat::adjoint + + + + + +Node2 + + +dspm::Mat::inverse + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph_org.svg new file mode 100644 index 0000000..3255dc2 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a2944f7de712a8ebe6cbbb68b08372ead_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm::Mat::adjoint + + +Node1 + + +dspm::Mat::adjoint + + + + + +Node2 + + +dspm::Mat::inverse + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph.md5 b/docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph.md5 new file mode 100644 index 0000000..aab1e9c --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph.md5 @@ -0,0 +1 @@ +5f967da7f5c7dacd6400e6fa674e0a11 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph.svg b/docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph.svg new file mode 100644 index 0000000..1cc31a2 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph.svg @@ -0,0 +1,476 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::norm + + +Node1 + + +dspm::Mat::norm + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image_task + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +kalman_filter_task + + + + + +Node1->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +kalman_filter_task + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +ekf::rotm2quat + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +ekf_imu13states::TestFull + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node20 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +kalman_filter_calibration + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +kalman_filter_calibration + + + + + +Node4->Node9 + + + + + + + + +Node11 + + +kalman_filter_calibration + + + + + +Node4->Node11 + + + + + + + + +Node6->Node5 + + + + + + + + +Node8 + + +app_main + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +app_main + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +app_main + + + + + +Node11->Node12 + + + + + + + + +Node16->Node17 + + + + + + + + +Node19->Node17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph_org.svg new file mode 100644 index 0000000..eb74bbc --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a3b4566db0f4ad277e70c09f5e934b91e_icgraph_org.svg @@ -0,0 +1,393 @@ + + + + + + +dspm::Mat::norm + + +Node1 + + +dspm::Mat::norm + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image_task + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +kalman_filter_task + + + + + +Node1->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +kalman_filter_task + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +ekf::rotm2quat + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +ekf_imu13states::TestFull + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node20 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +kalman_filter_calibration + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +kalman_filter_calibration + + + + + +Node4->Node9 + + + + + + + + +Node11 + + +kalman_filter_calibration + + + + + +Node4->Node11 + + + + + + + + +Node6->Node5 + + + + + + + + +Node8 + + +app_main + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +app_main + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +app_main + + + + + +Node11->Node12 + + + + + + + + +Node16->Node17 + + + + + + + + +Node19->Node17 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.md5 b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.md5 new file mode 100644 index 0000000..95a28c0 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.md5 @@ -0,0 +1 @@ +9a632611c88a7c813e5bd105169da428 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.svg b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.svg new file mode 100644 index 0000000..2d9d24b --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::pinv + + +Node1 + + +dspm::Mat::pinv + + + + + +Node2 + + +dspm::Mat::augment + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspm::Mat::gaussianEliminate + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node1->Node9 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7 + + +dspm::Mat::swapRows + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9->Node3 + + + + + + + + +Node9->Node8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph_org.svg new file mode 100644 index 0000000..9948828 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_cgraph_org.svg @@ -0,0 +1,220 @@ + + + + + + +dspm::Mat::pinv + + +Node1 + + +dspm::Mat::pinv + + + + + +Node2 + + +dspm::Mat::augment + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspm::Mat::gaussianEliminate + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node1->Node9 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7 + + +dspm::Mat::swapRows + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9->Node3 + + + + + + + + +Node9->Node8 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph.md5 b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph.md5 new file mode 100644 index 0000000..8ef4f76 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph.md5 @@ -0,0 +1 @@ +08b745f30c0655ee6c525140457aa43b \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph.svg b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph.svg new file mode 100644 index 0000000..23a17b8 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm::Mat::pinv + + +Node1 + + +dspm::Mat::pinv + + + + + +Node2 + + +ekf::UpdateRef + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph_org.svg new file mode 100644 index 0000000..62e4e85 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a3d8be6dbfbc64fa98f08ef9ce8860a12_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm::Mat::pinv + + +Node1 + + +dspm::Mat::pinv + + + + + +Node2 + + +ekf::UpdateRef + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph.md5 b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph.md5 new file mode 100644 index 0000000..fe96e44 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph.md5 @@ -0,0 +1 @@ +e3590094fad9ea89dc02b493c2b68b4a \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph.svg b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph.svg new file mode 100644 index 0000000..f256be9 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph_org.svg new file mode 100644 index 0000000..9ae019a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph.md5 b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph.md5 new file mode 100644 index 0000000..a4e186d --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph.md5 @@ -0,0 +1 @@ +3b8f16f02fc9bdb48aa91db947dac92d \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph.svg b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph.svg new file mode 100644 index 0000000..0e44cfc --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::det + + + + + +Node1->Node2 + + + + + + + + +Node2->Node2 + + + + + + + + +Node3 + + +dspm::Mat::adjoint + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::inverse + + + + + +Node2->Node4 + + + + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph_org.svg new file mode 100644 index 0000000..e61a825 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a4c822cafab693f430803cc91f0143214_icgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::det + + + + + +Node1->Node2 + + + + + + + + +Node2->Node2 + + + + + + + + +Node3 + + +dspm::Mat::adjoint + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::inverse + + + + + +Node2->Node4 + + + + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.md5 b/docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.md5 new file mode 100644 index 0000000..e04b13a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.md5 @@ -0,0 +1 @@ +fcad09e3386efeeff613ba426e16d4c8 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.svg b/docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.svg new file mode 100644 index 0000000..3b67d4d --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::dotProduct + + +Node1 + + +dspm::Mat::dotProduct + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph_org.svg new file mode 100644 index 0000000..736fbce --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a51fe6b5b8909e956f9fe54d7cb9b7a9a_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::dotProduct + + +Node1 + + +dspm::Mat::dotProduct + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph.md5 b/docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph.md5 new file mode 100644 index 0000000..b92319d --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph.md5 @@ -0,0 +1 @@ +7725609166bf006da3350c73bc725c40 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph.svg b/docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph.svg new file mode 100644 index 0000000..cddd961 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + +dspm::Mat::Get + + +Node1 + + +dspm::Mat::Get + + + + + +Node2 + + +dspm::Mat::Get + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph_org.svg new file mode 100644 index 0000000..9377192 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a57f625f9b842f266a8c6db6a688a42ca_cgraph_org.svg @@ -0,0 +1,84 @@ + + + + + + +dspm::Mat::Get + + +Node1 + + +dspm::Mat::Get + + + + + +Node2 + + +dspm::Mat::Get + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph.md5 b/docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph.md5 new file mode 100644 index 0000000..cd6a36c --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph.md5 @@ -0,0 +1 @@ +099f6dfe5305af5fca3430caf1933fc6 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph.svg b/docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph.svg new file mode 100644 index 0000000..4ab0faf --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph_org.svg new file mode 100644 index 0000000..b9f6cdd --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a5a88624f27c4de9a94cd68d538ae02b0_cgraph_org.svg @@ -0,0 +1,66 @@ + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph.md5 b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph.md5 new file mode 100644 index 0000000..fe96e44 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph.md5 @@ -0,0 +1 @@ +e3590094fad9ea89dc02b493c2b68b4a \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph.svg b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph.svg new file mode 100644 index 0000000..f256be9 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph_org.svg new file mode 100644 index 0000000..9ae019a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph.md5 b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph.md5 new file mode 100644 index 0000000..15b17b6 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph.md5 @@ -0,0 +1 @@ +d8662e9c49f19229274d0f5aca899eba \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph.svg b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph.svg new file mode 100644 index 0000000..802f49f --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph.svg @@ -0,0 +1,1827 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::adjoint + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::inverse + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::augment + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dspm::Mat::pinv + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +dspm::Mat::roots + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dspm::Mat::bandSolve + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::block + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::cofactor + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dspm::Mat::Copy + + + + + +Node1->Node11 + + + + + + + + +Node18 + + +dspm::Mat::CopyHead + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +dspm::Mat::det + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +dspm::Mat::dotProduct + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +dspm::Mat::expHelper + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +dspm::Mat::operator^ + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +dspm::Mat::eye + + + + + +Node1->Node23 + + + + + + + + +Node60 + + +dspm::Mat::gaussianEliminate + + + + + +Node1->Node60 + + + + + + + + +Node61 + + +dspm::Mat::Get + + + + + +Node1->Node61 + + + + + + + + +Node62 + + +dspm::Mat::Get + + + + + +Node1->Node62 + + + + + + + + +Node63 + + +dspm::Mat::operator*= + + + + + +Node1->Node63 + + + + + + + + +Node64 + + +dspm::Mat::getROI + + + + + +Node1->Node64 + + + + + + + + +Node65 + + +dspm::Mat::getROI + + + + + +Node1->Node65 + + + + + + + + +Node66 + + +dspm::Mat::getROI + + + + + +Node1->Node66 + + + + + + + + +Node67 + + +dspm::Mat::Mat + + + + + +Node1->Node67 + + + + + + + + +Node68 + + +dspm::Mat::ones + + + + + +Node1->Node68 + + + + + + + + +Node69 + + +dspm::Mat::ones + + + + + +Node1->Node69 + + + + + + + + +Node70 + + +dspm::Mat::operator*= + + + + + +Node1->Node70 + + + + + + + + +Node71 + + +dspm::Mat::operator+= + + + + + +Node1->Node71 + + + + + + + + +Node72 + + +dspm::Mat::operator+= + + + + + +Node1->Node72 + + + + + + + + +Node73 + + +dspm::Mat::operator-= + + + + + +Node1->Node73 + + + + + + + + +Node74 + + +dspm::Mat::operator-= + + + + + +Node1->Node74 + + + + + + + + +Node75 + + +dspm::Mat::operator/= + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +dspm::Mat::operator/= + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +dspm::Mat::operator= + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +dspm::Mat::solve + + + + + +Node1->Node79 + + + + + + + + +Node80 + + +dspm::Mat::t + + + + + +Node1->Node80 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4->Node5 + + + + + + + + +Node4->Node7 + + + + + + + + +Node6 + + +ekf::UpdateRef + + + + + +Node5->Node6 + + + + + + + + +Node10->Node2 + + + + + + + + +Node12 + + +ekf_imu13states::StateXdot + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node11->Node14 + + + + + + + + +Node15 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node11->Node15 + + + + + + + + +Node17 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node11->Node17 + + + + + + + + +Node13 + + +ekf_imu13states::Test + + + + + +Node12->Node13 + + + + + + + + +Node16 + + +ekf_imu13states::TestFull + + + + + +Node15->Node16 + + + + + + + + +Node19->Node2 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node19 + + + + + + + + +Node21->Node21 + + + + + + + + +Node21->Node22 + + + + + + + + +Node23->Node5 + + + + + + + + +Node23->Node6 + + + + + + + + +Node23->Node14 + + + + + + + + +Node23->Node16 + + + + + + + + +Node23->Node17 + + + + + + + + +Node23->Node21 + + + + + + + + +Node24 + + +ekf::CovariancePrediction + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +dispaly_esp_text + + + + + +Node23->Node26 + + + + + + + + +Node28 + + +dispaly_esp_text + + + + + +Node23->Node28 + + + + + + + + +Node30 + + +dispaly_esp_text + + + + + +Node23->Node30 + + + + + + + + +Node32 + + +dispaly_esp_text + + + + + +Node23->Node32 + + + + + + + + +Node34 + + +draw_3d_image + + + + + +Node23->Node34 + + + + + + + + +Node44 + + +draw_3d_image + + + + + +Node23->Node44 + + + + + + + + +Node46 + + +draw_3d_image + + + + + +Node23->Node46 + + + + + + + + +Node48 + + +draw_3d_image + + + + + +Node23->Node48 + + + + + + + + +Node50 + + +draw_3d_image_task + + + + + +Node23->Node50 + + + + + + + + +Node51 + + +draw_3d_image_task + + + + + +Node23->Node51 + + + + + + + + +Node52 + + +draw_3d_image_task + + + + + +Node23->Node52 + + + + + + + + +Node53 + + +draw_3d_image_task + + + + + +Node23->Node53 + + + + + + + + +Node54 + + +draw_3d_image_task + + + + + +Node23->Node54 + + + + + + + + +Node55 + + +draw_3d_image_task + + + + + +Node23->Node55 + + + + + + + + +Node56 + + +draw_3d_image_task + + + + + +Node23->Node56 + + + + + + + + +Node57 + + +draw_3d_image_task + + + + + +Node23->Node57 + + + + + + + + +Node58 + + +ekf_imu13states::Init + + + + + +Node23->Node58 + + + + + + + + +Node59 + + +ekf_imu13states::LinearizeFG + + + + + +Node23->Node59 + + + + + + + + +Node25 + + +ekf::Process + + + + + +Node24->Node25 + + + + + + + + +Node25->Node16 + + + + + + + + +Node27 + + +app_main + + + + + +Node26->Node27 + + + + + + + + +Node29 + + +app_main + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +app_main + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +app_main + + + + + +Node32->Node33 + + + + + + + + +Node35 + + +kalman_filter_task + + + + + +Node34->Node35 + + + + + + + + +Node45 + + +kalman_filter_task + + + + + +Node44->Node45 + + + + + + + + +Node47 + + +kalman_filter_task + + + + + +Node46->Node47 + + + + + + + + +Node49 + + +kalman_filter_task + + + + + +Node48->Node49 + + + + + + + + +Node50->Node27 + + + + + + + + +Node60->Node5 + + + + + + + + +Node62->Node59 + + + + + + + + +Node62->Node61 + + + + + + + + +Node62->Node63 + + + + + + + + +Node65->Node64 + + + + + + + + +Node65->Node65 + + + + + + + + +Node69->Node69 + + + + + + + + +Node78->Node5 + + + + + + + + +Node80->Node6 + + + + + + + + +Node80->Node14 + + + + + + + + +Node80->Node15 + + + + + + + + +Node80->Node16 + + + + + + + + +Node80->Node17 + + + + + + + + +Node80->Node24 + + + + + + + + +Node80->Node52 + + + + + + + + +Node80->Node55 + + + + + + + + +Node80->Node60 + + + + + + + + +Node80->Node78 + + + + + + + + +Node81 + + +update_rotation_matrix + + + + + +Node80->Node81 + + + + + + + + +Node81->Node34 + + + + + + + + +Node81->Node44 + + + + + + + + +Node81->Node46 + + + + + + + + +Node81->Node48 + + + + + + + + +Node81->Node50 + + + + + + + + +Node81->Node51 + + + + + + + + +Node81->Node52 + + + + + + + + +Node81->Node53 + + + + + + + + +Node81->Node54 + + + + + + + + +Node81->Node55 + + + + + + + + +Node81->Node56 + + + + + + + + +Node81->Node57 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph_org.svg new file mode 100644 index 0000000..cbda7ca --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a5eb6987452e618ba8d638a6773a074df_icgraph_org.svg @@ -0,0 +1,1744 @@ + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::adjoint + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::inverse + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::augment + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dspm::Mat::pinv + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +dspm::Mat::roots + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dspm::Mat::bandSolve + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::block + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::cofactor + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dspm::Mat::Copy + + + + + +Node1->Node11 + + + + + + + + +Node18 + + +dspm::Mat::CopyHead + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +dspm::Mat::det + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +dspm::Mat::dotProduct + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +dspm::Mat::expHelper + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +dspm::Mat::operator^ + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +dspm::Mat::eye + + + + + +Node1->Node23 + + + + + + + + +Node60 + + +dspm::Mat::gaussianEliminate + + + + + +Node1->Node60 + + + + + + + + +Node61 + + +dspm::Mat::Get + + + + + +Node1->Node61 + + + + + + + + +Node62 + + +dspm::Mat::Get + + + + + +Node1->Node62 + + + + + + + + +Node63 + + +dspm::Mat::operator*= + + + + + +Node1->Node63 + + + + + + + + +Node64 + + +dspm::Mat::getROI + + + + + +Node1->Node64 + + + + + + + + +Node65 + + +dspm::Mat::getROI + + + + + +Node1->Node65 + + + + + + + + +Node66 + + +dspm::Mat::getROI + + + + + +Node1->Node66 + + + + + + + + +Node67 + + +dspm::Mat::Mat + + + + + +Node1->Node67 + + + + + + + + +Node68 + + +dspm::Mat::ones + + + + + +Node1->Node68 + + + + + + + + +Node69 + + +dspm::Mat::ones + + + + + +Node1->Node69 + + + + + + + + +Node70 + + +dspm::Mat::operator*= + + + + + +Node1->Node70 + + + + + + + + +Node71 + + +dspm::Mat::operator+= + + + + + +Node1->Node71 + + + + + + + + +Node72 + + +dspm::Mat::operator+= + + + + + +Node1->Node72 + + + + + + + + +Node73 + + +dspm::Mat::operator-= + + + + + +Node1->Node73 + + + + + + + + +Node74 + + +dspm::Mat::operator-= + + + + + +Node1->Node74 + + + + + + + + +Node75 + + +dspm::Mat::operator/= + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +dspm::Mat::operator/= + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +dspm::Mat::operator= + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +dspm::Mat::solve + + + + + +Node1->Node79 + + + + + + + + +Node80 + + +dspm::Mat::t + + + + + +Node1->Node80 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4->Node5 + + + + + + + + +Node4->Node7 + + + + + + + + +Node6 + + +ekf::UpdateRef + + + + + +Node5->Node6 + + + + + + + + +Node10->Node2 + + + + + + + + +Node12 + + +ekf_imu13states::StateXdot + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node11->Node14 + + + + + + + + +Node15 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node11->Node15 + + + + + + + + +Node17 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node11->Node17 + + + + + + + + +Node13 + + +ekf_imu13states::Test + + + + + +Node12->Node13 + + + + + + + + +Node16 + + +ekf_imu13states::TestFull + + + + + +Node15->Node16 + + + + + + + + +Node19->Node2 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node19 + + + + + + + + +Node21->Node21 + + + + + + + + +Node21->Node22 + + + + + + + + +Node23->Node5 + + + + + + + + +Node23->Node6 + + + + + + + + +Node23->Node14 + + + + + + + + +Node23->Node16 + + + + + + + + +Node23->Node17 + + + + + + + + +Node23->Node21 + + + + + + + + +Node24 + + +ekf::CovariancePrediction + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +dispaly_esp_text + + + + + +Node23->Node26 + + + + + + + + +Node28 + + +dispaly_esp_text + + + + + +Node23->Node28 + + + + + + + + +Node30 + + +dispaly_esp_text + + + + + +Node23->Node30 + + + + + + + + +Node32 + + +dispaly_esp_text + + + + + +Node23->Node32 + + + + + + + + +Node34 + + +draw_3d_image + + + + + +Node23->Node34 + + + + + + + + +Node44 + + +draw_3d_image + + + + + +Node23->Node44 + + + + + + + + +Node46 + + +draw_3d_image + + + + + +Node23->Node46 + + + + + + + + +Node48 + + +draw_3d_image + + + + + +Node23->Node48 + + + + + + + + +Node50 + + +draw_3d_image_task + + + + + +Node23->Node50 + + + + + + + + +Node51 + + +draw_3d_image_task + + + + + +Node23->Node51 + + + + + + + + +Node52 + + +draw_3d_image_task + + + + + +Node23->Node52 + + + + + + + + +Node53 + + +draw_3d_image_task + + + + + +Node23->Node53 + + + + + + + + +Node54 + + +draw_3d_image_task + + + + + +Node23->Node54 + + + + + + + + +Node55 + + +draw_3d_image_task + + + + + +Node23->Node55 + + + + + + + + +Node56 + + +draw_3d_image_task + + + + + +Node23->Node56 + + + + + + + + +Node57 + + +draw_3d_image_task + + + + + +Node23->Node57 + + + + + + + + +Node58 + + +ekf_imu13states::Init + + + + + +Node23->Node58 + + + + + + + + +Node59 + + +ekf_imu13states::LinearizeFG + + + + + +Node23->Node59 + + + + + + + + +Node25 + + +ekf::Process + + + + + +Node24->Node25 + + + + + + + + +Node25->Node16 + + + + + + + + +Node27 + + +app_main + + + + + +Node26->Node27 + + + + + + + + +Node29 + + +app_main + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +app_main + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +app_main + + + + + +Node32->Node33 + + + + + + + + +Node35 + + +kalman_filter_task + + + + + +Node34->Node35 + + + + + + + + +Node45 + + +kalman_filter_task + + + + + +Node44->Node45 + + + + + + + + +Node47 + + +kalman_filter_task + + + + + +Node46->Node47 + + + + + + + + +Node49 + + +kalman_filter_task + + + + + +Node48->Node49 + + + + + + + + +Node50->Node27 + + + + + + + + +Node60->Node5 + + + + + + + + +Node62->Node59 + + + + + + + + +Node62->Node61 + + + + + + + + +Node62->Node63 + + + + + + + + +Node65->Node64 + + + + + + + + +Node65->Node65 + + + + + + + + +Node69->Node69 + + + + + + + + +Node78->Node5 + + + + + + + + +Node80->Node6 + + + + + + + + +Node80->Node14 + + + + + + + + +Node80->Node15 + + + + + + + + +Node80->Node16 + + + + + + + + +Node80->Node17 + + + + + + + + +Node80->Node24 + + + + + + + + +Node80->Node52 + + + + + + + + +Node80->Node55 + + + + + + + + +Node80->Node60 + + + + + + + + +Node80->Node78 + + + + + + + + +Node81 + + +update_rotation_matrix + + + + + +Node80->Node81 + + + + + + + + +Node81->Node34 + + + + + + + + +Node81->Node44 + + + + + + + + +Node81->Node46 + + + + + + + + +Node81->Node48 + + + + + + + + +Node81->Node50 + + + + + + + + +Node81->Node51 + + + + + + + + +Node81->Node52 + + + + + + + + +Node81->Node53 + + + + + + + + +Node81->Node54 + + + + + + + + +Node81->Node55 + + + + + + + + +Node81->Node56 + + + + + + + + +Node81->Node57 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.md5 b/docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.md5 new file mode 100644 index 0000000..4c394d5 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.md5 @@ -0,0 +1 @@ +97570be7a09480924df17d49c5e32555 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.svg b/docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.svg new file mode 100644 index 0000000..13ff72a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + +dspm::Mat::operator= + + +Node1 + + +dspm::Mat::operator= + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph_org.svg new file mode 100644 index 0000000..8f5fdc9 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a6c4c4a4928e3ffbc8166ab6bb9a9ac91_cgraph_org.svg @@ -0,0 +1,66 @@ + + + + + + +dspm::Mat::operator= + + +Node1 + + +dspm::Mat::operator= + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph.md5 b/docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph.md5 new file mode 100644 index 0000000..4da6807 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph.md5 @@ -0,0 +1 @@ +5177fa240f55f6802cafbbbcd84e583e \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph.svg b/docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph.svg new file mode 100644 index 0000000..cf731f7 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph.svg @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::operator*= + + +Node1 + + +dspm::Mat::operator*= + + + + + +Node2 + + +dspm::Mat::Get + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph_org.svg new file mode 100644 index 0000000..eeff54f --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a6db445423c3ba0600145c883a534662c_cgraph_org.svg @@ -0,0 +1,84 @@ + + + + + + +dspm::Mat::operator*= + + +Node1 + + +dspm::Mat::operator*= + + + + + +Node2 + + +dspm::Mat::Get + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph.md5 b/docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph.md5 new file mode 100644 index 0000000..97a837f --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph.md5 @@ -0,0 +1 @@ +c642aecbe610cb6ea982d1ad25287837 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph.svg b/docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph.svg new file mode 100644 index 0000000..fbf2cd1 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dspm::Mat::operator-= + + +Node1 + + +dspm::Mat::operator-= + + + + + +Node2 + + +dsps_addc_f32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph_org.svg new file mode 100644 index 0000000..93926e4 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7070672481a32261bd5f01ec5c02184b_cgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dspm::Mat::operator-= + + +Node1 + + +dspm::Mat::operator-= + + + + + +Node2 + + +dsps_addc_f32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph.md5 b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph.md5 new file mode 100644 index 0000000..881bed2 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph.md5 @@ -0,0 +1 @@ +77cdc693badecc53ce84c271301fd2aa \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph.svg b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph.svg new file mode 100644 index 0000000..31ca407 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::eye + + +Node1 + + +dspm::Mat::eye + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph_org.svg new file mode 100644 index 0000000..1d2c0d5 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::eye + + +Node1 + + +dspm::Mat::eye + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph.md5 b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph.md5 new file mode 100644 index 0000000..57c8d81 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph.md5 @@ -0,0 +1 @@ +2fbd6437aeb4e2d7ad996a6b63fc30dd \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph.svg b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph.svg new file mode 100644 index 0000000..58dea45 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph.svg @@ -0,0 +1,871 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::eye + + +Node1 + + +dspm::Mat::eye + + + + + +Node2 + + +ekf::CovariancePrediction + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dispaly_esp_text + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +dispaly_esp_text + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +dispaly_esp_text + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +dispaly_esp_text + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +draw_3d_image + + + + + +Node1->Node13 + + + + + + + + +Node23 + + +draw_3d_image + + + + + +Node1->Node23 + + + + + + + + +Node25 + + +draw_3d_image + + + + + +Node1->Node25 + + + + + + + + +Node27 + + +draw_3d_image + + + + + +Node1->Node27 + + + + + + + + +Node29 + + +draw_3d_image_task + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +draw_3d_image_task + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +draw_3d_image_task + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +draw_3d_image_task + + + + + +Node1->Node32 + + + + + + + + +Node33 + + +draw_3d_image_task + + + + + +Node1->Node33 + + + + + + + + +Node34 + + +draw_3d_image_task + + + + + +Node1->Node34 + + + + + + + + +Node35 + + +draw_3d_image_task + + + + + +Node1->Node35 + + + + + + + + +Node36 + + +draw_3d_image_task + + + + + +Node1->Node36 + + + + + + + + +Node37 + + +dspm::Mat::expHelper + + + + + +Node1->Node37 + + + + + + + + +Node39 + + +ekf_imu13states::Init + + + + + +Node1->Node39 + + + + + + + + +Node40 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node40 + + + + + + + + +Node41 + + +dspm::Mat::pinv + + + + + +Node1->Node41 + + + + + + + + +Node42 + + +ekf::UpdateRef + + + + + +Node1->Node42 + + + + + + + + +Node43 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node43 + + + + + + + + +Node44 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node44 + + + + + + + + +Node3 + + +ekf::Process + + + + + +Node2->Node3 + + + + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +app_main + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +app_main + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +app_main + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +app_main + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +kalman_filter_task + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +app_main + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +kalman_filter_calibration + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +kalman_filter_calibration + + + + + +Node14->Node17 + + + + + + + + +Node19 + + +kalman_filter_calibration + + + + + +Node14->Node19 + + + + + + + + +Node21 + + +kalman_filter_calibration + + + + + +Node14->Node21 + + + + + + + + +Node16->Node15 + + + + + + + + +Node24 + + +kalman_filter_task + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +kalman_filter_task + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +kalman_filter_task + + + + + +Node27->Node28 + + + + + + + + +Node29->Node6 + + + + + + + + +Node37->Node37 + + + + + + + + +Node38 + + +dspm::Mat::operator^ + + + + + +Node37->Node38 + + + + + + + + +Node41->Node42 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph_org.svg new file mode 100644 index 0000000..a16ed97 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7502c6d836d1ae05f6880620c1a832b5_icgraph_org.svg @@ -0,0 +1,788 @@ + + + + + + +dspm::Mat::eye + + +Node1 + + +dspm::Mat::eye + + + + + +Node2 + + +ekf::CovariancePrediction + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dispaly_esp_text + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +dispaly_esp_text + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +dispaly_esp_text + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +dispaly_esp_text + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +draw_3d_image + + + + + +Node1->Node13 + + + + + + + + +Node23 + + +draw_3d_image + + + + + +Node1->Node23 + + + + + + + + +Node25 + + +draw_3d_image + + + + + +Node1->Node25 + + + + + + + + +Node27 + + +draw_3d_image + + + + + +Node1->Node27 + + + + + + + + +Node29 + + +draw_3d_image_task + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +draw_3d_image_task + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +draw_3d_image_task + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +draw_3d_image_task + + + + + +Node1->Node32 + + + + + + + + +Node33 + + +draw_3d_image_task + + + + + +Node1->Node33 + + + + + + + + +Node34 + + +draw_3d_image_task + + + + + +Node1->Node34 + + + + + + + + +Node35 + + +draw_3d_image_task + + + + + +Node1->Node35 + + + + + + + + +Node36 + + +draw_3d_image_task + + + + + +Node1->Node36 + + + + + + + + +Node37 + + +dspm::Mat::expHelper + + + + + +Node1->Node37 + + + + + + + + +Node39 + + +ekf_imu13states::Init + + + + + +Node1->Node39 + + + + + + + + +Node40 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node40 + + + + + + + + +Node41 + + +dspm::Mat::pinv + + + + + +Node1->Node41 + + + + + + + + +Node42 + + +ekf::UpdateRef + + + + + +Node1->Node42 + + + + + + + + +Node43 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node43 + + + + + + + + +Node44 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node44 + + + + + + + + +Node3 + + +ekf::Process + + + + + +Node2->Node3 + + + + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +app_main + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +app_main + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +app_main + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +app_main + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +kalman_filter_task + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +app_main + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +kalman_filter_calibration + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +kalman_filter_calibration + + + + + +Node14->Node17 + + + + + + + + +Node19 + + +kalman_filter_calibration + + + + + +Node14->Node19 + + + + + + + + +Node21 + + +kalman_filter_calibration + + + + + +Node14->Node21 + + + + + + + + +Node16->Node15 + + + + + + + + +Node24 + + +kalman_filter_task + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +kalman_filter_task + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +kalman_filter_task + + + + + +Node27->Node28 + + + + + + + + +Node29->Node6 + + + + + + + + +Node37->Node37 + + + + + + + + +Node38 + + +dspm::Mat::operator^ + + + + + +Node37->Node38 + + + + + + + + +Node41->Node42 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph.md5 b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph.md5 new file mode 100644 index 0000000..4e776f1 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph.md5 @@ -0,0 +1 @@ +82129989f1e0bd4087efaa9d47961c0f \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph.svg b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph.svg new file mode 100644 index 0000000..87684da --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +dspm::Mat::expHelper + + +Node1 + + +dspm::Mat::expHelper + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph_org.svg new file mode 100644 index 0000000..1b543fc --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +dspm::Mat::expHelper + + +Node1 + + +dspm::Mat::expHelper + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph.md5 b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph.md5 new file mode 100644 index 0000000..5ef2ada --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph.md5 @@ -0,0 +1 @@ +0508780db90cf61401e511ca136564c9 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph.svg b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph.svg new file mode 100644 index 0000000..8f1ea1d --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + +dspm::Mat::expHelper + + +Node1 + + +dspm::Mat::expHelper + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::operator^ + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph_org.svg new file mode 100644 index 0000000..d13f82a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a765a86e94b3d404e8578e22a36e7d424_icgraph_org.svg @@ -0,0 +1,48 @@ + + + + + + +dspm::Mat::expHelper + + +Node1 + + +dspm::Mat::expHelper + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::operator^ + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.md5 b/docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.md5 new file mode 100644 index 0000000..16938e9 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.md5 @@ -0,0 +1 @@ +192205432d171edbeb8884d7dee1f33a \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.svg b/docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.svg new file mode 100644 index 0000000..da3835e --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::ones + + +Node1 + + +dspm::Mat::ones + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph_org.svg new file mode 100644 index 0000000..2289ff8 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a773a2a3c35bdd961c597fa3cf9b0aa2c_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::ones + + +Node1 + + +dspm::Mat::ones + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.md5 b/docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.md5 new file mode 100644 index 0000000..2f7e252 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.md5 @@ -0,0 +1 @@ +76441dd2ade4b02f7c6ec0a1defb97ed \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.svg b/docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.svg new file mode 100644 index 0000000..73fee16 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::block + + +Node1 + + +dspm::Mat::block + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph_org.svg new file mode 100644 index 0000000..7be2d70 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a7ec320d03cbb5a898d4e9cdeb38a87d4_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::block + + +Node1 + + +dspm::Mat::block + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph.md5 b/docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph.md5 new file mode 100644 index 0000000..1372b6a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph.md5 @@ -0,0 +1 @@ +436a57807c26715a7b8cde2a689ab246 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph.svg b/docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph.svg new file mode 100644 index 0000000..e0904ef --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::bandSolve + + +Node1 + + +dspm::Mat::bandSolve + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph_org.svg new file mode 100644 index 0000000..9965f8a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a8acbcd773c6158ec2ee1fa51599bc64a_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::bandSolve + + +Node1 + + +dspm::Mat::bandSolve + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph.md5 b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph.md5 new file mode 100644 index 0000000..cfb30d7 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph.md5 @@ -0,0 +1 @@ +7b2890e48ca53a8ace24e79503f07fcc \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph.svg b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph.svg new file mode 100644 index 0000000..b0d6ea1 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::Copy + + +Node1 + + +dspm::Mat::Copy + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph_org.svg b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph_org.svg new file mode 100644 index 0000000..8e48af8 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::Copy + + +Node1 + + +dspm::Mat::Copy + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph.md5 b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph.md5 new file mode 100644 index 0000000..ba41c2d --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph.md5 @@ -0,0 +1 @@ +cecd0b69644da143452905b85bb50293 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph.svg b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph.svg new file mode 100644 index 0000000..f122e32 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph.svg @@ -0,0 +1,158 @@ + + + + + + + + + + + + +dspm::Mat::Copy + + +Node1 + + +dspm::Mat::Copy + + + + + +Node2 + + +ekf_imu13states::StateXdot + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +ekf_imu13states::Test + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +ekf_imu13states::TestFull + + + + + +Node5->Node6 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph_org.svg new file mode 100644 index 0000000..f3fe336 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a9b11a8f5022e6c54b212bf9af880b670_icgraph_org.svg @@ -0,0 +1,132 @@ + + + + + + +dspm::Mat::Copy + + +Node1 + + +dspm::Mat::Copy + + + + + +Node2 + + +ekf_imu13states::StateXdot + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +ekf_imu13states::Test + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +ekf_imu13states::TestFull + + + + + +Node5->Node6 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph.md5 b/docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph.md5 new file mode 100644 index 0000000..49e2153 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph.md5 @@ -0,0 +1 @@ +c499bd75517ddf7d9076663638d40103 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph.svg b/docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph.svg new file mode 100644 index 0000000..3b93e5f --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph.svg @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::swapRows + + +Node1 + + +dspm::Mat::swapRows + + + + + +Node2 + + +dspm::Mat::det + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +dspm::Mat::gaussianEliminate + + + + + +Node1->Node5 + + + + + + + + +Node2->Node2 + + + + + + + + +Node3 + + +dspm::Mat::adjoint + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::inverse + + + + + +Node2->Node4 + + + + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +dspm::Mat::pinv + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +ekf::UpdateRef + + + + + +Node6->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph_org.svg b/docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph_org.svg new file mode 100644 index 0000000..13e14a5 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_a9de682e7d416fa60f41a25da37350d7f_icgraph_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm::Mat::swapRows + + +Node1 + + +dspm::Mat::swapRows + + + + + +Node2 + + +dspm::Mat::det + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +dspm::Mat::gaussianEliminate + + + + + +Node1->Node5 + + + + + + + + +Node2->Node2 + + + + + + + + +Node3 + + +dspm::Mat::adjoint + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::inverse + + + + + +Node2->Node4 + + + + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +dspm::Mat::pinv + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +ekf::UpdateRef + + + + + +Node6->Node7 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph.md5 b/docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph.md5 new file mode 100644 index 0000000..8574438 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph.md5 @@ -0,0 +1 @@ +89c012d37d500c2000ef5b5c9f47e4c1 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph.svg b/docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph.svg new file mode 100644 index 0000000..3ea07f1 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::CopyHead + + +Node1 + + +dspm::Mat::CopyHead + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph_org.svg b/docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph_org.svg new file mode 100644 index 0000000..bea513a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa1c170522b5c50effcb87452a2b85471_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::CopyHead + + +Node1 + + +dspm::Mat::CopyHead + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph.md5 b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph.md5 new file mode 100644 index 0000000..88bc895 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph.md5 @@ -0,0 +1 @@ +5383490522844f05dd60e758b7539d1a \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph.svg b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph.svg new file mode 100644 index 0000000..288788c --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + +dspm::Mat::getROI + + +Node1 + + +dspm::Mat::getROI + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph_org.svg b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph_org.svg new file mode 100644 index 0000000..b92d880 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_cgraph_org.svg @@ -0,0 +1,66 @@ + + + + + + +dspm::Mat::getROI + + +Node1 + + +dspm::Mat::getROI + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph.md5 b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph.md5 new file mode 100644 index 0000000..9f7d512 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph.md5 @@ -0,0 +1 @@ +24f7e8cf5a1f1a2daed26f6dca46eee9 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph.svg b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph.svg new file mode 100644 index 0000000..3c3e48f --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + +dspm::Mat::getROI + + +Node1 + + +dspm::Mat::getROI + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::getROI + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph_org.svg b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph_org.svg new file mode 100644 index 0000000..ec6508e --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa70caf8f197878395a4a8324c2bd6594_icgraph_org.svg @@ -0,0 +1,48 @@ + + + + + + +dspm::Mat::getROI + + +Node1 + + +dspm::Mat::getROI + + + + + +Node1->Node1 + + + + + + + + +Node2 + + +dspm::Mat::getROI + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph.md5 b/docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph.md5 new file mode 100644 index 0000000..fe2d21b --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph.md5 @@ -0,0 +1 @@ +7817b66237b5060754458f70ecdd7a4f \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph.svg b/docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph.svg new file mode 100644 index 0000000..e6cae18 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph.svg @@ -0,0 +1,1710 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::allocate + + +Node1 + + +dspm::Mat::allocate + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspm::Mat::Mat + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dspm::Mat::Mat + + + + + +Node1->Node8 + + + + + + + + +Node80 + + +dspm::Mat::operator= + + + + + +Node1->Node80 + + + + + + + + +Node3 + + +dspm::Mat::det + + + + + +Node2->Node3 + + + + + + + + +Node3->Node3 + + + + + + + + +Node4 + + +dspm::Mat::adjoint + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::inverse + + + + + +Node3->Node5 + + + + + + + + +Node4->Node5 + + + + + + + + +Node8->Node3 + + + + + + + + +Node8->Node4 + + + + + + + + +Node8->Node5 + + + + + + + + +Node8->Node6 + + + + + + + + +Node9 + + +dspm::Mat::augment + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dspm::Mat::pinv + + + + + +Node8->Node10 + + + + + + + + +Node12 + + +dspm::Mat::roots + + + + + +Node8->Node12 + + + + + + + + +Node13 + + +dspm::Mat::bandSolve + + + + + +Node8->Node13 + + + + + + + + +Node14 + + +dspm::Mat::block + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +dspm::Mat::cofactor + + + + + +Node8->Node15 + + + + + + + + +Node16 + + +dspm::Mat::Copy + + + + + +Node8->Node16 + + + + + + + + +Node23 + + +dspm::Mat::CopyHead + + + + + +Node8->Node23 + + + + + + + + +Node24 + + +dspm::Mat::dotProduct + + + + + +Node8->Node24 + + + + + + + + +Node25 + + +dspm::Mat::expHelper + + + + + +Node8->Node25 + + + + + + + + +Node26 + + +dspm::Mat::operator^ + + + + + +Node8->Node26 + + + + + + + + +Node27 + + +dspm::Mat::eye + + + + + +Node8->Node27 + + + + + + + + +Node64 + + +dspm::Mat::gaussianEliminate + + + + + +Node8->Node64 + + + + + + + + +Node65 + + +dspm::Mat::Get + + + + + +Node8->Node65 + + + + + + + + +Node66 + + +dspm::Mat::Get + + + + + +Node8->Node66 + + + + + + + + +Node67 + + +dspm::Mat::operator*= + + + + + +Node8->Node67 + + + + + + + + +Node68 + + +dspm::Mat::getROI + + + + + +Node8->Node68 + + + + + + + + +Node69 + + +dspm::Mat::getROI + + + + + +Node8->Node69 + + + + + + + + +Node70 + + +dspm::Mat::getROI + + + + + +Node8->Node70 + + + + + + + + +Node71 + + +dspm::Mat::ones + + + + + +Node8->Node71 + + + + + + + + +Node72 + + +dspm::Mat::ones + + + + + +Node8->Node72 + + + + + + + + +Node73 + + +dspm::Mat::operator*= + + + + + +Node8->Node73 + + + + + + + + +Node74 + + +dspm::Mat::operator+= + + + + + +Node8->Node74 + + + + + + + + +Node75 + + +dspm::Mat::operator+= + + + + + +Node8->Node75 + + + + + + + + +Node76 + + +dspm::Mat::operator-= + + + + + +Node8->Node76 + + + + + + + + +Node77 + + +dspm::Mat::operator-= + + + + + +Node8->Node77 + + + + + + + + +Node78 + + +dspm::Mat::operator/= + + + + + +Node8->Node78 + + + + + + + + +Node79 + + +dspm::Mat::operator/= + + + + + +Node8->Node79 + + + + + + + + +Node8->Node80 + + + + + + + + +Node81 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node8->Node81 + + + + + + + + +Node82 + + +dspm::Mat::solve + + + + + +Node8->Node82 + + + + + + + + +Node83 + + +dspm::Mat::t + + + + + +Node8->Node83 + + + + + + + + +Node9->Node10 + + + + + + + + +Node9->Node12 + + + + + + + + +Node11 + + +ekf::UpdateRef + + + + + +Node10->Node11 + + + + + + + + +Node15->Node4 + + + + + + + + +Node17 + + +ekf_imu13states::StateXdot + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node16->Node20 + + + + + + + + +Node22 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node16->Node22 + + + + + + + + +Node21 + + +ekf_imu13states::TestFull + + + + + +Node20->Node21 + + + + + + + + +Node25->Node25 + + + + + + + + +Node25->Node26 + + + + + + + + +Node27->Node10 + + + + + + + + +Node27->Node11 + + + + + + + + +Node27->Node19 + + + + + + + + +Node27->Node21 + + + + + + + + +Node27->Node22 + + + + + + + + +Node27->Node25 + + + + + + + + +Node28 + + +ekf::CovariancePrediction + + + + + +Node27->Node28 + + + + + + + + +Node30 + + +dispaly_esp_text + + + + + +Node27->Node30 + + + + + + + + +Node32 + + +dispaly_esp_text + + + + + +Node27->Node32 + + + + + + + + +Node34 + + +dispaly_esp_text + + + + + +Node27->Node34 + + + + + + + + +Node36 + + +dispaly_esp_text + + + + + +Node27->Node36 + + + + + + + + +Node38 + + +draw_3d_image + + + + + +Node27->Node38 + + + + + + + + +Node48 + + +draw_3d_image + + + + + +Node27->Node48 + + + + + + + + +Node50 + + +draw_3d_image + + + + + +Node27->Node50 + + + + + + + + +Node52 + + +draw_3d_image + + + + + +Node27->Node52 + + + + + + + + +Node54 + + +draw_3d_image_task + + + + + +Node27->Node54 + + + + + + + + +Node55 + + +draw_3d_image_task + + + + + +Node27->Node55 + + + + + + + + +Node56 + + +draw_3d_image_task + + + + + +Node27->Node56 + + + + + + + + +Node57 + + +draw_3d_image_task + + + + + +Node27->Node57 + + + + + + + + +Node58 + + +draw_3d_image_task + + + + + +Node27->Node58 + + + + + + + + +Node59 + + +draw_3d_image_task + + + + + +Node27->Node59 + + + + + + + + +Node60 + + +draw_3d_image_task + + + + + +Node27->Node60 + + + + + + + + +Node61 + + +draw_3d_image_task + + + + + +Node27->Node61 + + + + + + + + +Node62 + + +ekf_imu13states::Init + + + + + +Node27->Node62 + + + + + + + + +Node63 + + +ekf_imu13states::LinearizeFG + + + + + +Node27->Node63 + + + + + + + + +Node64->Node10 + + + + + + + + +Node66->Node63 + + + + + + + + +Node66->Node65 + + + + + + + + +Node66->Node67 + + + + + + + + +Node69->Node68 + + + + + + + + +Node69->Node69 + + + + + + + + +Node72->Node72 + + + + + + + + +Node81->Node10 + + + + + + + + +Node83->Node11 + + + + + + + + +Node83->Node19 + + + + + + + + +Node83->Node20 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node22 + + + + + + + + +Node83->Node28 + + + + + + + + +Node83->Node56 + + + + + + + + +Node83->Node59 + + + + + + + + +Node83->Node64 + + + + + + + + +Node83->Node81 + + + + + + + + +Node84 + + +update_rotation_matrix + + + + + +Node83->Node84 + + + + + + + + +Node84->Node38 + + + + + + + + +Node84->Node48 + + + + + + + + +Node84->Node50 + + + + + + + + +Node84->Node52 + + + + + + + + +Node84->Node54 + + + + + + + + +Node84->Node55 + + + + + + + + +Node84->Node56 + + + + + + + + +Node84->Node57 + + + + + + + + +Node84->Node58 + + + + + + + + +Node84->Node59 + + + + + + + + +Node84->Node60 + + + + + + + + +Node84->Node61 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph_org.svg b/docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph_org.svg new file mode 100644 index 0000000..a1c3f86 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aa82f099abe2da9662fd06e72056df323_icgraph_org.svg @@ -0,0 +1,1627 @@ + + + + + + +dspm::Mat::allocate + + +Node1 + + +dspm::Mat::allocate + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspm::Mat::Mat + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dspm::Mat::Mat + + + + + +Node1->Node8 + + + + + + + + +Node80 + + +dspm::Mat::operator= + + + + + +Node1->Node80 + + + + + + + + +Node3 + + +dspm::Mat::det + + + + + +Node2->Node3 + + + + + + + + +Node3->Node3 + + + + + + + + +Node4 + + +dspm::Mat::adjoint + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::inverse + + + + + +Node3->Node5 + + + + + + + + +Node4->Node5 + + + + + + + + +Node8->Node3 + + + + + + + + +Node8->Node4 + + + + + + + + +Node8->Node5 + + + + + + + + +Node8->Node6 + + + + + + + + +Node9 + + +dspm::Mat::augment + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dspm::Mat::pinv + + + + + +Node8->Node10 + + + + + + + + +Node12 + + +dspm::Mat::roots + + + + + +Node8->Node12 + + + + + + + + +Node13 + + +dspm::Mat::bandSolve + + + + + +Node8->Node13 + + + + + + + + +Node14 + + +dspm::Mat::block + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +dspm::Mat::cofactor + + + + + +Node8->Node15 + + + + + + + + +Node16 + + +dspm::Mat::Copy + + + + + +Node8->Node16 + + + + + + + + +Node23 + + +dspm::Mat::CopyHead + + + + + +Node8->Node23 + + + + + + + + +Node24 + + +dspm::Mat::dotProduct + + + + + +Node8->Node24 + + + + + + + + +Node25 + + +dspm::Mat::expHelper + + + + + +Node8->Node25 + + + + + + + + +Node26 + + +dspm::Mat::operator^ + + + + + +Node8->Node26 + + + + + + + + +Node27 + + +dspm::Mat::eye + + + + + +Node8->Node27 + + + + + + + + +Node64 + + +dspm::Mat::gaussianEliminate + + + + + +Node8->Node64 + + + + + + + + +Node65 + + +dspm::Mat::Get + + + + + +Node8->Node65 + + + + + + + + +Node66 + + +dspm::Mat::Get + + + + + +Node8->Node66 + + + + + + + + +Node67 + + +dspm::Mat::operator*= + + + + + +Node8->Node67 + + + + + + + + +Node68 + + +dspm::Mat::getROI + + + + + +Node8->Node68 + + + + + + + + +Node69 + + +dspm::Mat::getROI + + + + + +Node8->Node69 + + + + + + + + +Node70 + + +dspm::Mat::getROI + + + + + +Node8->Node70 + + + + + + + + +Node71 + + +dspm::Mat::ones + + + + + +Node8->Node71 + + + + + + + + +Node72 + + +dspm::Mat::ones + + + + + +Node8->Node72 + + + + + + + + +Node73 + + +dspm::Mat::operator*= + + + + + +Node8->Node73 + + + + + + + + +Node74 + + +dspm::Mat::operator+= + + + + + +Node8->Node74 + + + + + + + + +Node75 + + +dspm::Mat::operator+= + + + + + +Node8->Node75 + + + + + + + + +Node76 + + +dspm::Mat::operator-= + + + + + +Node8->Node76 + + + + + + + + +Node77 + + +dspm::Mat::operator-= + + + + + +Node8->Node77 + + + + + + + + +Node78 + + +dspm::Mat::operator/= + + + + + +Node8->Node78 + + + + + + + + +Node79 + + +dspm::Mat::operator/= + + + + + +Node8->Node79 + + + + + + + + +Node8->Node80 + + + + + + + + +Node81 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node8->Node81 + + + + + + + + +Node82 + + +dspm::Mat::solve + + + + + +Node8->Node82 + + + + + + + + +Node83 + + +dspm::Mat::t + + + + + +Node8->Node83 + + + + + + + + +Node9->Node10 + + + + + + + + +Node9->Node12 + + + + + + + + +Node11 + + +ekf::UpdateRef + + + + + +Node10->Node11 + + + + + + + + +Node15->Node4 + + + + + + + + +Node17 + + +ekf_imu13states::StateXdot + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node16->Node20 + + + + + + + + +Node22 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node16->Node22 + + + + + + + + +Node21 + + +ekf_imu13states::TestFull + + + + + +Node20->Node21 + + + + + + + + +Node25->Node25 + + + + + + + + +Node25->Node26 + + + + + + + + +Node27->Node10 + + + + + + + + +Node27->Node11 + + + + + + + + +Node27->Node19 + + + + + + + + +Node27->Node21 + + + + + + + + +Node27->Node22 + + + + + + + + +Node27->Node25 + + + + + + + + +Node28 + + +ekf::CovariancePrediction + + + + + +Node27->Node28 + + + + + + + + +Node30 + + +dispaly_esp_text + + + + + +Node27->Node30 + + + + + + + + +Node32 + + +dispaly_esp_text + + + + + +Node27->Node32 + + + + + + + + +Node34 + + +dispaly_esp_text + + + + + +Node27->Node34 + + + + + + + + +Node36 + + +dispaly_esp_text + + + + + +Node27->Node36 + + + + + + + + +Node38 + + +draw_3d_image + + + + + +Node27->Node38 + + + + + + + + +Node48 + + +draw_3d_image + + + + + +Node27->Node48 + + + + + + + + +Node50 + + +draw_3d_image + + + + + +Node27->Node50 + + + + + + + + +Node52 + + +draw_3d_image + + + + + +Node27->Node52 + + + + + + + + +Node54 + + +draw_3d_image_task + + + + + +Node27->Node54 + + + + + + + + +Node55 + + +draw_3d_image_task + + + + + +Node27->Node55 + + + + + + + + +Node56 + + +draw_3d_image_task + + + + + +Node27->Node56 + + + + + + + + +Node57 + + +draw_3d_image_task + + + + + +Node27->Node57 + + + + + + + + +Node58 + + +draw_3d_image_task + + + + + +Node27->Node58 + + + + + + + + +Node59 + + +draw_3d_image_task + + + + + +Node27->Node59 + + + + + + + + +Node60 + + +draw_3d_image_task + + + + + +Node27->Node60 + + + + + + + + +Node61 + + +draw_3d_image_task + + + + + +Node27->Node61 + + + + + + + + +Node62 + + +ekf_imu13states::Init + + + + + +Node27->Node62 + + + + + + + + +Node63 + + +ekf_imu13states::LinearizeFG + + + + + +Node27->Node63 + + + + + + + + +Node64->Node10 + + + + + + + + +Node66->Node63 + + + + + + + + +Node66->Node65 + + + + + + + + +Node66->Node67 + + + + + + + + +Node69->Node68 + + + + + + + + +Node69->Node69 + + + + + + + + +Node72->Node72 + + + + + + + + +Node81->Node10 + + + + + + + + +Node83->Node11 + + + + + + + + +Node83->Node19 + + + + + + + + +Node83->Node20 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node22 + + + + + + + + +Node83->Node28 + + + + + + + + +Node83->Node56 + + + + + + + + +Node83->Node59 + + + + + + + + +Node83->Node64 + + + + + + + + +Node83->Node81 + + + + + + + + +Node84 + + +update_rotation_matrix + + + + + +Node83->Node84 + + + + + + + + +Node84->Node38 + + + + + + + + +Node84->Node48 + + + + + + + + +Node84->Node50 + + + + + + + + +Node84->Node52 + + + + + + + + +Node84->Node54 + + + + + + + + +Node84->Node55 + + + + + + + + +Node84->Node56 + + + + + + + + +Node84->Node57 + + + + + + + + +Node84->Node58 + + + + + + + + +Node84->Node59 + + + + + + + + +Node84->Node60 + + + + + + + + +Node84->Node61 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph.md5 b/docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph.md5 new file mode 100644 index 0000000..49a9dc8 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph.md5 @@ -0,0 +1 @@ +7faf35e22c5438bfb46ca0a9c154f220 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph.svg b/docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph.svg new file mode 100644 index 0000000..12fa320 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dspm::Mat::operator/= + + +Node1 + + +dspm::Mat::operator/= + + + + + +Node2 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph_org.svg b/docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph_org.svg new file mode 100644 index 0000000..1fe538d --- /dev/null +++ b/docs/html/classdspm_1_1_mat_abecd4c41d26bbe015c86e0a7f1205af3_cgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dspm::Mat::operator/= + + +Node1 + + +dspm::Mat::operator/= + + + + + +Node2 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph.md5 b/docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph.md5 new file mode 100644 index 0000000..015abd7 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph.md5 @@ -0,0 +1 @@ +8bc62de857c8293e733992313ee22df5 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph.svg b/docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph.svg new file mode 100644 index 0000000..4f9adfb --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::operator/= + + +Node1 + + +dspm::Mat::operator/= + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph_org.svg b/docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph_org.svg new file mode 100644 index 0000000..d5a9b2a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ac2b42e38e401e60aa31ad0ca37532ae0_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::operator/= + + +Node1 + + +dspm::Mat::operator/= + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph.md5 b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph.md5 new file mode 100644 index 0000000..24d9786 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph.md5 @@ -0,0 +1 @@ +89e0194357f9a89946f687cb5c93f8a4 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph.svg b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph.svg new file mode 100644 index 0000000..994985f --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::gaussianEliminate + + +Node1 + + +dspm::Mat::gaussianEliminate + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::swapRows + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dspm::Mat::t + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + +Node5->Node2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph_org.svg b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph_org.svg new file mode 100644 index 0000000..2bdb510 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_cgraph_org.svg @@ -0,0 +1,102 @@ + + + + + + +dspm::Mat::gaussianEliminate + + +Node1 + + +dspm::Mat::gaussianEliminate + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::swapRows + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dspm::Mat::t + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + +Node5->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph.md5 b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph.md5 new file mode 100644 index 0000000..b138c27 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph.md5 @@ -0,0 +1 @@ +7c3a2ca6544365763efcbce648afdb79 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph.svg b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph.svg new file mode 100644 index 0000000..b7d2148 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::gaussianEliminate + + +Node1 + + +dspm::Mat::gaussianEliminate + + + + + +Node2 + + +dspm::Mat::pinv + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::UpdateRef + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph_org.svg b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph_org.svg new file mode 100644 index 0000000..8bf346f --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ac5482cf5daed6c1f7f66639913d71b39_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::gaussianEliminate + + +Node1 + + +dspm::Mat::gaussianEliminate + + + + + +Node2 + + +dspm::Mat::pinv + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::UpdateRef + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph.md5 b/docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph.md5 new file mode 100644 index 0000000..49fb3dc --- /dev/null +++ b/docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph.md5 @@ -0,0 +1 @@ +5c50f0ebc4909d719674e4c9a0d7e9e5 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph.svg b/docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph.svg new file mode 100644 index 0000000..90d65bd --- /dev/null +++ b/docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::getROI + + +Node1 + + +dspm::Mat::getROI + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph_org.svg b/docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph_org.svg new file mode 100644 index 0000000..49c83cd --- /dev/null +++ b/docs/html/classdspm_1_1_mat_acf58a251e4f3cce0dcd48d3b277c3ea7_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::getROI + + +Node1 + + +dspm::Mat::getROI + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph.md5 b/docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph.md5 new file mode 100644 index 0000000..fe96e44 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph.md5 @@ -0,0 +1 @@ +e3590094fad9ea89dc02b493c2b68b4a \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph.svg b/docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph.svg new file mode 100644 index 0000000..f256be9 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph_org.svg b/docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph_org.svg new file mode 100644 index 0000000..9ae019a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ad48017c1f1dc16c62bf629a505040cb3_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm::Mat::Mat + + +Node1 + + +dspm::Mat::Mat + + + + + +Node2 + + +dspm::Mat::allocate + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph.md5 b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph.md5 new file mode 100644 index 0000000..a4e1e8e --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph.md5 @@ -0,0 +1 @@ +a3a9ae8a5e25c20e7606e279f30bbd28 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph.svg b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph.svg new file mode 100644 index 0000000..bdb797b --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::augment + + +Node1 + + +dspm::Mat::augment + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph_org.svg b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph_org.svg new file mode 100644 index 0000000..e711d52 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::augment + + +Node1 + + +dspm::Mat::augment + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph.md5 b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph.md5 new file mode 100644 index 0000000..2013ea6 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph.md5 @@ -0,0 +1 @@ +508b405b2e81a68f7bf6c8fb2efb2789 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph.svg b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph.svg new file mode 100644 index 0000000..810a984 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dspm::Mat::augment + + +Node1 + + +dspm::Mat::augment + + + + + +Node2 + + +dspm::Mat::pinv + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::roots + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +ekf::UpdateRef + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph_org.svg b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph_org.svg new file mode 100644 index 0000000..5958bde --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ad6b5781e65c612fa063313333abad614_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dspm::Mat::augment + + +Node1 + + +dspm::Mat::augment + + + + + +Node2 + + +dspm::Mat::pinv + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::roots + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +ekf::UpdateRef + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.md5 b/docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.md5 new file mode 100644 index 0000000..ada3528 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.md5 @@ -0,0 +1 @@ +e124fb3d230c1d8c3c0ca2ad780d9c7e \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.svg b/docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.svg new file mode 100644 index 0000000..6a525e4 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::solve + + +Node1 + + +dspm::Mat::solve + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph_org.svg b/docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph_org.svg new file mode 100644 index 0000000..d451de2 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ada20f15fbc75e0fdc1c0d2e15fc48a1a_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::solve + + +Node1 + + +dspm::Mat::solve + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph.md5 b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph.md5 new file mode 100644 index 0000000..02cfdc6 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph.md5 @@ -0,0 +1 @@ +3ff29bb8596b216714b3bf22c8227779 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph.svg b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph.svg new file mode 100644 index 0000000..1fc4f38 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::cofactor + + +Node1 + + +dspm::Mat::cofactor + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph_org.svg b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph_org.svg new file mode 100644 index 0000000..7a2c316 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::cofactor + + +Node1 + + +dspm::Mat::cofactor + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph.md5 b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph.md5 new file mode 100644 index 0000000..6cda8bd --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph.md5 @@ -0,0 +1 @@ +5ff8b8252302531e25ac4442ce58b06b \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph.svg b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph.svg new file mode 100644 index 0000000..82f981a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::cofactor + + +Node1 + + +dspm::Mat::cofactor + + + + + +Node2 + + +dspm::Mat::adjoint + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::inverse + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph_org.svg b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph_org.svg new file mode 100644 index 0000000..7d7f2fe --- /dev/null +++ b/docs/html/classdspm_1_1_mat_ae8001066240ab06aa1390ac944835ff1_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::cofactor + + +Node1 + + +dspm::Mat::cofactor + + + + + +Node2 + + +dspm::Mat::adjoint + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::inverse + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph.md5 b/docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph.md5 new file mode 100644 index 0000000..ce873a1 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph.md5 @@ -0,0 +1 @@ +d2f5cf2647a59da4ea949dff627ba2e8 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph.svg b/docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph.svg new file mode 100644 index 0000000..929e734 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::getROI + + +Node1 + + +dspm::Mat::getROI + + + + + +Node2 + + +dspm::Mat::getROI + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node2 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph_org.svg b/docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph_org.svg new file mode 100644 index 0000000..733ef51 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_aea26a323d8700c5ed4a3cf0930ff9527_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +dspm::Mat::getROI + + +Node1 + + +dspm::Mat::getROI + + + + + +Node2 + + +dspm::Mat::getROI + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node2 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph.md5 b/docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph.md5 new file mode 100644 index 0000000..a5f0144 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph.md5 @@ -0,0 +1 @@ +bc8ce53097a6397070f456d8bda2562f \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph.svg b/docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph.svg new file mode 100644 index 0000000..bb9c376 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dspm::Mat::operator+= + + +Node1 + + +dspm::Mat::operator+= + + + + + +Node2 + + +dsps_addc_f32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph_org.svg b/docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph_org.svg new file mode 100644 index 0000000..9f7d43b --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af051fad655af0540d571cf345241a2d8_cgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dspm::Mat::operator+= + + +Node1 + + +dspm::Mat::operator+= + + + + + +Node2 + + +dsps_addc_f32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph.md5 b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph.md5 new file mode 100644 index 0000000..6584c06 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph.md5 @@ -0,0 +1 @@ +76ee554f9ca7477ebb3f871621c540d2 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph.svg b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph.svg new file mode 100644 index 0000000..6c5cccb --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::t + + +Node1 + + +dspm::Mat::t + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph_org.svg b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph_org.svg new file mode 100644 index 0000000..8b178eb --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::t + + +Node1 + + +dspm::Mat::t + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph.md5 b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph.md5 new file mode 100644 index 0000000..b557348 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph.md5 @@ -0,0 +1 @@ +68c307c950605cac02c7878c664ddb42 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph.svg b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph.svg new file mode 100644 index 0000000..fbf4bfe --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph.svg @@ -0,0 +1,666 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::t + + +Node1 + + +dspm::Mat::t + + + + + +Node2 + + +ekf::CovariancePrediction + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +draw_3d_image_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +draw_3d_image_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspm::Mat::gaussianEliminate + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +ekf::UpdateRef + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node1->Node11 + + + + + + + + +Node35 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node35 + + + + + + + + +Node36 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node36 + + + + + + + + +Node37 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +ekf::Process + + + + + +Node2->Node3 + + + + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dspm::Mat::pinv + + + + + +Node7->Node8 + + + + + + + + +Node8->Node9 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node5 + + + + + + + + +Node11->Node6 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node11->Node12 + + + + + + + + +Node22 + + +draw_3d_image + + + + + +Node11->Node22 + + + + + + + + +Node24 + + +draw_3d_image + + + + + +Node11->Node24 + + + + + + + + +Node26 + + +draw_3d_image + + + + + +Node11->Node26 + + + + + + + + +Node28 + + +draw_3d_image_task + + + + + +Node11->Node28 + + + + + + + + +Node30 + + +draw_3d_image_task + + + + + +Node11->Node30 + + + + + + + + +Node31 + + +draw_3d_image_task + + + + + +Node11->Node31 + + + + + + + + +Node32 + + +draw_3d_image_task + + + + + +Node11->Node32 + + + + + + + + +Node33 + + +draw_3d_image_task + + + + + +Node11->Node33 + + + + + + + + +Node34 + + +draw_3d_image_task + + + + + +Node11->Node34 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node23 + + +kalman_filter_task + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +kalman_filter_task + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +kalman_filter_task + + + + + +Node26->Node27 + + + + + + + + +Node29 + + +app_main + + + + + +Node28->Node29 + + + + + + + + +Node36->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph_org.svg b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph_org.svg new file mode 100644 index 0000000..ece72e1 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af1013adcb6d601fba7bf788fd52d80b4_icgraph_org.svg @@ -0,0 +1,583 @@ + + + + + + +dspm::Mat::t + + +Node1 + + +dspm::Mat::t + + + + + +Node2 + + +ekf::CovariancePrediction + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +draw_3d_image_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +draw_3d_image_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspm::Mat::gaussianEliminate + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +ekf::UpdateRef + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node1->Node11 + + + + + + + + +Node35 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node35 + + + + + + + + +Node36 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node36 + + + + + + + + +Node37 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +ekf::Process + + + + + +Node2->Node3 + + + + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dspm::Mat::pinv + + + + + +Node7->Node8 + + + + + + + + +Node8->Node9 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node5 + + + + + + + + +Node11->Node6 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node11->Node12 + + + + + + + + +Node22 + + +draw_3d_image + + + + + +Node11->Node22 + + + + + + + + +Node24 + + +draw_3d_image + + + + + +Node11->Node24 + + + + + + + + +Node26 + + +draw_3d_image + + + + + +Node11->Node26 + + + + + + + + +Node28 + + +draw_3d_image_task + + + + + +Node11->Node28 + + + + + + + + +Node30 + + +draw_3d_image_task + + + + + +Node11->Node30 + + + + + + + + +Node31 + + +draw_3d_image_task + + + + + +Node11->Node31 + + + + + + + + +Node32 + + +draw_3d_image_task + + + + + +Node11->Node32 + + + + + + + + +Node33 + + +draw_3d_image_task + + + + + +Node11->Node33 + + + + + + + + +Node34 + + +draw_3d_image_task + + + + + +Node11->Node34 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node23 + + +kalman_filter_task + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +kalman_filter_task + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +kalman_filter_task + + + + + +Node26->Node27 + + + + + + + + +Node29 + + +app_main + + + + + +Node28->Node29 + + + + + + + + +Node36->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph.md5 b/docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph.md5 new file mode 100644 index 0000000..2750fa2 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph.md5 @@ -0,0 +1 @@ +5f5d91b98d3ca5d9dc9a57fcb7be10d0 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph.svg b/docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph.svg new file mode 100644 index 0000000..31f9496 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + +dspm::Mat::roots + + +Node1 + + +dspm::Mat::roots + + + + + +Node2 + + +dspm::Mat::augment + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph_org.svg b/docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph_org.svg new file mode 100644 index 0000000..79dd199 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af10a9ed71cd84b42c44a035e71e40132_cgraph_org.svg @@ -0,0 +1,84 @@ + + + + + + +dspm::Mat::roots + + +Node1 + + +dspm::Mat::roots + + + + + +Node2 + + +dspm::Mat::augment + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.md5 b/docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.md5 new file mode 100644 index 0000000..5d6285e --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.md5 @@ -0,0 +1 @@ +7b02be20af0de7d7504d2cfd17832406 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.svg b/docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.svg new file mode 100644 index 0000000..4143e0a --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm::Mat::inverse + + +Node1 + + +dspm::Mat::inverse + + + + + +Node2 + + +dspm::Mat::adjoint + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dspm::Mat::det + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::cofactor + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node2->Node6 + + + + + + + + +Node3->Node4 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node6 + + + + + + + + +Node7 + + +dspm::Mat::Mat + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::swapRows + + + + + +Node6->Node8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph_org.svg b/docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph_org.svg new file mode 100644 index 0000000..d81d352 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af5c78c8f94cf90af1c9a8bfe9ac4209f_cgraph_org.svg @@ -0,0 +1,174 @@ + + + + + + +dspm::Mat::inverse + + +Node1 + + +dspm::Mat::inverse + + + + + +Node2 + + +dspm::Mat::adjoint + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dspm::Mat::det + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::cofactor + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node2->Node6 + + + + + + + + +Node3->Node4 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node6 + + + + + + + + +Node7 + + +dspm::Mat::Mat + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::swapRows + + + + + +Node6->Node8 + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph.md5 b/docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph.md5 new file mode 100644 index 0000000..a376613 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph.md5 @@ -0,0 +1 @@ +dcf3e3f645eadb42492a77a67b6a7080 \ No newline at end of file diff --git a/docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph.svg b/docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph.svg new file mode 100644 index 0000000..44fb7a8 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm::Mat::operator-= + + +Node1 + + +dspm::Mat::operator-= + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph_org.svg b/docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph_org.svg new file mode 100644 index 0000000..b084f97 --- /dev/null +++ b/docs/html/classdspm_1_1_mat_af83846df6f2ec2e1901affce82b1df6f_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm::Mat::operator-= + + +Node1 + + +dspm::Mat::operator-= + + + + + +Node2 + + +dspm::Mat::Mat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::allocate + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classekf.html b/docs/html/classekf.html new file mode 100644 index 0000000..44f3451 --- /dev/null +++ b/docs/html/classekf.html @@ -0,0 +1,1599 @@ + + + + + + + +ESP-IDF Firmware: ekf Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf Class Referenceabstract
+
+
+ +

#include <ekf.h>

+
+Inheritance diagram for ekf:
+
+
+
[legend]
+
+Collaboration diagram for ekf:
+
+
+
[legend]
+ + + + + + + + + + + + +

+Public Member Functions

 ekf (int x, int w)
virtual ~ekf ()
virtual void Process (float *u, float dt)
virtual void Init ()=0
void RungeKutta (dspm::Mat &x, float *u, float dt)
virtual dspm::Mat StateXdot (dspm::Mat &x, float *u)
virtual void LinearizeFG (dspm::Mat &x, float *u)=0
virtual void CovariancePrediction (float dt)
virtual void Update (dspm::Mat &H, float *measured, float *expected, float *R)
virtual void UpdateRef (dspm::Mat &H, float *measured, float *expected, float *R)
+ + + + + + + + + + +

+Static Public Member Functions

static dspm::Mat quat2rotm (float q[4])
static dspm::Mat rotm2quat (dspm::Mat &R)
static dspm::Mat quat2eul (const float q[4])
static dspm::Mat eul2rotm (float xyz[3])
static dspm::Mat rotm2eul (dspm::Mat &rotm)
static dspm::Mat dFdq (dspm::Mat &vector, dspm::Mat &quat)
static dspm::Mat dFdq_inv (dspm::Mat &vector, dspm::Mat &quat)
static dspm::Mat SkewSym4x4 (float *w)
static dspm::Mat qProduct (float *q)
+ + + + + + + + + + +

+Data Fields

int NUMX
int NUMW
dspm::MatX
dspm::MatF
dspm::MatG
dspm::MatP
dspm::MatQ
float * HP
float * Km
+

Detailed Description

+

The ekf is a base class for Extended Kalman Filter. It contains main matrix operations and define the processing flow.

+ +

Definition at line 29 of file ekf.h.

+

Constructor & Destructor Documentation

+ +

◆ ekf()

+ +
+
+ + + + + + + + + + + +
ekf::ekf (int x,
int w )
+
+

Constructor of EKF. THe constructor allocate main memory for the matrixes.

Parameters
+ + + +
[in]x- amount of states in EKF. x[n] = F*x[n-1] + G*u + W. Size of matrix F
[in]w- amount of control measurements and noise inputs. Size of matrix G
+
+
+ +

Definition at line 19 of file ekf.cpp.

+
19 : NUMX(x),
+
20 NUMW(w),
+
21 X(*new dspm::Mat(x, 1)),
+
22
+
23 F(*new dspm::Mat(x, x)),
+
24 G(*new dspm::Mat(x, w)),
+
25 P(*new dspm::Mat(x, x)),
+
26 Q(*new dspm::Mat(w, w))
+
27{
+
28
+
29 this->P *= 0;
+
30 this->Q *= 0;
+
31 this->X *= 0;
+
32 this->X.data[0] = 1; // direction to 0
+
33 this->HP = new float[this->NUMX];
+
34 this->Km = new float[this->NUMX];
+
35 for (size_t i = 0; i < this->NUMX; i++) {
+
36 this->HP[i] = 0;
+
37 this->Km[i] = 0;
+
38 }
+
39}
+
int NUMW
Definition ekf.h:68
+
dspm::Mat & F
Definition ekf.h:78
+
float * HP
Definition ekf.h:157
+
int NUMX
Definition ekf.h:63
+
dspm::Mat & G
Definition ekf.h:82
+
dspm::Mat & X
Definition ekf.h:73
+
dspm::Mat & Q
Definition ekf.h:92
+
dspm::Mat & P
Definition ekf.h:87
+
float * Km
Definition ekf.h:161
+
float x[1024]
Definition test_fir.c:10
+
+

References F, G, HP, Km, NUMW, NUMX, P, Q, X, and x.

+ +

Referenced by ekf_imu13states::ekf_imu13states().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ ~ekf()

+ +
+
+ + + + + +
+ + + + + + + +
ekf::~ekf ()
+
+virtual
+
+

Distructor of EKF

+ +

Definition at line 41 of file ekf.cpp.

+
42{
+
43 delete &X;
+
44 delete &F;
+
45 delete &G;
+
46 delete &P;
+
47 delete &Q;
+
48
+
49 delete this->HP;
+
50 delete this->Km;
+
51}
+
+

References F, G, HP, Km, P, Q, and X.

+ +
+
+

Member Function Documentation

+ +

◆ CovariancePrediction()

+ +
+
+ + + + + +
+ + + + + + + +
void ekf::CovariancePrediction (float dt)
+
+virtual
+
+

Calculates covariance prediction matrux P. Update matrix P

Parameters
+ + +
[in]dttime interval from last update
+
+
+ +

Definition at line 139 of file ekf.cpp.

+
140{
+
141 dspm::Mat f = this->F * dt;
+
142
+
143 f = f + dspm::Mat::eye(this->NUMX);
+
144
+
145 dspm::Mat f_t = f.t();
+
146 this->P = ((f * this->P) * f_t) + (dt * dt) * ((G * Q) * G.t());
+
147}
+
static Mat eye(int size)
Definition mat.cpp:394
+
Mat t()
Definition mat.cpp:383
+
+

References dspm::Mat::eye(), F, G, NUMX, P, Q, and dspm::Mat::t().

+ +

Referenced by Process().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dFdq()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
dspm::Mat ekf::dFdq (dspm::Mat & vector,
dspm::Mat & quat )
+
+static
+
+

Df/dq: Derivative of vector by quaternion.

Parameters
+ + + +
[in]vectorinput vector
[in]quatquaternion
+
+
+
Returns
    +
  • Derivative matrix 3x4
  • +
+
+ +

Definition at line 367 of file ekf.cpp.

+
368{
+
369 dspm::Mat result(3, 4);
+
370 result(0, 0) = q.data[0] * vector.data[0] - q.data[3] * vector.data[1] + q.data[2] * vector.data[2];
+
371 result(0, 1) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
372 result(0, 2) = -q.data[2] * vector.data[0] + q.data[1] * vector.data[1] + q.data[0] * vector.data[2];
+
373 result(0, 3) = -q.data[3] * vector.data[0] - q.data[0] * vector.data[1] + q.data[1] * vector.data[2];
+
374
+
375 result(1, 0) = q.data[3] * vector.data[0] + q.data[0] * vector.data[1] - q.data[1] * vector.data[2];
+
376 result(1, 1) = q.data[2] * vector.data[0] - q.data[1] * vector.data[1] - q.data[0] * vector.data[2];
+
377 result(1, 2) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
378 result(1, 3) = q.data[0] * vector.data[0] - q.data[3] * vector.data[1] + q.data[2] * vector.data[2];
+
379
+
380 result(2, 0) = -q.data[2] * vector.data[0] + q.data[1] * vector.data[1] + q.data[0] * vector.data[2];
+
381 result(2, 1) = q.data[3] * vector.data[0] + q.data[0] * vector.data[1] - q.data[1] * vector.data[2];
+
382 result(2, 2) = -q.data[0] * vector.data[0] + q.data[3] * vector.data[1] - q.data[2] * vector.data[2];
+
383 result(2, 3) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
384
+
385 result *= 2;
+
386 return result;
+
387}
+
float * data
Definition mat.h:37
+
+

References dspm::Mat::data.

+ +
+
+ +

◆ dFdq_inv()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
dspm::Mat ekf::dFdq_inv (dspm::Mat & vector,
dspm::Mat & quat )
+
+static
+
+

Df/dq: Derivative of vector by inverted quaternion.

Parameters
+ + + +
[in]vectorinput vector
[in]quatquaternion
+
+
+
Returns
    +
  • Derivative matrix 3x4
  • +
+
+ +

Definition at line 389 of file ekf.cpp.

+
390{
+
391 dspm::Mat result(3, 4);
+
392 result(0, 0) = q.data[0] * vector.data[0] + q.data[3] * vector.data[1] - q.data[2] * vector.data[2];
+
393 result(0, 1) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
394 result(0, 2) = -q.data[2] * vector.data[0] + q.data[1] * vector.data[1] - q.data[0] * vector.data[2];
+
395 result(0, 3) = -q.data[3] * vector.data[0] + q.data[0] * vector.data[1] + q.data[1] * vector.data[2];
+
396
+
397 result(1, 0) = -q.data[3] * vector.data[0] + q.data[0] * vector.data[1] + q.data[1] * vector.data[2];
+
398 result(1, 1) = q.data[2] * vector.data[0] - q.data[1] * vector.data[1] + q.data[0] * vector.data[2];
+
399 result(1, 2) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
400 result(1, 3) = -q.data[0] * vector.data[0] - q.data[3] * vector.data[1] + q.data[2] * vector.data[2];
+
401
+
402 result(2, 0) = q.data[2] * vector.data[0] - q.data[1] * vector.data[1] + q.data[0] * vector.data[2];
+
403 result(2, 1) = q.data[3] * vector.data[0] - q.data[0] * vector.data[1] - q.data[1] * vector.data[2];
+
404 result(2, 2) = q.data[0] * vector.data[0] + q.data[3] * vector.data[1] - q.data[2] * vector.data[2];
+
405 result(2, 3) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
406
+
407 result *= 2;
+
408 return result;
+
409}
+
+

References dspm::Mat::data.

+ +

Referenced by ekf_imu13states::UpdateRefMeasurement(), ekf_imu13states::UpdateRefMeasurement(), and ekf_imu13states::UpdateRefMeasurementMagn().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ eul2rotm()

+ +
+
+ + + + + +
+ + + + + + + +
dspm::Mat ekf::eul2rotm (float xyz[3])
+
+static
+
+

Convert Euler angels to rotation matrix.

Parameters
+ + +
[in]xyzEuler angels
+
+
+
Returns
    +
  • rotation matrix 3x3
  • +
+
+ +

Definition at line 251 of file ekf.cpp.

+
252{
+
253 dspm::Mat result(3, 3);
+
254 float Cx = std::cos(xyz[0]);
+
255 float Sx = std::sin(xyz[0]);
+
256 float Cy = std::cos(xyz[1]);
+
257 float Sy = std::sin(xyz[1]);
+
258 float Cz = std::cos(xyz[2]);
+
259 float Sz = std::sin(xyz[2]);
+
260
+
261 result(0, 0) = Cy * Cz;
+
262 result(0, 1) = -Cy * Sz;
+
263 result(0, 2) = Sy;
+
264
+
265 result(1, 0) = Cz * Sx * Sy + Cx * Sz;
+
266 result(1, 1) = Cx * Cz - Sx * Sy * Sz;
+
267 result(1, 2) = -Cy * Sx;
+
268
+
269 result(2, 0) = -Cx * Cz * Sy + Sx * Sz;
+
270 result(2, 1) = Cz * Sx + Cx * Sy * Sz;
+
271 result(2, 2) = Cx * Cy;
+
272 return result;
+
273}
+
+

Referenced by draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image(), ekf_imu13states::TestFull(), and update_rotation_matrix().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ Init()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ekf::Init ()
+
+pure virtual
+
+

Initialization of EKF. The method should be called befare the first use of the filter.

+ +

Implemented in ekf_imu13states.

+ +
+
+ +

◆ LinearizeFG()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
virtual void ekf::LinearizeFG (dspm::Mat & x,
float * u )
+
+pure virtual
+
+

Calculation of system state matrices F and G

Parameters
+ + + +
[in]xstate vector
[in]ucontrol measurement
+
+
+ +

Implemented in ekf_imu13states.

+ +

References x.

+ +

Referenced by Process().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ Process()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void ekf::Process (float * u,
float dt )
+
+virtual
+
+

Main processing method of the EKF.

+
Parameters
+ + + +
[in]u- input measurements
[in]dt- time difference from the last call in seconds
+
+
+ +

Definition at line 53 of file ekf.cpp.

+
54{
+
55 this->LinearizeFG(this->X, (float *)u);
+
56 this->RungeKutta(this->X, u, dt);
+
57 this->CovariancePrediction(dt);
+
58}
+
virtual void LinearizeFG(dspm::Mat &x, float *u)=0
+
virtual void CovariancePrediction(float dt)
Definition ekf.cpp:139
+
void RungeKutta(dspm::Mat &x, float *u, float dt)
Definition ekf.cpp:60
+
+

References CovariancePrediction(), LinearizeFG(), RungeKutta(), and X.

+ +

Referenced by ekf_imu13states::TestFull().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ qProduct()

+ +
+
+ + + + + +
+ + + + + + + +
dspm::Mat ekf::qProduct (float * q)
+
+static
+
+

Make right quaternion-product matrices.

Parameters
+ + +
[in]qsource quaternion
+
+
+
Returns
    +
  • right quaternion-product matrix 4x4
  • +
+
+ +

Definition at line 112 of file ekf.cpp.

+
113{
+
114 dspm::Mat result(4, 4);
+
115
+
116 result.data[0] = q[0];
+
117 result.data[1] = -q[1];
+
118 result.data[2] = -q[2];
+
119 result.data[3] = -q[3];
+
120
+
121 result.data[4] = q[1];
+
122 result.data[5] = q[0];
+
123 result.data[6] = -q[3];
+
124 result.data[7] = q[2];
+
125
+
126 result.data[8] = q[2];
+
127 result.data[9] = q[3];
+
128 result.data[10] = q[0];
+
129 result.data[11] = -q[1];
+
130
+
131 result.data[12] = q[3];
+
132 result.data[13] = -q[2];
+
133 result.data[14] = q[1];
+
134 result.data[15] = q[0];
+
135
+
136 return result;
+
137}
+
+

References dspm::Mat::data.

+ +

Referenced by ekf_imu13states::LinearizeFG().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ quat2eul()

+ +
+
+ + + + + +
+ + + + + + + +
dspm::Mat ekf::quat2eul (const float q[4])
+
+static
+
+

Convert quaternion to Euler angels.

Parameters
+ + +
[in]qquaternion
+
+
+
Returns
    +
  • Euler angels 3x1
  • +
+
+ +

Definition at line 230 of file ekf.cpp.

+
231{
+
232 dspm::Mat result(3, 1);
+
233 float R13, R11, R12, R23, R33;
+
234 float q0s = q[0] * q[0];
+
235 float q1s = q[1] * q[1];
+
236 float q2s = q[2] * q[2];
+
237 float q3s = q[3] * q[3];
+
238
+
239 R13 = 2.0f * (q[1] * q[3] + q[0] * q[2]);
+
240 R11 = q0s + q1s - q2s - q3s;
+
241 R12 = -2.0f * (q[1] * q[2] - q[0] * q[3]);
+
242 R23 = -2.0f * (q[2] * q[3] - q[0] * q[1]);
+
243 R33 = q0s - q1s - q2s + q3s;
+
244
+
245 result.data[1] = (asinf(R13));
+
246 result.data[2] = (atan2f(R12, R11));
+
247 result.data[0] = (atan2f(R23, R33));
+
248 return result;
+
249}
+
+

References dspm::Mat::data.

+ +
+
+ +

◆ quat2rotm()

+ +
+
+ + + + + +
+ + + + + + + +
dspm::Mat ekf::quat2rotm (float q[4])
+
+static
+
+

Convert quaternion to rotation matrix.

Parameters
+ + +
[in]qquaternion
+
+
+
Returns
    +
  • rotation matrix 3x3
  • +
+
+ +

Definition at line 209 of file ekf.cpp.

+
210{
+
211 float q0 = q[0];
+
212 float q1 = q[1];
+
213 float q2 = q[2];
+
214 float q3 = q[3];
+
215 dspm::Mat Rm(3, 3);
+
216
+
217 Rm(0, 0) = q0 * q0 + q1 * q1 - q2 * q2 - q3 * q3;
+
218 Rm(1, 0) = 2.0f * (q1 * q2 + q0 * q3);
+
219 Rm(2, 0) = 2.0f * (q1 * q3 - q0 * q2);
+
220 Rm(0, 1) = 2.0f * (q1 * q2 - q0 * q3);
+
221 Rm(1, 1) = (q0 * q0 - q1 * q1 + q2 * q2 - q3 * q3);
+
222 Rm(2, 1) = 2.0f * (q2 * q3 + q0 * q1);
+
223 Rm(0, 2) = 2.0f * (q1 * q3 + q0 * q2);
+
224 Rm(1, 2) = 2.0f * (q2 * q3 - q0 * q1);
+
225 Rm(2, 2) = (q0 * q0 - q1 * q1 - q2 * q2 + q3 * q3);
+
226
+
227 return Rm;
+
228}
+
+

Referenced by draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image_task(), draw_3d_image_task(), ekf_imu13states::LinearizeFG(), ekf_imu13states::UpdateRefMeasurement(), ekf_imu13states::UpdateRefMeasurement(), and ekf_imu13states::UpdateRefMeasurementMagn().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ rotm2eul()

+ +
+
+ + + + + +
+ + + + + + + +
dspm::Mat ekf::rotm2eul (dspm::Mat & rotm)
+
+static
+
+

Convert rotation matrix to Euler angels.

Parameters
+ + +
[in]rotmrotation matrix
+
+
+
Returns
    +
  • Euler angels 3x1
  • +
+
+ +

Definition at line 279 of file ekf.cpp.

+
280{
+
281 dspm::Mat result(3, 1);
+
282 float x, y, z;
+
283// float cy = sqrtf(rotm(2, 2) * rotm(2, 2) + rotm(2, 0) * rotm(2, 0));
+
284 float cy = sqrtf(rotm(2, 2) * rotm(2, 2) + rotm(1, 2) * rotm(1, 2));
+
285 if (cy > 16 * FLT_EPSILON) {
+
286 x = -atan2f(rotm(1, 2), rotm(2, 2));
+
287 y = -atan2f(-rotm(0, 2), (float)cy);
+
288 z = -atan2f(rotm(0, 1), rotm(0, 0));
+
289 } else {
+
290 z = -atan2f(-rotm(1, 0), rotm(1, 1));
+
291 y = -atan2f(-rotm(0, 2), (float)cy);
+
292 x = 0;
+
293 }
+
294 result(0, 0) = x;
+
295 result(1, 0) = y;
+
296 result(2, 0) = z;
+
297 return result;
+
298}
+
#define FLT_EPSILON
Definition ekf.cpp:276
+
float y[1024]
Definition test_fir.c:11
+
+

References FLT_EPSILON, x, and y.

+ +

Referenced by draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image_task(), and draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ rotm2quat()

+ +
+
+ + + + + +
+ + + + + + + +
dspm::Mat ekf::rotm2quat (dspm::Mat & R)
+
+static
+
+

Convert rotation matrix to quaternion.

Parameters
+ + +
[in]Rrotation matrix
+
+
+
Returns
    +
  • quaternion 4x1
  • +
+
+ +

Definition at line 305 of file ekf.cpp.

+
306{
+
307 float r11 = m(0, 0);
+
308 float r12 = m(0, 1);
+
309 float r13 = m(0, 2);
+
310 float r21 = m(1, 0);
+
311 float r22 = m(1, 1);
+
312 float r23 = m(1, 2);
+
313 float r31 = m(2, 0);
+
314 float r32 = m(2, 1);
+
315 float r33 = m(2, 2);
+
316 float q0 = (r11 + r22 + r33 + 1.0f) / 4.0f;
+
317 float q1 = (r11 - r22 - r33 + 1.0f) / 4.0f;
+
318 float q2 = (-r11 + r22 - r33 + 1.0f) / 4.0f;
+
319 float q3 = (-r11 - r22 + r33 + 1.0f) / 4.0f;
+
320 if (q0 < 0.0f) {
+
321 q0 = 0.0f;
+
322 }
+
323 if (q1 < 0.0f) {
+
324 q1 = 0.0f;
+
325 }
+
326 if (q2 < 0.0f) {
+
327 q2 = 0.0f;
+
328 }
+
329 if (q3 < 0.0f) {
+
330 q3 = 0.0f;
+
331 }
+
332 q0 = sqrt(q0);
+
333 q1 = sqrt(q1);
+
334 q2 = sqrt(q2);
+
335 q3 = sqrt(q3);
+
336 if (q0 >= q1 && q0 >= q2 && q0 >= q3) {
+
337 q0 *= +1.0f;
+
338 q1 *= SIGN(r32 - r23);
+
339 q2 *= SIGN(r13 - r31);
+
340 q3 *= SIGN(r21 - r12);
+
341 } else if (q1 >= q0 && q1 >= q2 && q1 >= q3) {
+
342 q0 *= SIGN(r32 - r23);
+
343 q1 *= +1.0f;
+
344 q2 *= SIGN(r21 + r12);
+
345 q3 *= SIGN(r13 + r31);
+
346 } else if (q2 >= q0 && q2 >= q1 && q2 >= q3) {
+
347 q0 *= SIGN(r13 - r31);
+
348 q1 *= SIGN(r21 + r12);
+
349 q2 *= +1.0f;
+
350 q3 *= SIGN(r32 + r23);
+
351 } else if (q3 >= q0 && q3 >= q1 && q3 >= q2) {
+
352 q0 *= SIGN(r21 - r12);
+
353 q1 *= SIGN(r31 + r13);
+
354 q2 *= SIGN(r32 + r23);
+
355 q3 *= +1.0f;
+
356 }
+
357
+
358 dspm::Mat res(4, 1);
+
359 res(0, 0) = q0;
+
360 res(1, 0) = q1;
+
361 res(2, 0) = q2;
+
362 res(3, 0) = q3;
+
363 res /= res.norm();
+
364 return res;
+
365}
+
static float SIGN(float x)
Definition ekf.cpp:300
+
const int m
Definition test_mmult.c:16
+
+

References m, dspm::Mat::norm(), and SIGN().

+ +

Referenced by ekf_imu13states::TestFull().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ RungeKutta()

+ +
+
+ + + + + + + + + + + + + + + + +
void ekf::RungeKutta (dspm::Mat & x,
float * u,
float dt )
+
+

Runge-Kutta state update method. The method calculates derivatives of input vector x and control measurements u

+
Parameters
+ + + + +
[in]xstate vector
[in]ucontrol measurement
[in]dttime interval from last update in seconds
+
+
+ +

Definition at line 60 of file ekf.cpp.

+
61{
+
62
+
63 float dt2 = dt / 2.0f;
+
64
+
65 dspm::Mat Xlast = x; // make a working copy
+
66 dspm::Mat K1 = StateXdot(x, U); // k1 = f(x, u)
+
67 x = Xlast + (K1 * dt2);
+
68
+
69 dspm::Mat K2 = StateXdot(x, U); // k2 = f(x + 0.5*dT*k1, u)
+
70 x = Xlast + K2 * dt2;
+
71
+
72 dspm::Mat K3 = StateXdot(x, U); // k3 = f(x + 0.5*dT*k2, u)
+
73 x = Xlast + K3 * dt;
+
74
+
75 dspm::Mat K4 = StateXdot(x, U); // k4 = f(x + dT * k3, u)
+
76
+
77 // Xnew = X + dT * (k1 + 2 * k2 + 2 * k3 + k4) / 6
+
78 x = Xlast + (K1 + 2.0f * K2 + 2.0f * K3 + K4) * (dt / 6.0f);
+
79}
+
virtual dspm::Mat StateXdot(dspm::Mat &x, float *u)
Definition ekf.cpp:411
+
+

References StateXdot(), and x.

+ +

Referenced by Process().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ SkewSym4x4()

+ +
+
+ + + + + +
+ + + + + + + +
dspm::Mat ekf::SkewSym4x4 (float * w)
+
+static
+
+

Make skew-symmetric matrix of vector.

Parameters
+ + +
[in]wsource vector
+
+
+
Returns
    +
  • skew-symmetric matrix 4x4
  • +
+
+ +

Definition at line 81 of file ekf.cpp.

+
82{
+
83 //={ 0, -w[0], -w[1], -w[2],
+
84 // w[0], 0, w[2], -w[1],
+
85 // w[1], -w[2], 0, w[0],
+
86 // w[2], w[1], -w[0], 0 };
+
87
+
88 dspm::Mat result(4, 4);
+
89 result.data[0] = 0;
+
90 result.data[1] = -w[0];
+
91 result.data[2] = -w[1];
+
92 result.data[3] = -w[2];
+
93
+
94 result.data[4] = w[0];
+
95 result.data[5] = 0;
+
96 result.data[6] = w[2];
+
97 result.data[7] = -w[1];
+
98
+
99 result.data[8] = w[1];
+
100 result.data[9] = -w[2];
+
101 result.data[10] = 0;
+
102 result.data[11] = w[0];
+
103
+
104 result.data[12] = w[2];
+
105 result.data[13] = w[1];
+
106 result.data[14] = -w[0];
+
107 result.data[15] = 0;
+
108
+
109 return result;
+
110}
+
+

References dspm::Mat::data.

+ +

Referenced by ekf_imu13states::LinearizeFG(), and ekf_imu13states::StateXdot().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ StateXdot()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
dspm::Mat ekf::StateXdot (dspm::Mat & x,
float * u )
+
+virtual
+
+

Derivative of state vector X The default calculation: xDot = F*x + G*u It's possible to implement optimized version

Parameters
+ + + +
[in]xstate vector
[in]ucontrol measurement
+
+
+
Returns
xDot - derivative of input vector x and u
+ +

Reimplemented in ekf_imu13states.

+ +

Definition at line 411 of file ekf.cpp.

+
412{
+
413 dspm::Mat U(u, this->G.cols, 1);
+
414 dspm::Mat Xdot = (this->F * x + this->G * U);
+
415 return Xdot;
+
416}
+
+

References F, G, and x.

+ +

Referenced by RungeKutta().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ Update()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
void ekf::Update (dspm::Mat & H,
float * measured,
float * expected,
float * R )
+
+virtual
+
+

Update of current state by measured values. Optimized method for non correlated values Calculate Kalman gain and update matrix P and vector X.

Parameters
+ + + + + +
[in]Hderivative matrix
[in]measuredarray of measured values
[in]expectedarray of expected values
[in]Rmeasurement noise covariance values
+
+
+ +

Definition at line 149 of file ekf.cpp.

+
150{
+
151 float HPHR, Error;
+
152 dspm::Mat Y(measured, H.rows, 1);
+
153 dspm::Mat Z(expected, H.rows, 1);
+
154
+
155 for (int m = 0; m < H.rows; m++) {
+
156 for (int j = 0; j < this->NUMX; j++) {
+
157 // Find Hp = H*P
+
158 HP[j] = 0;
+
159 }
+
160 for (int k = 0; k < this->NUMX; k++) {
+
161 for (int j = 0; j < this->NUMX; j++) {
+
162 // Find Hp = H*P
+
163 HP[j] += H(m, k) * P(k, j);
+
164 }
+
165 }
+
166 HPHR = R[m]; // Find HPHR = H*P*H' + R
+
167 for (int k = 0; k < this->NUMX; k++) {
+
168 HPHR += HP[k] * H(m, k);
+
169 }
+
170 float invHPHR = 1.0f / HPHR;
+
171 for (int k = 0; k < this->NUMX; k++) {
+
172 Km[k] = HP[k] * invHPHR; // find K = HP/HPHR
+
173 }
+
174 for (int i = 0; i < this->NUMX; i++) {
+
175 // Find P(m)= P(m-1) + K*HP
+
176 for (int j = i; j < NUMX; j++) {
+
177 P(i, j) = P(j, i) = P(i, j) - Km[i] * HP[j];
+
178 }
+
179 }
+
180
+
181 Error = Y(m, 0) - Z(m, 0);
+
182 for (int i = 0; i < this->NUMX; i++) {
+
183 // Find X(m)= X(m-1) + K*Error
+
184 X(i, 0) = X(i, 0) + Km[i] * Error;
+
185 }
+
186 }
+
187}
+
int rows
Definition mat.h:33
+
const int k
Definition test_mmult.c:18
+
+

References HP, k, Km, m, NUMX, P, dspm::Mat::rows, and X.

+ +

Referenced by ekf_imu13states::UpdateRefMeasurement(), ekf_imu13states::UpdateRefMeasurement(), and ekf_imu13states::UpdateRefMeasurementMagn().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ UpdateRef()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
void ekf::UpdateRef (dspm::Mat & H,
float * measured,
float * expected,
float * R )
+
+virtual
+
+

Update of current state by measured values. This method just as a reference for research purpose. Not used in real calculations.

Parameters
+ + + + + +
[in]Hderivative matrix
[in]measuredarray of measured values
[in]expectedarray of expected values
[in]Rmeasurement noise covariance values
+
+
+ +

Definition at line 189 of file ekf.cpp.

+
190{
+
191 dspm::Mat h_t = H.t();
+
192 dspm::Mat S = H * P * h_t; // +diag(R);
+
193 for (size_t i = 0; i < H.rows; i++) {
+
194 S(i, i) += R[i];
+
195 }
+
196
+
197 dspm::Mat S_ = S.pinv(); // 1 / S
+
198
+
199 dspm::Mat K = (P * h_t) * S_;
+
200 this->P = (dspm::Mat::eye(this->NUMX) - K * H) * P;
+
201
+
202 dspm::Mat Y(measured, H.rows, 1);
+
203 dspm::Mat Z(expected, H.rows, 1);
+
204
+
205 dspm::Mat Err = Y - Z;
+
206 this->X += (K * Err);
+
207}
+
Mat pinv()
Definition mat.cpp:707
+
#define K
Definition test_mmult.c:14
+
+

References dspm::Mat::eye(), K, NUMX, P, dspm::Mat::pinv(), dspm::Mat::rows, dspm::Mat::t(), and X.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+

Field Documentation

+ +

◆ F

+ +
+
+ + + + +
dspm::Mat& ekf::F
+
+

Linearized system matrices F, where xDot[n] = F*x[n] + G*u + W

+ +

Definition at line 78 of file ekf.h.

+ +

Referenced by CovariancePrediction(), ekf(), ekf_imu13states::LinearizeFG(), StateXdot(), and ~ekf().

+ +
+
+ +

◆ G

+ +
+
+ + + + +
dspm::Mat& ekf::G
+
+

Linearized system matrices G, where xDot[n] = F*x[n] + G*u + W

+ +

Definition at line 82 of file ekf.h.

+ +

Referenced by CovariancePrediction(), ekf(), ekf_imu13states::LinearizeFG(), StateXdot(), and ~ekf().

+ +
+
+ +

◆ HP

+ +
+
+ + + + +
float* ekf::HP
+
+

Matrix for intermidieve calculations

+ +

Definition at line 157 of file ekf.h.

+ +

Referenced by ekf(), Update(), and ~ekf().

+ +
+
+ +

◆ Km

+ +
+
+ + + + +
float* ekf::Km
+
+

Matrix for intermidieve calculations

+ +

Definition at line 161 of file ekf.h.

+ +

Referenced by ekf(), Update(), and ~ekf().

+ +
+
+ +

◆ NUMW

+ +
+
+ + + + +
int ekf::NUMW
+
+

xDot[n] = F*x[n] + G*u + W The size of G matrix

+ +

Definition at line 68 of file ekf.h.

+ +

Referenced by ekf().

+ +
+
+ +

◆ NUMX

+ +
+
+ + + + +
int ekf::NUMX
+
+

xDot[n] = F*x[n] + G*u + W Number of states, X is the state vector (size of F matrix)

+ +

Definition at line 63 of file ekf.h.

+ +

Referenced by CovariancePrediction(), ekf(), ekf_imu13states::StateXdot(), Update(), UpdateRef(), ekf_imu13states::UpdateRefMeasurement(), ekf_imu13states::UpdateRefMeasurement(), and ekf_imu13states::UpdateRefMeasurementMagn().

+ +
+
+ +

◆ P

+ +
+
+ + + + +
dspm::Mat& ekf::P
+
+

Covariance matrix and state vector

+ +

Definition at line 87 of file ekf.h.

+ +

Referenced by CovariancePrediction(), ekf(), Update(), UpdateRef(), and ~ekf().

+ +
+
+ +

◆ Q

+ +
+
+ + + + +
dspm::Mat& ekf::Q
+
+

Input noise and measurement noise variances

+ +

Definition at line 92 of file ekf.h.

+ +

Referenced by CovariancePrediction(), ekf(), ekf_imu13states::Init(), and ~ekf().

+ +
+
+ +

◆ X

+ + +
The documentation for this class was generated from the following files: +
+
+ +
+ + + + diff --git a/docs/html/classekf.js b/docs/html/classekf.js new file mode 100644 index 0000000..eb5c5a9 --- /dev/null +++ b/docs/html/classekf.js @@ -0,0 +1,31 @@ +var classekf = +[ + [ "ekf", "classekf.html#a48b8f056f76ddf4a0d3520cc4ef8bade", null ], + [ "~ekf", "classekf.html#a53310949764a49b3bcd3308a61035ea6", null ], + [ "CovariancePrediction", "classekf.html#a6588ad6c3eae0d1a177b35ea75b5a4f3", null ], + [ "dFdq", "classekf.html#a17fb9f1cd3507611560518882bc530fe", null ], + [ "dFdq_inv", "classekf.html#a3affa0048058ee2485dcb28d718be907", null ], + [ "eul2rotm", "classekf.html#a6e279ffd67d217145d7891a44ea0d9e8", null ], + [ "Init", "classekf.html#ace6dffc4003cb67f3021d7cb4e884c82", null ], + [ "LinearizeFG", "classekf.html#a21cccadc5b6e3150a55b8964526e206f", null ], + [ "Process", "classekf.html#a42ee022dba96611bf76d0d29bf964323", null ], + [ "qProduct", "classekf.html#ac8d09350d77dfdc0525b1fd72333fa3e", null ], + [ "quat2eul", "classekf.html#aabe55260916190d327990bcb152b4c00", null ], + [ "quat2rotm", "classekf.html#a535f152864f2732a9888d4f959bd21fa", null ], + [ "rotm2eul", "classekf.html#a744bf24c20081158a4327aba7d922547", null ], + [ "rotm2quat", "classekf.html#a148bfefd351013bb66d84b160ce31ee3", null ], + [ "RungeKutta", "classekf.html#a8f28807c86b11b95cc95bd514e65ea61", null ], + [ "SkewSym4x4", "classekf.html#aeca3bb4b4c62c2e5aa7728abb652d7b5", null ], + [ "StateXdot", "classekf.html#a09a763aeb193404116274d2885c42172", null ], + [ "Update", "classekf.html#a7df41e0ecb82824766219aa5f9b0baef", null ], + [ "UpdateRef", "classekf.html#abd6f35d1ea69828aa0f757762fac9498", null ], + [ "F", "classekf.html#a398d5183c29186005345fcd8c64527c6", null ], + [ "G", "classekf.html#a74b97ee7d2233618504b3e75f63590f7", null ], + [ "HP", "classekf.html#a5cc7771e316d6688d793eb577ef7233f", null ], + [ "Km", "classekf.html#ae2753a0e5f01f1aaab26f845bf285f94", null ], + [ "NUMW", "classekf.html#a0ab2d70220897d9d46c69779a7b328b3", null ], + [ "NUMX", "classekf.html#a672e2e271d7379a892ae554bc85bb501", null ], + [ "P", "classekf.html#ad3322abbbf7592fb5bd465f77852d1ca", null ], + [ "Q", "classekf.html#abff61d16eab399042a4812117ca2834d", null ], + [ "X", "classekf.html#aafa437baa4fffcaf7f23a208b5f3c0ef", null ] +]; \ No newline at end of file diff --git a/docs/html/classekf__coll__graph.md5 b/docs/html/classekf__coll__graph.md5 new file mode 100644 index 0000000..d97287e --- /dev/null +++ b/docs/html/classekf__coll__graph.md5 @@ -0,0 +1 @@ +37f063730d3115e3f02842274da56a98 \ No newline at end of file diff --git a/docs/html/classekf__coll__graph.svg b/docs/html/classekf__coll__graph.svg new file mode 100644 index 0000000..d756286 --- /dev/null +++ b/docs/html/classekf__coll__graph.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + +ekf + + +Node1 + + +ekf + + + + + +Node2 + + +dspm::Mat + + + + + +Node2->Node1 + + + + + +F +G +P +Q +X + + + + + + + + diff --git a/docs/html/classekf__coll__graph_org.svg b/docs/html/classekf__coll__graph_org.svg new file mode 100644 index 0000000..1e13a20 --- /dev/null +++ b/docs/html/classekf__coll__graph_org.svg @@ -0,0 +1,44 @@ + + + + + + +ekf + + +Node1 + + +ekf + + + + + +Node2 + + +dspm::Mat + + + + + +Node2->Node1 + + + + + +F +G +P +Q +X + + + diff --git a/docs/html/classekf__imu13states.html b/docs/html/classekf__imu13states.html new file mode 100644 index 0000000..8ffed11 --- /dev/null +++ b/docs/html/classekf__imu13states.html @@ -0,0 +1,931 @@ + + + + + + + +ESP-IDF Firmware: ekf_imu13states Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf_imu13states Class Reference
+
+
+ +

This class is used to process and calculate attitude from imu sensors. + More...

+ +

#include <ekf_imu13states.h>

+
+Inheritance diagram for ekf_imu13states:
+
+
+
[legend]
+
+Collaboration diagram for ekf_imu13states:
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ekf_imu13states ()
virtual ~ekf_imu13states ()
virtual void Init ()
virtual dspm::Mat StateXdot (dspm::Mat &x, float *u)
virtual void LinearizeFG (dspm::Mat &x, float *u)
void Test ()
void TestFull (bool enable_att)
void UpdateRefMeasurement (float *accel_data, float *magn_data, float R[6])
void UpdateRefMeasurementMagn (float *accel_data, float *magn_data, float R[6])
void UpdateRefMeasurement (float *accel_data, float *magn_data, float *attitude, float R[10])
Public Member Functions inherited from ekf
 ekf (int x, int w)
virtual ~ekf ()
virtual void Process (float *u, float dt)
void RungeKutta (dspm::Mat &x, float *u, float dt)
virtual void CovariancePrediction (float dt)
virtual void Update (dspm::Mat &H, float *measured, float *expected, float *R)
virtual void UpdateRef (dspm::Mat &H, float *measured, float *expected, float *R)
+ + + + + + + + + + + + + + +

+Data Fields

dspm::Mat mag0
dspm::Mat accel0
int NUMU
Data Fields inherited from ekf
int NUMX
int NUMW
dspm::MatX
dspm::MatF
dspm::MatG
dspm::MatP
dspm::MatQ
float * HP
float * Km
+ + + + + + + + + + + +

+Additional Inherited Members

Static Public Member Functions inherited from ekf
static dspm::Mat quat2rotm (float q[4])
static dspm::Mat rotm2quat (dspm::Mat &R)
static dspm::Mat quat2eul (const float q[4])
static dspm::Mat eul2rotm (float xyz[3])
static dspm::Mat rotm2eul (dspm::Mat &rotm)
static dspm::Mat dFdq (dspm::Mat &vector, dspm::Mat &quat)
static dspm::Mat dFdq_inv (dspm::Mat &vector, dspm::Mat &quat)
static dspm::Mat SkewSym4x4 (float *w)
static dspm::Mat qProduct (float *q)
+

Detailed Description

+

This class is used to process and calculate attitude from imu sensors.

+

The class use state vector with 13 follows values X[0..3] - attitude quaternion X[4..6] - gyroscope bias error, rad/sec X[7..9] - magnetometer vector value - magn_ampl X[10..12] - magnetometer offset value - magn_offset

+

where, reference magnetometer value = magn_ampl*rotation_matrix' + magn_offset

+ +

Definition at line 31 of file ekf_imu13states.h.

+

Constructor & Destructor Documentation

+ +

◆ ekf_imu13states()

+ +
+
+ + + + + + + +
ekf_imu13states::ekf_imu13states ()
+
+ +

Definition at line 18 of file ekf_imu13states.cpp.

+
18 : ekf(13, 18),
+
19 mag0(3, 1),
+
20 accel0(3, 1)
+
21{
+
22 this->NUMU = 3;
+
23}
+ + + +
ekf(int x, int w)
Definition ekf.cpp:19
+
+

References accel0, ekf::ekf(), mag0, and NUMU.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ ~ekf_imu13states()

+ +
+
+ + + + + +
+ + + + + + + +
ekf_imu13states::~ekf_imu13states ()
+
+virtual
+
+ +

Definition at line 25 of file ekf_imu13states.cpp.

+
26{
+
27}
+
+
+
+

Member Function Documentation

+ +

◆ Init()

+ +
+
+ + + + + +
+ + + + + + + +
void ekf_imu13states::Init ()
+
+virtual
+
+

Initialization of EKF. The method should be called befare the first use of the filter.

+ +

Implements ekf.

+ +

Definition at line 29 of file ekf_imu13states.cpp.

+
30{
+
31 mag0.data[0] = 1;
+
32 mag0.data[1] = 0;
+
33 mag0.data[2] = 0;
+
34
+
35 mag0 /= mag0.norm();
+
36
+
37 accel0.data[0] = 0;
+
38 accel0.data[1] = 0;
+
39 accel0.data[2] = 1;
+
40
+
41 accel0 /= accel0.norm();
+
42
+
43 this->Q.Copy(0.1 * dspm::Mat::eye(3), 0, 0);
+
44 this->Q.Copy(0.0001 * dspm::Mat::eye(3), 3, 3);
+
45 this->Q.Copy(0.0001 * dspm::Mat::eye(3), 6, 6);
+
46 this->Q.Copy(0.0001 * dspm::Mat::eye(3), 9, 9);
+
47 this->Q.Copy(0.00001 * dspm::Mat::eye(3), 12, 12);
+
48 this->Q.Copy(0.00001 * dspm::Mat::eye(3), 15, 15);
+
49
+
50 this->X.data[0] = 1; // Init quaternion
+
51 this->X.data[7] = 1; // Initial magnetometer vector
+
52}
+
static Mat eye(int size)
Definition mat.cpp:394
+
dspm::Mat & X
Definition ekf.h:73
+
dspm::Mat & Q
Definition ekf.h:92
+
+

References accel0, dspm::Mat::eye(), mag0, ekf::Q, and ekf::X.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ LinearizeFG()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void ekf_imu13states::LinearizeFG (dspm::Mat & x,
float * u )
+
+virtual
+
+

Calculation of system state matrices F and G

Parameters
+ + + +
[in]xstate vector
[in]ucontrol measurement
+
+
+ +

Implements ekf.

+ +

Definition at line 75 of file ekf_imu13states.cpp.

+
76{
+
77 float w[3] = {(u[0] - x(4, 0)), (u[1] - x(5, 0)), (u[2] - x(6, 0))}; // subtract the biases on gyros
+
78 // float w[3] = {u[0], u[1], u[2]}; // subtract the biases on gyros
+
79
+
80 this->F *= 0; // Initialize F and G matrixes.
+
81 this->G *= 0;
+
82
+
83 // dqdot / dq - skey matrix
+
84 F.Copy(0.5 * ekf::SkewSym4x4(w), 0, 0);
+
85
+
86 // dqdot/dvector
+
87 dspm::Mat dq = -0.5 * qProduct(x.data);
+
88 dspm::Mat dq_q = dq.Get(0, 4, 1, 3);
+
89
+
90 // dqdot / dnw
+
91 G.Copy(dq_q, 0, 0);
+
92 // dqdot / dwbias
+
93 F.Copy(dq_q, 0, 4);
+
94
+
95 dspm::Mat rotm = -1 * this->quat2rotm(x.data); // Convert quat to rotation matrix
+
96
+
97 G.Copy(rotm, 7, 6);
+
98 G.Copy(dspm::Mat::eye(3), 4, 3); // random noise wbias
+
99 G.Copy(dspm::Mat::eye(3), 7, 12); // random noise magnetometer amplitude
+
100 G.Copy(dspm::Mat::eye(3), 10, 9); // magnetometer offset constant
+
101 G.Copy(dspm::Mat::eye(3), 10, 15); // random noise offset constant
+
102}
+
Mat Get(int row_start, int row_size, int col_start, int col_size)
Definition mat.cpp:209
+
dspm::Mat & F
Definition ekf.h:78
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
dspm::Mat & G
Definition ekf.h:82
+
static dspm::Mat qProduct(float *q)
Definition ekf.cpp:112
+
static dspm::Mat SkewSym4x4(float *w)
Definition ekf.cpp:81
+
float x[1024]
Definition test_fir.c:10
+
+

References dspm::Mat::data, dspm::Mat::eye(), ekf::F, ekf::G, dspm::Mat::Get(), ekf::qProduct(), ekf::quat2rotm(), ekf::SkewSym4x4(), and x.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ StateXdot()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
dspm::Mat ekf_imu13states::StateXdot (dspm::Mat & x,
float * u )
+
+virtual
+
+

Derivative of state vector X The default calculation: xDot = F*x + G*u It's possible to implement optimized version

Parameters
+ + + +
[in]xstate vector
[in]ucontrol measurement
+
+
+
Returns
xDot - derivative of input vector x and u
+ +

Reimplemented from ekf.

+ +

Definition at line 54 of file ekf_imu13states.cpp.

+
55{
+
56 float wx = u[0] - x(4, 0); // subtract the biases on gyros
+
57 float wy = u[1] - x(5, 0);
+
58 float wz = u[2] - x(6, 0);
+
59
+
60 float w[] = {wx, wy, wz};
+
61 dspm::Mat q = dspm::Mat(x.data, 4, 1);
+
62
+
63 // qdot = Q * w
+
64 dspm::Mat Omega = 0.5 * SkewSym4x4(w);
+
65 dspm::Mat qdot = Omega * q;
+
66 dspm::Mat Xdot(this->NUMX, 1);
+
67 Xdot *= 0;
+
68 Xdot.Copy(qdot, 0, 0);
+
69 // dwbias = 0
+
70 // dMang_Ampl = 0
+
71 // dMang_offset = 0
+
72 return Xdot;
+
73}
+
int NUMX
Definition ekf.h:63
+
+

References dspm::Mat::Copy(), ekf::NUMX, ekf::SkewSym4x4(), and x.

+ +

Referenced by Test().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ Test()

+ +
+
+ + + + + + + +
void ekf_imu13states::Test ()
+
+

Method for development and tests only.

+ +

Definition at line 104 of file ekf_imu13states.cpp.

+
105{
+
106 dspm::Mat test_x(7, 1);
+
107 for (size_t i = 0; i < 7; i++) {
+
108 test_x(i, 0) = i;
+
109 }
+
110 printf("Allocate data = %i\n", this->NUMU);
+
111 float *test_u = new float[this->NUMU];
+
112 for (size_t i = 0; i < this->NUMU; i++) {
+
113 test_u[i] = i;
+
114 }
+
115 dspm::Mat result_StateXdot = StateXdot(test_x, test_u);
+
116 delete[] test_u;
+
117}
+
virtual dspm::Mat StateXdot(dspm::Mat &x, float *u)
+
+

References NUMU, and StateXdot().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ TestFull()

+ +
+
+ + + + + + + +
void ekf_imu13states::TestFull (bool enable_att)
+
+
Method for development and tests only.
+
Parameters
+ + +
[in]enable_att- enable attitude as input reference value
+
+
+ +

Definition at line 119 of file ekf_imu13states.cpp.

+
120{
+
121 int total_N = 2048;
+
122 float pi = std::atan(1) * 4;
+
123 float gyro_err_data[] = {0.1, 0.2, 0.3}; // static constatnt error
+
124 dspm::Mat gyro_err(gyro_err_data, 3, 1);
+
125 float R[10];
+
126 for (size_t i = 0; i < 10; i++) {
+
127 R[i] = 0.01;
+
128 }
+
129
+
130 float accel0_data[] = {0, 0, 1};
+
131 float magn0_data[] = {1, 0, 0};
+
132
+
133 dspm::Mat accel0(accel0_data, 3, 1);
+
134 dspm::Mat magn0(magn0_data, 3, 1);
+
135
+
136 float dt = 0.01;
+
137
+
138 dspm::Mat gyro_data(3, 1);
+
139 int count = 0;
+
140
+
141 // Initial rotation matrix
+
142 dspm::Mat Rm = dspm::Mat::eye(3);
+
143 dspm::Mat Re = dspm::Mat::eye(3);
+
144
+
145 gyro_err *= 1;
+
146
+
147 std::cout << "Gyro error: " << gyro_err.t() << std::endl;
+
148 for (size_t n = 1; n < total_N * 3; n++) {
+
149 if ((n % 1000) == 0) {
+
150 std::cout << "Loop " << n << " from " << total_N * 16;
+
151 std::cout << ", State data : " << this->X.t();
+
152 }
+
153 gyro_data *= 0; // reset gyro value
+
154 if ((n >= (total_N / 2)) && (n < total_N * 12)) {
+
155 gyro_data(0, 0) = 1 / pi * std::cos(-pi / 2 + pi / 2 * count * 2 / (total_N / 10));
+
156 gyro_data(1, 0) = 2 / pi * std::cos(-pi / 2 + pi / 2 * count * 2 / (total_N / 10));
+
157 gyro_data(2, 0) = 3 / pi * std::cos(-pi / 2 + pi / 2 * count * 2 / (total_N / 10));
+
158 count++;
+
159 }
+
160 dspm::Mat gyro_sample = gyro_data + gyro_err;
+
161
+
162 gyro_data *= dt;
+
163 Re = this->eul2rotm(gyro_data.data); // Calculate rotation to gyro angel
+
164 Rm = Rm * Re; // Rotate original matrix
+
165 dspm::Mat attitude = ekf::rotm2quat(Rm);
+
166 // We have to rotate accel and magn to the opposite direction
+
167 dspm::Mat accel_data = Rm.t() * accel0;
+
168 dspm::Mat magn_data = Rm.t() * magn0;
+
169
+
170 dspm::Mat accel_norm = accel_data / accel_data.norm();
+
171 dspm::Mat magn_norm = magn_data / magn_data.norm();
+
172
+
173 float input_u[] = {gyro_sample(0, 0), gyro_sample(1, 0), gyro_sample(2, 0)};
+
174 // Process input values to new state
+
175 this->Process(input_u, dt);
+
176 dspm::Mat q_norm(this->X.data, 4, 1);
+
177 q_norm /= q_norm.norm();
+
178
+
179 if (true == enable_att) {
+
180 this->UpdateRefMeasurement(accel_norm.data, magn_norm.data, attitude.data, R);
+
181 } else {
+
182 this->UpdateRefMeasurement(accel_norm.data, magn_norm.data, R);
+
183 }
+
184 }
+
185 std::cout << "Final State data : " << this->X.t() << std::endl;
+
186}
+
float * data
Definition mat.h:37
+
float norm(void)
Definition mat.cpp:456
+
Mat t()
Definition mat.cpp:383
+
void UpdateRefMeasurement(float *accel_data, float *magn_data, float R[6])
+
static dspm::Mat rotm2quat(dspm::Mat &R)
Definition ekf.cpp:305
+
virtual void Process(float *u, float dt)
Definition ekf.cpp:53
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
const int n
Definition test_mmult.c:17
+
+

References accel0, dspm::Mat::data, ekf::eul2rotm(), dspm::Mat::eye(), n, dspm::Mat::norm(), ekf::Process(), ekf::rotm2quat(), dspm::Mat::t(), UpdateRefMeasurement(), and ekf::X.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ UpdateRefMeasurement() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void ekf_imu13states::UpdateRefMeasurement (float * accel_data,
float * magn_data,
float * attitude,
float R[10] )
+
+

Update system state by reference measurements accelerometer, magnetometer and attitude quaternion. This method could be used when system on constant state or in initialization phase.

Parameters
+ + + + + +
[in]accel_dataaccelerometer measurement vector XYZ in g, where 1 g ~ 9.81 m/s^2
[in]magn_datamagnetometer measurement vector XYZ
[in]attitudeattitude quaternion
[in]Rmeasurement noise covariance values for diagonal covariance matrix. Then smaller value, then more you trust them.
+
+
+ +

Definition at line 256 of file ekf_imu13states.cpp.

+
257{
+
258 dspm::Mat quat(this->X.data, 4, 1);
+
259 dspm::Mat H = 0 * dspm::Mat(10, this->NUMX);
+
260 dspm::Mat Re = this->quat2rotm(quat.data).t();
+
261
+
262 H.Copy(Re, 0, 7);
+
263 H.Copy(dspm::Mat::eye(3), 0, 10);
+
264 // dAccel/dq
+
265 dspm::Mat dAccel_dq = ekf::dFdq_inv(this->accel0, quat);
+
266 H.Copy(dAccel_dq, 3, 0);
+
267 // dMagn/dq
+
268 dspm::Mat magn(&this->X.data[7], 3, 1);
+
269 dspm::Mat magn_offset(&this->X.data[10], 3, 1);
+
270 dspm::Mat dMagn_dq = ekf::dFdq_inv(magn, quat);
+
271 H.Copy(dMagn_dq, 0, 0);
+
272
+
273 // dq/dq
+
274 H.Copy(dspm::Mat::eye(4), 6, 1);
+
275
+
276 dspm::Mat expected_magn = Re * magn + magn_offset;
+
277 dspm::Mat expected_accel = Re * this->accel0;
+
278
+
279 float measured_data[10];
+
280 float expected_data[10];
+
281 for (size_t i = 0; i < 3; i++) {
+
282 measured_data[i] = magn_data[i];
+
283 expected_data[i] = expected_magn.data[i];
+
284 measured_data[i + 3] = accel_data[i];
+
285 expected_data[i + 3] = expected_accel.data[i];
+
286 }
+
287 for (size_t i = 0; i < 4; i++) {
+
288 measured_data[i + 6] = attitude[i];
+
289 expected_data[i + 6] = this->X.data[i];
+
290 }
+
291
+
292 this->Update(H, measured_data, expected_data, R);
+
293 quat /= quat.norm();
+
294}
+
void Copy(const Mat &src, int row_pos, int col_pos)
Definition mat.cpp:168
+
static dspm::Mat dFdq_inv(dspm::Mat &vector, dspm::Mat &quat)
Definition ekf.cpp:389
+
virtual void Update(dspm::Mat &H, float *measured, float *expected, float *R)
Definition ekf.cpp:149
+
+

References accel0, dspm::Mat::Copy(), dspm::Mat::data, ekf::dFdq_inv(), dspm::Mat::eye(), dspm::Mat::norm(), ekf::NUMX, ekf::quat2rotm(), dspm::Mat::t(), ekf::Update(), and ekf::X.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ UpdateRefMeasurement() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + +
void ekf_imu13states::UpdateRefMeasurement (float * accel_data,
float * magn_data,
float R[6] )
+
+

Update part of system state by reference measurements accelerometer and magnetometer. Only attitude and gyro bias will be updated. This method should be used as main method after calibration.

+
Parameters
+ + + + +
[in]accel_dataaccelerometer measurement vector XYZ in g, where 1 g ~ 9.81 m/s^2
[in]magn_datamagnetometer measurement vector XYZ
[in]Rmeasurement noise covariance values for diagonal covariance matrix. Then smaller value, then more you trust them.
+
+
+ +

Definition at line 188 of file ekf_imu13states.cpp.

+
189{
+
190 dspm::Mat quat(this->X.data, 4, 1);
+
191 dspm::Mat H = 0 * dspm::Mat(6, this->NUMX);
+
192 dspm::Mat Re = this->quat2rotm(quat.data).t();
+
193
+
194 // dAccel/dq
+
195 dspm::Mat dAccel_dq = ekf::dFdq_inv(this->accel0, quat);
+
196 H.Copy(dAccel_dq, 3, 0);
+
197
+
198 // dMagn/dq
+
199 dspm::Mat magn(&this->X.data[7], 3, 1);
+
200 dspm::Mat magn_offset(&this->X.data[10], 3, 1);
+
201 dspm::Mat dMagn_dq = ekf::dFdq_inv(magn, quat);
+
202 H.Copy(dMagn_dq, 0, 0);
+
203
+
204 dspm::Mat expected_magn = Re * magn + magn_offset;
+
205 dspm::Mat expected_accel = Re * this->accel0;
+
206
+
207 float measured_data[6];
+
208 float expected_data[6];
+
209 for (size_t i = 0; i < 3; i++) {
+
210 measured_data[i] = magn_data[i];
+
211 expected_data[i] = expected_magn.data[i];
+
212 measured_data[i + 3] = accel_data[i];
+
213 expected_data[i + 3] = expected_accel.data[i];
+
214 }
+
215
+
216 this->Update(H, measured_data, expected_data, R);
+
217 quat /= quat.norm();
+
218}
+
+

References accel0, dspm::Mat::Copy(), dspm::Mat::data, ekf::dFdq_inv(), dspm::Mat::norm(), ekf::NUMX, ekf::quat2rotm(), dspm::Mat::t(), ekf::Update(), and ekf::X.

+ +

Referenced by TestFull().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ UpdateRefMeasurementMagn()

+ +
+
+ + + + + + + + + + + + + + + + +
void ekf_imu13states::UpdateRefMeasurementMagn (float * accel_data,
float * magn_data,
float R[6] )
+
+

Update full system state by reference measurements accelerometer and magnetometer. This method should be used at calibration phase.

+
Parameters
+ + + + +
[in]accel_dataaccelerometer measurement vector XYZ in g, where 1 g ~ 9.81 m/s^2
[in]magn_datamagnetometer measurement vector XYZ
[in]Rmeasurement noise covariance values for diagonal covariance matrix. Then smaller value, then more you trust them.
+
+
+ +

Definition at line 220 of file ekf_imu13states.cpp.

+
221{
+
222 dspm::Mat quat(this->X.data, 4, 1);
+
223 dspm::Mat H = 0 * dspm::Mat(6, this->NUMX);
+
224 dspm::Mat Re = this->quat2rotm(quat.data).t();
+
225
+
226 // We include these two line to update magnetometer initial state
+
227 H.Copy(Re, 0, 7);
+
228 H.Copy(dspm::Mat::eye(3), 0, 10);
+
229
+
230 // dAccel/dq
+
231 dspm::Mat dAccel_dq = ekf::dFdq_inv(this->accel0, quat);
+
232 H.Copy(dAccel_dq, 3, 0);
+
233
+
234 // dMagn/dq
+
235 dspm::Mat magn(&this->X.data[7], 3, 1);
+
236 dspm::Mat magn_offset(&this->X.data[10], 3, 1);
+
237 dspm::Mat dMagn_dq = ekf::dFdq_inv(magn, quat);
+
238 H.Copy(dMagn_dq, 0, 0);
+
239
+
240 dspm::Mat expected_magn = Re * magn + magn_offset;
+
241 dspm::Mat expected_accel = Re * this->accel0;
+
242
+
243 float measured_data[6];
+
244 float expected_data[6];
+
245 for (size_t i = 0; i < 3; i++) {
+
246 measured_data[i] = magn_data[i];
+
247 expected_data[i] = expected_magn.data[i];
+
248 measured_data[i + 3] = accel_data[i];
+
249 expected_data[i + 3] = expected_accel.data[i];
+
250 }
+
251
+
252 this->Update(H, measured_data, expected_data, R);
+
253 quat /= quat.norm();
+
254}
+
+

References accel0, dspm::Mat::Copy(), dspm::Mat::data, ekf::dFdq_inv(), dspm::Mat::eye(), dspm::Mat::norm(), ekf::NUMX, ekf::quat2rotm(), dspm::Mat::t(), ekf::Update(), and ekf::X.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+

Field Documentation

+ +

◆ accel0

+ +
+
+ + + + +
dspm::Mat ekf_imu13states::accel0
+
+

Initial reference valie for accelerometer.

+ +

Definition at line 60 of file ekf_imu13states.h.

+ +

Referenced by ekf_imu13states(), Init(), TestFull(), UpdateRefMeasurement(), UpdateRefMeasurement(), and UpdateRefMeasurementMagn().

+ +
+
+ +

◆ mag0

+ +
+
+ + + + +
dspm::Mat ekf_imu13states::mag0
+
+

Initial reference valie for magnetometer.

+ +

Definition at line 56 of file ekf_imu13states.h.

+ +

Referenced by ekf_imu13states(), and Init().

+ +
+
+ +

◆ NUMU

+ +
+
+ + + + +
int ekf_imu13states::NUMU
+
+

number of control measurements

+ +

Definition at line 65 of file ekf_imu13states.h.

+ +

Referenced by ekf_imu13states(), and Test().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ +
+ + + + diff --git a/docs/html/classekf__imu13states.js b/docs/html/classekf__imu13states.js new file mode 100644 index 0000000..7163c29 --- /dev/null +++ b/docs/html/classekf__imu13states.js @@ -0,0 +1,16 @@ +var classekf__imu13states = +[ + [ "ekf_imu13states", "classekf__imu13states.html#abea6659a97139b5ab7d4ebaa2872e41f", null ], + [ "~ekf_imu13states", "classekf__imu13states.html#a821d194c64e7ad0fd61a936483ee9a98", null ], + [ "Init", "classekf__imu13states.html#af9d689b4d151401d6a654390ac34599e", null ], + [ "LinearizeFG", "classekf__imu13states.html#aa45e9518c23a0fb627e9018d75195008", null ], + [ "StateXdot", "classekf__imu13states.html#af497d6d258b35c5e602f9816cd515267", null ], + [ "Test", "classekf__imu13states.html#a78292836f30dfd6439ee3bdda30ed20f", null ], + [ "TestFull", "classekf__imu13states.html#a7f315abd38007e57247edc0967d688f7", null ], + [ "UpdateRefMeasurement", "classekf__imu13states.html#a09f6e9adfc80a65e41a6e11ffd89fc53", null ], + [ "UpdateRefMeasurement", "classekf__imu13states.html#a84709d79f66591f90fea7c532d73ba14", null ], + [ "UpdateRefMeasurementMagn", "classekf__imu13states.html#ad56f37dbe6dece11f6ff670e478099b1", null ], + [ "accel0", "classekf__imu13states.html#a6310344a4fe79a1b43b12ba1a4a77f8f", null ], + [ "mag0", "classekf__imu13states.html#a6f9c0942bd5f15b48bf0994f9ff1de46", null ], + [ "NUMU", "classekf__imu13states.html#ae89c38a1cea846bbff4d29be0f889694", null ] +]; \ No newline at end of file diff --git a/docs/html/classekf__imu13states__coll__graph.md5 b/docs/html/classekf__imu13states__coll__graph.md5 new file mode 100644 index 0000000..c53a989 --- /dev/null +++ b/docs/html/classekf__imu13states__coll__graph.md5 @@ -0,0 +1 @@ +51bc47ee954d0343e6fc791d26a530a7 \ No newline at end of file diff --git a/docs/html/classekf__imu13states__coll__graph.svg b/docs/html/classekf__imu13states__coll__graph.svg new file mode 100644 index 0000000..2001a6d --- /dev/null +++ b/docs/html/classekf__imu13states__coll__graph.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +ekf_imu13states + + +Node1 + + +ekf_imu13states + + + + + +Node2 + + +ekf + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +dspm::Mat + + + + + +Node3->Node1 + + + + + +accel0 +mag0 + + + +Node3->Node2 + + + + + +F +G +P +Q +X + + + + + + + + diff --git a/docs/html/classekf__imu13states__coll__graph_org.svg b/docs/html/classekf__imu13states__coll__graph_org.svg new file mode 100644 index 0000000..59ebc97 --- /dev/null +++ b/docs/html/classekf__imu13states__coll__graph_org.svg @@ -0,0 +1,73 @@ + + + + + + +ekf_imu13states + + +Node1 + + +ekf_imu13states + + + + + +Node2 + + +ekf + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +dspm::Mat + + + + + +Node3->Node1 + + + + + +accel0 +mag0 + + + +Node3->Node2 + + + + + +F +G +P +Q +X + + + diff --git a/docs/html/classekf__imu13states__inherit__graph.md5 b/docs/html/classekf__imu13states__inherit__graph.md5 new file mode 100644 index 0000000..8b8c5e6 --- /dev/null +++ b/docs/html/classekf__imu13states__inherit__graph.md5 @@ -0,0 +1 @@ +25d9189eeb8bca69487ce9ca983921a5 \ No newline at end of file diff --git a/docs/html/classekf__imu13states__inherit__graph.svg b/docs/html/classekf__imu13states__inherit__graph.svg new file mode 100644 index 0000000..3d3e78d --- /dev/null +++ b/docs/html/classekf__imu13states__inherit__graph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +ekf_imu13states + + +Node1 + + +ekf_imu13states + + + + + +Node2 + + +ekf + + + + + +Node2->Node1 + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states__inherit__graph_org.svg b/docs/html/classekf__imu13states__inherit__graph_org.svg new file mode 100644 index 0000000..70b1576 --- /dev/null +++ b/docs/html/classekf__imu13states__inherit__graph_org.svg @@ -0,0 +1,39 @@ + + + + + + +ekf_imu13states + + +Node1 + + +ekf_imu13states + + + + + +Node2 + + +ekf + + + + + +Node2->Node1 + + + + + + + + diff --git a/docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph.md5 b/docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph.md5 new file mode 100644 index 0000000..28e0a75 --- /dev/null +++ b/docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph.md5 @@ -0,0 +1 @@ +5e4884ca7f502c978ebab97ddc380f1d \ No newline at end of file diff --git a/docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph.svg b/docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph.svg new file mode 100644 index 0000000..1efa1f1 --- /dev/null +++ b/docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph.svg @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf_imu13states::UpdateRefMeasurement + + +Node1 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node2 + + +dspm::Mat::Copy + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +ekf::dFdq_inv + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspm::Mat::norm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::t + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +ekf::Update + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node6->Node3 + + + + + + + + +Node9->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph_org.svg b/docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph_org.svg new file mode 100644 index 0000000..753c4ee --- /dev/null +++ b/docs/html/classekf__imu13states_a09f6e9adfc80a65e41a6e11ffd89fc53_cgraph_org.svg @@ -0,0 +1,202 @@ + + + + + + +ekf_imu13states::UpdateRefMeasurement + + +Node1 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node2 + + +dspm::Mat::Copy + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +ekf::dFdq_inv + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspm::Mat::norm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::t + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +ekf::Update + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node6->Node3 + + + + + + + + +Node9->Node3 + + + + + + + + diff --git a/docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph.md5 b/docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph.md5 new file mode 100644 index 0000000..3d01b9b --- /dev/null +++ b/docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph.md5 @@ -0,0 +1 @@ +18c818e985e6afae1eb1e8029db40740 \ No newline at end of file diff --git a/docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph.svg b/docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph.svg new file mode 100644 index 0000000..808aaea --- /dev/null +++ b/docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf_imu13states::Test + + +Node1 + + +ekf_imu13states::Test + + + + + +Node2 + + +ekf_imu13states::StateXdot + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Copy + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +ekf::SkewSym4x4 + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph_org.svg b/docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph_org.svg new file mode 100644 index 0000000..46a73ac --- /dev/null +++ b/docs/html/classekf__imu13states_a78292836f30dfd6439ee3bdda30ed20f_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +ekf_imu13states::Test + + +Node1 + + +ekf_imu13states::Test + + + + + +Node2 + + +ekf_imu13states::StateXdot + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Copy + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +ekf::SkewSym4x4 + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph.md5 b/docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph.md5 new file mode 100644 index 0000000..d413e3d --- /dev/null +++ b/docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph.md5 @@ -0,0 +1 @@ +9ddf4a1abbdcfc7b0b5364fad2f297e2 \ No newline at end of file diff --git a/docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph.svg b/docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph.svg new file mode 100644 index 0000000..6dfacde --- /dev/null +++ b/docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph.svg @@ -0,0 +1,492 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf_imu13states::TestFull + + +Node1 + + +ekf_imu13states::TestFull + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +dspm::Mat::norm + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::Process + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +dspm::Mat::t + + + + + +Node1->Node9 + + + + + + + + +Node13 + + +ekf::rotm2quat + + + + + +Node1->Node13 + + + + + + + + +Node15 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node15 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +ekf::CovariancePrediction + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +ekf::LinearizeFG + + + + + +Node7->Node10 + + + + + + + + +Node11 + + +ekf::RungeKutta + + + + + +Node7->Node11 + + + + + + + + +Node8->Node3 + + + + + + + + +Node8->Node9 + + + + + + + + +Node9->Node4 + + + + + + + + +Node12 + + +ekf::StateXdot + + + + + +Node11->Node12 + + + + + + + + +Node13->Node6 + + + + + + + + +Node14 + + +SIGN + + + + + +Node13->Node14 + + + + + + + + +Node15->Node6 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16 + + +dspm::Mat::Copy + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +ekf::dFdq_inv + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +ekf::quat2rotm + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +ekf::Update + + + + + +Node15->Node19 + + + + + + + + +Node16->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph_org.svg b/docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph_org.svg new file mode 100644 index 0000000..74dc6dd --- /dev/null +++ b/docs/html/classekf__imu13states_a7f315abd38007e57247edc0967d688f7_cgraph_org.svg @@ -0,0 +1,409 @@ + + + + + + +ekf_imu13states::TestFull + + +Node1 + + +ekf_imu13states::TestFull + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +dspm::Mat::norm + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::Process + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +dspm::Mat::t + + + + + +Node1->Node9 + + + + + + + + +Node13 + + +ekf::rotm2quat + + + + + +Node1->Node13 + + + + + + + + +Node15 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node15 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +ekf::CovariancePrediction + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +ekf::LinearizeFG + + + + + +Node7->Node10 + + + + + + + + +Node11 + + +ekf::RungeKutta + + + + + +Node7->Node11 + + + + + + + + +Node8->Node3 + + + + + + + + +Node8->Node9 + + + + + + + + +Node9->Node4 + + + + + + + + +Node12 + + +ekf::StateXdot + + + + + +Node11->Node12 + + + + + + + + +Node13->Node6 + + + + + + + + +Node14 + + +SIGN + + + + + +Node13->Node14 + + + + + + + + +Node15->Node6 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16 + + +dspm::Mat::Copy + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +ekf::dFdq_inv + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +ekf::quat2rotm + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +ekf::Update + + + + + +Node15->Node19 + + + + + + + + +Node16->Node4 + + + + + + + + diff --git a/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph.md5 b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph.md5 new file mode 100644 index 0000000..e11a283 --- /dev/null +++ b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph.md5 @@ -0,0 +1 @@ +2eadf86c6c03bc1cef6d2b4bc55c73e7 \ No newline at end of file diff --git a/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph.svg b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph.svg new file mode 100644 index 0000000..b5172a2 --- /dev/null +++ b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph.svg @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf_imu13states::UpdateRefMeasurement + + +Node1 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node2 + + +dspm::Mat::Copy + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +ekf::dFdq_inv + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspm::Mat::norm + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +ekf::Update + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node8->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph_org.svg b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph_org.svg new file mode 100644 index 0000000..75a0356 --- /dev/null +++ b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_cgraph_org.svg @@ -0,0 +1,175 @@ + + + + + + +ekf_imu13states::UpdateRefMeasurement + + +Node1 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node2 + + +dspm::Mat::Copy + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +ekf::dFdq_inv + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspm::Mat::norm + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +ekf::Update + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node8->Node3 + + + + + + + + diff --git a/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph.md5 b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph.md5 new file mode 100644 index 0000000..7dda4e6 --- /dev/null +++ b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph.md5 @@ -0,0 +1 @@ +f645609267f904d62f0669dfc3418e13 \ No newline at end of file diff --git a/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph.svg b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph.svg new file mode 100644 index 0000000..bdc42f0 --- /dev/null +++ b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +ekf_imu13states::UpdateRefMeasurement + + +Node1 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node2 + + +ekf_imu13states::TestFull + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph_org.svg b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph_org.svg new file mode 100644 index 0000000..cd6bdf0 --- /dev/null +++ b/docs/html/classekf__imu13states_a84709d79f66591f90fea7c532d73ba14_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +ekf_imu13states::UpdateRefMeasurement + + +Node1 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node2 + + +ekf_imu13states::TestFull + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph.md5 b/docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph.md5 new file mode 100644 index 0000000..7f3339e --- /dev/null +++ b/docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph.md5 @@ -0,0 +1 @@ +c5717238abe368cd6e0734bdcaf796af \ No newline at end of file diff --git a/docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph.svg b/docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph.svg new file mode 100644 index 0000000..5d807de --- /dev/null +++ b/docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf_imu13states::LinearizeFG + + +Node1 + + +ekf_imu13states::LinearizeFG + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +dspm::Mat::Get + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +ekf::qProduct + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::SkewSym4x4 + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph_org.svg b/docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph_org.svg new file mode 100644 index 0000000..b4e444e --- /dev/null +++ b/docs/html/classekf__imu13states_aa45e9518c23a0fb627e9018d75195008_cgraph_org.svg @@ -0,0 +1,156 @@ + + + + + + +ekf_imu13states::LinearizeFG + + +Node1 + + +ekf_imu13states::LinearizeFG + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +dspm::Mat::Get + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +ekf::qProduct + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::SkewSym4x4 + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + diff --git a/docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph.md5 b/docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph.md5 new file mode 100644 index 0000000..32323a5 --- /dev/null +++ b/docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph.md5 @@ -0,0 +1 @@ +e5a5e9b95eec19280c1b1b18bb51eb80 \ No newline at end of file diff --git a/docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph.svg b/docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph.svg new file mode 100644 index 0000000..e9073e8 --- /dev/null +++ b/docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +ekf_imu13states::ekf_imu13states + + +Node1 + + +ekf_imu13states::ekf +_imu13states + + + + + +Node2 + + +ekf::ekf + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph_org.svg b/docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph_org.svg new file mode 100644 index 0000000..d4b4ed4 --- /dev/null +++ b/docs/html/classekf__imu13states_abea6659a97139b5ab7d4ebaa2872e41f_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +ekf_imu13states::ekf_imu13states + + +Node1 + + +ekf_imu13states::ekf +_imu13states + + + + + +Node2 + + +ekf::ekf + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph.md5 b/docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph.md5 new file mode 100644 index 0000000..8f6cfad --- /dev/null +++ b/docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph.md5 @@ -0,0 +1 @@ +eb0d1acbea09c5c5042b3bbc6356b58c \ No newline at end of file diff --git a/docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph.svg b/docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph.svg new file mode 100644 index 0000000..6e27c09 --- /dev/null +++ b/docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph.svg @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf_imu13states::UpdateRefMeasurementMagn + + +Node1 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node2 + + +dspm::Mat::Copy + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +ekf::dFdq_inv + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspm::Mat::norm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::t + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +ekf::Update + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node6->Node3 + + + + + + + + +Node9->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph_org.svg b/docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph_org.svg new file mode 100644 index 0000000..9bf8974 --- /dev/null +++ b/docs/html/classekf__imu13states_ad56f37dbe6dece11f6ff670e478099b1_cgraph_org.svg @@ -0,0 +1,202 @@ + + + + + + +ekf_imu13states::UpdateRefMeasurementMagn + + +Node1 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node2 + + +dspm::Mat::Copy + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +ekf::dFdq_inv + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspm::Mat::norm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::t + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +ekf::Update + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node6->Node3 + + + + + + + + +Node9->Node3 + + + + + + + + diff --git a/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph.md5 b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph.md5 new file mode 100644 index 0000000..f9f52c3 --- /dev/null +++ b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph.md5 @@ -0,0 +1 @@ +22e27d25e3748df004f46710afd35ed3 \ No newline at end of file diff --git a/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph.svg b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph.svg new file mode 100644 index 0000000..3d42976 --- /dev/null +++ b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf_imu13states::StateXdot + + +Node1 + + +ekf_imu13states::StateXdot + + + + + +Node2 + + +dspm::Mat::Copy + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +ekf::SkewSym4x4 + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph_org.svg b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph_org.svg new file mode 100644 index 0000000..dade4b4 --- /dev/null +++ b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +ekf_imu13states::StateXdot + + +Node1 + + +ekf_imu13states::StateXdot + + + + + +Node2 + + +dspm::Mat::Copy + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +ekf::SkewSym4x4 + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph.md5 b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph.md5 new file mode 100644 index 0000000..8e47291 --- /dev/null +++ b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph.md5 @@ -0,0 +1 @@ +f711b8dd87181ec89a90b298bad7d80d \ No newline at end of file diff --git a/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph.svg b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph.svg new file mode 100644 index 0000000..092c97c --- /dev/null +++ b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +ekf_imu13states::StateXdot + + +Node1 + + +ekf_imu13states::StateXdot + + + + + +Node2 + + +ekf_imu13states::Test + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph_org.svg b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph_org.svg new file mode 100644 index 0000000..efab720 --- /dev/null +++ b/docs/html/classekf__imu13states_af497d6d258b35c5e602f9816cd515267_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +ekf_imu13states::StateXdot + + +Node1 + + +ekf_imu13states::StateXdot + + + + + +Node2 + + +ekf_imu13states::Test + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph.md5 b/docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph.md5 new file mode 100644 index 0000000..0d15a30 --- /dev/null +++ b/docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph.md5 @@ -0,0 +1 @@ +3be8685f50e43f66650e1b74930dbf41 \ No newline at end of file diff --git a/docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph.svg b/docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph.svg new file mode 100644 index 0000000..c831ec2 --- /dev/null +++ b/docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +ekf_imu13states::Init + + +Node1 + + +ekf_imu13states::Init + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph_org.svg b/docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph_org.svg new file mode 100644 index 0000000..7c63924 --- /dev/null +++ b/docs/html/classekf__imu13states_af9d689b4d151401d6a654390ac34599e_cgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +ekf_imu13states::Init + + +Node1 + + +ekf_imu13states::Init + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classekf__inherit__graph.md5 b/docs/html/classekf__inherit__graph.md5 new file mode 100644 index 0000000..46d1993 --- /dev/null +++ b/docs/html/classekf__inherit__graph.md5 @@ -0,0 +1 @@ +cf47ca3e7ae56dabd2a91d232c0ad8b1 \ No newline at end of file diff --git a/docs/html/classekf__inherit__graph.svg b/docs/html/classekf__inherit__graph.svg new file mode 100644 index 0000000..5d7656a --- /dev/null +++ b/docs/html/classekf__inherit__graph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +ekf + + +Node1 + + +ekf + + + + + +Node2 + + +ekf_imu13states + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classekf__inherit__graph_org.svg b/docs/html/classekf__inherit__graph_org.svg new file mode 100644 index 0000000..c338a1d --- /dev/null +++ b/docs/html/classekf__inherit__graph_org.svg @@ -0,0 +1,39 @@ + + + + + + +ekf + + +Node1 + + +ekf + + + + + +Node2 + + +ekf_imu13states + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph.md5 b/docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph.md5 new file mode 100644 index 0000000..d1b543d --- /dev/null +++ b/docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph.md5 @@ -0,0 +1 @@ +56d0562a970506690378d7f99bcaa9b3 \ No newline at end of file diff --git a/docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph.svg b/docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph.svg new file mode 100644 index 0000000..3796db2 --- /dev/null +++ b/docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +ekf::StateXdot + + +Node1 + + +ekf::StateXdot + + + + + +Node2 + + +ekf::RungeKutta + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::Process + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph_org.svg b/docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph_org.svg new file mode 100644 index 0000000..ff5f528 --- /dev/null +++ b/docs/html/classekf_a09a763aeb193404116274d2885c42172_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +ekf::StateXdot + + +Node1 + + +ekf::StateXdot + + + + + +Node2 + + +ekf::RungeKutta + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::Process + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph.md5 b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph.md5 new file mode 100644 index 0000000..07dd243 --- /dev/null +++ b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph.md5 @@ -0,0 +1 @@ +032299d9377ddb86c006a06fd8c26df2 \ No newline at end of file diff --git a/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph.svg b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph.svg new file mode 100644 index 0000000..65ac21a --- /dev/null +++ b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +ekf::rotm2quat + + +Node1 + + +ekf::rotm2quat + + + + + +Node2 + + +dspm::Mat::norm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +SIGN + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph_org.svg b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph_org.svg new file mode 100644 index 0000000..362155e --- /dev/null +++ b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +ekf::rotm2quat + + +Node1 + + +ekf::rotm2quat + + + + + +Node2 + + +dspm::Mat::norm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +SIGN + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph.md5 b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph.md5 new file mode 100644 index 0000000..aad5a80 --- /dev/null +++ b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph.md5 @@ -0,0 +1 @@ +2d5e6a9d1374515eaa28f79880f29136 \ No newline at end of file diff --git a/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph.svg b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph.svg new file mode 100644 index 0000000..1963da8 --- /dev/null +++ b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +ekf::rotm2quat + + +Node1 + + +ekf::rotm2quat + + + + + +Node2 + + +ekf_imu13states::TestFull + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph_org.svg b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph_org.svg new file mode 100644 index 0000000..2cb48bf --- /dev/null +++ b/docs/html/classekf_a148bfefd351013bb66d84b160ce31ee3_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +ekf::rotm2quat + + +Node1 + + +ekf::rotm2quat + + + + + +Node2 + + +ekf_imu13states::TestFull + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph.md5 b/docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph.md5 new file mode 100644 index 0000000..789cfa4 --- /dev/null +++ b/docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph.md5 @@ -0,0 +1 @@ +e9384bbd372dfa9fe88106e433fbe605 \ No newline at end of file diff --git a/docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph.svg b/docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph.svg new file mode 100644 index 0000000..273d50b --- /dev/null +++ b/docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +ekf::LinearizeFG + + +Node1 + + +ekf::LinearizeFG + + + + + +Node2 + + +ekf::Process + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::TestFull + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph_org.svg b/docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph_org.svg new file mode 100644 index 0000000..bd5814b --- /dev/null +++ b/docs/html/classekf_a21cccadc5b6e3150a55b8964526e206f_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +ekf::LinearizeFG + + +Node1 + + +ekf::LinearizeFG + + + + + +Node2 + + +ekf::Process + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::TestFull + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph.md5 b/docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph.md5 new file mode 100644 index 0000000..b66f637 --- /dev/null +++ b/docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph.md5 @@ -0,0 +1 @@ +54c5ec6952cb5654141158fb627b6081 \ No newline at end of file diff --git a/docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph.svg b/docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph.svg new file mode 100644 index 0000000..8eb9c89 --- /dev/null +++ b/docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + +ekf::dFdq_inv + + +Node1 + + +ekf::dFdq_inv + + + + + +Node2 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph_org.svg b/docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph_org.svg new file mode 100644 index 0000000..e0f454f --- /dev/null +++ b/docs/html/classekf_a3affa0048058ee2485dcb28d718be907_icgraph_org.svg @@ -0,0 +1,96 @@ + + + + + + +ekf::dFdq_inv + + +Node1 + + +ekf::dFdq_inv + + + + + +Node2 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph.md5 b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph.md5 new file mode 100644 index 0000000..552ca75 --- /dev/null +++ b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph.md5 @@ -0,0 +1 @@ +cac0804b5db4956d3425147bff0efdab \ No newline at end of file diff --git a/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph.svg b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph.svg new file mode 100644 index 0000000..0657864 --- /dev/null +++ b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + +ekf::Process + + +Node1 + + +ekf::Process + + + + + +Node2 + + +ekf::CovariancePrediction + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +ekf::LinearizeFG + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::RungeKutta + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +dspm::Mat::t + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node6->Node4 + + + + + + + + +Node9 + + +ekf::StateXdot + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph_org.svg b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph_org.svg new file mode 100644 index 0000000..359878e --- /dev/null +++ b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_cgraph_org.svg @@ -0,0 +1,156 @@ + + + + + + +ekf::Process + + +Node1 + + +ekf::Process + + + + + +Node2 + + +ekf::CovariancePrediction + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +ekf::LinearizeFG + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::RungeKutta + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +dspm::Mat::t + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node6->Node4 + + + + + + + + +Node9 + + +ekf::StateXdot + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph.md5 b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph.md5 new file mode 100644 index 0000000..a3d7cfc --- /dev/null +++ b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph.md5 @@ -0,0 +1 @@ +2367e8926570c2a2b38c237e2a813785 \ No newline at end of file diff --git a/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph.svg b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph.svg new file mode 100644 index 0000000..0ce8702 --- /dev/null +++ b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +ekf::Process + + +Node1 + + +ekf::Process + + + + + +Node2 + + +ekf_imu13states::TestFull + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph_org.svg b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph_org.svg new file mode 100644 index 0000000..2cc6dba --- /dev/null +++ b/docs/html/classekf_a42ee022dba96611bf76d0d29bf964323_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +ekf::Process + + +Node1 + + +ekf::Process + + + + + +Node2 + + +ekf_imu13states::TestFull + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph.md5 b/docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph.md5 new file mode 100644 index 0000000..2274c40 --- /dev/null +++ b/docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph.md5 @@ -0,0 +1 @@ +1f9c709e311195b2cd0e7488cd6066af \ No newline at end of file diff --git a/docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph.svg b/docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph.svg new file mode 100644 index 0000000..5e7e66a --- /dev/null +++ b/docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +ekf::ekf + + +Node1 + + +ekf::ekf + + + + + +Node2 + + +ekf_imu13states::ekf +_imu13states + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph_org.svg b/docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph_org.svg new file mode 100644 index 0000000..1513d16 --- /dev/null +++ b/docs/html/classekf_a48b8f056f76ddf4a0d3520cc4ef8bade_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +ekf::ekf + + +Node1 + + +ekf::ekf + + + + + +Node2 + + +ekf_imu13states::ekf +_imu13states + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph.md5 b/docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph.md5 new file mode 100644 index 0000000..73b85d8 --- /dev/null +++ b/docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph.md5 @@ -0,0 +1 @@ +23b9f90985828720192e7a7f7b737011 \ No newline at end of file diff --git a/docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph.svg b/docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph.svg new file mode 100644 index 0000000..ce22b77 --- /dev/null +++ b/docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph.svg @@ -0,0 +1,476 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf::quat2rotm + + +Node1 + + +ekf::quat2rotm + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +draw_3d_image_task + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +draw_3d_image_task + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node22 + + + + + + + + +Node24 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node24 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + +Node23 + + +ekf_imu13states::TestFull + + + + + +Node22->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph_org.svg b/docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph_org.svg new file mode 100644 index 0000000..be13f63 --- /dev/null +++ b/docs/html/classekf_a535f152864f2732a9888d4f959bd21fa_icgraph_org.svg @@ -0,0 +1,393 @@ + + + + + + +ekf::quat2rotm + + +Node1 + + +ekf::quat2rotm + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +draw_3d_image_task + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +draw_3d_image_task + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node22 + + + + + + + + +Node24 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node24 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + +Node23 + + +ekf_imu13states::TestFull + + + + + +Node22->Node23 + + + + + + + + diff --git a/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.md5 b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.md5 new file mode 100644 index 0000000..d4cd5c1 --- /dev/null +++ b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.md5 @@ -0,0 +1 @@ +3ae2cb7d73b5f4c9da55071b2440ce09 \ No newline at end of file diff --git a/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.svg b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.svg new file mode 100644 index 0000000..6560327 --- /dev/null +++ b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf::CovariancePrediction + + +Node1 + + +ekf::CovariancePrediction + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +dspm::Mat::t + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph_org.svg b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph_org.svg new file mode 100644 index 0000000..afae5a2 --- /dev/null +++ b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_cgraph_org.svg @@ -0,0 +1,102 @@ + + + + + + +ekf::CovariancePrediction + + +Node1 + + +ekf::CovariancePrediction + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +dspm::Mat::t + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node3 + + + + + + + + diff --git a/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph.md5 b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph.md5 new file mode 100644 index 0000000..6ee3121 --- /dev/null +++ b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph.md5 @@ -0,0 +1 @@ +6f44c19540194534b6e1f14d0e5dbd07 \ No newline at end of file diff --git a/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph.svg b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph.svg new file mode 100644 index 0000000..cb7cb75 --- /dev/null +++ b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +ekf::CovariancePrediction + + +Node1 + + +ekf::CovariancePrediction + + + + + +Node2 + + +ekf::Process + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::TestFull + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph_org.svg b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph_org.svg new file mode 100644 index 0000000..8192bf0 --- /dev/null +++ b/docs/html/classekf_a6588ad6c3eae0d1a177b35ea75b5a4f3_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +ekf::CovariancePrediction + + +Node1 + + +ekf::CovariancePrediction + + + + + +Node2 + + +ekf::Process + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::TestFull + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph.md5 b/docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph.md5 new file mode 100644 index 0000000..651ec39 --- /dev/null +++ b/docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph.md5 @@ -0,0 +1 @@ +3a78b661328027b266bb3be7af3f2b17 \ No newline at end of file diff --git a/docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph.svg b/docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph.svg new file mode 100644 index 0000000..6aaa3e2 --- /dev/null +++ b/docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph.svg @@ -0,0 +1,581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf::eul2rotm + + +Node1 + + +ekf::eul2rotm + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +ekf_imu13states::TestFull + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +update_rotation_matrix + + + + + +Node1->Node19 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + +Node19->Node2 + + + + + + + + +Node19->Node12 + + + + + + + + +Node19->Node14 + + + + + + + + +Node19->Node16 + + + + + + + + +Node20 + + +draw_3d_image_task + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +draw_3d_image_task + + + + + +Node19->Node22 + + + + + + + + +Node23 + + +draw_3d_image_task + + + + + +Node19->Node23 + + + + + + + + +Node24 + + +draw_3d_image_task + + + + + +Node19->Node24 + + + + + + + + +Node25 + + +draw_3d_image_task + + + + + +Node19->Node25 + + + + + + + + +Node26 + + +draw_3d_image_task + + + + + +Node19->Node26 + + + + + + + + +Node27 + + +draw_3d_image_task + + + + + +Node19->Node27 + + + + + + + + +Node28 + + +draw_3d_image_task + + + + + +Node19->Node28 + + + + + + + + +Node21 + + +app_main + + + + + +Node20->Node21 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph_org.svg b/docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph_org.svg new file mode 100644 index 0000000..138cbeb --- /dev/null +++ b/docs/html/classekf_a6e279ffd67d217145d7891a44ea0d9e8_icgraph_org.svg @@ -0,0 +1,498 @@ + + + + + + +ekf::eul2rotm + + +Node1 + + +ekf::eul2rotm + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +ekf_imu13states::TestFull + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +update_rotation_matrix + + + + + +Node1->Node19 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + +Node19->Node2 + + + + + + + + +Node19->Node12 + + + + + + + + +Node19->Node14 + + + + + + + + +Node19->Node16 + + + + + + + + +Node20 + + +draw_3d_image_task + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +draw_3d_image_task + + + + + +Node19->Node22 + + + + + + + + +Node23 + + +draw_3d_image_task + + + + + +Node19->Node23 + + + + + + + + +Node24 + + +draw_3d_image_task + + + + + +Node19->Node24 + + + + + + + + +Node25 + + +draw_3d_image_task + + + + + +Node19->Node25 + + + + + + + + +Node26 + + +draw_3d_image_task + + + + + +Node19->Node26 + + + + + + + + +Node27 + + +draw_3d_image_task + + + + + +Node19->Node27 + + + + + + + + +Node28 + + +draw_3d_image_task + + + + + +Node19->Node28 + + + + + + + + +Node21 + + +app_main + + + + + +Node20->Node21 + + + + + + + + diff --git a/docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph.md5 b/docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph.md5 new file mode 100644 index 0000000..2499e3f --- /dev/null +++ b/docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph.md5 @@ -0,0 +1 @@ +e7bc3ac1c33c1dfcb69fca8a8ac87c67 \ No newline at end of file diff --git a/docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph.svg b/docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph.svg new file mode 100644 index 0000000..4080e62 --- /dev/null +++ b/docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph.svg @@ -0,0 +1,383 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf::rotm2eul + + +Node1 + + +ekf::rotm2eul + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +draw_3d_image_task + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +draw_3d_image_task + + + + + +Node1->Node19 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph_org.svg b/docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph_org.svg new file mode 100644 index 0000000..c9ad0b2 --- /dev/null +++ b/docs/html/classekf_a744bf24c20081158a4327aba7d922547_icgraph_org.svg @@ -0,0 +1,300 @@ + + + + + + +ekf::rotm2eul + + +Node1 + + +ekf::rotm2eul + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +draw_3d_image_task + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +draw_3d_image_task + + + + + +Node1->Node19 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + diff --git a/docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph.md5 b/docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph.md5 new file mode 100644 index 0000000..c5afd0c --- /dev/null +++ b/docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph.md5 @@ -0,0 +1 @@ +5583763b20f0b5be1a9ff670f5441272 \ No newline at end of file diff --git a/docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph.svg b/docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph.svg new file mode 100644 index 0000000..6dc4fb7 --- /dev/null +++ b/docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + +ekf::Update + + +Node1 + + +ekf::Update + + + + + +Node2 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph_org.svg b/docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph_org.svg new file mode 100644 index 0000000..5d71b72 --- /dev/null +++ b/docs/html/classekf_a7df41e0ecb82824766219aa5f9b0baef_icgraph_org.svg @@ -0,0 +1,96 @@ + + + + + + +ekf::Update + + +Node1 + + +ekf::Update + + + + + +Node2 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::UpdateRef +Measurement + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ekf_imu13states::UpdateRef +MeasurementMagn + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +ekf_imu13states::TestFull + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph.md5 b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph.md5 new file mode 100644 index 0000000..e241f6b --- /dev/null +++ b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph.md5 @@ -0,0 +1 @@ +9a0d0f62c303b37a8d9c9454c1e97faf \ No newline at end of file diff --git a/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph.svg b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph.svg new file mode 100644 index 0000000..07f0667 --- /dev/null +++ b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +ekf::RungeKutta + + +Node1 + + +ekf::RungeKutta + + + + + +Node2 + + +ekf::StateXdot + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph_org.svg b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph_org.svg new file mode 100644 index 0000000..5764382 --- /dev/null +++ b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +ekf::RungeKutta + + +Node1 + + +ekf::RungeKutta + + + + + +Node2 + + +ekf::StateXdot + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph.md5 b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph.md5 new file mode 100644 index 0000000..8ab56dc --- /dev/null +++ b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph.md5 @@ -0,0 +1 @@ +fcdcf404acdc63950d70ceec2a213f55 \ No newline at end of file diff --git a/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph.svg b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph.svg new file mode 100644 index 0000000..df5bff9 --- /dev/null +++ b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +ekf::RungeKutta + + +Node1 + + +ekf::RungeKutta + + + + + +Node2 + + +ekf::Process + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::TestFull + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph_org.svg b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph_org.svg new file mode 100644 index 0000000..78cb63f --- /dev/null +++ b/docs/html/classekf_a8f28807c86b11b95cc95bd514e65ea61_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +ekf::RungeKutta + + +Node1 + + +ekf::RungeKutta + + + + + +Node2 + + +ekf::Process + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::TestFull + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph.md5 b/docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph.md5 new file mode 100644 index 0000000..2254b18 --- /dev/null +++ b/docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph.md5 @@ -0,0 +1 @@ +e13dabaabb40ce11704e53a363776efd \ No newline at end of file diff --git a/docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph.svg b/docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph.svg new file mode 100644 index 0000000..6e485b4 --- /dev/null +++ b/docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph.svg @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf::UpdateRef + + +Node1 + + +ekf::UpdateRef + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +dspm::Mat::pinv + + + + + +Node1->Node5 + + + + + + + + +Node9 + + +dspm::Mat::t + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node2 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +dspm::Mat::augment + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dspm::Mat::gaussianEliminate + + + + + +Node5->Node7 + + + + + + + + +Node10 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node5->Node10 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8 + + +dspm::Mat::swapRows + + + + + +Node7->Node8 + + + + + + + + +Node7->Node9 + + + + + + + + +Node9->Node3 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph_org.svg b/docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph_org.svg new file mode 100644 index 0000000..6e77ae0 --- /dev/null +++ b/docs/html/classekf_abd6f35d1ea69828aa0f757762fac9498_cgraph_org.svg @@ -0,0 +1,256 @@ + + + + + + +ekf::UpdateRef + + +Node1 + + +ekf::UpdateRef + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +dspm::Mat::pinv + + + + + +Node1->Node5 + + + + + + + + +Node9 + + +dspm::Mat::t + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + +Node5->Node2 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +dspm::Mat::augment + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dspm::Mat::gaussianEliminate + + + + + +Node5->Node7 + + + + + + + + +Node10 + + +dspm::Mat::rowReduceFrom +Gaussian + + + + + +Node5->Node10 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8 + + +dspm::Mat::swapRows + + + + + +Node7->Node8 + + + + + + + + +Node7->Node9 + + + + + + + + +Node9->Node3 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node9 + + + + + + + + diff --git a/docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph.md5 b/docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph.md5 new file mode 100644 index 0000000..8093e78 --- /dev/null +++ b/docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph.md5 @@ -0,0 +1 @@ +2765d16a0e205f9d66a408bc3aaaf499 \ No newline at end of file diff --git a/docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph.svg b/docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph.svg new file mode 100644 index 0000000..24e727d --- /dev/null +++ b/docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +ekf::qProduct + + +Node1 + + +ekf::qProduct + + + + + +Node2 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph_org.svg b/docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph_org.svg new file mode 100644 index 0000000..9481a8c --- /dev/null +++ b/docs/html/classekf_ac8d09350d77dfdc0525b1fd72333fa3e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +ekf::qProduct + + +Node1 + + +ekf::qProduct + + + + + +Node2 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph.md5 b/docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph.md5 new file mode 100644 index 0000000..37a593c --- /dev/null +++ b/docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph.md5 @@ -0,0 +1 @@ +2ec26e57d20576304e956476ac486095 \ No newline at end of file diff --git a/docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph.svg b/docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph.svg new file mode 100644 index 0000000..d825870 --- /dev/null +++ b/docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +ekf::SkewSym4x4 + + +Node1 + + +ekf::SkewSym4x4 + + + + + +Node2 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::StateXdot + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +ekf_imu13states::Test + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph_org.svg b/docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph_org.svg new file mode 100644 index 0000000..e04e342 --- /dev/null +++ b/docs/html/classekf_aeca3bb4b4c62c2e5aa7728abb652d7b5_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +ekf::SkewSym4x4 + + +Node1 + + +ekf::SkewSym4x4 + + + + + +Node2 + + +ekf_imu13states::LinearizeFG + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::StateXdot + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +ekf_imu13states::Test + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/classes.html b/docs/html/classes.html new file mode 100644 index 0000000..9f3744f --- /dev/null +++ b/docs/html/classes.html @@ -0,0 +1,144 @@ + + + + + + + +ESP-IDF Firmware: Data Structure Index + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/clipboard.js b/docs/html/clipboard.js new file mode 100644 index 0000000..9da9f3c --- /dev/null +++ b/docs/html/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html new file mode 100644 index 0000000..4e1466b --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html @@ -0,0 +1,869 @@ + + + + + + + +ESP-IDF Firmware: main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main.c File Reference
+
+
+
#include <dirent.h>
+#include <math.h>
+#include "bsp/esp-bsp.h"
+#include "esp_log.h"
+#include "esp_dsp.h"
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "freertos/semphr.h"
+#include "esp_system.h"
+#include "esp_err.h"
+#include "esp_timer.h"
+#include <malloc.h>
+
+Include dependency graph for components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + +

+Macros

#define I2S_CHANNEL_NUM   (2)
#define SAMPLE_RATE   (10000)
#define BITS_PER_CHANNEL   16
#define BUFFER_PROCESS_SIZE   512
#define X_AXIS_SIZE   (320)
#define Y_AXIS_SIZE   (240)
+ + + + + + + +

+Functions

static void microphone_read_task (void *arg)
static uint16_t convert_to_rgb (uint8_t minval, uint8_t maxval, int8_t val)
static void spectrum2d_picture_init ()
static void spectrum2d_picture ()
static void image_display_task (void *arg)
void app_main (void)
+ + + + + + +

+Variables

static const char * TAG = "main"
static float result_data [512]
static uint8_t screen_rgb_data [(320) *(240) *LV_IMG_PX_SIZE_ALPHA_BYTE]
static const lv_img_dsc_t img_screen_rgb
static int8_t colors [3][3] = { {0, 0, 31}, {0, 63, 0}, {31, 0, 0} }
+

Macro Definition Documentation

+ +

◆ BITS_PER_CHANNEL

+ +
+
+ + + + +
#define BITS_PER_CHANNEL   16
+
+
+ +

◆ BUFFER_PROCESS_SIZE

+ +
+
+ + + + +
#define BUFFER_PROCESS_SIZE   512
+
+
+ +

◆ I2S_CHANNEL_NUM

+ +
+
+ + + + +
#define I2S_CHANNEL_NUM   (2)
+
+
+ +

◆ SAMPLE_RATE

+ +
+
+ + + + +
#define SAMPLE_RATE   (10000)
+
+
+ +

◆ X_AXIS_SIZE

+ +
+
+ + + + +
#define X_AXIS_SIZE   (320)
+
+
+ +

◆ Y_AXIS_SIZE

+ +
+
+ + + + +
#define Y_AXIS_SIZE   (240)
+
+
+

Function Documentation

+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 247 of file components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c.

+
248{
+
249 /* Initialize I2C (for touch and audio) */
+
250 bsp_i2c_init();
+
251
+
252 /* Initialize display and LVGL */
+
253 bsp_display_start();
+
254
+
255 /* Set display brightness to 100% */
+
256 bsp_display_backlight_on();
+
257
+
258 int ret_val = xTaskCreatePinnedToCore(&microphone_read_task, "Microphone read Task", 8 * 1024, NULL, 3, NULL, 0);
+
259 if (ret_val != pdPASS) {
+
260 ESP_LOGE(TAG, "Not possible to allocate microphone task, ret_val = %i", ret_val);
+
261 return;
+
262 }
+
263
+
264 ret_val = xTaskCreatePinnedToCore(&image_display_task, "Draw task", 10 * 1024, NULL, 5, NULL, 1);
+
265 if (ret_val != pdPASS) {
+
266 ESP_LOGE(TAG, "Not possible to allocate microphone task, ret_val= %i", ret_val);
+
267 return;
+
268 }
+
269}
+ + + +
static const char * TAG
Definition main/main.c:31
+
+

References bsp_i2c_init(), image_display_task(), microphone_read_task(), and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ convert_to_rgb()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
uint16_t convert_to_rgb (uint8_t minval,
uint8_t maxval,
int8_t val )
+
+static
+
+ +

Definition at line 134 of file components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c.

+
135{
+
136 uint16_t result;
+
137
+
138 float i_f = (float)(val - minval) / (float)(maxval - minval) * 2;
+
139
+
140 int Ii = i_f;
+
141 float If = i_f - Ii;
+
142
+
143 int8_t *c1 = colors[Ii];
+
144 int8_t *c2 = colors[Ii + 1];
+
145 uint16_t res_colors[3];
+
146
+
147 res_colors[0] = c1[0] + If * (c2[0] - c1[0]);
+
148 res_colors[1] = c1[1] + If * (c2[1] - c1[1]);
+
149 res_colors[2] = c1[2] + If * (c2[2] - c1[2]);
+
150 result = res_colors[2] | (res_colors[1] << 5) | (res_colors[0] << 11);
+
151 return result;
+
152}
+ +
+

References colors.

+ +

Referenced by spectrum2d_picture().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ image_display_task()

+ +
+
+ + + + + +
+ + + + + + + +
void image_display_task (void * arg)
+
+static
+
+ +

Definition at line 229 of file components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c.

+
230{
+
231 // LV_IMG_DECLARE(img_screen_rgb);
+
232 lv_obj_t *img1 = lv_img_create(lv_scr_act());
+
233 lv_img_set_src(img1, &img_screen_rgb);
+ +
235 lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0);
+
236
+
237 for (;;) {
+
238 // Update image with new spectrum values
+ +
240 // Update screen with new image
+
241 lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0);
+
242 // Free CPU for a while
+
243 vTaskDelay(1);
+
244 }
+
245}
+ + + +
+

References img_screen_rgb, spectrum2d_picture(), and spectrum2d_picture_init().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ microphone_read_task()

+ +
+
+ + + + + +
+ + + + + + + +
void microphone_read_task (void * arg)
+
+static
+
+ +

Definition at line 39 of file components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c.

+
40{
+
41 esp_codec_dev_handle_t mic_codec_dev = NULL;
+
42 // Init board microphone
+
43 mic_codec_dev = bsp_audio_codec_microphone_init();
+
44 if (mic_codec_dev == NULL) {
+
45 ESP_LOGE(TAG, "Not possible to initialize microphone!");
+
46 return;
+
47 }
+
48
+
49 // Init esp-dsp library to use fft functionality
+ +
51 if (ret != ESP_OK) {
+
52 ESP_LOGE(TAG, "Not possible to initialize FFT esp-dsp from library!");
+
53 return;
+
54 }
+
55
+
56 esp_codec_dev_sample_info_t fs = {
+
57 .sample_rate = SAMPLE_RATE,
+
58 .channel = I2S_CHANNEL_NUM,
+
59 .channel_mask = 0,
+
60 .bits_per_sample = BITS_PER_CHANNEL,
+
61 };
+
62
+
63 int result = esp_codec_dev_open(mic_codec_dev, &fs);
+
64 if (result != ESP_OK) {
+
65 ESP_LOGE(TAG, "Not possible to open microphone!");
+
66 return;
+
67 }
+
68 // Set input microphone gain (from 1 to 100)
+
69 ESP_LOGI(TAG, "Adjust microphone input volume in the code here...");
+
70 result |= esp_codec_dev_set_in_gain(mic_codec_dev, 20.0);
+
71 if (result != ESP_OK) {
+
72 ESP_LOGE(TAG, "Not possible to set up microphone gain!");
+
73 return;
+
74 }
+
75
+
76 int audio_chunksize = BUFFER_PROCESS_SIZE;
+
77
+
78 // Allocate audio buffer and check for result
+
79 int16_t *audio_buffer = (int16_t *)memalign(16, (audio_chunksize + 16) * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
80 // Allocate buffer for window
+
81 int16_t *wind_buffer = (int16_t *)memalign(16, (audio_chunksize + 16) * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
82 // Generate window and convert it to int16_t
+ +
84 for (int i = 0 ; i < audio_chunksize; i++) {
+
85 wind_buffer[i * 2 + 0] = (int16_t)(result_data[i] * 32767);
+
86 wind_buffer[i * 2 + 1] = wind_buffer[i * 2 + 0];
+
87 }
+
88
+
89 while (true) {
+
90
+
91 // Read audio data from I2S bus
+
92 result = esp_codec_dev_read(mic_codec_dev, audio_buffer, audio_chunksize * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
93 // Multiply input stream with window coefficients
+
94 dsps_mul_s16_ansi(audio_buffer, wind_buffer, audio_buffer, audio_chunksize * 2, 1, 1, 1, 15);
+
95
+
96 // Call FFT bit reverse
+
97 dsps_fft2r_sc16_ae32(audio_buffer, audio_chunksize);
+
98 dsps_bit_rev_sc16_ansi(audio_buffer, audio_chunksize);
+
99 // Convert spectrum from two input channels to two
+
100 // spectrums for two channels.
+
101 dsps_cplx2reC_sc16(audio_buffer, audio_chunksize);
+
102
+
103 // The output data array presented as moving average for input in dB
+
104 for (int i = 0 ; i < audio_chunksize ; i++) {
+
105 float spectrum_sqr = audio_buffer[i * 2 + 0] * audio_buffer[i * 2 + 0] + audio_buffer[i * 2 + 1] * audio_buffer[i * 2 + 1];
+
106 float spectrum_dB = 10 * log10f(0.1 + spectrum_sqr);
+
107 // Multiply with sime coefficient for better view data on screen
+
108 spectrum_dB = 4 * spectrum_dB;
+
109 // Apply moving average of spectrum
+
110 result_data[i] = 0.8 * result_data[i] + 0.2 * spectrum_dB;
+
111 }
+
112 vTaskDelay(10);
+
113 }
+
114}
+ + + + + +
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define dsps_fft2r_sc16_ae32(data, N)
Definition dsps_fft2r.h:111
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_sc16(int16_t *fft_table_buff, int table_size)
+
esp_err_t dsps_bit_rev_sc16_ansi(int16_t *data, int N)
+
esp_err_t dsps_cplx2reC_sc16(int16_t *data, int N)
+
esp_err_t dsps_mul_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
Multiply two arrays.
+
void dsps_wind_blackman_harris_f32(float *window, int len)
Blackman-Harris window.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+

References BITS_PER_CHANNEL, BUFFER_PROCESS_SIZE, CONFIG_DSP_MAX_FFT_SIZE, dsps_bit_rev_sc16_ansi(), dsps_cplx2reC_sc16(), dsps_fft2r_init_sc16(), dsps_fft2r_sc16_ae32, dsps_mul_s16_ansi(), dsps_wind_blackman_harris_f32(), ESP_OK, I2S_CHANNEL_NUM, memalign, result_data, SAMPLE_RATE, and TAG.

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ spectrum2d_picture()

+ +
+
+ + + + + +
+ + + + + + + +
void spectrum2d_picture ()
+
+static
+
+ +

Definition at line 167 of file components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c.

+
168{
+
169 for (int y = 0 ; y < (img_screen_rgb.header.h - 1) ; y++) {
+
170 for (int x = 0 ; x < img_screen_rgb.header.w ; x++) {
+
171 for (int i = 0 ; i < LV_IMG_PX_SIZE_ALPHA_BYTE ; i++) {
+
172 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + i] = screen_rgb_data[((y + 1) * img_screen_rgb.header.w + x) * LV_IMG_PX_SIZE_ALPHA_BYTE + i];
+
173 }
+
174 }
+
175 }
+
176
+
177 // Add left channel to the screen
+
178 // The order of the values inverted
+
179 for (int x = 0 ; x < img_screen_rgb.header.w / 2 ; x++) {
+
180 // Get inverted index value
+
181 int in_index = img_screen_rgb.header.w / 2 - x - 1;
+
182 float data = result_data[in_index];
+
183
+
184 // Limit input data
+
185 if (data > 127) {
+
186 data = 127;
+
187 }
+
188 if (data < 0) {
+
189 data = 0;
+
190 }
+
191
+
192 // Convert input value in dB to the color
+
193 uint16_t color_val = convert_to_rgb(0, 128, data);
+
194 // Split 16 bit value to two bytes, to change the bytes order
+
195 uint8_t *ref_val = (uint8_t *)&color_val;
+
196 int out_index = x;
+
197 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = ref_val[1];
+
198 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = ref_val[0];
+
199 // Set alpha value
+
200 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
201 }
+
202
+
203 // Add right channel to the screen
+
204 for (int x = 0 ; x < img_screen_rgb.header.w / 2 ; x++) {
+
205 // Get index of right channel
+
206 int in_index = BUFFER_PROCESS_SIZE / 2 + x;
+
207 float data = result_data[in_index];
+
208
+
209 // Limit input data
+
210 if (data > 127) {
+
211 data = 127;
+
212 }
+
213 if (data < 0) {
+
214 data = 0;
+
215 }
+
216
+
217 // Convert input value in dB to the color
+
218 uint16_t color_val = convert_to_rgb(0, 128, data);
+
219 // Split 16 bit value to two bytes, to change the bytes order
+
220 uint8_t *ref_val = (uint8_t *)&color_val;
+
221 int out_index = img_screen_rgb.header.w / 2 + x;
+
222 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = ref_val[1];
+
223 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = ref_val[0];
+
224 // Set alpha value
+
225 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
226 }
+
227}
+
static uint8_t screen_rgb_data[(320) *(240) *LV_IMG_PX_SIZE_ALPHA_BYTE]
+
static uint16_t convert_to_rgb(uint8_t minval, uint8_t maxval, int8_t val)
+
static float data[128 *2]
Definition test_fft2r.c:34
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References BUFFER_PROCESS_SIZE, convert_to_rgb(), data, img_screen_rgb, result_data, screen_rgb_data, x, and y.

+ +

Referenced by image_display_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ spectrum2d_picture_init()

+ +
+
+ + + + + +
+ + + + + + + +
void spectrum2d_picture_init ()
+
+static
+
+ +

Definition at line 155 of file components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c.

+
156{
+
157 for (int y = 0 ; y < img_screen_rgb.header.h ; y++) {
+
158 for (int x = 0 ; x < img_screen_rgb.header.w ; x++) {
+
159 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = 0x0;
+
160 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = 0x1f;
+
161 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
162 }
+
163 }
+
164}
+
+

References img_screen_rgb, screen_rgb_data, x, and y.

+ +

Referenced by image_display_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ colors

+ +
+
+ + + + + +
+ + + + +
int8_t colors[3][3] = { {0, 0, 31}, {0, 63, 0}, {31, 0, 0} }
+
+static
+
+ +

Definition at line 133 of file components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c.

+
133{ {0, 0, 31}, {0, 63, 0}, {31, 0, 0} };
+
+

Referenced by convert_to_rgb(), and convert_to_rgb().

+ +
+
+ +

◆ img_screen_rgb

+ +
+
+ + + + + +
+ + + + +
const lv_img_dsc_t img_screen_rgb
+
+static
+
+Initial value:
= {
+
.header.always_zero = 0,
+
.header.w = (320) ,
+
.header.h = (240) ,
+
.data_size = (320) * (240) * LV_IMG_PX_SIZE_ALPHA_BYTE,
+
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
+
.data = screen_rgb_data,
+
}
+
+

Definition at line 123 of file components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c.

+
123 {
+
124 .header.always_zero = 0,
+
125 .header.w = X_AXIS_SIZE,
+
126 .header.h = Y_AXIS_SIZE,
+
127 .data_size = X_AXIS_SIZE * Y_AXIS_SIZE * LV_IMG_PX_SIZE_ALPHA_BYTE,
+
128 .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
+
129 .data = screen_rgb_data,
+
130};
+ + +
+

Referenced by image_display_task(), image_display_task(), spectrum2d_picture(), spectrum2d_picture(), spectrum2d_picture_init(), and spectrum2d_picture_init().

+ +
+
+ +

◆ result_data

+ +
+
+ + + + + +
+ + + + +
float result_data[512]
+
+static
+
+
+ +

◆ screen_rgb_data

+ +
+
+ + + + + +
+ + + + +
uint8_t screen_rgb_data[(320) *(240) *LV_IMG_PX_SIZE_ALPHA_BYTE]
+
+static
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "main"
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.js b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.js new file mode 100644 index 0000000..852854e --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.js @@ -0,0 +1,20 @@ +var components_2espressif____esp_dsp_2applications_2spectrum__box__lite_2main_2main_8c = +[ + [ "BITS_PER_CHANNEL", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#aa91100ca964f91765f0d34cad31904b0", null ], + [ "BUFFER_PROCESS_SIZE", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a90a3842e664e94ff48338b528e73608b", null ], + [ "I2S_CHANNEL_NUM", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#aeca615ae8606b553fa9734c8a5f9c3f8", null ], + [ "SAMPLE_RATE", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a4b76a0c2859cfd819a343a780070ee2b", null ], + [ "X_AXIS_SIZE", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a04d9881a0b9b1800af7f3e78438d5b76", null ], + [ "Y_AXIS_SIZE", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a56cf3a8ec6343d7c5c09db588810fd6d", null ], + [ "app_main", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a630544a7f0a2cc40d8a7fefab7e2fe70", null ], + [ "convert_to_rgb", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a7f8855b4c88c8357b7e3f1572ad8810a", null ], + [ "image_display_task", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a8a38eae9043f070fbd482ffa18f2fa22", null ], + [ "microphone_read_task", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a04947e47b733459d79baaebe3425c9dd", null ], + [ "spectrum2d_picture", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#aa8864347344fab858003e41128dbbc12", null ], + [ "spectrum2d_picture_init", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a956289103fb2f3c19f858abd3fca5bc7", null ], + [ "colors", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#abc7d09a990197e5aa41c6524fdcaf4f6", null ], + [ "img_screen_rgb", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a32808dbf8ce6e9086742c441c803c852", null ], + [ "result_data", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a8843e211fa8ba36b993967a41d6950b8", null ], + [ "screen_rgb_data", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a5778db3c1593241caff98f14b6fcc966", null ], + [ "TAG", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl.md5 new file mode 100644 index 0000000..293663b --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl.md5 @@ -0,0 +1 @@ +4f172321c5aca570b73b2e3d563641e9 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl.svg new file mode 100644 index 0000000..acc7449 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl.svg @@ -0,0 +1,1798 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +main.c + + +Node1 + + +main.c + + + + + +Node2 + + +dirent.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +bsp/esp-bsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node12 + + +esp_err.h + + + + + +Node1->Node12 + + + + + + + + +Node75 + + +freertos/FreeRTOS.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +freertos/task.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +freertos/semphr.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +esp_system.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +esp_timer.h + + + + + +Node1->Node79 + + + + + + + + +Node80 + + +malloc.h + + + + + +Node1->Node80 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node5 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node5 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl_org.svg new file mode 100644 index 0000000..a4fd6c3 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c__incl_org.svg @@ -0,0 +1,1715 @@ + + + + + + +main.c + + +Node1 + + +main.c + + + + + +Node2 + + +dirent.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +bsp/esp-bsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node12 + + +esp_err.h + + + + + +Node1->Node12 + + + + + + + + +Node75 + + +freertos/FreeRTOS.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +freertos/task.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +freertos/semphr.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +esp_system.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +esp_timer.h + + + + + +Node1->Node79 + + + + + + + + +Node80 + + +malloc.h + + + + + +Node1->Node80 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node5 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node5 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.md5 new file mode 100644 index 0000000..2140557 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.md5 @@ -0,0 +1 @@ +e04f9c8c5b92ed91e0f61b93f99b0cab \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.svg new file mode 100644 index 0000000..8552dbf --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.svg @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +microphone_read_task + + +Node1 + + +microphone_read_task + + + + + +Node2 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_cplx2reC_sc16 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +dsps_mul_s16_ansi + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5->Node2 + + + + + + + + +Node6 + + +dsps_gen_w_r2_sc16 + + + + + +Node5->Node6 + + + + + + + + +Node6->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph_org.svg new file mode 100644 index 0000000..222a35d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph_org.svg @@ -0,0 +1,175 @@ + + + + + + +microphone_read_task + + +Node1 + + +microphone_read_task + + + + + +Node2 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_cplx2reC_sc16 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +dsps_mul_s16_ansi + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5->Node2 + + + + + + + + +Node6 + + +dsps_gen_w_r2_sc16 + + + + + +Node5->Node6 + + + + + + + + +Node6->Node3 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph.md5 new file mode 100644 index 0000000..cb10776 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph.md5 @@ -0,0 +1 @@ +065b29d8c80b45aa82e0d3a192a6d1c1 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph.svg new file mode 100644 index 0000000..fda97db --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +microphone_read_task + + +Node1 + + +microphone_read_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph_org.svg new file mode 100644 index 0000000..c5f966d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +microphone_read_task + + +Node1 + + +microphone_read_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 new file mode 100644 index 0000000..83c627f --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 @@ -0,0 +1 @@ +9c72fbccbc3e808dadf081cce12800da \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg new file mode 100644 index 0000000..11c3dff --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg @@ -0,0 +1,366 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +image_display_task + + + + + +Node1->Node3 + + + + + + + + +Node7 + + +microphone_read_task + + + + + +Node1->Node7 + + + + + + + + +Node4 + + +spectrum2d_picture + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +spectrum2d_picture_init + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +convert_to_rgb + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +dsps_bit_rev_sc16_ansi + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +dsps_cplx2reC_sc16 + + + + + +Node7->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_init_sc16 + + + + + +Node7->Node11 + + + + + + + + +Node13 + + +dsps_mul_s16_ansi + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node7->Node14 + + + + + + + + +Node9 + + +dsp_is_power_of_two + + + + + +Node8->Node9 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11->Node8 + + + + + + + + +Node12 + + +dsps_gen_w_r2_sc16 + + + + + +Node11->Node12 + + + + + + + + +Node12->Node9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg new file mode 100644 index 0000000..694bcf7 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg @@ -0,0 +1,283 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +image_display_task + + + + + +Node1->Node3 + + + + + + + + +Node7 + + +microphone_read_task + + + + + +Node1->Node7 + + + + + + + + +Node4 + + +spectrum2d_picture + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +spectrum2d_picture_init + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +convert_to_rgb + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +dsps_bit_rev_sc16_ansi + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +dsps_cplx2reC_sc16 + + + + + +Node7->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_init_sc16 + + + + + +Node7->Node11 + + + + + + + + +Node13 + + +dsps_mul_s16_ansi + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node7->Node14 + + + + + + + + +Node9 + + +dsp_is_power_of_two + + + + + +Node8->Node9 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11->Node8 + + + + + + + + +Node12 + + +dsps_gen_w_r2_sc16 + + + + + +Node11->Node12 + + + + + + + + +Node12->Node9 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 new file mode 100644 index 0000000..d953e5f --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 @@ -0,0 +1 @@ +c06d9cbe34e7d77b2cff509cdf4105e0 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.svg new file mode 100644 index 0000000..03aa82b --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +convert_to_rgb + + +Node1 + + +convert_to_rgb + + + + + +Node2 + + +spectrum2d_picture + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +image_display_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph_org.svg new file mode 100644 index 0000000..0f96c6e --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +convert_to_rgb + + +Node1 + + +convert_to_rgb + + + + + +Node2 + + +spectrum2d_picture + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +image_display_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 new file mode 100644 index 0000000..8567fd7 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 @@ -0,0 +1 @@ +b7da0ea03c2fb3a8def83945757899ef \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.svg new file mode 100644 index 0000000..acf99d0 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +image_display_task + + +Node1 + + +image_display_task + + + + + +Node2 + + +spectrum2d_picture + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +spectrum2d_picture_init + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +convert_to_rgb + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph_org.svg new file mode 100644 index 0000000..cf7e789 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +image_display_task + + +Node1 + + +image_display_task + + + + + +Node2 + + +spectrum2d_picture + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +spectrum2d_picture_init + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +convert_to_rgb + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph.md5 new file mode 100644 index 0000000..29fb3f3 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph.md5 @@ -0,0 +1 @@ +1a2a1cd792976c2f2c857a0ea9b79d02 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph.svg new file mode 100644 index 0000000..f3521e5 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +image_display_task + + +Node1 + + +image_display_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph_org.svg new file mode 100644 index 0000000..66e55bf --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +image_display_task + + +Node1 + + +image_display_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.md5 new file mode 100644 index 0000000..1a9975f --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.md5 @@ -0,0 +1 @@ +644f725194ec4d113b140468fe54efee \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.svg new file mode 100644 index 0000000..8003f4d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +spectrum2d_picture_init + + +Node1 + + +spectrum2d_picture_init + + + + + +Node2 + + +image_display_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph_org.svg new file mode 100644 index 0000000..45e9586 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +spectrum2d_picture_init + + +Node1 + + +spectrum2d_picture_init + + + + + +Node2 + + +image_display_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.md5 new file mode 100644 index 0000000..c74308f --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.md5 @@ -0,0 +1 @@ +a025995f94aa4f656fd2f62ee5d9df6b \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.svg new file mode 100644 index 0000000..fbf1cc7 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +spectrum2d_picture + + +Node1 + + +spectrum2d_picture + + + + + +Node2 + + +convert_to_rgb + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph_org.svg new file mode 100644 index 0000000..dd82cdd --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +spectrum2d_picture + + +Node1 + + +spectrum2d_picture + + + + + +Node2 + + +convert_to_rgb + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.md5 new file mode 100644 index 0000000..3311c2a --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.md5 @@ -0,0 +1 @@ +83917ec4082bc1bf7e866ea138fa160d \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.svg new file mode 100644 index 0000000..a156078 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +spectrum2d_picture + + +Node1 + + +spectrum2d_picture + + + + + +Node2 + + +image_display_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph_org.svg new file mode 100644 index 0000000..0b30372 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +spectrum2d_picture + + +Node1 + + +spectrum2d_picture + + + + + +Node2 + + +image_display_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_source.html b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_source.html new file mode 100644 index 0000000..fa2318a --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c_source.html @@ -0,0 +1,423 @@ + + + + + + + +ESP-IDF Firmware: main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: CC0-1.0
+
5 */
+
6
+
7#include <dirent.h>
+
8#include <math.h>
+
9
+
10#include "bsp/esp-bsp.h"
+
11#include "esp_log.h"
+
12#include "esp_dsp.h"
+
13
+
14#include "freertos/FreeRTOS.h"
+
15#include "freertos/task.h"
+
16#include "freertos/semphr.h"
+
17
+
18#include "esp_system.h"
+
19#include "esp_err.h"
+
20#include "esp_log.h"
+
21#include "esp_timer.h"
+
22#include <malloc.h>
+
23
+
24// Amount of audio channels
+
25#define I2S_CHANNEL_NUM (2)
+
26// Microphone Sample rate
+
27#define SAMPLE_RATE (10000)
+
28
+
29#define BITS_PER_CHANNEL 16
+
30// Input buffer size
+
31#define BUFFER_PROCESS_SIZE 512
+
32
+
33static const char *TAG = "main";
+
34
+
35// Buffer to process output spectrum
+ +
37
+
38// Microphone read task
+
+
39static void microphone_read_task(void *arg)
+
40{
+
41 esp_codec_dev_handle_t mic_codec_dev = NULL;
+
42 // Init board microphone
+
43 mic_codec_dev = bsp_audio_codec_microphone_init();
+
44 if (mic_codec_dev == NULL) {
+
45 ESP_LOGE(TAG, "Not possible to initialize microphone!");
+
46 return;
+
47 }
+
48
+
49 // Init esp-dsp library to use fft functionality
+ +
51 if (ret != ESP_OK) {
+
52 ESP_LOGE(TAG, "Not possible to initialize FFT esp-dsp from library!");
+
53 return;
+
54 }
+
55
+
56 esp_codec_dev_sample_info_t fs = {
+
57 .sample_rate = SAMPLE_RATE,
+
58 .channel = I2S_CHANNEL_NUM,
+
59 .channel_mask = 0,
+
60 .bits_per_sample = BITS_PER_CHANNEL,
+
61 };
+
62
+
63 int result = esp_codec_dev_open(mic_codec_dev, &fs);
+
64 if (result != ESP_OK) {
+
65 ESP_LOGE(TAG, "Not possible to open microphone!");
+
66 return;
+
67 }
+
68 // Set input microphone gain (from 1 to 100)
+
69 ESP_LOGI(TAG, "Adjust microphone input volume in the code here...");
+
70 result |= esp_codec_dev_set_in_gain(mic_codec_dev, 20.0);
+
71 if (result != ESP_OK) {
+
72 ESP_LOGE(TAG, "Not possible to set up microphone gain!");
+
73 return;
+
74 }
+
75
+
76 int audio_chunksize = BUFFER_PROCESS_SIZE;
+
77
+
78 // Allocate audio buffer and check for result
+
79 int16_t *audio_buffer = (int16_t *)memalign(16, (audio_chunksize + 16) * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
80 // Allocate buffer for window
+
81 int16_t *wind_buffer = (int16_t *)memalign(16, (audio_chunksize + 16) * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
82 // Generate window and convert it to int16_t
+ +
84 for (int i = 0 ; i < audio_chunksize; i++) {
+
85 wind_buffer[i * 2 + 0] = (int16_t)(result_data[i] * 32767);
+
86 wind_buffer[i * 2 + 1] = wind_buffer[i * 2 + 0];
+
87 }
+
88
+
89 while (true) {
+
90
+
91 // Read audio data from I2S bus
+
92 result = esp_codec_dev_read(mic_codec_dev, audio_buffer, audio_chunksize * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
93 // Multiply input stream with window coefficients
+
94 dsps_mul_s16_ansi(audio_buffer, wind_buffer, audio_buffer, audio_chunksize * 2, 1, 1, 1, 15);
+
95
+
96 // Call FFT bit reverse
+
97 dsps_fft2r_sc16_ae32(audio_buffer, audio_chunksize);
+
98 dsps_bit_rev_sc16_ansi(audio_buffer, audio_chunksize);
+
99 // Convert spectrum from two input channels to two
+
100 // spectrums for two channels.
+
101 dsps_cplx2reC_sc16(audio_buffer, audio_chunksize);
+
102
+
103 // The output data array presented as moving average for input in dB
+
104 for (int i = 0 ; i < audio_chunksize ; i++) {
+
105 float spectrum_sqr = audio_buffer[i * 2 + 0] * audio_buffer[i * 2 + 0] + audio_buffer[i * 2 + 1] * audio_buffer[i * 2 + 1];
+
106 float spectrum_dB = 10 * log10f(0.1 + spectrum_sqr);
+
107 // Multiply with sime coefficient for better view data on screen
+
108 spectrum_dB = 4 * spectrum_dB;
+
109 // Apply moving average of spectrum
+
110 result_data[i] = 0.8 * result_data[i] + 0.2 * spectrum_dB;
+
111 }
+
112 vTaskDelay(10);
+
113 }
+
114}
+
+
115
+
116// Screen image width
+
117#define X_AXIS_SIZE (320)
+
118// Screen image height
+
119#define Y_AXIS_SIZE (240)
+
120
+
121static uint8_t screen_rgb_data[X_AXIS_SIZE * Y_AXIS_SIZE * LV_IMG_PX_SIZE_ALPHA_BYTE];
+
122
+
+
123static const lv_img_dsc_t img_screen_rgb = {
+
124 .header.always_zero = 0,
+
125 .header.w = X_AXIS_SIZE,
+
126 .header.h = Y_AXIS_SIZE,
+
127 .data_size = X_AXIS_SIZE * Y_AXIS_SIZE * LV_IMG_PX_SIZE_ALPHA_BYTE,
+
128 .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
+
129 .data = screen_rgb_data,
+
130};
+
+
131
+
132// The function convert value to RGB565 color value
+
133static int8_t colors[3][3] = { {0, 0, 31}, {0, 63, 0}, {31, 0, 0} };
+
+
134static uint16_t convert_to_rgb(uint8_t minval, uint8_t maxval, int8_t val)
+
135{
+
136 uint16_t result;
+
137
+
138 float i_f = (float)(val - minval) / (float)(maxval - minval) * 2;
+
139
+
140 int Ii = i_f;
+
141 float If = i_f - Ii;
+
142
+
143 int8_t *c1 = colors[Ii];
+
144 int8_t *c2 = colors[Ii + 1];
+
145 uint16_t res_colors[3];
+
146
+
147 res_colors[0] = c1[0] + If * (c2[0] - c1[0]);
+
148 res_colors[1] = c1[1] + If * (c2[1] - c1[1]);
+
149 res_colors[2] = c1[2] + If * (c2[2] - c1[2]);
+
150 result = res_colors[2] | (res_colors[1] << 5) | (res_colors[0] << 11);
+
151 return result;
+
152}
+
+
153
+
154// Init screen with blue values
+
+ +
156{
+
157 for (int y = 0 ; y < img_screen_rgb.header.h ; y++) {
+
158 for (int x = 0 ; x < img_screen_rgb.header.w ; x++) {
+
159 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = 0x0;
+
160 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = 0x1f;
+
161 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
162 }
+
163 }
+
164}
+
+
165
+
166// Add spectrum data to the screen
+
+ +
168{
+
169 for (int y = 0 ; y < (img_screen_rgb.header.h - 1) ; y++) {
+
170 for (int x = 0 ; x < img_screen_rgb.header.w ; x++) {
+
171 for (int i = 0 ; i < LV_IMG_PX_SIZE_ALPHA_BYTE ; i++) {
+
172 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + i] = screen_rgb_data[((y + 1) * img_screen_rgb.header.w + x) * LV_IMG_PX_SIZE_ALPHA_BYTE + i];
+
173 }
+
174 }
+
175 }
+
176
+
177 // Add left channel to the screen
+
178 // The order of the values inverted
+
179 for (int x = 0 ; x < img_screen_rgb.header.w / 2 ; x++) {
+
180 // Get inverted index value
+
181 int in_index = img_screen_rgb.header.w / 2 - x - 1;
+
182 float data = result_data[in_index];
+
183
+
184 // Limit input data
+
185 if (data > 127) {
+
186 data = 127;
+
187 }
+
188 if (data < 0) {
+
189 data = 0;
+
190 }
+
191
+
192 // Convert input value in dB to the color
+
193 uint16_t color_val = convert_to_rgb(0, 128, data);
+
194 // Split 16 bit value to two bytes, to change the bytes order
+
195 uint8_t *ref_val = (uint8_t *)&color_val;
+
196 int out_index = x;
+
197 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = ref_val[1];
+
198 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = ref_val[0];
+
199 // Set alpha value
+
200 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
201 }
+
202
+
203 // Add right channel to the screen
+
204 for (int x = 0 ; x < img_screen_rgb.header.w / 2 ; x++) {
+
205 // Get index of right channel
+
206 int in_index = BUFFER_PROCESS_SIZE / 2 + x;
+
207 float data = result_data[in_index];
+
208
+
209 // Limit input data
+
210 if (data > 127) {
+
211 data = 127;
+
212 }
+
213 if (data < 0) {
+
214 data = 0;
+
215 }
+
216
+
217 // Convert input value in dB to the color
+
218 uint16_t color_val = convert_to_rgb(0, 128, data);
+
219 // Split 16 bit value to two bytes, to change the bytes order
+
220 uint8_t *ref_val = (uint8_t *)&color_val;
+
221 int out_index = img_screen_rgb.header.w / 2 + x;
+
222 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = ref_val[1];
+
223 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = ref_val[0];
+
224 // Set alpha value
+
225 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
226 }
+
227}
+
+
228
+
+
229static void image_display_task(void *arg)
+
230{
+
231 // LV_IMG_DECLARE(img_screen_rgb);
+
232 lv_obj_t *img1 = lv_img_create(lv_scr_act());
+
233 lv_img_set_src(img1, &img_screen_rgb);
+ +
235 lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0);
+
236
+
237 for (;;) {
+
238 // Update image with new spectrum values
+ +
240 // Update screen with new image
+
241 lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0);
+
242 // Free CPU for a while
+
243 vTaskDelay(1);
+
244 }
+
245}
+
+
246
+
+
247void app_main(void)
+
248{
+
249 /* Initialize I2C (for touch and audio) */
+
250 bsp_i2c_init();
+
251
+
252 /* Initialize display and LVGL */
+
253 bsp_display_start();
+
254
+
255 /* Set display brightness to 100% */
+
256 bsp_display_backlight_on();
+
257
+
258 int ret_val = xTaskCreatePinnedToCore(&microphone_read_task, "Microphone read Task", 8 * 1024, NULL, 3, NULL, 0);
+
259 if (ret_val != pdPASS) {
+
260 ESP_LOGE(TAG, "Not possible to allocate microphone task, ret_val = %i", ret_val);
+
261 return;
+
262 }
+
263
+
264 ret_val = xTaskCreatePinnedToCore(&image_display_task, "Draw task", 10 * 1024, NULL, 5, NULL, 1);
+
265 if (ret_val != pdPASS) {
+
266 ESP_LOGE(TAG, "Not possible to allocate microphone task, ret_val= %i", ret_val);
+
267 return;
+
268 }
+
269}
+
+ + + + + + +
static uint8_t screen_rgb_data[(320) *(240) *LV_IMG_PX_SIZE_ALPHA_BYTE]
+ +
static uint16_t convert_to_rgb(uint8_t minval, uint8_t maxval, int8_t val)
+ + + + + + + + +
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define dsps_fft2r_sc16_ae32(data, N)
Definition dsps_fft2r.h:111
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_sc16(int16_t *fft_table_buff, int table_size)
+
esp_err_t dsps_bit_rev_sc16_ansi(int16_t *data, int N)
+
esp_err_t dsps_cplx2reC_sc16(int16_t *data, int N)
+
esp_err_t dsps_mul_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
Multiply two arrays.
+
void dsps_wind_blackman_harris_f32(float *window, int len)
Blackman-Harris window.
+ + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
static const char * TAG
Definition main/main.c:31
+
static float data[128 *2]
Definition test_fft2r.c:34
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html new file mode 100644 index 0000000..f71ece2 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html @@ -0,0 +1,841 @@ + + + + + + + +ESP-IDF Firmware: main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main.c File Reference
+
+
+
#include <dirent.h>
+#include <math.h>
+#include "bsp/esp-bsp.h"
+#include "esp_log.h"
+#include "esp_dsp.h"
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "freertos/semphr.h"
+#include "esp_system.h"
+#include "esp_err.h"
+#include "esp_timer.h"
+#include <malloc.h>
+
+Include dependency graph for components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + +

+Macros

#define I2S_CHANNEL_NUM   (2)
#define SAMPLE_RATE   (10000)
#define BITS_PER_CHANNEL   16
#define BUFFER_PROCESS_SIZE   512
#define X_AXIS_SIZE   (320)
#define Y_AXIS_SIZE   (240)
+ + + + + + + +

+Functions

static void microphone_read_task (void *arg)
static uint16_t convert_to_rgb (uint8_t minval, uint8_t maxval, int8_t val)
static void spectrum2d_picture_init ()
static void spectrum2d_picture ()
static void image_display_task (void *arg)
void app_main (void)
+ + + + + + +

+Variables

static const char * TAG = "main"
static float result_data [512]
static uint8_t screen_rgb_data [(320) *(240) *LV_IMG_PX_SIZE_ALPHA_BYTE]
static const lv_img_dsc_t img_screen_rgb
static int8_t colors [3][3] = { {0, 0, 31}, {0, 63, 0}, {31, 0, 0} }
+

Macro Definition Documentation

+ +

◆ BITS_PER_CHANNEL

+ +
+
+ + + + +
#define BITS_PER_CHANNEL   16
+
+
+ +

◆ BUFFER_PROCESS_SIZE

+ +
+
+ + + + +
#define BUFFER_PROCESS_SIZE   512
+
+
+ +

◆ I2S_CHANNEL_NUM

+ +
+
+ + + + +
#define I2S_CHANNEL_NUM   (2)
+
+
+ +

◆ SAMPLE_RATE

+ +
+
+ + + + +
#define SAMPLE_RATE   (10000)
+
+
+ +

◆ X_AXIS_SIZE

+ +
+
+ + + + +
#define X_AXIS_SIZE   (320)
+
+
+ +

◆ Y_AXIS_SIZE

+ +
+
+ + + + +
#define Y_AXIS_SIZE   (240)
+
+
+

Function Documentation

+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 247 of file components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c.

+
248{
+
249 /* Initialize I2C (for touch and audio) */
+
250 bsp_i2c_init();
+
251
+
252 /* Initialize display and LVGL */
+
253 bsp_display_start();
+
254
+
255 /* Set display brightness to 100% */
+
256 bsp_display_backlight_on();
+
257
+
258 int ret_val = xTaskCreatePinnedToCore(&microphone_read_task, "Microphone read Task", 8 * 1024, NULL, 3, NULL, 0);
+
259 if (ret_val != pdPASS) {
+
260 ESP_LOGE(TAG, "Not possible to allocate microphone task, ret_val = %i", ret_val);
+
261 return;
+
262 }
+
263
+
264 ret_val = xTaskCreatePinnedToCore(&image_display_task, "Draw task", 10 * 1024, NULL, 5, NULL, 1);
+
265 if (ret_val != pdPASS) {
+
266 ESP_LOGE(TAG, "Not possible to allocate microphone task, ret_val= %i", ret_val);
+
267 return;
+
268 }
+
269}
+ + + +
static const char * TAG
Definition main/main.c:31
+
+

References bsp_i2c_init(), image_display_task(), microphone_read_task(), and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ convert_to_rgb()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
uint16_t convert_to_rgb (uint8_t minval,
uint8_t maxval,
int8_t val )
+
+static
+
+ +

Definition at line 134 of file components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c.

+
135{
+
136 uint16_t result;
+
137
+
138 float i_f = (float)(val - minval) / (float)(maxval - minval) * 2;
+
139
+
140 int Ii = i_f;
+
141 float If = i_f - Ii;
+
142
+
143 int8_t *c1 = colors[Ii];
+
144 int8_t *c2 = colors[Ii + 1];
+
145 uint16_t res_colors[3];
+
146
+
147 res_colors[0] = c1[0] + If * (c2[0] - c1[0]);
+
148 res_colors[1] = c1[1] + If * (c2[1] - c1[1]);
+
149 res_colors[2] = c1[2] + If * (c2[2] - c1[2]);
+
150 result = res_colors[2] | (res_colors[1] << 5) | (res_colors[0] << 11);
+
151 return result;
+
152}
+ +
+

References colors.

+ +

Referenced by spectrum2d_picture().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ image_display_task()

+ +
+
+ + + + + +
+ + + + + + + +
void image_display_task (void * arg)
+
+static
+
+ +

Definition at line 229 of file components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c.

+
230{
+
231 // LV_IMG_DECLARE(img_screen_rgb);
+
232 lv_obj_t *img1 = lv_img_create(lv_scr_act());
+
233 lv_img_set_src(img1, &img_screen_rgb);
+ +
235 lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0);
+
236
+
237 for (;;) {
+
238 // Update image with new spectrum values
+ +
240 // Update screen with new image
+
241 lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0);
+
242 // Free CPU for a while
+
243 vTaskDelay(1);
+
244 }
+
245}
+ + + +
+

References img_screen_rgb, spectrum2d_picture(), and spectrum2d_picture_init().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ microphone_read_task()

+ +
+
+ + + + + +
+ + + + + + + +
void microphone_read_task (void * arg)
+
+static
+
+ +

Definition at line 39 of file components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c.

+
40{
+
41 esp_codec_dev_handle_t mic_codec_dev = NULL;
+
42 // Init board microphone
+
43 mic_codec_dev = bsp_audio_codec_microphone_init();
+
44 if (mic_codec_dev == NULL) {
+
45 ESP_LOGE(TAG, "Not possible to initialize microphone!");
+
46 return;
+
47 }
+
48
+
49 // Init esp-dsp library to use fft functionality
+ +
51 if (ret != ESP_OK) {
+
52 ESP_LOGE(TAG, "Not possible to initialize FFT esp-dsp from library!");
+
53 return;
+
54 }
+
55
+
56 esp_codec_dev_sample_info_t fs = {
+
57 .sample_rate = SAMPLE_RATE,
+
58 .channel = I2S_CHANNEL_NUM,
+
59 .channel_mask = 0,
+
60 .bits_per_sample = BITS_PER_CHANNEL,
+
61 };
+
62
+
63 int result = esp_codec_dev_open(mic_codec_dev, &fs);
+
64 if (result != ESP_OK) {
+
65 ESP_LOGE(TAG, "Not possible to open microphone!");
+
66 return;
+
67 }
+
68 // Set input microphone gain (from 1 to 100)
+
69 ESP_LOGI(TAG, "Adjust microphone input volume in the code here...");
+
70 result |= esp_codec_dev_set_in_gain(mic_codec_dev, 20.0);
+
71 if (result != ESP_OK) {
+
72 ESP_LOGE(TAG, "Not possible to set up microphone gain!");
+
73 return;
+
74 }
+
75
+
76 int audio_chunksize = BUFFER_PROCESS_SIZE;
+
77
+
78 // Allocate audio buffer and check for result
+
79 int16_t *audio_buffer = (int16_t *)memalign(16, (audio_chunksize + 16) * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
80 // Allocate buffer for window
+
81 int16_t *wind_buffer = (int16_t *)memalign(16, (audio_chunksize + 16) * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
82 // Generate window and convert it to int16_t
+ +
84 for (int i = 0 ; i < audio_chunksize; i++) {
+
85 wind_buffer[i * 2 + 0] = (int16_t)(result_data[i] * 32767);
+
86 wind_buffer[i * 2 + 1] = wind_buffer[i * 2 + 0];
+
87 }
+
88
+
89 while (true) {
+
90
+
91 // Read audio data from I2S bus
+
92 result = esp_codec_dev_read(mic_codec_dev, audio_buffer, audio_chunksize * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
93 // Multiply input stream with window coefficients
+
94 dsps_mul_s16_ansi(audio_buffer, wind_buffer, audio_buffer, audio_chunksize * 2, 1, 1, 1, 15);
+
95
+
96 // Call FFT bit reverse
+
97 dsps_fft2r_sc16_ae32(audio_buffer, audio_chunksize);
+
98 dsps_bit_rev_sc16_ansi(audio_buffer, audio_chunksize);
+
99 // Convert spectrum from two input channels to two
+
100 // spectrums for two channels.
+
101 dsps_cplx2reC_sc16(audio_buffer, audio_chunksize);
+
102
+
103 // The output data array presented as moving average for input in dB
+
104 for (int i = 0 ; i < audio_chunksize ; i++) {
+
105 float spectrum_sqr = audio_buffer[i * 2 + 0] * audio_buffer[i * 2 + 0] + audio_buffer[i * 2 + 1] * audio_buffer[i * 2 + 1];
+
106 float spectrum_dB = 10 * log10f(0.1 + spectrum_sqr);
+
107 // Multiply with sime coefficient for better view data on screen
+
108 spectrum_dB = 4 * spectrum_dB;
+
109 // Apply moving average of spectrum
+
110 result_data[i] = 0.8 * result_data[i] + 0.2 * spectrum_dB;
+
111 }
+
112 vTaskDelay(10);
+
113 }
+
114}
+ + + + + +
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define dsps_fft2r_sc16_ae32(data, N)
Definition dsps_fft2r.h:111
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_sc16(int16_t *fft_table_buff, int table_size)
+
esp_err_t dsps_bit_rev_sc16_ansi(int16_t *data, int N)
+
esp_err_t dsps_cplx2reC_sc16(int16_t *data, int N)
+
esp_err_t dsps_mul_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
Multiply two arrays.
+
void dsps_wind_blackman_harris_f32(float *window, int len)
Blackman-Harris window.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+

References BITS_PER_CHANNEL, BUFFER_PROCESS_SIZE, CONFIG_DSP_MAX_FFT_SIZE, dsps_bit_rev_sc16_ansi(), dsps_cplx2reC_sc16(), dsps_fft2r_init_sc16(), dsps_fft2r_sc16_ae32, dsps_mul_s16_ansi(), dsps_wind_blackman_harris_f32(), ESP_OK, I2S_CHANNEL_NUM, memalign, result_data, SAMPLE_RATE, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ spectrum2d_picture()

+ +
+
+ + + + + +
+ + + + + + + +
void spectrum2d_picture ()
+
+static
+
+ +

Definition at line 167 of file components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c.

+
168{
+
169 for (int y = 0 ; y < (img_screen_rgb.header.h - 1) ; y++) {
+
170 for (int x = 0 ; x < img_screen_rgb.header.w ; x++) {
+
171 for (int i = 0 ; i < LV_IMG_PX_SIZE_ALPHA_BYTE ; i++) {
+
172 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + i] = screen_rgb_data[((y + 1) * img_screen_rgb.header.w + x) * LV_IMG_PX_SIZE_ALPHA_BYTE + i];
+
173 }
+
174 }
+
175 }
+
176
+
177 // Add left channel to the screen
+
178 // The order of the values inverted
+
179 for (int x = 0 ; x < img_screen_rgb.header.w / 2 ; x++) {
+
180 // Get inverted index value
+
181 int in_index = img_screen_rgb.header.w / 2 - x - 1;
+
182 float data = result_data[in_index];
+
183
+
184 // Limit input data
+
185 if (data > 127) {
+
186 data = 127;
+
187 }
+
188 if (data < 0) {
+
189 data = 0;
+
190 }
+
191
+
192 // Convert input value in dB to the color
+
193 uint16_t color_val = convert_to_rgb(0, 128, data);
+
194 // Split 16 bit value to two bytes, to change the bytes order
+
195 uint8_t *ref_val = (uint8_t *)&color_val;
+
196 int out_index = x;
+
197 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = ref_val[1];
+
198 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = ref_val[0];
+
199 // Set alpha value
+
200 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
201 }
+
202
+
203 // Add right channel to the screen
+
204 for (int x = 0 ; x < img_screen_rgb.header.w / 2 ; x++) {
+
205 // Get index of right channel
+
206 int in_index = BUFFER_PROCESS_SIZE / 2 + x;
+
207 float data = result_data[in_index];
+
208
+
209 // Limit input data
+
210 if (data > 127) {
+
211 data = 127;
+
212 }
+
213 if (data < 0) {
+
214 data = 0;
+
215 }
+
216
+
217 // Convert input value in dB to the color
+
218 uint16_t color_val = convert_to_rgb(0, 128, data);
+
219 // Split 16 bit value to two bytes, to change the bytes order
+
220 uint8_t *ref_val = (uint8_t *)&color_val;
+
221 int out_index = img_screen_rgb.header.w / 2 + x;
+
222 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = ref_val[1];
+
223 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = ref_val[0];
+
224 // Set alpha value
+
225 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
226 }
+
227}
+
static uint8_t screen_rgb_data[(320) *(240) *LV_IMG_PX_SIZE_ALPHA_BYTE]
+
static uint16_t convert_to_rgb(uint8_t minval, uint8_t maxval, int8_t val)
+
static float data[128 *2]
Definition test_fft2r.c:34
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References BUFFER_PROCESS_SIZE, convert_to_rgb(), data, img_screen_rgb, result_data, screen_rgb_data, x, and y.

+ +

Referenced by image_display_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ spectrum2d_picture_init()

+ +
+
+ + + + + +
+ + + + + + + +
void spectrum2d_picture_init ()
+
+static
+
+ +

Definition at line 155 of file components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c.

+
156{
+
157 for (int y = 0 ; y < img_screen_rgb.header.h ; y++) {
+
158 for (int x = 0 ; x < img_screen_rgb.header.w ; x++) {
+
159 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = 0x0;
+
160 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = 0x1f;
+
161 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
162 }
+
163 }
+
164}
+
+

References img_screen_rgb, screen_rgb_data, x, and y.

+ +

Referenced by image_display_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ colors

+ +
+
+ + + + + +
+ + + + +
int8_t colors[3][3] = { {0, 0, 31}, {0, 63, 0}, {31, 0, 0} }
+
+static
+
+ +

Definition at line 133 of file components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c.

+
133{ {0, 0, 31}, {0, 63, 0}, {31, 0, 0} };
+
+
+
+ +

◆ img_screen_rgb

+ +
+
+ + + + + +
+ + + + +
const lv_img_dsc_t img_screen_rgb
+
+static
+
+Initial value:
= {
+
.header.always_zero = 0,
+
.header.w = (320) ,
+
.header.h = (240) ,
+
.data_size = (320) * (240) * LV_IMG_PX_SIZE_ALPHA_BYTE,
+
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
+
.data = screen_rgb_data,
+
}
+
+

Definition at line 123 of file components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c.

+
123 {
+
124 .header.always_zero = 0,
+
125 .header.w = X_AXIS_SIZE,
+
126 .header.h = Y_AXIS_SIZE,
+
127 .data_size = X_AXIS_SIZE * Y_AXIS_SIZE * LV_IMG_PX_SIZE_ALPHA_BYTE,
+
128 .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
+
129 .data = screen_rgb_data,
+
130};
+ + +
+
+
+ +

◆ result_data

+ +
+
+ + + + + +
+ + + + +
float result_data[512]
+
+static
+
+
+ +

◆ screen_rgb_data

+ +
+
+ + + + + +
+ + + + +
uint8_t screen_rgb_data[(320) *(240) *LV_IMG_PX_SIZE_ALPHA_BYTE]
+
+static
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "main"
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.js b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.js new file mode 100644 index 0000000..724d01d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.js @@ -0,0 +1,20 @@ +var components_2espressif____esp_dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c = +[ + [ "BITS_PER_CHANNEL", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#aa91100ca964f91765f0d34cad31904b0", null ], + [ "BUFFER_PROCESS_SIZE", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a90a3842e664e94ff48338b528e73608b", null ], + [ "I2S_CHANNEL_NUM", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#aeca615ae8606b553fa9734c8a5f9c3f8", null ], + [ "SAMPLE_RATE", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a4b76a0c2859cfd819a343a780070ee2b", null ], + [ "X_AXIS_SIZE", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a04d9881a0b9b1800af7f3e78438d5b76", null ], + [ "Y_AXIS_SIZE", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a56cf3a8ec6343d7c5c09db588810fd6d", null ], + [ "app_main", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a630544a7f0a2cc40d8a7fefab7e2fe70", null ], + [ "convert_to_rgb", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a7f8855b4c88c8357b7e3f1572ad8810a", null ], + [ "image_display_task", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a8a38eae9043f070fbd482ffa18f2fa22", null ], + [ "microphone_read_task", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a04947e47b733459d79baaebe3425c9dd", null ], + [ "spectrum2d_picture", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#aa8864347344fab858003e41128dbbc12", null ], + [ "spectrum2d_picture_init", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a956289103fb2f3c19f858abd3fca5bc7", null ], + [ "colors", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#abc7d09a990197e5aa41c6524fdcaf4f6", null ], + [ "img_screen_rgb", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a32808dbf8ce6e9086742c441c803c852", null ], + [ "result_data", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a8843e211fa8ba36b993967a41d6950b8", null ], + [ "screen_rgb_data", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a5778db3c1593241caff98f14b6fcc966", null ], + [ "TAG", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl.md5 b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl.md5 new file mode 100644 index 0000000..293663b --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl.md5 @@ -0,0 +1 @@ +4f172321c5aca570b73b2e3d563641e9 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl.svg new file mode 100644 index 0000000..4741131 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl.svg @@ -0,0 +1,1798 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +main.c + + +Node1 + + +main.c + + + + + +Node2 + + +dirent.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +bsp/esp-bsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node12 + + +esp_err.h + + + + + +Node1->Node12 + + + + + + + + +Node75 + + +freertos/FreeRTOS.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +freertos/task.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +freertos/semphr.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +esp_system.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +esp_timer.h + + + + + +Node1->Node79 + + + + + + + + +Node80 + + +malloc.h + + + + + +Node1->Node80 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node5 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node5 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl_org.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl_org.svg new file mode 100644 index 0000000..a4fd6c3 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c__incl_org.svg @@ -0,0 +1,1715 @@ + + + + + + +main.c + + +Node1 + + +main.c + + + + + +Node2 + + +dirent.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +bsp/esp-bsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node12 + + +esp_err.h + + + + + +Node1->Node12 + + + + + + + + +Node75 + + +freertos/FreeRTOS.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +freertos/task.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +freertos/semphr.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +esp_system.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +esp_timer.h + + + + + +Node1->Node79 + + + + + + + + +Node80 + + +malloc.h + + + + + +Node1->Node80 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node5 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node5 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.md5 new file mode 100644 index 0000000..2140557 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.md5 @@ -0,0 +1 @@ +e04f9c8c5b92ed91e0f61b93f99b0cab \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.svg new file mode 100644 index 0000000..e88ecfb --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph.svg @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +microphone_read_task + + +Node1 + + +microphone_read_task + + + + + +Node2 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_cplx2reC_sc16 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +dsps_mul_s16_ansi + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5->Node2 + + + + + + + + +Node6 + + +dsps_gen_w_r2_sc16 + + + + + +Node5->Node6 + + + + + + + + +Node6->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph_org.svg new file mode 100644 index 0000000..222a35d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a04947e47b733459d79baaebe3425c9dd_cgraph_org.svg @@ -0,0 +1,175 @@ + + + + + + +microphone_read_task + + +Node1 + + +microphone_read_task + + + + + +Node2 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_cplx2reC_sc16 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +dsps_mul_s16_ansi + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5->Node2 + + + + + + + + +Node6 + + +dsps_gen_w_r2_sc16 + + + + + +Node5->Node6 + + + + + + + + +Node6->Node3 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 new file mode 100644 index 0000000..83c627f --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 @@ -0,0 +1 @@ +9c72fbccbc3e808dadf081cce12800da \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg new file mode 100644 index 0000000..89d17ba --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg @@ -0,0 +1,366 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +image_display_task + + + + + +Node1->Node3 + + + + + + + + +Node7 + + +microphone_read_task + + + + + +Node1->Node7 + + + + + + + + +Node4 + + +spectrum2d_picture + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +spectrum2d_picture_init + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +convert_to_rgb + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +dsps_bit_rev_sc16_ansi + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +dsps_cplx2reC_sc16 + + + + + +Node7->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_init_sc16 + + + + + +Node7->Node11 + + + + + + + + +Node13 + + +dsps_mul_s16_ansi + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node7->Node14 + + + + + + + + +Node9 + + +dsp_is_power_of_two + + + + + +Node8->Node9 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11->Node8 + + + + + + + + +Node12 + + +dsps_gen_w_r2_sc16 + + + + + +Node11->Node12 + + + + + + + + +Node12->Node9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg new file mode 100644 index 0000000..694bcf7 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg @@ -0,0 +1,283 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +image_display_task + + + + + +Node1->Node3 + + + + + + + + +Node7 + + +microphone_read_task + + + + + +Node1->Node7 + + + + + + + + +Node4 + + +spectrum2d_picture + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +spectrum2d_picture_init + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +convert_to_rgb + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +dsps_bit_rev_sc16_ansi + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +dsps_cplx2reC_sc16 + + + + + +Node7->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_init_sc16 + + + + + +Node7->Node11 + + + + + + + + +Node13 + + +dsps_mul_s16_ansi + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node7->Node14 + + + + + + + + +Node9 + + +dsp_is_power_of_two + + + + + +Node8->Node9 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11->Node8 + + + + + + + + +Node12 + + +dsps_gen_w_r2_sc16 + + + + + +Node11->Node12 + + + + + + + + +Node12->Node9 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 new file mode 100644 index 0000000..d608d16 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.md5 @@ -0,0 +1 @@ +48aef04d2efed49388731b6e552ddf89 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.svg new file mode 100644 index 0000000..a260509 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +convert_to_rgb + + +Node1 + + +convert_to_rgb + + + + + +Node2 + + +spectrum2d_picture + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +image_display_task + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph_org.svg new file mode 100644 index 0000000..a61bfe9 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a7f8855b4c88c8357b7e3f1572ad8810a_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +convert_to_rgb + + +Node1 + + +convert_to_rgb + + + + + +Node2 + + +spectrum2d_picture + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +image_display_task + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 new file mode 100644 index 0000000..71c40cb --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.md5 @@ -0,0 +1 @@ +ed6a2987b08e0720501081b97caa89f6 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.svg new file mode 100644 index 0000000..1f12416 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +image_display_task + + +Node1 + + +image_display_task + + + + + +Node2 + + +spectrum2d_picture + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +spectrum2d_picture_init + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +convert_to_rgb + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph_org.svg new file mode 100644 index 0000000..41a2a4d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a8a38eae9043f070fbd482ffa18f2fa22_cgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +image_display_task + + +Node1 + + +image_display_task + + + + + +Node2 + + +spectrum2d_picture + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +spectrum2d_picture_init + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +convert_to_rgb + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.md5 new file mode 100644 index 0000000..05bd596 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.md5 @@ -0,0 +1 @@ +e053be6df5fddd63544485c8e5021b5b \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.svg new file mode 100644 index 0000000..dcae6a4 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +spectrum2d_picture_init + + +Node1 + + +spectrum2d_picture_init + + + + + +Node2 + + +image_display_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph_org.svg new file mode 100644 index 0000000..7504650 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_a956289103fb2f3c19f858abd3fca5bc7_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +spectrum2d_picture_init + + +Node1 + + +spectrum2d_picture_init + + + + + +Node2 + + +image_display_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.md5 new file mode 100644 index 0000000..5200db6 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.md5 @@ -0,0 +1 @@ +8f37043c28aff16e902e9e2873b29f3d \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.svg new file mode 100644 index 0000000..52492c2 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +spectrum2d_picture + + +Node1 + + +spectrum2d_picture + + + + + +Node2 + + +convert_to_rgb + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph_org.svg new file mode 100644 index 0000000..aa36d64 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +spectrum2d_picture + + +Node1 + + +spectrum2d_picture + + + + + +Node2 + + +convert_to_rgb + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.md5 new file mode 100644 index 0000000..18450a3 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.md5 @@ -0,0 +1 @@ +378d0be371281be46aead8b9fda7aea7 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.svg new file mode 100644 index 0000000..2f41e0a --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +spectrum2d_picture + + +Node1 + + +spectrum2d_picture + + + + + +Node2 + + +image_display_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph_org.svg new file mode 100644 index 0000000..d8c390e --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_aa8864347344fab858003e41128dbbc12_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +spectrum2d_picture + + +Node1 + + +spectrum2d_picture + + + + + +Node2 + + +image_display_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_source.html b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_source.html new file mode 100644 index 0000000..ff97635 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c_source.html @@ -0,0 +1,425 @@ + + + + + + + +ESP-IDF Firmware: main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: CC0-1.0
+
5 */
+
6
+
7#include <dirent.h>
+
8#include <math.h>
+
9
+
10#include "bsp/esp-bsp.h"
+
11#include "esp_log.h"
+
12#include "esp_dsp.h"
+
13
+
14#include "freertos/FreeRTOS.h"
+
15#include "freertos/task.h"
+
16#include "freertos/semphr.h"
+
17
+
18#include "esp_system.h"
+
19#include "esp_err.h"
+
20#include "esp_log.h"
+
21#include "esp_timer.h"
+
22#include <malloc.h>
+
23
+
24// Amount of audio channels
+
25#define I2S_CHANNEL_NUM (2)
+
26// Microphone Sample rate
+
27#define SAMPLE_RATE (10000)
+
28
+
29#define BITS_PER_CHANNEL 16
+
30// Input buffer size
+
31#define BUFFER_PROCESS_SIZE 512
+
32
+
33static const char *TAG = "main";
+
34
+
35// Buffer to process output spectrum
+ +
37
+
38// Microphone read task
+
+
39static void microphone_read_task(void *arg)
+
40{
+
41 esp_codec_dev_handle_t mic_codec_dev = NULL;
+
42 // Init board microphone
+
43 mic_codec_dev = bsp_audio_codec_microphone_init();
+
44 if (mic_codec_dev == NULL) {
+
45 ESP_LOGE(TAG, "Not possible to initialize microphone!");
+
46 return;
+
47 }
+
48
+
49 // Init esp-dsp library to use fft functionality
+ +
51 if (ret != ESP_OK) {
+
52 ESP_LOGE(TAG, "Not possible to initialize FFT esp-dsp from library!");
+
53 return;
+
54 }
+
55
+
56 esp_codec_dev_sample_info_t fs = {
+
57 .sample_rate = SAMPLE_RATE,
+
58 .channel = I2S_CHANNEL_NUM,
+
59 .channel_mask = 0,
+
60 .bits_per_sample = BITS_PER_CHANNEL,
+
61 };
+
62
+
63 int result = esp_codec_dev_open(mic_codec_dev, &fs);
+
64 if (result != ESP_OK) {
+
65 ESP_LOGE(TAG, "Not possible to open microphone!");
+
66 return;
+
67 }
+
68 // Set input microphone gain (from 1 to 100)
+
69 ESP_LOGI(TAG, "Adjust microphone input volume in the code here...");
+
70 result |= esp_codec_dev_set_in_gain(mic_codec_dev, 20.0);
+
71 if (result != ESP_OK) {
+
72 ESP_LOGE(TAG, "Not possible to set up microphone gain!");
+
73 return;
+
74 }
+
75
+
76 int audio_chunksize = BUFFER_PROCESS_SIZE;
+
77
+
78 // Allocate audio buffer and check for result
+
79 int16_t *audio_buffer = (int16_t *)memalign(16, (audio_chunksize + 16) * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
80 // Allocate buffer for window
+
81 int16_t *wind_buffer = (int16_t *)memalign(16, (audio_chunksize + 16) * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
82 // Generate window and convert it to int16_t
+ +
84 for (int i = 0 ; i < audio_chunksize; i++) {
+
85 wind_buffer[i * 2 + 0] = (int16_t)(result_data[i] * 32767);
+
86 wind_buffer[i * 2 + 1] = wind_buffer[i * 2 + 0];
+
87 }
+
88
+
89 while (true) {
+
90
+
91 // Read audio data from I2S bus
+
92 result = esp_codec_dev_read(mic_codec_dev, audio_buffer, audio_chunksize * sizeof(int16_t) * I2S_CHANNEL_NUM);
+
93 // Multiply input stream with window coefficients
+
94 dsps_mul_s16_ansi(audio_buffer, wind_buffer, audio_buffer, audio_chunksize * 2, 1, 1, 1, 15);
+
95
+
96 // Call FFT bit reverse
+
97 dsps_fft2r_sc16_ae32(audio_buffer, audio_chunksize);
+
98 dsps_bit_rev_sc16_ansi(audio_buffer, audio_chunksize);
+
99 // Convert spectrum from two input channels to two
+
100 // spectrums for two channels.
+
101 dsps_cplx2reC_sc16(audio_buffer, audio_chunksize);
+
102
+
103 // The output data array presented as moving average for input in dB
+
104 for (int i = 0 ; i < audio_chunksize ; i++) {
+
105 float spectrum_sqr = audio_buffer[i * 2 + 0] * audio_buffer[i * 2 + 0] + audio_buffer[i * 2 + 1] * audio_buffer[i * 2 + 1];
+
106 float spectrum_dB = 10 * log10f(0.1 + spectrum_sqr);
+
107 // Multiply with sime coefficient for better view data on screen
+
108 spectrum_dB = 4 * spectrum_dB;
+
109 // Apply moving average of spectrum
+
110 result_data[i] = 0.8 * result_data[i] + 0.2 * spectrum_dB;
+
111 }
+
112 vTaskDelay(10);
+
113 }
+
114}
+
+
115
+
116// Screen image width
+
117#define X_AXIS_SIZE (320)
+
118// Screen image height
+
119#define Y_AXIS_SIZE (240)
+
120
+
121static uint8_t screen_rgb_data[X_AXIS_SIZE * Y_AXIS_SIZE * LV_IMG_PX_SIZE_ALPHA_BYTE];
+
122
+
+
123static const lv_img_dsc_t img_screen_rgb = {
+
124 .header.always_zero = 0,
+
125 .header.w = X_AXIS_SIZE,
+
126 .header.h = Y_AXIS_SIZE,
+
127 .data_size = X_AXIS_SIZE * Y_AXIS_SIZE * LV_IMG_PX_SIZE_ALPHA_BYTE,
+
128 .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
+
129 .data = screen_rgb_data,
+
130};
+
+
131
+
132// The function convert value to RGB565 color value
+
133static int8_t colors[3][3] = { {0, 0, 31}, {0, 63, 0}, {31, 0, 0} };
+
+
134static uint16_t convert_to_rgb(uint8_t minval, uint8_t maxval, int8_t val)
+
135{
+
136 uint16_t result;
+
137
+
138 float i_f = (float)(val - minval) / (float)(maxval - minval) * 2;
+
139
+
140 int Ii = i_f;
+
141 float If = i_f - Ii;
+
142
+
143 int8_t *c1 = colors[Ii];
+
144 int8_t *c2 = colors[Ii + 1];
+
145 uint16_t res_colors[3];
+
146
+
147 res_colors[0] = c1[0] + If * (c2[0] - c1[0]);
+
148 res_colors[1] = c1[1] + If * (c2[1] - c1[1]);
+
149 res_colors[2] = c1[2] + If * (c2[2] - c1[2]);
+
150 result = res_colors[2] | (res_colors[1] << 5) | (res_colors[0] << 11);
+
151 return result;
+
152}
+
+
153
+
154// Init screen with blue values
+
+ +
156{
+
157 for (int y = 0 ; y < img_screen_rgb.header.h ; y++) {
+
158 for (int x = 0 ; x < img_screen_rgb.header.w ; x++) {
+
159 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = 0x0;
+
160 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = 0x1f;
+
161 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
162 }
+
163 }
+
164}
+
+
165
+
166// Add spectrum data to the screen
+
+ +
168{
+
169 for (int y = 0 ; y < (img_screen_rgb.header.h - 1) ; y++) {
+
170 for (int x = 0 ; x < img_screen_rgb.header.w ; x++) {
+
171 for (int i = 0 ; i < LV_IMG_PX_SIZE_ALPHA_BYTE ; i++) {
+
172 screen_rgb_data[(y * img_screen_rgb.header.w + x)*LV_IMG_PX_SIZE_ALPHA_BYTE + i] = screen_rgb_data[((y + 1) * img_screen_rgb.header.w + x) * LV_IMG_PX_SIZE_ALPHA_BYTE + i];
+
173 }
+
174 }
+
175 }
+
176
+
177 // Add left channel to the screen
+
178 // The order of the values inverted
+
179 for (int x = 0 ; x < img_screen_rgb.header.w / 2 ; x++) {
+
180 // Get inverted index value
+
181 int in_index = img_screen_rgb.header.w / 2 - x - 1;
+
182 float data = result_data[in_index];
+
183
+
184 // Limit input data
+
185 if (data > 127) {
+
186 data = 127;
+
187 }
+
188 if (data < 0) {
+
189 data = 0;
+
190 }
+
191
+
192 // Convert input value in dB to the color
+
193 uint16_t color_val = convert_to_rgb(0, 128, data);
+
194 // Split 16 bit value to two bytes, to change the bytes order
+
195 uint8_t *ref_val = (uint8_t *)&color_val;
+
196 int out_index = x;
+
197 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = ref_val[1];
+
198 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = ref_val[0];
+
199 // Set alpha value
+
200 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
201 }
+
202
+
203 // Add right channel to the screen
+
204 for (int x = 0 ; x < img_screen_rgb.header.w / 2 ; x++) {
+
205 // Get index of right channel
+
206 int in_index = BUFFER_PROCESS_SIZE / 2 + x;
+
207 float data = result_data[in_index];
+
208
+
209 // Limit input data
+
210 if (data > 127) {
+
211 data = 127;
+
212 }
+
213 if (data < 0) {
+
214 data = 0;
+
215 }
+
216
+
217 // Convert input value in dB to the color
+
218 uint16_t color_val = convert_to_rgb(0, 128, data);
+
219 // Split 16 bit value to two bytes, to change the bytes order
+
220 uint8_t *ref_val = (uint8_t *)&color_val;
+
221 int out_index = img_screen_rgb.header.w / 2 + x;
+
222 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 0] = ref_val[1];
+
223 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = ref_val[0];
+
224 // Set alpha value
+
225 screen_rgb_data[((img_screen_rgb.header.h - 1)*img_screen_rgb.header.w + out_index)*LV_IMG_PX_SIZE_ALPHA_BYTE + 2] = 0xff;
+
226 }
+
227}
+
+
228
+
+
229static void image_display_task(void *arg)
+
230{
+
231 // LV_IMG_DECLARE(img_screen_rgb);
+
232 lv_obj_t *img1 = lv_img_create(lv_scr_act());
+
233 lv_img_set_src(img1, &img_screen_rgb);
+ +
235 lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0);
+
236
+
237 for (;;) {
+
238 // Update image with new spectrum values
+ +
240 // Update screen with new image
+
241 lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0);
+
242 // Free CPU for a while
+
243 vTaskDelay(1);
+
244 }
+
245}
+
+
246
+
+
247void app_main(void)
+
248{
+
249 /* Initialize I2C (for touch and audio) */
+
250 bsp_i2c_init();
+
251
+
252 /* Initialize display and LVGL */
+
253 bsp_display_start();
+
254
+
255 /* Set display brightness to 100% */
+
256 bsp_display_backlight_on();
+
257
+
258 int ret_val = xTaskCreatePinnedToCore(&microphone_read_task, "Microphone read Task", 8 * 1024, NULL, 3, NULL, 0);
+
259 if (ret_val != pdPASS) {
+
260 ESP_LOGE(TAG, "Not possible to allocate microphone task, ret_val = %i", ret_val);
+
261 return;
+
262 }
+
263
+
264 ret_val = xTaskCreatePinnedToCore(&image_display_task, "Draw task", 10 * 1024, NULL, 5, NULL, 1);
+
265 if (ret_val != pdPASS) {
+
266 ESP_LOGE(TAG, "Not possible to allocate microphone task, ret_val= %i", ret_val);
+
267 return;
+
268 }
+
269}
+
+ + + + + + +
static uint8_t screen_rgb_data[(320) *(240) *LV_IMG_PX_SIZE_ALPHA_BYTE]
+ + + + + + + + +
static uint16_t convert_to_rgb(uint8_t minval, uint8_t maxval, int8_t val)
+ + + +
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define dsps_fft2r_sc16_ae32(data, N)
Definition dsps_fft2r.h:111
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_sc16(int16_t *fft_table_buff, int table_size)
+
esp_err_t dsps_bit_rev_sc16_ansi(int16_t *data, int N)
+
esp_err_t dsps_cplx2reC_sc16(int16_t *data, int N)
+
esp_err_t dsps_mul_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
Multiply two arrays.
+
void dsps_wind_blackman_harris_f32(float *window, int len)
Blackman-Harris window.
+ + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
static const char * TAG
Definition main/main.c:31
+
static float data[128 *2]
Definition test_fft2r.c:34
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.html b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.html new file mode 100644 index 0000000..d79ae5a --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.html @@ -0,0 +1,248 @@ + + + + + + + +ESP-IDF Firmware: main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main.c File Reference
+
+
+
#include <stdlib.h>
+#include <stdio.h>
+
+Include dependency graph for components/espressif__esp-dsp/modules/fft/test_sim/main.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

void test_fft2r ()
int main (void)
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main (void )
+
+ +

Definition at line 6 of file components/espressif__esp-dsp/modules/fft/test_sim/main.c.

+
7{
+
8 printf("main starts!\n");
+
9// xt_iss_profile_enable();
+
10 test_fft2r();
+
11// xt_iss_profile_disable();
+
12
+
13 printf("Test done\n");
+
14}
+
void test_fft2r()
Definition test_fft2r.c:38
+
+

References test_fft2r().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ test_fft2r()

+ +
+
+ + + + + + + +
void test_fft2r ()
+
+ +

Definition at line 38 of file test_fft2r.c.

+
39{
+
40
+
41 int N = sizeof(data) / sizeof(float) / 2;
+
42 int check_bin = 32;
+
43 float check_ampl = 2000;
+
44 for (int i = 0 ; i < N ; i++) {
+
45 data[i * 2 + 0] = check_ampl * sinf(M_PI / N * check_bin * 2 * i) / (N / 2);
+
46 data[i * 2 + 1] = 2;
+
47 }
+
48 for (int i = 0 ; i < N * 2 ; i++) {
+
49 check_data[i] = data[i];
+
50 data_test[i] = -1;
+
51 }
+
52
+
53 // Init FFT tables
+
54 esp_err_t ret = dsps_fft2r_init_fc32(NULL, 4096);
+
55 TEST_ESP_OK(ret);
+
56 int N_check = N;
+
57 // table = (uint16_t *)dsps_fft2r_rev_tables_fc32[6];
+
58 // table_size = dsps_fft2r_rev_tables_fc32_size[6];
+
59
+ +
61 dsps_fft2r_fc32(data, N_check);
+
62// dsps_bit_rev_lookup_fc32_ae32(data, N_check, dsps_fft2r_rev_tables_fc32[6]);
+ +
64// dsps_bit_rev_lookup_fc32_ae32(data, N_check, dsps_fft2r_rev_tables_fc32[6]);
+ +
66
+
67 for (int i = 0 ; i < N_check ; i++) {
+
68 if (abs(check_data[i] - data[i]) == 0) {
+
69 printf("Data[%i] =%8.4f, %8.4f, %f \n", i, data[i], check_data[i], check_data[i] - data[i]);
+
70 } else {
+
71 printf("ERROR: Data[%i] =%f, %f, %f \n", i, data[i], check_data[i], check_data[i] - data[i]);
+
72 }
+
73 }
+
74
+
75
+
76 printf("Test Pass!\n");
+
77}
+
esp_err_t dsps_fft2r_fc32_aes3_(float *data, int N, float *w)
+
#define dsps_fft2r_fc32
Definition dsps_fft2r.h:248
+
float * dsps_fft_w_table_fc32
+
esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
init fft tables
+
int esp_err_t
Definition esp_err.h:21
+
#define M_PI
Definition esp_err.h:26
+
void xt_iss_profile_disable()
+
static float data[128 *2]
Definition test_fft2r.c:34
+
static float data_test[128 *2]
Definition test_fft2r.c:36
+
static float check_data[128 *2]
Definition test_fft2r.c:35
+
void xt_iss_profile_enable()
+
#define N
Definition test_mmult.c:13
+
+

References check_data, data, data_test, dsps_fft2r_fc32, dsps_fft2r_fc32_aes3_(), dsps_fft2r_init_fc32(), dsps_fft_w_table_fc32, M_PI, N, xt_iss_profile_disable(), and xt_iss_profile_enable().

+ +

Referenced by main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.js b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.js new file mode 100644 index 0000000..377791d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.js @@ -0,0 +1,5 @@ +var components_2espressif____esp_dsp_2modules_2fft_2test__sim_2main_8c = +[ + [ "main", "components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ], + [ "test_fft2r", "components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.html#af57f5d7a9dfff9aeea49fb117331c12d", null ] +]; \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl.md5 new file mode 100644 index 0000000..beaf474 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl.md5 @@ -0,0 +1 @@ +a49ab5c6e572d243244bc519e825292e \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl.svg new file mode 100644 index 0000000..eff36b7 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +main.c + + +Node1 + + +main.c + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl_org.svg new file mode 100644 index 0000000..84e72bd --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +main.c + + +Node1 + + +main.c + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 new file mode 100644 index 0000000..a7994d4 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 @@ -0,0 +1 @@ +6956b8f69fbd1214b84000039400438d \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg new file mode 100644 index 0000000..ea68d7d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg @@ -0,0 +1,191 @@ + + + + + + + + + + + + +main + + +Node1 + + +main + + + + + +Node2 + + +test_fft2r + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft2r_fc32_aes3_ + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node2->Node4 + + + + + + + + +Node9 + + +xt_iss_profile_disable + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +xt_iss_profile_enable + + + + + +Node2->Node10 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_bit_rev_fc32_ansi + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node8 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg new file mode 100644 index 0000000..50f94c0 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg @@ -0,0 +1,165 @@ + + + + + + +main + + +Node1 + + +main + + + + + +Node2 + + +test_fft2r + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft2r_fc32_aes3_ + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node2->Node4 + + + + + + + + +Node9 + + +xt_iss_profile_disable + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +xt_iss_profile_enable + + + + + +Node2->Node10 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_bit_rev_fc32_ansi + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node8 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.md5 new file mode 100644 index 0000000..58b1cdb --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.md5 @@ -0,0 +1 @@ +3bb1cabfb2582a4decb46c7767fac83f \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.svg new file mode 100644 index 0000000..890b699 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test_fft2r + + +Node1 + + +test_fft2r + + + + + +Node2 + + +dsps_fft2r_fc32_aes3_ + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node3 + + + + + + + + +Node8 + + +xt_iss_profile_disable + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +xt_iss_profile_enable + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dsp_power_of_two + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dsps_bit_rev_fc32_ansi + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsps_gen_w_r2_fc32 + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +dsp_is_power_of_two + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph_org.svg new file mode 100644 index 0000000..6eab917 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_cgraph_org.svg @@ -0,0 +1,174 @@ + + + + + + +test_fft2r + + +Node1 + + +test_fft2r + + + + + +Node2 + + +dsps_fft2r_fc32_aes3_ + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node3 + + + + + + + + +Node8 + + +xt_iss_profile_disable + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +xt_iss_profile_enable + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dsp_power_of_two + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dsps_bit_rev_fc32_ansi + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsps_gen_w_r2_fc32 + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +dsp_is_power_of_two + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.md5 new file mode 100644 index 0000000..883f917 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.md5 @@ -0,0 +1 @@ +be70de70d5a812ed49e5c42d0c2bd91e \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.svg new file mode 100644 index 0000000..963353b --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +test_fft2r + + +Node1 + + +test_fft2r + + + + + +Node2 + + +main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph_org.svg new file mode 100644 index 0000000..acb7c6e --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_af57f5d7a9dfff9aeea49fb117331c12d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +test_fft2r + + +Node1 + + +test_fft2r + + + + + +Node2 + + +main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_source.html b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_source.html new file mode 100644 index 0000000..6669e8e --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c_source.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
components/espressif__esp-dsp/modules/fft/test_sim/main.c
+
+
+Go to the documentation of this file.
1#include <stdlib.h>
+
2#include <stdio.h>
+
3
+
4void test_fft2r();
+
5
+
+
6int main(void)
+
7{
+
8 printf("main starts!\n");
+
9// xt_iss_profile_enable();
+
10 test_fft2r();
+
11// xt_iss_profile_disable();
+
12
+
13 printf("Test done\n");
+
14}
+
+ +
void test_fft2r()
Definition test_fft2r.c:38
+
+
+
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.html b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.html new file mode 100644 index 0000000..966808e --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.html @@ -0,0 +1,235 @@ + + + + + + + +ESP-IDF Firmware: main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main.c File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

void test_fir ()
int main (void)
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main (void )
+
+ +

Definition at line 4 of file components/espressif__esp-dsp/modules/fir/test_sim/main.c.

+
5{
+
6 printf("main starts!\n");
+
7// xt_iss_profile_enable();
+
8 test_fir();
+
9// xt_iss_profile_disable();
+
10
+
11 printf("Test done\n");
+
12}
+
void test_fir()
Definition test_fir.c:19
+
+

References test_fir().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ test_fir()

+ +
+
+ + + + + + + +
void test_fir ()
+
+ +

Definition at line 19 of file test_fir.c.

+
20{
+
21 int len = sizeof(x) / sizeof(float);
+
22 int fir_len = sizeof(coeffs) / sizeof(float);
+
23
+
24 fir_f32_t fir1;
+
25 fir_f32_t fir2;
+
26 for (int i = 0 ; i < fir_len ; i++) {
+
27 coeffs[i] = i;
+
28 }
+
29
+
30 for (int i = 0 ; i < len ; i++) {
+
31 x[i] = 0;
+
32 }
+
33 x[0] = 1;
+
34
+
35 for (int i = 0 ; i < fir_len ; i++) {
+
36 coeffs[i] = i;
+
37 }
+
38
+
39 for (int i = 0 ; i < len ; i++) {
+
40 x[i] = i;
+
41 }
+
42 x[0] = 1;
+
43 dsps_fir_init_f32(&fir1, coeffs, delay, fir_len / 4);
+
44 dsps_fir_init_f32(&fir2, coeffs, delay_compare, fir_len);
+
45
+ +
47 dsps_fir_f32_aes3(&fir1, x, y, len);
+
48 dsps_fir_f32_ansi(&fir2, x, y_compare, len);
+ +
50
+
51 printf("Test Pass!\n");
+
52}
+
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
esp_err_t dsps_fir_f32_aes3(fir_f32_t *fir, const float *input, float *output, int len)
+
esp_err_t dsps_fir_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len)
32 bit floating point FIR filter
+
esp_err_t dsps_fir_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int coeffs_len)
initialize structure for 32 bit FIR filter
+
void xt_iss_profile_disable()
+
void xt_iss_profile_enable()
+
float y_compare[1024]
Definition test_fir.c:12
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
float delay_compare[256]
Definition test_fir.c:16
+
+

References coeffs, delay, delay_compare, dsps_fir_f32_aes3(), dsps_fir_f32_ansi(), dsps_fir_init_f32(), x, xt_iss_profile_disable(), xt_iss_profile_enable(), y, and y_compare.

+ +

Referenced by main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.js b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.js new file mode 100644 index 0000000..540cba0 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.js @@ -0,0 +1,5 @@ +var components_2espressif____esp_dsp_2modules_2fir_2test__sim_2main_8c = +[ + [ "main", "components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ], + [ "test_fir", "components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.html#a944a5f95a865773567d3d7b637b2eb8a", null ] +]; \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 new file mode 100644 index 0000000..5a1ee9e --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 @@ -0,0 +1 @@ +8a2a1ac088c56f7fbbe08ef8e6ff45f3 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg new file mode 100644 index 0000000..8e2c1dd --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +main + + +Node1 + + +main + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fir_f32_aes3 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_fir_f32_ansi + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_fir_init_f32 + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +xt_iss_profile_disable + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +xt_iss_profile_enable + + + + + +Node2->Node7 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg new file mode 100644 index 0000000..984740a --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg @@ -0,0 +1,129 @@ + + + + + + +main + + +Node1 + + +main + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fir_f32_aes3 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_fir_f32_ansi + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_fir_init_f32 + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +xt_iss_profile_disable + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +xt_iss_profile_enable + + + + + +Node2->Node7 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.md5 new file mode 100644 index 0000000..2f45710 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.md5 @@ -0,0 +1 @@ +05a85b594d96f2fe69c6d0f574ac4c76 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.svg new file mode 100644 index 0000000..e63f45c --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +test_fir + + +Node1 + + +test_fir + + + + + +Node2 + + +dsps_fir_f32_aes3 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fir_f32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fir_init_f32 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_disable + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +xt_iss_profile_enable + + + + + +Node1->Node6 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph_org.svg new file mode 100644 index 0000000..3e4a0b3 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +test_fir + + +Node1 + + +test_fir + + + + + +Node2 + + +dsps_fir_f32_aes3 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fir_f32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fir_init_f32 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_disable + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +xt_iss_profile_enable + + + + + +Node1->Node6 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.md5 new file mode 100644 index 0000000..edaa451 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.md5 @@ -0,0 +1 @@ +7d2106f54774f59c5841447e73886f40 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.svg new file mode 100644 index 0000000..52a8e8e --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +test_fir + + +Node1 + + +test_fir + + + + + +Node2 + + +main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph_org.svg new file mode 100644 index 0000000..ac7af2b --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_a944a5f95a865773567d3d7b637b2eb8a_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +test_fir + + +Node1 + + +test_fir + + + + + +Node2 + + +main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_source.html b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_source.html new file mode 100644 index 0000000..eb4e812 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c_source.html @@ -0,0 +1,122 @@ + + + + + + + +ESP-IDF Firmware: main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
components/espressif__esp-dsp/modules/fir/test_sim/main.c
+
+
+Go to the documentation of this file.
1
+
2void test_fir();
+
3
+
+
4int main(void)
+
5{
+
6 printf("main starts!\n");
+
7// xt_iss_profile_enable();
+
8 test_fir();
+
9// xt_iss_profile_disable();
+
10
+
11 printf("Test done\n");
+
12}
+
+ +
void test_fir()
Definition test_fir.c:19
+
+
+
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.html b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.html new file mode 100644 index 0000000..8aee4dd --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.html @@ -0,0 +1,234 @@ + + + + + + + +ESP-IDF Firmware: main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main.c File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

void test_iir_biquad ()
int main (void)
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main (void )
+
+ +

Definition at line 4 of file components/espressif__esp-dsp/modules/iir/test_sim/main.c.

+
5{
+
6 printf("main starts!\n");
+
7// xt_iss_profile_enable();
+ +
9// xt_iss_profile_disable();
+
10
+
11 printf("Test done\n");
+
12}
+
void test_iir_biquad()
+
+

References test_iir_biquad().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ test_iir_biquad()

+ +
+
+ + + + + + + +
void test_iir_biquad ()
+
+ +

Definition at line 22 of file test_iir_biquad.c.

+
23{
+
24 float coeffs_lpf[5] = {0.073802, 0.147603, 0.073802, -1.250516, 0.545723};
+
25 float w_lpf[5] = {0, 0};
+
26 float w_lpf_ref[5] = {0, 0};
+
27 esp_err_t ret = ESP_OK;
+
28
+
29 for (size_t i = 0; i < N; i++) {
+
30 d[i] = 0;
+
31 }
+
32 d[0] = 1;
+ +
34 ret = dsps_biquad_f32_ansi(d, y_ref, N, coeffs_lpf, w_lpf_ref);
+ +
36 if (ret != ESP_OK) {
+
37 printf("dsps_biquad_f32 error = %i\n", ret);
+
38 return;
+
39 }
+ +
41 ret = dsps_biquad_f32_aes3(d, y, N, coeffs_lpf, w_lpf);
+ +
43 if (ret != ESP_OK) {
+
44 printf("dsps_biquad_f32 error = %i\n", ret);
+
45 return;
+
46 }
+
47 for (size_t i = 0; i < N; i++) {
+
48 if (((y[i] - y_ref[i]) > 0.0000001) || (y[i] - y_ref[i]) < -0.0000001) {
+
49 printf("ERROR result[%i]: %f, expect = %f, diff=%f\n", i, y[i], y_ref[i], y[i] - y_ref[i]);
+
50 return;
+
51
+
52 }
+
53 }
+
54 printf("Test Correct!\n");
+
55
+
56}
+
esp_err_t dsps_biquad_f32_ansi(const float *input, float *output, int len, float *coef, float *w)
IIR filter.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float y[1024]
Definition test_fir.c:11
+
void xt_iss_profile_disable()
+
float d[1024]
+
float y_ref[1024]
+
esp_err_t dsps_biquad_f32_aes3(const float *input, float *output, int len, float *coef, float *w)
+
void xt_iss_profile_enable()
+
#define N
Definition test_mmult.c:13
+
+

References d, dsps_biquad_f32_aes3(), dsps_biquad_f32_ansi(), ESP_OK, N, xt_iss_profile_disable(), xt_iss_profile_enable(), y, and y_ref.

+ +

Referenced by main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.js b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.js new file mode 100644 index 0000000..0e91970 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.js @@ -0,0 +1,5 @@ +var components_2espressif____esp_dsp_2modules_2iir_2test__sim_2main_8c = +[ + [ "main", "components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ], + [ "test_iir_biquad", "components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.html#ac6b3a034f916b45dd4c321af1671639f", null ] +]; \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 new file mode 100644 index 0000000..2b45a66 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 @@ -0,0 +1 @@ +f5ceddc2a9f45be9864d8848459ad21f \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg new file mode 100644 index 0000000..361418c --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +main + + +Node1 + + +main + + + + + +Node2 + + +test_iir_biquad + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_f32_aes3 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_biquad_f32_ansi + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_disable + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +xt_iss_profile_enable + + + + + +Node2->Node6 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg new file mode 100644 index 0000000..ddaca93 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +main + + +Node1 + + +main + + + + + +Node2 + + +test_iir_biquad + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_f32_aes3 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_biquad_f32_ansi + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_disable + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +xt_iss_profile_enable + + + + + +Node2->Node6 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.md5 new file mode 100644 index 0000000..b2ce34d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.md5 @@ -0,0 +1 @@ +074314e424dfdf8b7fd56773b88b9f31 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.svg new file mode 100644 index 0000000..d6dac95 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +test_iir_biquad + + +Node1 + + +test_iir_biquad + + + + + +Node2 + + +dsps_biquad_f32_aes3 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_f32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +xt_iss_profile_disable + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_enable + + + + + +Node1->Node5 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph_org.svg new file mode 100644 index 0000000..a206cad --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +test_iir_biquad + + +Node1 + + +test_iir_biquad + + + + + +Node2 + + +dsps_biquad_f32_aes3 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_f32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +xt_iss_profile_disable + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_enable + + + + + +Node1->Node5 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.md5 new file mode 100644 index 0000000..0eaa465 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.md5 @@ -0,0 +1 @@ +8cf862178f6e4209b2fe431c3863eb0d \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.svg new file mode 100644 index 0000000..a155ce3 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +test_iir_biquad + + +Node1 + + +test_iir_biquad + + + + + +Node2 + + +main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph_org.svg new file mode 100644 index 0000000..e81405c --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_ac6b3a034f916b45dd4c321af1671639f_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +test_iir_biquad + + +Node1 + + +test_iir_biquad + + + + + +Node2 + + +main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_source.html b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_source.html new file mode 100644 index 0000000..1b252b6 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c_source.html @@ -0,0 +1,122 @@ + + + + + + + +ESP-IDF Firmware: main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
components/espressif__esp-dsp/modules/iir/test_sim/main.c
+
+
+Go to the documentation of this file.
1
+
2void test_iir_biquad();
+
3
+
+
4int main(void)
+
5{
+
6 printf("main starts!\n");
+
7// xt_iss_profile_enable();
+ +
9// xt_iss_profile_disable();
+
10
+
11 printf("Test done\n");
+
12}
+
+ +
void test_iir_biquad()
+
+
+
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.html b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.html new file mode 100644 index 0000000..1eb2180 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.html @@ -0,0 +1,241 @@ + + + + + + + +ESP-IDF Firmware: main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main.c File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

void test_mmult ()
int main (void)
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main (void )
+
+ +

Definition at line 4 of file components/espressif__esp-dsp/modules/matrix/mul/test_sim/main.c.

+
5{
+
6 printf("main starts!\n");
+
7// xt_iss_profile_enable();
+ +
9// xt_iss_profile_disable();
+
10
+
11 printf("Test done\n");
+
12}
+
void test_mmult()
Definition test_mmult.c:25
+
+

References test_mmult().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ test_mmult()

+ +
+
+ + + + + + + +
void test_mmult ()
+
+ +

Definition at line 25 of file test_mmult.c.

+
26{
+
27
+
28 float *A_ptr = (float *)A;
+
29 float *B_ptr = (float *)B;
+
30 float *C_ptr = (float *)C;
+
31 float *Cc_ptr = (float *)C_compare;
+
32
+
33 for (int i = 0 ; i < m * n; i++) {
+
34 A_ptr[i] = i;
+
35 B_ptr[i] = i;
+
36 }
+
37 for (int i = 0 ; i < m ; i++) {
+
38 for (int j = 0 ; j < k ; j++) {
+
39 C_compare[i][j] = 0;
+
40 for (int s = 0 ; s < n ; s++) {
+
41 C_compare[i][j] += A[i][s] * B[s][j];
+
42 }
+
43 C[i][j] = -1;
+
44 }
+
45 }
+ +
47 dspm_mult_f32_ae32(A_ptr, B_ptr, Cc_ptr, m, n, k);
+
48 dspm_mult_f32_aes3(A_ptr, B_ptr, C_ptr, m, n, k);
+ +
50
+
51 for (int i = 0 ; i < m ; i++) {
+
52 for (int j = 0 ; j < k ; j++) {
+
53 printf("[%i][%i] calc=%f, expected =%f\n", i, j, C[i][j], C_compare[i][j]);
+
54 }
+
55 }
+
56 // Compare and check results
+
57 for (int i = 0 ; i < m * k ; i++) {
+
58 if (Cc_ptr[i] != C_ptr[i]) {
+
59 printf("Error - C_ptr= %f, Cc_ptr= %f \n", C_ptr[i], Cc_ptr[i]);
+
60 return;
+
61 }
+
62 }
+
63
+
64 printf("Test Pass!\n");
+
65}
+
esp_err_t dspm_mult_f32_aes3(const float *A, const float *B, float *C, int m, int n, int k)
+
esp_err_t dspm_mult_f32_ae32(const float *A, const float *B, float *C, int m, int n, int k)
+
float C[4][16]
Definition test_mmult.c:22
+
void xt_iss_profile_disable()
+
const int m
Definition test_mmult.c:16
+
float B[8][16]
Definition test_mmult.c:21
+
float C_compare[4][16]
Definition test_mmult.c:23
+
float A[4][8]
Definition test_mmult.c:20
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
void xt_iss_profile_enable()
+
+

References A, B, C, C_compare, dspm_mult_f32_ae32(), dspm_mult_f32_aes3(), k, m, n, xt_iss_profile_disable(), and xt_iss_profile_enable().

+ +

Referenced by main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.js b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.js new file mode 100644 index 0000000..a425aae --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.js @@ -0,0 +1,5 @@ +var components_2espressif____esp_dsp_2modules_2matrix_2mul_2test__sim_2main_8c = +[ + [ "main", "components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ], + [ "test_mmult", "components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.html#a29623517f682d2bf709ad6942132c11d", null ] +]; \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph.md5 new file mode 100644 index 0000000..9cc63b7 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph.md5 @@ -0,0 +1 @@ +ebc722581347f6f3feb3305e6c39cf0b \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph.svg new file mode 100644 index 0000000..b8126c3 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +test_mmult + + +Node1 + + +test_mmult + + + + + +Node2 + + +dspm_mult_f32_ae32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_mult_f32_aes3 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +xt_iss_profile_disable + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_enable + + + + + +Node1->Node5 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph_org.svg new file mode 100644 index 0000000..b0eed0d --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +test_mmult + + +Node1 + + +test_mmult + + + + + +Node2 + + +dspm_mult_f32_ae32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_mult_f32_aes3 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +xt_iss_profile_disable + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_enable + + + + + +Node1->Node5 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph.md5 new file mode 100644 index 0000000..e6b43a1 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph.md5 @@ -0,0 +1 @@ +5d8490af8bc399aed7edfa9c43452487 \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph.svg new file mode 100644 index 0000000..3696c8a --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +test_mmult + + +Node1 + + +test_mmult + + + + + +Node2 + + +main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph_org.svg new file mode 100644 index 0000000..310f9ca --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a29623517f682d2bf709ad6942132c11d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +test_mmult + + +Node1 + + +test_mmult + + + + + +Node2 + + +main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 new file mode 100644 index 0000000..a7914fb --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 @@ -0,0 +1 @@ +13c567b2e0a98fe77251253a57fa344a \ No newline at end of file diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg new file mode 100644 index 0000000..23854be --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +main + + +Node1 + + +main + + + + + +Node2 + + +test_mmult + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_mult_f32_ae32 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm_mult_f32_aes3 + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_disable + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +xt_iss_profile_enable + + + + + +Node2->Node6 + + + + + + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg new file mode 100644 index 0000000..1d4df85 --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +main + + +Node1 + + +main + + + + + +Node2 + + +test_mmult + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_mult_f32_ae32 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm_mult_f32_aes3 + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +xt_iss_profile_disable + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +xt_iss_profile_enable + + + + + +Node2->Node6 + + + + + + + + diff --git a/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_source.html b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_source.html new file mode 100644 index 0000000..6a96c0b --- /dev/null +++ b/docs/html/components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c_source.html @@ -0,0 +1,122 @@ + + + + + + + +ESP-IDF Firmware: main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
components/espressif__esp-dsp/modules/matrix/mul/test_sim/main.c
+
+
+Go to the documentation of this file.
1
+
2void test_mmult();
+
3
+
+
4int main(void)
+
5{
+
6 printf("main starts!\n");
+
7// xt_iss_profile_enable();
+ +
9// xt_iss_profile_disable();
+
10
+
11 printf("Test done\n");
+
12}
+
+
void test_mmult()
Definition test_mmult.c:25
+ +
+
+
+ + + + diff --git a/docs/html/cookie.js b/docs/html/cookie.js new file mode 100644 index 0000000..53ad21d --- /dev/null +++ b/docs/html/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/docs/html/descriptors__control_8c.html b/docs/html/descriptors__control_8c.html new file mode 100644 index 0000000..ed6a888 --- /dev/null +++ b/docs/html/descriptors__control_8c.html @@ -0,0 +1,579 @@ + + + + + + + +ESP-IDF Firmware: descriptors_control.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
descriptors_control.c File Reference
+
+
+
#include <string.h>
+#include "esp_log.h"
+#include "descriptors_control.h"
+
+Include dependency graph for descriptors_control.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define MAX_DESC_BUF_SIZE   32
+ + + + + + + + + + +

+Functions

uint8_t const * tud_descriptor_device_cb (void)
 Invoked when received GET DEVICE DESCRIPTOR. Application returns pointer to descriptor.
uint8_t const * tud_descriptor_configuration_cb (uint8_t index)
 Invoked when received GET CONFIGURATION DESCRIPTOR. Descriptor contents must exist long enough for transfer to complete.
uint16_t const * tud_descriptor_string_cb (uint8_t index, uint16_t langid)
void tusb_set_descriptor (const tusb_desc_device_t *dev_desc, const char **str_desc, const uint8_t *cfg_desc)
tusb_desc_device_t * tusb_get_active_desc (void)
char ** tusb_get_active_str_desc (void)
void tusb_clear_descriptor (void)
+ + + + + + +

+Variables

static const char * TAG = "tusb_desc"
static tusb_desc_device_t s_device_descriptor
static const uint8_t * s_configuration_descriptor
static char * s_str_descriptor [USB_STRING_DESCRIPTOR_ARRAY_SIZE]
static uint16_t _desc_str [32]
+

Macro Definition Documentation

+ +

◆ MAX_DESC_BUF_SIZE

+ +
+
+ + + + +
#define MAX_DESC_BUF_SIZE   32
+
+ +

Definition at line 15 of file descriptors_control.c.

+ +

Referenced by tud_descriptor_string_cb().

+ +
+
+

Function Documentation

+ +

◆ tud_descriptor_configuration_cb()

+ +
+
+ + + + + + + +
uint8_t const * tud_descriptor_configuration_cb (uint8_t index)
+
+ +

Invoked when received GET CONFIGURATION DESCRIPTOR. Descriptor contents must exist long enough for transfer to complete.

+
Parameters
+ + +
index
+
+
+
Returns
uint8_t const* Application return pointer to descriptor
+ +

Definition at line 39 of file descriptors_control.c.

+
40{
+
41 (void)index; // for multiple configurations
+ +
43}
+
static const uint8_t * s_configuration_descriptor
+
+

References s_configuration_descriptor.

+ +
+
+ +

◆ tud_descriptor_device_cb()

+ +
+
+ + + + + + + +
uint8_t const * tud_descriptor_device_cb (void )
+
+ +

Invoked when received GET DEVICE DESCRIPTOR. Application returns pointer to descriptor.

+
Returns
uint8_t const*
+ +

Definition at line 27 of file descriptors_control.c.

+
28{
+
29 return (uint8_t const *)&s_device_descriptor;
+
30}
+
static tusb_desc_device_t s_device_descriptor
+
+

References s_device_descriptor.

+ +
+
+ +

◆ tud_descriptor_string_cb()

+ +
+
+ + + + + + + + + + + +
uint16_t const * tud_descriptor_string_cb (uint8_t index,
uint16_t langid )
+
+ +

Definition at line 49 of file descriptors_control.c.

+
50{
+
51 (void) langid;
+
52
+
53 uint8_t chr_count;
+
54
+
55 if ( index == 0) {
+
56 memcpy(&_desc_str[1], s_str_descriptor[0], 2);
+
57 chr_count = 1;
+
58 } else {
+
59 // Convert ASCII string into UTF-16
+
60
+
61 if ( index >= sizeof(s_str_descriptor) / sizeof(s_str_descriptor[0]) ) {
+
62 ESP_LOGE(TAG, "String index (%u) is out of bounds, check your string descriptor", index);
+
63 return NULL;
+
64 }
+
65
+
66 if (s_str_descriptor[index] == NULL) {
+
67 ESP_LOGE(TAG, "String index (%u) points to NULL, check your string descriptor", index);
+
68 return NULL;
+
69 }
+
70
+
71 const char *str = s_str_descriptor[index];
+
72
+
73 // Cap at max char
+
74 chr_count = strlen(str);
+
75 if ( chr_count > MAX_DESC_BUF_SIZE - 1 ) {
+
76 chr_count = MAX_DESC_BUF_SIZE - 1;
+
77 }
+
78
+
79 for (uint8_t i = 0; i < chr_count; i++) {
+
80 _desc_str[1 + i] = str[i];
+
81 }
+
82 }
+
83
+
84 // first byte is length (including header), second byte is string type
+
85 _desc_str[0] = (TUSB_DESC_STRING << 8 ) | (2 * chr_count + 2);
+
86
+
87 return _desc_str;
+
88}
+
#define MAX_DESC_BUF_SIZE
+
static char * s_str_descriptor[USB_STRING_DESCRIPTOR_ARRAY_SIZE]
+
static uint16_t _desc_str[32]
+
static const char * TAG
Definition main/main.c:31
+
+

References _desc_str, MAX_DESC_BUF_SIZE, s_str_descriptor, and TAG.

+ +
+
+ +

◆ tusb_clear_descriptor()

+ +
+
+ + + + + + + +
void tusb_clear_descriptor (void )
+
+ +

Definition at line 146 of file descriptors_control.c.

+
147{
+
148 memset(&s_device_descriptor, 0, sizeof(s_device_descriptor));
+
149 memset(&s_str_descriptor, 0, sizeof(s_str_descriptor));
+
150}
+
+

References s_device_descriptor, and s_str_descriptor.

+ +
+
+ +

◆ tusb_get_active_desc()

+ +
+
+ + + + + + + +
tusb_desc_device_t * tusb_get_active_desc (void )
+
+ +

Definition at line 136 of file descriptors_control.c.

+
137{
+
138 return &s_device_descriptor;
+
139}
+
+

References s_device_descriptor.

+ +
+
+ +

◆ tusb_get_active_str_desc()

+ +
+
+ + + + + + + +
char ** tusb_get_active_str_desc (void )
+
+ +

Definition at line 141 of file descriptors_control.c.

+
142{
+
143 return s_str_descriptor;
+
144}
+
+

References s_str_descriptor.

+ +
+
+ +

◆ tusb_set_descriptor()

+ +
+
+ + + + + + + + + + + + + + + + +
void tusb_set_descriptor (const tusb_desc_device_t * dev_desc,
const char ** str_desc,
const uint8_t * cfg_desc )
+
+ +

Definition at line 94 of file descriptors_control.c.

+
95{
+
96 ESP_LOGI(TAG, "\n"
+
97 "┌─────────────────────────────────┐\n"
+
98 "│ USB Device Descriptor Summary │\n"
+
99 "├───────────────────┬─────────────┤\n"
+
100 "│bDeviceClass │ %-4u │\n"
+
101 "├───────────────────┼─────────────┤\n"
+
102 "│bDeviceSubClass │ %-4u │\n"
+
103 "├───────────────────┼─────────────┤\n"
+
104 "│bDeviceProtocol │ %-4u │\n"
+
105 "├───────────────────┼─────────────┤\n"
+
106 "│bMaxPacketSize0 │ %-4u │\n"
+
107 "├───────────────────┼─────────────┤\n"
+
108 "│idVendor │ %-#10x │\n"
+
109 "├───────────────────┼─────────────┤\n"
+
110 "│idProduct │ %-#10x │\n"
+
111 "├───────────────────┼─────────────┤\n"
+
112 "│bcdDevice │ %-#10x │\n"
+
113 "├───────────────────┼─────────────┤\n"
+
114 "│iManufacturer │ %-#10x │\n"
+
115 "├───────────────────┼─────────────┤\n"
+
116 "│iProduct │ %-#10x │\n"
+
117 "├───────────────────┼─────────────┤\n"
+
118 "│iSerialNumber │ %-#10x │\n"
+
119 "├───────────────────┼─────────────┤\n"
+
120 "│bNumConfigurations │ %-#10x │\n"
+
121 "└───────────────────┴─────────────┘",
+
122 dev_desc->bDeviceClass, dev_desc->bDeviceSubClass,
+
123 dev_desc->bDeviceProtocol, dev_desc->bMaxPacketSize0,
+
124 dev_desc->idVendor, dev_desc->idProduct, dev_desc->bcdDevice,
+
125 dev_desc->iManufacturer, dev_desc->iProduct, dev_desc->iSerialNumber,
+
126 dev_desc->bNumConfigurations);
+
127 s_device_descriptor = *dev_desc;
+ +
129
+
130 if (str_desc != NULL) {
+
131 memcpy(s_str_descriptor, str_desc,
+ +
133 }
+
134}
+
#define USB_STRING_DESCRIPTOR_ARRAY_SIZE
+
+

References s_configuration_descriptor, s_device_descriptor, s_str_descriptor, TAG, and USB_STRING_DESCRIPTOR_ARRAY_SIZE.

+ +

Referenced by tinyusb_driver_install().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ _desc_str

+ +
+
+ + + + + +
+ + + + +
uint16_t _desc_str[32]
+
+static
+
+ +

Definition at line 45 of file descriptors_control.c.

+ +

Referenced by tud_descriptor_string_cb().

+ +
+
+ +

◆ s_configuration_descriptor

+ +
+
+ + + + + +
+ + + + +
const uint8_t* s_configuration_descriptor
+
+static
+
+ +

Definition at line 13 of file descriptors_control.c.

+ +

Referenced by tud_descriptor_configuration_cb(), and tusb_set_descriptor().

+ +
+
+ +

◆ s_device_descriptor

+ +
+
+ + + + + +
+ + + + +
tusb_desc_device_t s_device_descriptor
+
+static
+
+
+ +

◆ s_str_descriptor

+ +
+
+ + + + + +
+ + + + +
char* s_str_descriptor[USB_STRING_DESCRIPTOR_ARRAY_SIZE]
+
+static
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "tusb_desc"
+
+static
+
+ +

Definition at line 11 of file descriptors_control.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/descriptors__control_8c.js b/docs/html/descriptors__control_8c.js new file mode 100644 index 0000000..6b9e09a --- /dev/null +++ b/docs/html/descriptors__control_8c.js @@ -0,0 +1,16 @@ +var descriptors__control_8c = +[ + [ "MAX_DESC_BUF_SIZE", "descriptors__control_8c.html#a78b6e966ddd72c6381a5b8fed16dae5d", null ], + [ "tud_descriptor_configuration_cb", "descriptors__control_8c.html#ab8ee9fe0bc8bf4d317c4e7c7fa52194e", null ], + [ "tud_descriptor_device_cb", "descriptors__control_8c.html#a1f453b8b047af5e8a9c9a2ebd8a09259", null ], + [ "tud_descriptor_string_cb", "descriptors__control_8c.html#a1876e368b150921b252b6f3b0a2cbdc7", null ], + [ "tusb_clear_descriptor", "descriptors__control_8c.html#af9106992eb163a0978ea6ab934934b3e", null ], + [ "tusb_get_active_desc", "descriptors__control_8c.html#a69edc2d349b2cae7d3567475d5d5612d", null ], + [ "tusb_get_active_str_desc", "descriptors__control_8c.html#a148b5952a799eed3f70d9d3c0e35f6b8", null ], + [ "tusb_set_descriptor", "descriptors__control_8c.html#aa7ff8fdaea70ee1ce571843b70aba21f", null ], + [ "_desc_str", "descriptors__control_8c.html#af2de154bf5687cf263c1f1683aa9a4be", null ], + [ "s_configuration_descriptor", "descriptors__control_8c.html#a752e944a13b67cfb266d639080fb7f3a", null ], + [ "s_device_descriptor", "descriptors__control_8c.html#a7f91fa68516d5ce966d16971b51a67d6", null ], + [ "s_str_descriptor", "descriptors__control_8c.html#a9e788c724d693c21a8aefee1b9cb3cef", null ], + [ "TAG", "descriptors__control_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/descriptors__control_8c__incl.md5 b/docs/html/descriptors__control_8c__incl.md5 new file mode 100644 index 0000000..c190043 --- /dev/null +++ b/docs/html/descriptors__control_8c__incl.md5 @@ -0,0 +1 @@ +2cc1b8c435efc8fbdb9739f68adc7f60 \ No newline at end of file diff --git a/docs/html/descriptors__control_8c__incl.svg b/docs/html/descriptors__control_8c__incl.svg new file mode 100644 index 0000000..cecab0f --- /dev/null +++ b/docs/html/descriptors__control_8c__incl.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +descriptors_control.c + + +Node1 + + +descriptors_control.c + + + + + +Node2 + + +string.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +descriptors_control.h + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +tusb.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +tinyusb_types.h + + + + + +Node5->Node7 + + + + + + + + + + + + + diff --git a/docs/html/descriptors__control_8c__incl_org.svg b/docs/html/descriptors__control_8c__incl_org.svg new file mode 100644 index 0000000..3cade62 --- /dev/null +++ b/docs/html/descriptors__control_8c__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +descriptors_control.c + + +Node1 + + +descriptors_control.c + + + + + +Node2 + + +string.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +descriptors_control.h + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +tusb.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +tinyusb_types.h + + + + + +Node5->Node7 + + + + + + + + diff --git a/docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 b/docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 new file mode 100644 index 0000000..8df2a9f --- /dev/null +++ b/docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 @@ -0,0 +1 @@ +27d62d87851522088808009dfba26f28 \ No newline at end of file diff --git a/docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.svg b/docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.svg new file mode 100644 index 0000000..bae024a --- /dev/null +++ b/docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tusb_set_descriptor + + +Node1 + + +tusb_set_descriptor + + + + + +Node2 + + +tinyusb_driver_install + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph_org.svg b/docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph_org.svg new file mode 100644 index 0000000..2f23115 --- /dev/null +++ b/docs/html/descriptors__control_8c_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tusb_set_descriptor + + +Node1 + + +tusb_set_descriptor + + + + + +Node2 + + +tinyusb_driver_install + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/descriptors__control_8c_source.html b/docs/html/descriptors__control_8c_source.html new file mode 100644 index 0000000..2394653 --- /dev/null +++ b/docs/html/descriptors__control_8c_source.html @@ -0,0 +1,273 @@ + + + + + + + +ESP-IDF Firmware: descriptors_control.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
descriptors_control.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <string.h>
+
8#include "esp_log.h"
+ +
10
+
11static const char *TAG = "tusb_desc";
+
12static tusb_desc_device_t s_device_descriptor;
+
13static const uint8_t *s_configuration_descriptor;
+ +
15#define MAX_DESC_BUF_SIZE 32
+
16
+
17// =============================================================================
+
18// CALLBACKS
+
19// =============================================================================
+
20
+
+
27uint8_t const *tud_descriptor_device_cb(void)
+
28{
+
29 return (uint8_t const *)&s_device_descriptor;
+
30}
+
+
31
+
+
39uint8_t const *tud_descriptor_configuration_cb(uint8_t index)
+
40{
+
41 (void)index; // for multiple configurations
+ +
43}
+
+
44
+ +
46
+
47// Invoked when received GET STRING DESCRIPTOR request
+
48// Application return pointer to descriptor, whose contents must exist long enough for transfer to complete
+
+
49uint16_t const *tud_descriptor_string_cb(uint8_t index, uint16_t langid)
+
50{
+
51 (void) langid;
+
52
+
53 uint8_t chr_count;
+
54
+
55 if ( index == 0) {
+
56 memcpy(&_desc_str[1], s_str_descriptor[0], 2);
+
57 chr_count = 1;
+
58 } else {
+
59 // Convert ASCII string into UTF-16
+
60
+
61 if ( index >= sizeof(s_str_descriptor) / sizeof(s_str_descriptor[0]) ) {
+
62 ESP_LOGE(TAG, "String index (%u) is out of bounds, check your string descriptor", index);
+
63 return NULL;
+
64 }
+
65
+
66 if (s_str_descriptor[index] == NULL) {
+
67 ESP_LOGE(TAG, "String index (%u) points to NULL, check your string descriptor", index);
+
68 return NULL;
+
69 }
+
70
+
71 const char *str = s_str_descriptor[index];
+
72
+
73 // Cap at max char
+
74 chr_count = strlen(str);
+
75 if ( chr_count > MAX_DESC_BUF_SIZE - 1 ) {
+
76 chr_count = MAX_DESC_BUF_SIZE - 1;
+
77 }
+
78
+
79 for (uint8_t i = 0; i < chr_count; i++) {
+
80 _desc_str[1 + i] = str[i];
+
81 }
+
82 }
+
83
+
84 // first byte is length (including header), second byte is string type
+
85 _desc_str[0] = (TUSB_DESC_STRING << 8 ) | (2 * chr_count + 2);
+
86
+
87 return _desc_str;
+
88}
+
+
89
+
90// =============================================================================
+
91// Driver functions
+
92// =============================================================================
+
93
+
+
94void tusb_set_descriptor(const tusb_desc_device_t *dev_desc, const char **str_desc, const uint8_t *cfg_desc)
+
95{
+
96 ESP_LOGI(TAG, "\n"
+
97 "┌─────────────────────────────────┐\n"
+
98 "│ USB Device Descriptor Summary │\n"
+
99 "├───────────────────┬─────────────┤\n"
+
100 "│bDeviceClass │ %-4u │\n"
+
101 "├───────────────────┼─────────────┤\n"
+
102 "│bDeviceSubClass │ %-4u │\n"
+
103 "├───────────────────┼─────────────┤\n"
+
104 "│bDeviceProtocol │ %-4u │\n"
+
105 "├───────────────────┼─────────────┤\n"
+
106 "│bMaxPacketSize0 │ %-4u │\n"
+
107 "├───────────────────┼─────────────┤\n"
+
108 "│idVendor │ %-#10x │\n"
+
109 "├───────────────────┼─────────────┤\n"
+
110 "│idProduct │ %-#10x │\n"
+
111 "├───────────────────┼─────────────┤\n"
+
112 "│bcdDevice │ %-#10x │\n"
+
113 "├───────────────────┼─────────────┤\n"
+
114 "│iManufacturer │ %-#10x │\n"
+
115 "├───────────────────┼─────────────┤\n"
+
116 "│iProduct │ %-#10x │\n"
+
117 "├───────────────────┼─────────────┤\n"
+
118 "│iSerialNumber │ %-#10x │\n"
+
119 "├───────────────────┼─────────────┤\n"
+
120 "│bNumConfigurations │ %-#10x │\n"
+
121 "└───────────────────┴─────────────┘",
+
122 dev_desc->bDeviceClass, dev_desc->bDeviceSubClass,
+
123 dev_desc->bDeviceProtocol, dev_desc->bMaxPacketSize0,
+
124 dev_desc->idVendor, dev_desc->idProduct, dev_desc->bcdDevice,
+
125 dev_desc->iManufacturer, dev_desc->iProduct, dev_desc->iSerialNumber,
+
126 dev_desc->bNumConfigurations);
+
127 s_device_descriptor = *dev_desc;
+ +
129
+
130 if (str_desc != NULL) {
+
131 memcpy(s_str_descriptor, str_desc,
+ +
133 }
+
134}
+
+
135
+
+
136tusb_desc_device_t *tusb_get_active_desc(void)
+
137{
+
138 return &s_device_descriptor;
+
139}
+
+
140
+
+ +
142{
+
143 return s_str_descriptor;
+
144}
+
+
145
+
+ +
147{
+
148 memset(&s_device_descriptor, 0, sizeof(s_device_descriptor));
+
149 memset(&s_str_descriptor, 0, sizeof(s_str_descriptor));
+
150}
+
+
char ** tusb_get_active_str_desc(void)
+
uint16_t const * tud_descriptor_string_cb(uint8_t index, uint16_t langid)
+
uint8_t const * tud_descriptor_device_cb(void)
Invoked when received GET DEVICE DESCRIPTOR. Application returns pointer to descriptor.
+
tusb_desc_device_t * tusb_get_active_desc(void)
+
static const uint8_t * s_configuration_descriptor
+
#define MAX_DESC_BUF_SIZE
+
static tusb_desc_device_t s_device_descriptor
+
static char * s_str_descriptor[USB_STRING_DESCRIPTOR_ARRAY_SIZE]
+
void tusb_set_descriptor(const tusb_desc_device_t *dev_desc, const char **str_desc, const uint8_t *cfg_desc)
+
uint8_t const * tud_descriptor_configuration_cb(uint8_t index)
Invoked when received GET CONFIGURATION DESCRIPTOR. Descriptor contents must exist long enough for tr...
+
static uint16_t _desc_str[32]
+
void tusb_clear_descriptor(void)
+ + +
static const char * TAG
Definition main/main.c:31
+
#define USB_STRING_DESCRIPTOR_ARRAY_SIZE
+
+
+
+ + + + diff --git a/docs/html/descriptors__control_8h.html b/docs/html/descriptors__control_8h.html new file mode 100644 index 0000000..078fe92 --- /dev/null +++ b/docs/html/descriptors__control_8h.html @@ -0,0 +1,291 @@ + + + + + + + +ESP-IDF Firmware: descriptors_control.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
descriptors_control.h File Reference
+
+
+
#include "tusb.h"
+#include "tinyusb_types.h"
+
+Include dependency graph for descriptors_control.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Functions

void tusb_set_descriptor (const tusb_desc_device_t *dev_desc, const char **str_desc, const uint8_t *cfg_desc)
tusb_desc_device_t * tusb_get_active_desc (void)
char ** tusb_get_active_str_desc (void)
void tusb_clear_descriptor (void)
+

Function Documentation

+ +

◆ tusb_clear_descriptor()

+ +
+
+ + + + + + + +
void tusb_clear_descriptor (void )
+
+ +

Definition at line 146 of file descriptors_control.c.

+
147{
+
148 memset(&s_device_descriptor, 0, sizeof(s_device_descriptor));
+
149 memset(&s_str_descriptor, 0, sizeof(s_str_descriptor));
+
150}
+
static tusb_desc_device_t s_device_descriptor
+
static char * s_str_descriptor[USB_STRING_DESCRIPTOR_ARRAY_SIZE]
+
+

References s_device_descriptor, and s_str_descriptor.

+ +
+
+ +

◆ tusb_get_active_desc()

+ +
+
+ + + + + + + +
tusb_desc_device_t * tusb_get_active_desc (void )
+
+ +

Definition at line 136 of file descriptors_control.c.

+
137{
+
138 return &s_device_descriptor;
+
139}
+
+

References s_device_descriptor.

+ +
+
+ +

◆ tusb_get_active_str_desc()

+ +
+
+ + + + + + + +
char ** tusb_get_active_str_desc (void )
+
+ +

Definition at line 141 of file descriptors_control.c.

+
142{
+
143 return s_str_descriptor;
+
144}
+
+

References s_str_descriptor.

+ +
+
+ +

◆ tusb_set_descriptor()

+ +
+
+ + + + + + + + + + + + + + + + +
void tusb_set_descriptor (const tusb_desc_device_t * dev_desc,
const char ** str_desc,
const uint8_t * cfg_desc )
+
+ +

Definition at line 94 of file descriptors_control.c.

+
95{
+
96 ESP_LOGI(TAG, "\n"
+
97 "┌─────────────────────────────────┐\n"
+
98 "│ USB Device Descriptor Summary │\n"
+
99 "├───────────────────┬─────────────┤\n"
+
100 "│bDeviceClass │ %-4u │\n"
+
101 "├───────────────────┼─────────────┤\n"
+
102 "│bDeviceSubClass │ %-4u │\n"
+
103 "├───────────────────┼─────────────┤\n"
+
104 "│bDeviceProtocol │ %-4u │\n"
+
105 "├───────────────────┼─────────────┤\n"
+
106 "│bMaxPacketSize0 │ %-4u │\n"
+
107 "├───────────────────┼─────────────┤\n"
+
108 "│idVendor │ %-#10x │\n"
+
109 "├───────────────────┼─────────────┤\n"
+
110 "│idProduct │ %-#10x │\n"
+
111 "├───────────────────┼─────────────┤\n"
+
112 "│bcdDevice │ %-#10x │\n"
+
113 "├───────────────────┼─────────────┤\n"
+
114 "│iManufacturer │ %-#10x │\n"
+
115 "├───────────────────┼─────────────┤\n"
+
116 "│iProduct │ %-#10x │\n"
+
117 "├───────────────────┼─────────────┤\n"
+
118 "│iSerialNumber │ %-#10x │\n"
+
119 "├───────────────────┼─────────────┤\n"
+
120 "│bNumConfigurations │ %-#10x │\n"
+
121 "└───────────────────┴─────────────┘",
+
122 dev_desc->bDeviceClass, dev_desc->bDeviceSubClass,
+
123 dev_desc->bDeviceProtocol, dev_desc->bMaxPacketSize0,
+
124 dev_desc->idVendor, dev_desc->idProduct, dev_desc->bcdDevice,
+
125 dev_desc->iManufacturer, dev_desc->iProduct, dev_desc->iSerialNumber,
+
126 dev_desc->bNumConfigurations);
+
127 s_device_descriptor = *dev_desc;
+ +
129
+
130 if (str_desc != NULL) {
+
131 memcpy(s_str_descriptor, str_desc,
+ +
133 }
+
134}
+
static const uint8_t * s_configuration_descriptor
+
static const char * TAG
Definition main/main.c:31
+
#define USB_STRING_DESCRIPTOR_ARRAY_SIZE
+
+

References s_configuration_descriptor, s_device_descriptor, s_str_descriptor, TAG, and USB_STRING_DESCRIPTOR_ARRAY_SIZE.

+ +

Referenced by tinyusb_driver_install().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/descriptors__control_8h.js b/docs/html/descriptors__control_8h.js new file mode 100644 index 0000000..5eba028 --- /dev/null +++ b/docs/html/descriptors__control_8h.js @@ -0,0 +1,7 @@ +var descriptors__control_8h = +[ + [ "tusb_clear_descriptor", "descriptors__control_8h.html#af9106992eb163a0978ea6ab934934b3e", null ], + [ "tusb_get_active_desc", "descriptors__control_8h.html#a69edc2d349b2cae7d3567475d5d5612d", null ], + [ "tusb_get_active_str_desc", "descriptors__control_8h.html#a148b5952a799eed3f70d9d3c0e35f6b8", null ], + [ "tusb_set_descriptor", "descriptors__control_8h.html#aa7ff8fdaea70ee1ce571843b70aba21f", null ] +]; \ No newline at end of file diff --git a/docs/html/descriptors__control_8h__dep__incl.md5 b/docs/html/descriptors__control_8h__dep__incl.md5 new file mode 100644 index 0000000..1f72121 --- /dev/null +++ b/docs/html/descriptors__control_8h__dep__incl.md5 @@ -0,0 +1 @@ +6edbbd9aa73ee1b92d1c0bf1fac3d3b8 \ No newline at end of file diff --git a/docs/html/descriptors__control_8h__dep__incl.svg b/docs/html/descriptors__control_8h__dep__incl.svg new file mode 100644 index 0000000..1133f98 --- /dev/null +++ b/docs/html/descriptors__control_8h__dep__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +descriptors_control.h + + +Node1 + + +descriptors_control.h + + + + + +Node2 + + +descriptors_control.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb.c + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/descriptors__control_8h__dep__incl_org.svg b/docs/html/descriptors__control_8h__dep__incl_org.svg new file mode 100644 index 0000000..7436e1d --- /dev/null +++ b/docs/html/descriptors__control_8h__dep__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +descriptors_control.h + + +Node1 + + +descriptors_control.h + + + + + +Node2 + + +descriptors_control.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb.c + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/descriptors__control_8h__incl.md5 b/docs/html/descriptors__control_8h__incl.md5 new file mode 100644 index 0000000..40902d2 --- /dev/null +++ b/docs/html/descriptors__control_8h__incl.md5 @@ -0,0 +1 @@ +d3281275833915addb7ef816eeb4e368 \ No newline at end of file diff --git a/docs/html/descriptors__control_8h__incl.svg b/docs/html/descriptors__control_8h__incl.svg new file mode 100644 index 0000000..8bf789a --- /dev/null +++ b/docs/html/descriptors__control_8h__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +descriptors_control.h + + +Node1 + + +descriptors_control.h + + + + + +Node2 + + +tusb.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_types.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/descriptors__control_8h__incl_org.svg b/docs/html/descriptors__control_8h__incl_org.svg new file mode 100644 index 0000000..553e14c --- /dev/null +++ b/docs/html/descriptors__control_8h__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +descriptors_control.h + + +Node1 + + +descriptors_control.h + + + + + +Node2 + + +tusb.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tinyusb_types.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 b/docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 new file mode 100644 index 0000000..8df2a9f --- /dev/null +++ b/docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.md5 @@ -0,0 +1 @@ +27d62d87851522088808009dfba26f28 \ No newline at end of file diff --git a/docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.svg b/docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.svg new file mode 100644 index 0000000..bae024a --- /dev/null +++ b/docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +tusb_set_descriptor + + +Node1 + + +tusb_set_descriptor + + + + + +Node2 + + +tinyusb_driver_install + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph_org.svg b/docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph_org.svg new file mode 100644 index 0000000..2f23115 --- /dev/null +++ b/docs/html/descriptors__control_8h_aa7ff8fdaea70ee1ce571843b70aba21f_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +tusb_set_descriptor + + +Node1 + + +tusb_set_descriptor + + + + + +Node2 + + +tinyusb_driver_install + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/descriptors__control_8h_source.html b/docs/html/descriptors__control_8h_source.html new file mode 100644 index 0000000..f47cec2 --- /dev/null +++ b/docs/html/descriptors__control_8h_source.html @@ -0,0 +1,134 @@ + + + + + + + +ESP-IDF Firmware: descriptors_control.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
descriptors_control.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include "tusb.h"
+
10#include "tinyusb_types.h"
+
11
+
12#ifdef __cplusplus
+
13extern "C" {
+
14#endif
+
15
+
16void tusb_set_descriptor(const tusb_desc_device_t *dev_desc, const char **str_desc, const uint8_t *cfg_desc);
+
17tusb_desc_device_t *tusb_get_active_desc(void);
+
18char **tusb_get_active_str_desc(void);
+
19void tusb_clear_descriptor(void);
+
20
+
21#ifdef __cplusplus
+
22}
+
23#endif
+
char ** tusb_get_active_str_desc(void)
+
tusb_desc_device_t * tusb_get_active_desc(void)
+
void tusb_set_descriptor(const tusb_desc_device_t *dev_desc, const char **str_desc, const uint8_t *cfg_desc)
+
void tusb_clear_descriptor(void)
+ +
+
+
+ + + + diff --git a/docs/html/dir_000000_000167.html b/docs/html/dir_000000_000167.html new file mode 100644 index 0000000..5489aab --- /dev/null +++ b/docs/html/dir_000000_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 1fa4e38f -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

1fa4e38f → modules Relation

File in components/espressif__esp-dsp/external_examples/1fa4e38fIncludes file in components/espressif__esp-dsp/modules
lyrat_board_app / main / external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
lyrat_board_app / main / external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000001_000167.html b/docs/html/dir_000001_000167.html new file mode 100644 index 0000000..744936f --- /dev/null +++ b/docs/html/dir_000001_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_graphics → modules Relation

File in components/espressif__esp-dsp/applications/azure_board_apps/apps/3d_graphicsIncludes file in components/espressif__esp-dsp/modules
main / applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
main / applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000002_000167.html b/docs/html/dir_000002_000167.html new file mode 100644 index 0000000..24aaff4 --- /dev/null +++ b/docs/html/dir_000002_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ + +
+ + + + diff --git a/docs/html/dir_000003_000167.html b/docs/html/dir_000003_000167.html new file mode 100644 index 0000000..8f20119 --- /dev/null +++ b/docs/html/dir_000003_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_graphics → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphicsIncludes file in components/espressif__esp-dsp/modules
main / external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
main / external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000004_000167.html b/docs/html/dir_000004_000167.html new file mode 100644 index 0000000..d4495c4 --- /dev/null +++ b/docs/html/dir_000004_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000005_000167.html b/docs/html/dir_000005_000167.html new file mode 100644 index 0000000..c7413c5 --- /dev/null +++ b/docs/html/dir_000005_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_graphics → modules Relation

File in components/espressif__esp-dsp/external_examples/d1468452/apps/3d_graphicsIncludes file in components/espressif__esp-dsp/modules
main / external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
main / external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000006_000167.html b/docs/html/dir_000006_000167.html new file mode 100644 index 0000000..b509974 --- /dev/null +++ b/docs/html/dir_000006_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_graphics → modules Relation

File in components/espressif__esp-dsp/external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphicsIncludes file in components/espressif__esp-dsp/modules
main / external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
main / external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000007_000167.html b/docs/html/dir_000007_000167.html new file mode 100644 index 0000000..fe9cc3d --- /dev/null +++ b/docs/html/dir_000007_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_matrix → modules Relation

File in components/espressif__esp-dsp/applications/azure_board_apps/graphics/3d_matrixIncludes file in components/espressif__esp-dsp/modules
3d_matrix_src / applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
3d_matrix_src / applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
+
+ +
+ + + + diff --git a/docs/html/dir_000008_000167.html b/docs/html/dir_000008_000167.html new file mode 100644 index 0000000..e5f5c13 --- /dev/null +++ b/docs/html/dir_000008_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_matrix → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrixIncludes file in components/espressif__esp-dsp/modules
3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
+
+ +
+ + + + diff --git a/docs/html/dir_000009_000167.html b/docs/html/dir_000009_000167.html new file mode 100644 index 0000000..d747bc3 --- /dev/null +++ b/docs/html/dir_000009_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_matrix → modules Relation

File in components/espressif__esp-dsp/external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrixIncludes file in components/espressif__esp-dsp/modules
3d_matrix_src / external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
3d_matrix_src / external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
+
+ +
+ + + + diff --git a/docs/html/dir_000013_000167.html b/docs/html/dir_000013_000167.html new file mode 100644 index 0000000..57a0334 --- /dev/null +++ b/docs/html/dir_000013_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix_src -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_matrix_src → modules Relation

File in components/espressif__esp-dsp/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_srcIncludes file in components/espressif__esp-dsp/modules
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000014_000167.html b/docs/html/dir_000014_000167.html new file mode 100644 index 0000000..9af03ef --- /dev/null +++ b/docs/html/dir_000014_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix_src -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_matrix_src → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_srcIncludes file in components/espressif__esp-dsp/modules
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000015_000167.html b/docs/html/dir_000015_000167.html new file mode 100644 index 0000000..86ecf7e --- /dev/null +++ b/docs/html/dir_000015_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix_src -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

3d_matrix_src → modules Relation

File in components/espressif__esp-dsp/external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_srcIncludes file in components/espressif__esp-dsp/modules
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000016_000036.html b/docs/html/dir_000016_000036.html new file mode 100644 index 0000000..486d7c3 --- /dev/null +++ b/docs/html/dir_000016_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: add -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

add → common Relation

File in components/espressif__esp-dsp/modules/math/addIncludes file in components/espressif__esp-dsp/modules/common
include / dsps_add.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000017_000036.html b/docs/html/dir_000017_000036.html new file mode 100644 index 0000000..4e1c983 --- /dev/null +++ b/docs/html/dir_000017_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: add -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

add → common Relation

File in components/espressif__esp-dsp/modules/matrix/addIncludes file in components/espressif__esp-dsp/modules/common
include / dspm_add.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000018_000036.html b/docs/html/dir_000018_000036.html new file mode 100644 index 0000000..da260bc --- /dev/null +++ b/docs/html/dir_000018_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: addc -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

addc → common Relation

File in components/espressif__esp-dsp/modules/math/addcIncludes file in components/espressif__esp-dsp/modules/common
include / dsps_addc.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000019_000036.html b/docs/html/dir_000019_000036.html new file mode 100644 index 0000000..ecee752 --- /dev/null +++ b/docs/html/dir_000019_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: addc -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

addc → common Relation

File in components/espressif__esp-dsp/modules/matrix/addcIncludes file in components/espressif__esp-dsp/modules/common
include / dspm_addc.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000020_000167.html b/docs/html/dir_000020_000167.html new file mode 100644 index 0000000..b110e51 --- /dev/null +++ b/docs/html/dir_000020_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: applications -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

applications → modules Relation

File in components/espressif__esp-dsp/applicationsIncludes file in components/espressif__esp-dsp/modules
azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
azure_board_apps / apps / 3d_graphics / main / applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
azure_board_apps / apps / 3d_graphics / main / applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
azure_board_apps / apps / kalman_filter / main / applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include_sim / esp_log.h
azure_board_apps / apps / kalman_filter / main / applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include / esp_dsp.h
azure_board_apps / apps / kalman_filter / main / applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppkalman / ekf_imu13states / include / ekf_imu13states.h
lyrat_board_app / main / applications/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
lyrat_board_app / main / applications/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
m5stack_core_s3 / apps / 3d_graphics / main / applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
m5stack_core_s3 / apps / 3d_graphics / main / applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
m5stack_core_s3 / apps / 3d_graphics / main / applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include_sim / esp_log.h
m5stack_core_s3 / apps / 3d_graphics / main / applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include / esp_dsp.h
m5stack_core_s3 / apps / 3d_graphics / main / applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include_sim / esp_err.h
m5stack_core_s3 / apps / kalman_filter / main / applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include_sim / esp_log.h
m5stack_core_s3 / apps / kalman_filter / main / applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include / esp_dsp.h
spectrum_box_lite / main / components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_log.h
spectrum_box_lite / main / components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.ccommon / include / esp_dsp.h
spectrum_box_lite / main / components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000021_000167.html b/docs/html/dir_000021_000167.html new file mode 100644 index 0000000..aa712d4 --- /dev/null +++ b/docs/html/dir_000021_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: applications -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

applications → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applicationsIncludes file in components/espressif__esp-dsp/modules
azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
azure_board_apps / apps / 3d_graphics / main / external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
azure_board_apps / apps / 3d_graphics / main / external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
azure_board_apps / apps / kalman_filter / main / external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include_sim / esp_log.h
azure_board_apps / apps / kalman_filter / main / external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include / esp_dsp.h
azure_board_apps / apps / kalman_filter / main / external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppkalman / ekf_imu13states / include / ekf_imu13states.h
lyrat_board_app / main / external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
lyrat_board_app / main / external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include_sim / esp_log.h
m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include / esp_dsp.h
m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include_sim / esp_err.h
m5stack_core_s3 / apps / kalman_filter / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include_sim / esp_log.h
m5stack_core_s3 / apps / kalman_filter / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include / esp_dsp.h
spectrum_box_lite / main / components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_log.h
spectrum_box_lite / main / components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.ccommon / include / esp_dsp.h
spectrum_box_lite / main / components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000022_000167.html b/docs/html/dir_000022_000167.html new file mode 100644 index 0000000..6c0c7b0 --- /dev/null +++ b/docs/html/dir_000022_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: apps -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000023_000167.html b/docs/html/dir_000023_000167.html new file mode 100644 index 0000000..c808f49 --- /dev/null +++ b/docs/html/dir_000023_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: apps -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000024_000167.html b/docs/html/dir_000024_000167.html new file mode 100644 index 0000000..f4caae0 --- /dev/null +++ b/docs/html/dir_000024_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: apps -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000025_000167.html b/docs/html/dir_000025_000167.html new file mode 100644 index 0000000..883b639 --- /dev/null +++ b/docs/html/dir_000025_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: apps -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000026_000167.html b/docs/html/dir_000026_000167.html new file mode 100644 index 0000000..692d009 --- /dev/null +++ b/docs/html/dir_000026_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: apps -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000027_000167.html b/docs/html/dir_000027_000167.html new file mode 100644 index 0000000..39fa17a --- /dev/null +++ b/docs/html/dir_000027_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: apps -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000028_000167.html b/docs/html/dir_000028_000167.html new file mode 100644 index 0000000..8769813 --- /dev/null +++ b/docs/html/dir_000028_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: azure_board_apps -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000029_000167.html b/docs/html/dir_000029_000167.html new file mode 100644 index 0000000..5cfa0c7 --- /dev/null +++ b/docs/html/dir_000029_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: azure_board_apps -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000030_000167.html b/docs/html/dir_000030_000167.html new file mode 100644 index 0000000..289056c --- /dev/null +++ b/docs/html/dir_000030_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: azure_board_apps -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000031_000167.html b/docs/html/dir_000031_000167.html new file mode 100644 index 0000000..5569c98 --- /dev/null +++ b/docs/html/dir_000031_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: b00f000e -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

b00f000e → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000eIncludes file in components/espressif__esp-dsp/modules
applications / azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
applications / azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
applications / azure_board_apps / apps / 3d_graphics / main / external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
applications / azure_board_apps / apps / 3d_graphics / main / external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
applications / azure_board_apps / apps / kalman_filter / main / external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include_sim / esp_log.h
applications / azure_board_apps / apps / kalman_filter / main / external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include / esp_dsp.h
applications / azure_board_apps / apps / kalman_filter / main / external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppkalman / ekf_imu13states / include / ekf_imu13states.h
applications / lyrat_board_app / main / external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
applications / lyrat_board_app / main / external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include_sim / esp_log.h
applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include / esp_dsp.h
applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include_sim / esp_err.h
applications / m5stack_core_s3 / apps / kalman_filter / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include_sim / esp_log.h
applications / m5stack_core_s3 / apps / kalman_filter / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include / esp_dsp.h
applications / spectrum_box_lite / main / components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_log.h
applications / spectrum_box_lite / main / components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.ccommon / include / esp_dsp.h
applications / spectrum_box_lite / main / components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000032_000036.html b/docs/html/dir_000032_000036.html new file mode 100644 index 0000000..2891833 --- /dev/null +++ b/docs/html/dir_000032_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: biquad -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

biquad → common Relation

File in components/espressif__esp-dsp/modules/iir/biquadIncludes file in components/espressif__esp-dsp/modules/common
dsps_biquad_gen_f32.cinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000032_000100.html b/docs/html/dir_000032_000100.html new file mode 100644 index 0000000..cbd1e41 --- /dev/null +++ b/docs/html/dir_000032_000100.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: biquad -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

biquad → include Relation

File in components/espressif__esp-dsp/modules/iir/biquadIncludes file in components/espressif__esp-dsp/modules/iir/include
dsps_biquad_f32_ansi.cdsps_biquad.h
dsps_biquad_gen_f32.cdsps_biquad_gen.h
dsps_biquad_sf32_ansi.cdsps_biquad.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000039.html b/docs/html/dir_000036_000039.html new file mode 100644 index 0000000..df33745 --- /dev/null +++ b/docs/html/dir_000036_000039.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> conv Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → conv Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/conv
include / esp_dsp.hinclude / dsps_conv.h
include / esp_dsp.hinclude / dsps_corr.h
include / esp_dsp.hinclude / dspi_conv.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000042.html b/docs/html/dir_000036_000042.html new file mode 100644 index 0000000..d98810f --- /dev/null +++ b/docs/html/dir_000036_000042.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> dct Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → dct Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/dct
include / esp_dsp.hinclude / dsps_dct.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000043.html b/docs/html/dir_000036_000043.html new file mode 100644 index 0000000..70f8722 --- /dev/null +++ b/docs/html/dir_000036_000043.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> dotprod Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → dotprod Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/dotprod
include / esp_dsp.hinclude / dsps_dotprod.h
include / esp_dsp.hinclude / dspi_dotprod.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000051.html b/docs/html/dir_000036_000051.html new file mode 100644 index 0000000..de723d7 --- /dev/null +++ b/docs/html/dir_000036_000051.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> fft Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → fft Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/fft
include / esp_dsp.hinclude / dsps_fft2r.h
include / esp_dsp.hinclude / dsps_fft4r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000052.html b/docs/html/dir_000036_000052.html new file mode 100644 index 0000000..42b2109 --- /dev/null +++ b/docs/html/dir_000036_000052.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> fir Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → fir Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/fir
include / esp_dsp.hinclude / dsps_fir.h
include / esp_dsp.hinclude / dsps_resampler.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000090.html b/docs/html/dir_000036_000090.html new file mode 100644 index 0000000..5f055dd --- /dev/null +++ b/docs/html/dir_000036_000090.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> iir Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → iir Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/iir
include / esp_dsp.hinclude / dsps_biquad.h
include / esp_dsp.hinclude / dsps_biquad_gen.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000162.html b/docs/html/dir_000036_000162.html new file mode 100644 index 0000000..3b4098b --- /dev/null +++ b/docs/html/dir_000036_000162.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> math Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → math Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/math
include / esp_dsp.hinclude / dsps_math.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000163.html b/docs/html/dir_000036_000163.html new file mode 100644 index 0000000..d22b4e3 --- /dev/null +++ b/docs/html/dir_000036_000163.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> matrix Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → matrix Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/matrix
include / esp_dsp.hinclude / dspm_matrix.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000182.html b/docs/html/dir_000036_000182.html new file mode 100644 index 0000000..5647ad0 --- /dev/null +++ b/docs/html/dir_000036_000182.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> support Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → support Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/support
include / esp_dsp.hinclude / dsps_d_gen.h
include / esp_dsp.hinclude / dsps_h_gen.h
include / esp_dsp.hinclude / dsps_tone_gen.h
include / esp_dsp.hinclude / dsps_snr.h
include / esp_dsp.hinclude / dsps_sfdr.h
include / esp_dsp.hinclude / dsps_view.h
+
+ +
+ + + + diff --git a/docs/html/dir_000036_000192.html b/docs/html/dir_000036_000192.html new file mode 100644 index 0000000..0902239 --- /dev/null +++ b/docs/html/dir_000036_000192.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> windows Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → windows Relation

File in components/espressif__esp-dsp/modules/commonIncludes file in components/espressif__esp-dsp/modules/windows
include / esp_dsp.hinclude / dsps_wind.h
+
+ +
+ + + + diff --git a/docs/html/dir_000037_000101.html b/docs/html/dir_000037_000101.html new file mode 100644 index 0000000..b364fa6 --- /dev/null +++ b/docs/html/dir_000037_000101.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: common -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

common → include Relation

File in components/espressif__esp-dsp/modules/kalman/ekf/commonIncludes file in components/espressif__esp-dsp/modules/kalman/ekf/include
ekf.cppekf.h
+
+ +
+ + + + diff --git a/docs/html/dir_000039_000036.html b/docs/html/dir_000039_000036.html new file mode 100644 index 0000000..b566dfd --- /dev/null +++ b/docs/html/dir_000039_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: conv -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

conv → common Relation

File in components/espressif__esp-dsp/modules/convIncludes file in components/espressif__esp-dsp/modules/common
float / dspi_conv_f32_ansi.cinclude_sim / esp_log.h
float / dsps_ccorr_f32_ansi.cinclude_sim / esp_log.h
float / dsps_conv_f32_ansi.cinclude_sim / esp_log.h
include / dspi_conv.hinclude / dsp_err.h
include / dspi_conv.hinclude / dsp_types.h
include / dsps_ccorr.hinclude / dsp_err.h
include / dsps_conv.hinclude / dsp_err.h
include / dsps_corr.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000040_000036.html b/docs/html/dir_000040_000036.html new file mode 100644 index 0000000..3c30320 --- /dev/null +++ b/docs/html/dir_000040_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: cplx_gen -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

cplx_gen → common Relation

File in components/espressif__esp-dsp/modules/support/cplx_genIncludes file in components/espressif__esp-dsp/modules/common
dsps_cplx_gen_init.cinclude / dsp_common.h
dsps_cplx_gen_init.cinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000040_000116.html b/docs/html/dir_000040_000116.html new file mode 100644 index 0000000..8f0f2c4 --- /dev/null +++ b/docs/html/dir_000040_000116.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: cplx_gen -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

cplx_gen → include Relation

File in components/espressif__esp-dsp/modules/support/cplx_genIncludes file in components/espressif__esp-dsp/modules/support/include
dsps_cplx_gen.cdsps_cplx_gen.h
dsps_cplx_gen_init.cdsps_cplx_gen.h
+
+ +
+ + + + diff --git a/docs/html/dir_000041_000167.html b/docs/html/dir_000041_000167.html new file mode 100644 index 0000000..023b48a --- /dev/null +++ b/docs/html/dir_000041_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: d1468452 -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000042_000036.html b/docs/html/dir_000042_000036.html new file mode 100644 index 0000000..004362c --- /dev/null +++ b/docs/html/dir_000042_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: dct -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

dct → common Relation

File in components/espressif__esp-dsp/modules/dctIncludes file in components/espressif__esp-dsp/modules/common
float / dsps_dct_f32.cinclude / dsp_common.h
float / dsps_dctiv_f32.cinclude / dsp_common.h
float / dsps_dstiv_f32.cinclude / dsp_common.h
include / dsps_dct.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000042_000051.html b/docs/html/dir_000042_000051.html new file mode 100644 index 0000000..f7b4e94 --- /dev/null +++ b/docs/html/dir_000042_000051.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: dct -> fft Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

dct → fft Relation

File in components/espressif__esp-dsp/modules/dctIncludes file in components/espressif__esp-dsp/modules/fft
float / dsps_dct_f32.cinclude / dsps_fft2r.h
float / dsps_dctiv_f32.cinclude / dsps_fft2r.h
float / dsps_dstiv_f32.cinclude / dsps_fft2r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000043_000036.html b/docs/html/dir_000043_000036.html new file mode 100644 index 0000000..bdb5e96 --- /dev/null +++ b/docs/html/dir_000043_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: dotprod -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

dotprod → common Relation

File in components/espressif__esp-dsp/modules/dotprodIncludes file in components/espressif__esp-dsp/modules/common
include / dspi_dotprod.hinclude_sim / esp_log.h
include / dspi_dotprod.hinclude / dsp_err.h
include / dspi_dotprod.hinclude / dsp_types.h
include / dsps_dotprod.hinclude_sim / esp_log.h
include / dsps_dotprod.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000044_000163.html b/docs/html/dir_000044_000163.html new file mode 100644 index 0000000..9086abb --- /dev/null +++ b/docs/html/dir_000044_000163.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: ekf -> matrix Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

ekf → matrix Relation

File in components/espressif__esp-dsp/modules/kalman/ekfIncludes file in components/espressif__esp-dsp/modules/matrix
include / ekf.hinclude / mat.h
+
+ +
+ + + + diff --git a/docs/html/dir_000045_000044.html b/docs/html/dir_000045_000044.html new file mode 100644 index 0000000..f2da04c --- /dev/null +++ b/docs/html/dir_000045_000044.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: ekf_imu13states -> ekf Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

ekf_imu13states → ekf Relation

File in components/espressif__esp-dsp/modules/kalman/ekf_imu13statesIncludes file in components/espressif__esp-dsp/modules/kalman/ekf
include / ekf_imu13states.hinclude / ekf.h
+
+ +
+ + + + diff --git a/docs/html/dir_000045_000102.html b/docs/html/dir_000045_000102.html new file mode 100644 index 0000000..6f6c9dd --- /dev/null +++ b/docs/html/dir_000045_000102.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: ekf_imu13states -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

ekf_imu13states → include Relation

File in components/espressif__esp-dsp/modules/kalman/ekf_imu13statesIncludes file in components/espressif__esp-dsp/modules/kalman/ekf_imu13states/include
ekf_imu13states.cppekf_imu13states.h
+
+ +
+ + + + diff --git a/docs/html/dir_000047_000046.html b/docs/html/dir_000047_000046.html new file mode 100644 index 0000000..07ea7e6 --- /dev/null +++ b/docs/html/dir_000047_000046.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: espressif__esp_tinyusb -> espressif__esp-dsp Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ + +
+ + + + diff --git a/docs/html/dir_000047_000125.html b/docs/html/dir_000047_000125.html new file mode 100644 index 0000000..2c380b2 --- /dev/null +++ b/docs/html/dir_000047_000125.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: espressif__esp_tinyusb -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000047_000128.html b/docs/html/dir_000047_000128.html new file mode 100644 index 0000000..cc059cd --- /dev/null +++ b/docs/html/dir_000047_000128.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: espressif__esp_tinyusb -> include_private Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

espressif__esp_tinyusb → include_private Relation

File in components/espressif__esp_tinyusbIncludes file in components/espressif__esp_tinyusb/include_private
cdc.ccdc.h
descriptors_control.cdescriptors_control.h
tinyusb.cdescriptors_control.h
tinyusb.cusb_descriptors.h
tusb_cdc_acm.ccdc.h
tusb_console.ccdc.h
usb_descriptors.cusb_descriptors.h
+
+ +
+ + + + diff --git a/docs/html/dir_000048_000046.html b/docs/html/dir_000048_000046.html new file mode 100644 index 0000000..2bbc14a --- /dev/null +++ b/docs/html/dir_000048_000046.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: espressif__led_strip -> espressif__esp-dsp Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

espressif__led_strip → espressif__esp-dsp Relation

File in components/espressif__led_stripIncludes file in components/espressif__esp-dsp
include / led_strip.hmodules / common / include_sim / esp_err.h
include / led_strip_rmt.hmodules / common / include_sim / esp_err.h
include / led_strip_spi.hmodules / common / include_sim / esp_err.h
interface / led_strip_interface.hmodules / common / include_sim / esp_err.h
src / led_strip_api.cmodules / common / include_sim / esp_log.h
src / led_strip_rmt_dev.cmodules / common / include_sim / esp_log.h
src / led_strip_rmt_dev_idf4.cmodules / common / include_sim / esp_log.h
src / led_strip_spi_dev.cmodules / common / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000049_000167.html b/docs/html/dir_000049_000167.html new file mode 100644 index 0000000..f130ec4 --- /dev/null +++ b/docs/html/dir_000049_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: external_examples -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

external_examples → modules Relation

File in components/espressif__esp-dsp/external_examplesIncludes file in components/espressif__esp-dsp/modules
b00f000e / applications / azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
b00f000e / applications / azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
f9c2d4b3 / azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
f9c2d4b3 / azure_board_apps / graphics / 3d_matrix / 3d_matrix_src / external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
1fa4e38f / lyrat_board_app / main / external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
1fa4e38f / lyrat_board_app / main / external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
b00f000e / applications / azure_board_apps / apps / 3d_graphics / main / external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
b00f000e / applications / azure_board_apps / apps / 3d_graphics / main / external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
b00f000e / applications / azure_board_apps / apps / kalman_filter / main / external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include_sim / esp_log.h
b00f000e / applications / azure_board_apps / apps / kalman_filter / main / external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include / esp_dsp.h
b00f000e / applications / azure_board_apps / apps / kalman_filter / main / external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppkalman / ekf_imu13states / include / ekf_imu13states.h
b00f000e / applications / lyrat_board_app / main / external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
b00f000e / applications / lyrat_board_app / main / external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
b00f000e / applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
b00f000e / applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
b00f000e / applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include_sim / esp_log.h
b00f000e / applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include / esp_dsp.h
b00f000e / applications / m5stack_core_s3 / apps / 3d_graphics / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.ccommon / include_sim / esp_err.h
b00f000e / applications / m5stack_core_s3 / apps / kalman_filter / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include_sim / esp_log.h
b00f000e / applications / m5stack_core_s3 / apps / kalman_filter / main / external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include / esp_dsp.h
b00f000e / applications / spectrum_box_lite / main / components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_log.h
b00f000e / applications / spectrum_box_lite / main / components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.ccommon / include / esp_dsp.h
b00f000e / applications / spectrum_box_lite / main / components/espressif__esp-dsp/external_examples/b00f000e/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_err.h
d1468452 / apps / 3d_graphics / main / external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
d1468452 / apps / 3d_graphics / main / external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
d1468452 / apps / kalman_filter / main / external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include_sim / esp_log.h
d1468452 / apps / kalman_filter / main / external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include / esp_dsp.h
d1468452 / apps / kalman_filter / main / external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cppkalman / ekf_imu13states / include / ekf_imu13states.h
f9c2d4b3 / azure_board_apps / apps / 3d_graphics / main / external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
f9c2d4b3 / azure_board_apps / apps / 3d_graphics / main / external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
f9c2d4b3 / azure_board_apps / apps / kalman_filter / main / external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include_sim / esp_log.h
f9c2d4b3 / azure_board_apps / apps / kalman_filter / main / external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include / esp_dsp.h
f9c2d4b3 / azure_board_apps / apps / kalman_filter / main / external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppkalman / ekf_imu13states / include / ekf_imu13states.h
+
+ +
+ + + + diff --git a/docs/html/dir_000050_000167.html b/docs/html/dir_000050_000167.html new file mode 100644 index 0000000..b310147 --- /dev/null +++ b/docs/html/dir_000050_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: f9c2d4b3 -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000051_000036.html b/docs/html/dir_000051_000036.html new file mode 100644 index 0000000..febce4a --- /dev/null +++ b/docs/html/dir_000051_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fft -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000051_000163.html b/docs/html/dir_000051_000163.html new file mode 100644 index 0000000..86512bd --- /dev/null +++ b/docs/html/dir_000051_000163.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fft -> matrix Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fft → matrix Relation

File in components/espressif__esp-dsp/modules/fftIncludes file in components/espressif__esp-dsp/modules/matrix
test_sim / test_fft2r.cmul / include / dspm_mult.h
+
+ +
+ + + + diff --git a/docs/html/dir_000052_000036.html b/docs/html/dir_000052_000036.html new file mode 100644 index 0000000..40b2063 --- /dev/null +++ b/docs/html/dir_000052_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fir -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000053_000097.html b/docs/html/dir_000053_000097.html new file mode 100644 index 0000000..98ca0bd --- /dev/null +++ b/docs/html/dir_000053_000097.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ + +
+ + + + diff --git a/docs/html/dir_000054_000036.html b/docs/html/dir_000054_000036.html new file mode 100644 index 0000000..866321e --- /dev/null +++ b/docs/html/dir_000054_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → common Relation

File in components/espressif__esp-dsp/modules/fft/fixedIncludes file in components/espressif__esp-dsp/modules/common
dsps_fft2r_sc16_ansi.cinclude / dsp_common.h
dsps_fft2r_sc16_ansi.cinclude / dsp_tests.h
dsps_fft2r_sc16_ansi.cinclude / dsp_types.h
dsps_fft2r_sc16_ansi.cinclude_sim / esp_attr.h
+
+ +
+ + + + diff --git a/docs/html/dir_000054_000098.html b/docs/html/dir_000054_000098.html new file mode 100644 index 0000000..9d673ea --- /dev/null +++ b/docs/html/dir_000054_000098.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → include Relation

File in components/espressif__esp-dsp/modules/fft/fixedIncludes file in components/espressif__esp-dsp/modules/fft/include
dsps_fft2r_sc16_ansi.cdsps_fft2r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000055_000036.html b/docs/html/dir_000055_000036.html new file mode 100644 index 0000000..3c40e91 --- /dev/null +++ b/docs/html/dir_000055_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → common Relation

File in components/espressif__esp-dsp/modules/fir/fixedIncludes file in components/espressif__esp-dsp/modules/common
dsps_fird_init_s16.cinclude / dsp_tests.h
dsps_firmr_init_s16.cinclude / dsp_common.h
dsps_firmr_init_s16.cinclude / dsp_tests.h
dsps_firmr_s16_ansi.cinclude / dsp_common.h
dsps_firmr_s16_ansi.cinclude / dsp_tests.h
+
+ +
+ + + + diff --git a/docs/html/dir_000055_000099.html b/docs/html/dir_000055_000099.html new file mode 100644 index 0000000..3499844 --- /dev/null +++ b/docs/html/dir_000055_000099.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → include Relation

File in components/espressif__esp-dsp/modules/fir/fixedIncludes file in components/espressif__esp-dsp/modules/fir/include
dsps_fird_init_s16.cdsps_fir.h
dsps_fird_s16_ansi.cdsps_fir.h
dsps_firmr_init_s16.cdsps_fir.h
dsps_firmr_s16_ansi.cdsps_fir.h
+
+ +
+ + + + diff --git a/docs/html/dir_000056_000103.html b/docs/html/dir_000056_000103.html new file mode 100644 index 0000000..c4f4946 --- /dev/null +++ b/docs/html/dir_000056_000103.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → include Relation

File in components/espressif__esp-dsp/modules/math/add/fixedIncludes file in components/espressif__esp-dsp/modules/math/add/include
dsps_add_s16_ansi.cdsps_add.h
dsps_add_s8_ansi.cdsps_add.h
+
+ +
+ + + + diff --git a/docs/html/dir_000057_000106.html b/docs/html/dir_000057_000106.html new file mode 100644 index 0000000..74ca86e --- /dev/null +++ b/docs/html/dir_000057_000106.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → include Relation

File in components/espressif__esp-dsp/modules/math/mul/fixedIncludes file in components/espressif__esp-dsp/modules/math/mul/include
dsps_mul_s16_ansi.cdsps_mul.h
dsps_mul_s8_ansi.cdsps_mul.h
+
+ +
+ + + + diff --git a/docs/html/dir_000058_000107.html b/docs/html/dir_000058_000107.html new file mode 100644 index 0000000..18bf4f6 --- /dev/null +++ b/docs/html/dir_000058_000107.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → include Relation

File in components/espressif__esp-dsp/modules/math/mulc/fixedIncludes file in components/espressif__esp-dsp/modules/math/mulc/include
dsps_mulc_s16_ansi.cdsps_mulc.h
+
+ +
+ + + + diff --git a/docs/html/dir_000059_000016.html b/docs/html/dir_000059_000016.html new file mode 100644 index 0000000..1c24fdb --- /dev/null +++ b/docs/html/dir_000059_000016.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> add Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → add Relation

File in components/espressif__esp-dsp/modules/math/sub/fixedIncludes file in components/espressif__esp-dsp/modules/math/add
dsps_sub_s16_ansi.cinclude / dsps_add.h
+
+ +
+ + + + diff --git a/docs/html/dir_000059_000109.html b/docs/html/dir_000059_000109.html new file mode 100644 index 0000000..db5e22c --- /dev/null +++ b/docs/html/dir_000059_000109.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → include Relation

File in components/espressif__esp-dsp/modules/math/sub/fixedIncludes file in components/espressif__esp-dsp/modules/math/sub/include
dsps_sub_s8_ansi.cdsps_sub.h
+
+ +
+ + + + diff --git a/docs/html/dir_000060_000043.html b/docs/html/dir_000060_000043.html new file mode 100644 index 0000000..213d829 --- /dev/null +++ b/docs/html/dir_000060_000043.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> dotprod Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → dotprod Relation

File in components/espressif__esp-dsp/modules/matrix/mul/fixedIncludes file in components/espressif__esp-dsp/modules/dotprod
dspm_mult_s16_ansi.cinclude / dsps_dotprod.h
+
+ +
+ + + + diff --git a/docs/html/dir_000060_000113.html b/docs/html/dir_000060_000113.html new file mode 100644 index 0000000..455ee2d --- /dev/null +++ b/docs/html/dir_000060_000113.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: fixed -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

fixed → include Relation

File in components/espressif__esp-dsp/modules/matrix/mul/fixedIncludes file in components/espressif__esp-dsp/modules/matrix/mul/include
dspm_mult_s16_ansi.cdspm_mult.h
+
+ +
+ + + + diff --git a/docs/html/dir_000062_000036.html b/docs/html/dir_000062_000036.html new file mode 100644 index 0000000..e1fc916 --- /dev/null +++ b/docs/html/dir_000062_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → common Relation

File in components/espressif__esp-dsp/modules/conv/floatIncludes file in components/espressif__esp-dsp/modules/common
dspi_conv_f32_ansi.cinclude_sim / esp_log.h
dsps_ccorr_f32_ansi.cinclude_sim / esp_log.h
dsps_conv_f32_ansi.cinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000062_000095.html b/docs/html/dir_000062_000095.html new file mode 100644 index 0000000..3492c0a --- /dev/null +++ b/docs/html/dir_000062_000095.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/conv/floatIncludes file in components/espressif__esp-dsp/modules/conv/include
dspi_conv_f32_ansi.cdspi_conv.h
dsps_ccorr_f32_ansi.cdsps_conv.h
dsps_conv_f32_ansi.cdsps_conv.h
dsps_corr_f32_ansi.cdsps_corr.h
+
+ +
+ + + + diff --git a/docs/html/dir_000063_000036.html b/docs/html/dir_000063_000036.html new file mode 100644 index 0000000..b002361 --- /dev/null +++ b/docs/html/dir_000063_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → common Relation

File in components/espressif__esp-dsp/modules/dct/floatIncludes file in components/espressif__esp-dsp/modules/common
dsps_dct_f32.cinclude / dsp_common.h
dsps_dctiv_f32.cinclude / dsp_common.h
dsps_dstiv_f32.cinclude / dsp_common.h
+
+ +
+ + + + diff --git a/docs/html/dir_000063_000051.html b/docs/html/dir_000063_000051.html new file mode 100644 index 0000000..058e538 --- /dev/null +++ b/docs/html/dir_000063_000051.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> fft Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → fft Relation

File in components/espressif__esp-dsp/modules/dct/floatIncludes file in components/espressif__esp-dsp/modules/fft
dsps_dct_f32.cinclude / dsps_fft2r.h
dsps_dctiv_f32.cinclude / dsps_fft2r.h
dsps_dstiv_f32.cinclude / dsps_fft2r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000063_000096.html b/docs/html/dir_000063_000096.html new file mode 100644 index 0000000..3d09d7e --- /dev/null +++ b/docs/html/dir_000063_000096.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/dct/floatIncludes file in components/espressif__esp-dsp/modules/dct/include
dsps_dct_f32.cdsps_dct.h
dsps_dctiv_f32.cdsps_dct.h
dsps_dstiv_f32.cdsps_dct.h
+
+ +
+ + + + diff --git a/docs/html/dir_000064_000097.html b/docs/html/dir_000064_000097.html new file mode 100644 index 0000000..8c55c7c --- /dev/null +++ b/docs/html/dir_000064_000097.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/dotprod/floatIncludes file in components/espressif__esp-dsp/modules/dotprod/include
dspi_dotprod_f32_ansi.cdspi_dotprod.h
dspi_dotprod_off_f32_ansi.cdspi_dotprod.h
dsps_dotprod_f32_ansi.cdsps_dotprod.h
dsps_dotprode_f32_ansi.cdsps_dotprod.h
+
+ +
+ + + + diff --git a/docs/html/dir_000065_000036.html b/docs/html/dir_000065_000036.html new file mode 100644 index 0000000..f64013f --- /dev/null +++ b/docs/html/dir_000065_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000065_000098.html b/docs/html/dir_000065_000098.html new file mode 100644 index 0000000..1ec104c --- /dev/null +++ b/docs/html/dir_000065_000098.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000066_000036.html b/docs/html/dir_000066_000036.html new file mode 100644 index 0000000..a374a40 --- /dev/null +++ b/docs/html/dir_000066_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → common Relation

File in components/espressif__esp-dsp/modules/fir/floatIncludes file in components/espressif__esp-dsp/modules/common
dsps_firmr_f32_ansi.cinclude / dsp_common.h
dsps_firmr_f32_ansi.cinclude / dsp_tests.h
dsps_firmr_init_f32.cinclude / dsp_common.h
dsps_firmr_init_f32.cinclude / dsp_tests.h
+
+ +
+ + + + diff --git a/docs/html/dir_000066_000099.html b/docs/html/dir_000066_000099.html new file mode 100644 index 0000000..b0812b8 --- /dev/null +++ b/docs/html/dir_000066_000099.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/fir/floatIncludes file in components/espressif__esp-dsp/modules/fir/include
dsps_fir_f32_ansi.cdsps_fir.h
dsps_fir_init_f32.cdsps_fir.h
dsps_fird_f32_ansi.cdsps_fir.h
dsps_fird_init_f32.cdsps_fir.h
dsps_firmr_f32_ansi.cdsps_fir.h
dsps_firmr_init_f32.cdsps_fir.h
+
+ +
+ + + + diff --git a/docs/html/dir_000067_000103.html b/docs/html/dir_000067_000103.html new file mode 100644 index 0000000..688850a --- /dev/null +++ b/docs/html/dir_000067_000103.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/math/add/floatIncludes file in components/espressif__esp-dsp/modules/math/add/include
dsps_add_f32_ansi.cdsps_add.h
+
+ +
+ + + + diff --git a/docs/html/dir_000068_000104.html b/docs/html/dir_000068_000104.html new file mode 100644 index 0000000..86a7a30 --- /dev/null +++ b/docs/html/dir_000068_000104.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/math/addc/floatIncludes file in components/espressif__esp-dsp/modules/math/addc/include
dsps_addc_f32_ansi.cdsps_addc.h
+
+ +
+ + + + diff --git a/docs/html/dir_000069_000106.html b/docs/html/dir_000069_000106.html new file mode 100644 index 0000000..a482cc3 --- /dev/null +++ b/docs/html/dir_000069_000106.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/math/mul/floatIncludes file in components/espressif__esp-dsp/modules/math/mul/include
dsps_mul_f32_ansi.cdsps_mul.h
+
+ +
+ + + + diff --git a/docs/html/dir_000070_000107.html b/docs/html/dir_000070_000107.html new file mode 100644 index 0000000..85e6da8 --- /dev/null +++ b/docs/html/dir_000070_000107.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/math/mulc/floatIncludes file in components/espressif__esp-dsp/modules/math/mulc/include
dsps_mulc_f32_ansi.cdsps_mulc.h
+
+ +
+ + + + diff --git a/docs/html/dir_000071_000108.html b/docs/html/dir_000071_000108.html new file mode 100644 index 0000000..11e5e4d --- /dev/null +++ b/docs/html/dir_000071_000108.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/math/sqrt/floatIncludes file in components/espressif__esp-dsp/modules/math/sqrt/include
dsps_sqrt_f32_ansi.cdsps_sqrt.h
+
+ +
+ + + + diff --git a/docs/html/dir_000072_000109.html b/docs/html/dir_000072_000109.html new file mode 100644 index 0000000..0a72100 --- /dev/null +++ b/docs/html/dir_000072_000109.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/math/sub/floatIncludes file in components/espressif__esp-dsp/modules/math/sub/include
dsps_sub_f32_ansi.cdsps_sub.h
+
+ +
+ + + + diff --git a/docs/html/dir_000073_000110.html b/docs/html/dir_000073_000110.html new file mode 100644 index 0000000..80fc482 --- /dev/null +++ b/docs/html/dir_000073_000110.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/matrix/add/floatIncludes file in components/espressif__esp-dsp/modules/matrix/add/include
dspm_add_f32_ansi.cdspm_add.h
+
+ +
+ + + + diff --git a/docs/html/dir_000074_000111.html b/docs/html/dir_000074_000111.html new file mode 100644 index 0000000..d370c1d --- /dev/null +++ b/docs/html/dir_000074_000111.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/matrix/addc/floatIncludes file in components/espressif__esp-dsp/modules/matrix/addc/include
dspm_addc_f32_ansi.cdspm_addc.h
+
+ +
+ + + + diff --git a/docs/html/dir_000075_000043.html b/docs/html/dir_000075_000043.html new file mode 100644 index 0000000..3be86f4 --- /dev/null +++ b/docs/html/dir_000075_000043.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> dotprod Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → dotprod Relation

File in components/espressif__esp-dsp/modules/matrix/mul/floatIncludes file in components/espressif__esp-dsp/modules/dotprod
dspm_mult_f32_ansi.cinclude / dsps_dotprod.h
+
+ +
+ + + + diff --git a/docs/html/dir_000075_000113.html b/docs/html/dir_000075_000113.html new file mode 100644 index 0000000..76c2420 --- /dev/null +++ b/docs/html/dir_000075_000113.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/matrix/mul/floatIncludes file in components/espressif__esp-dsp/modules/matrix/mul/include
dspm_mult_ex_f32_ansi.cdspm_mult.h
dspm_mult_f32_ansi.cdspm_mult.h
+
+ +
+ + + + diff --git a/docs/html/dir_000076_000114.html b/docs/html/dir_000076_000114.html new file mode 100644 index 0000000..8e89369 --- /dev/null +++ b/docs/html/dir_000076_000114.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/matrix/mulc/floatIncludes file in components/espressif__esp-dsp/modules/matrix/mulc/include
dspm_mulc_f32_ansi.cdspm_mulc.h
+
+ +
+ + + + diff --git a/docs/html/dir_000077_000115.html b/docs/html/dir_000077_000115.html new file mode 100644 index 0000000..fd0c165 --- /dev/null +++ b/docs/html/dir_000077_000115.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/matrix/sub/floatIncludes file in components/espressif__esp-dsp/modules/matrix/sub/include
dspm_sub_f32_ansi.cdspm_sub.h
+
+ +
+ + + + diff --git a/docs/html/dir_000078_000036.html b/docs/html/dir_000078_000036.html new file mode 100644 index 0000000..24a26dc --- /dev/null +++ b/docs/html/dir_000078_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → common Relation

File in components/espressif__esp-dsp/modules/support/sfdr/floatIncludes file in components/espressif__esp-dsp/modules/common
dsps_sfdr_f32.cppinclude / dsp_common.h
dsps_sfdr_f32.cppinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000078_000051.html b/docs/html/dir_000078_000051.html new file mode 100644 index 0000000..40fd8cd --- /dev/null +++ b/docs/html/dir_000078_000051.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> fft Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → fft Relation

File in components/espressif__esp-dsp/modules/support/sfdr/floatIncludes file in components/espressif__esp-dsp/modules/fft
dsps_sfdr_f32.cppinclude / dsps_fft2r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000078_000116.html b/docs/html/dir_000078_000116.html new file mode 100644 index 0000000..28ba251 --- /dev/null +++ b/docs/html/dir_000078_000116.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/support/sfdr/floatIncludes file in components/espressif__esp-dsp/modules/support/include
dsps_sfdr_f32.cppdsps_sfdr.h
+
+ +
+ + + + diff --git a/docs/html/dir_000079_000036.html b/docs/html/dir_000079_000036.html new file mode 100644 index 0000000..9950874 --- /dev/null +++ b/docs/html/dir_000079_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → common Relation

File in components/espressif__esp-dsp/modules/support/snr/floatIncludes file in components/espressif__esp-dsp/modules/common
dsps_snr_f32.cppinclude / dsp_common.h
dsps_snr_f32.cppinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000079_000051.html b/docs/html/dir_000079_000051.html new file mode 100644 index 0000000..2657c73 --- /dev/null +++ b/docs/html/dir_000079_000051.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> fft Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → fft Relation

File in components/espressif__esp-dsp/modules/support/snr/floatIncludes file in components/espressif__esp-dsp/modules/fft
dsps_snr_f32.cppinclude / dsps_fft2r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000079_000116.html b/docs/html/dir_000079_000116.html new file mode 100644 index 0000000..e0670c8 --- /dev/null +++ b/docs/html/dir_000079_000116.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/support/snr/floatIncludes file in components/espressif__esp-dsp/modules/support/include
dsps_snr_f32.cppdsps_snr.h
+
+ +
+ + + + diff --git a/docs/html/dir_000080_000118.html b/docs/html/dir_000080_000118.html new file mode 100644 index 0000000..c38da34 --- /dev/null +++ b/docs/html/dir_000080_000118.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/windows/blackman/floatIncludes file in components/espressif__esp-dsp/modules/windows/blackman/include
dsps_wind_blackman_f32.cdsps_wind_blackman.h
+
+ +
+ + + + diff --git a/docs/html/dir_000081_000119.html b/docs/html/dir_000081_000119.html new file mode 100644 index 0000000..031ca4c --- /dev/null +++ b/docs/html/dir_000081_000119.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/windows/blackman_harris/floatIncludes file in components/espressif__esp-dsp/modules/windows/blackman_harris/include
dsps_wind_blackman_harris_f32.cdsps_wind_blackman_harris.h
+
+ +
+ + + + diff --git a/docs/html/dir_000082_000120.html b/docs/html/dir_000082_000120.html new file mode 100644 index 0000000..5c6e30c --- /dev/null +++ b/docs/html/dir_000082_000120.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/windows/blackman_nuttall/floatIncludes file in components/espressif__esp-dsp/modules/windows/blackman_nuttall/include
dsps_wind_blackman_nuttall_f32.cdsps_wind_blackman_nuttall.h
+
+ +
+ + + + diff --git a/docs/html/dir_000083_000121.html b/docs/html/dir_000083_000121.html new file mode 100644 index 0000000..30c10fe --- /dev/null +++ b/docs/html/dir_000083_000121.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/windows/flat_top/floatIncludes file in components/espressif__esp-dsp/modules/windows/flat_top/include
dsps_wind_flat_top_f32.cdsps_wind_flat_top.h
+
+ +
+ + + + diff --git a/docs/html/dir_000084_000122.html b/docs/html/dir_000084_000122.html new file mode 100644 index 0000000..868ef17 --- /dev/null +++ b/docs/html/dir_000084_000122.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/windows/hann/floatIncludes file in components/espressif__esp-dsp/modules/windows/hann/include
dsps_wind_hann_f32.cdsps_wind_hann.h
+
+ +
+ + + + diff --git a/docs/html/dir_000085_000124.html b/docs/html/dir_000085_000124.html new file mode 100644 index 0000000..f51ccac --- /dev/null +++ b/docs/html/dir_000085_000124.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: float -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

float → include Relation

File in components/espressif__esp-dsp/modules/windows/nuttall/floatIncludes file in components/espressif__esp-dsp/modules/windows/nuttall/include
dsps_wind_nuttall_f32.cdsps_wind_nuttall.h
+
+ +
+ + + + diff --git a/docs/html/dir_000086_000167.html b/docs/html/dir_000086_000167.html new file mode 100644 index 0000000..93d568c --- /dev/null +++ b/docs/html/dir_000086_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: graphics -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

graphics → modules Relation

File in components/espressif__esp-dsp/applications/azure_board_apps/graphicsIncludes file in components/espressif__esp-dsp/modules
3d_matrix / 3d_matrix_src / applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
3d_matrix / 3d_matrix_src / applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000087_000167.html b/docs/html/dir_000087_000167.html new file mode 100644 index 0000000..88ce88e --- /dev/null +++ b/docs/html/dir_000087_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: graphics -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

graphics → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applications/azure_board_apps/graphicsIncludes file in components/espressif__esp-dsp/modules
3d_matrix / 3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
3d_matrix / 3d_matrix_src / external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000088_000167.html b/docs/html/dir_000088_000167.html new file mode 100644 index 0000000..5d589d1 --- /dev/null +++ b/docs/html/dir_000088_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: graphics -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

graphics → modules Relation

File in components/espressif__esp-dsp/external_examples/f9c2d4b3/azure_board_apps/graphicsIncludes file in components/espressif__esp-dsp/modules
3d_matrix / 3d_matrix_src / external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hkalman / ekf_imu13states / include / ekf_imu13states.h
3d_matrix / 3d_matrix_src / external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.hcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000090_000036.html b/docs/html/dir_000090_000036.html new file mode 100644 index 0000000..3040bf6 --- /dev/null +++ b/docs/html/dir_000090_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: iir -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

iir → common Relation

File in components/espressif__esp-dsp/modules/iirIncludes file in components/espressif__esp-dsp/modules/common
biquad / dsps_biquad_gen_f32.cinclude_sim / esp_log.h
include / dsps_biquad.hinclude / dsp_err.h
include / dsps_biquad_gen.hinclude / dsp_err.h
test_sim / test_iir_biquad.cinclude / dsp_common.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000039.html b/docs/html/dir_000094_000039.html new file mode 100644 index 0000000..5af66bb --- /dev/null +++ b/docs/html/dir_000094_000039.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> conv Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → conv Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/conv
esp_dsp.hinclude / dspi_conv.h
esp_dsp.hinclude / dsps_conv.h
esp_dsp.hinclude / dsps_corr.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000042.html b/docs/html/dir_000094_000042.html new file mode 100644 index 0000000..1b97047 --- /dev/null +++ b/docs/html/dir_000094_000042.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> dct Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → dct Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/dct
esp_dsp.hinclude / dsps_dct.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000043.html b/docs/html/dir_000094_000043.html new file mode 100644 index 0000000..12a00cf --- /dev/null +++ b/docs/html/dir_000094_000043.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> dotprod Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → dotprod Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/dotprod
esp_dsp.hinclude / dspi_dotprod.h
esp_dsp.hinclude / dsps_dotprod.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000051.html b/docs/html/dir_000094_000051.html new file mode 100644 index 0000000..2779a38 --- /dev/null +++ b/docs/html/dir_000094_000051.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> fft Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → fft Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/fft
esp_dsp.hinclude / dsps_fft2r.h
esp_dsp.hinclude / dsps_fft4r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000052.html b/docs/html/dir_000094_000052.html new file mode 100644 index 0000000..49ee582 --- /dev/null +++ b/docs/html/dir_000094_000052.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> fir Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → fir Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/fir
esp_dsp.hinclude / dsps_fir.h
esp_dsp.hinclude / dsps_resampler.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000090.html b/docs/html/dir_000094_000090.html new file mode 100644 index 0000000..8cf8602 --- /dev/null +++ b/docs/html/dir_000094_000090.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> iir Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → iir Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/iir
esp_dsp.hinclude / dsps_biquad.h
esp_dsp.hinclude / dsps_biquad_gen.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000129.html b/docs/html/dir_000094_000129.html new file mode 100644 index 0000000..70af4e8 --- /dev/null +++ b/docs/html/dir_000094_000129.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> include_sim Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → include_sim Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/common/include_sim
dsp_err.hesp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000162.html b/docs/html/dir_000094_000162.html new file mode 100644 index 0000000..996109f --- /dev/null +++ b/docs/html/dir_000094_000162.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> math Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → math Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/math
esp_dsp.hinclude / dsps_math.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000163.html b/docs/html/dir_000094_000163.html new file mode 100644 index 0000000..b9af944 --- /dev/null +++ b/docs/html/dir_000094_000163.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> matrix Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → matrix Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/matrix
esp_dsp.hinclude / dspm_matrix.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000182.html b/docs/html/dir_000094_000182.html new file mode 100644 index 0000000..58f79ee --- /dev/null +++ b/docs/html/dir_000094_000182.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> support Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → support Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/support
esp_dsp.hinclude / dsps_d_gen.h
esp_dsp.hinclude / dsps_h_gen.h
esp_dsp.hinclude / dsps_sfdr.h
esp_dsp.hinclude / dsps_snr.h
esp_dsp.hinclude / dsps_tone_gen.h
esp_dsp.hinclude / dsps_view.h
+
+ +
+ + + + diff --git a/docs/html/dir_000094_000192.html b/docs/html/dir_000094_000192.html new file mode 100644 index 0000000..4f7d565 --- /dev/null +++ b/docs/html/dir_000094_000192.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> windows Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → windows Relation

File in components/espressif__esp-dsp/modules/common/includeIncludes file in components/espressif__esp-dsp/modules/windows
esp_dsp.hinclude / dsps_wind.h
+
+ +
+ + + + diff --git a/docs/html/dir_000095_000036.html b/docs/html/dir_000095_000036.html new file mode 100644 index 0000000..7afc19d --- /dev/null +++ b/docs/html/dir_000095_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/conv/includeIncludes file in components/espressif__esp-dsp/modules/common
dspi_conv.hinclude / dsp_err.h
dspi_conv.hinclude / dsp_types.h
dsps_ccorr.hinclude / dsp_err.h
dsps_conv.hinclude / dsp_err.h
dsps_corr.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000096_000036.html b/docs/html/dir_000096_000036.html new file mode 100644 index 0000000..7f08a61 --- /dev/null +++ b/docs/html/dir_000096_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/dct/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_dct.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000097_000036.html b/docs/html/dir_000097_000036.html new file mode 100644 index 0000000..7efd9d8 --- /dev/null +++ b/docs/html/dir_000097_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/dotprod/includeIncludes file in components/espressif__esp-dsp/modules/common
dspi_dotprod.hinclude / dsp_err.h
dspi_dotprod.hinclude / dsp_types.h
dspi_dotprod.hinclude_sim / esp_log.h
dsps_dotprod.hinclude / dsp_err.h
dsps_dotprod.hinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000098_000036.html b/docs/html/dir_000098_000036.html new file mode 100644 index 0000000..64e8ec0 --- /dev/null +++ b/docs/html/dir_000098_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/fft/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_fft2r.hinclude / dsp_err.h
dsps_fft4r.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000099_000036.html b/docs/html/dir_000099_000036.html new file mode 100644 index 0000000..f4d1e1c --- /dev/null +++ b/docs/html/dir_000099_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/fir/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_fir.hinclude / dsp_common.h
dsps_fir.hinclude / dsp_err.h
dsps_resampler.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000100_000036.html b/docs/html/dir_000100_000036.html new file mode 100644 index 0000000..3d2922e --- /dev/null +++ b/docs/html/dir_000100_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/iir/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_biquad.hinclude / dsp_err.h
dsps_biquad_gen.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000101_000163.html b/docs/html/dir_000101_000163.html new file mode 100644 index 0000000..3b0a392 --- /dev/null +++ b/docs/html/dir_000101_000163.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> matrix Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → matrix Relation

File in components/espressif__esp-dsp/modules/kalman/ekf/includeIncludes file in components/espressif__esp-dsp/modules/matrix
ekf.hinclude / mat.h
+
+ +
+ + + + diff --git a/docs/html/dir_000102_000044.html b/docs/html/dir_000102_000044.html new file mode 100644 index 0000000..4c5261c --- /dev/null +++ b/docs/html/dir_000102_000044.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> ekf Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → ekf Relation

File in components/espressif__esp-dsp/modules/kalman/ekf_imu13states/includeIncludes file in components/espressif__esp-dsp/modules/kalman/ekf
ekf_imu13states.hinclude / ekf.h
+
+ +
+ + + + diff --git a/docs/html/dir_000103_000036.html b/docs/html/dir_000103_000036.html new file mode 100644 index 0000000..930eab4 --- /dev/null +++ b/docs/html/dir_000103_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/math/add/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_add.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000104_000036.html b/docs/html/dir_000104_000036.html new file mode 100644 index 0000000..371560f --- /dev/null +++ b/docs/html/dir_000104_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/math/addc/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_addc.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000105_000016.html b/docs/html/dir_000105_000016.html new file mode 100644 index 0000000..e909b30 --- /dev/null +++ b/docs/html/dir_000105_000016.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> add Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → add Relation

File in components/espressif__esp-dsp/modules/math/includeIncludes file in components/espressif__esp-dsp/modules/math/add
dsps_math.hinclude / dsps_add.h
+
+ +
+ + + + diff --git a/docs/html/dir_000105_000018.html b/docs/html/dir_000105_000018.html new file mode 100644 index 0000000..1098b18 --- /dev/null +++ b/docs/html/dir_000105_000018.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> addc Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → addc Relation

File in components/espressif__esp-dsp/modules/math/includeIncludes file in components/espressif__esp-dsp/modules/math/addc
dsps_math.hinclude / dsps_addc.h
+
+ +
+ + + + diff --git a/docs/html/dir_000105_000168.html b/docs/html/dir_000105_000168.html new file mode 100644 index 0000000..4a11ac6 --- /dev/null +++ b/docs/html/dir_000105_000168.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> mul Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → mul Relation

File in components/espressif__esp-dsp/modules/math/includeIncludes file in components/espressif__esp-dsp/modules/math/mul
dsps_math.hinclude / dsps_mul.h
+
+ +
+ + + + diff --git a/docs/html/dir_000105_000170.html b/docs/html/dir_000105_000170.html new file mode 100644 index 0000000..8965b2d --- /dev/null +++ b/docs/html/dir_000105_000170.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> mulc Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → mulc Relation

File in components/espressif__esp-dsp/modules/math/includeIncludes file in components/espressif__esp-dsp/modules/math/mulc
dsps_math.hinclude / dsps_mulc.h
+
+ +
+ + + + diff --git a/docs/html/dir_000105_000178.html b/docs/html/dir_000105_000178.html new file mode 100644 index 0000000..ac4596d --- /dev/null +++ b/docs/html/dir_000105_000178.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> sqrt Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → sqrt Relation

File in components/espressif__esp-dsp/modules/math/includeIncludes file in components/espressif__esp-dsp/modules/math/sqrt
dsps_math.hinclude / dsps_sqrt.h
+
+ +
+ + + + diff --git a/docs/html/dir_000105_000180.html b/docs/html/dir_000105_000180.html new file mode 100644 index 0000000..a0ee1c5 --- /dev/null +++ b/docs/html/dir_000105_000180.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> sub Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → sub Relation

File in components/espressif__esp-dsp/modules/math/includeIncludes file in components/espressif__esp-dsp/modules/math/sub
dsps_math.hinclude / dsps_sub.h
+
+ +
+ + + + diff --git a/docs/html/dir_000106_000036.html b/docs/html/dir_000106_000036.html new file mode 100644 index 0000000..d342565 --- /dev/null +++ b/docs/html/dir_000106_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/math/mul/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_mul.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000107_000036.html b/docs/html/dir_000107_000036.html new file mode 100644 index 0000000..37f2cfb --- /dev/null +++ b/docs/html/dir_000107_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/math/mulc/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_mulc.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000108_000036.html b/docs/html/dir_000108_000036.html new file mode 100644 index 0000000..bdfe823 --- /dev/null +++ b/docs/html/dir_000108_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/math/sqrt/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_sqrt.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000109_000036.html b/docs/html/dir_000109_000036.html new file mode 100644 index 0000000..1fbcc93 --- /dev/null +++ b/docs/html/dir_000109_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/math/sub/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_sub.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000110_000036.html b/docs/html/dir_000110_000036.html new file mode 100644 index 0000000..7538c9f --- /dev/null +++ b/docs/html/dir_000110_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/matrix/add/includeIncludes file in components/espressif__esp-dsp/modules/common
dspm_add.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000111_000036.html b/docs/html/dir_000111_000036.html new file mode 100644 index 0000000..d5472cc --- /dev/null +++ b/docs/html/dir_000111_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/matrix/addc/includeIncludes file in components/espressif__esp-dsp/modules/common
dspm_addc.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000112_000017.html b/docs/html/dir_000112_000017.html new file mode 100644 index 0000000..77397ec --- /dev/null +++ b/docs/html/dir_000112_000017.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> add Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → add Relation

File in components/espressif__esp-dsp/modules/matrix/includeIncludes file in components/espressif__esp-dsp/modules/matrix/add
dspm_matrix.hinclude / dspm_add.h
+
+ +
+ + + + diff --git a/docs/html/dir_000112_000019.html b/docs/html/dir_000112_000019.html new file mode 100644 index 0000000..07d2434 --- /dev/null +++ b/docs/html/dir_000112_000019.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> addc Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → addc Relation

File in components/espressif__esp-dsp/modules/matrix/includeIncludes file in components/espressif__esp-dsp/modules/matrix/addc
dspm_matrix.hinclude / dspm_addc.h
+
+ +
+ + + + diff --git a/docs/html/dir_000112_000169.html b/docs/html/dir_000112_000169.html new file mode 100644 index 0000000..6a13167 --- /dev/null +++ b/docs/html/dir_000112_000169.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> mul Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → mul Relation

File in components/espressif__esp-dsp/modules/matrix/includeIncludes file in components/espressif__esp-dsp/modules/matrix/mul
dspm_matrix.hinclude / dspm_mult.h
+
+ +
+ + + + diff --git a/docs/html/dir_000112_000171.html b/docs/html/dir_000112_000171.html new file mode 100644 index 0000000..89f277c --- /dev/null +++ b/docs/html/dir_000112_000171.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> mulc Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → mulc Relation

File in components/espressif__esp-dsp/modules/matrix/includeIncludes file in components/espressif__esp-dsp/modules/matrix/mulc
dspm_matrix.hinclude / dspm_mulc.h
+
+ +
+ + + + diff --git a/docs/html/dir_000112_000181.html b/docs/html/dir_000112_000181.html new file mode 100644 index 0000000..7f74778 --- /dev/null +++ b/docs/html/dir_000112_000181.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> sub Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → sub Relation

File in components/espressif__esp-dsp/modules/matrix/includeIncludes file in components/espressif__esp-dsp/modules/matrix/sub
dspm_matrix.hinclude / dspm_sub.h
+
+ +
+ + + + diff --git a/docs/html/dir_000113_000036.html b/docs/html/dir_000113_000036.html new file mode 100644 index 0000000..a1247b5 --- /dev/null +++ b/docs/html/dir_000113_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/matrix/mul/includeIncludes file in components/espressif__esp-dsp/modules/common
dspm_mult.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000114_000036.html b/docs/html/dir_000114_000036.html new file mode 100644 index 0000000..7a588cc --- /dev/null +++ b/docs/html/dir_000114_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/matrix/mulc/includeIncludes file in components/espressif__esp-dsp/modules/common
dspm_mulc.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000115_000036.html b/docs/html/dir_000115_000036.html new file mode 100644 index 0000000..0bd5dcd --- /dev/null +++ b/docs/html/dir_000115_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/matrix/sub/includeIncludes file in components/espressif__esp-dsp/modules/common
dspm_sub.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000116_000036.html b/docs/html/dir_000116_000036.html new file mode 100644 index 0000000..beab568 --- /dev/null +++ b/docs/html/dir_000116_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/support/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_cplx_gen.hinclude / dsp_err.h
dsps_d_gen.hinclude / dsp_err.h
dsps_h_gen.hinclude / dsp_err.h
dsps_sfdr.hinclude / dsp_err.h
dsps_snr.hinclude / dsp_err.h
dsps_tone_gen.hinclude / dsp_err.h
dsps_view.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000117_000036.html b/docs/html/dir_000117_000036.html new file mode 100644 index 0000000..f953ba6 --- /dev/null +++ b/docs/html/dir_000117_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → common Relation

File in components/espressif__esp-dsp/modules/support/mem/includeIncludes file in components/espressif__esp-dsp/modules/common
dsps_mem.hinclude / dsp_common.h
dsps_mem.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000123_000033.html b/docs/html/dir_000123_000033.html new file mode 100644 index 0000000..e885cff --- /dev/null +++ b/docs/html/dir_000123_000033.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> blackman Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → blackman Relation

File in components/espressif__esp-dsp/modules/windows/includeIncludes file in components/espressif__esp-dsp/modules/windows/blackman
dsps_wind.hinclude / dsps_wind_blackman.h
+
+ +
+ + + + diff --git a/docs/html/dir_000123_000034.html b/docs/html/dir_000123_000034.html new file mode 100644 index 0000000..c71c147 --- /dev/null +++ b/docs/html/dir_000123_000034.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> blackman_harris Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → blackman_harris Relation

File in components/espressif__esp-dsp/modules/windows/includeIncludes file in components/espressif__esp-dsp/modules/windows/blackman_harris
dsps_wind.hinclude / dsps_wind_blackman_harris.h
+
+ +
+ + + + diff --git a/docs/html/dir_000123_000035.html b/docs/html/dir_000123_000035.html new file mode 100644 index 0000000..2bee892 --- /dev/null +++ b/docs/html/dir_000123_000035.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> blackman_nuttall Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → blackman_nuttall Relation

File in components/espressif__esp-dsp/modules/windows/includeIncludes file in components/espressif__esp-dsp/modules/windows/blackman_nuttall
dsps_wind.hinclude / dsps_wind_blackman_nuttall.h
+
+ +
+ + + + diff --git a/docs/html/dir_000123_000061.html b/docs/html/dir_000123_000061.html new file mode 100644 index 0000000..119fc57 --- /dev/null +++ b/docs/html/dir_000123_000061.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> flat_top Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → flat_top Relation

File in components/espressif__esp-dsp/modules/windows/includeIncludes file in components/espressif__esp-dsp/modules/windows/flat_top
dsps_wind.hinclude / dsps_wind_flat_top.h
+
+ +
+ + + + diff --git a/docs/html/dir_000123_000089.html b/docs/html/dir_000123_000089.html new file mode 100644 index 0000000..37b603c --- /dev/null +++ b/docs/html/dir_000123_000089.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> hann Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → hann Relation

File in components/espressif__esp-dsp/modules/windows/includeIncludes file in components/espressif__esp-dsp/modules/windows/hann
dsps_wind.hinclude / dsps_wind_hann.h
+
+ +
+ + + + diff --git a/docs/html/dir_000123_000172.html b/docs/html/dir_000123_000172.html new file mode 100644 index 0000000..2d33cae --- /dev/null +++ b/docs/html/dir_000123_000172.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> nuttall Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → nuttall Relation

File in components/espressif__esp-dsp/modules/windows/includeIncludes file in components/espressif__esp-dsp/modules/windows/nuttall
dsps_wind.hinclude / dsps_wind_nuttall.h
+
+ +
+ + + + diff --git a/docs/html/dir_000125_000046.html b/docs/html/dir_000125_000046.html new file mode 100644 index 0000000..64dd4f9 --- /dev/null +++ b/docs/html/dir_000125_000046.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> espressif__esp-dsp Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → espressif__esp-dsp Relation

File in components/espressif__esp_tinyusb/includeIncludes file in components/espressif__esp-dsp
tinyusb.hmodules / common / include_sim / esp_err.h
tusb_console.hmodules / common / include_sim / esp_err.h
tusb_tasks.hmodules / common / include_sim / esp_err.h
vfs_tinyusb.hmodules / common / include_sim / esp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000126_000046.html b/docs/html/dir_000126_000046.html new file mode 100644 index 0000000..69af318 --- /dev/null +++ b/docs/html/dir_000126_000046.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> espressif__esp-dsp Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → espressif__esp-dsp Relation

File in components/espressif__led_strip/includeIncludes file in components/espressif__esp-dsp
led_strip.hmodules / common / include_sim / esp_err.h
led_strip_rmt.hmodules / common / include_sim / esp_err.h
led_strip_spi.hmodules / common / include_sim / esp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000127_000046.html b/docs/html/dir_000127_000046.html new file mode 100644 index 0000000..a1d3568 --- /dev/null +++ b/docs/html/dir_000127_000046.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include -> espressif__esp-dsp Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → espressif__esp-dsp Relation

File in components/wave_gen/includeIncludes file in components/espressif__esp-dsp
wave_gen.hmodules / common / include_sim / esp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000128_000125.html b/docs/html/dir_000128_000125.html new file mode 100644 index 0000000..f4009f6 --- /dev/null +++ b/docs/html/dir_000128_000125.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: include_private -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include_private → include Relation

File in components/espressif__esp_tinyusb/include_privateIncludes file in components/espressif__esp_tinyusb/include
cdc.htinyusb_types.h
descriptors_control.htinyusb_types.h
usb_descriptors.htinyusb_types.h
+
+ +
+ + + + diff --git a/docs/html/dir_000130_000046.html b/docs/html/dir_000130_000046.html new file mode 100644 index 0000000..662d354 --- /dev/null +++ b/docs/html/dir_000130_000046.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: interface -> espressif__esp-dsp Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

interface → espressif__esp-dsp Relation

File in components/espressif__led_strip/interfaceIncludes file in components/espressif__esp-dsp
led_strip_interface.hmodules / common / include_sim / esp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000131_000163.html b/docs/html/dir_000131_000163.html new file mode 100644 index 0000000..51f12d7 --- /dev/null +++ b/docs/html/dir_000131_000163.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: kalman -> matrix Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

kalman → matrix Relation

File in components/espressif__esp-dsp/modules/kalmanIncludes file in components/espressif__esp-dsp/modules/matrix
ekf / include / ekf.hinclude / mat.h
+
+ +
+ + + + diff --git a/docs/html/dir_000132_000167.html b/docs/html/dir_000132_000167.html new file mode 100644 index 0000000..566c2b9 --- /dev/null +++ b/docs/html/dir_000132_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

kalman_filter → modules Relation

File in components/espressif__esp-dsp/applications/azure_board_apps/apps/kalman_filterIncludes file in components/espressif__esp-dsp/modules
main / applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include_sim / esp_log.h
main / applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include / esp_dsp.h
main / applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cppkalman / ekf_imu13states / include / ekf_imu13states.h
+
+ +
+ + + + diff --git a/docs/html/dir_000133_000167.html b/docs/html/dir_000133_000167.html new file mode 100644 index 0000000..962dc72 --- /dev/null +++ b/docs/html/dir_000133_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

kalman_filter → modules Relation

File in components/espressif__esp-dsp/applications/m5stack_core_s3/apps/kalman_filterIncludes file in components/espressif__esp-dsp/modules
main / applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include_sim / esp_log.h
main / applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000134_000167.html b/docs/html/dir_000134_000167.html new file mode 100644 index 0000000..0921464 --- /dev/null +++ b/docs/html/dir_000134_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000135_000167.html b/docs/html/dir_000135_000167.html new file mode 100644 index 0000000..45962a0 --- /dev/null +++ b/docs/html/dir_000135_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

kalman_filter → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filterIncludes file in components/espressif__esp-dsp/modules
main / external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include_sim / esp_log.h
main / external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000136_000167.html b/docs/html/dir_000136_000167.html new file mode 100644 index 0000000..71988c2 --- /dev/null +++ b/docs/html/dir_000136_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

kalman_filter → modules Relation

File in components/espressif__esp-dsp/external_examples/d1468452/apps/kalman_filterIncludes file in components/espressif__esp-dsp/modules
main / external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include_sim / esp_log.h
main / external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cppcommon / include / esp_dsp.h
main / external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cppkalman / ekf_imu13states / include / ekf_imu13states.h
+
+ +
+ + + + diff --git a/docs/html/dir_000137_000167.html b/docs/html/dir_000137_000167.html new file mode 100644 index 0000000..b22ad00 --- /dev/null +++ b/docs/html/dir_000137_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000138_000167.html b/docs/html/dir_000138_000167.html new file mode 100644 index 0000000..24bea76 --- /dev/null +++ b/docs/html/dir_000138_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: lyrat_board_app -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

lyrat_board_app → modules Relation

File in components/espressif__esp-dsp/applications/lyrat_board_appIncludes file in components/espressif__esp-dsp/modules
main / applications/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
main / applications/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000139_000167.html b/docs/html/dir_000139_000167.html new file mode 100644 index 0000000..e159917 --- /dev/null +++ b/docs/html/dir_000139_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: lyrat_board_app -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

lyrat_board_app → modules Relation

File in components/espressif__esp-dsp/external_examples/1fa4e38f/lyrat_board_appIncludes file in components/espressif__esp-dsp/modules
main / external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
main / external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000140_000167.html b/docs/html/dir_000140_000167.html new file mode 100644 index 0000000..df318fa --- /dev/null +++ b/docs/html/dir_000140_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: lyrat_board_app -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

lyrat_board_app → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applications/lyrat_board_appIncludes file in components/espressif__esp-dsp/modules
main / external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
main / external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
+
+ +
+ + + + diff --git a/docs/html/dir_000141_000167.html b/docs/html/dir_000141_000167.html new file mode 100644 index 0000000..80688bd --- /dev/null +++ b/docs/html/dir_000141_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: m5stack_core_s3 -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000142_000167.html b/docs/html/dir_000142_000167.html new file mode 100644 index 0000000..c7fc651 --- /dev/null +++ b/docs/html/dir_000142_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: m5stack_core_s3 -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000143_000167.html b/docs/html/dir_000143_000167.html new file mode 100644 index 0000000..0c7e2f1 --- /dev/null +++ b/docs/html/dir_000143_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

main → modules Relation

File in components/espressif__esp-dsp/applications/azure_board_apps/apps/3d_graphics/mainIncludes file in components/espressif__esp-dsp/modules
applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000144_000167.html b/docs/html/dir_000144_000167.html new file mode 100644 index 0000000..68997d9 --- /dev/null +++ b/docs/html/dir_000144_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000145_000167.html b/docs/html/dir_000145_000167.html new file mode 100644 index 0000000..b0d1244 --- /dev/null +++ b/docs/html/dir_000145_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

main → modules Relation

File in components/espressif__esp-dsp/applications/lyrat_board_app/mainIncludes file in components/espressif__esp-dsp/modules
applications/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
applications/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000146_000167.html b/docs/html/dir_000146_000167.html new file mode 100644 index 0000000..d08e9b8 --- /dev/null +++ b/docs/html/dir_000146_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ + +
+ + + + diff --git a/docs/html/dir_000147_000167.html b/docs/html/dir_000147_000167.html new file mode 100644 index 0000000..05a1698 --- /dev/null +++ b/docs/html/dir_000147_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

main → modules Relation

File in components/espressif__esp-dsp/applications/m5stack_core_s3/apps/kalman_filter/mainIncludes file in components/espressif__esp-dsp/modules
applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include / esp_dsp.h
applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000148_000167.html b/docs/html/dir_000148_000167.html new file mode 100644 index 0000000..ce45d85 --- /dev/null +++ b/docs/html/dir_000148_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000149_000167.html b/docs/html/dir_000149_000167.html new file mode 100644 index 0000000..1e7a1f7 --- /dev/null +++ b/docs/html/dir_000149_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

main → modules Relation

File in components/espressif__esp-dsp/external_examples/1fa4e38f/lyrat_board_app/mainIncludes file in components/espressif__esp-dsp/modules
external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000150_000167.html b/docs/html/dir_000150_000167.html new file mode 100644 index 0000000..1d85254 --- /dev/null +++ b/docs/html/dir_000150_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

main → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/mainIncludes file in components/espressif__esp-dsp/modules
external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000151_000167.html b/docs/html/dir_000151_000167.html new file mode 100644 index 0000000..10310a2 --- /dev/null +++ b/docs/html/dir_000151_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000152_000167.html b/docs/html/dir_000152_000167.html new file mode 100644 index 0000000..2c245e2 --- /dev/null +++ b/docs/html/dir_000152_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

main → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applications/lyrat_board_app/mainIncludes file in components/espressif__esp-dsp/modules
external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include / esp_dsp.h
external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.ccommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000153_000167.html b/docs/html/dir_000153_000167.html new file mode 100644 index 0000000..e3d75d6 --- /dev/null +++ b/docs/html/dir_000153_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/dir_000154_000167.html b/docs/html/dir_000154_000167.html new file mode 100644 index 0000000..a2a8cf7 --- /dev/null +++ b/docs/html/dir_000154_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

main → modules Relation

File in components/espressif__esp-dsp/external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/mainIncludes file in components/espressif__esp-dsp/modules
external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include / esp_dsp.h
external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cppcommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000155_000167.html b/docs/html/dir_000155_000167.html new file mode 100644 index 0000000..8fa0afa --- /dev/null +++ b/docs/html/dir_000155_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000156_000167.html b/docs/html/dir_000156_000167.html new file mode 100644 index 0000000..102178b --- /dev/null +++ b/docs/html/dir_000156_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

main → modules Relation

File in components/espressif__esp-dsp/external_examples/d1468452/apps/3d_graphics/mainIncludes file in components/espressif__esp-dsp/modules
external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000157_000167.html b/docs/html/dir_000157_000167.html new file mode 100644 index 0000000..602f2d2 --- /dev/null +++ b/docs/html/dir_000157_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000158_000167.html b/docs/html/dir_000158_000167.html new file mode 100644 index 0000000..ee61e0c --- /dev/null +++ b/docs/html/dir_000158_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

main → modules Relation

File in components/espressif__esp-dsp/external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/mainIncludes file in components/espressif__esp-dsp/modules
external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include / esp_dsp.h
external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cppcommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000159_000167.html b/docs/html/dir_000159_000167.html new file mode 100644 index 0000000..9881f7e --- /dev/null +++ b/docs/html/dir_000159_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000160_000038.html b/docs/html/dir_000160_000038.html new file mode 100644 index 0000000..fb0a556 --- /dev/null +++ b/docs/html/dir_000160_000038.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: main -> components Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ + +
+ + + + diff --git a/docs/html/dir_000161_000036.html b/docs/html/dir_000161_000036.html new file mode 100644 index 0000000..cddc226 --- /dev/null +++ b/docs/html/dir_000161_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: mat -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mat → common Relation

File in components/espressif__esp-dsp/modules/matrix/matIncludes file in components/espressif__esp-dsp/modules/common
mat.cppinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000161_000112.html b/docs/html/dir_000161_000112.html new file mode 100644 index 0000000..130d8be --- /dev/null +++ b/docs/html/dir_000161_000112.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: mat -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mat → include Relation

File in components/espressif__esp-dsp/modules/matrix/matIncludes file in components/espressif__esp-dsp/modules/matrix/include
mat.cppdspm_matrix.h
mat.cppmat.h
+
+ +
+ + + + diff --git a/docs/html/dir_000161_000162.html b/docs/html/dir_000161_000162.html new file mode 100644 index 0000000..1007309 --- /dev/null +++ b/docs/html/dir_000161_000162.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: mat -> math Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mat → math Relation

File in components/espressif__esp-dsp/modules/matrix/matIncludes file in components/espressif__esp-dsp/modules/math
mat.cppinclude / dsps_math.h
+
+ +
+ + + + diff --git a/docs/html/dir_000162_000036.html b/docs/html/dir_000162_000036.html new file mode 100644 index 0000000..2631d04 --- /dev/null +++ b/docs/html/dir_000162_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: math -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

math → common Relation

File in components/espressif__esp-dsp/modules/mathIncludes file in components/espressif__esp-dsp/modules/common
add / include / dsps_add.hinclude / dsp_err.h
addc / include / dsps_addc.hinclude / dsp_err.h
mul / include / dsps_mul.hinclude / dsp_err.h
mulc / include / dsps_mulc.hinclude / dsp_err.h
sqrt / include / dsps_sqrt.hinclude / dsp_err.h
sub / include / dsps_sub.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000163_000036.html b/docs/html/dir_000163_000036.html new file mode 100644 index 0000000..c1c47f0 --- /dev/null +++ b/docs/html/dir_000163_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: matrix -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

matrix → common Relation

File in components/espressif__esp-dsp/modules/matrixIncludes file in components/espressif__esp-dsp/modules/common
add / include / dspm_add.hinclude / dsp_err.h
addc / include / dspm_addc.hinclude / dsp_err.h
mulc / include / dspm_mulc.hinclude / dsp_err.h
mul / include / dspm_mult.hinclude / dsp_err.h
sub / include / dspm_sub.hinclude / dsp_err.h
mat / mat.cppinclude_sim / esp_log.h
mul / test_sim / test_mmult.cinclude / dsp_common.h
+
+ +
+ + + + diff --git a/docs/html/dir_000163_000043.html b/docs/html/dir_000163_000043.html new file mode 100644 index 0000000..b2cc616 --- /dev/null +++ b/docs/html/dir_000163_000043.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: matrix -> dotprod Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

matrix → dotprod Relation

File in components/espressif__esp-dsp/modules/matrixIncludes file in components/espressif__esp-dsp/modules/dotprod
mul / float / dspm_mult_f32_ansi.cinclude / dsps_dotprod.h
mul / fixed / dspm_mult_s16_ansi.cinclude / dsps_dotprod.h
+
+ +
+ + + + diff --git a/docs/html/dir_000163_000162.html b/docs/html/dir_000163_000162.html new file mode 100644 index 0000000..f678fe1 --- /dev/null +++ b/docs/html/dir_000163_000162.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: matrix -> math Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

matrix → math Relation

File in components/espressif__esp-dsp/modules/matrixIncludes file in components/espressif__esp-dsp/modules/math
mat / mat.cppinclude / dsps_math.h
+
+ +
+ + + + diff --git a/docs/html/dir_000164_000036.html b/docs/html/dir_000164_000036.html new file mode 100644 index 0000000..f5929b8 --- /dev/null +++ b/docs/html/dir_000164_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: mem -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mem → common Relation

File in components/espressif__esp-dsp/modules/support/memIncludes file in components/espressif__esp-dsp/modules/common
include / dsps_mem.hinclude / dsp_common.h
include / dsps_mem.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000165_000094.html b/docs/html/dir_000165_000094.html new file mode 100644 index 0000000..79cee48 --- /dev/null +++ b/docs/html/dir_000165_000094.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: misc -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

misc → include Relation

File in components/espressif__esp-dsp/modules/common/miscIncludes file in components/espressif__esp-dsp/modules/common/include
aes3_tie_log.cdsp_common.h
dsps_pwroftwo.cppdsp_common.h
+
+ +
+ + + + diff --git a/docs/html/dir_000166_000116.html b/docs/html/dir_000166_000116.html new file mode 100644 index 0000000..5ffb14b --- /dev/null +++ b/docs/html/dir_000166_000116.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: misc -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

misc → include Relation

File in components/espressif__esp-dsp/modules/support/miscIncludes file in components/espressif__esp-dsp/modules/support/include
dsps_d_gen.cdsps_d_gen.h
dsps_h_gen.cdsps_h_gen.h
dsps_tone_gen.cdsps_tone_gen.h
+
+ +
+ + + + diff --git a/docs/html/dir_000168_000036.html b/docs/html/dir_000168_000036.html new file mode 100644 index 0000000..efe8e16 --- /dev/null +++ b/docs/html/dir_000168_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: mul -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mul → common Relation

File in components/espressif__esp-dsp/modules/math/mulIncludes file in components/espressif__esp-dsp/modules/common
include / dsps_mul.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000169_000036.html b/docs/html/dir_000169_000036.html new file mode 100644 index 0000000..b4e9f98 --- /dev/null +++ b/docs/html/dir_000169_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: mul -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mul → common Relation

File in components/espressif__esp-dsp/modules/matrix/mulIncludes file in components/espressif__esp-dsp/modules/common
include / dspm_mult.hinclude / dsp_err.h
test_sim / test_mmult.cinclude / dsp_common.h
+
+ +
+ + + + diff --git a/docs/html/dir_000169_000043.html b/docs/html/dir_000169_000043.html new file mode 100644 index 0000000..cc2feab --- /dev/null +++ b/docs/html/dir_000169_000043.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: mul -> dotprod Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mul → dotprod Relation

File in components/espressif__esp-dsp/modules/matrix/mulIncludes file in components/espressif__esp-dsp/modules/dotprod
float / dspm_mult_f32_ansi.cinclude / dsps_dotprod.h
fixed / dspm_mult_s16_ansi.cinclude / dsps_dotprod.h
+
+ +
+ + + + diff --git a/docs/html/dir_000170_000036.html b/docs/html/dir_000170_000036.html new file mode 100644 index 0000000..d28b8b2 --- /dev/null +++ b/docs/html/dir_000170_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: mulc -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mulc → common Relation

File in components/espressif__esp-dsp/modules/math/mulcIncludes file in components/espressif__esp-dsp/modules/common
include / dsps_mulc.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000171_000036.html b/docs/html/dir_000171_000036.html new file mode 100644 index 0000000..048e57e --- /dev/null +++ b/docs/html/dir_000171_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: mulc -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mulc → common Relation

File in components/espressif__esp-dsp/modules/matrix/mulcIncludes file in components/espressif__esp-dsp/modules/common
include / dspm_mulc.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000173_000099.html b/docs/html/dir_000173_000099.html new file mode 100644 index 0000000..5963064 --- /dev/null +++ b/docs/html/dir_000173_000099.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: resampler -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

resampler → include Relation

File in components/espressif__esp-dsp/modules/fir/resamplerIncludes file in components/espressif__esp-dsp/modules/fir/include
dsps_resampler_mr.cdsps_resampler.h
dsps_resampler_ph.cdsps_resampler.h
+
+ +
+ + + + diff --git a/docs/html/dir_000174_000036.html b/docs/html/dir_000174_000036.html new file mode 100644 index 0000000..060fe7b --- /dev/null +++ b/docs/html/dir_000174_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: sfdr -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

sfdr → common Relation

File in components/espressif__esp-dsp/modules/support/sfdrIncludes file in components/espressif__esp-dsp/modules/common
float / dsps_sfdr_f32.cppinclude / dsp_common.h
float / dsps_sfdr_f32.cppinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000174_000051.html b/docs/html/dir_000174_000051.html new file mode 100644 index 0000000..8e5f9fd --- /dev/null +++ b/docs/html/dir_000174_000051.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: sfdr -> fft Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

sfdr → fft Relation

File in components/espressif__esp-dsp/modules/support/sfdrIncludes file in components/espressif__esp-dsp/modules/fft
float / dsps_sfdr_f32.cppinclude / dsps_fft2r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000174_000116.html b/docs/html/dir_000174_000116.html new file mode 100644 index 0000000..e42ea32 --- /dev/null +++ b/docs/html/dir_000174_000116.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: sfdr -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

sfdr → include Relation

File in components/espressif__esp-dsp/modules/support/sfdrIncludes file in components/espressif__esp-dsp/modules/support/include
float / dsps_sfdr_f32.cppdsps_sfdr.h
+
+ +
+ + + + diff --git a/docs/html/dir_000175_000036.html b/docs/html/dir_000175_000036.html new file mode 100644 index 0000000..bb9fd74 --- /dev/null +++ b/docs/html/dir_000175_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: snr -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

snr → common Relation

File in components/espressif__esp-dsp/modules/support/snrIncludes file in components/espressif__esp-dsp/modules/common
float / dsps_snr_f32.cppinclude / dsp_common.h
float / dsps_snr_f32.cppinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000175_000051.html b/docs/html/dir_000175_000051.html new file mode 100644 index 0000000..815fcf1 --- /dev/null +++ b/docs/html/dir_000175_000051.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: snr -> fft Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

snr → fft Relation

File in components/espressif__esp-dsp/modules/support/snrIncludes file in components/espressif__esp-dsp/modules/fft
float / dsps_snr_f32.cppinclude / dsps_fft2r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000175_000116.html b/docs/html/dir_000175_000116.html new file mode 100644 index 0000000..744e8b8 --- /dev/null +++ b/docs/html/dir_000175_000116.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: snr -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

snr → include Relation

File in components/espressif__esp-dsp/modules/support/snrIncludes file in components/espressif__esp-dsp/modules/support/include
float / dsps_snr_f32.cppdsps_snr.h
+
+ +
+ + + + diff --git a/docs/html/dir_000176_000167.html b/docs/html/dir_000176_000167.html new file mode 100644 index 0000000..9ac8e14 --- /dev/null +++ b/docs/html/dir_000176_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: spectrum_box_lite -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

spectrum_box_lite → modules Relation

File in components/espressif__esp-dsp/applications/spectrum_box_liteIncludes file in components/espressif__esp-dsp/modules
main / components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.ccommon / include / esp_dsp.h
main / components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_err.h
main / components/espressif__esp-dsp/applications/spectrum_box_lite/main/main.ccommon / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000177_000167.html b/docs/html/dir_000177_000167.html new file mode 100644 index 0000000..e904a12 --- /dev/null +++ b/docs/html/dir_000177_000167.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: spectrum_box_lite -> modules Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + diff --git a/docs/html/dir_000178_000036.html b/docs/html/dir_000178_000036.html new file mode 100644 index 0000000..cd9ba4e --- /dev/null +++ b/docs/html/dir_000178_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: sqrt -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

sqrt → common Relation

File in components/espressif__esp-dsp/modules/math/sqrtIncludes file in components/espressif__esp-dsp/modules/common
include / dsps_sqrt.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000179_000046.html b/docs/html/dir_000179_000046.html new file mode 100644 index 0000000..c359e33 --- /dev/null +++ b/docs/html/dir_000179_000046.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: src -> espressif__esp-dsp Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

src → espressif__esp-dsp Relation

File in components/espressif__led_strip/srcIncludes file in components/espressif__esp-dsp
led_strip_api.cmodules / common / include_sim / esp_log.h
led_strip_rmt_dev.cmodules / common / include_sim / esp_log.h
led_strip_rmt_dev_idf4.cmodules / common / include_sim / esp_log.h
led_strip_spi_dev.cmodules / common / include_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000179_000126.html b/docs/html/dir_000179_000126.html new file mode 100644 index 0000000..fb15bee --- /dev/null +++ b/docs/html/dir_000179_000126.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: src -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

src → include Relation

File in components/espressif__led_strip/srcIncludes file in components/espressif__led_strip/include
led_strip_api.cled_strip.h
led_strip_rmt_dev.cled_strip.h
led_strip_rmt_dev_idf4.cled_strip.h
led_strip_rmt_encoder.hled_strip_types.h
led_strip_spi_dev.cled_strip.h
+
+ +
+ + + + diff --git a/docs/html/dir_000179_000130.html b/docs/html/dir_000179_000130.html new file mode 100644 index 0000000..63dadf7 --- /dev/null +++ b/docs/html/dir_000179_000130.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: src -> interface Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

src → interface Relation

File in components/espressif__led_strip/srcIncludes file in components/espressif__led_strip/interface
led_strip_api.cled_strip_interface.h
led_strip_rmt_dev.cled_strip_interface.h
led_strip_rmt_dev_idf4.cled_strip_interface.h
led_strip_spi_dev.cled_strip_interface.h
+
+ +
+ + + + diff --git a/docs/html/dir_000180_000016.html b/docs/html/dir_000180_000016.html new file mode 100644 index 0000000..66f1b4e --- /dev/null +++ b/docs/html/dir_000180_000016.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: sub -> add Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

sub → add Relation

File in components/espressif__esp-dsp/modules/math/subIncludes file in components/espressif__esp-dsp/modules/math/add
fixed / dsps_sub_s16_ansi.cinclude / dsps_add.h
+
+ +
+ + + + diff --git a/docs/html/dir_000180_000036.html b/docs/html/dir_000180_000036.html new file mode 100644 index 0000000..4ecd91d --- /dev/null +++ b/docs/html/dir_000180_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: sub -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

sub → common Relation

File in components/espressif__esp-dsp/modules/math/subIncludes file in components/espressif__esp-dsp/modules/common
include / dsps_sub.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000181_000036.html b/docs/html/dir_000181_000036.html new file mode 100644 index 0000000..87c68d4 --- /dev/null +++ b/docs/html/dir_000181_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: sub -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

sub → common Relation

File in components/espressif__esp-dsp/modules/matrix/subIncludes file in components/espressif__esp-dsp/modules/common
include / dspm_sub.hinclude / dsp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000182_000036.html b/docs/html/dir_000182_000036.html new file mode 100644 index 0000000..d69dfd9 --- /dev/null +++ b/docs/html/dir_000182_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: support -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ + +
+ + + + diff --git a/docs/html/dir_000182_000051.html b/docs/html/dir_000182_000051.html new file mode 100644 index 0000000..05fbc64 --- /dev/null +++ b/docs/html/dir_000182_000051.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: support -> fft Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

support → fft Relation

File in components/espressif__esp-dsp/modules/supportIncludes file in components/espressif__esp-dsp/modules/fft
sfdr / float / dsps_sfdr_f32.cppinclude / dsps_fft2r.h
snr / float / dsps_snr_f32.cppinclude / dsps_fft2r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000186_000036.html b/docs/html/dir_000186_000036.html new file mode 100644 index 0000000..a97a1a3 --- /dev/null +++ b/docs/html/dir_000186_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: test_sim -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

test_sim → common Relation

File in components/espressif__esp-dsp/modules/fft/test_simIncludes file in components/espressif__esp-dsp/modules/common
test_fft2r.cinclude / dsp_common.h
+
+ +
+ + + + diff --git a/docs/html/dir_000186_000098.html b/docs/html/dir_000186_000098.html new file mode 100644 index 0000000..b431597 --- /dev/null +++ b/docs/html/dir_000186_000098.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: test_sim -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

test_sim → include Relation

File in components/espressif__esp-dsp/modules/fft/test_simIncludes file in components/espressif__esp-dsp/modules/fft/include
test_fft2r.cdsps_fft2r.h
+
+ +
+ + + + diff --git a/docs/html/dir_000186_000163.html b/docs/html/dir_000186_000163.html new file mode 100644 index 0000000..0572e6b --- /dev/null +++ b/docs/html/dir_000186_000163.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: test_sim -> matrix Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

test_sim → matrix Relation

File in components/espressif__esp-dsp/modules/fft/test_simIncludes file in components/espressif__esp-dsp/modules/matrix
test_fft2r.cmul / include / dspm_mult.h
+
+ +
+ + + + diff --git a/docs/html/dir_000187_000036.html b/docs/html/dir_000187_000036.html new file mode 100644 index 0000000..f370f63 --- /dev/null +++ b/docs/html/dir_000187_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: test_sim -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

test_sim → common Relation

File in components/espressif__esp-dsp/modules/fir/test_simIncludes file in components/espressif__esp-dsp/modules/common
test_fir.cinclude / dsp_common.h
+
+ +
+ + + + diff --git a/docs/html/dir_000187_000099.html b/docs/html/dir_000187_000099.html new file mode 100644 index 0000000..cffd08d --- /dev/null +++ b/docs/html/dir_000187_000099.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: test_sim -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

test_sim → include Relation

File in components/espressif__esp-dsp/modules/fir/test_simIncludes file in components/espressif__esp-dsp/modules/fir/include
test_fir.cdsps_fir.h
+
+ +
+ + + + diff --git a/docs/html/dir_000188_000036.html b/docs/html/dir_000188_000036.html new file mode 100644 index 0000000..46fd23b --- /dev/null +++ b/docs/html/dir_000188_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: test_sim -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

test_sim → common Relation

File in components/espressif__esp-dsp/modules/iir/test_simIncludes file in components/espressif__esp-dsp/modules/common
test_iir_biquad.cinclude / dsp_common.h
+
+ +
+ + + + diff --git a/docs/html/dir_000188_000100.html b/docs/html/dir_000188_000100.html new file mode 100644 index 0000000..c29ba6b --- /dev/null +++ b/docs/html/dir_000188_000100.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: test_sim -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

test_sim → include Relation

File in components/espressif__esp-dsp/modules/iir/test_simIncludes file in components/espressif__esp-dsp/modules/iir/include
test_iir_biquad.cdsps_biquad.h
+
+ +
+ + + + diff --git a/docs/html/dir_000189_000036.html b/docs/html/dir_000189_000036.html new file mode 100644 index 0000000..70ddd4b --- /dev/null +++ b/docs/html/dir_000189_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: test_sim -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

test_sim → common Relation

File in components/espressif__esp-dsp/modules/matrix/mul/test_simIncludes file in components/espressif__esp-dsp/modules/common
test_mmult.cinclude / dsp_common.h
+
+ +
+ + + + diff --git a/docs/html/dir_000189_000113.html b/docs/html/dir_000189_000113.html new file mode 100644 index 0000000..8a4707a --- /dev/null +++ b/docs/html/dir_000189_000113.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: test_sim -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

test_sim → include Relation

File in components/espressif__esp-dsp/modules/matrix/mul/test_simIncludes file in components/espressif__esp-dsp/modules/matrix/mul/include
test_mmult.cdspm_mult.h
+
+ +
+ + + + diff --git a/docs/html/dir_000190_000036.html b/docs/html/dir_000190_000036.html new file mode 100644 index 0000000..44ba845 --- /dev/null +++ b/docs/html/dir_000190_000036.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: view -> common Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

view → common Relation

File in components/espressif__esp-dsp/modules/support/viewIncludes file in components/espressif__esp-dsp/modules/common
dsps_view.cppinclude_sim / esp_log.h
+
+ +
+ + + + diff --git a/docs/html/dir_000190_000116.html b/docs/html/dir_000190_000116.html new file mode 100644 index 0000000..803dc8f --- /dev/null +++ b/docs/html/dir_000190_000116.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: view -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

view → include Relation

File in components/espressif__esp-dsp/modules/support/viewIncludes file in components/espressif__esp-dsp/modules/support/include
dsps_view.cppdsps_view.h
+
+ +
+ + + + diff --git a/docs/html/dir_000191_000046.html b/docs/html/dir_000191_000046.html new file mode 100644 index 0000000..be63b2b --- /dev/null +++ b/docs/html/dir_000191_000046.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: wave_gen -> espressif__esp-dsp Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

wave_gen → espressif__esp-dsp Relation

File in components/wave_genIncludes file in components/espressif__esp-dsp
wave_gen.cmodules / common / include_sim / esp_log.h
include / wave_gen.hmodules / common / include_sim / esp_err.h
+
+ +
+ + + + diff --git a/docs/html/dir_000191_000127.html b/docs/html/dir_000191_000127.html new file mode 100644 index 0000000..ffdee3b --- /dev/null +++ b/docs/html/dir_000191_000127.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: wave_gen -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

wave_gen → include Relation

File in components/wave_genIncludes file in components/wave_gen/include
wave_gen.cwave_gen.h
+
+ +
+ + + + diff --git a/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23.html b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23.html new file mode 100644 index 0000000..7fabcb5 --- /dev/null +++ b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: graphics Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics Directory Reference
+
+
+
+Directory dependency graph for graphics:
+
+
+
+ + + + +

+Directories

 
3d_matrix
 
img_to_3d_matrix
+
+
+ +
+ + + + diff --git a/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23.js b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23.js new file mode 100644 index 0000000..b9488fb --- /dev/null +++ b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23.js @@ -0,0 +1,5 @@ +var dir_011fb339d4ebe6812c2c47d3e6334b23 = +[ + [ "3d_matrix", "dir_6ab96501580168da92dbadcbc9b254ca.html", "dir_6ab96501580168da92dbadcbc9b254ca" ], + [ "img_to_3d_matrix", "dir_b919e33db9942c3e712aefd750376bac.html", "dir_b919e33db9942c3e712aefd750376bac" ] +]; \ No newline at end of file diff --git a/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep.md5 b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep.md5 new file mode 100644 index 0000000..8417c3d --- /dev/null +++ b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep.md5 @@ -0,0 +1 @@ +01ed3ceb0ccf0971ffa68828a4693c0a \ No newline at end of file diff --git a/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep.svg b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep.svg new file mode 100644 index 0000000..e1b2dad --- /dev/null +++ b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + +graphics + +clusterdir_fc647d5b5fee47835a64d22ac5da01fe + + +azure_board_apps + + + + +clusterdir_011fb339d4ebe6812c2c47d3e6334b23 + + + + + + + +dir_011fb339d4ebe6812c2c47d3e6334b23 +graphics + + + +dir_6ab96501580168da92dbadcbc9b254ca + + +3d_matrix + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_6ab96501580168da92dbadcbc9b254ca->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_b919e33db9942c3e712aefd750376bac + + +img_to_3d_matrix + + + + + + + + + + diff --git a/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep_org.svg b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep_org.svg new file mode 100644 index 0000000..ec08fe7 --- /dev/null +++ b/docs/html/dir_011fb339d4ebe6812c2c47d3e6334b23_dep_org.svg @@ -0,0 +1,72 @@ + + + + + + +graphics + +clusterdir_fc647d5b5fee47835a64d22ac5da01fe + + +azure_board_apps + + + + +clusterdir_011fb339d4ebe6812c2c47d3e6334b23 + + + + + + + +dir_011fb339d4ebe6812c2c47d3e6334b23 +graphics + + + +dir_6ab96501580168da92dbadcbc9b254ca + + +3d_matrix + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_6ab96501580168da92dbadcbc9b254ca->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_b919e33db9942c3e712aefd750376bac + + +img_to_3d_matrix + + + + + diff --git a/docs/html/dir_02308b8e45679f69b2b2822872449adb.html b/docs/html/dir_02308b8e45679f69b2b2822872449adb.html new file mode 100644 index 0000000..fc4d04d --- /dev/null +++ b/docs/html/dir_02308b8e45679f69b2b2822872449adb.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics Directory Reference
+
+
+
+Directory dependency graph for 3d_graphics:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_02308b8e45679f69b2b2822872449adb.js b/docs/html/dir_02308b8e45679f69b2b2822872449adb.js new file mode 100644 index 0000000..83f2ab4 --- /dev/null +++ b/docs/html/dir_02308b8e45679f69b2b2822872449adb.js @@ -0,0 +1,4 @@ +var dir_02308b8e45679f69b2b2822872449adb = +[ + [ "main", "dir_8b8499bbd42fd5ef51b6750e8611bcb7.html", "dir_8b8499bbd42fd5ef51b6750e8611bcb7" ] +]; \ No newline at end of file diff --git a/docs/html/dir_02308b8e45679f69b2b2822872449adb_dep.md5 b/docs/html/dir_02308b8e45679f69b2b2822872449adb_dep.md5 new file mode 100644 index 0000000..577dbf7 --- /dev/null +++ b/docs/html/dir_02308b8e45679f69b2b2822872449adb_dep.md5 @@ -0,0 +1 @@ +877c44c8b0668c277bd13f719dd8b238 \ No newline at end of file diff --git a/docs/html/dir_02308b8e45679f69b2b2822872449adb_dep.svg b/docs/html/dir_02308b8e45679f69b2b2822872449adb_dep.svg new file mode 100644 index 0000000..205ecae --- /dev/null +++ b/docs/html/dir_02308b8e45679f69b2b2822872449adb_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +3d_graphics + +clusterdir_42be8631e0eff9e3824673f44965e076 + + +apps + + + + +clusterdir_02308b8e45679f69b2b2822872449adb + + + + + + + +dir_02308b8e45679f69b2b2822872449adb +3d_graphics + + + +dir_8b8499bbd42fd5ef51b6750e8611bcb7 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_8b8499bbd42fd5ef51b6750e8611bcb7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_02308b8e45679f69b2b2822872449adb_dep_org.svg b/docs/html/dir_02308b8e45679f69b2b2822872449adb_dep_org.svg new file mode 100644 index 0000000..6d44589 --- /dev/null +++ b/docs/html/dir_02308b8e45679f69b2b2822872449adb_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +3d_graphics + +clusterdir_42be8631e0eff9e3824673f44965e076 + + +apps + + + + +clusterdir_02308b8e45679f69b2b2822872449adb + + + + + + + +dir_02308b8e45679f69b2b2822872449adb +3d_graphics + + + +dir_8b8499bbd42fd5ef51b6750e8611bcb7 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_8b8499bbd42fd5ef51b6750e8611bcb7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9.html b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9.html new file mode 100644 index 0000000..5125959 --- /dev/null +++ b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_math.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9.js b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9.js new file mode 100644 index 0000000..4f8cb63 --- /dev/null +++ b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9.js @@ -0,0 +1,4 @@ +var dir_03855b1c5f3acbaf4daeb650f245a4c9 = +[ + [ "dsps_math.h", "dsps__math_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep.md5 b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep.md5 new file mode 100644 index 0000000..45d3c1d --- /dev/null +++ b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep.md5 @@ -0,0 +1 @@ +e9818836749b99e94c0985e1ddcdbe04 \ No newline at end of file diff --git a/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep.svg b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep.svg new file mode 100644 index 0000000..68f6ade --- /dev/null +++ b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + +include + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + +sqrt + + + + + +dir_c2033497fb0ab786bab9abfae6d47534 + + +addc + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9 + + +include + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_176ce0f9603aed617a2000f9b4957e6f + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_dff87212d3726025066eaf86c6c94532 + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_65ea5eca559d12155f129d4142988850 + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_c2033497fb0ab786bab9abfae6d47534 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep_org.svg b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep_org.svg new file mode 100644 index 0000000..67004d6 --- /dev/null +++ b/docs/html/dir_03855b1c5f3acbaf4daeb650f245a4c9_dep_org.svg @@ -0,0 +1,161 @@ + + + + + + +include + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + +sqrt + + + + + +dir_c2033497fb0ab786bab9abfae6d47534 + + +addc + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9 + + +include + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_176ce0f9603aed617a2000f9b4957e6f + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_dff87212d3726025066eaf86c6c94532 + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_65ea5eca559d12155f129d4142988850 + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_c2033497fb0ab786bab9abfae6d47534 + + + + + + +1 + + + + + diff --git a/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0.html b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0.html new file mode 100644 index 0000000..2ba572b --- /dev/null +++ b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: kalman Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman Directory Reference
+
+
+
+Directory dependency graph for kalman:
+
+
+
+ + + + +

+Directories

 
ekf
 
ekf_imu13states
+
+
+ +
+ + + + diff --git a/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0.js b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0.js new file mode 100644 index 0000000..44bdca6 --- /dev/null +++ b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0.js @@ -0,0 +1,5 @@ +var dir_0469dbe69b06e7cedb52b012fa55f8d0 = +[ + [ "ekf", "dir_b2edfaaef06a92a9d53ea863519f7932.html", "dir_b2edfaaef06a92a9d53ea863519f7932" ], + [ "ekf_imu13states", "dir_43b440e8c9d7b15ca688aa8c8e594f1b.html", "dir_43b440e8c9d7b15ca688aa8c8e594f1b" ] +]; \ No newline at end of file diff --git a/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep.md5 b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep.md5 new file mode 100644 index 0000000..b012e54 --- /dev/null +++ b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep.md5 @@ -0,0 +1 @@ +bf6937c5034ba97156767489f9e5cacf \ No newline at end of file diff --git a/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep.svg b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep.svg new file mode 100644 index 0000000..219a257 --- /dev/null +++ b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +kalman + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_0469dbe69b06e7cedb52b012fa55f8d0 + + + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_0469dbe69b06e7cedb52b012fa55f8d0 +kalman + + + +dir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_b2edfaaef06a92a9d53ea863519f7932->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_43b440e8c9d7b15ca688aa8c8e594f1b + + +ekf_imu13states + + + + + +dir_43b440e8c9d7b15ca688aa8c8e594f1b->dir_b2edfaaef06a92a9d53ea863519f7932 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep_org.svg b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep_org.svg new file mode 100644 index 0000000..91d4418 --- /dev/null +++ b/docs/html/dir_0469dbe69b06e7cedb52b012fa55f8d0_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +kalman + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_0469dbe69b06e7cedb52b012fa55f8d0 + + + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_0469dbe69b06e7cedb52b012fa55f8d0 +kalman + + + +dir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_b2edfaaef06a92a9d53ea863519f7932->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_43b440e8c9d7b15ca688aa8c8e594f1b + + +ekf_imu13states + + + + + +dir_43b440e8c9d7b15ca688aa8c8e594f1b->dir_b2edfaaef06a92a9d53ea863519f7932 + + + + + + +1 + + + + + diff --git a/docs/html/dir_0609830f9d21b927f4cb8e061f955380.html b/docs/html/dir_0609830f9d21b927f4cb8e061f955380.html new file mode 100644 index 0000000..61e99a9 --- /dev/null +++ b/docs/html/dir_0609830f9d21b927f4cb8e061f955380.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
kalman_filter_demo.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_0609830f9d21b927f4cb8e061f955380.js b/docs/html/dir_0609830f9d21b927f4cb8e061f955380.js new file mode 100644 index 0000000..a84e667 --- /dev/null +++ b/docs/html/dir_0609830f9d21b927f4cb8e061f955380.js @@ -0,0 +1,4 @@ +var dir_0609830f9d21b927f4cb8e061f955380 = +[ + [ "kalman_filter_demo.cpp", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html", "applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep.md5 b/docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep.md5 new file mode 100644 index 0000000..a6b1f38 --- /dev/null +++ b/docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep.md5 @@ -0,0 +1 @@ +68e9303728bff9174a2489176495d3f4 \ No newline at end of file diff --git a/docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep.svg b/docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep.svg new file mode 100644 index 0000000..aa04d01 --- /dev/null +++ b/docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_33fba1519ab5d9fc7528a1e4e18a1727 + + +kalman_filter + + + + + +dir_0609830f9d21b927f4cb8e061f955380 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0609830f9d21b927f4cb8e061f955380->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep_org.svg b/docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep_org.svg new file mode 100644 index 0000000..0215010 --- /dev/null +++ b/docs/html/dir_0609830f9d21b927f4cb8e061f955380_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_33fba1519ab5d9fc7528a1e4e18a1727 + + +kalman_filter + + + + + +dir_0609830f9d21b927f4cb8e061f955380 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0609830f9d21b927f4cb8e061f955380->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_09ad66f83672b653a2c2d9afebef122d.html b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d.html new file mode 100644 index 0000000..19d4fe9 --- /dev/null +++ b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: f9c2d4b3 Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
f9c2d4b3 Directory Reference
+
+
+
+Directory dependency graph for f9c2d4b3:
+
+
+
+ + + +

+Directories

 
azure_board_apps
+
+
+ +
+ + + + diff --git a/docs/html/dir_09ad66f83672b653a2c2d9afebef122d.js b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d.js new file mode 100644 index 0000000..103191b --- /dev/null +++ b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d.js @@ -0,0 +1,4 @@ +var dir_09ad66f83672b653a2c2d9afebef122d = +[ + [ "azure_board_apps", "dir_9f56573f249ce70c94c7b8fff377f7a9.html", "dir_9f56573f249ce70c94c7b8fff377f7a9" ] +]; \ No newline at end of file diff --git a/docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep.md5 b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep.md5 new file mode 100644 index 0000000..560bdde --- /dev/null +++ b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep.md5 @@ -0,0 +1 @@ +df231416ca9f53794c12baa75e96f23a \ No newline at end of file diff --git a/docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep.svg b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep.svg new file mode 100644 index 0000000..74f3cb0 --- /dev/null +++ b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +f9c2d4b3 + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + +clusterdir_09ad66f83672b653a2c2d9afebef122d + + + + + + + +dir_09ad66f83672b653a2c2d9afebef122d +f9c2d4b3 + + + +dir_9f56573f249ce70c94c7b8fff377f7a9 + + +azure_board_apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_9f56573f249ce70c94c7b8fff377f7a9->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + + + + + + diff --git a/docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep_org.svg b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep_org.svg new file mode 100644 index 0000000..1508cac --- /dev/null +++ b/docs/html/dir_09ad66f83672b653a2c2d9afebef122d_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +f9c2d4b3 + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + +clusterdir_09ad66f83672b653a2c2d9afebef122d + + + + + + + +dir_09ad66f83672b653a2c2d9afebef122d +f9c2d4b3 + + + +dir_9f56573f249ce70c94c7b8fff377f7a9 + + +azure_board_apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_9f56573f249ce70c94c7b8fff377f7a9->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + diff --git a/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb.html b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb.html new file mode 100644 index 0000000..1899658 --- /dev/null +++ b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + + + + + + +

+Files

 
dsp_common.h
 
dsp_err.h
 
dsp_err_codes.h
 
dsp_platform.h
 
dsp_tests.h
 
dsp_types.h
 
esp_dsp.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb.js b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb.js new file mode 100644 index 0000000..dd105b8 --- /dev/null +++ b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb.js @@ -0,0 +1,10 @@ +var dir_0aad210bf1f44ca0774b9c37a9d769cb = +[ + [ "dsp_common.h", "dsp__common_8h.html", "dsp__common_8h" ], + [ "dsp_err.h", "dsp__err_8h.html", null ], + [ "dsp_err_codes.h", "dsp__err__codes_8h.html", "dsp__err__codes_8h" ], + [ "dsp_platform.h", "dsp__platform_8h.html", null ], + [ "dsp_tests.h", "dsp__tests_8h.html", "dsp__tests_8h" ], + [ "dsp_types.h", "dsp__types_8h.html", "dsp__types_8h" ], + [ "esp_dsp.h", "esp__dsp_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep.md5 b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep.md5 new file mode 100644 index 0000000..52611ea --- /dev/null +++ b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep.md5 @@ -0,0 +1 @@ +896bab8c9a667da4bfbec8ceaf093081 \ No newline at end of file diff --git a/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep.svg b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep.svg new file mode 100644 index 0000000..2275968 --- /dev/null +++ b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep.svg @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +include + +clusterdir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5fa5d6f670414422007a5925e84ae702 + + +include_sim + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb + + +include + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_5fa5d6f670414422007a5925e84ae702 + + + + + + +1 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +2 + + + + + +dir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_5f2e64e9fe690f961d00e914be24c898 + + + + + + +2 + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_67c4e8b77b4357a93ff15d0d28548721 + + + + + + +6 + + + + + +dir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_6f0282a56182e11784085c9051410321 + + + + + + +1 + + + + + +dir_95624ebda436e232844a7007340a6b2b + + +windows + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_95624ebda436e232844a7007340a6b2b + + + + + + +1 + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_d3a7bf488950df7c258d146af03d9440 + + + + + + +2 + + + + + +dir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_d889323c3d75be7406c85891426fb089 + + + + + + +3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep_org.svg b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep_org.svg new file mode 100644 index 0000000..206056e --- /dev/null +++ b/docs/html/dir_0aad210bf1f44ca0774b9c37a9d769cb_dep_org.svg @@ -0,0 +1,271 @@ + + + + + + +include + +clusterdir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5fa5d6f670414422007a5925e84ae702 + + +include_sim + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb + + +include + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_5fa5d6f670414422007a5925e84ae702 + + + + + + +1 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +2 + + + + + +dir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_5f2e64e9fe690f961d00e914be24c898 + + + + + + +2 + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_67c4e8b77b4357a93ff15d0d28548721 + + + + + + +6 + + + + + +dir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_6f0282a56182e11784085c9051410321 + + + + + + +1 + + + + + +dir_95624ebda436e232844a7007340a6b2b + + +windows + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_95624ebda436e232844a7007340a6b2b + + + + + + +1 + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_d3a7bf488950df7c258d146af03d9440 + + + + + + +2 + + + + + +dir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_d889323c3d75be7406c85891426fb089 + + + + + + +3 + + + + + diff --git a/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3.html b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3.html new file mode 100644 index 0000000..aa74dcf --- /dev/null +++ b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix_src Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_matrix_src Directory Reference
+
+
+
+Directory dependency graph for 3d_matrix_src:
+
+
+
+ + + + +

+Files

 
graphics_support.cpp
 
graphics_support.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3.js b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3.js new file mode 100644 index 0000000..ddbd861 --- /dev/null +++ b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3.js @@ -0,0 +1,5 @@ +var dir_0bd9d4933e358e4bf5f0430ee37507d3 = +[ + [ "graphics_support.cpp", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp" ], + [ "graphics_support.h", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep.md5 b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep.md5 new file mode 100644 index 0000000..6fd8eb6 --- /dev/null +++ b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep.md5 @@ -0,0 +1 @@ +e0b11409b84d1469fb872d4b624e9bf2 \ No newline at end of file diff --git a/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep.svg b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep.svg new file mode 100644 index 0000000..16b32ed --- /dev/null +++ b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +3d_matrix_src + +clusterdir_a3d37b3538242ea047872cfcc616fb89 + + +3d_matrix + + + + + +dir_0bd9d4933e358e4bf5f0430ee37507d3 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0bd9d4933e358e4bf5f0430ee37507d3->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep_org.svg b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep_org.svg new file mode 100644 index 0000000..fa49593 --- /dev/null +++ b/docs/html/dir_0bd9d4933e358e4bf5f0430ee37507d3_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +3d_matrix_src + +clusterdir_a3d37b3538242ea047872cfcc616fb89 + + +3d_matrix + + + + + +dir_0bd9d4933e358e4bf5f0430ee37507d3 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0bd9d4933e358e4bf5f0430ee37507d3->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8.html b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8.html new file mode 100644 index 0000000..6ff80ee --- /dev/null +++ b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: dotprod Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dotprod Directory Reference
+
+
+
+Directory dependency graph for dotprod:
+
+
+
+ + + + + +

+Directories

 
fixed
 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8.js b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8.js new file mode 100644 index 0000000..2bcb4fd --- /dev/null +++ b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8.js @@ -0,0 +1,6 @@ +var dir_0c02408d15b1f96bbde516c6c09437d8 = +[ + [ "fixed", "dir_fe9384a6c969461651fdf91b0c07824b.html", "dir_fe9384a6c969461651fdf91b0c07824b" ], + [ "float", "dir_1e198c1fd495cc91ab3a39b5d8872c96.html", "dir_1e198c1fd495cc91ab3a39b5d8872c96" ], + [ "include", "dir_503b7d37e1488242e5075cc003fe4360.html", "dir_503b7d37e1488242e5075cc003fe4360" ] +]; \ No newline at end of file diff --git a/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep.md5 b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep.md5 new file mode 100644 index 0000000..fae6dd1 --- /dev/null +++ b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep.md5 @@ -0,0 +1 @@ +8353cd60a68a2784d7eaba80a719d19a \ No newline at end of file diff --git a/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep.svg b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep.svg new file mode 100644 index 0000000..43e234c --- /dev/null +++ b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + +dotprod + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 +dotprod + + + +dir_fe9384a6c969461651fdf91b0c07824b + + +fixed + + + + + +dir_503b7d37e1488242e5075cc003fe4360 + + +include + + + + + +dir_fe9384a6c969461651fdf91b0c07824b->dir_503b7d37e1488242e5075cc003fe4360 + + + + + + +9 + + + + + +dir_1e198c1fd495cc91ab3a39b5d8872c96 + + +float + + + + + +dir_1e198c1fd495cc91ab3a39b5d8872c96->dir_503b7d37e1488242e5075cc003fe4360 + + + + + + +4 + + + + + +dir_503b7d37e1488242e5075cc003fe4360->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep_org.svg b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep_org.svg new file mode 100644 index 0000000..282703f --- /dev/null +++ b/docs/html/dir_0c02408d15b1f96bbde516c6c09437d8_dep_org.svg @@ -0,0 +1,107 @@ + + + + + + +dotprod + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 +dotprod + + + +dir_fe9384a6c969461651fdf91b0c07824b + + +fixed + + + + + +dir_503b7d37e1488242e5075cc003fe4360 + + +include + + + + + +dir_fe9384a6c969461651fdf91b0c07824b->dir_503b7d37e1488242e5075cc003fe4360 + + + + + + +9 + + + + + +dir_1e198c1fd495cc91ab3a39b5d8872c96 + + +float + + + + + +dir_1e198c1fd495cc91ab3a39b5d8872c96->dir_503b7d37e1488242e5075cc003fe4360 + + + + + + +4 + + + + + +dir_503b7d37e1488242e5075cc003fe4360->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + diff --git a/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59.html b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59.html new file mode 100644 index 0000000..9269125 --- /dev/null +++ b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: matrix Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
matrix Directory Reference
+
+
+
+Directory dependency graph for matrix:
+
+
+
+ + + + + + + + + +

+Directories

 
add
 
addc
 
include
 
mat
 
mul
 
mulc
 
sub
+
+
+ +
+ + + + diff --git a/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59.js b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59.js new file mode 100644 index 0000000..b35f258 --- /dev/null +++ b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59.js @@ -0,0 +1,10 @@ +var dir_0c394f99e8354c91f0eeb3e30368bc59 = +[ + [ "add", "dir_3fd26304af2c2aef8acd2c6ee8269bcd.html", "dir_3fd26304af2c2aef8acd2c6ee8269bcd" ], + [ "addc", "dir_733999795ec05e1d47dd8f5326556154.html", "dir_733999795ec05e1d47dd8f5326556154" ], + [ "include", "dir_6bb6fdb490c8492b5ec32700edc7ffd3.html", "dir_6bb6fdb490c8492b5ec32700edc7ffd3" ], + [ "mat", "dir_68ca4758199d84990e1ba5857830e815.html", "dir_68ca4758199d84990e1ba5857830e815" ], + [ "mul", "dir_6452a9bf1971d09ce0c2e6a86e350069.html", "dir_6452a9bf1971d09ce0c2e6a86e350069" ], + [ "mulc", "dir_8223604c15cd95bf81d4d8af6d40e86f.html", "dir_8223604c15cd95bf81d4d8af6d40e86f" ], + [ "sub", "dir_e7f8e8e4b9616aa9af33ffb274dfdf04.html", "dir_e7f8e8e4b9616aa9af33ffb274dfdf04" ] +]; \ No newline at end of file diff --git a/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep.md5 b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep.md5 new file mode 100644 index 0000000..3abd232 --- /dev/null +++ b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep.md5 @@ -0,0 +1 @@ +446eb29c04e31d9e02730efdaf1794dd \ No newline at end of file diff --git a/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep.svg b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep.svg new file mode 100644 index 0000000..ad4de9d --- /dev/null +++ b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep.svg @@ -0,0 +1,330 @@ + + + + + + + + + + + + +matrix + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 +matrix + + + +dir_3fd26304af2c2aef8acd2c6ee8269bcd + + +add + + + + + +dir_3fd26304af2c2aef8acd2c6ee8269bcd->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_733999795ec05e1d47dd8f5326556154 + + +addc + + + + + +dir_733999795ec05e1d47dd8f5326556154->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + +include + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_3fd26304af2c2aef8acd2c6ee8269bcd + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_733999795ec05e1d47dd8f5326556154 + + + + + + +1 + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_6452a9bf1971d09ce0c2e6a86e350069 + + + + + + +1 + + + + + +dir_8223604c15cd95bf81d4d8af6d40e86f + + +mulc + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_8223604c15cd95bf81d4d8af6d40e86f + + + + + + +1 + + + + + +dir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + +sub + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + + + + + +1 + + + + + +dir_68ca4758199d84990e1ba5857830e815 + + +mat + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + + + + + +2 + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_8223604c15cd95bf81d4d8af6d40e86f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_e7f8e8e4b9616aa9af33ffb274dfdf04->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep_org.svg b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep_org.svg new file mode 100644 index 0000000..2ca58f6 --- /dev/null +++ b/docs/html/dir_0c394f99e8354c91f0eeb3e30368bc59_dep_org.svg @@ -0,0 +1,304 @@ + + + + + + +matrix + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 +matrix + + + +dir_3fd26304af2c2aef8acd2c6ee8269bcd + + +add + + + + + +dir_3fd26304af2c2aef8acd2c6ee8269bcd->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_733999795ec05e1d47dd8f5326556154 + + +addc + + + + + +dir_733999795ec05e1d47dd8f5326556154->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + +include + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_3fd26304af2c2aef8acd2c6ee8269bcd + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_733999795ec05e1d47dd8f5326556154 + + + + + + +1 + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_6452a9bf1971d09ce0c2e6a86e350069 + + + + + + +1 + + + + + +dir_8223604c15cd95bf81d4d8af6d40e86f + + +mulc + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_8223604c15cd95bf81d4d8af6d40e86f + + + + + + +1 + + + + + +dir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + +sub + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + + + + + +1 + + + + + +dir_68ca4758199d84990e1ba5857830e815 + + +mat + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + + + + + +2 + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_8223604c15cd95bf81d4d8af6d40e86f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_e7f8e8e4b9616aa9af33ffb274dfdf04->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f.html b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f.html new file mode 100644 index 0000000..c7a187f --- /dev/null +++ b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_sqrt.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f.js b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f.js new file mode 100644 index 0000000..849b937 --- /dev/null +++ b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f.js @@ -0,0 +1,4 @@ +var dir_0d2a08bbb77a87cf54ef0513a3b6385f = +[ + [ "dsps_sqrt.h", "dsps__sqrt_8h.html", "dsps__sqrt_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep.md5 b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep.md5 new file mode 100644 index 0000000..1ae9d6a --- /dev/null +++ b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep.md5 @@ -0,0 +1 @@ +9503e2597f87a6ae4fdd80e6bcc2b85c \ No newline at end of file diff --git a/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep.svg b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep.svg new file mode 100644 index 0000000..e7e2485 --- /dev/null +++ b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + +sqrt + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep_org.svg b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep_org.svg new file mode 100644 index 0000000..5550fd4 --- /dev/null +++ b/docs/html/dir_0d2a08bbb77a87cf54ef0513a3b6385f_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + +sqrt + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_0db1884497eb987b5f550d1edc49e18a.html b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a.html new file mode 100644 index 0000000..4c7b670 --- /dev/null +++ b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: apps Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
apps Directory Reference
+
+
+
+Directory dependency graph for apps:
+
+
+
+ + + + +

+Directories

 
3d_graphics
 
kalman_filter
+
+
+ +
+ + + + diff --git a/docs/html/dir_0db1884497eb987b5f550d1edc49e18a.js b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a.js new file mode 100644 index 0000000..47f5986 --- /dev/null +++ b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a.js @@ -0,0 +1,5 @@ +var dir_0db1884497eb987b5f550d1edc49e18a = +[ + [ "3d_graphics", "dir_659a621b8518330e2405891a2cbe2de4.html", "dir_659a621b8518330e2405891a2cbe2de4" ], + [ "kalman_filter", "dir_9b69c23330a7d810ddb9527a98b69931.html", "dir_9b69c23330a7d810ddb9527a98b69931" ] +]; \ No newline at end of file diff --git a/docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep.md5 b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep.md5 new file mode 100644 index 0000000..9cbb816 --- /dev/null +++ b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep.md5 @@ -0,0 +1 @@ +a2a086b91a324f4aa7f218184554fece \ No newline at end of file diff --git a/docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep.svg b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep.svg new file mode 100644 index 0000000..7d301dd --- /dev/null +++ b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +apps + +clusterdir_bab3575675640a99c668cf654a35a16e + + +m5stack_core_s3 + + + + +clusterdir_0db1884497eb987b5f550d1edc49e18a + + + + + + + +dir_0db1884497eb987b5f550d1edc49e18a +apps + + + +dir_659a621b8518330e2405891a2cbe2de4 + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_659a621b8518330e2405891a2cbe2de4->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_9b69c23330a7d810ddb9527a98b69931 + + +kalman_filter + + + + + +dir_9b69c23330a7d810ddb9527a98b69931->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep_org.svg b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep_org.svg new file mode 100644 index 0000000..1cb7988 --- /dev/null +++ b/docs/html/dir_0db1884497eb987b5f550d1edc49e18a_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +apps + +clusterdir_bab3575675640a99c668cf654a35a16e + + +m5stack_core_s3 + + + + +clusterdir_0db1884497eb987b5f550d1edc49e18a + + + + + + + +dir_0db1884497eb987b5f550d1edc49e18a +apps + + + +dir_659a621b8518330e2405891a2cbe2de4 + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_659a621b8518330e2405891a2cbe2de4->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_9b69c23330a7d810ddb9527a98b69931 + + +kalman_filter + + + + + +dir_9b69c23330a7d810ddb9527a98b69931->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d.html b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d.html new file mode 100644 index 0000000..d544f32 --- /dev/null +++ b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
3d_graphics_demo.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d.js b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d.js new file mode 100644 index 0000000..529b17c --- /dev/null +++ b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d.js @@ -0,0 +1,4 @@ +var dir_0e58a5050afeaefce98fd18b08172c0d = +[ + [ "3d_graphics_demo.cpp", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep.md5 b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep.md5 new file mode 100644 index 0000000..e9b691f --- /dev/null +++ b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep.md5 @@ -0,0 +1 @@ +759c118b91660f34e009eea7763d425a \ No newline at end of file diff --git a/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep.svg b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep.svg new file mode 100644 index 0000000..015bb47 --- /dev/null +++ b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_1a9183b7d6910c8019921a90e48747ec + + +3d_graphics + + + + + +dir_0e58a5050afeaefce98fd18b08172c0d + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0e58a5050afeaefce98fd18b08172c0d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep_org.svg b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep_org.svg new file mode 100644 index 0000000..b26c6c0 --- /dev/null +++ b/docs/html/dir_0e58a5050afeaefce98fd18b08172c0d_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_1a9183b7d6910c8019921a90e48747ec + + +3d_graphics + + + + + +dir_0e58a5050afeaefce98fd18b08172c0d + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0e58a5050afeaefce98fd18b08172c0d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_0f8480e348776be0b4173a763a451c02.html b/docs/html/dir_0f8480e348776be0b4173a763a451c02.html new file mode 100644 index 0000000..4d57be4 --- /dev/null +++ b/docs/html/dir_0f8480e348776be0b4173a763a451c02.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: biquad Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
biquad Directory Reference
+
+
+
+Directory dependency graph for biquad:
+
+
+
+ + + + + +

+Files

 
dsps_biquad_f32_ansi.c
 
dsps_biquad_gen_f32.c
 
dsps_biquad_sf32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_0f8480e348776be0b4173a763a451c02.js b/docs/html/dir_0f8480e348776be0b4173a763a451c02.js new file mode 100644 index 0000000..7df8217 --- /dev/null +++ b/docs/html/dir_0f8480e348776be0b4173a763a451c02.js @@ -0,0 +1,6 @@ +var dir_0f8480e348776be0b4173a763a451c02 = +[ + [ "dsps_biquad_f32_ansi.c", "dsps__biquad__f32__ansi_8c.html", "dsps__biquad__f32__ansi_8c" ], + [ "dsps_biquad_gen_f32.c", "dsps__biquad__gen__f32_8c.html", "dsps__biquad__gen__f32_8c" ], + [ "dsps_biquad_sf32_ansi.c", "dsps__biquad__sf32__ansi_8c.html", "dsps__biquad__sf32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_0f8480e348776be0b4173a763a451c02_dep.md5 b/docs/html/dir_0f8480e348776be0b4173a763a451c02_dep.md5 new file mode 100644 index 0000000..409c678 --- /dev/null +++ b/docs/html/dir_0f8480e348776be0b4173a763a451c02_dep.md5 @@ -0,0 +1 @@ +018a1d8a517003ba18116041ff13216c \ No newline at end of file diff --git a/docs/html/dir_0f8480e348776be0b4173a763a451c02_dep.svg b/docs/html/dir_0f8480e348776be0b4173a763a451c02_dep.svg new file mode 100644 index 0000000..ce386ad --- /dev/null +++ b/docs/html/dir_0f8480e348776be0b4173a763a451c02_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +biquad + +clusterdir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df + + +include + + + + + +dir_0f8480e348776be0b4173a763a451c02 + + +biquad + + + + + +dir_0f8480e348776be0b4173a763a451c02->dir_1f3faa83e2fcedf83b0357f6cc73c1df + + + + + + +3 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0f8480e348776be0b4173a763a451c02->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_0f8480e348776be0b4173a763a451c02_dep_org.svg b/docs/html/dir_0f8480e348776be0b4173a763a451c02_dep_org.svg new file mode 100644 index 0000000..c9a4adc --- /dev/null +++ b/docs/html/dir_0f8480e348776be0b4173a763a451c02_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +biquad + +clusterdir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df + + +include + + + + + +dir_0f8480e348776be0b4173a763a451c02 + + +biquad + + + + + +dir_0f8480e348776be0b4173a763a451c02->dir_1f3faa83e2fcedf83b0357f6cc73c1df + + + + + + +3 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0f8480e348776be0b4173a763a451c02->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_103c85098120c3619f61a2b979c3132b.html b/docs/html/dir_103c85098120c3619f61a2b979c3132b.html new file mode 100644 index 0000000..fd55f03 --- /dev/null +++ b/docs/html/dir_103c85098120c3619f61a2b979c3132b.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
audio_amp_main.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_103c85098120c3619f61a2b979c3132b.js b/docs/html/dir_103c85098120c3619f61a2b979c3132b.js new file mode 100644 index 0000000..b3c4e25 --- /dev/null +++ b/docs/html/dir_103c85098120c3619f61a2b979c3132b.js @@ -0,0 +1,4 @@ +var dir_103c85098120c3619f61a2b979c3132b = +[ + [ "audio_amp_main.c", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_103c85098120c3619f61a2b979c3132b_dep.md5 b/docs/html/dir_103c85098120c3619f61a2b979c3132b_dep.md5 new file mode 100644 index 0000000..dca4fd7 --- /dev/null +++ b/docs/html/dir_103c85098120c3619f61a2b979c3132b_dep.md5 @@ -0,0 +1 @@ +5946c2d0e940a8156f083eb64a35edea \ No newline at end of file diff --git a/docs/html/dir_103c85098120c3619f61a2b979c3132b_dep.svg b/docs/html/dir_103c85098120c3619f61a2b979c3132b_dep.svg new file mode 100644 index 0000000..2a71d26 --- /dev/null +++ b/docs/html/dir_103c85098120c3619f61a2b979c3132b_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_2a0602816c705fc298e0ba805dc0d70a + + +lyrat_board_app + + + + + +dir_103c85098120c3619f61a2b979c3132b + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_103c85098120c3619f61a2b979c3132b->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_103c85098120c3619f61a2b979c3132b_dep_org.svg b/docs/html/dir_103c85098120c3619f61a2b979c3132b_dep_org.svg new file mode 100644 index 0000000..311e354 --- /dev/null +++ b/docs/html/dir_103c85098120c3619f61a2b979c3132b_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_2a0602816c705fc298e0ba805dc0d70a + + +lyrat_board_app + + + + + +dir_103c85098120c3619f61a2b979c3132b + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_103c85098120c3619f61a2b979c3132b->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc.html b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc.html new file mode 100644 index 0000000..007afd4 --- /dev/null +++ b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc.html @@ -0,0 +1,130 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + + + + + + + +

+Files

 
dsps_cplx_gen.h
 
dsps_cplx_gen_platform.h
 
dsps_d_gen.h
 
dsps_h_gen.h
 
dsps_sfdr.h
 
dsps_snr.h
 
dsps_tone_gen.h
 
dsps_view.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc.js b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc.js new file mode 100644 index 0000000..75a003e --- /dev/null +++ b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc.js @@ -0,0 +1,11 @@ +var dir_10508c1be7391f23f9614e5e6618e1bc = +[ + [ "dsps_cplx_gen.h", "dsps__cplx__gen_8h.html", "dsps__cplx__gen_8h" ], + [ "dsps_cplx_gen_platform.h", "dsps__cplx__gen__platform_8h.html", null ], + [ "dsps_d_gen.h", "dsps__d__gen_8h.html", "dsps__d__gen_8h" ], + [ "dsps_h_gen.h", "dsps__h__gen_8h.html", "dsps__h__gen_8h" ], + [ "dsps_sfdr.h", "dsps__sfdr_8h.html", "dsps__sfdr_8h" ], + [ "dsps_snr.h", "dsps__snr_8h.html", "dsps__snr_8h" ], + [ "dsps_tone_gen.h", "dsps__tone__gen_8h.html", "dsps__tone__gen_8h" ], + [ "dsps_view.h", "dsps__view_8h.html", "dsps__view_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep.md5 b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep.md5 new file mode 100644 index 0000000..6650038 --- /dev/null +++ b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep.md5 @@ -0,0 +1 @@ +58b4fcecb72d962528e45851babe07ba \ No newline at end of file diff --git a/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep.svg b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep.svg new file mode 100644 index 0000000..8a0e10b --- /dev/null +++ b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc->dir_e78af46276061306d5e012847576d2b2 + + + + + + +7 + + + + + + + + + + diff --git a/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep_org.svg b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep_org.svg new file mode 100644 index 0000000..60b33a8 --- /dev/null +++ b/docs/html/dir_10508c1be7391f23f9614e5e6618e1bc_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc->dir_e78af46276061306d5e012847576d2b2 + + + + + + +7 + + + + + diff --git a/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755.html b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755.html new file mode 100644 index 0000000..9ba9583 --- /dev/null +++ b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: spectrum_box_lite Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
spectrum_box_lite Directory Reference
+
+
+
+Directory dependency graph for spectrum_box_lite:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755.js b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755.js new file mode 100644 index 0000000..ff83ad3 --- /dev/null +++ b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755.js @@ -0,0 +1,4 @@ +var dir_169a0c2dbb59f200adaa018c9c77c755 = +[ + [ "main", "dir_b8b40c3eb39ca67509682dcf2c25211e.html", "dir_b8b40c3eb39ca67509682dcf2c25211e" ] +]; \ No newline at end of file diff --git a/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep.md5 b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep.md5 new file mode 100644 index 0000000..b6a862b --- /dev/null +++ b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep.md5 @@ -0,0 +1 @@ +d45c23dbc33d80b21119eeab714c7403 \ No newline at end of file diff --git a/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep.svg b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep.svg new file mode 100644 index 0000000..d202853 --- /dev/null +++ b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +spectrum_box_lite + +clusterdir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + +clusterdir_169a0c2dbb59f200adaa018c9c77c755 + + + + + + + +dir_169a0c2dbb59f200adaa018c9c77c755 +spectrum_box_lite + + + +dir_b8b40c3eb39ca67509682dcf2c25211e + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b8b40c3eb39ca67509682dcf2c25211e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep_org.svg b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep_org.svg new file mode 100644 index 0000000..4e9f0b9 --- /dev/null +++ b/docs/html/dir_169a0c2dbb59f200adaa018c9c77c755_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +spectrum_box_lite + +clusterdir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + +clusterdir_169a0c2dbb59f200adaa018c9c77c755 + + + + + + + +dir_169a0c2dbb59f200adaa018c9c77c755 +spectrum_box_lite + + + +dir_b8b40c3eb39ca67509682dcf2c25211e + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b8b40c3eb39ca67509682dcf2c25211e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_16c85ce1c9ed281be79921a05621351c.html b/docs/html/dir_16c85ce1c9ed281be79921a05621351c.html new file mode 100644 index 0000000..8a70c69 --- /dev/null +++ b/docs/html/dir_16c85ce1c9ed281be79921a05621351c.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: apps Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
apps Directory Reference
+
+
+
+Directory dependency graph for apps:
+
+
+
+ + + + +

+Directories

 
3d_graphics
 
kalman_filter
+
+
+ +
+ + + + diff --git a/docs/html/dir_16c85ce1c9ed281be79921a05621351c.js b/docs/html/dir_16c85ce1c9ed281be79921a05621351c.js new file mode 100644 index 0000000..53c5c1a --- /dev/null +++ b/docs/html/dir_16c85ce1c9ed281be79921a05621351c.js @@ -0,0 +1,5 @@ +var dir_16c85ce1c9ed281be79921a05621351c = +[ + [ "3d_graphics", "dir_1a9183b7d6910c8019921a90e48747ec.html", "dir_1a9183b7d6910c8019921a90e48747ec" ], + [ "kalman_filter", "dir_945d2b1bad7511c32093cc54649ad1cb.html", "dir_945d2b1bad7511c32093cc54649ad1cb" ] +]; \ No newline at end of file diff --git a/docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep.md5 b/docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep.md5 new file mode 100644 index 0000000..9f2e4ea --- /dev/null +++ b/docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep.md5 @@ -0,0 +1 @@ +5263338971e91420853139bfd51c948d \ No newline at end of file diff --git a/docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep.svg b/docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep.svg new file mode 100644 index 0000000..12b4bd1 --- /dev/null +++ b/docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +apps + +clusterdir_c5eb101bd20917ef236da0cb98586871 + + +d1468452 + + + + +clusterdir_16c85ce1c9ed281be79921a05621351c + + + + + + + +dir_16c85ce1c9ed281be79921a05621351c +apps + + + +dir_1a9183b7d6910c8019921a90e48747ec + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_1a9183b7d6910c8019921a90e48747ec->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_945d2b1bad7511c32093cc54649ad1cb + + +kalman_filter + + + + + +dir_945d2b1bad7511c32093cc54649ad1cb->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep_org.svg b/docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep_org.svg new file mode 100644 index 0000000..4034e6a --- /dev/null +++ b/docs/html/dir_16c85ce1c9ed281be79921a05621351c_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +apps + +clusterdir_c5eb101bd20917ef236da0cb98586871 + + +d1468452 + + + + +clusterdir_16c85ce1c9ed281be79921a05621351c + + + + + + + +dir_16c85ce1c9ed281be79921a05621351c +apps + + + +dir_1a9183b7d6910c8019921a90e48747ec + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_1a9183b7d6910c8019921a90e48747ec->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_945d2b1bad7511c32093cc54649ad1cb + + +kalman_filter + + + + + +dir_945d2b1bad7511c32093cc54649ad1cb->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_16df77616ac816b7b694d2fa838cb084.html b/docs/html/dir_16df77616ac816b7b694d2fa838cb084.html new file mode 100644 index 0000000..a10e71c --- /dev/null +++ b/docs/html/dir_16df77616ac816b7b694d2fa838cb084.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dspm_addc.h
 
dspm_addc_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_16df77616ac816b7b694d2fa838cb084.js b/docs/html/dir_16df77616ac816b7b694d2fa838cb084.js new file mode 100644 index 0000000..467a992 --- /dev/null +++ b/docs/html/dir_16df77616ac816b7b694d2fa838cb084.js @@ -0,0 +1,5 @@ +var dir_16df77616ac816b7b694d2fa838cb084 = +[ + [ "dspm_addc.h", "dspm__addc_8h.html", "dspm__addc_8h" ], + [ "dspm_addc_platform.h", "dspm__addc__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep.md5 b/docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep.md5 new file mode 100644 index 0000000..8ae2f27 --- /dev/null +++ b/docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep.md5 @@ -0,0 +1 @@ +8489361c515dc6a842761c8fa2ee64ac \ No newline at end of file diff --git a/docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep.svg b/docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep.svg new file mode 100644 index 0000000..b5270ed --- /dev/null +++ b/docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_733999795ec05e1d47dd8f5326556154 + + +addc + + + + + +dir_16df77616ac816b7b694d2fa838cb084 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_16df77616ac816b7b694d2fa838cb084->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep_org.svg b/docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep_org.svg new file mode 100644 index 0000000..3e979c4 --- /dev/null +++ b/docs/html/dir_16df77616ac816b7b694d2fa838cb084_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_733999795ec05e1d47dd8f5326556154 + + +addc + + + + + +dir_16df77616ac816b7b694d2fa838cb084 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_16df77616ac816b7b694d2fa838cb084->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_171b4edb7086532dd11580f43732b9a7.html b/docs/html/dir_171b4edb7086532dd11580f43732b9a7.html new file mode 100644 index 0000000..dc67b18 --- /dev/null +++ b/docs/html/dir_171b4edb7086532dd11580f43732b9a7.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: graphics Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics Directory Reference
+
+
+
+Directory dependency graph for graphics:
+
+
+
+ + + + +

+Directories

 
3d_matrix
 
img_to_3d_matrix
+
+
+ +
+ + + + diff --git a/docs/html/dir_171b4edb7086532dd11580f43732b9a7.js b/docs/html/dir_171b4edb7086532dd11580f43732b9a7.js new file mode 100644 index 0000000..97bae63 --- /dev/null +++ b/docs/html/dir_171b4edb7086532dd11580f43732b9a7.js @@ -0,0 +1,5 @@ +var dir_171b4edb7086532dd11580f43732b9a7 = +[ + [ "3d_matrix", "dir_e33b7cda9a005c39a6e7551b4e05602d.html", "dir_e33b7cda9a005c39a6e7551b4e05602d" ], + [ "img_to_3d_matrix", "dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.html", "dir_c5b9f8f4a3ee5f165d6b260641ed6a6b" ] +]; \ No newline at end of file diff --git a/docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep.md5 b/docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep.md5 new file mode 100644 index 0000000..14f8b24 --- /dev/null +++ b/docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep.md5 @@ -0,0 +1 @@ +cc11ce410b7bf72e61984eaa0728c3eb \ No newline at end of file diff --git a/docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep.svg b/docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep.svg new file mode 100644 index 0000000..8021160 --- /dev/null +++ b/docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + +graphics + +clusterdir_f5ac212e894c3c636ee22eba8071736a + + +azure_board_apps + + + + +clusterdir_171b4edb7086532dd11580f43732b9a7 + + + + + + + +dir_171b4edb7086532dd11580f43732b9a7 +graphics + + + +dir_e33b7cda9a005c39a6e7551b4e05602d + + +3d_matrix + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_e33b7cda9a005c39a6e7551b4e05602d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_c5b9f8f4a3ee5f165d6b260641ed6a6b + + +img_to_3d_matrix + + + + + + + + + + diff --git a/docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep_org.svg b/docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep_org.svg new file mode 100644 index 0000000..8a1de34 --- /dev/null +++ b/docs/html/dir_171b4edb7086532dd11580f43732b9a7_dep_org.svg @@ -0,0 +1,72 @@ + + + + + + +graphics + +clusterdir_f5ac212e894c3c636ee22eba8071736a + + +azure_board_apps + + + + +clusterdir_171b4edb7086532dd11580f43732b9a7 + + + + + + + +dir_171b4edb7086532dd11580f43732b9a7 +graphics + + + +dir_e33b7cda9a005c39a6e7551b4e05602d + + +3d_matrix + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_e33b7cda9a005c39a6e7551b4e05602d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_c5b9f8f4a3ee5f165d6b260641ed6a6b + + +img_to_3d_matrix + + + + + diff --git a/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58.html b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58.html new file mode 100644 index 0000000..3fffc00 --- /dev/null +++ b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: test_sim Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
test_sim Directory Reference
+
+
+
+Directory dependency graph for test_sim:
+
+
+
+ + + + +

+Files

 
main.c
 
test_fft2r.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58.js b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58.js new file mode 100644 index 0000000..2c9701e --- /dev/null +++ b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58.js @@ -0,0 +1,5 @@ +var dir_1733da89b05be0c2f50cc1cde7b9ef58 = +[ + [ "main.c", "components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c.html", "components_2espressif____esp-dsp_2modules_2fft_2test__sim_2main_8c" ], + [ "test_fft2r.c", "test__fft2r_8c.html", "test__fft2r_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep.md5 b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep.md5 new file mode 100644 index 0000000..938037e --- /dev/null +++ b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep.md5 @@ -0,0 +1 @@ +7fdbd4eed1ae7da7e76fa5f8b6c81ff0 \ No newline at end of file diff --git a/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep.svg b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep.svg new file mode 100644 index 0000000..64e6f1e --- /dev/null +++ b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + +test_sim + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58 + + +test_sim + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +1 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep_org.svg b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep_org.svg new file mode 100644 index 0000000..4ded646 --- /dev/null +++ b/docs/html/dir_1733da89b05be0c2f50cc1cde7b9ef58_dep_org.svg @@ -0,0 +1,95 @@ + + + + + + +test_sim + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58 + + +test_sim + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +1 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f.html b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f.html new file mode 100644 index 0000000..4af83b9 --- /dev/null +++ b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: mulc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mulc Directory Reference
+
+
+
+Directory dependency graph for mulc:
+
+
+
+ + + + + +

+Directories

 
fixed
 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f.js b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f.js new file mode 100644 index 0000000..7fbae3e --- /dev/null +++ b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f.js @@ -0,0 +1,6 @@ +var dir_176ce0f9603aed617a2000f9b4957e6f = +[ + [ "fixed", "dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.html", "dir_ee35c1c3ca151a08d5d44d0cdc3a05d5" ], + [ "float", "dir_6fb21038c3f6fdc5673bbe8abfbcbd03.html", "dir_6fb21038c3f6fdc5673bbe8abfbcbd03" ], + [ "include", "dir_5ce06cfd77962876b8da27c1fc0c8521.html", "dir_5ce06cfd77962876b8da27c1fc0c8521" ] +]; \ No newline at end of file diff --git a/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep.md5 b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep.md5 new file mode 100644 index 0000000..f7219fb --- /dev/null +++ b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep.md5 @@ -0,0 +1 @@ +d1142d2ad40172a3607516f698ff9adb \ No newline at end of file diff --git a/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep.svg b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep.svg new file mode 100644 index 0000000..b9f6555 --- /dev/null +++ b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + +mulc + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_176ce0f9603aed617a2000f9b4957e6f + + + + + + + +dir_176ce0f9603aed617a2000f9b4957e6f +mulc + + + +dir_ee35c1c3ca151a08d5d44d0cdc3a05d5 + + +fixed + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521 + + +include + + + + + +dir_ee35c1c3ca151a08d5d44d0cdc3a05d5->dir_5ce06cfd77962876b8da27c1fc0c8521 + + + + + + +1 + + + + + +dir_6fb21038c3f6fdc5673bbe8abfbcbd03 + + +float + + + + + +dir_6fb21038c3f6fdc5673bbe8abfbcbd03->dir_5ce06cfd77962876b8da27c1fc0c8521 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep_org.svg b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep_org.svg new file mode 100644 index 0000000..b1a9b08 --- /dev/null +++ b/docs/html/dir_176ce0f9603aed617a2000f9b4957e6f_dep_org.svg @@ -0,0 +1,107 @@ + + + + + + +mulc + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_176ce0f9603aed617a2000f9b4957e6f + + + + + + + +dir_176ce0f9603aed617a2000f9b4957e6f +mulc + + + +dir_ee35c1c3ca151a08d5d44d0cdc3a05d5 + + +fixed + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521 + + +include + + + + + +dir_ee35c1c3ca151a08d5d44d0cdc3a05d5->dir_5ce06cfd77962876b8da27c1fc0c8521 + + + + + + +1 + + + + + +dir_6fb21038c3f6fdc5673bbe8abfbcbd03 + + +float + + + + + +dir_6fb21038c3f6fdc5673bbe8abfbcbd03->dir_5ce06cfd77962876b8da27c1fc0c8521 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_1796197e4e8e42e555193fa38af1784a.html b/docs/html/dir_1796197e4e8e42e555193fa38af1784a.html new file mode 100644 index 0000000..4af8beb --- /dev/null +++ b/docs/html/dir_1796197e4e8e42e555193fa38af1784a.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: common Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
common Directory Reference
+
+
+
+Directory dependency graph for common:
+
+
+
+ + + +

+Files

 
ekf.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_1796197e4e8e42e555193fa38af1784a.js b/docs/html/dir_1796197e4e8e42e555193fa38af1784a.js new file mode 100644 index 0000000..7e41c4a --- /dev/null +++ b/docs/html/dir_1796197e4e8e42e555193fa38af1784a.js @@ -0,0 +1,4 @@ +var dir_1796197e4e8e42e555193fa38af1784a = +[ + [ "ekf.cpp", "ekf_8cpp.html", "ekf_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep.md5 b/docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep.md5 new file mode 100644 index 0000000..b144507 --- /dev/null +++ b/docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep.md5 @@ -0,0 +1 @@ +570db38b27e2ab798d21f1731b93c17e \ No newline at end of file diff --git a/docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep.svg b/docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep.svg new file mode 100644 index 0000000..3248506 --- /dev/null +++ b/docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +common + +clusterdir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_daeea571a943a8adb5cad931a75d2354 + + +include + + + + + +dir_1796197e4e8e42e555193fa38af1784a + + +common + + + + + +dir_1796197e4e8e42e555193fa38af1784a->dir_daeea571a943a8adb5cad931a75d2354 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep_org.svg b/docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep_org.svg new file mode 100644 index 0000000..45e0d8e --- /dev/null +++ b/docs/html/dir_1796197e4e8e42e555193fa38af1784a_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +common + +clusterdir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_daeea571a943a8adb5cad931a75d2354 + + +include + + + + + +dir_1796197e4e8e42e555193fa38af1784a + + +common + + + + + +dir_1796197e4e8e42e555193fa38af1784a->dir_daeea571a943a8adb5cad931a75d2354 + + + + + + +1 + + + + + diff --git a/docs/html/dir_192a153369401f20235f877504e6d5ad.html b/docs/html/dir_192a153369401f20235f877504e6d5ad.html new file mode 100644 index 0000000..2d308e2 --- /dev/null +++ b/docs/html/dir_192a153369401f20235f877504e6d5ad.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter Directory Reference
+
+
+
+Directory dependency graph for kalman_filter:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_192a153369401f20235f877504e6d5ad.js b/docs/html/dir_192a153369401f20235f877504e6d5ad.js new file mode 100644 index 0000000..80aa5f8 --- /dev/null +++ b/docs/html/dir_192a153369401f20235f877504e6d5ad.js @@ -0,0 +1,4 @@ +var dir_192a153369401f20235f877504e6d5ad = +[ + [ "main", "dir_f32633e65746b6a91fbe861f5f21dc38.html", "dir_f32633e65746b6a91fbe861f5f21dc38" ] +]; \ No newline at end of file diff --git a/docs/html/dir_192a153369401f20235f877504e6d5ad_dep.md5 b/docs/html/dir_192a153369401f20235f877504e6d5ad_dep.md5 new file mode 100644 index 0000000..2eea2f8 --- /dev/null +++ b/docs/html/dir_192a153369401f20235f877504e6d5ad_dep.md5 @@ -0,0 +1 @@ +597eb65fc94508b6114451d33878f0e5 \ No newline at end of file diff --git a/docs/html/dir_192a153369401f20235f877504e6d5ad_dep.svg b/docs/html/dir_192a153369401f20235f877504e6d5ad_dep.svg new file mode 100644 index 0000000..382b2d3 --- /dev/null +++ b/docs/html/dir_192a153369401f20235f877504e6d5ad_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +kalman_filter + +clusterdir_b4d0413a00f30ed5bea26ae94db4d4f7 + + +apps + + + + +clusterdir_192a153369401f20235f877504e6d5ad + + + + + + + +dir_192a153369401f20235f877504e6d5ad +kalman_filter + + + +dir_f32633e65746b6a91fbe861f5f21dc38 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_f32633e65746b6a91fbe861f5f21dc38->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_192a153369401f20235f877504e6d5ad_dep_org.svg b/docs/html/dir_192a153369401f20235f877504e6d5ad_dep_org.svg new file mode 100644 index 0000000..8948ab3 --- /dev/null +++ b/docs/html/dir_192a153369401f20235f877504e6d5ad_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +kalman_filter + +clusterdir_b4d0413a00f30ed5bea26ae94db4d4f7 + + +apps + + + + +clusterdir_192a153369401f20235f877504e6d5ad + + + + + + + +dir_192a153369401f20235f877504e6d5ad +kalman_filter + + + +dir_f32633e65746b6a91fbe861f5f21dc38 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_f32633e65746b6a91fbe861f5f21dc38->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c.html b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c.html new file mode 100644 index 0000000..f7a6235 --- /dev/null +++ b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: 1fa4e38f Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
1fa4e38f Directory Reference
+
+
+
+Directory dependency graph for 1fa4e38f:
+
+
+
+ + + +

+Directories

 
lyrat_board_app
+
+
+ +
+ + + + diff --git a/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c.js b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c.js new file mode 100644 index 0000000..880f469 --- /dev/null +++ b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c.js @@ -0,0 +1,4 @@ +var dir_1a69cc9870158a9b1f6c74efc10aab8c = +[ + [ "lyrat_board_app", "dir_2a0602816c705fc298e0ba805dc0d70a.html", "dir_2a0602816c705fc298e0ba805dc0d70a" ] +]; \ No newline at end of file diff --git a/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep.md5 b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep.md5 new file mode 100644 index 0000000..1c75389 --- /dev/null +++ b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep.md5 @@ -0,0 +1 @@ +7da710f8bf50fd81ad4436ab7b485f8e \ No newline at end of file diff --git a/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep.svg b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep.svg new file mode 100644 index 0000000..044380f --- /dev/null +++ b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +1fa4e38f + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + +clusterdir_1a69cc9870158a9b1f6c74efc10aab8c + + + + + + + +dir_1a69cc9870158a9b1f6c74efc10aab8c +1fa4e38f + + + +dir_2a0602816c705fc298e0ba805dc0d70a + + +lyrat_board_app + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2a0602816c705fc298e0ba805dc0d70a->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep_org.svg b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep_org.svg new file mode 100644 index 0000000..2ac746f --- /dev/null +++ b/docs/html/dir_1a69cc9870158a9b1f6c74efc10aab8c_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +1fa4e38f + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + +clusterdir_1a69cc9870158a9b1f6c74efc10aab8c + + + + + + + +dir_1a69cc9870158a9b1f6c74efc10aab8c +1fa4e38f + + + +dir_2a0602816c705fc298e0ba805dc0d70a + + +lyrat_board_app + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2a0602816c705fc298e0ba805dc0d70a->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_1a9183b7d6910c8019921a90e48747ec.html b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec.html new file mode 100644 index 0000000..8118169 --- /dev/null +++ b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics Directory Reference
+
+
+
+Directory dependency graph for 3d_graphics:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_1a9183b7d6910c8019921a90e48747ec.js b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec.js new file mode 100644 index 0000000..b8210df --- /dev/null +++ b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec.js @@ -0,0 +1,4 @@ +var dir_1a9183b7d6910c8019921a90e48747ec = +[ + [ "main", "dir_0e58a5050afeaefce98fd18b08172c0d.html", "dir_0e58a5050afeaefce98fd18b08172c0d" ] +]; \ No newline at end of file diff --git a/docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep.md5 b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep.md5 new file mode 100644 index 0000000..69cbd8b --- /dev/null +++ b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep.md5 @@ -0,0 +1 @@ +31cf14459473f31259694058045d1cb7 \ No newline at end of file diff --git a/docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep.svg b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep.svg new file mode 100644 index 0000000..6705ff5 --- /dev/null +++ b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +3d_graphics + +clusterdir_16c85ce1c9ed281be79921a05621351c + + +apps + + + + +clusterdir_1a9183b7d6910c8019921a90e48747ec + + + + + + + +dir_1a9183b7d6910c8019921a90e48747ec +3d_graphics + + + +dir_0e58a5050afeaefce98fd18b08172c0d + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0e58a5050afeaefce98fd18b08172c0d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep_org.svg b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep_org.svg new file mode 100644 index 0000000..2e35244 --- /dev/null +++ b/docs/html/dir_1a9183b7d6910c8019921a90e48747ec_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +3d_graphics + +clusterdir_16c85ce1c9ed281be79921a05621351c + + +apps + + + + +clusterdir_1a9183b7d6910c8019921a90e48747ec + + + + + + + +dir_1a9183b7d6910c8019921a90e48747ec +3d_graphics + + + +dir_0e58a5050afeaefce98fd18b08172c0d + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0e58a5050afeaefce98fd18b08172c0d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b.html b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b.html new file mode 100644 index 0000000..10ae4b2 --- /dev/null +++ b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b.html @@ -0,0 +1,134 @@ + + + + + + + +ESP-IDF Firmware: modules Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
modules Directory Reference
+
+
+
+Directory dependency graph for modules:
+
+
+
+ + + + + + + + + + + + + + +

+Directories

 
common
 
conv
 
dct
 
dotprod
 
fft
 
fir
 
iir
 
kalman
 
math
 
matrix
 
support
 
windows
+
+
+ +
+ + + + diff --git a/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b.js b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b.js new file mode 100644 index 0000000..0b9a112 --- /dev/null +++ b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b.js @@ -0,0 +1,15 @@ +var dir_1a94785b4fd07fa9f86295c704ab286b = +[ + [ "common", "dir_e78af46276061306d5e012847576d2b2.html", "dir_e78af46276061306d5e012847576d2b2" ], + [ "conv", "dir_d889323c3d75be7406c85891426fb089.html", "dir_d889323c3d75be7406c85891426fb089" ], + [ "dct", "dir_6f0282a56182e11784085c9051410321.html", "dir_6f0282a56182e11784085c9051410321" ], + [ "dotprod", "dir_0c02408d15b1f96bbde516c6c09437d8.html", "dir_0c02408d15b1f96bbde516c6c09437d8" ], + [ "fft", "dir_2e6515e08f756e255a623378cbf0a6d0.html", "dir_2e6515e08f756e255a623378cbf0a6d0" ], + [ "fir", "dir_5f2e64e9fe690f961d00e914be24c898.html", "dir_5f2e64e9fe690f961d00e914be24c898" ], + [ "iir", "dir_d3a7bf488950df7c258d146af03d9440.html", "dir_d3a7bf488950df7c258d146af03d9440" ], + [ "kalman", "dir_0469dbe69b06e7cedb52b012fa55f8d0.html", "dir_0469dbe69b06e7cedb52b012fa55f8d0" ], + [ "math", "dir_ccd16ee69178f7f8a2cbd33b34cfbb18.html", "dir_ccd16ee69178f7f8a2cbd33b34cfbb18" ], + [ "matrix", "dir_0c394f99e8354c91f0eeb3e30368bc59.html", "dir_0c394f99e8354c91f0eeb3e30368bc59" ], + [ "support", "dir_67c4e8b77b4357a93ff15d0d28548721.html", "dir_67c4e8b77b4357a93ff15d0d28548721" ], + [ "windows", "dir_95624ebda436e232844a7007340a6b2b.html", "dir_95624ebda436e232844a7007340a6b2b" ] +]; \ No newline at end of file diff --git a/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep.md5 b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep.md5 new file mode 100644 index 0000000..5ec96ca --- /dev/null +++ b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep.md5 @@ -0,0 +1 @@ +9c4ce3d3829d285aee5cda4a1284f15d \ No newline at end of file diff --git a/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep.svg b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep.svg new file mode 100644 index 0000000..3e50ff4 --- /dev/null +++ b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep.svg @@ -0,0 +1,491 @@ + + + + + + + + + + + + +modules + +clusterdir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b +modules + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_d889323c3d75be7406c85891426fb089 + + + + + + +3 + + + + + +dir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_6f0282a56182e11784085c9051410321 + + + + + + +1 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +2 + + + + + +dir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_5f2e64e9fe690f961d00e914be24c898 + + + + + + +2 + + + + + +dir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_d3a7bf488950df7c258d146af03d9440 + + + + + + +2 + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_67c4e8b77b4357a93ff15d0d28548721 + + + + + + +6 + + + + + +dir_95624ebda436e232844a7007340a6b2b + + +windows + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_95624ebda436e232844a7007340a6b2b + + + + + + +1 + + + + + +dir_d889323c3d75be7406c85891426fb089->dir_e78af46276061306d5e012847576d2b2 + + + + + + +8 + + + + + +dir_6f0282a56182e11784085c9051410321->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + +dir_6f0282a56182e11784085c9051410321->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +3 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0->dir_e78af46276061306d5e012847576d2b2 + + + + + + +21 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_5f2e64e9fe690f961d00e914be24c898->dir_e78af46276061306d5e012847576d2b2 + + + + + + +13 + + + + + +dir_d3a7bf488950df7c258d146af03d9440->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + +dir_0469dbe69b06e7cedb52b012fa55f8d0 + + +kalman + + + + + +dir_0469dbe69b06e7cedb52b012fa55f8d0->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18->dir_e78af46276061306d5e012847576d2b2 + + + + + + +6 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59->dir_e78af46276061306d5e012847576d2b2 + + + + + + +7 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721->dir_e78af46276061306d5e012847576d2b2 + + + + + + +16 + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep_org.svg b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep_org.svg new file mode 100644 index 0000000..1f8b157 --- /dev/null +++ b/docs/html/dir_1a94785b4fd07fa9f86295c704ab286b_dep_org.svg @@ -0,0 +1,465 @@ + + + + + + +modules + +clusterdir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b +modules + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_d889323c3d75be7406c85891426fb089 + + + + + + +3 + + + + + +dir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_6f0282a56182e11784085c9051410321 + + + + + + +1 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +2 + + + + + +dir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_5f2e64e9fe690f961d00e914be24c898 + + + + + + +2 + + + + + +dir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_d3a7bf488950df7c258d146af03d9440 + + + + + + +2 + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_67c4e8b77b4357a93ff15d0d28548721 + + + + + + +6 + + + + + +dir_95624ebda436e232844a7007340a6b2b + + +windows + + + + + +dir_e78af46276061306d5e012847576d2b2->dir_95624ebda436e232844a7007340a6b2b + + + + + + +1 + + + + + +dir_d889323c3d75be7406c85891426fb089->dir_e78af46276061306d5e012847576d2b2 + + + + + + +8 + + + + + +dir_6f0282a56182e11784085c9051410321->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + +dir_6f0282a56182e11784085c9051410321->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +3 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0->dir_e78af46276061306d5e012847576d2b2 + + + + + + +21 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_5f2e64e9fe690f961d00e914be24c898->dir_e78af46276061306d5e012847576d2b2 + + + + + + +13 + + + + + +dir_d3a7bf488950df7c258d146af03d9440->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + +dir_0469dbe69b06e7cedb52b012fa55f8d0 + + +kalman + + + + + +dir_0469dbe69b06e7cedb52b012fa55f8d0->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18->dir_e78af46276061306d5e012847576d2b2 + + + + + + +6 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59->dir_e78af46276061306d5e012847576d2b2 + + + + + + +7 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721->dir_e78af46276061306d5e012847576d2b2 + + + + + + +16 + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +2 + + + + + diff --git a/docs/html/dir_1d572fcc0f444402026b5028f7fd32af.html b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af.html new file mode 100644 index 0000000..0f75f82 --- /dev/null +++ b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + + + + +

+Files

 
dsps_fft2r.h
 
dsps_fft2r_platform.h
 
dsps_fft4r.h
 
dsps_fft4r_platform.h
 
dsps_fft_tables.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_1d572fcc0f444402026b5028f7fd32af.js b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af.js new file mode 100644 index 0000000..f452422 --- /dev/null +++ b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af.js @@ -0,0 +1,8 @@ +var dir_1d572fcc0f444402026b5028f7fd32af = +[ + [ "dsps_fft2r.h", "dsps__fft2r_8h.html", "dsps__fft2r_8h" ], + [ "dsps_fft2r_platform.h", "dsps__fft2r__platform_8h.html", null ], + [ "dsps_fft4r.h", "dsps__fft4r_8h.html", "dsps__fft4r_8h" ], + [ "dsps_fft4r_platform.h", "dsps__fft4r__platform_8h.html", null ], + [ "dsps_fft_tables.h", "dsps__fft__tables_8h.html", "dsps__fft__tables_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep.md5 b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep.md5 new file mode 100644 index 0000000..3b572ea --- /dev/null +++ b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep.md5 @@ -0,0 +1 @@ +206b2deadc3ce68059dd5bb4727a9eaa \ No newline at end of file diff --git a/docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep.svg b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep.svg new file mode 100644 index 0000000..f7dd9ed --- /dev/null +++ b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_1d572fcc0f444402026b5028f7fd32af->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep_org.svg b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep_org.svg new file mode 100644 index 0000000..efa6989 --- /dev/null +++ b/docs/html/dir_1d572fcc0f444402026b5028f7fd32af_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_1d572fcc0f444402026b5028f7fd32af->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + diff --git a/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96.html b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96.html new file mode 100644 index 0000000..3120486 --- /dev/null +++ b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + + + + +

+Files

 
dspi_dotprod_f32_ansi.c
 
dspi_dotprod_off_f32_ansi.c
 
dsps_dotprod_f32_ansi.c
 
dsps_dotprode_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96.js b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96.js new file mode 100644 index 0000000..197ecde --- /dev/null +++ b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96.js @@ -0,0 +1,7 @@ +var dir_1e198c1fd495cc91ab3a39b5d8872c96 = +[ + [ "dspi_dotprod_f32_ansi.c", "dspi__dotprod__f32__ansi_8c.html", "dspi__dotprod__f32__ansi_8c" ], + [ "dspi_dotprod_off_f32_ansi.c", "dspi__dotprod__off__f32__ansi_8c.html", "dspi__dotprod__off__f32__ansi_8c" ], + [ "dsps_dotprod_f32_ansi.c", "dsps__dotprod__f32__ansi_8c.html", "dsps__dotprod__f32__ansi_8c" ], + [ "dsps_dotprode_f32_ansi.c", "dsps__dotprode__f32__ansi_8c.html", "dsps__dotprode__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep.md5 b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep.md5 new file mode 100644 index 0000000..1d6988a --- /dev/null +++ b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep.md5 @@ -0,0 +1 @@ +e2a5425771d43c1559a2212b6dadedb0 \ No newline at end of file diff --git a/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep.svg b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep.svg new file mode 100644 index 0000000..bcb59d6 --- /dev/null +++ b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_503b7d37e1488242e5075cc003fe4360 + + +include + + + + + +dir_1e198c1fd495cc91ab3a39b5d8872c96 + + +float + + + + + +dir_1e198c1fd495cc91ab3a39b5d8872c96->dir_503b7d37e1488242e5075cc003fe4360 + + + + + + +4 + + + + + + + + + + diff --git a/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep_org.svg b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep_org.svg new file mode 100644 index 0000000..a4ee3c7 --- /dev/null +++ b/docs/html/dir_1e198c1fd495cc91ab3a39b5d8872c96_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_503b7d37e1488242e5075cc003fe4360 + + +include + + + + + +dir_1e198c1fd495cc91ab3a39b5d8872c96 + + +float + + + + + +dir_1e198c1fd495cc91ab3a39b5d8872c96->dir_503b7d37e1488242e5075cc003fe4360 + + + + + + +4 + + + + + diff --git a/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df.html b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df.html new file mode 100644 index 0000000..7aa2a2d --- /dev/null +++ b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + + +

+Files

 
dsps_biquad.h
 
dsps_biquad_gen.h
 
dsps_biquad_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df.js b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df.js new file mode 100644 index 0000000..96462be --- /dev/null +++ b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df.js @@ -0,0 +1,6 @@ +var dir_1f3faa83e2fcedf83b0357f6cc73c1df = +[ + [ "dsps_biquad.h", "dsps__biquad_8h.html", "dsps__biquad_8h" ], + [ "dsps_biquad_gen.h", "dsps__biquad__gen_8h.html", "dsps__biquad__gen_8h" ], + [ "dsps_biquad_platform.h", "dsps__biquad__platform_8h.html", "dsps__biquad__platform_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep.md5 b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep.md5 new file mode 100644 index 0000000..a70e5ba --- /dev/null +++ b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep.md5 @@ -0,0 +1 @@ +3d320c9fd85f392ee340eeb9663d7f5c \ No newline at end of file diff --git a/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep.svg b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep.svg new file mode 100644 index 0000000..e6b464a --- /dev/null +++ b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep_org.svg b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep_org.svg new file mode 100644 index 0000000..d186435 --- /dev/null +++ b/docs/html/dir_1f3faa83e2fcedf83b0357f6cc73c1df_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + diff --git a/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55.html b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55.html new file mode 100644 index 0000000..63f2230 --- /dev/null +++ b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dsps_mul.h
 
dsps_mul_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55.js b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55.js new file mode 100644 index 0000000..6b3443a --- /dev/null +++ b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55.js @@ -0,0 +1,5 @@ +var dir_21e1fdd2586e76aa0db295cc144c9a55 = +[ + [ "dsps_mul.h", "dsps__mul_8h.html", "dsps__mul_8h" ], + [ "dsps_mul_platform.h", "dsps__mul__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep.md5 b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep.md5 new file mode 100644 index 0000000..80d236c --- /dev/null +++ b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep.md5 @@ -0,0 +1 @@ +45190372986fdb0b4190f788985de29a \ No newline at end of file diff --git a/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep.svg b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep.svg new file mode 100644 index 0000000..9c7318e --- /dev/null +++ b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep_org.svg b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep_org.svg new file mode 100644 index 0000000..a0b56db --- /dev/null +++ b/docs/html/dir_21e1fdd2586e76aa0db295cc144c9a55_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_23982065b3648efc06e84985cbc62760.html b/docs/html/dir_23982065b3648efc06e84985cbc62760.html new file mode 100644 index 0000000..24a5c81 --- /dev/null +++ b/docs/html/dir_23982065b3648efc06e84985cbc62760.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_addc_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_23982065b3648efc06e84985cbc62760.js b/docs/html/dir_23982065b3648efc06e84985cbc62760.js new file mode 100644 index 0000000..376a2a6 --- /dev/null +++ b/docs/html/dir_23982065b3648efc06e84985cbc62760.js @@ -0,0 +1,4 @@ +var dir_23982065b3648efc06e84985cbc62760 = +[ + [ "dsps_addc_f32_ansi.c", "dsps__addc__f32__ansi_8c.html", "dsps__addc__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_23982065b3648efc06e84985cbc62760_dep.md5 b/docs/html/dir_23982065b3648efc06e84985cbc62760_dep.md5 new file mode 100644 index 0000000..9217f97 --- /dev/null +++ b/docs/html/dir_23982065b3648efc06e84985cbc62760_dep.md5 @@ -0,0 +1 @@ +c54c2fab952d71b3b207fd73bf10fe1e \ No newline at end of file diff --git a/docs/html/dir_23982065b3648efc06e84985cbc62760_dep.svg b/docs/html/dir_23982065b3648efc06e84985cbc62760_dep.svg new file mode 100644 index 0000000..33d6831 --- /dev/null +++ b/docs/html/dir_23982065b3648efc06e84985cbc62760_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_c2033497fb0ab786bab9abfae6d47534 + + +addc + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543 + + +include + + + + + +dir_23982065b3648efc06e84985cbc62760 + + +float + + + + + +dir_23982065b3648efc06e84985cbc62760->dir_b6a1715e83971bfcc7e394ffdb6f5543 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_23982065b3648efc06e84985cbc62760_dep_org.svg b/docs/html/dir_23982065b3648efc06e84985cbc62760_dep_org.svg new file mode 100644 index 0000000..20c538f --- /dev/null +++ b/docs/html/dir_23982065b3648efc06e84985cbc62760_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_c2033497fb0ab786bab9abfae6d47534 + + +addc + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543 + + +include + + + + + +dir_23982065b3648efc06e84985cbc62760 + + +float + + + + + +dir_23982065b3648efc06e84985cbc62760->dir_b6a1715e83971bfcc7e394ffdb6f5543 + + + + + + +1 + + + + + diff --git a/docs/html/dir_2606190ade5f42f0803fb562b0f2687e.html b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e.html new file mode 100644 index 0000000..345ec27 --- /dev/null +++ b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e.html @@ -0,0 +1,135 @@ + + + + + + + +ESP-IDF Firmware: espressif__esp_tinyusb Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
espressif__esp_tinyusb Directory Reference
+
+
+
+Directory dependency graph for espressif__esp_tinyusb:
+
+
+
+ + + + +

+Directories

 
include
 
include_private
+ + + + + + + + + +

+Files

 
cdc.c
 
descriptors_control.c
 
tinyusb.c
 
tusb_cdc_acm.c
 
tusb_console.c
 
tusb_tasks.c
 
usb_descriptors.c
 
vfs_tinyusb.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_2606190ade5f42f0803fb562b0f2687e.js b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e.js new file mode 100644 index 0000000..10a0b42 --- /dev/null +++ b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e.js @@ -0,0 +1,13 @@ +var dir_2606190ade5f42f0803fb562b0f2687e = +[ + [ "include", "dir_97e7160f37b959978d0c3621cc0a2dfc.html", "dir_97e7160f37b959978d0c3621cc0a2dfc" ], + [ "include_private", "dir_d8d2b30d510138cdb5096652440331d7.html", "dir_d8d2b30d510138cdb5096652440331d7" ], + [ "cdc.c", "cdc_8c.html", "cdc_8c" ], + [ "descriptors_control.c", "descriptors__control_8c.html", "descriptors__control_8c" ], + [ "tinyusb.c", "tinyusb_8c.html", "tinyusb_8c" ], + [ "tusb_cdc_acm.c", "tusb__cdc__acm_8c.html", "tusb__cdc__acm_8c" ], + [ "tusb_console.c", "tusb__console_8c.html", "tusb__console_8c" ], + [ "tusb_tasks.c", "tusb__tasks_8c.html", "tusb__tasks_8c" ], + [ "usb_descriptors.c", "usb__descriptors_8c.html", "usb__descriptors_8c" ], + [ "vfs_tinyusb.c", "vfs__tinyusb_8c.html", "vfs__tinyusb_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep.md5 b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep.md5 new file mode 100644 index 0000000..2584642 --- /dev/null +++ b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep.md5 @@ -0,0 +1 @@ +cfc29084d1bffc919e86366da3d08524 \ No newline at end of file diff --git a/docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep.svg b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep.svg new file mode 100644 index 0000000..47a8796 --- /dev/null +++ b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + +espressif__esp_tinyusb + +clusterdir_409f97388efe006bc3438b95e9edef48 + + +components + + + + +clusterdir_2606190ade5f42f0803fb562b0f2687e + + + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_2606190ade5f42f0803fb562b0f2687e +espressif__esp_tinyusb + + + +dir_2606190ade5f42f0803fb562b0f2687e->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +15 + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc + + +include + + + + + +dir_2606190ade5f42f0803fb562b0f2687e->dir_97e7160f37b959978d0c3621cc0a2dfc + + + + + + +14 + + + + + +dir_d8d2b30d510138cdb5096652440331d7 + + +include_private + + + + + +dir_2606190ade5f42f0803fb562b0f2687e->dir_d8d2b30d510138cdb5096652440331d7 + + + + + + +7 + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +4 + + + + + +dir_d8d2b30d510138cdb5096652440331d7->dir_97e7160f37b959978d0c3621cc0a2dfc + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep_org.svg b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep_org.svg new file mode 100644 index 0000000..b9840d6 --- /dev/null +++ b/docs/html/dir_2606190ade5f42f0803fb562b0f2687e_dep_org.svg @@ -0,0 +1,124 @@ + + + + + + +espressif__esp_tinyusb + +clusterdir_409f97388efe006bc3438b95e9edef48 + + +components + + + + +clusterdir_2606190ade5f42f0803fb562b0f2687e + + + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_2606190ade5f42f0803fb562b0f2687e +espressif__esp_tinyusb + + + +dir_2606190ade5f42f0803fb562b0f2687e->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +15 + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc + + +include + + + + + +dir_2606190ade5f42f0803fb562b0f2687e->dir_97e7160f37b959978d0c3621cc0a2dfc + + + + + + +14 + + + + + +dir_d8d2b30d510138cdb5096652440331d7 + + +include_private + + + + + +dir_2606190ade5f42f0803fb562b0f2687e->dir_d8d2b30d510138cdb5096652440331d7 + + + + + + +7 + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +4 + + + + + +dir_d8d2b30d510138cdb5096652440331d7->dir_97e7160f37b959978d0c3621cc0a2dfc + + + + + + +3 + + + + + diff --git a/docs/html/dir_2617388a3e5694eabf03217543075dbd.html b/docs/html/dir_2617388a3e5694eabf03217543075dbd.html new file mode 100644 index 0000000..925bf3a --- /dev/null +++ b/docs/html/dir_2617388a3e5694eabf03217543075dbd.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_wind_flat_top_f32.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_2617388a3e5694eabf03217543075dbd.js b/docs/html/dir_2617388a3e5694eabf03217543075dbd.js new file mode 100644 index 0000000..9ee3654 --- /dev/null +++ b/docs/html/dir_2617388a3e5694eabf03217543075dbd.js @@ -0,0 +1,4 @@ +var dir_2617388a3e5694eabf03217543075dbd = +[ + [ "dsps_wind_flat_top_f32.c", "dsps__wind__flat__top__f32_8c.html", "dsps__wind__flat__top__f32_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2617388a3e5694eabf03217543075dbd_dep.md5 b/docs/html/dir_2617388a3e5694eabf03217543075dbd_dep.md5 new file mode 100644 index 0000000..a258615 --- /dev/null +++ b/docs/html/dir_2617388a3e5694eabf03217543075dbd_dep.md5 @@ -0,0 +1 @@ +60bf930a8d464a8ee635b946cc6b5529 \ No newline at end of file diff --git a/docs/html/dir_2617388a3e5694eabf03217543075dbd_dep.svg b/docs/html/dir_2617388a3e5694eabf03217543075dbd_dep.svg new file mode 100644 index 0000000..b39b418 --- /dev/null +++ b/docs/html/dir_2617388a3e5694eabf03217543075dbd_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_cc06919342db86795a48353da98f8a52 + + +flat_top + + + + + +dir_b06b87161308abcdcf61a00173e809b3 + + +include + + + + + +dir_2617388a3e5694eabf03217543075dbd + + +float + + + + + +dir_2617388a3e5694eabf03217543075dbd->dir_b06b87161308abcdcf61a00173e809b3 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_2617388a3e5694eabf03217543075dbd_dep_org.svg b/docs/html/dir_2617388a3e5694eabf03217543075dbd_dep_org.svg new file mode 100644 index 0000000..4ac91b3 --- /dev/null +++ b/docs/html/dir_2617388a3e5694eabf03217543075dbd_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_cc06919342db86795a48353da98f8a52 + + +flat_top + + + + + +dir_b06b87161308abcdcf61a00173e809b3 + + +include + + + + + +dir_2617388a3e5694eabf03217543075dbd + + +float + + + + + +dir_2617388a3e5694eabf03217543075dbd->dir_b06b87161308abcdcf61a00173e809b3 + + + + + + +1 + + + + + diff --git a/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9.html b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9.html new file mode 100644 index 0000000..bc709e3 --- /dev/null +++ b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: test_sim Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
test_sim Directory Reference
+
+
+
+Directory dependency graph for test_sim:
+
+
+
+ + + + +

+Files

 
main.c
 
test_mmult.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9.js b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9.js new file mode 100644 index 0000000..53c3a97 --- /dev/null +++ b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9.js @@ -0,0 +1,5 @@ +var dir_28e9e32f9d89d36fc38d311fa477d5e9 = +[ + [ "main.c", "components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c.html", "components_2espressif____esp-dsp_2modules_2matrix_2mul_2test__sim_2main_8c" ], + [ "test_mmult.c", "test__mmult_8c.html", "test__mmult_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep.md5 b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep.md5 new file mode 100644 index 0000000..f78dc78 --- /dev/null +++ b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep.md5 @@ -0,0 +1 @@ +482a98c38f473f12edeb6c96c1952607 \ No newline at end of file diff --git a/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep.svg b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep.svg new file mode 100644 index 0000000..ee944b4 --- /dev/null +++ b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +test_sim + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9 + + +test_sim + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep_org.svg b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep_org.svg new file mode 100644 index 0000000..ca7c515 --- /dev/null +++ b/docs/html/dir_28e9e32f9d89d36fc38d311fa477d5e9_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +test_sim + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9 + + +test_sim + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a.html b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a.html new file mode 100644 index 0000000..c48bb71 --- /dev/null +++ b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: lyrat_board_app Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
lyrat_board_app Directory Reference
+
+
+
+Directory dependency graph for lyrat_board_app:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a.js b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a.js new file mode 100644 index 0000000..0e6c94f --- /dev/null +++ b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a.js @@ -0,0 +1,4 @@ +var dir_2a0602816c705fc298e0ba805dc0d70a = +[ + [ "main", "dir_103c85098120c3619f61a2b979c3132b.html", "dir_103c85098120c3619f61a2b979c3132b" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep.md5 b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep.md5 new file mode 100644 index 0000000..0be6730 --- /dev/null +++ b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep.md5 @@ -0,0 +1 @@ +c2f6f7afa51e688476ec7aaded3cfde3 \ No newline at end of file diff --git a/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep.svg b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep.svg new file mode 100644 index 0000000..6f60598 --- /dev/null +++ b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +lyrat_board_app + +clusterdir_1a69cc9870158a9b1f6c74efc10aab8c + + +1fa4e38f + + + + +clusterdir_2a0602816c705fc298e0ba805dc0d70a + + + + + + + +dir_2a0602816c705fc298e0ba805dc0d70a +lyrat_board_app + + + +dir_103c85098120c3619f61a2b979c3132b + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_103c85098120c3619f61a2b979c3132b->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep_org.svg b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep_org.svg new file mode 100644 index 0000000..a5b46ea --- /dev/null +++ b/docs/html/dir_2a0602816c705fc298e0ba805dc0d70a_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +lyrat_board_app + +clusterdir_1a69cc9870158a9b1f6c74efc10aab8c + + +1fa4e38f + + + + +clusterdir_2a0602816c705fc298e0ba805dc0d70a + + + + + + + +dir_2a0602816c705fc298e0ba805dc0d70a +lyrat_board_app + + + +dir_103c85098120c3619f61a2b979c3132b + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_103c85098120c3619f61a2b979c3132b->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_2a71079c14d229ac9e67921fce4ad634.html b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634.html new file mode 100644 index 0000000..eedec99 --- /dev/null +++ b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dspm_sub_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_2a71079c14d229ac9e67921fce4ad634.js b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634.js new file mode 100644 index 0000000..f627a7a --- /dev/null +++ b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634.js @@ -0,0 +1,4 @@ +var dir_2a71079c14d229ac9e67921fce4ad634 = +[ + [ "dspm_sub_f32_ansi.c", "dspm__sub__f32__ansi_8c.html", "dspm__sub__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep.md5 b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep.md5 new file mode 100644 index 0000000..a15aaae --- /dev/null +++ b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep.md5 @@ -0,0 +1 @@ +3c6fccfb1256c40a1dbb41003482e737 \ No newline at end of file diff --git a/docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep.svg b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep.svg new file mode 100644 index 0000000..4cf7214 --- /dev/null +++ b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + +sub + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a + + +include + + + + + +dir_2a71079c14d229ac9e67921fce4ad634 + + +float + + + + + +dir_2a71079c14d229ac9e67921fce4ad634->dir_a8725166bca3343a4ff8dbf70470bf7a + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep_org.svg b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep_org.svg new file mode 100644 index 0000000..2c5e8f4 --- /dev/null +++ b/docs/html/dir_2a71079c14d229ac9e67921fce4ad634_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + +sub + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a + + +include + + + + + +dir_2a71079c14d229ac9e67921fce4ad634 + + +float + + + + + +dir_2a71079c14d229ac9e67921fce4ad634->dir_a8725166bca3343a4ff8dbf70470bf7a + + + + + + +1 + + + + + diff --git a/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96.html b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96.html new file mode 100644 index 0000000..e09bc57 --- /dev/null +++ b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: fixed Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fixed Directory Reference
+
+
+
+Directory dependency graph for fixed:
+
+
+
+ + + + +

+Files

 
dsps_sub_s16_ansi.c
 
dsps_sub_s8_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96.js b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96.js new file mode 100644 index 0000000..cf5a13e --- /dev/null +++ b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96.js @@ -0,0 +1,5 @@ +var dir_2b0cccbe49e0991f22aeb1922cb13a96 = +[ + [ "dsps_sub_s16_ansi.c", "dsps__sub__s16__ansi_8c.html", "dsps__sub__s16__ansi_8c" ], + [ "dsps_sub_s8_ansi.c", "dsps__sub__s8__ansi_8c.html", "dsps__sub__s8__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep.md5 b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep.md5 new file mode 100644 index 0000000..060d72f --- /dev/null +++ b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep.md5 @@ -0,0 +1 @@ +28bd4a48d72b8c7a33b3828b0b725ea9 \ No newline at end of file diff --git a/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep.svg b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep.svg new file mode 100644 index 0000000..3c34253 --- /dev/null +++ b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +fixed + +clusterdir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906 + + +include + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96 + + +fixed + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96->dir_2b4b44aa9ff3905b789a45cda1fd0906 + + + + + + +1 + + + + + +dir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep_org.svg b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep_org.svg new file mode 100644 index 0000000..a2bfb1b --- /dev/null +++ b/docs/html/dir_2b0cccbe49e0991f22aeb1922cb13a96_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +fixed + +clusterdir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906 + + +include + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96 + + +fixed + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96->dir_2b4b44aa9ff3905b789a45cda1fd0906 + + + + + + +1 + + + + + +dir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + diff --git a/docs/html/dir_2b34506dc3510c22337948b29ab07162.html b/docs/html/dir_2b34506dc3510c22337948b29ab07162.html new file mode 100644 index 0000000..e97db4c --- /dev/null +++ b/docs/html/dir_2b34506dc3510c22337948b29ab07162.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: apps Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
apps Directory Reference
+
+
+
+Directory dependency graph for apps:
+
+
+
+ + + + +

+Directories

 
3d_graphics
 
kalman_filter
+
+
+ +
+ + + + diff --git a/docs/html/dir_2b34506dc3510c22337948b29ab07162.js b/docs/html/dir_2b34506dc3510c22337948b29ab07162.js new file mode 100644 index 0000000..908f775 --- /dev/null +++ b/docs/html/dir_2b34506dc3510c22337948b29ab07162.js @@ -0,0 +1,5 @@ +var dir_2b34506dc3510c22337948b29ab07162 = +[ + [ "3d_graphics", "dir_b1578e0a7dfccb2aa1ada3cffa80de73.html", "dir_b1578e0a7dfccb2aa1ada3cffa80de73" ], + [ "kalman_filter", "dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.html", "dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2b34506dc3510c22337948b29ab07162_dep.md5 b/docs/html/dir_2b34506dc3510c22337948b29ab07162_dep.md5 new file mode 100644 index 0000000..cd26207 --- /dev/null +++ b/docs/html/dir_2b34506dc3510c22337948b29ab07162_dep.md5 @@ -0,0 +1 @@ +02ac8d8857b4dd955805c560003c3d9a \ No newline at end of file diff --git a/docs/html/dir_2b34506dc3510c22337948b29ab07162_dep.svg b/docs/html/dir_2b34506dc3510c22337948b29ab07162_dep.svg new file mode 100644 index 0000000..696ec12 --- /dev/null +++ b/docs/html/dir_2b34506dc3510c22337948b29ab07162_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +apps + +clusterdir_7148f79eeb1e919c3881defc22882cd2 + + +m5stack_core_s3 + + + + +clusterdir_2b34506dc3510c22337948b29ab07162 + + + + + + + +dir_2b34506dc3510c22337948b29ab07162 +apps + + + +dir_b1578e0a7dfccb2aa1ada3cffa80de73 + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b1578e0a7dfccb2aa1ada3cffa80de73->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d + + +kalman_filter + + + + + +dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_2b34506dc3510c22337948b29ab07162_dep_org.svg b/docs/html/dir_2b34506dc3510c22337948b29ab07162_dep_org.svg new file mode 100644 index 0000000..f8f6318 --- /dev/null +++ b/docs/html/dir_2b34506dc3510c22337948b29ab07162_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +apps + +clusterdir_7148f79eeb1e919c3881defc22882cd2 + + +m5stack_core_s3 + + + + +clusterdir_2b34506dc3510c22337948b29ab07162 + + + + + + + +dir_2b34506dc3510c22337948b29ab07162 +apps + + + +dir_b1578e0a7dfccb2aa1ada3cffa80de73 + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b1578e0a7dfccb2aa1ada3cffa80de73->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d + + +kalman_filter + + + + + +dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906.html b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906.html new file mode 100644 index 0000000..4dcf476 --- /dev/null +++ b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dsps_sub.h
 
dsps_sub_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906.js b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906.js new file mode 100644 index 0000000..9573e24 --- /dev/null +++ b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906.js @@ -0,0 +1,5 @@ +var dir_2b4b44aa9ff3905b789a45cda1fd0906 = +[ + [ "dsps_sub.h", "dsps__sub_8h.html", "dsps__sub_8h" ], + [ "dsps_sub_platform.h", "dsps__sub__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep.md5 b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep.md5 new file mode 100644 index 0000000..46dbd43 --- /dev/null +++ b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep.md5 @@ -0,0 +1 @@ +96797a52061aff2b1ced354ef3c5eb3d \ No newline at end of file diff --git a/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep.svg b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep.svg new file mode 100644 index 0000000..555ce3e --- /dev/null +++ b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep_org.svg b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep_org.svg new file mode 100644 index 0000000..f854c15 --- /dev/null +++ b/docs/html/dir_2b4b44aa9ff3905b789a45cda1fd0906_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.html b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.html new file mode 100644 index 0000000..a420f02 --- /dev/null +++ b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
3d_graphics_demo.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.js b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.js new file mode 100644 index 0000000..66db8f4 --- /dev/null +++ b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.js @@ -0,0 +1,4 @@ +var dir_2b87e73d4416afbe0bda3bbfcb2d5dcf = +[ + [ "3d_graphics_demo.cpp", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.md5 b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.md5 new file mode 100644 index 0000000..cbd6cbf --- /dev/null +++ b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.md5 @@ -0,0 +1 @@ +76571962c83e6029ba4eeadc46855ab2 \ No newline at end of file diff --git a/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.svg b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.svg new file mode 100644 index 0000000..ec6f111 --- /dev/null +++ b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_b3e5efb6887ef3293ea576aeaa5d8964 + + +3d_graphics + + + + + +dir_2b87e73d4416afbe0bda3bbfcb2d5dcf + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2b87e73d4416afbe0bda3bbfcb2d5dcf->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep_org.svg b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep_org.svg new file mode 100644 index 0000000..c09ca1e --- /dev/null +++ b/docs/html/dir_2b87e73d4416afbe0bda3bbfcb2d5dcf_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_b3e5efb6887ef3293ea576aeaa5d8964 + + +3d_graphics + + + + + +dir_2b87e73d4416afbe0bda3bbfcb2d5dcf + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2b87e73d4416afbe0bda3bbfcb2d5dcf->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8.html b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8.html new file mode 100644 index 0000000..25fc66d --- /dev/null +++ b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix_data Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_matrix_data Directory Reference
+
+
+
+Directory dependency graph for 3d_matrix_data:
+
+
+
+ + + + + + + + + +

+Files

 
cube_matrix.h
 
esp_logo.c
 
esp_logo.h
 
esp_text.c
 
esp_text.h
 
image_to_3d_matrix.c
 
image_to_3d_matrix.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8.js b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8.js new file mode 100644 index 0000000..75aa3ca --- /dev/null +++ b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8.js @@ -0,0 +1,10 @@ +var dir_2ca61fe906f0261fd79faabdb72d2de8 = +[ + [ "cube_matrix.h", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h" ], + [ "esp_logo.c", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html", null ], + [ "esp_logo.h", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h" ], + [ "esp_text.c", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c" ], + [ "esp_text.h", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h" ], + [ "image_to_3d_matrix.c", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix914e932f5b873cea5635685522728c5b.html", null ], + [ "image_to_3d_matrix.h", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep.md5 b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep.md5 new file mode 100644 index 0000000..f2077b5 --- /dev/null +++ b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep.md5 @@ -0,0 +1 @@ +4d76f36fcc97effd8db6c091c65b9a99 \ No newline at end of file diff --git a/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep.svg b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep.svg new file mode 100644 index 0000000..820582e --- /dev/null +++ b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +3d_matrix_data + +clusterdir_6ab96501580168da92dbadcbc9b254ca + + +3d_matrix + + + + + +dir_2ca61fe906f0261fd79faabdb72d2de8 + + +3d_matrix_data + + + + + + + + + + diff --git a/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep_org.svg b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep_org.svg new file mode 100644 index 0000000..db3cae6 --- /dev/null +++ b/docs/html/dir_2ca61fe906f0261fd79faabdb72d2de8_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +3d_matrix_data + +clusterdir_6ab96501580168da92dbadcbc9b254ca + + +3d_matrix + + + + + +dir_2ca61fe906f0261fd79faabdb72d2de8 + + +3d_matrix_data + + + + + diff --git a/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49.html b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49.html new file mode 100644 index 0000000..c7da4e4 --- /dev/null +++ b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + + +

+Files

 
dspm_mult_ex_f32_ansi.c
 
dspm_mult_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49.js b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49.js new file mode 100644 index 0000000..0f67f4f --- /dev/null +++ b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49.js @@ -0,0 +1,5 @@ +var dir_2cd344f6e971021b7e2a39c1c92a2e49 = +[ + [ "dspm_mult_ex_f32_ansi.c", "dspm__mult__ex__f32__ansi_8c.html", "dspm__mult__ex__f32__ansi_8c" ], + [ "dspm_mult_f32_ansi.c", "dspm__mult__f32__ansi_8c.html", "dspm__mult__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep.md5 b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep.md5 new file mode 100644 index 0000000..1e6fc5e --- /dev/null +++ b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep.md5 @@ -0,0 +1 @@ +e570276ae26c8170282b4d3a5b49f4e9 \ No newline at end of file diff --git a/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep.svg b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep.svg new file mode 100644 index 0000000..4169f55 --- /dev/null +++ b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +float + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49 + + +float + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +2 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep_org.svg b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep_org.svg new file mode 100644 index 0000000..8a10e4b --- /dev/null +++ b/docs/html/dir_2cd344f6e971021b7e2a39c1c92a2e49_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +float + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49 + + +float + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +2 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +1 + + + + + diff --git a/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0.html b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0.html new file mode 100644 index 0000000..9fe0fe3 --- /dev/null +++ b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: fixed Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fixed Directory Reference
+
+
+
+Directory dependency graph for fixed:
+
+
+
+ + + +

+Files

 
dspm_mult_s16_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0.js b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0.js new file mode 100644 index 0000000..950c676 --- /dev/null +++ b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0.js @@ -0,0 +1,4 @@ +var dir_2d55a8cdc89415d0ec989f7182a0eea0 = +[ + [ "dspm_mult_s16_ansi.c", "dspm__mult__s16__ansi_8c.html", "dspm__mult__s16__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep.md5 b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep.md5 new file mode 100644 index 0000000..a813211 --- /dev/null +++ b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep.md5 @@ -0,0 +1 @@ +c5cf186a6900a99b199f0f9d76bd54f0 \ No newline at end of file diff --git a/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep.svg b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep.svg new file mode 100644 index 0000000..2a52f34 --- /dev/null +++ b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +fixed + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0 + + +fixed + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +1 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep_org.svg b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep_org.svg new file mode 100644 index 0000000..24cfbf6 --- /dev/null +++ b/docs/html/dir_2d55a8cdc89415d0ec989f7182a0eea0_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +fixed + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0 + + +fixed + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +1 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +1 + + + + + diff --git a/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0.html b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0.html new file mode 100644 index 0000000..8d7161b --- /dev/null +++ b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: fft Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fft Directory Reference
+
+
+
+Directory dependency graph for fft:
+
+
+
+ + + + + + +

+Directories

 
fixed
 
float
 
include
 
test_sim
+
+
+ +
+ + + + diff --git a/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0.js b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0.js new file mode 100644 index 0000000..b2dddac --- /dev/null +++ b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0.js @@ -0,0 +1,7 @@ +var dir_2e6515e08f756e255a623378cbf0a6d0 = +[ + [ "fixed", "dir_d189b23d12b196e6a83e21b0964d7cc4.html", "dir_d189b23d12b196e6a83e21b0964d7cc4" ], + [ "float", "dir_40243425f75a419aab63d36e8e82036f.html", "dir_40243425f75a419aab63d36e8e82036f" ], + [ "include", "dir_1d572fcc0f444402026b5028f7fd32af.html", "dir_1d572fcc0f444402026b5028f7fd32af" ], + [ "test_sim", "dir_1733da89b05be0c2f50cc1cde7b9ef58.html", "dir_1733da89b05be0c2f50cc1cde7b9ef58" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep.md5 b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep.md5 new file mode 100644 index 0000000..8b571b2 --- /dev/null +++ b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep.md5 @@ -0,0 +1 @@ +9e1ab2ade0c8d38421054fbe87c6ba71 \ No newline at end of file diff --git a/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep.svg b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep.svg new file mode 100644 index 0000000..67b9f09 --- /dev/null +++ b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep.svg @@ -0,0 +1,216 @@ + + + + + + + + + + + + +fft + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 +fft + + + +dir_d189b23d12b196e6a83e21b0964d7cc4 + + +fixed + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +1 + + + + + +dir_40243425f75a419aab63d36e8e82036f + + +float + + + + + +dir_40243425f75a419aab63d36e8e82036f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +14 + + + + + +dir_40243425f75a419aab63d36e8e82036f->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +10 + + + + + +dir_1d572fcc0f444402026b5028f7fd32af->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58 + + +test_sim + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep_org.svg b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep_org.svg new file mode 100644 index 0000000..3f71132 --- /dev/null +++ b/docs/html/dir_2e6515e08f756e255a623378cbf0a6d0_dep_org.svg @@ -0,0 +1,190 @@ + + + + + + +fft + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 +fft + + + +dir_d189b23d12b196e6a83e21b0964d7cc4 + + +fixed + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +1 + + + + + +dir_40243425f75a419aab63d36e8e82036f + + +float + + + + + +dir_40243425f75a419aab63d36e8e82036f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +14 + + + + + +dir_40243425f75a419aab63d36e8e82036f->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +10 + + + + + +dir_1d572fcc0f444402026b5028f7fd32af->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58 + + +test_sim + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_1733da89b05be0c2f50cc1cde7b9ef58->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +1 + + + + + diff --git a/docs/html/dir_2ede62ba609a13817930229bff031944.html b/docs/html/dir_2ede62ba609a13817930229bff031944.html new file mode 100644 index 0000000..60a2f85 --- /dev/null +++ b/docs/html/dir_2ede62ba609a13817930229bff031944.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
kalman_filter_demo.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_2ede62ba609a13817930229bff031944.js b/docs/html/dir_2ede62ba609a13817930229bff031944.js new file mode 100644 index 0000000..6e2fb01 --- /dev/null +++ b/docs/html/dir_2ede62ba609a13817930229bff031944.js @@ -0,0 +1,4 @@ +var dir_2ede62ba609a13817930229bff031944 = +[ + [ "kalman_filter_demo.cpp", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_2ede62ba609a13817930229bff031944_dep.md5 b/docs/html/dir_2ede62ba609a13817930229bff031944_dep.md5 new file mode 100644 index 0000000..1ddaeb7 --- /dev/null +++ b/docs/html/dir_2ede62ba609a13817930229bff031944_dep.md5 @@ -0,0 +1 @@ +59a88f55f62e8dae16682a085aae8db8 \ No newline at end of file diff --git a/docs/html/dir_2ede62ba609a13817930229bff031944_dep.svg b/docs/html/dir_2ede62ba609a13817930229bff031944_dep.svg new file mode 100644 index 0000000..391a691 --- /dev/null +++ b/docs/html/dir_2ede62ba609a13817930229bff031944_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_945d2b1bad7511c32093cc54649ad1cb + + +kalman_filter + + + + + +dir_2ede62ba609a13817930229bff031944 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2ede62ba609a13817930229bff031944->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_2ede62ba609a13817930229bff031944_dep_org.svg b/docs/html/dir_2ede62ba609a13817930229bff031944_dep_org.svg new file mode 100644 index 0000000..5555a3c --- /dev/null +++ b/docs/html/dir_2ede62ba609a13817930229bff031944_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_945d2b1bad7511c32093cc54649ad1cb + + +kalman_filter + + + + + +dir_2ede62ba609a13817930229bff031944 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2ede62ba609a13817930229bff031944->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727.html b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727.html new file mode 100644 index 0000000..7c1a0f1 --- /dev/null +++ b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter Directory Reference
+
+
+
+Directory dependency graph for kalman_filter:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727.js b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727.js new file mode 100644 index 0000000..e94b261 --- /dev/null +++ b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727.js @@ -0,0 +1,4 @@ +var dir_33fba1519ab5d9fc7528a1e4e18a1727 = +[ + [ "main", "dir_0609830f9d21b927f4cb8e061f955380.html", "dir_0609830f9d21b927f4cb8e061f955380" ] +]; \ No newline at end of file diff --git a/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep.md5 b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep.md5 new file mode 100644 index 0000000..e3016ca --- /dev/null +++ b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep.md5 @@ -0,0 +1 @@ +5b3379a35fa1ef9f7f5363cf99ceaf47 \ No newline at end of file diff --git a/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep.svg b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep.svg new file mode 100644 index 0000000..c68d4b0 --- /dev/null +++ b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +kalman_filter + +clusterdir_ad7c247d62c906d539eea57d302f162e + + +apps + + + + +clusterdir_33fba1519ab5d9fc7528a1e4e18a1727 + + + + + + + +dir_33fba1519ab5d9fc7528a1e4e18a1727 +kalman_filter + + + +dir_0609830f9d21b927f4cb8e061f955380 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0609830f9d21b927f4cb8e061f955380->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep_org.svg b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep_org.svg new file mode 100644 index 0000000..d1f5ad0 --- /dev/null +++ b/docs/html/dir_33fba1519ab5d9fc7528a1e4e18a1727_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +kalman_filter + +clusterdir_ad7c247d62c906d539eea57d302f162e + + +apps + + + + +clusterdir_33fba1519ab5d9fc7528a1e4e18a1727 + + + + + + + +dir_33fba1519ab5d9fc7528a1e4e18a1727 +kalman_filter + + + +dir_0609830f9d21b927f4cb8e061f955380 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0609830f9d21b927f4cb8e061f955380->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_3517ac14e10456bd2d5137b8d057f895.html b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895.html new file mode 100644 index 0000000..6c288db --- /dev/null +++ b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_add_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_3517ac14e10456bd2d5137b8d057f895.js b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895.js new file mode 100644 index 0000000..14510dc --- /dev/null +++ b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895.js @@ -0,0 +1,4 @@ +var dir_3517ac14e10456bd2d5137b8d057f895 = +[ + [ "dsps_add_f32_ansi.c", "dsps__add__f32__ansi_8c.html", "dsps__add__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep.md5 b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep.md5 new file mode 100644 index 0000000..acc60ae --- /dev/null +++ b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep.md5 @@ -0,0 +1 @@ +11d0166a147534a3c77489d947d7186e \ No newline at end of file diff --git a/docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep.svg b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep.svg new file mode 100644 index 0000000..fb520aa --- /dev/null +++ b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_c0c0cd07563e9956c88b53baae458253 + + +include + + + + + +dir_3517ac14e10456bd2d5137b8d057f895 + + +float + + + + + +dir_3517ac14e10456bd2d5137b8d057f895->dir_c0c0cd07563e9956c88b53baae458253 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep_org.svg b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep_org.svg new file mode 100644 index 0000000..64ae721 --- /dev/null +++ b/docs/html/dir_3517ac14e10456bd2d5137b8d057f895_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_c0c0cd07563e9956c88b53baae458253 + + +include + + + + + +dir_3517ac14e10456bd2d5137b8d057f895 + + +float + + + + + +dir_3517ac14e10456bd2d5137b8d057f895->dir_c0c0cd07563e9956c88b53baae458253 + + + + + + +1 + + + + + diff --git a/docs/html/dir_3630efa296d794a506d697d26fb77c32.html b/docs/html/dir_3630efa296d794a506d697d26fb77c32.html new file mode 100644 index 0000000..0c35805 --- /dev/null +++ b/docs/html/dir_3630efa296d794a506d697d26fb77c32.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_wind_blackman.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_3630efa296d794a506d697d26fb77c32.js b/docs/html/dir_3630efa296d794a506d697d26fb77c32.js new file mode 100644 index 0000000..55a96e1 --- /dev/null +++ b/docs/html/dir_3630efa296d794a506d697d26fb77c32.js @@ -0,0 +1,4 @@ +var dir_3630efa296d794a506d697d26fb77c32 = +[ + [ "dsps_wind_blackman.h", "dsps__wind__blackman_8h.html", "dsps__wind__blackman_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_3630efa296d794a506d697d26fb77c32_dep.md5 b/docs/html/dir_3630efa296d794a506d697d26fb77c32_dep.md5 new file mode 100644 index 0000000..e608f6d --- /dev/null +++ b/docs/html/dir_3630efa296d794a506d697d26fb77c32_dep.md5 @@ -0,0 +1 @@ +797a9e3c72b848e409e3062365f5f247 \ No newline at end of file diff --git a/docs/html/dir_3630efa296d794a506d697d26fb77c32_dep.svg b/docs/html/dir_3630efa296d794a506d697d26fb77c32_dep.svg new file mode 100644 index 0000000..b9b0f33 --- /dev/null +++ b/docs/html/dir_3630efa296d794a506d697d26fb77c32_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +include + +clusterdir_e878e923ef12715a74c793cf72e4f313 + + +blackman + + + + + +dir_3630efa296d794a506d697d26fb77c32 + + +include + + + + + + + + + + diff --git a/docs/html/dir_3630efa296d794a506d697d26fb77c32_dep_org.svg b/docs/html/dir_3630efa296d794a506d697d26fb77c32_dep_org.svg new file mode 100644 index 0000000..4aedb94 --- /dev/null +++ b/docs/html/dir_3630efa296d794a506d697d26fb77c32_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +include + +clusterdir_e878e923ef12715a74c793cf72e4f313 + + +blackman + + + + + +dir_3630efa296d794a506d697d26fb77c32 + + +include + + + + + diff --git a/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf.html b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf.html new file mode 100644 index 0000000..cc68548 --- /dev/null +++ b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + + + +

+Files

 
dsps_dct_f32.c
 
dsps_dctiv_f32.c
 
dsps_dstiv_f32.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf.js b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf.js new file mode 100644 index 0000000..61ccc42 --- /dev/null +++ b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf.js @@ -0,0 +1,6 @@ +var dir_377bd9e47fb4c98a811a4c55a1e8babf = +[ + [ "dsps_dct_f32.c", "dsps__dct__f32_8c.html", "dsps__dct__f32_8c" ], + [ "dsps_dctiv_f32.c", "dsps__dctiv__f32_8c.html", "dsps__dctiv__f32_8c" ], + [ "dsps_dstiv_f32.c", "dsps__dstiv__f32_8c.html", "dsps__dstiv__f32_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep.md5 b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep.md5 new file mode 100644 index 0000000..f13ff4d --- /dev/null +++ b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep.md5 @@ -0,0 +1 @@ +5663ef4b141b1145ed116f0b418af698 \ No newline at end of file diff --git a/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep.svg b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep.svg new file mode 100644 index 0000000..e76f3f4 --- /dev/null +++ b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + +float + +clusterdir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_3e4712a38c94aeee934d4b83943de42c + + +include + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf + + +float + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_3e4712a38c94aeee934d4b83943de42c + + + + + + +3 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +3 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep_org.svg b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep_org.svg new file mode 100644 index 0000000..2135865 --- /dev/null +++ b/docs/html/dir_377bd9e47fb4c98a811a4c55a1e8babf_dep_org.svg @@ -0,0 +1,95 @@ + + + + + + +float + +clusterdir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_3e4712a38c94aeee934d4b83943de42c + + +include + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf + + +float + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_3e4712a38c94aeee934d4b83943de42c + + + + + + +3 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +3 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + diff --git a/docs/html/dir_3ad10b8bedbf41540071c116f87e7818.html b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818.html new file mode 100644 index 0000000..2b0e343 --- /dev/null +++ b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_snr_f32.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_3ad10b8bedbf41540071c116f87e7818.js b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818.js new file mode 100644 index 0000000..e04b27d --- /dev/null +++ b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818.js @@ -0,0 +1,4 @@ +var dir_3ad10b8bedbf41540071c116f87e7818 = +[ + [ "dsps_snr_f32.cpp", "dsps__snr__f32_8cpp.html", "dsps__snr__f32_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep.md5 b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep.md5 new file mode 100644 index 0000000..aad0ec4 --- /dev/null +++ b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep.md5 @@ -0,0 +1 @@ +6a1981459ed36ffa641c51342ecc59fd \ No newline at end of file diff --git a/docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep.svg b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep.svg new file mode 100644 index 0000000..fb0feec --- /dev/null +++ b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + +float + +clusterdir_3fd005a8b380f1a21303a2afe19168eb + + +snr + + + + + +dir_3ad10b8bedbf41540071c116f87e7818 + + +float + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep_org.svg b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep_org.svg new file mode 100644 index 0000000..87fea1a --- /dev/null +++ b/docs/html/dir_3ad10b8bedbf41540071c116f87e7818_dep_org.svg @@ -0,0 +1,95 @@ + + + + + + +float + +clusterdir_3fd005a8b380f1a21303a2afe19168eb + + +snr + + + + + +dir_3ad10b8bedbf41540071c116f87e7818 + + +float + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + diff --git a/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2.html b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2.html new file mode 100644 index 0000000..b1f8b8e --- /dev/null +++ b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: blackman_harris Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
blackman_harris Directory Reference
+
+
+
+Directory dependency graph for blackman_harris:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2.js b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2.js new file mode 100644 index 0000000..dd42254 --- /dev/null +++ b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2.js @@ -0,0 +1,5 @@ +var dir_3d8f91d165c61940606cc67fb2b386a2 = +[ + [ "float", "dir_5e17e3ea338fbcad436fc14f3287f6d6.html", "dir_5e17e3ea338fbcad436fc14f3287f6d6" ], + [ "include", "dir_76d6b2a67278bf47ae5e1ac8af0a7d40.html", "dir_76d6b2a67278bf47ae5e1ac8af0a7d40" ] +]; \ No newline at end of file diff --git a/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep.md5 b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep.md5 new file mode 100644 index 0000000..0ba5973 --- /dev/null +++ b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep.md5 @@ -0,0 +1 @@ +ca6338c82217ecc84eb4eb0640c0004e \ No newline at end of file diff --git a/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep.svg b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep.svg new file mode 100644 index 0000000..081a3af --- /dev/null +++ b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +blackman_harris + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_3d8f91d165c61940606cc67fb2b386a2 + + + + + + + +dir_3d8f91d165c61940606cc67fb2b386a2 +blackman_harris + + + +dir_5e17e3ea338fbcad436fc14f3287f6d6 + + +float + + + + + +dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + +include + + + + + +dir_5e17e3ea338fbcad436fc14f3287f6d6->dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep_org.svg b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep_org.svg new file mode 100644 index 0000000..2313be1 --- /dev/null +++ b/docs/html/dir_3d8f91d165c61940606cc67fb2b386a2_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +blackman_harris + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_3d8f91d165c61940606cc67fb2b386a2 + + + + + + + +dir_3d8f91d165c61940606cc67fb2b386a2 +blackman_harris + + + +dir_5e17e3ea338fbcad436fc14f3287f6d6 + + +float + + + + + +dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + +include + + + + + +dir_5e17e3ea338fbcad436fc14f3287f6d6->dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + + + + + +1 + + + + + diff --git a/docs/html/dir_3e4712a38c94aeee934d4b83943de42c.html b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c.html new file mode 100644 index 0000000..adf8d43 --- /dev/null +++ b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_dct.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_3e4712a38c94aeee934d4b83943de42c.js b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c.js new file mode 100644 index 0000000..60af144 --- /dev/null +++ b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c.js @@ -0,0 +1,4 @@ +var dir_3e4712a38c94aeee934d4b83943de42c = +[ + [ "dsps_dct.h", "dsps__dct_8h.html", "dsps__dct_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep.md5 b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep.md5 new file mode 100644 index 0000000..007ba44 --- /dev/null +++ b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep.md5 @@ -0,0 +1 @@ +eebd4fb6480b772f6ef35e91c7b364d1 \ No newline at end of file diff --git a/docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep.svg b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep.svg new file mode 100644 index 0000000..621f3d7 --- /dev/null +++ b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_3e4712a38c94aeee934d4b83943de42c + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_3e4712a38c94aeee934d4b83943de42c->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep_org.svg b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep_org.svg new file mode 100644 index 0000000..cbf0d9c --- /dev/null +++ b/docs/html/dir_3e4712a38c94aeee934d4b83943de42c_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_3e4712a38c94aeee934d4b83943de42c + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_3e4712a38c94aeee934d4b83943de42c->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb.html b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb.html new file mode 100644 index 0000000..47fcf82 --- /dev/null +++ b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: snr Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
snr Directory Reference
+
+
+
+Directory dependency graph for snr:
+
+
+
+ + + +

+Directories

 
float
+
+
+ +
+ + + + diff --git a/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb.js b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb.js new file mode 100644 index 0000000..4086247 --- /dev/null +++ b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb.js @@ -0,0 +1,4 @@ +var dir_3fd005a8b380f1a21303a2afe19168eb = +[ + [ "float", "dir_3ad10b8bedbf41540071c116f87e7818.html", "dir_3ad10b8bedbf41540071c116f87e7818" ] +]; \ No newline at end of file diff --git a/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep.md5 b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep.md5 new file mode 100644 index 0000000..203d5f5 --- /dev/null +++ b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep.md5 @@ -0,0 +1 @@ +51a84808a14d1b51fda990a96c0a7182 \ No newline at end of file diff --git a/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep.svg b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep.svg new file mode 100644 index 0000000..32c064e --- /dev/null +++ b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + +snr + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + +clusterdir_3fd005a8b380f1a21303a2afe19168eb + + + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb +snr + + + +dir_3ad10b8bedbf41540071c116f87e7818 + + +float + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep_org.svg b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep_org.svg new file mode 100644 index 0000000..e45d5be --- /dev/null +++ b/docs/html/dir_3fd005a8b380f1a21303a2afe19168eb_dep_org.svg @@ -0,0 +1,107 @@ + + + + + + +snr + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + +clusterdir_3fd005a8b380f1a21303a2afe19168eb + + + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb +snr + + + +dir_3ad10b8bedbf41540071c116f87e7818 + + +float + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_3ad10b8bedbf41540071c116f87e7818->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + diff --git a/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd.html b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd.html new file mode 100644 index 0000000..f426db6 --- /dev/null +++ b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: add Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
add Directory Reference
+
+
+
+Directory dependency graph for add:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd.js b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd.js new file mode 100644 index 0000000..e61f618 --- /dev/null +++ b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd.js @@ -0,0 +1,5 @@ +var dir_3fd26304af2c2aef8acd2c6ee8269bcd = +[ + [ "float", "dir_8344dc8b4c48bff4b3b7e252d5a5e15c.html", "dir_8344dc8b4c48bff4b3b7e252d5a5e15c" ], + [ "include", "dir_50d20af8260b5fd9fd6f487ec1786b80.html", "dir_50d20af8260b5fd9fd6f487ec1786b80" ] +]; \ No newline at end of file diff --git a/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep.md5 b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep.md5 new file mode 100644 index 0000000..2c12c6a --- /dev/null +++ b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep.md5 @@ -0,0 +1 @@ +99774ee9a39bb13f1fb6ec74e5423dc9 \ No newline at end of file diff --git a/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep.svg b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep.svg new file mode 100644 index 0000000..7ebbebe --- /dev/null +++ b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +add + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_3fd26304af2c2aef8acd2c6ee8269bcd + + + + + + + +dir_3fd26304af2c2aef8acd2c6ee8269bcd +add + + + +dir_8344dc8b4c48bff4b3b7e252d5a5e15c + + +float + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80 + + +include + + + + + +dir_8344dc8b4c48bff4b3b7e252d5a5e15c->dir_50d20af8260b5fd9fd6f487ec1786b80 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep_org.svg b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep_org.svg new file mode 100644 index 0000000..6a1007e --- /dev/null +++ b/docs/html/dir_3fd26304af2c2aef8acd2c6ee8269bcd_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +add + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_3fd26304af2c2aef8acd2c6ee8269bcd + + + + + + + +dir_3fd26304af2c2aef8acd2c6ee8269bcd +add + + + +dir_8344dc8b4c48bff4b3b7e252d5a5e15c + + +float + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80 + + +include + + + + + +dir_8344dc8b4c48bff4b3b7e252d5a5e15c->dir_50d20af8260b5fd9fd6f487ec1786b80 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_40243425f75a419aab63d36e8e82036f.html b/docs/html/dir_40243425f75a419aab63d36e8e82036f.html new file mode 100644 index 0000000..440f056 --- /dev/null +++ b/docs/html/dir_40243425f75a419aab63d36e8e82036f.html @@ -0,0 +1,128 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + + + + + + +

+Files

 
dsps_fft2r_bitrev_tables_fc32.c
 
dsps_fft2r_fc32_ae32.c
 
dsps_fft2r_fc32_ansi.c
 
dsps_fft4r_bitrev_tables_fc32.c
 
dsps_fft4r_fc32_ae32.c
 
dsps_fft4r_fc32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_40243425f75a419aab63d36e8e82036f.js b/docs/html/dir_40243425f75a419aab63d36e8e82036f.js new file mode 100644 index 0000000..e3e361d --- /dev/null +++ b/docs/html/dir_40243425f75a419aab63d36e8e82036f.js @@ -0,0 +1,9 @@ +var dir_40243425f75a419aab63d36e8e82036f = +[ + [ "dsps_fft2r_bitrev_tables_fc32.c", "dsps__fft2r__bitrev__tables__fc32_8c.html", "dsps__fft2r__bitrev__tables__fc32_8c" ], + [ "dsps_fft2r_fc32_ae32.c", "dsps__fft2r__fc32__ae32_8c.html", null ], + [ "dsps_fft2r_fc32_ansi.c", "dsps__fft2r__fc32__ansi_8c.html", "dsps__fft2r__fc32__ansi_8c" ], + [ "dsps_fft4r_bitrev_tables_fc32.c", "dsps__fft4r__bitrev__tables__fc32_8c.html", "dsps__fft4r__bitrev__tables__fc32_8c" ], + [ "dsps_fft4r_fc32_ae32.c", "dsps__fft4r__fc32__ae32_8c.html", null ], + [ "dsps_fft4r_fc32_ansi.c", "dsps__fft4r__fc32__ansi_8c.html", "dsps__fft4r__fc32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_40243425f75a419aab63d36e8e82036f_dep.md5 b/docs/html/dir_40243425f75a419aab63d36e8e82036f_dep.md5 new file mode 100644 index 0000000..c4b1c40 --- /dev/null +++ b/docs/html/dir_40243425f75a419aab63d36e8e82036f_dep.md5 @@ -0,0 +1 @@ +5391ec087b7fc2406490405f039b01c2 \ No newline at end of file diff --git a/docs/html/dir_40243425f75a419aab63d36e8e82036f_dep.svg b/docs/html/dir_40243425f75a419aab63d36e8e82036f_dep.svg new file mode 100644 index 0000000..d040522 --- /dev/null +++ b/docs/html/dir_40243425f75a419aab63d36e8e82036f_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +float + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_40243425f75a419aab63d36e8e82036f + + +float + + + + + +dir_40243425f75a419aab63d36e8e82036f->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +10 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_40243425f75a419aab63d36e8e82036f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +14 + + + + + + + + + + diff --git a/docs/html/dir_40243425f75a419aab63d36e8e82036f_dep_org.svg b/docs/html/dir_40243425f75a419aab63d36e8e82036f_dep_org.svg new file mode 100644 index 0000000..2312a03 --- /dev/null +++ b/docs/html/dir_40243425f75a419aab63d36e8e82036f_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +float + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_40243425f75a419aab63d36e8e82036f + + +float + + + + + +dir_40243425f75a419aab63d36e8e82036f->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +10 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_40243425f75a419aab63d36e8e82036f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +14 + + + + + diff --git a/docs/html/dir_409f97388efe006bc3438b95e9edef48.html b/docs/html/dir_409f97388efe006bc3438b95e9edef48.html new file mode 100644 index 0000000..5878981 --- /dev/null +++ b/docs/html/dir_409f97388efe006bc3438b95e9edef48.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: components Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
components Directory Reference
+
+
+
+Directory dependency graph for components:
+
+
+
+ + + + + + +

+Directories

 
espressif__esp-dsp
 
espressif__esp_tinyusb
 
espressif__led_strip
 
wave_gen
+
+
+ +
+ + + + diff --git a/docs/html/dir_409f97388efe006bc3438b95e9edef48.js b/docs/html/dir_409f97388efe006bc3438b95e9edef48.js new file mode 100644 index 0000000..9abb407 --- /dev/null +++ b/docs/html/dir_409f97388efe006bc3438b95e9edef48.js @@ -0,0 +1,7 @@ +var dir_409f97388efe006bc3438b95e9edef48 = +[ + [ "espressif__esp-dsp", "dir_7b64b14aeba8b5bbb3841d17f1f0cd10.html", "dir_7b64b14aeba8b5bbb3841d17f1f0cd10" ], + [ "espressif__esp_tinyusb", "dir_2606190ade5f42f0803fb562b0f2687e.html", "dir_2606190ade5f42f0803fb562b0f2687e" ], + [ "espressif__led_strip", "dir_9be252ebbe144643a161d99fe7bd96b8.html", "dir_9be252ebbe144643a161d99fe7bd96b8" ], + [ "wave_gen", "dir_e6153ef005eb58932a236d4aa6e48d43.html", "dir_e6153ef005eb58932a236d4aa6e48d43" ] +]; \ No newline at end of file diff --git a/docs/html/dir_409f97388efe006bc3438b95e9edef48_dep.md5 b/docs/html/dir_409f97388efe006bc3438b95e9edef48_dep.md5 new file mode 100644 index 0000000..96a1005 --- /dev/null +++ b/docs/html/dir_409f97388efe006bc3438b95e9edef48_dep.md5 @@ -0,0 +1 @@ +0e9f7392f7966e20303d9ada43d7dd44 \ No newline at end of file diff --git a/docs/html/dir_409f97388efe006bc3438b95e9edef48_dep.svg b/docs/html/dir_409f97388efe006bc3438b95e9edef48_dep.svg new file mode 100644 index 0000000..d9a6ba7 --- /dev/null +++ b/docs/html/dir_409f97388efe006bc3438b95e9edef48_dep.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + +components + +clusterdir_409f97388efe006bc3438b95e9edef48 + + + + + + + +dir_409f97388efe006bc3438b95e9edef48 +components + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_2606190ade5f42f0803fb562b0f2687e + + +espressif__esp_tinyusb + + + + + +dir_2606190ade5f42f0803fb562b0f2687e->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +15 + + + + + +dir_9be252ebbe144643a161d99fe7bd96b8 + + +espressif__led_strip + + + + + +dir_9be252ebbe144643a161d99fe7bd96b8->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +8 + + + + + +dir_e6153ef005eb58932a236d4aa6e48d43 + + +wave_gen + + + + + +dir_e6153ef005eb58932a236d4aa6e48d43->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_409f97388efe006bc3438b95e9edef48_dep_org.svg b/docs/html/dir_409f97388efe006bc3438b95e9edef48_dep_org.svg new file mode 100644 index 0000000..a7da17e --- /dev/null +++ b/docs/html/dir_409f97388efe006bc3438b95e9edef48_dep_org.svg @@ -0,0 +1,99 @@ + + + + + + +components + +clusterdir_409f97388efe006bc3438b95e9edef48 + + + + + + + +dir_409f97388efe006bc3438b95e9edef48 +components + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_2606190ade5f42f0803fb562b0f2687e + + +espressif__esp_tinyusb + + + + + +dir_2606190ade5f42f0803fb562b0f2687e->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +15 + + + + + +dir_9be252ebbe144643a161d99fe7bd96b8 + + +espressif__led_strip + + + + + +dir_9be252ebbe144643a161d99fe7bd96b8->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +8 + + + + + +dir_e6153ef005eb58932a236d4aa6e48d43 + + +wave_gen + + + + + +dir_e6153ef005eb58932a236d4aa6e48d43->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +2 + + + + + diff --git a/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7.html b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7.html new file mode 100644 index 0000000..eaffb23 --- /dev/null +++ b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: test_sim Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
test_sim Directory Reference
+
+
+
+Directory dependency graph for test_sim:
+
+
+
+ + + + +

+Files

 
main.c
 
test_iir_biquad.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7.js b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7.js new file mode 100644 index 0000000..9a1ce45 --- /dev/null +++ b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7.js @@ -0,0 +1,5 @@ +var dir_40de81f340cbaee2d58ba5dafcdb1bc7 = +[ + [ "main.c", "components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c.html", "components_2espressif____esp-dsp_2modules_2iir_2test__sim_2main_8c" ], + [ "test_iir_biquad.c", "test__iir__biquad_8c.html", "test__iir__biquad_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep.md5 b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep.md5 new file mode 100644 index 0000000..f3e0255 --- /dev/null +++ b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep.md5 @@ -0,0 +1 @@ +69ba16932c69e3595c5d29b7eb62259d \ No newline at end of file diff --git a/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep.svg b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep.svg new file mode 100644 index 0000000..f12ea15 --- /dev/null +++ b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +test_sim + +clusterdir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df + + +include + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7 + + +test_sim + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7->dir_1f3faa83e2fcedf83b0357f6cc73c1df + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep_org.svg b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep_org.svg new file mode 100644 index 0000000..bc94783 --- /dev/null +++ b/docs/html/dir_40de81f340cbaee2d58ba5dafcdb1bc7_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +test_sim + +clusterdir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df + + +include + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7 + + +test_sim + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7->dir_1f3faa83e2fcedf83b0357f6cc73c1df + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_42be8631e0eff9e3824673f44965e076.html b/docs/html/dir_42be8631e0eff9e3824673f44965e076.html new file mode 100644 index 0000000..d573ca3 --- /dev/null +++ b/docs/html/dir_42be8631e0eff9e3824673f44965e076.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: apps Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
apps Directory Reference
+
+
+
+Directory dependency graph for apps:
+
+
+
+ + + + +

+Directories

 
3d_graphics
 
kalman_filter
+
+
+ +
+ + + + diff --git a/docs/html/dir_42be8631e0eff9e3824673f44965e076.js b/docs/html/dir_42be8631e0eff9e3824673f44965e076.js new file mode 100644 index 0000000..9119883 --- /dev/null +++ b/docs/html/dir_42be8631e0eff9e3824673f44965e076.js @@ -0,0 +1,5 @@ +var dir_42be8631e0eff9e3824673f44965e076 = +[ + [ "3d_graphics", "dir_02308b8e45679f69b2b2822872449adb.html", "dir_02308b8e45679f69b2b2822872449adb" ], + [ "kalman_filter", "dir_eca7894df80a3acd051f3e5eab624191.html", "dir_eca7894df80a3acd051f3e5eab624191" ] +]; \ No newline at end of file diff --git a/docs/html/dir_42be8631e0eff9e3824673f44965e076_dep.md5 b/docs/html/dir_42be8631e0eff9e3824673f44965e076_dep.md5 new file mode 100644 index 0000000..afc1373 --- /dev/null +++ b/docs/html/dir_42be8631e0eff9e3824673f44965e076_dep.md5 @@ -0,0 +1 @@ +f7ff9fba54d888b62ae47514fc023b40 \ No newline at end of file diff --git a/docs/html/dir_42be8631e0eff9e3824673f44965e076_dep.svg b/docs/html/dir_42be8631e0eff9e3824673f44965e076_dep.svg new file mode 100644 index 0000000..3ee94e5 --- /dev/null +++ b/docs/html/dir_42be8631e0eff9e3824673f44965e076_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +apps + +clusterdir_9f56573f249ce70c94c7b8fff377f7a9 + + +azure_board_apps + + + + +clusterdir_42be8631e0eff9e3824673f44965e076 + + + + + + + +dir_42be8631e0eff9e3824673f44965e076 +apps + + + +dir_02308b8e45679f69b2b2822872449adb + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_02308b8e45679f69b2b2822872449adb->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_eca7894df80a3acd051f3e5eab624191 + + +kalman_filter + + + + + +dir_eca7894df80a3acd051f3e5eab624191->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_42be8631e0eff9e3824673f44965e076_dep_org.svg b/docs/html/dir_42be8631e0eff9e3824673f44965e076_dep_org.svg new file mode 100644 index 0000000..456dbd8 --- /dev/null +++ b/docs/html/dir_42be8631e0eff9e3824673f44965e076_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +apps + +clusterdir_9f56573f249ce70c94c7b8fff377f7a9 + + +azure_board_apps + + + + +clusterdir_42be8631e0eff9e3824673f44965e076 + + + + + + + +dir_42be8631e0eff9e3824673f44965e076 +apps + + + +dir_02308b8e45679f69b2b2822872449adb + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_02308b8e45679f69b2b2822872449adb->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_eca7894df80a3acd051f3e5eab624191 + + +kalman_filter + + + + + +dir_eca7894df80a3acd051f3e5eab624191->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b.html b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b.html new file mode 100644 index 0000000..567cef7 --- /dev/null +++ b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: ekf_imu13states Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf_imu13states Directory Reference
+
+
+
+Directory dependency graph for ekf_imu13states:
+
+
+
+ + + +

+Directories

 
include
+ + +

+Files

 
ekf_imu13states.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b.js b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b.js new file mode 100644 index 0000000..83f8784 --- /dev/null +++ b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b.js @@ -0,0 +1,5 @@ +var dir_43b440e8c9d7b15ca688aa8c8e594f1b = +[ + [ "include", "dir_f69cca64cbddff3688ecc3dff3ca9e3a.html", "dir_f69cca64cbddff3688ecc3dff3ca9e3a" ], + [ "ekf_imu13states.cpp", "ekf__imu13states_8cpp.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep.md5 b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep.md5 new file mode 100644 index 0000000..2622ef9 --- /dev/null +++ b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep.md5 @@ -0,0 +1 @@ +11ae1d2c1ab97cc1052b8d98471e5792 \ No newline at end of file diff --git a/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep.svg b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep.svg new file mode 100644 index 0000000..438ec68 --- /dev/null +++ b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +ekf_imu13states + +clusterdir_0469dbe69b06e7cedb52b012fa55f8d0 + + +kalman + + + + +clusterdir_43b440e8c9d7b15ca688aa8c8e594f1b + + + + + + + +dir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_43b440e8c9d7b15ca688aa8c8e594f1b +ekf_imu13states + + + +dir_f69cca64cbddff3688ecc3dff3ca9e3a + + +include + + + + + +dir_43b440e8c9d7b15ca688aa8c8e594f1b->dir_f69cca64cbddff3688ecc3dff3ca9e3a + + + + + + +1 + + + + + +dir_f69cca64cbddff3688ecc3dff3ca9e3a->dir_b2edfaaef06a92a9d53ea863519f7932 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep_org.svg b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep_org.svg new file mode 100644 index 0000000..02a0afe --- /dev/null +++ b/docs/html/dir_43b440e8c9d7b15ca688aa8c8e594f1b_dep_org.svg @@ -0,0 +1,76 @@ + + + + + + +ekf_imu13states + +clusterdir_0469dbe69b06e7cedb52b012fa55f8d0 + + +kalman + + + + +clusterdir_43b440e8c9d7b15ca688aa8c8e594f1b + + + + + + + +dir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_43b440e8c9d7b15ca688aa8c8e594f1b +ekf_imu13states + + + +dir_f69cca64cbddff3688ecc3dff3ca9e3a + + +include + + + + + +dir_43b440e8c9d7b15ca688aa8c8e594f1b->dir_f69cca64cbddff3688ecc3dff3ca9e3a + + + + + + +1 + + + + + +dir_f69cca64cbddff3688ecc3dff3ca9e3a->dir_b2edfaaef06a92a9d53ea863519f7932 + + + + + + +1 + + + + + diff --git a/docs/html/dir_43ee144b145d28ede80d7406234067ed.html b/docs/html/dir_43ee144b145d28ede80d7406234067ed.html new file mode 100644 index 0000000..cd0026d --- /dev/null +++ b/docs/html/dir_43ee144b145d28ede80d7406234067ed.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: interface Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
interface Directory Reference
+
+
+
+Directory dependency graph for interface:
+
+
+
+ + + +

+Files

 
led_strip_interface.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_43ee144b145d28ede80d7406234067ed.js b/docs/html/dir_43ee144b145d28ede80d7406234067ed.js new file mode 100644 index 0000000..fc6dbbb --- /dev/null +++ b/docs/html/dir_43ee144b145d28ede80d7406234067ed.js @@ -0,0 +1,4 @@ +var dir_43ee144b145d28ede80d7406234067ed = +[ + [ "led_strip_interface.h", "led__strip__interface_8h.html", "led__strip__interface_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_43ee144b145d28ede80d7406234067ed_dep.md5 b/docs/html/dir_43ee144b145d28ede80d7406234067ed_dep.md5 new file mode 100644 index 0000000..01a5e64 --- /dev/null +++ b/docs/html/dir_43ee144b145d28ede80d7406234067ed_dep.md5 @@ -0,0 +1 @@ +45347116c355588f3cfacd836cdbd207 \ No newline at end of file diff --git a/docs/html/dir_43ee144b145d28ede80d7406234067ed_dep.svg b/docs/html/dir_43ee144b145d28ede80d7406234067ed_dep.svg new file mode 100644 index 0000000..aa46dff --- /dev/null +++ b/docs/html/dir_43ee144b145d28ede80d7406234067ed_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +interface + +clusterdir_9be252ebbe144643a161d99fe7bd96b8 + + +espressif__led_strip + + + + + +dir_43ee144b145d28ede80d7406234067ed + + +interface + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_43ee144b145d28ede80d7406234067ed->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_43ee144b145d28ede80d7406234067ed_dep_org.svg b/docs/html/dir_43ee144b145d28ede80d7406234067ed_dep_org.svg new file mode 100644 index 0000000..d08b8b1 --- /dev/null +++ b/docs/html/dir_43ee144b145d28ede80d7406234067ed_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +interface + +clusterdir_9be252ebbe144643a161d99fe7bd96b8 + + +espressif__led_strip + + + + + +dir_43ee144b145d28ede80d7406234067ed + + +interface + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_43ee144b145d28ede80d7406234067ed->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +1 + + + + + diff --git a/docs/html/dir_4675de09a54f36e152c3aa8af80b2677.html b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677.html new file mode 100644 index 0000000..4d68b1f --- /dev/null +++ b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: templates Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
templates Directory Reference
+
+
+
+Directory dependency graph for templates:
+
+
+
+ + + + +

+Files

 
template_img_to_3d.c
 
template_img_to_3d.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_4675de09a54f36e152c3aa8af80b2677.js b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677.js new file mode 100644 index 0000000..e04252c --- /dev/null +++ b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677.js @@ -0,0 +1,5 @@ +var dir_4675de09a54f36e152c3aa8af80b2677 = +[ + [ "template_img_to_3d.c", "applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html", null ], + [ "template_img_to_3d.h", "applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html", "applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep.md5 b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep.md5 new file mode 100644 index 0000000..0558223 --- /dev/null +++ b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep.md5 @@ -0,0 +1 @@ +bbecbe710e65ebed9ebe7893e6e03a98 \ No newline at end of file diff --git a/docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep.svg b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep.svg new file mode 100644 index 0000000..9e561de --- /dev/null +++ b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +templates + +clusterdir_c5b9f8f4a3ee5f165d6b260641ed6a6b + + +img_to_3d_matrix + + + + + +dir_4675de09a54f36e152c3aa8af80b2677 + + +templates + + + + + + + + + + diff --git a/docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep_org.svg b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep_org.svg new file mode 100644 index 0000000..b03975e --- /dev/null +++ b/docs/html/dir_4675de09a54f36e152c3aa8af80b2677_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +templates + +clusterdir_c5b9f8f4a3ee5f165d6b260641ed6a6b + + +img_to_3d_matrix + + + + + +dir_4675de09a54f36e152c3aa8af80b2677 + + +templates + + + + + diff --git a/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3.html b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3.html new file mode 100644 index 0000000..0244ed8 --- /dev/null +++ b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix_src Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_matrix_src Directory Reference
+
+
+
+Directory dependency graph for 3d_matrix_src:
+
+
+
+ + + + +

+Files

 
graphics_support.cpp
 
graphics_support.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3.js b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3.js new file mode 100644 index 0000000..5333427 --- /dev/null +++ b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3.js @@ -0,0 +1,5 @@ +var dir_4cfd07f72260eac2073c61db9b1badd3 = +[ + [ "graphics_support.cpp", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp" ], + [ "graphics_support.h", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep.md5 b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep.md5 new file mode 100644 index 0000000..e97a7a2 --- /dev/null +++ b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep.md5 @@ -0,0 +1 @@ +758c1c9aba7c20a57dfa466c978f2c24 \ No newline at end of file diff --git a/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep.svg b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep.svg new file mode 100644 index 0000000..131ae86 --- /dev/null +++ b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +3d_matrix_src + +clusterdir_6ab96501580168da92dbadcbc9b254ca + + +3d_matrix + + + + + +dir_4cfd07f72260eac2073c61db9b1badd3 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_4cfd07f72260eac2073c61db9b1badd3->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep_org.svg b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep_org.svg new file mode 100644 index 0000000..681d577 --- /dev/null +++ b/docs/html/dir_4cfd07f72260eac2073c61db9b1badd3_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +3d_matrix_src + +clusterdir_6ab96501580168da92dbadcbc9b254ca + + +3d_matrix + + + + + +dir_4cfd07f72260eac2073c61db9b1badd3 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_4cfd07f72260eac2073c61db9b1badd3->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_4d36d9e87737a2136b2d2e486143979d.html b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d.html new file mode 100644 index 0000000..d59c95c --- /dev/null +++ b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: add Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
add Directory Reference
+
+
+
+Directory dependency graph for add:
+
+
+
+ + + + + +

+Directories

 
fixed
 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_4d36d9e87737a2136b2d2e486143979d.js b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d.js new file mode 100644 index 0000000..42582a3 --- /dev/null +++ b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d.js @@ -0,0 +1,6 @@ +var dir_4d36d9e87737a2136b2d2e486143979d = +[ + [ "fixed", "dir_f5cd8eaf0257daee38a85d69a967cc12.html", "dir_f5cd8eaf0257daee38a85d69a967cc12" ], + [ "float", "dir_3517ac14e10456bd2d5137b8d057f895.html", "dir_3517ac14e10456bd2d5137b8d057f895" ], + [ "include", "dir_c0c0cd07563e9956c88b53baae458253.html", "dir_c0c0cd07563e9956c88b53baae458253" ] +]; \ No newline at end of file diff --git a/docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep.md5 b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep.md5 new file mode 100644 index 0000000..0a319a4 --- /dev/null +++ b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep.md5 @@ -0,0 +1 @@ +929b9e622fc7ac2a4c56621af49e721b \ No newline at end of file diff --git a/docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep.svg b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep.svg new file mode 100644 index 0000000..b52b465 --- /dev/null +++ b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + +add + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_4d36d9e87737a2136b2d2e486143979d + + + + + + + +dir_4d36d9e87737a2136b2d2e486143979d +add + + + +dir_f5cd8eaf0257daee38a85d69a967cc12 + + +fixed + + + + + +dir_c0c0cd07563e9956c88b53baae458253 + + +include + + + + + +dir_f5cd8eaf0257daee38a85d69a967cc12->dir_c0c0cd07563e9956c88b53baae458253 + + + + + + +2 + + + + + +dir_3517ac14e10456bd2d5137b8d057f895 + + +float + + + + + +dir_3517ac14e10456bd2d5137b8d057f895->dir_c0c0cd07563e9956c88b53baae458253 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_c0c0cd07563e9956c88b53baae458253->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep_org.svg b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep_org.svg new file mode 100644 index 0000000..5838a1c --- /dev/null +++ b/docs/html/dir_4d36d9e87737a2136b2d2e486143979d_dep_org.svg @@ -0,0 +1,107 @@ + + + + + + +add + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_4d36d9e87737a2136b2d2e486143979d + + + + + + + +dir_4d36d9e87737a2136b2d2e486143979d +add + + + +dir_f5cd8eaf0257daee38a85d69a967cc12 + + +fixed + + + + + +dir_c0c0cd07563e9956c88b53baae458253 + + +include + + + + + +dir_f5cd8eaf0257daee38a85d69a967cc12->dir_c0c0cd07563e9956c88b53baae458253 + + + + + + +2 + + + + + +dir_3517ac14e10456bd2d5137b8d057f895 + + +float + + + + + +dir_3517ac14e10456bd2d5137b8d057f895->dir_c0c0cd07563e9956c88b53baae458253 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_c0c0cd07563e9956c88b53baae458253->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90.html b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90.html new file mode 100644 index 0000000..0c1ef26 --- /dev/null +++ b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: nuttall Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
nuttall Directory Reference
+
+
+
+Directory dependency graph for nuttall:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90.js b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90.js new file mode 100644 index 0000000..959c67a --- /dev/null +++ b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90.js @@ -0,0 +1,5 @@ +var dir_4d5843eee21c7cebfad28c6fb5869b90 = +[ + [ "float", "dir_675ecede1307f57d5bf686746716e89a.html", "dir_675ecede1307f57d5bf686746716e89a" ], + [ "include", "dir_df22749ae4ae6efb2cb45d380996b069.html", "dir_df22749ae4ae6efb2cb45d380996b069" ] +]; \ No newline at end of file diff --git a/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep.md5 b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep.md5 new file mode 100644 index 0000000..71146f3 --- /dev/null +++ b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep.md5 @@ -0,0 +1 @@ +1410cb23bdbebd02a41668e25a385e0c \ No newline at end of file diff --git a/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep.svg b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep.svg new file mode 100644 index 0000000..4ac9cbd --- /dev/null +++ b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +nuttall + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_4d5843eee21c7cebfad28c6fb5869b90 + + + + + + + +dir_4d5843eee21c7cebfad28c6fb5869b90 +nuttall + + + +dir_675ecede1307f57d5bf686746716e89a + + +float + + + + + +dir_df22749ae4ae6efb2cb45d380996b069 + + +include + + + + + +dir_675ecede1307f57d5bf686746716e89a->dir_df22749ae4ae6efb2cb45d380996b069 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep_org.svg b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep_org.svg new file mode 100644 index 0000000..e9441b2 --- /dev/null +++ b/docs/html/dir_4d5843eee21c7cebfad28c6fb5869b90_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +nuttall + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_4d5843eee21c7cebfad28c6fb5869b90 + + + + + + + +dir_4d5843eee21c7cebfad28c6fb5869b90 +nuttall + + + +dir_675ecede1307f57d5bf686746716e89a + + +float + + + + + +dir_df22749ae4ae6efb2cb45d380996b069 + + +include + + + + + +dir_675ecede1307f57d5bf686746716e89a->dir_df22749ae4ae6efb2cb45d380996b069 + + + + + + +1 + + + + + diff --git a/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee.html b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee.html new file mode 100644 index 0000000..8ea0180 --- /dev/null +++ b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: spectrum_box_lite Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
spectrum_box_lite Directory Reference
+
+
+
+Directory dependency graph for spectrum_box_lite:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee.js b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee.js new file mode 100644 index 0000000..9ebfe47 --- /dev/null +++ b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee.js @@ -0,0 +1,4 @@ +var dir_4e5ef387738f2f40c2e47c11e8e98eee = +[ + [ "main", "dir_5f83482eb30c9259299e8dd4193d7180.html", "dir_5f83482eb30c9259299e8dd4193d7180" ] +]; \ No newline at end of file diff --git a/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep.md5 b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep.md5 new file mode 100644 index 0000000..a008e3b --- /dev/null +++ b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep.md5 @@ -0,0 +1 @@ +359580560867fe33b5293c7f7e1df4e6 \ No newline at end of file diff --git a/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep.svg b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep.svg new file mode 100644 index 0000000..23a0551 --- /dev/null +++ b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +spectrum_box_lite + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + +clusterdir_4e5ef387738f2f40c2e47c11e8e98eee + + + + + + + +dir_4e5ef387738f2f40c2e47c11e8e98eee +spectrum_box_lite + + + +dir_5f83482eb30c9259299e8dd4193d7180 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5f83482eb30c9259299e8dd4193d7180->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep_org.svg b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep_org.svg new file mode 100644 index 0000000..2c86282 --- /dev/null +++ b/docs/html/dir_4e5ef387738f2f40c2e47c11e8e98eee_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +spectrum_box_lite + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + +clusterdir_4e5ef387738f2f40c2e47c11e8e98eee + + + + + + + +dir_4e5ef387738f2f40c2e47c11e8e98eee +spectrum_box_lite + + + +dir_5f83482eb30c9259299e8dd4193d7180 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5f83482eb30c9259299e8dd4193d7180->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_503b7d37e1488242e5075cc003fe4360.html b/docs/html/dir_503b7d37e1488242e5075cc003fe4360.html new file mode 100644 index 0000000..4d9f3ff --- /dev/null +++ b/docs/html/dir_503b7d37e1488242e5075cc003fe4360.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + + + +

+Files

 
dspi_dotprod.h
 
dspi_dotprod_platform.h
 
dsps_dotprod.h
 
dsps_dotprod_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_503b7d37e1488242e5075cc003fe4360.js b/docs/html/dir_503b7d37e1488242e5075cc003fe4360.js new file mode 100644 index 0000000..72c3d55 --- /dev/null +++ b/docs/html/dir_503b7d37e1488242e5075cc003fe4360.js @@ -0,0 +1,7 @@ +var dir_503b7d37e1488242e5075cc003fe4360 = +[ + [ "dspi_dotprod.h", "dspi__dotprod_8h.html", "dspi__dotprod_8h" ], + [ "dspi_dotprod_platform.h", "dspi__dotprod__platform_8h.html", null ], + [ "dsps_dotprod.h", "dsps__dotprod_8h.html", "dsps__dotprod_8h" ], + [ "dsps_dotprod_platform.h", "dsps__dotprod__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep.md5 b/docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep.md5 new file mode 100644 index 0000000..04b4e1f --- /dev/null +++ b/docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep.md5 @@ -0,0 +1 @@ +751f12c0b58db5ab9547573a17792ce1 \ No newline at end of file diff --git a/docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep.svg b/docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep.svg new file mode 100644 index 0000000..5ee0157 --- /dev/null +++ b/docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_503b7d37e1488242e5075cc003fe4360 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_503b7d37e1488242e5075cc003fe4360->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep_org.svg b/docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep_org.svg new file mode 100644 index 0000000..716ea94 --- /dev/null +++ b/docs/html/dir_503b7d37e1488242e5075cc003fe4360_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_503b7d37e1488242e5075cc003fe4360 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_503b7d37e1488242e5075cc003fe4360->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + diff --git a/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80.html b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80.html new file mode 100644 index 0000000..9bb0851 --- /dev/null +++ b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dspm_add.h
 
dspm_add_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80.js b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80.js new file mode 100644 index 0000000..fffc4b6 --- /dev/null +++ b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80.js @@ -0,0 +1,5 @@ +var dir_50d20af8260b5fd9fd6f487ec1786b80 = +[ + [ "dspm_add.h", "dspm__add_8h.html", "dspm__add_8h" ], + [ "dspm_add_platform.h", "dspm__add__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep.md5 b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep.md5 new file mode 100644 index 0000000..d7ab2af --- /dev/null +++ b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep.md5 @@ -0,0 +1 @@ +7e804dec0417310718a667a75c042ed6 \ No newline at end of file diff --git a/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep.svg b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep.svg new file mode 100644 index 0000000..e624fb7 --- /dev/null +++ b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_3fd26304af2c2aef8acd2c6ee8269bcd + + +add + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep_org.svg b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep_org.svg new file mode 100644 index 0000000..215132a --- /dev/null +++ b/docs/html/dir_50d20af8260b5fd9fd6f487ec1786b80_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_3fd26304af2c2aef8acd2c6ee8269bcd + + +add + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e.html b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e.html new file mode 100644 index 0000000..6b8d2b7 --- /dev/null +++ b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + + +

+Files

 
dsps_fir.h
 
dsps_fir_platform.h
 
dsps_resampler.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e.js b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e.js new file mode 100644 index 0000000..55fabb9 --- /dev/null +++ b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e.js @@ -0,0 +1,6 @@ +var dir_5680bc0d3af986d470bfa6c1499bfa1e = +[ + [ "dsps_fir.h", "dsps__fir_8h.html", "dsps__fir_8h" ], + [ "dsps_fir_platform.h", "dsps__fir__platform_8h.html", null ], + [ "dsps_resampler.h", "dsps__resampler_8h.html", "dsps__resampler_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep.md5 b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep.md5 new file mode 100644 index 0000000..1b6be8e --- /dev/null +++ b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep.md5 @@ -0,0 +1 @@ +be779c86a3922294fcf391f70edf9b15 \ No newline at end of file diff --git a/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep.svg b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep.svg new file mode 100644 index 0000000..b51a701 --- /dev/null +++ b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep_org.svg b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep_org.svg new file mode 100644 index 0000000..f21a5ec --- /dev/null +++ b/docs/html/dir_5680bc0d3af986d470bfa6c1499bfa1e_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + diff --git a/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5.html b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5.html new file mode 100644 index 0000000..b153c32 --- /dev/null +++ b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: external_examples Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples Directory Reference
+
+
+
+Directory dependency graph for external_examples:
+
+
+
+ + + + + + +

+Directories

 
1fa4e38f
 
b00f000e
 
d1468452
 
f9c2d4b3
+
+
+ +
+ + + + diff --git a/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5.js b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5.js new file mode 100644 index 0000000..3f5a845 --- /dev/null +++ b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5.js @@ -0,0 +1,7 @@ +var dir_5a9612cb5743a88a5354e5e317c96db5 = +[ + [ "1fa4e38f", "dir_1a69cc9870158a9b1f6c74efc10aab8c.html", "dir_1a69cc9870158a9b1f6c74efc10aab8c" ], + [ "b00f000e", "dir_6d24da5b1da7789edd0dcd89dc1dbcb7.html", "dir_6d24da5b1da7789edd0dcd89dc1dbcb7" ], + [ "d1468452", "dir_c5eb101bd20917ef236da0cb98586871.html", "dir_c5eb101bd20917ef236da0cb98586871" ], + [ "f9c2d4b3", "dir_09ad66f83672b653a2c2d9afebef122d.html", "dir_09ad66f83672b653a2c2d9afebef122d" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep.md5 b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep.md5 new file mode 100644 index 0000000..a8241b0 --- /dev/null +++ b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep.md5 @@ -0,0 +1 @@ +ae28cc3d7f9b52f38e2c1b552db1f037 \ No newline at end of file diff --git a/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep.svg b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep.svg new file mode 100644 index 0000000..97217ac --- /dev/null +++ b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +external_examples + +clusterdir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5a9612cb5743a88a5354e5e317c96db5 +external_examples + + + +dir_1a69cc9870158a9b1f6c74efc10aab8c + + +1fa4e38f + + + + + +dir_1a69cc9870158a9b1f6c74efc10aab8c->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_6d24da5b1da7789edd0dcd89dc1dbcb7 + + +b00f000e + + + + + +dir_6d24da5b1da7789edd0dcd89dc1dbcb7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +19 + + + + + +dir_c5eb101bd20917ef236da0cb98586871 + + +d1468452 + + + + + +dir_c5eb101bd20917ef236da0cb98586871->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_09ad66f83672b653a2c2d9afebef122d + + +f9c2d4b3 + + + + + +dir_09ad66f83672b653a2c2d9afebef122d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + + + + + + diff --git a/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep_org.svg b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep_org.svg new file mode 100644 index 0000000..7dcb4b4 --- /dev/null +++ b/docs/html/dir_5a9612cb5743a88a5354e5e317c96db5_dep_org.svg @@ -0,0 +1,129 @@ + + + + + + +external_examples + +clusterdir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5a9612cb5743a88a5354e5e317c96db5 +external_examples + + + +dir_1a69cc9870158a9b1f6c74efc10aab8c + + +1fa4e38f + + + + + +dir_1a69cc9870158a9b1f6c74efc10aab8c->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_6d24da5b1da7789edd0dcd89dc1dbcb7 + + +b00f000e + + + + + +dir_6d24da5b1da7789edd0dcd89dc1dbcb7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +19 + + + + + +dir_c5eb101bd20917ef236da0cb98586871 + + +d1468452 + + + + + +dir_c5eb101bd20917ef236da0cb98586871->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_09ad66f83672b653a2c2d9afebef122d + + +f9c2d4b3 + + + + + +dir_09ad66f83672b653a2c2d9afebef122d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + diff --git a/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64.html b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64.html new file mode 100644 index 0000000..c9bcffc --- /dev/null +++ b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics Directory Reference
+
+
+
+Directory dependency graph for 3d_graphics:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64.js b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64.js new file mode 100644 index 0000000..ce09a99 --- /dev/null +++ b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64.js @@ -0,0 +1,4 @@ +var dir_5b18cd7a18c6dd121c3886b4ca53be64 = +[ + [ "main", "dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.html", "dir_94d9a18ab0f3ad2f015058c2f9d5b4c2" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep.md5 b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep.md5 new file mode 100644 index 0000000..e783649 --- /dev/null +++ b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep.md5 @@ -0,0 +1 @@ +6e5f9d505fafaec7c4ebd339c6a6b87c \ No newline at end of file diff --git a/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep.svg b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep.svg new file mode 100644 index 0000000..6de80cb --- /dev/null +++ b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +3d_graphics + +clusterdir_ad7c247d62c906d539eea57d302f162e + + +apps + + + + +clusterdir_5b18cd7a18c6dd121c3886b4ca53be64 + + + + + + + +dir_5b18cd7a18c6dd121c3886b4ca53be64 +3d_graphics + + + +dir_94d9a18ab0f3ad2f015058c2f9d5b4c2 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_94d9a18ab0f3ad2f015058c2f9d5b4c2->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep_org.svg b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep_org.svg new file mode 100644 index 0000000..909d9d1 --- /dev/null +++ b/docs/html/dir_5b18cd7a18c6dd121c3886b4ca53be64_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +3d_graphics + +clusterdir_ad7c247d62c906d539eea57d302f162e + + +apps + + + + +clusterdir_5b18cd7a18c6dd121c3886b4ca53be64 + + + + + + + +dir_5b18cd7a18c6dd121c3886b4ca53be64 +3d_graphics + + + +dir_94d9a18ab0f3ad2f015058c2f9d5b4c2 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_94d9a18ab0f3ad2f015058c2f9d5b4c2->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_5b81275681346a9651ba0069dadde207.html b/docs/html/dir_5b81275681346a9651ba0069dadde207.html new file mode 100644 index 0000000..6c834b3 --- /dev/null +++ b/docs/html/dir_5b81275681346a9651ba0069dadde207.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: misc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
misc Directory Reference
+
+
+
+Directory dependency graph for misc:
+
+
+
+ + + + +

+Files

 
aes3_tie_log.c
 
dsps_pwroftwo.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_5b81275681346a9651ba0069dadde207.js b/docs/html/dir_5b81275681346a9651ba0069dadde207.js new file mode 100644 index 0000000..0faf60c --- /dev/null +++ b/docs/html/dir_5b81275681346a9651ba0069dadde207.js @@ -0,0 +1,5 @@ +var dir_5b81275681346a9651ba0069dadde207 = +[ + [ "aes3_tie_log.c", "aes3__tie__log_8c.html", "aes3__tie__log_8c" ], + [ "dsps_pwroftwo.cpp", "dsps__pwroftwo_8cpp.html", "dsps__pwroftwo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5b81275681346a9651ba0069dadde207_dep.md5 b/docs/html/dir_5b81275681346a9651ba0069dadde207_dep.md5 new file mode 100644 index 0000000..29f6370 --- /dev/null +++ b/docs/html/dir_5b81275681346a9651ba0069dadde207_dep.md5 @@ -0,0 +1 @@ +f6e57cd72380b871bcb19612d8fc953a \ No newline at end of file diff --git a/docs/html/dir_5b81275681346a9651ba0069dadde207_dep.svg b/docs/html/dir_5b81275681346a9651ba0069dadde207_dep.svg new file mode 100644 index 0000000..0feed89 --- /dev/null +++ b/docs/html/dir_5b81275681346a9651ba0069dadde207_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +misc + +clusterdir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb + + +include + + + + + +dir_5b81275681346a9651ba0069dadde207 + + +misc + + + + + +dir_5b81275681346a9651ba0069dadde207->dir_0aad210bf1f44ca0774b9c37a9d769cb + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_5b81275681346a9651ba0069dadde207_dep_org.svg b/docs/html/dir_5b81275681346a9651ba0069dadde207_dep_org.svg new file mode 100644 index 0000000..23f96d6 --- /dev/null +++ b/docs/html/dir_5b81275681346a9651ba0069dadde207_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +misc + +clusterdir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb + + +include + + + + + +dir_5b81275681346a9651ba0069dadde207 + + +misc + + + + + +dir_5b81275681346a9651ba0069dadde207->dir_0aad210bf1f44ca0774b9c37a9d769cb + + + + + + +2 + + + + + diff --git a/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d.html b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d.html new file mode 100644 index 0000000..6520194 --- /dev/null +++ b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_sfdr_f32.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d.js b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d.js new file mode 100644 index 0000000..32806dc --- /dev/null +++ b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d.js @@ -0,0 +1,4 @@ +var dir_5c43b1cda211d87979dcbe28c41ba00d = +[ + [ "dsps_sfdr_f32.cpp", "dsps__sfdr__f32_8cpp.html", "dsps__sfdr__f32_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep.md5 b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep.md5 new file mode 100644 index 0000000..c9a6c20 --- /dev/null +++ b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep.md5 @@ -0,0 +1 @@ +131d9d48589b5fa4c03fc18e0a6714e7 \ No newline at end of file diff --git a/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep.svg b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep.svg new file mode 100644 index 0000000..df17174 --- /dev/null +++ b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + +float + +clusterdir_7e3beb66e1044e6769774984c2d38ab1 + + +sfdr + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d + + +float + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep_org.svg b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep_org.svg new file mode 100644 index 0000000..4bb66ae --- /dev/null +++ b/docs/html/dir_5c43b1cda211d87979dcbe28c41ba00d_dep_org.svg @@ -0,0 +1,95 @@ + + + + + + +float + +clusterdir_7e3beb66e1044e6769774984c2d38ab1 + + +sfdr + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d + + +float + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + diff --git a/docs/html/dir_5c982d53a68cdbcd421152b4020263a9.html b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9.html new file mode 100644 index 0000000..35a774c --- /dev/null +++ b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
main.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_5c982d53a68cdbcd421152b4020263a9.js b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9.js new file mode 100644 index 0000000..88ebb25 --- /dev/null +++ b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9.js @@ -0,0 +1,4 @@ +var dir_5c982d53a68cdbcd421152b4020263a9 = +[ + [ "main.c", "main_2main_8c.html", "main_2main_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep.md5 b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep.md5 new file mode 100644 index 0000000..4161b3c --- /dev/null +++ b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep.md5 @@ -0,0 +1 @@ +556a40135aef29fdb6f92e7f25e27c96 \ No newline at end of file diff --git a/docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep.svg b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep.svg new file mode 100644 index 0000000..97d0593 --- /dev/null +++ b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + +main + + +dir_5c982d53a68cdbcd421152b4020263a9 + + +main + + + + + +dir_409f97388efe006bc3438b95e9edef48 + + +components + + + + + +dir_5c982d53a68cdbcd421152b4020263a9->dir_409f97388efe006bc3438b95e9edef48 + + + + + + +7 + + + + + + + + + + diff --git a/docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep_org.svg b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep_org.svg new file mode 100644 index 0000000..0818dc0 --- /dev/null +++ b/docs/html/dir_5c982d53a68cdbcd421152b4020263a9_dep_org.svg @@ -0,0 +1,43 @@ + + + + + + +main + + +dir_5c982d53a68cdbcd421152b4020263a9 + + +main + + + + + +dir_409f97388efe006bc3438b95e9edef48 + + +components + + + + + +dir_5c982d53a68cdbcd421152b4020263a9->dir_409f97388efe006bc3438b95e9edef48 + + + + + + +7 + + + + + diff --git a/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521.html b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521.html new file mode 100644 index 0000000..8b72b84 --- /dev/null +++ b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dsps_mulc.h
 
dsps_mulc_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521.js b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521.js new file mode 100644 index 0000000..b69ba1a --- /dev/null +++ b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521.js @@ -0,0 +1,5 @@ +var dir_5ce06cfd77962876b8da27c1fc0c8521 = +[ + [ "dsps_mulc.h", "dsps__mulc_8h.html", "dsps__mulc_8h" ], + [ "dsps_mulc_platform.h", "dsps__mulc__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep.md5 b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep.md5 new file mode 100644 index 0000000..6f63643 --- /dev/null +++ b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep.md5 @@ -0,0 +1 @@ +beb9040345db71c86d7e52e4342e8146 \ No newline at end of file diff --git a/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep.svg b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep.svg new file mode 100644 index 0000000..dc3a6ec --- /dev/null +++ b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep_org.svg b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep_org.svg new file mode 100644 index 0000000..913c8f6 --- /dev/null +++ b/docs/html/dir_5ce06cfd77962876b8da27c1fc0c8521_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_5df7d12836dc4204a1a798d0831431eb.html b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb.html new file mode 100644 index 0000000..7ad5b80 --- /dev/null +++ b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_wind_blackman_nuttall_f32.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_5df7d12836dc4204a1a798d0831431eb.js b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb.js new file mode 100644 index 0000000..4958452 --- /dev/null +++ b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb.js @@ -0,0 +1,4 @@ +var dir_5df7d12836dc4204a1a798d0831431eb = +[ + [ "dsps_wind_blackman_nuttall_f32.c", "dsps__wind__blackman__nuttall__f32_8c.html", "dsps__wind__blackman__nuttall__f32_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep.md5 b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep.md5 new file mode 100644 index 0000000..0c9e82b --- /dev/null +++ b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep.md5 @@ -0,0 +1 @@ +6457674b32e041618911b48c0a5ee126 \ No newline at end of file diff --git a/docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep.svg b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep.svg new file mode 100644 index 0000000..a2ebe68 --- /dev/null +++ b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_a953ba1f31684a48ed0144a63a293ae9 + + +blackman_nuttall + + + + + +dir_6aa31ae276fd8d589dada5e04a4739f2 + + +include + + + + + +dir_5df7d12836dc4204a1a798d0831431eb + + +float + + + + + +dir_5df7d12836dc4204a1a798d0831431eb->dir_6aa31ae276fd8d589dada5e04a4739f2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep_org.svg b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep_org.svg new file mode 100644 index 0000000..aff1c02 --- /dev/null +++ b/docs/html/dir_5df7d12836dc4204a1a798d0831431eb_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_a953ba1f31684a48ed0144a63a293ae9 + + +blackman_nuttall + + + + + +dir_6aa31ae276fd8d589dada5e04a4739f2 + + +include + + + + + +dir_5df7d12836dc4204a1a798d0831431eb + + +float + + + + + +dir_5df7d12836dc4204a1a798d0831431eb->dir_6aa31ae276fd8d589dada5e04a4739f2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6.html b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6.html new file mode 100644 index 0000000..cf35497 --- /dev/null +++ b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_wind_blackman_harris_f32.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6.js b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6.js new file mode 100644 index 0000000..57645a5 --- /dev/null +++ b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6.js @@ -0,0 +1,4 @@ +var dir_5e17e3ea338fbcad436fc14f3287f6d6 = +[ + [ "dsps_wind_blackman_harris_f32.c", "dsps__wind__blackman__harris__f32_8c.html", "dsps__wind__blackman__harris__f32_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep.md5 b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep.md5 new file mode 100644 index 0000000..72c01a9 --- /dev/null +++ b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep.md5 @@ -0,0 +1 @@ +6bbe6c24fee0c0432323a5de04feed17 \ No newline at end of file diff --git a/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep.svg b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep.svg new file mode 100644 index 0000000..e96d661 --- /dev/null +++ b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_3d8f91d165c61940606cc67fb2b386a2 + + +blackman_harris + + + + + +dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + +include + + + + + +dir_5e17e3ea338fbcad436fc14f3287f6d6 + + +float + + + + + +dir_5e17e3ea338fbcad436fc14f3287f6d6->dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep_org.svg b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep_org.svg new file mode 100644 index 0000000..3356347 --- /dev/null +++ b/docs/html/dir_5e17e3ea338fbcad436fc14f3287f6d6_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_3d8f91d165c61940606cc67fb2b386a2 + + +blackman_harris + + + + + +dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + +include + + + + + +dir_5e17e3ea338fbcad436fc14f3287f6d6 + + +float + + + + + +dir_5e17e3ea338fbcad436fc14f3287f6d6->dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + + + + + +1 + + + + + diff --git a/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5.html b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5.html new file mode 100644 index 0000000..0548a96 --- /dev/null +++ b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + + +

+Files

 
3d_graphics_demo.cpp
 
init_display.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5.js b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5.js new file mode 100644 index 0000000..20d2961 --- /dev/null +++ b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5.js @@ -0,0 +1,5 @@ +var dir_5e963e75a20978d5a9f10b264408e6e5 = +[ + [ "3d_graphics_demo.cpp", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp" ], + [ "init_display.c", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep.md5 b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep.md5 new file mode 100644 index 0000000..6a8e45d --- /dev/null +++ b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep.md5 @@ -0,0 +1 @@ +0e714f5a4a75224a54a3b553ed5bc552 \ No newline at end of file diff --git a/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep.svg b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep.svg new file mode 100644 index 0000000..3b7619e --- /dev/null +++ b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_b1578e0a7dfccb2aa1ada3cffa80de73 + + +3d_graphics + + + + + +dir_5e963e75a20978d5a9f10b264408e6e5 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5e963e75a20978d5a9f10b264408e6e5->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep_org.svg b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep_org.svg new file mode 100644 index 0000000..5c553e6 --- /dev/null +++ b/docs/html/dir_5e963e75a20978d5a9f10b264408e6e5_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_b1578e0a7dfccb2aa1ada3cffa80de73 + + +3d_graphics + + + + + +dir_5e963e75a20978d5a9f10b264408e6e5 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5e963e75a20978d5a9f10b264408e6e5->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + diff --git a/docs/html/dir_5f2e64e9fe690f961d00e914be24c898.html b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898.html new file mode 100644 index 0000000..0c7eafa --- /dev/null +++ b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: fir Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fir Directory Reference
+
+
+
+Directory dependency graph for fir:
+
+
+
+ + + + + + + +

+Directories

 
fixed
 
float
 
include
 
resampler
 
test_sim
+
+
+ +
+ + + + diff --git a/docs/html/dir_5f2e64e9fe690f961d00e914be24c898.js b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898.js new file mode 100644 index 0000000..ac32070 --- /dev/null +++ b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898.js @@ -0,0 +1,8 @@ +var dir_5f2e64e9fe690f961d00e914be24c898 = +[ + [ "fixed", "dir_e3201638ff68b74d4b205e537b11e272.html", "dir_e3201638ff68b74d4b205e537b11e272" ], + [ "float", "dir_91518133c87f157d4a81c3f6c0b097d0.html", "dir_91518133c87f157d4a81c3f6c0b097d0" ], + [ "include", "dir_5680bc0d3af986d470bfa6c1499bfa1e.html", "dir_5680bc0d3af986d470bfa6c1499bfa1e" ], + [ "resampler", "dir_7b3674b38c8d8970266e0a050a170acc.html", "dir_7b3674b38c8d8970266e0a050a170acc" ], + [ "test_sim", "dir_f92c71b2ef057433a6cd6431e49a6368.html", "dir_f92c71b2ef057433a6cd6431e49a6368" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep.md5 b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep.md5 new file mode 100644 index 0000000..292d575 --- /dev/null +++ b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep.md5 @@ -0,0 +1 @@ +b08db05df428d8be6022544c7ddbaee1 \ No newline at end of file diff --git a/docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep.svg b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep.svg new file mode 100644 index 0000000..5d677dd --- /dev/null +++ b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep.svg @@ -0,0 +1,216 @@ + + + + + + + + + + + + +fir + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5f2e64e9fe690f961d00e914be24c898 +fir + + + +dir_e3201638ff68b74d4b205e537b11e272 + + +fixed + + + + + +dir_e3201638ff68b74d4b205e537b11e272->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_e3201638ff68b74d4b205e537b11e272->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +4 + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0 + + +float + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +6 + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + +dir_7b3674b38c8d8970266e0a050a170acc + + +resampler + + + + + +dir_7b3674b38c8d8970266e0a050a170acc->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +2 + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368 + + +test_sim + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep_org.svg b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep_org.svg new file mode 100644 index 0000000..688034a --- /dev/null +++ b/docs/html/dir_5f2e64e9fe690f961d00e914be24c898_dep_org.svg @@ -0,0 +1,190 @@ + + + + + + +fir + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5f2e64e9fe690f961d00e914be24c898 +fir + + + +dir_e3201638ff68b74d4b205e537b11e272 + + +fixed + + + + + +dir_e3201638ff68b74d4b205e537b11e272->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_e3201638ff68b74d4b205e537b11e272->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +4 + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0 + + +float + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +6 + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + +dir_7b3674b38c8d8970266e0a050a170acc + + +resampler + + + + + +dir_7b3674b38c8d8970266e0a050a170acc->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +2 + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368 + + +test_sim + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +1 + + + + + diff --git a/docs/html/dir_5f83482eb30c9259299e8dd4193d7180.html b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180.html new file mode 100644 index 0000000..cf3d59a --- /dev/null +++ b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
main.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_5f83482eb30c9259299e8dd4193d7180.js b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180.js new file mode 100644 index 0000000..ac3a3e5 --- /dev/null +++ b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180.js @@ -0,0 +1,4 @@ +var dir_5f83482eb30c9259299e8dd4193d7180 = +[ + [ "main.c", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c.html", "components_2espressif____esp-dsp_2external__examples_2b00f000e_2applications_2spectrum__box__lite_2main_2main_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep.md5 b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep.md5 new file mode 100644 index 0000000..ec90605 --- /dev/null +++ b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep.md5 @@ -0,0 +1 @@ +63d6675ecad8b32e3451ed8d5e62bc16 \ No newline at end of file diff --git a/docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep.svg b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep.svg new file mode 100644 index 0000000..554118c --- /dev/null +++ b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_4e5ef387738f2f40c2e47c11e8e98eee + + +spectrum_box_lite + + + + + +dir_5f83482eb30c9259299e8dd4193d7180 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5f83482eb30c9259299e8dd4193d7180->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep_org.svg b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep_org.svg new file mode 100644 index 0000000..873a37d --- /dev/null +++ b/docs/html/dir_5f83482eb30c9259299e8dd4193d7180_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_4e5ef387738f2f40c2e47c11e8e98eee + + +spectrum_box_lite + + + + + +dir_5f83482eb30c9259299e8dd4193d7180 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5f83482eb30c9259299e8dd4193d7180->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_5fa5d6f670414422007a5925e84ae702.html b/docs/html/dir_5fa5d6f670414422007a5925e84ae702.html new file mode 100644 index 0000000..dc88431 --- /dev/null +++ b/docs/html/dir_5fa5d6f670414422007a5925e84ae702.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: include_sim Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include_sim Directory Reference
+
+
+
+Directory dependency graph for include_sim:
+
+
+
+ + + + + + +

+Files

 
esp_attr.h
 
esp_err.h
 
esp_log.h
 
sdkconfig.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_5fa5d6f670414422007a5925e84ae702.js b/docs/html/dir_5fa5d6f670414422007a5925e84ae702.js new file mode 100644 index 0000000..c16504c --- /dev/null +++ b/docs/html/dir_5fa5d6f670414422007a5925e84ae702.js @@ -0,0 +1,7 @@ +var dir_5fa5d6f670414422007a5925e84ae702 = +[ + [ "esp_attr.h", "esp__attr_8h.html", null ], + [ "esp_err.h", "esp__err_8h.html", "esp__err_8h" ], + [ "esp_log.h", "esp__log_8h.html", "esp__log_8h" ], + [ "sdkconfig.h", "sdkconfig_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep.md5 b/docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep.md5 new file mode 100644 index 0000000..6011ec4 --- /dev/null +++ b/docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep.md5 @@ -0,0 +1 @@ +9266583e244f3be69ef9733c33a24195 \ No newline at end of file diff --git a/docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep.svg b/docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep.svg new file mode 100644 index 0000000..3b5ef9b --- /dev/null +++ b/docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +include_sim + +clusterdir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5fa5d6f670414422007a5925e84ae702 + + +include_sim + + + + + + + + + + diff --git a/docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep_org.svg b/docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep_org.svg new file mode 100644 index 0000000..192a089 --- /dev/null +++ b/docs/html/dir_5fa5d6f670414422007a5925e84ae702_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +include_sim + +clusterdir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5fa5d6f670414422007a5925e84ae702 + + +include_sim + + + + + diff --git a/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d.html b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d.html new file mode 100644 index 0000000..584058f --- /dev/null +++ b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + + +

+Files

 
3d_kalman_demo.cpp
 
bmi270_context.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d.js b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d.js new file mode 100644 index 0000000..81a925f --- /dev/null +++ b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d.js @@ -0,0 +1,5 @@ +var dir_5fc0e55c3fa90afc87691a4c1dff591d = +[ + [ "3d_kalman_demo.cpp", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp" ], + [ "bmi270_context.c", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html", "applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep.md5 b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep.md5 new file mode 100644 index 0000000..238fd26 --- /dev/null +++ b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep.md5 @@ -0,0 +1 @@ +2dcea417359a7824c68796df48ba0e73 \ No newline at end of file diff --git a/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep.svg b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep.svg new file mode 100644 index 0000000..e335863 --- /dev/null +++ b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_9b69c23330a7d810ddb9527a98b69931 + + +kalman_filter + + + + + +dir_5fc0e55c3fa90afc87691a4c1dff591d + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5fc0e55c3fa90afc87691a4c1dff591d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep_org.svg b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep_org.svg new file mode 100644 index 0000000..5009244 --- /dev/null +++ b/docs/html/dir_5fc0e55c3fa90afc87691a4c1dff591d_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_9b69c23330a7d810ddb9527a98b69931 + + +kalman_filter + + + + + +dir_5fc0e55c3fa90afc87691a4c1dff591d + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5fc0e55c3fa90afc87691a4c1dff591d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069.html b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069.html new file mode 100644 index 0000000..7adf924 --- /dev/null +++ b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: mul Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mul Directory Reference
+
+
+
+Directory dependency graph for mul:
+
+
+
+ + + + + + +

+Directories

 
fixed
 
float
 
include
 
test_sim
+
+
+ +
+ + + + diff --git a/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069.js b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069.js new file mode 100644 index 0000000..b6a589a --- /dev/null +++ b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069.js @@ -0,0 +1,7 @@ +var dir_6452a9bf1971d09ce0c2e6a86e350069 = +[ + [ "fixed", "dir_2d55a8cdc89415d0ec989f7182a0eea0.html", "dir_2d55a8cdc89415d0ec989f7182a0eea0" ], + [ "float", "dir_2cd344f6e971021b7e2a39c1c92a2e49.html", "dir_2cd344f6e971021b7e2a39c1c92a2e49" ], + [ "include", "dir_a433e8a6d28e4786ad1d6be7acd0a86e.html", "dir_a433e8a6d28e4786ad1d6be7acd0a86e" ], + [ "test_sim", "dir_28e9e32f9d89d36fc38d311fa477d5e9.html", "dir_28e9e32f9d89d36fc38d311fa477d5e9" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep.md5 b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep.md5 new file mode 100644 index 0000000..d0356b9 --- /dev/null +++ b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep.md5 @@ -0,0 +1 @@ +c93f640b9c63669ce292a47371cf463c \ No newline at end of file diff --git a/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep.svg b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep.svg new file mode 100644 index 0000000..6d02f89 --- /dev/null +++ b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep.svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + +mul + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069 +mul + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0 + + +fixed + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +1 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +1 + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49 + + +float + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +2 + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9 + + +test_sim + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +1 + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep_org.svg b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep_org.svg new file mode 100644 index 0000000..45bd798 --- /dev/null +++ b/docs/html/dir_6452a9bf1971d09ce0c2e6a86e350069_dep_org.svg @@ -0,0 +1,177 @@ + + + + + + +mul + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069 +mul + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0 + + +fixed + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +1 + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_2d55a8cdc89415d0ec989f7182a0eea0->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +1 + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49 + + +float + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +2 + + + + + +dir_2cd344f6e971021b7e2a39c1c92a2e49->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9 + + +test_sim + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9->dir_a433e8a6d28e4786ad1d6be7acd0a86e + + + + + + +1 + + + + + +dir_28e9e32f9d89d36fc38d311fa477d5e9->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_659a621b8518330e2405891a2cbe2de4.html b/docs/html/dir_659a621b8518330e2405891a2cbe2de4.html new file mode 100644 index 0000000..0616d92 --- /dev/null +++ b/docs/html/dir_659a621b8518330e2405891a2cbe2de4.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics Directory Reference
+
+
+
+Directory dependency graph for 3d_graphics:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_659a621b8518330e2405891a2cbe2de4.js b/docs/html/dir_659a621b8518330e2405891a2cbe2de4.js new file mode 100644 index 0000000..4aa07b0 --- /dev/null +++ b/docs/html/dir_659a621b8518330e2405891a2cbe2de4.js @@ -0,0 +1,4 @@ +var dir_659a621b8518330e2405891a2cbe2de4 = +[ + [ "main", "dir_8ee5fae4fc8aa1304b69487a7107e7d6.html", "dir_8ee5fae4fc8aa1304b69487a7107e7d6" ] +]; \ No newline at end of file diff --git a/docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep.md5 b/docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep.md5 new file mode 100644 index 0000000..482fbca --- /dev/null +++ b/docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep.md5 @@ -0,0 +1 @@ +1fd64a463f1cf19a015f509789173e30 \ No newline at end of file diff --git a/docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep.svg b/docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep.svg new file mode 100644 index 0000000..a0953c7 --- /dev/null +++ b/docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +3d_graphics + +clusterdir_0db1884497eb987b5f550d1edc49e18a + + +apps + + + + +clusterdir_659a621b8518330e2405891a2cbe2de4 + + + + + + + +dir_659a621b8518330e2405891a2cbe2de4 +3d_graphics + + + +dir_8ee5fae4fc8aa1304b69487a7107e7d6 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_8ee5fae4fc8aa1304b69487a7107e7d6->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep_org.svg b/docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep_org.svg new file mode 100644 index 0000000..353525d --- /dev/null +++ b/docs/html/dir_659a621b8518330e2405891a2cbe2de4_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +3d_graphics + +clusterdir_0db1884497eb987b5f550d1edc49e18a + + +apps + + + + +clusterdir_659a621b8518330e2405891a2cbe2de4 + + + + + + + +dir_659a621b8518330e2405891a2cbe2de4 +3d_graphics + + + +dir_8ee5fae4fc8aa1304b69487a7107e7d6 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_8ee5fae4fc8aa1304b69487a7107e7d6->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + diff --git a/docs/html/dir_65b265e786231b2f269c91bc2dcd9462.html b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462.html new file mode 100644 index 0000000..9c3d5ef --- /dev/null +++ b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix_src Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_matrix_src Directory Reference
+
+
+
+Directory dependency graph for 3d_matrix_src:
+
+
+
+ + + + +

+Files

 
graphics_support.cpp
 
graphics_support.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_65b265e786231b2f269c91bc2dcd9462.js b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462.js new file mode 100644 index 0000000..6b75faa --- /dev/null +++ b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462.js @@ -0,0 +1,5 @@ +var dir_65b265e786231b2f269c91bc2dcd9462 = +[ + [ "graphics_support.cpp", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp" ], + [ "graphics_support.h", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep.md5 b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep.md5 new file mode 100644 index 0000000..9ce4625 --- /dev/null +++ b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep.md5 @@ -0,0 +1 @@ +4161777b00836f8768cba9a9d2429239 \ No newline at end of file diff --git a/docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep.svg b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep.svg new file mode 100644 index 0000000..b62e37b --- /dev/null +++ b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +3d_matrix_src + +clusterdir_e33b7cda9a005c39a6e7551b4e05602d + + +3d_matrix + + + + + +dir_65b265e786231b2f269c91bc2dcd9462 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_65b265e786231b2f269c91bc2dcd9462->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep_org.svg b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep_org.svg new file mode 100644 index 0000000..7c873e0 --- /dev/null +++ b/docs/html/dir_65b265e786231b2f269c91bc2dcd9462_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +3d_matrix_src + +clusterdir_e33b7cda9a005c39a6e7551b4e05602d + + +3d_matrix + + + + + +dir_65b265e786231b2f269c91bc2dcd9462 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_65b265e786231b2f269c91bc2dcd9462->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_65ea5eca559d12155f129d4142988850.html b/docs/html/dir_65ea5eca559d12155f129d4142988850.html new file mode 100644 index 0000000..0cdf2a1 --- /dev/null +++ b/docs/html/dir_65ea5eca559d12155f129d4142988850.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: mul Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mul Directory Reference
+
+
+
+Directory dependency graph for mul:
+
+
+
+ + + + + +

+Directories

 
fixed
 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_65ea5eca559d12155f129d4142988850.js b/docs/html/dir_65ea5eca559d12155f129d4142988850.js new file mode 100644 index 0000000..3483ece --- /dev/null +++ b/docs/html/dir_65ea5eca559d12155f129d4142988850.js @@ -0,0 +1,6 @@ +var dir_65ea5eca559d12155f129d4142988850 = +[ + [ "fixed", "dir_ce1baaf5350db63792a033d5f80bd725.html", "dir_ce1baaf5350db63792a033d5f80bd725" ], + [ "float", "dir_c5face973da07f52b4ad2936f0de0daf.html", "dir_c5face973da07f52b4ad2936f0de0daf" ], + [ "include", "dir_21e1fdd2586e76aa0db295cc144c9a55.html", "dir_21e1fdd2586e76aa0db295cc144c9a55" ] +]; \ No newline at end of file diff --git a/docs/html/dir_65ea5eca559d12155f129d4142988850_dep.md5 b/docs/html/dir_65ea5eca559d12155f129d4142988850_dep.md5 new file mode 100644 index 0000000..cbbb578 --- /dev/null +++ b/docs/html/dir_65ea5eca559d12155f129d4142988850_dep.md5 @@ -0,0 +1 @@ +a73e434012ad6bcbfd106e71255c692a \ No newline at end of file diff --git a/docs/html/dir_65ea5eca559d12155f129d4142988850_dep.svg b/docs/html/dir_65ea5eca559d12155f129d4142988850_dep.svg new file mode 100644 index 0000000..36a4fcb --- /dev/null +++ b/docs/html/dir_65ea5eca559d12155f129d4142988850_dep.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + +mul + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_65ea5eca559d12155f129d4142988850 + + + + + + + +dir_65ea5eca559d12155f129d4142988850 +mul + + + +dir_ce1baaf5350db63792a033d5f80bd725 + + +fixed + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55 + + +include + + + + + +dir_ce1baaf5350db63792a033d5f80bd725->dir_21e1fdd2586e76aa0db295cc144c9a55 + + + + + + +2 + + + + + +dir_c5face973da07f52b4ad2936f0de0daf + + +float + + + + + +dir_c5face973da07f52b4ad2936f0de0daf->dir_21e1fdd2586e76aa0db295cc144c9a55 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_65ea5eca559d12155f129d4142988850_dep_org.svg b/docs/html/dir_65ea5eca559d12155f129d4142988850_dep_org.svg new file mode 100644 index 0000000..2c194a9 --- /dev/null +++ b/docs/html/dir_65ea5eca559d12155f129d4142988850_dep_org.svg @@ -0,0 +1,107 @@ + + + + + + +mul + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_65ea5eca559d12155f129d4142988850 + + + + + + + +dir_65ea5eca559d12155f129d4142988850 +mul + + + +dir_ce1baaf5350db63792a033d5f80bd725 + + +fixed + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55 + + +include + + + + + +dir_ce1baaf5350db63792a033d5f80bd725->dir_21e1fdd2586e76aa0db295cc144c9a55 + + + + + + +2 + + + + + +dir_c5face973da07f52b4ad2936f0de0daf + + +float + + + + + +dir_c5face973da07f52b4ad2936f0de0daf->dir_21e1fdd2586e76aa0db295cc144c9a55 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_675ecede1307f57d5bf686746716e89a.html b/docs/html/dir_675ecede1307f57d5bf686746716e89a.html new file mode 100644 index 0000000..d7d04e8 --- /dev/null +++ b/docs/html/dir_675ecede1307f57d5bf686746716e89a.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_wind_nuttall_f32.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_675ecede1307f57d5bf686746716e89a.js b/docs/html/dir_675ecede1307f57d5bf686746716e89a.js new file mode 100644 index 0000000..12f3ac1 --- /dev/null +++ b/docs/html/dir_675ecede1307f57d5bf686746716e89a.js @@ -0,0 +1,4 @@ +var dir_675ecede1307f57d5bf686746716e89a = +[ + [ "dsps_wind_nuttall_f32.c", "dsps__wind__nuttall__f32_8c.html", "dsps__wind__nuttall__f32_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_675ecede1307f57d5bf686746716e89a_dep.md5 b/docs/html/dir_675ecede1307f57d5bf686746716e89a_dep.md5 new file mode 100644 index 0000000..16bce23 --- /dev/null +++ b/docs/html/dir_675ecede1307f57d5bf686746716e89a_dep.md5 @@ -0,0 +1 @@ +f78b8f4a87b71c9d968b60e0cddc4ba2 \ No newline at end of file diff --git a/docs/html/dir_675ecede1307f57d5bf686746716e89a_dep.svg b/docs/html/dir_675ecede1307f57d5bf686746716e89a_dep.svg new file mode 100644 index 0000000..7ea9fe8 --- /dev/null +++ b/docs/html/dir_675ecede1307f57d5bf686746716e89a_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_4d5843eee21c7cebfad28c6fb5869b90 + + +nuttall + + + + + +dir_df22749ae4ae6efb2cb45d380996b069 + + +include + + + + + +dir_675ecede1307f57d5bf686746716e89a + + +float + + + + + +dir_675ecede1307f57d5bf686746716e89a->dir_df22749ae4ae6efb2cb45d380996b069 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_675ecede1307f57d5bf686746716e89a_dep_org.svg b/docs/html/dir_675ecede1307f57d5bf686746716e89a_dep_org.svg new file mode 100644 index 0000000..8a1c8fa --- /dev/null +++ b/docs/html/dir_675ecede1307f57d5bf686746716e89a_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_4d5843eee21c7cebfad28c6fb5869b90 + + +nuttall + + + + + +dir_df22749ae4ae6efb2cb45d380996b069 + + +include + + + + + +dir_675ecede1307f57d5bf686746716e89a + + +float + + + + + +dir_675ecede1307f57d5bf686746716e89a->dir_df22749ae4ae6efb2cb45d380996b069 + + + + + + +1 + + + + + diff --git a/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721.html b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721.html new file mode 100644 index 0000000..8ec0dfa --- /dev/null +++ b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: support Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
support Directory Reference
+
+
+
+Directory dependency graph for support:
+
+
+
+ + + + + + + + + +

+Directories

 
cplx_gen
 
include
 
mem
 
misc
 
sfdr
 
snr
 
view
+
+
+ +
+ + + + diff --git a/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721.js b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721.js new file mode 100644 index 0000000..ff8c0a8 --- /dev/null +++ b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721.js @@ -0,0 +1,10 @@ +var dir_67c4e8b77b4357a93ff15d0d28548721 = +[ + [ "cplx_gen", "dir_ab3ea85e91d8dc68e46d009ff6c24e63.html", "dir_ab3ea85e91d8dc68e46d009ff6c24e63" ], + [ "include", "dir_10508c1be7391f23f9614e5e6618e1bc.html", "dir_10508c1be7391f23f9614e5e6618e1bc" ], + [ "mem", "dir_a4520cc2e8d056e147f1deaf11bb691f.html", "dir_a4520cc2e8d056e147f1deaf11bb691f" ], + [ "misc", "dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.html", "dir_dc680dbb1cea7c0c88f2dd9d758e5cd4" ], + [ "sfdr", "dir_7e3beb66e1044e6769774984c2d38ab1.html", "dir_7e3beb66e1044e6769774984c2d38ab1" ], + [ "snr", "dir_3fd005a8b380f1a21303a2afe19168eb.html", "dir_3fd005a8b380f1a21303a2afe19168eb" ], + [ "view", "dir_87c389725da715c492868deacfc59ee9.html", "dir_87c389725da715c492868deacfc59ee9" ] +]; \ No newline at end of file diff --git a/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep.md5 b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep.md5 new file mode 100644 index 0000000..d9a3907 --- /dev/null +++ b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep.md5 @@ -0,0 +1 @@ +40d704d20e0cb82eaa2220741286dcb0 \ No newline at end of file diff --git a/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep.svg b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep.svg new file mode 100644 index 0000000..ccd8016 --- /dev/null +++ b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep.svg @@ -0,0 +1,365 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +support + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721 +support + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63 + + +cplx_gen + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +2 + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc->dir_e78af46276061306d5e012847576d2b2 + + + + + + +7 + + + + + +dir_a4520cc2e8d056e147f1deaf11bb691f + + +mem + + + + + +dir_a4520cc2e8d056e147f1deaf11bb691f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_dc680dbb1cea7c0c88f2dd9d758e5cd4 + + +misc + + + + + +dir_dc680dbb1cea7c0c88f2dd9d758e5cd4->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +3 + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1 + + +sfdr + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb + + +snr + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_87c389725da715c492868deacfc59ee9 + + +view + + + + + +dir_87c389725da715c492868deacfc59ee9->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_87c389725da715c492868deacfc59ee9->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep_org.svg b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep_org.svg new file mode 100644 index 0000000..aef1674 --- /dev/null +++ b/docs/html/dir_67c4e8b77b4357a93ff15d0d28548721_dep_org.svg @@ -0,0 +1,282 @@ + + + + + + +support + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721 +support + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63 + + +cplx_gen + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +2 + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc->dir_e78af46276061306d5e012847576d2b2 + + + + + + +7 + + + + + +dir_a4520cc2e8d056e147f1deaf11bb691f + + +mem + + + + + +dir_a4520cc2e8d056e147f1deaf11bb691f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_dc680dbb1cea7c0c88f2dd9d758e5cd4 + + +misc + + + + + +dir_dc680dbb1cea7c0c88f2dd9d758e5cd4->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +3 + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1 + + +sfdr + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb + + +snr + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_3fd005a8b380f1a21303a2afe19168eb->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_87c389725da715c492868deacfc59ee9 + + +view + + + + + +dir_87c389725da715c492868deacfc59ee9->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_87c389725da715c492868deacfc59ee9->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + diff --git a/docs/html/dir_68ca4758199d84990e1ba5857830e815.html b/docs/html/dir_68ca4758199d84990e1ba5857830e815.html new file mode 100644 index 0000000..553b94a --- /dev/null +++ b/docs/html/dir_68ca4758199d84990e1ba5857830e815.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: mat Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mat Directory Reference
+
+
+
+Directory dependency graph for mat:
+
+
+
+ + + +

+Files

 
mat.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_68ca4758199d84990e1ba5857830e815.js b/docs/html/dir_68ca4758199d84990e1ba5857830e815.js new file mode 100644 index 0000000..30a3c81 --- /dev/null +++ b/docs/html/dir_68ca4758199d84990e1ba5857830e815.js @@ -0,0 +1,4 @@ +var dir_68ca4758199d84990e1ba5857830e815 = +[ + [ "mat.cpp", "mat_8cpp.html", "mat_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_68ca4758199d84990e1ba5857830e815_dep.md5 b/docs/html/dir_68ca4758199d84990e1ba5857830e815_dep.md5 new file mode 100644 index 0000000..61a7b41 --- /dev/null +++ b/docs/html/dir_68ca4758199d84990e1ba5857830e815_dep.md5 @@ -0,0 +1 @@ +224404bd0df61faeac34f02ccf611cca \ No newline at end of file diff --git a/docs/html/dir_68ca4758199d84990e1ba5857830e815_dep.svg b/docs/html/dir_68ca4758199d84990e1ba5857830e815_dep.svg new file mode 100644 index 0000000..d9a374b --- /dev/null +++ b/docs/html/dir_68ca4758199d84990e1ba5857830e815_dep.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + +mat + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + +include + + + + + +dir_68ca4758199d84990e1ba5857830e815 + + +mat + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + + + + + +2 + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_68ca4758199d84990e1ba5857830e815_dep_org.svg b/docs/html/dir_68ca4758199d84990e1ba5857830e815_dep_org.svg new file mode 100644 index 0000000..0e0dbaf --- /dev/null +++ b/docs/html/dir_68ca4758199d84990e1ba5857830e815_dep_org.svg @@ -0,0 +1,95 @@ + + + + + + +mat + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + +include + + + + + +dir_68ca4758199d84990e1ba5857830e815 + + +mat + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + + + + + +2 + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_68ca4758199d84990e1ba5857830e815->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc.html b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc.html new file mode 100644 index 0000000..f8032b6 --- /dev/null +++ b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
audio_amp_main.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc.js b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc.js new file mode 100644 index 0000000..52ecd9e --- /dev/null +++ b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc.js @@ -0,0 +1,4 @@ +var dir_6964b7e33bb3bd939cb0a354e6a2bedc = +[ + [ "audio_amp_main.c", "applications_2lyrat__board__app_2main_2audio__amp__main_8c.html", "applications_2lyrat__board__app_2main_2audio__amp__main_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep.md5 b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep.md5 new file mode 100644 index 0000000..0c5b15e --- /dev/null +++ b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep.md5 @@ -0,0 +1 @@ +63bd47e8f7a0ead8c987d14e3bdabf1c \ No newline at end of file diff --git a/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep.svg b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep.svg new file mode 100644 index 0000000..391abbd --- /dev/null +++ b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_f770e0d3e13945b3c8eb56d882c10d0b + + +lyrat_board_app + + + + + +dir_6964b7e33bb3bd939cb0a354e6a2bedc + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_6964b7e33bb3bd939cb0a354e6a2bedc->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep_org.svg b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep_org.svg new file mode 100644 index 0000000..dcfbfa6 --- /dev/null +++ b/docs/html/dir_6964b7e33bb3bd939cb0a354e6a2bedc_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_f770e0d3e13945b3c8eb56d882c10d0b + + +lyrat_board_app + + + + + +dir_6964b7e33bb3bd939cb0a354e6a2bedc + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_6964b7e33bb3bd939cb0a354e6a2bedc->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2.html b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2.html new file mode 100644 index 0000000..b5571e3 --- /dev/null +++ b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_wind_blackman_nuttall.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2.js b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2.js new file mode 100644 index 0000000..8054684 --- /dev/null +++ b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2.js @@ -0,0 +1,4 @@ +var dir_6aa31ae276fd8d589dada5e04a4739f2 = +[ + [ "dsps_wind_blackman_nuttall.h", "dsps__wind__blackman__nuttall_8h.html", "dsps__wind__blackman__nuttall_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep.md5 b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep.md5 new file mode 100644 index 0000000..4affbdb --- /dev/null +++ b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep.md5 @@ -0,0 +1 @@ +8190112ae95d29d11f3c2aeffa5433a2 \ No newline at end of file diff --git a/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep.svg b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep.svg new file mode 100644 index 0000000..b1800e7 --- /dev/null +++ b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +include + +clusterdir_a953ba1f31684a48ed0144a63a293ae9 + + +blackman_nuttall + + + + + +dir_6aa31ae276fd8d589dada5e04a4739f2 + + +include + + + + + + + + + + diff --git a/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep_org.svg b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep_org.svg new file mode 100644 index 0000000..a7d4b20 --- /dev/null +++ b/docs/html/dir_6aa31ae276fd8d589dada5e04a4739f2_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +include + +clusterdir_a953ba1f31684a48ed0144a63a293ae9 + + +blackman_nuttall + + + + + +dir_6aa31ae276fd8d589dada5e04a4739f2 + + +include + + + + + diff --git a/docs/html/dir_6ab96501580168da92dbadcbc9b254ca.html b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca.html new file mode 100644 index 0000000..bab8e67 --- /dev/null +++ b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_matrix Directory Reference
+
+
+
+Directory dependency graph for 3d_matrix:
+
+
+
+ + + + +

+Directories

 
3d_matrix_data
 
3d_matrix_src
+
+
+ +
+ + + + diff --git a/docs/html/dir_6ab96501580168da92dbadcbc9b254ca.js b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca.js new file mode 100644 index 0000000..29a6999 --- /dev/null +++ b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca.js @@ -0,0 +1,5 @@ +var dir_6ab96501580168da92dbadcbc9b254ca = +[ + [ "3d_matrix_data", "dir_2ca61fe906f0261fd79faabdb72d2de8.html", "dir_2ca61fe906f0261fd79faabdb72d2de8" ], + [ "3d_matrix_src", "dir_4cfd07f72260eac2073c61db9b1badd3.html", "dir_4cfd07f72260eac2073c61db9b1badd3" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep.md5 b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep.md5 new file mode 100644 index 0000000..95b22de --- /dev/null +++ b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep.md5 @@ -0,0 +1 @@ +4bb9c217723c3912213473b6e7248d8c \ No newline at end of file diff --git a/docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep.svg b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep.svg new file mode 100644 index 0000000..359992b --- /dev/null +++ b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + +3d_matrix + +clusterdir_011fb339d4ebe6812c2c47d3e6334b23 + + +graphics + + + + +clusterdir_6ab96501580168da92dbadcbc9b254ca + + + + + + + +dir_6ab96501580168da92dbadcbc9b254ca +3d_matrix + + + +dir_2ca61fe906f0261fd79faabdb72d2de8 + + +3d_matrix_data + + + + + +dir_4cfd07f72260eac2073c61db9b1badd3 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_4cfd07f72260eac2073c61db9b1badd3->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep_org.svg b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep_org.svg new file mode 100644 index 0000000..ccaf225 --- /dev/null +++ b/docs/html/dir_6ab96501580168da92dbadcbc9b254ca_dep_org.svg @@ -0,0 +1,72 @@ + + + + + + +3d_matrix + +clusterdir_011fb339d4ebe6812c2c47d3e6334b23 + + +graphics + + + + +clusterdir_6ab96501580168da92dbadcbc9b254ca + + + + + + + +dir_6ab96501580168da92dbadcbc9b254ca +3d_matrix + + + +dir_2ca61fe906f0261fd79faabdb72d2de8 + + +3d_matrix_data + + + + + +dir_4cfd07f72260eac2073c61db9b1badd3 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_4cfd07f72260eac2073c61db9b1badd3->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_6b43c4cb499058485fe69351829ae7a4.html b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4.html new file mode 100644 index 0000000..7a54ff6 --- /dev/null +++ b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix_data Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_matrix_data Directory Reference
+
+
+
+Directory dependency graph for 3d_matrix_data:
+
+
+
+ + + + + + + + + +

+Files

 
cube_matrix.h
 
esp_logo.c
 
esp_logo.h
 
esp_text.c
 
esp_text.h
 
image_to_3d_matrix.c
 
image_to_3d_matrix.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_6b43c4cb499058485fe69351829ae7a4.js b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4.js new file mode 100644 index 0000000..40dbd61 --- /dev/null +++ b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4.js @@ -0,0 +1,10 @@ +var dir_6b43c4cb499058485fe69351829ae7a4 = +[ + [ "cube_matrix.h", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h" ], + [ "esp_logo.c", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html", null ], + [ "esp_logo.h", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h" ], + [ "esp_text.c", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c" ], + [ "esp_text.h", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h" ], + [ "image_to_3d_matrix.c", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html", null ], + [ "image_to_3d_matrix.h", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html", "applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep.md5 b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep.md5 new file mode 100644 index 0000000..3b794df --- /dev/null +++ b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep.md5 @@ -0,0 +1 @@ +3d5d2606edb7b5d23929d28ddde34609 \ No newline at end of file diff --git a/docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep.svg b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep.svg new file mode 100644 index 0000000..2c9fa6d --- /dev/null +++ b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +3d_matrix_data + +clusterdir_e33b7cda9a005c39a6e7551b4e05602d + + +3d_matrix + + + + + +dir_6b43c4cb499058485fe69351829ae7a4 + + +3d_matrix_data + + + + + + + + + + diff --git a/docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep_org.svg b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep_org.svg new file mode 100644 index 0000000..3cbb8a0 --- /dev/null +++ b/docs/html/dir_6b43c4cb499058485fe69351829ae7a4_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +3d_matrix_data + +clusterdir_e33b7cda9a005c39a6e7551b4e05602d + + +3d_matrix + + + + + +dir_6b43c4cb499058485fe69351829ae7a4 + + +3d_matrix_data + + + + + diff --git a/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3.html b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3.html new file mode 100644 index 0000000..3dd5946 --- /dev/null +++ b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dspm_matrix.h
 
mat.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3.js b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3.js new file mode 100644 index 0000000..a138c99 --- /dev/null +++ b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3.js @@ -0,0 +1,5 @@ +var dir_6bb6fdb490c8492b5ec32700edc7ffd3 = +[ + [ "dspm_matrix.h", "dspm__matrix_8h.html", null ], + [ "mat.h", "mat_8h.html", "mat_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep.md5 b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep.md5 new file mode 100644 index 0000000..cbd4315 --- /dev/null +++ b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep.md5 @@ -0,0 +1 @@ +4030ac0898ca178272a29acd6714f112 \ No newline at end of file diff --git a/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep.svg b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep.svg new file mode 100644 index 0000000..febfe62 --- /dev/null +++ b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep.svg @@ -0,0 +1,165 @@ + + + + + + + + + + + + +include + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_3fd26304af2c2aef8acd2c6ee8269bcd + + +add + + + + + +dir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + +sub + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_733999795ec05e1d47dd8f5326556154 + + +addc + + + + + +dir_8223604c15cd95bf81d4d8af6d40e86f + + +mulc + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + +include + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_3fd26304af2c2aef8acd2c6ee8269bcd + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_6452a9bf1971d09ce0c2e6a86e350069 + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_733999795ec05e1d47dd8f5326556154 + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_8223604c15cd95bf81d4d8af6d40e86f + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep_org.svg b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep_org.svg new file mode 100644 index 0000000..5dd4f82 --- /dev/null +++ b/docs/html/dir_6bb6fdb490c8492b5ec32700edc7ffd3_dep_org.svg @@ -0,0 +1,139 @@ + + + + + + +include + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_3fd26304af2c2aef8acd2c6ee8269bcd + + +add + + + + + +dir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + +sub + + + + + +dir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_733999795ec05e1d47dd8f5326556154 + + +addc + + + + + +dir_8223604c15cd95bf81d4d8af6d40e86f + + +mulc + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3 + + +include + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_3fd26304af2c2aef8acd2c6ee8269bcd + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_6452a9bf1971d09ce0c2e6a86e350069 + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_733999795ec05e1d47dd8f5326556154 + + + + + + +1 + + + + + +dir_6bb6fdb490c8492b5ec32700edc7ffd3->dir_8223604c15cd95bf81d4d8af6d40e86f + + + + + + +1 + + + + + diff --git a/docs/html/dir_6c1a363c3aada72d365db18498017222.html b/docs/html/dir_6c1a363c3aada72d365db18498017222.html new file mode 100644 index 0000000..157353a --- /dev/null +++ b/docs/html/dir_6c1a363c3aada72d365db18498017222.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
wave_gen.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_6c1a363c3aada72d365db18498017222.js b/docs/html/dir_6c1a363c3aada72d365db18498017222.js new file mode 100644 index 0000000..59b6716 --- /dev/null +++ b/docs/html/dir_6c1a363c3aada72d365db18498017222.js @@ -0,0 +1,4 @@ +var dir_6c1a363c3aada72d365db18498017222 = +[ + [ "wave_gen.h", "wave__gen_8h.html", "wave__gen_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6c1a363c3aada72d365db18498017222_dep.md5 b/docs/html/dir_6c1a363c3aada72d365db18498017222_dep.md5 new file mode 100644 index 0000000..b2de05c --- /dev/null +++ b/docs/html/dir_6c1a363c3aada72d365db18498017222_dep.md5 @@ -0,0 +1 @@ +f00f3f3f9b977aa3b52bae0c7e8db60c \ No newline at end of file diff --git a/docs/html/dir_6c1a363c3aada72d365db18498017222_dep.svg b/docs/html/dir_6c1a363c3aada72d365db18498017222_dep.svg new file mode 100644 index 0000000..b7ac2cf --- /dev/null +++ b/docs/html/dir_6c1a363c3aada72d365db18498017222_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_e6153ef005eb58932a236d4aa6e48d43 + + +wave_gen + + + + + +dir_6c1a363c3aada72d365db18498017222 + + +include + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_6c1a363c3aada72d365db18498017222->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_6c1a363c3aada72d365db18498017222_dep_org.svg b/docs/html/dir_6c1a363c3aada72d365db18498017222_dep_org.svg new file mode 100644 index 0000000..2ec8f47 --- /dev/null +++ b/docs/html/dir_6c1a363c3aada72d365db18498017222_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_e6153ef005eb58932a236d4aa6e48d43 + + +wave_gen + + + + + +dir_6c1a363c3aada72d365db18498017222 + + +include + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_6c1a363c3aada72d365db18498017222->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +1 + + + + + diff --git a/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7.html b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7.html new file mode 100644 index 0000000..0a8f5b4 --- /dev/null +++ b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: b00f000e Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
b00f000e Directory Reference
+
+
+
+Directory dependency graph for b00f000e:
+
+
+
+ + + +

+Directories

 
applications
+
+
+ +
+ + + + diff --git a/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7.js b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7.js new file mode 100644 index 0000000..786e056 --- /dev/null +++ b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7.js @@ -0,0 +1,4 @@ +var dir_6d24da5b1da7789edd0dcd89dc1dbcb7 = +[ + [ "applications", "dir_86cc9db09b207ba858ad95ae6c2160e7.html", "dir_86cc9db09b207ba858ad95ae6c2160e7" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.md5 b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.md5 new file mode 100644 index 0000000..1f8514f --- /dev/null +++ b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.md5 @@ -0,0 +1 @@ +d4255a605571af0b8fe07976444fcfde \ No newline at end of file diff --git a/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.svg b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.svg new file mode 100644 index 0000000..6e561b4 --- /dev/null +++ b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +b00f000e + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + +clusterdir_6d24da5b1da7789edd0dcd89dc1dbcb7 + + + + + + + +dir_6d24da5b1da7789edd0dcd89dc1dbcb7 +b00f000e + + + +dir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_86cc9db09b207ba858ad95ae6c2160e7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +19 + + + + + + + + + + diff --git a/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep_org.svg b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep_org.svg new file mode 100644 index 0000000..45828f1 --- /dev/null +++ b/docs/html/dir_6d24da5b1da7789edd0dcd89dc1dbcb7_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +b00f000e + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + +clusterdir_6d24da5b1da7789edd0dcd89dc1dbcb7 + + + + + + + +dir_6d24da5b1da7789edd0dcd89dc1dbcb7 +b00f000e + + + +dir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_86cc9db09b207ba858ad95ae6c2160e7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +19 + + + + + diff --git a/docs/html/dir_6f0282a56182e11784085c9051410321.html b/docs/html/dir_6f0282a56182e11784085c9051410321.html new file mode 100644 index 0000000..8869e53 --- /dev/null +++ b/docs/html/dir_6f0282a56182e11784085c9051410321.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: dct Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dct Directory Reference
+
+
+
+Directory dependency graph for dct:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_6f0282a56182e11784085c9051410321.js b/docs/html/dir_6f0282a56182e11784085c9051410321.js new file mode 100644 index 0000000..3a978eb --- /dev/null +++ b/docs/html/dir_6f0282a56182e11784085c9051410321.js @@ -0,0 +1,5 @@ +var dir_6f0282a56182e11784085c9051410321 = +[ + [ "float", "dir_377bd9e47fb4c98a811a4c55a1e8babf.html", "dir_377bd9e47fb4c98a811a4c55a1e8babf" ], + [ "include", "dir_3e4712a38c94aeee934d4b83943de42c.html", "dir_3e4712a38c94aeee934d4b83943de42c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6f0282a56182e11784085c9051410321_dep.md5 b/docs/html/dir_6f0282a56182e11784085c9051410321_dep.md5 new file mode 100644 index 0000000..6ca4ea6 --- /dev/null +++ b/docs/html/dir_6f0282a56182e11784085c9051410321_dep.md5 @@ -0,0 +1 @@ +d8d12ac9e098df172735f642f096107d \ No newline at end of file diff --git a/docs/html/dir_6f0282a56182e11784085c9051410321_dep.svg b/docs/html/dir_6f0282a56182e11784085c9051410321_dep.svg new file mode 100644 index 0000000..d0f002a --- /dev/null +++ b/docs/html/dir_6f0282a56182e11784085c9051410321_dep.svg @@ -0,0 +1,146 @@ + + + + + + + + + + + + +dct + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_6f0282a56182e11784085c9051410321 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_6f0282a56182e11784085c9051410321 +dct + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf + + +float + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +3 + + + + + +dir_3e4712a38c94aeee934d4b83943de42c + + +include + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_3e4712a38c94aeee934d4b83943de42c + + + + + + +3 + + + + + +dir_3e4712a38c94aeee934d4b83943de42c->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_6f0282a56182e11784085c9051410321_dep_org.svg b/docs/html/dir_6f0282a56182e11784085c9051410321_dep_org.svg new file mode 100644 index 0000000..81cc4f2 --- /dev/null +++ b/docs/html/dir_6f0282a56182e11784085c9051410321_dep_org.svg @@ -0,0 +1,120 @@ + + + + + + +dct + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_6f0282a56182e11784085c9051410321 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_6f0282a56182e11784085c9051410321 +dct + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf + + +float + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +3 + + + + + +dir_3e4712a38c94aeee934d4b83943de42c + + +include + + + + + +dir_377bd9e47fb4c98a811a4c55a1e8babf->dir_3e4712a38c94aeee934d4b83943de42c + + + + + + +3 + + + + + +dir_3e4712a38c94aeee934d4b83943de42c->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03.html b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03.html new file mode 100644 index 0000000..d9bc246 --- /dev/null +++ b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_mulc_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03.js b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03.js new file mode 100644 index 0000000..e251e7a --- /dev/null +++ b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03.js @@ -0,0 +1,4 @@ +var dir_6fb21038c3f6fdc5673bbe8abfbcbd03 = +[ + [ "dsps_mulc_f32_ansi.c", "dsps__mulc__f32__ansi_8c.html", "dsps__mulc__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.md5 b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.md5 new file mode 100644 index 0000000..00df328 --- /dev/null +++ b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.md5 @@ -0,0 +1 @@ +37480c86e698e7914a0088b10fc64ea1 \ No newline at end of file diff --git a/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.svg b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.svg new file mode 100644 index 0000000..35b6821 --- /dev/null +++ b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521 + + +include + + + + + +dir_6fb21038c3f6fdc5673bbe8abfbcbd03 + + +float + + + + + +dir_6fb21038c3f6fdc5673bbe8abfbcbd03->dir_5ce06cfd77962876b8da27c1fc0c8521 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep_org.svg b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep_org.svg new file mode 100644 index 0000000..cf1e3d8 --- /dev/null +++ b/docs/html/dir_6fb21038c3f6fdc5673bbe8abfbcbd03_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521 + + +include + + + + + +dir_6fb21038c3f6fdc5673bbe8abfbcbd03 + + +float + + + + + +dir_6fb21038c3f6fdc5673bbe8abfbcbd03->dir_5ce06cfd77962876b8da27c1fc0c8521 + + + + + + +1 + + + + + diff --git a/docs/html/dir_7148f79eeb1e919c3881defc22882cd2.html b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2.html new file mode 100644 index 0000000..45de9ba --- /dev/null +++ b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: m5stack_core_s3 Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
m5stack_core_s3 Directory Reference
+
+
+
+Directory dependency graph for m5stack_core_s3:
+
+
+
+ + + +

+Directories

 
apps
+
+
+ +
+ + + + diff --git a/docs/html/dir_7148f79eeb1e919c3881defc22882cd2.js b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2.js new file mode 100644 index 0000000..6f7c5ac --- /dev/null +++ b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2.js @@ -0,0 +1,4 @@ +var dir_7148f79eeb1e919c3881defc22882cd2 = +[ + [ "apps", "dir_2b34506dc3510c22337948b29ab07162.html", "dir_2b34506dc3510c22337948b29ab07162" ] +]; \ No newline at end of file diff --git a/docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep.md5 b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep.md5 new file mode 100644 index 0000000..6ceddb4 --- /dev/null +++ b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep.md5 @@ -0,0 +1 @@ +1e557fd46a1f9b468562fd0e67e811fd \ No newline at end of file diff --git a/docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep.svg b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep.svg new file mode 100644 index 0000000..91f21ce --- /dev/null +++ b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +m5stack_core_s3 + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + +clusterdir_7148f79eeb1e919c3881defc22882cd2 + + + + + + + +dir_7148f79eeb1e919c3881defc22882cd2 +m5stack_core_s3 + + + +dir_2b34506dc3510c22337948b29ab07162 + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2b34506dc3510c22337948b29ab07162->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + + + + + + diff --git a/docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep_org.svg b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep_org.svg new file mode 100644 index 0000000..3de3516 --- /dev/null +++ b/docs/html/dir_7148f79eeb1e919c3881defc22882cd2_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +m5stack_core_s3 + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + +clusterdir_7148f79eeb1e919c3881defc22882cd2 + + + + + + + +dir_7148f79eeb1e919c3881defc22882cd2 +m5stack_core_s3 + + + +dir_2b34506dc3510c22337948b29ab07162 + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2b34506dc3510c22337948b29ab07162->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + diff --git a/docs/html/dir_733999795ec05e1d47dd8f5326556154.html b/docs/html/dir_733999795ec05e1d47dd8f5326556154.html new file mode 100644 index 0000000..5b72168 --- /dev/null +++ b/docs/html/dir_733999795ec05e1d47dd8f5326556154.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: addc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
addc Directory Reference
+
+
+
+Directory dependency graph for addc:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_733999795ec05e1d47dd8f5326556154.js b/docs/html/dir_733999795ec05e1d47dd8f5326556154.js new file mode 100644 index 0000000..abe9aff --- /dev/null +++ b/docs/html/dir_733999795ec05e1d47dd8f5326556154.js @@ -0,0 +1,5 @@ +var dir_733999795ec05e1d47dd8f5326556154 = +[ + [ "float", "dir_76554f5b8bdd77616bd74e5ae12549ad.html", "dir_76554f5b8bdd77616bd74e5ae12549ad" ], + [ "include", "dir_16df77616ac816b7b694d2fa838cb084.html", "dir_16df77616ac816b7b694d2fa838cb084" ] +]; \ No newline at end of file diff --git a/docs/html/dir_733999795ec05e1d47dd8f5326556154_dep.md5 b/docs/html/dir_733999795ec05e1d47dd8f5326556154_dep.md5 new file mode 100644 index 0000000..92cecc4 --- /dev/null +++ b/docs/html/dir_733999795ec05e1d47dd8f5326556154_dep.md5 @@ -0,0 +1 @@ +f8fb13e7d9b2fa28866218c1a386b13e \ No newline at end of file diff --git a/docs/html/dir_733999795ec05e1d47dd8f5326556154_dep.svg b/docs/html/dir_733999795ec05e1d47dd8f5326556154_dep.svg new file mode 100644 index 0000000..a348c1a --- /dev/null +++ b/docs/html/dir_733999795ec05e1d47dd8f5326556154_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +addc + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_733999795ec05e1d47dd8f5326556154 + + + + + + + +dir_733999795ec05e1d47dd8f5326556154 +addc + + + +dir_76554f5b8bdd77616bd74e5ae12549ad + + +float + + + + + +dir_16df77616ac816b7b694d2fa838cb084 + + +include + + + + + +dir_76554f5b8bdd77616bd74e5ae12549ad->dir_16df77616ac816b7b694d2fa838cb084 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_16df77616ac816b7b694d2fa838cb084->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_733999795ec05e1d47dd8f5326556154_dep_org.svg b/docs/html/dir_733999795ec05e1d47dd8f5326556154_dep_org.svg new file mode 100644 index 0000000..61a2e3a --- /dev/null +++ b/docs/html/dir_733999795ec05e1d47dd8f5326556154_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +addc + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_733999795ec05e1d47dd8f5326556154 + + + + + + + +dir_733999795ec05e1d47dd8f5326556154 +addc + + + +dir_76554f5b8bdd77616bd74e5ae12549ad + + +float + + + + + +dir_16df77616ac816b7b694d2fa838cb084 + + +include + + + + + +dir_76554f5b8bdd77616bd74e5ae12549ad->dir_16df77616ac816b7b694d2fa838cb084 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_16df77616ac816b7b694d2fa838cb084->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_762006535547d49f232d31a6fa06d2f9.html b/docs/html/dir_762006535547d49f232d31a6fa06d2f9.html new file mode 100644 index 0000000..9cee3ff --- /dev/null +++ b/docs/html/dir_762006535547d49f232d31a6fa06d2f9.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: lyrat_board_app Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
lyrat_board_app Directory Reference
+
+
+
+Directory dependency graph for lyrat_board_app:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_762006535547d49f232d31a6fa06d2f9.js b/docs/html/dir_762006535547d49f232d31a6fa06d2f9.js new file mode 100644 index 0000000..57dbd89 --- /dev/null +++ b/docs/html/dir_762006535547d49f232d31a6fa06d2f9.js @@ -0,0 +1,4 @@ +var dir_762006535547d49f232d31a6fa06d2f9 = +[ + [ "main", "dir_7ad9ee17700ac0d9180b04f3f3ad7f12.html", "dir_7ad9ee17700ac0d9180b04f3f3ad7f12" ] +]; \ No newline at end of file diff --git a/docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep.md5 b/docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep.md5 new file mode 100644 index 0000000..f2f2abe --- /dev/null +++ b/docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep.md5 @@ -0,0 +1 @@ +1787107b82b85683a95bfe63a4b2ea68 \ No newline at end of file diff --git a/docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep.svg b/docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep.svg new file mode 100644 index 0000000..4381e2c --- /dev/null +++ b/docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +lyrat_board_app + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + +clusterdir_762006535547d49f232d31a6fa06d2f9 + + + + + + + +dir_762006535547d49f232d31a6fa06d2f9 +lyrat_board_app + + + +dir_7ad9ee17700ac0d9180b04f3f3ad7f12 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_7ad9ee17700ac0d9180b04f3f3ad7f12->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep_org.svg b/docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep_org.svg new file mode 100644 index 0000000..fb30026 --- /dev/null +++ b/docs/html/dir_762006535547d49f232d31a6fa06d2f9_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +lyrat_board_app + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + +clusterdir_762006535547d49f232d31a6fa06d2f9 + + + + + + + +dir_762006535547d49f232d31a6fa06d2f9 +lyrat_board_app + + + +dir_7ad9ee17700ac0d9180b04f3f3ad7f12 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_7ad9ee17700ac0d9180b04f3f3ad7f12->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad.html b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad.html new file mode 100644 index 0000000..899bdd8 --- /dev/null +++ b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dspm_addc_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad.js b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad.js new file mode 100644 index 0000000..3dc6569 --- /dev/null +++ b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad.js @@ -0,0 +1,4 @@ +var dir_76554f5b8bdd77616bd74e5ae12549ad = +[ + [ "dspm_addc_f32_ansi.c", "dspm__addc__f32__ansi_8c.html", "dspm__addc__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep.md5 b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep.md5 new file mode 100644 index 0000000..beb06a1 --- /dev/null +++ b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep.md5 @@ -0,0 +1 @@ +11556e776e9425a624ebf91d6472edab \ No newline at end of file diff --git a/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep.svg b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep.svg new file mode 100644 index 0000000..d69b640 --- /dev/null +++ b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_733999795ec05e1d47dd8f5326556154 + + +addc + + + + + +dir_16df77616ac816b7b694d2fa838cb084 + + +include + + + + + +dir_76554f5b8bdd77616bd74e5ae12549ad + + +float + + + + + +dir_76554f5b8bdd77616bd74e5ae12549ad->dir_16df77616ac816b7b694d2fa838cb084 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep_org.svg b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep_org.svg new file mode 100644 index 0000000..3737992 --- /dev/null +++ b/docs/html/dir_76554f5b8bdd77616bd74e5ae12549ad_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_733999795ec05e1d47dd8f5326556154 + + +addc + + + + + +dir_16df77616ac816b7b694d2fa838cb084 + + +include + + + + + +dir_76554f5b8bdd77616bd74e5ae12549ad + + +float + + + + + +dir_76554f5b8bdd77616bd74e5ae12549ad->dir_16df77616ac816b7b694d2fa838cb084 + + + + + + +1 + + + + + diff --git a/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40.html b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40.html new file mode 100644 index 0000000..1a1ca02 --- /dev/null +++ b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_wind_blackman_harris.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40.js b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40.js new file mode 100644 index 0000000..fab1b03 --- /dev/null +++ b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40.js @@ -0,0 +1,4 @@ +var dir_76d6b2a67278bf47ae5e1ac8af0a7d40 = +[ + [ "dsps_wind_blackman_harris.h", "dsps__wind__blackman__harris_8h.html", "dsps__wind__blackman__harris_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.md5 b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.md5 new file mode 100644 index 0000000..40a1e22 --- /dev/null +++ b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.md5 @@ -0,0 +1 @@ +87efdb189b69f365eada9fcabeb2385e \ No newline at end of file diff --git a/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.svg b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.svg new file mode 100644 index 0000000..387b4d5 --- /dev/null +++ b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +include + +clusterdir_3d8f91d165c61940606cc67fb2b386a2 + + +blackman_harris + + + + + +dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + +include + + + + + + + + + + diff --git a/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep_org.svg b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep_org.svg new file mode 100644 index 0000000..00bce19 --- /dev/null +++ b/docs/html/dir_76d6b2a67278bf47ae5e1ac8af0a7d40_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +include + +clusterdir_3d8f91d165c61940606cc67fb2b386a2 + + +blackman_harris + + + + + +dir_76d6b2a67278bf47ae5e1ac8af0a7d40 + + +include + + + + + diff --git a/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12.html b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12.html new file mode 100644 index 0000000..937ba17 --- /dev/null +++ b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
audio_amp_main.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12.js b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12.js new file mode 100644 index 0000000..552749b --- /dev/null +++ b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12.js @@ -0,0 +1,4 @@ +var dir_7ad9ee17700ac0d9180b04f3f3ad7f12 = +[ + [ "audio_amp_main.c", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.md5 b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.md5 new file mode 100644 index 0000000..4fb2614 --- /dev/null +++ b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.md5 @@ -0,0 +1 @@ +9700aa5140a7e26fb4189c4ca2673af3 \ No newline at end of file diff --git a/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.svg b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.svg new file mode 100644 index 0000000..30ec134 --- /dev/null +++ b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_762006535547d49f232d31a6fa06d2f9 + + +lyrat_board_app + + + + + +dir_7ad9ee17700ac0d9180b04f3f3ad7f12 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_7ad9ee17700ac0d9180b04f3f3ad7f12->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep_org.svg b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep_org.svg new file mode 100644 index 0000000..e4a1dd0 --- /dev/null +++ b/docs/html/dir_7ad9ee17700ac0d9180b04f3f3ad7f12_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_762006535547d49f232d31a6fa06d2f9 + + +lyrat_board_app + + + + + +dir_7ad9ee17700ac0d9180b04f3f3ad7f12 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_7ad9ee17700ac0d9180b04f3f3ad7f12->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_7b3674b38c8d8970266e0a050a170acc.html b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc.html new file mode 100644 index 0000000..fbe56ea --- /dev/null +++ b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: resampler Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
resampler Directory Reference
+
+
+
+Directory dependency graph for resampler:
+
+
+
+ + + + +

+Files

 
dsps_resampler_mr.c
 
dsps_resampler_ph.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_7b3674b38c8d8970266e0a050a170acc.js b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc.js new file mode 100644 index 0000000..a6b7b8f --- /dev/null +++ b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc.js @@ -0,0 +1,5 @@ +var dir_7b3674b38c8d8970266e0a050a170acc = +[ + [ "dsps_resampler_mr.c", "dsps__resampler__mr_8c.html", "dsps__resampler__mr_8c" ], + [ "dsps_resampler_ph.c", "dsps__resampler__ph_8c.html", "dsps__resampler__ph_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep.md5 b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep.md5 new file mode 100644 index 0000000..364e652 --- /dev/null +++ b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep.md5 @@ -0,0 +1 @@ +a485f0ff83344f4f0ae007fd3142462e \ No newline at end of file diff --git a/docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep.svg b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep.svg new file mode 100644 index 0000000..06e17a4 --- /dev/null +++ b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +resampler + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_7b3674b38c8d8970266e0a050a170acc + + +resampler + + + + + +dir_7b3674b38c8d8970266e0a050a170acc->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep_org.svg b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep_org.svg new file mode 100644 index 0000000..f516a4e --- /dev/null +++ b/docs/html/dir_7b3674b38c8d8970266e0a050a170acc_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +resampler + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_7b3674b38c8d8970266e0a050a170acc + + +resampler + + + + + +dir_7b3674b38c8d8970266e0a050a170acc->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +2 + + + + + diff --git a/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10.html b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10.html new file mode 100644 index 0000000..114510b --- /dev/null +++ b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: espressif__esp-dsp Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
espressif__esp-dsp Directory Reference
+
+
+
+Directory dependency graph for espressif__esp-dsp:
+
+
+
+ + + + + +

+Directories

 
applications
 
external_examples
 
modules
+
+
+ +
+ + + + diff --git a/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10.js b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10.js new file mode 100644 index 0000000..4302b8a --- /dev/null +++ b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10.js @@ -0,0 +1,6 @@ +var dir_7b64b14aeba8b5bbb3841d17f1f0cd10 = +[ + [ "applications", "dir_e20383be2aa1cc8db7287a474982598e.html", "dir_e20383be2aa1cc8db7287a474982598e" ], + [ "external_examples", "dir_5a9612cb5743a88a5354e5e317c96db5.html", "dir_5a9612cb5743a88a5354e5e317c96db5" ], + [ "modules", "dir_1a94785b4fd07fa9f86295c704ab286b.html", "dir_1a94785b4fd07fa9f86295c704ab286b" ] +]; \ No newline at end of file diff --git a/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.md5 b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.md5 new file mode 100644 index 0000000..1926272 --- /dev/null +++ b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.md5 @@ -0,0 +1 @@ +ca29076233e7bf6a9407357f2c53404c \ No newline at end of file diff --git a/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.svg b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.svg new file mode 100644 index 0000000..0e9c457 --- /dev/null +++ b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +espressif__esp-dsp + +clusterdir_409f97388efe006bc3438b95e9edef48 + + +components + + + + +clusterdir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 +espressif__esp-dsp + + + +dir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_e20383be2aa1cc8db7287a474982598e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +19 + + + + + +dir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + + +dir_5a9612cb5743a88a5354e5e317c96db5->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +33 + + + + + + + + + + diff --git a/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep_org.svg b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep_org.svg new file mode 100644 index 0000000..a8f1a9a --- /dev/null +++ b/docs/html/dir_7b64b14aeba8b5bbb3841d17f1f0cd10_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +espressif__esp-dsp + +clusterdir_409f97388efe006bc3438b95e9edef48 + + +components + + + + +clusterdir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 +espressif__esp-dsp + + + +dir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_e20383be2aa1cc8db7287a474982598e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +19 + + + + + +dir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + + +dir_5a9612cb5743a88a5354e5e317c96db5->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +33 + + + + + diff --git a/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.html b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.html new file mode 100644 index 0000000..ddcb02b --- /dev/null +++ b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: sqrt Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
sqrt Directory Reference
+
+
+
+Directory dependency graph for sqrt:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.js b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.js new file mode 100644 index 0000000..a9ee711 --- /dev/null +++ b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.js @@ -0,0 +1,5 @@ +var dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 = +[ + [ "float", "dir_8d588244d360fc31a07155830aed54ff.html", "dir_8d588244d360fc31a07155830aed54ff" ], + [ "include", "dir_0d2a08bbb77a87cf54ef0513a3b6385f.html", "dir_0d2a08bbb77a87cf54ef0513a3b6385f" ] +]; \ No newline at end of file diff --git a/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.md5 b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.md5 new file mode 100644 index 0000000..679743d --- /dev/null +++ b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.md5 @@ -0,0 +1 @@ +6b9dc7bab4289d81a6041404fead4c37 \ No newline at end of file diff --git a/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.svg b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.svg new file mode 100644 index 0000000..54fd274 --- /dev/null +++ b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +sqrt + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + + + + + + +dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 +sqrt + + + +dir_8d588244d360fc31a07155830aed54ff + + +float + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f + + +include + + + + + +dir_8d588244d360fc31a07155830aed54ff->dir_0d2a08bbb77a87cf54ef0513a3b6385f + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep_org.svg b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep_org.svg new file mode 100644 index 0000000..40a8927 --- /dev/null +++ b/docs/html/dir_7ccf0c48f6a40a31b8e32f58e6b3bd59_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +sqrt + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + + + + + + +dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 +sqrt + + + +dir_8d588244d360fc31a07155830aed54ff + + +float + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f + + +include + + + + + +dir_8d588244d360fc31a07155830aed54ff->dir_0d2a08bbb77a87cf54ef0513a3b6385f + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1.html b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1.html new file mode 100644 index 0000000..a074a6b --- /dev/null +++ b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: sfdr Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
sfdr Directory Reference
+
+
+
+Directory dependency graph for sfdr:
+
+
+
+ + + +

+Directories

 
float
+
+
+ +
+ + + + diff --git a/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1.js b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1.js new file mode 100644 index 0000000..a2c2ca1 --- /dev/null +++ b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1.js @@ -0,0 +1,4 @@ +var dir_7e3beb66e1044e6769774984c2d38ab1 = +[ + [ "float", "dir_5c43b1cda211d87979dcbe28c41ba00d.html", "dir_5c43b1cda211d87979dcbe28c41ba00d" ] +]; \ No newline at end of file diff --git a/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep.md5 b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep.md5 new file mode 100644 index 0000000..a733317 --- /dev/null +++ b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep.md5 @@ -0,0 +1 @@ +c7b67f803a433525ff7f21df57c7fa91 \ No newline at end of file diff --git a/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep.svg b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep.svg new file mode 100644 index 0000000..a11fc52 --- /dev/null +++ b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + +sfdr + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + +clusterdir_7e3beb66e1044e6769774984c2d38ab1 + + + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1 +sfdr + + + +dir_5c43b1cda211d87979dcbe28c41ba00d + + +float + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep_org.svg b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep_org.svg new file mode 100644 index 0000000..43c5b03 --- /dev/null +++ b/docs/html/dir_7e3beb66e1044e6769774984c2d38ab1_dep_org.svg @@ -0,0 +1,107 @@ + + + + + + +sfdr + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + +clusterdir_7e3beb66e1044e6769774984c2d38ab1 + + + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_7e3beb66e1044e6769774984c2d38ab1 +sfdr + + + +dir_5c43b1cda211d87979dcbe28c41ba00d + + +float + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_5c43b1cda211d87979dcbe28c41ba00d->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + diff --git a/docs/html/dir_80d86c895ffa96f241d1165825d40406.html b/docs/html/dir_80d86c895ffa96f241d1165825d40406.html new file mode 100644 index 0000000..8070f10 --- /dev/null +++ b/docs/html/dir_80d86c895ffa96f241d1165825d40406.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_wind_hann_f32.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_80d86c895ffa96f241d1165825d40406.js b/docs/html/dir_80d86c895ffa96f241d1165825d40406.js new file mode 100644 index 0000000..1d2cad3 --- /dev/null +++ b/docs/html/dir_80d86c895ffa96f241d1165825d40406.js @@ -0,0 +1,4 @@ +var dir_80d86c895ffa96f241d1165825d40406 = +[ + [ "dsps_wind_hann_f32.c", "dsps__wind__hann__f32_8c.html", "dsps__wind__hann__f32_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_80d86c895ffa96f241d1165825d40406_dep.md5 b/docs/html/dir_80d86c895ffa96f241d1165825d40406_dep.md5 new file mode 100644 index 0000000..ceb6d3f --- /dev/null +++ b/docs/html/dir_80d86c895ffa96f241d1165825d40406_dep.md5 @@ -0,0 +1 @@ +8b39d39665ea5587db7177e55c00a7e5 \ No newline at end of file diff --git a/docs/html/dir_80d86c895ffa96f241d1165825d40406_dep.svg b/docs/html/dir_80d86c895ffa96f241d1165825d40406_dep.svg new file mode 100644 index 0000000..52e6158 --- /dev/null +++ b/docs/html/dir_80d86c895ffa96f241d1165825d40406_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_921d70230c427007d8b7307843a5136d + + +hann + + + + + +dir_b64675f983c0644af3c7dd36b6272b9d + + +include + + + + + +dir_80d86c895ffa96f241d1165825d40406 + + +float + + + + + +dir_80d86c895ffa96f241d1165825d40406->dir_b64675f983c0644af3c7dd36b6272b9d + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_80d86c895ffa96f241d1165825d40406_dep_org.svg b/docs/html/dir_80d86c895ffa96f241d1165825d40406_dep_org.svg new file mode 100644 index 0000000..4f954fc --- /dev/null +++ b/docs/html/dir_80d86c895ffa96f241d1165825d40406_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_921d70230c427007d8b7307843a5136d + + +hann + + + + + +dir_b64675f983c0644af3c7dd36b6272b9d + + +include + + + + + +dir_80d86c895ffa96f241d1165825d40406 + + +float + + + + + +dir_80d86c895ffa96f241d1165825d40406->dir_b64675f983c0644af3c7dd36b6272b9d + + + + + + +1 + + + + + diff --git a/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f.html b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f.html new file mode 100644 index 0000000..5bfe484 --- /dev/null +++ b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: mulc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mulc Directory Reference
+
+
+
+Directory dependency graph for mulc:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f.js b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f.js new file mode 100644 index 0000000..bfd4fff --- /dev/null +++ b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f.js @@ -0,0 +1,5 @@ +var dir_8223604c15cd95bf81d4d8af6d40e86f = +[ + [ "float", "dir_9068b9f7017b328778a01ee864e105ae.html", "dir_9068b9f7017b328778a01ee864e105ae" ], + [ "include", "dir_91bbb9ae7da8dd492f40f49dcee93803.html", "dir_91bbb9ae7da8dd492f40f49dcee93803" ] +]; \ No newline at end of file diff --git a/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep.md5 b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep.md5 new file mode 100644 index 0000000..00bba6a --- /dev/null +++ b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep.md5 @@ -0,0 +1 @@ +a54018df0578262d9dea2f64304c5d68 \ No newline at end of file diff --git a/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep.svg b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep.svg new file mode 100644 index 0000000..a1bf7a9 --- /dev/null +++ b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +mulc + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_8223604c15cd95bf81d4d8af6d40e86f + + + + + + + +dir_8223604c15cd95bf81d4d8af6d40e86f +mulc + + + +dir_9068b9f7017b328778a01ee864e105ae + + +float + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803 + + +include + + + + + +dir_9068b9f7017b328778a01ee864e105ae->dir_91bbb9ae7da8dd492f40f49dcee93803 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep_org.svg b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep_org.svg new file mode 100644 index 0000000..4aa6006 --- /dev/null +++ b/docs/html/dir_8223604c15cd95bf81d4d8af6d40e86f_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +mulc + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_8223604c15cd95bf81d4d8af6d40e86f + + + + + + + +dir_8223604c15cd95bf81d4d8af6d40e86f +mulc + + + +dir_9068b9f7017b328778a01ee864e105ae + + +float + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803 + + +include + + + + + +dir_9068b9f7017b328778a01ee864e105ae->dir_91bbb9ae7da8dd492f40f49dcee93803 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c.html b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c.html new file mode 100644 index 0000000..db1c534 --- /dev/null +++ b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dspm_add_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c.js b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c.js new file mode 100644 index 0000000..58f8b44 --- /dev/null +++ b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c.js @@ -0,0 +1,4 @@ +var dir_8344dc8b4c48bff4b3b7e252d5a5e15c = +[ + [ "dspm_add_f32_ansi.c", "dspm__add__f32__ansi_8c.html", "dspm__add__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.md5 b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.md5 new file mode 100644 index 0000000..d6594f7 --- /dev/null +++ b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.md5 @@ -0,0 +1 @@ +cdf07184f5a03d10feddaebe9bdad7ee \ No newline at end of file diff --git a/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.svg b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.svg new file mode 100644 index 0000000..db44ef1 --- /dev/null +++ b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_3fd26304af2c2aef8acd2c6ee8269bcd + + +add + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80 + + +include + + + + + +dir_8344dc8b4c48bff4b3b7e252d5a5e15c + + +float + + + + + +dir_8344dc8b4c48bff4b3b7e252d5a5e15c->dir_50d20af8260b5fd9fd6f487ec1786b80 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep_org.svg b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep_org.svg new file mode 100644 index 0000000..675063a --- /dev/null +++ b/docs/html/dir_8344dc8b4c48bff4b3b7e252d5a5e15c_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_3fd26304af2c2aef8acd2c6ee8269bcd + + +add + + + + + +dir_50d20af8260b5fd9fd6f487ec1786b80 + + +include + + + + + +dir_8344dc8b4c48bff4b3b7e252d5a5e15c + + +float + + + + + +dir_8344dc8b4c48bff4b3b7e252d5a5e15c->dir_50d20af8260b5fd9fd6f487ec1786b80 + + + + + + +1 + + + + + diff --git a/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7.html b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7.html new file mode 100644 index 0000000..7545c15 --- /dev/null +++ b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: applications Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications Directory Reference
+
+
+
+Directory dependency graph for applications:
+
+
+
+ + + + + + +

+Directories

 
azure_board_apps
 
lyrat_board_app
 
m5stack_core_s3
 
spectrum_box_lite
+
+
+ +
+ + + + diff --git a/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7.js b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7.js new file mode 100644 index 0000000..5790629 --- /dev/null +++ b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7.js @@ -0,0 +1,7 @@ +var dir_86cc9db09b207ba858ad95ae6c2160e7 = +[ + [ "azure_board_apps", "dir_fc647d5b5fee47835a64d22ac5da01fe.html", "dir_fc647d5b5fee47835a64d22ac5da01fe" ], + [ "lyrat_board_app", "dir_762006535547d49f232d31a6fa06d2f9.html", "dir_762006535547d49f232d31a6fa06d2f9" ], + [ "m5stack_core_s3", "dir_7148f79eeb1e919c3881defc22882cd2.html", "dir_7148f79eeb1e919c3881defc22882cd2" ], + [ "spectrum_box_lite", "dir_4e5ef387738f2f40c2e47c11e8e98eee.html", "dir_4e5ef387738f2f40c2e47c11e8e98eee" ] +]; \ No newline at end of file diff --git a/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep.md5 b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep.md5 new file mode 100644 index 0000000..8531490 --- /dev/null +++ b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep.md5 @@ -0,0 +1 @@ +9aa3317631c5ef35f2aabe3de3fac6ea \ No newline at end of file diff --git a/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep.svg b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep.svg new file mode 100644 index 0000000..bdbb510 --- /dev/null +++ b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +applications + +clusterdir_6d24da5b1da7789edd0dcd89dc1dbcb7 + + +b00f000e + + + + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + + + + + + +dir_86cc9db09b207ba858ad95ae6c2160e7 +applications + + + +dir_fc647d5b5fee47835a64d22ac5da01fe + + +azure_board_apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_fc647d5b5fee47835a64d22ac5da01fe->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + +dir_762006535547d49f232d31a6fa06d2f9 + + +lyrat_board_app + + + + + +dir_762006535547d49f232d31a6fa06d2f9->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_7148f79eeb1e919c3881defc22882cd2 + + +m5stack_core_s3 + + + + + +dir_7148f79eeb1e919c3881defc22882cd2->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + +dir_4e5ef387738f2f40c2e47c11e8e98eee + + +spectrum_box_lite + + + + + +dir_4e5ef387738f2f40c2e47c11e8e98eee->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep_org.svg b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep_org.svg new file mode 100644 index 0000000..44cc3b4 --- /dev/null +++ b/docs/html/dir_86cc9db09b207ba858ad95ae6c2160e7_dep_org.svg @@ -0,0 +1,129 @@ + + + + + + +applications + +clusterdir_6d24da5b1da7789edd0dcd89dc1dbcb7 + + +b00f000e + + + + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + + + + + + +dir_86cc9db09b207ba858ad95ae6c2160e7 +applications + + + +dir_fc647d5b5fee47835a64d22ac5da01fe + + +azure_board_apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_fc647d5b5fee47835a64d22ac5da01fe->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + +dir_762006535547d49f232d31a6fa06d2f9 + + +lyrat_board_app + + + + + +dir_762006535547d49f232d31a6fa06d2f9->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_7148f79eeb1e919c3881defc22882cd2 + + +m5stack_core_s3 + + + + + +dir_7148f79eeb1e919c3881defc22882cd2->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + +dir_4e5ef387738f2f40c2e47c11e8e98eee + + +spectrum_box_lite + + + + + +dir_4e5ef387738f2f40c2e47c11e8e98eee->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_87c389725da715c492868deacfc59ee9.html b/docs/html/dir_87c389725da715c492868deacfc59ee9.html new file mode 100644 index 0000000..a560796 --- /dev/null +++ b/docs/html/dir_87c389725da715c492868deacfc59ee9.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: view Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
view Directory Reference
+
+
+
+Directory dependency graph for view:
+
+
+
+ + + +

+Files

 
dsps_view.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_87c389725da715c492868deacfc59ee9.js b/docs/html/dir_87c389725da715c492868deacfc59ee9.js new file mode 100644 index 0000000..f6fbc2f --- /dev/null +++ b/docs/html/dir_87c389725da715c492868deacfc59ee9.js @@ -0,0 +1,4 @@ +var dir_87c389725da715c492868deacfc59ee9 = +[ + [ "dsps_view.cpp", "dsps__view_8cpp.html", "dsps__view_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_87c389725da715c492868deacfc59ee9_dep.md5 b/docs/html/dir_87c389725da715c492868deacfc59ee9_dep.md5 new file mode 100644 index 0000000..c463818 --- /dev/null +++ b/docs/html/dir_87c389725da715c492868deacfc59ee9_dep.md5 @@ -0,0 +1 @@ +84448d6784008bf11ad6073cfcdae7b1 \ No newline at end of file diff --git a/docs/html/dir_87c389725da715c492868deacfc59ee9_dep.svg b/docs/html/dir_87c389725da715c492868deacfc59ee9_dep.svg new file mode 100644 index 0000000..2a9c26b --- /dev/null +++ b/docs/html/dir_87c389725da715c492868deacfc59ee9_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +view + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_87c389725da715c492868deacfc59ee9 + + +view + + + + + +dir_87c389725da715c492868deacfc59ee9->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_87c389725da715c492868deacfc59ee9->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_87c389725da715c492868deacfc59ee9_dep_org.svg b/docs/html/dir_87c389725da715c492868deacfc59ee9_dep_org.svg new file mode 100644 index 0000000..7383388 --- /dev/null +++ b/docs/html/dir_87c389725da715c492868deacfc59ee9_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +view + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_87c389725da715c492868deacfc59ee9 + + +view + + + + + +dir_87c389725da715c492868deacfc59ee9->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_87c389725da715c492868deacfc59ee9->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_88263a19b39727c9a1698c6c2734b927.html b/docs/html/dir_88263a19b39727c9a1698c6c2734b927.html new file mode 100644 index 0000000..2edf49e --- /dev/null +++ b/docs/html/dir_88263a19b39727c9a1698c6c2734b927.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_sub_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_88263a19b39727c9a1698c6c2734b927.js b/docs/html/dir_88263a19b39727c9a1698c6c2734b927.js new file mode 100644 index 0000000..ad6a9b0 --- /dev/null +++ b/docs/html/dir_88263a19b39727c9a1698c6c2734b927.js @@ -0,0 +1,4 @@ +var dir_88263a19b39727c9a1698c6c2734b927 = +[ + [ "dsps_sub_f32_ansi.c", "dsps__sub__f32__ansi_8c.html", "dsps__sub__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep.md5 b/docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep.md5 new file mode 100644 index 0000000..754d3c5 --- /dev/null +++ b/docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep.md5 @@ -0,0 +1 @@ +ec22f657552d176328df75ced327c762 \ No newline at end of file diff --git a/docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep.svg b/docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep.svg new file mode 100644 index 0000000..8aeb6cc --- /dev/null +++ b/docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906 + + +include + + + + + +dir_88263a19b39727c9a1698c6c2734b927 + + +float + + + + + +dir_88263a19b39727c9a1698c6c2734b927->dir_2b4b44aa9ff3905b789a45cda1fd0906 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep_org.svg b/docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep_org.svg new file mode 100644 index 0000000..077fe8e --- /dev/null +++ b/docs/html/dir_88263a19b39727c9a1698c6c2734b927_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906 + + +include + + + + + +dir_88263a19b39727c9a1698c6c2734b927 + + +float + + + + + +dir_88263a19b39727c9a1698c6c2734b927->dir_2b4b44aa9ff3905b789a45cda1fd0906 + + + + + + +1 + + + + + diff --git a/docs/html/dir_89e58584540eba160416052686348f24.html b/docs/html/dir_89e58584540eba160416052686348f24.html new file mode 100644 index 0000000..bedf1f6 --- /dev/null +++ b/docs/html/dir_89e58584540eba160416052686348f24.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: templates Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
templates Directory Reference
+
+
+
+Directory dependency graph for templates:
+
+
+
+ + + + +

+Files

 
template_img_to_3d.c
 
template_img_to_3d.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_89e58584540eba160416052686348f24.js b/docs/html/dir_89e58584540eba160416052686348f24.js new file mode 100644 index 0000000..a893a10 --- /dev/null +++ b/docs/html/dir_89e58584540eba160416052686348f24.js @@ -0,0 +1,5 @@ +var dir_89e58584540eba160416052686348f24 = +[ + [ "template_img_to_3d.c", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tf467054661c3b740731be32a4a2294d4.html", null ], + [ "template_img_to_3d.h", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8" ] +]; \ No newline at end of file diff --git a/docs/html/dir_89e58584540eba160416052686348f24_dep.md5 b/docs/html/dir_89e58584540eba160416052686348f24_dep.md5 new file mode 100644 index 0000000..dc2947f --- /dev/null +++ b/docs/html/dir_89e58584540eba160416052686348f24_dep.md5 @@ -0,0 +1 @@ +6a1cb2e37deda9c4e1e22643b837a793 \ No newline at end of file diff --git a/docs/html/dir_89e58584540eba160416052686348f24_dep.svg b/docs/html/dir_89e58584540eba160416052686348f24_dep.svg new file mode 100644 index 0000000..3a28aa4 --- /dev/null +++ b/docs/html/dir_89e58584540eba160416052686348f24_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +templates + +clusterdir_b919e33db9942c3e712aefd750376bac + + +img_to_3d_matrix + + + + + +dir_89e58584540eba160416052686348f24 + + +templates + + + + + + + + + + diff --git a/docs/html/dir_89e58584540eba160416052686348f24_dep_org.svg b/docs/html/dir_89e58584540eba160416052686348f24_dep_org.svg new file mode 100644 index 0000000..02c0441 --- /dev/null +++ b/docs/html/dir_89e58584540eba160416052686348f24_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +templates + +clusterdir_b919e33db9942c3e712aefd750376bac + + +img_to_3d_matrix + + + + + +dir_89e58584540eba160416052686348f24 + + +templates + + + + + diff --git a/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7.html b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7.html new file mode 100644 index 0000000..82a04f8 --- /dev/null +++ b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
3d_graphics_demo.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7.js b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7.js new file mode 100644 index 0000000..a7fb00c --- /dev/null +++ b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7.js @@ -0,0 +1,4 @@ +var dir_8b8499bbd42fd5ef51b6750e8611bcb7 = +[ + [ "3d_graphics_demo.cpp", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep.md5 b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep.md5 new file mode 100644 index 0000000..02c2c9d --- /dev/null +++ b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep.md5 @@ -0,0 +1 @@ +4f7fb0e360bcf3be9f1bc7536641c4c7 \ No newline at end of file diff --git a/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep.svg b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep.svg new file mode 100644 index 0000000..2e473f3 --- /dev/null +++ b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_02308b8e45679f69b2b2822872449adb + + +3d_graphics + + + + + +dir_8b8499bbd42fd5ef51b6750e8611bcb7 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_8b8499bbd42fd5ef51b6750e8611bcb7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep_org.svg b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep_org.svg new file mode 100644 index 0000000..a14eb84 --- /dev/null +++ b/docs/html/dir_8b8499bbd42fd5ef51b6750e8611bcb7_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_02308b8e45679f69b2b2822872449adb + + +3d_graphics + + + + + +dir_8b8499bbd42fd5ef51b6750e8611bcb7 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_8b8499bbd42fd5ef51b6750e8611bcb7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_8d588244d360fc31a07155830aed54ff.html b/docs/html/dir_8d588244d360fc31a07155830aed54ff.html new file mode 100644 index 0000000..2f77b6c --- /dev/null +++ b/docs/html/dir_8d588244d360fc31a07155830aed54ff.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_sqrt_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_8d588244d360fc31a07155830aed54ff.js b/docs/html/dir_8d588244d360fc31a07155830aed54ff.js new file mode 100644 index 0000000..22830b5 --- /dev/null +++ b/docs/html/dir_8d588244d360fc31a07155830aed54ff.js @@ -0,0 +1,4 @@ +var dir_8d588244d360fc31a07155830aed54ff = +[ + [ "dsps_sqrt_f32_ansi.c", "dsps__sqrt__f32__ansi_8c.html", "dsps__sqrt__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_8d588244d360fc31a07155830aed54ff_dep.md5 b/docs/html/dir_8d588244d360fc31a07155830aed54ff_dep.md5 new file mode 100644 index 0000000..b3fba30 --- /dev/null +++ b/docs/html/dir_8d588244d360fc31a07155830aed54ff_dep.md5 @@ -0,0 +1 @@ +2a5d72b049e807fa49c2d28cfbafb4f3 \ No newline at end of file diff --git a/docs/html/dir_8d588244d360fc31a07155830aed54ff_dep.svg b/docs/html/dir_8d588244d360fc31a07155830aed54ff_dep.svg new file mode 100644 index 0000000..11283a7 --- /dev/null +++ b/docs/html/dir_8d588244d360fc31a07155830aed54ff_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + +sqrt + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f + + +include + + + + + +dir_8d588244d360fc31a07155830aed54ff + + +float + + + + + +dir_8d588244d360fc31a07155830aed54ff->dir_0d2a08bbb77a87cf54ef0513a3b6385f + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_8d588244d360fc31a07155830aed54ff_dep_org.svg b/docs/html/dir_8d588244d360fc31a07155830aed54ff_dep_org.svg new file mode 100644 index 0000000..15fa09b --- /dev/null +++ b/docs/html/dir_8d588244d360fc31a07155830aed54ff_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + +sqrt + + + + + +dir_0d2a08bbb77a87cf54ef0513a3b6385f + + +include + + + + + +dir_8d588244d360fc31a07155830aed54ff + + +float + + + + + +dir_8d588244d360fc31a07155830aed54ff->dir_0d2a08bbb77a87cf54ef0513a3b6385f + + + + + + +1 + + + + + diff --git a/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6.html b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6.html new file mode 100644 index 0000000..86029b3 --- /dev/null +++ b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + + +

+Files

 
3d_graphics_demo.cpp
 
init_display.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6.js b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6.js new file mode 100644 index 0000000..7eac38b --- /dev/null +++ b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6.js @@ -0,0 +1,5 @@ +var dir_8ee5fae4fc8aa1304b69487a7107e7d6 = +[ + [ "3d_graphics_demo.cpp", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp" ], + [ "init_display.c", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html", "applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep.md5 b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep.md5 new file mode 100644 index 0000000..07fad81 --- /dev/null +++ b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep.md5 @@ -0,0 +1 @@ +070723a29e641fd8a7be79f064e05a0a \ No newline at end of file diff --git a/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep.svg b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep.svg new file mode 100644 index 0000000..66f4d7e --- /dev/null +++ b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_659a621b8518330e2405891a2cbe2de4 + + +3d_graphics + + + + + +dir_8ee5fae4fc8aa1304b69487a7107e7d6 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_8ee5fae4fc8aa1304b69487a7107e7d6->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep_org.svg b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep_org.svg new file mode 100644 index 0000000..25f66a4 --- /dev/null +++ b/docs/html/dir_8ee5fae4fc8aa1304b69487a7107e7d6_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_659a621b8518330e2405891a2cbe2de4 + + +3d_graphics + + + + + +dir_8ee5fae4fc8aa1304b69487a7107e7d6 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_8ee5fae4fc8aa1304b69487a7107e7d6->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + diff --git a/docs/html/dir_9068b9f7017b328778a01ee864e105ae.html b/docs/html/dir_9068b9f7017b328778a01ee864e105ae.html new file mode 100644 index 0000000..c16f481 --- /dev/null +++ b/docs/html/dir_9068b9f7017b328778a01ee864e105ae.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dspm_mulc_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_9068b9f7017b328778a01ee864e105ae.js b/docs/html/dir_9068b9f7017b328778a01ee864e105ae.js new file mode 100644 index 0000000..5ccbbc3 --- /dev/null +++ b/docs/html/dir_9068b9f7017b328778a01ee864e105ae.js @@ -0,0 +1,4 @@ +var dir_9068b9f7017b328778a01ee864e105ae = +[ + [ "dspm_mulc_f32_ansi.c", "dspm__mulc__f32__ansi_8c.html", "dspm__mulc__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep.md5 b/docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep.md5 new file mode 100644 index 0000000..1b816a9 --- /dev/null +++ b/docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep.md5 @@ -0,0 +1 @@ +372490d3f56bd859503a58a473ade752 \ No newline at end of file diff --git a/docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep.svg b/docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep.svg new file mode 100644 index 0000000..87ef972 --- /dev/null +++ b/docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_8223604c15cd95bf81d4d8af6d40e86f + + +mulc + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803 + + +include + + + + + +dir_9068b9f7017b328778a01ee864e105ae + + +float + + + + + +dir_9068b9f7017b328778a01ee864e105ae->dir_91bbb9ae7da8dd492f40f49dcee93803 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep_org.svg b/docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep_org.svg new file mode 100644 index 0000000..4a5fd83 --- /dev/null +++ b/docs/html/dir_9068b9f7017b328778a01ee864e105ae_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_8223604c15cd95bf81d4d8af6d40e86f + + +mulc + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803 + + +include + + + + + +dir_9068b9f7017b328778a01ee864e105ae + + +float + + + + + +dir_9068b9f7017b328778a01ee864e105ae->dir_91bbb9ae7da8dd492f40f49dcee93803 + + + + + + +1 + + + + + diff --git a/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0.html b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0.html new file mode 100644 index 0000000..6911fe4 --- /dev/null +++ b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0.html @@ -0,0 +1,128 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + + + + + + +

+Files

 
dsps_fir_f32_ansi.c
 
dsps_fir_init_f32.c
 
dsps_fird_f32_ansi.c
 
dsps_fird_init_f32.c
 
dsps_firmr_f32_ansi.c
 
dsps_firmr_init_f32.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0.js b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0.js new file mode 100644 index 0000000..9fc215c --- /dev/null +++ b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0.js @@ -0,0 +1,9 @@ +var dir_91518133c87f157d4a81c3f6c0b097d0 = +[ + [ "dsps_fir_f32_ansi.c", "dsps__fir__f32__ansi_8c.html", "dsps__fir__f32__ansi_8c" ], + [ "dsps_fir_init_f32.c", "dsps__fir__init__f32_8c.html", "dsps__fir__init__f32_8c" ], + [ "dsps_fird_f32_ansi.c", "dsps__fird__f32__ansi_8c.html", "dsps__fird__f32__ansi_8c" ], + [ "dsps_fird_init_f32.c", "dsps__fird__init__f32_8c.html", "dsps__fird__init__f32_8c" ], + [ "dsps_firmr_f32_ansi.c", "dsps__firmr__f32__ansi_8c.html", "dsps__firmr__f32__ansi_8c" ], + [ "dsps_firmr_init_f32.c", "dsps__firmr__init__f32_8c.html", "dsps__firmr__init__f32_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep.md5 b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep.md5 new file mode 100644 index 0000000..5a98b6d --- /dev/null +++ b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep.md5 @@ -0,0 +1 @@ +34c40f25e4d476af19acc3ffe7345513 \ No newline at end of file diff --git a/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep.svg b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep.svg new file mode 100644 index 0000000..d70734d --- /dev/null +++ b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +float + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0 + + +float + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +6 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + + + + + + diff --git a/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep_org.svg b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep_org.svg new file mode 100644 index 0000000..f8a283b --- /dev/null +++ b/docs/html/dir_91518133c87f157d4a81c3f6c0b097d0_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +float + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0 + + +float + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +6 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_91518133c87f157d4a81c3f6c0b097d0->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + diff --git a/docs/html/dir_91943268b81177f3c28b334e969dc816.html b/docs/html/dir_91943268b81177f3c28b334e969dc816.html new file mode 100644 index 0000000..8f0beac --- /dev/null +++ b/docs/html/dir_91943268b81177f3c28b334e969dc816.html @@ -0,0 +1,128 @@ + + + + + + + +ESP-IDF Firmware: src Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
src Directory Reference
+
+
+
+Directory dependency graph for src:
+
+
+
+ + + + + + + + +

+Files

 
led_strip_api.c
 
led_strip_rmt_dev.c
 
led_strip_rmt_dev_idf4.c
 
led_strip_rmt_encoder.c
 
led_strip_rmt_encoder.h
 
led_strip_spi_dev.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_91943268b81177f3c28b334e969dc816.js b/docs/html/dir_91943268b81177f3c28b334e969dc816.js new file mode 100644 index 0000000..8bdff14 --- /dev/null +++ b/docs/html/dir_91943268b81177f3c28b334e969dc816.js @@ -0,0 +1,9 @@ +var dir_91943268b81177f3c28b334e969dc816 = +[ + [ "led_strip_api.c", "led__strip__api_8c.html", "led__strip__api_8c" ], + [ "led_strip_rmt_dev.c", "led__strip__rmt__dev_8c.html", "led__strip__rmt__dev_8c" ], + [ "led_strip_rmt_dev_idf4.c", "led__strip__rmt__dev__idf4_8c.html", "led__strip__rmt__dev__idf4_8c" ], + [ "led_strip_rmt_encoder.c", "led__strip__rmt__encoder_8c.html", "led__strip__rmt__encoder_8c" ], + [ "led_strip_rmt_encoder.h", "led__strip__rmt__encoder_8h.html", "led__strip__rmt__encoder_8h" ], + [ "led_strip_spi_dev.c", "led__strip__spi__dev_8c.html", "led__strip__spi__dev_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_91943268b81177f3c28b334e969dc816_dep.md5 b/docs/html/dir_91943268b81177f3c28b334e969dc816_dep.md5 new file mode 100644 index 0000000..1ebca22 --- /dev/null +++ b/docs/html/dir_91943268b81177f3c28b334e969dc816_dep.md5 @@ -0,0 +1 @@ +25162a12fbd2317f66bf0f45485ea8f4 \ No newline at end of file diff --git a/docs/html/dir_91943268b81177f3c28b334e969dc816_dep.svg b/docs/html/dir_91943268b81177f3c28b334e969dc816_dep.svg new file mode 100644 index 0000000..4c2acf4 --- /dev/null +++ b/docs/html/dir_91943268b81177f3c28b334e969dc816_dep.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + +src + +clusterdir_9be252ebbe144643a161d99fe7bd96b8 + + +espressif__led_strip + + + + + +dir_43ee144b145d28ede80d7406234067ed + + +interface + + + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + +include + + + + + +dir_91943268b81177f3c28b334e969dc816 + + +src + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_43ee144b145d28ede80d7406234067ed + + + + + + +4 + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + + + + + +5 + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +4 + + + + + + + + + + diff --git a/docs/html/dir_91943268b81177f3c28b334e969dc816_dep_org.svg b/docs/html/dir_91943268b81177f3c28b334e969dc816_dep_org.svg new file mode 100644 index 0000000..b700c46 --- /dev/null +++ b/docs/html/dir_91943268b81177f3c28b334e969dc816_dep_org.svg @@ -0,0 +1,95 @@ + + + + + + +src + +clusterdir_9be252ebbe144643a161d99fe7bd96b8 + + +espressif__led_strip + + + + + +dir_43ee144b145d28ede80d7406234067ed + + +interface + + + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + +include + + + + + +dir_91943268b81177f3c28b334e969dc816 + + +src + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_43ee144b145d28ede80d7406234067ed + + + + + + +4 + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + + + + + +5 + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +4 + + + + + diff --git a/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803.html b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803.html new file mode 100644 index 0000000..42ba693 --- /dev/null +++ b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dspm_mulc.h
 
dspm_mulc_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803.js b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803.js new file mode 100644 index 0000000..ae0ba25 --- /dev/null +++ b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803.js @@ -0,0 +1,5 @@ +var dir_91bbb9ae7da8dd492f40f49dcee93803 = +[ + [ "dspm_mulc.h", "dspm__mulc_8h.html", "dspm__mulc_8h" ], + [ "dspm_mulc_platform.h", "dspm__mulc__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep.md5 b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep.md5 new file mode 100644 index 0000000..c6f7175 --- /dev/null +++ b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep.md5 @@ -0,0 +1 @@ +45b81942ee00bf9d710d640d31db7e56 \ No newline at end of file diff --git a/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep.svg b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep.svg new file mode 100644 index 0000000..84eb8bb --- /dev/null +++ b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_8223604c15cd95bf81d4d8af6d40e86f + + +mulc + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep_org.svg b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep_org.svg new file mode 100644 index 0000000..c79d7bb --- /dev/null +++ b/docs/html/dir_91bbb9ae7da8dd492f40f49dcee93803_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_8223604c15cd95bf81d4d8af6d40e86f + + +mulc + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_91bbb9ae7da8dd492f40f49dcee93803->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_921d70230c427007d8b7307843a5136d.html b/docs/html/dir_921d70230c427007d8b7307843a5136d.html new file mode 100644 index 0000000..960f70e --- /dev/null +++ b/docs/html/dir_921d70230c427007d8b7307843a5136d.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: hann Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
hann Directory Reference
+
+
+
+Directory dependency graph for hann:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_921d70230c427007d8b7307843a5136d.js b/docs/html/dir_921d70230c427007d8b7307843a5136d.js new file mode 100644 index 0000000..1751a37 --- /dev/null +++ b/docs/html/dir_921d70230c427007d8b7307843a5136d.js @@ -0,0 +1,5 @@ +var dir_921d70230c427007d8b7307843a5136d = +[ + [ "float", "dir_80d86c895ffa96f241d1165825d40406.html", "dir_80d86c895ffa96f241d1165825d40406" ], + [ "include", "dir_b64675f983c0644af3c7dd36b6272b9d.html", "dir_b64675f983c0644af3c7dd36b6272b9d" ] +]; \ No newline at end of file diff --git a/docs/html/dir_921d70230c427007d8b7307843a5136d_dep.md5 b/docs/html/dir_921d70230c427007d8b7307843a5136d_dep.md5 new file mode 100644 index 0000000..644e5ed --- /dev/null +++ b/docs/html/dir_921d70230c427007d8b7307843a5136d_dep.md5 @@ -0,0 +1 @@ +ab31d113a189109324165aefca42cbac \ No newline at end of file diff --git a/docs/html/dir_921d70230c427007d8b7307843a5136d_dep.svg b/docs/html/dir_921d70230c427007d8b7307843a5136d_dep.svg new file mode 100644 index 0000000..98c8fba --- /dev/null +++ b/docs/html/dir_921d70230c427007d8b7307843a5136d_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +hann + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_921d70230c427007d8b7307843a5136d + + + + + + + +dir_921d70230c427007d8b7307843a5136d +hann + + + +dir_80d86c895ffa96f241d1165825d40406 + + +float + + + + + +dir_b64675f983c0644af3c7dd36b6272b9d + + +include + + + + + +dir_80d86c895ffa96f241d1165825d40406->dir_b64675f983c0644af3c7dd36b6272b9d + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_921d70230c427007d8b7307843a5136d_dep_org.svg b/docs/html/dir_921d70230c427007d8b7307843a5136d_dep_org.svg new file mode 100644 index 0000000..9618869 --- /dev/null +++ b/docs/html/dir_921d70230c427007d8b7307843a5136d_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +hann + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_921d70230c427007d8b7307843a5136d + + + + + + + +dir_921d70230c427007d8b7307843a5136d +hann + + + +dir_80d86c895ffa96f241d1165825d40406 + + +float + + + + + +dir_b64675f983c0644af3c7dd36b6272b9d + + +include + + + + + +dir_80d86c895ffa96f241d1165825d40406->dir_b64675f983c0644af3c7dd36b6272b9d + + + + + + +1 + + + + + diff --git a/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb.html b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb.html new file mode 100644 index 0000000..5c9dc5d --- /dev/null +++ b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter Directory Reference
+
+
+
+Directory dependency graph for kalman_filter:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb.js b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb.js new file mode 100644 index 0000000..6054be6 --- /dev/null +++ b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb.js @@ -0,0 +1,4 @@ +var dir_945d2b1bad7511c32093cc54649ad1cb = +[ + [ "main", "dir_2ede62ba609a13817930229bff031944.html", "dir_2ede62ba609a13817930229bff031944" ] +]; \ No newline at end of file diff --git a/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep.md5 b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep.md5 new file mode 100644 index 0000000..4a308d3 --- /dev/null +++ b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep.md5 @@ -0,0 +1 @@ +6c1e97189051743ad159ecd0752b412d \ No newline at end of file diff --git a/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep.svg b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep.svg new file mode 100644 index 0000000..509793f --- /dev/null +++ b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +kalman_filter + +clusterdir_16c85ce1c9ed281be79921a05621351c + + +apps + + + + +clusterdir_945d2b1bad7511c32093cc54649ad1cb + + + + + + + +dir_945d2b1bad7511c32093cc54649ad1cb +kalman_filter + + + +dir_2ede62ba609a13817930229bff031944 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2ede62ba609a13817930229bff031944->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep_org.svg b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep_org.svg new file mode 100644 index 0000000..8d9b6d0 --- /dev/null +++ b/docs/html/dir_945d2b1bad7511c32093cc54649ad1cb_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +kalman_filter + +clusterdir_16c85ce1c9ed281be79921a05621351c + + +apps + + + + +clusterdir_945d2b1bad7511c32093cc54649ad1cb + + + + + + + +dir_945d2b1bad7511c32093cc54649ad1cb +kalman_filter + + + +dir_2ede62ba609a13817930229bff031944 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2ede62ba609a13817930229bff031944->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.html b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.html new file mode 100644 index 0000000..7759656 --- /dev/null +++ b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
3d_graphics_demo.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.js b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.js new file mode 100644 index 0000000..85b867d --- /dev/null +++ b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2.js @@ -0,0 +1,4 @@ +var dir_94d9a18ab0f3ad2f015058c2f9d5b4c2 = +[ + [ "3d_graphics_demo.cpp", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html", "applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.md5 b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.md5 new file mode 100644 index 0000000..4b79792 --- /dev/null +++ b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.md5 @@ -0,0 +1 @@ +048acb9977a5c4a9a7c9d93b25a9c2d3 \ No newline at end of file diff --git a/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.svg b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.svg new file mode 100644 index 0000000..57d4ee5 --- /dev/null +++ b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_5b18cd7a18c6dd121c3886b4ca53be64 + + +3d_graphics + + + + + +dir_94d9a18ab0f3ad2f015058c2f9d5b4c2 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_94d9a18ab0f3ad2f015058c2f9d5b4c2->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep_org.svg b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep_org.svg new file mode 100644 index 0000000..be775a6 --- /dev/null +++ b/docs/html/dir_94d9a18ab0f3ad2f015058c2f9d5b4c2_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_5b18cd7a18c6dd121c3886b4ca53be64 + + +3d_graphics + + + + + +dir_94d9a18ab0f3ad2f015058c2f9d5b4c2 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_94d9a18ab0f3ad2f015058c2f9d5b4c2->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_95624ebda436e232844a7007340a6b2b.html b/docs/html/dir_95624ebda436e232844a7007340a6b2b.html new file mode 100644 index 0000000..553918e --- /dev/null +++ b/docs/html/dir_95624ebda436e232844a7007340a6b2b.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: windows Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
windows Directory Reference
+
+
+
+Directory dependency graph for windows:
+
+
+
+ + + + + + + + + +

+Directories

 
blackman
 
blackman_harris
 
blackman_nuttall
 
flat_top
 
hann
 
include
 
nuttall
+
+
+ +
+ + + + diff --git a/docs/html/dir_95624ebda436e232844a7007340a6b2b.js b/docs/html/dir_95624ebda436e232844a7007340a6b2b.js new file mode 100644 index 0000000..58aedf1 --- /dev/null +++ b/docs/html/dir_95624ebda436e232844a7007340a6b2b.js @@ -0,0 +1,10 @@ +var dir_95624ebda436e232844a7007340a6b2b = +[ + [ "blackman", "dir_e878e923ef12715a74c793cf72e4f313.html", "dir_e878e923ef12715a74c793cf72e4f313" ], + [ "blackman_harris", "dir_3d8f91d165c61940606cc67fb2b386a2.html", "dir_3d8f91d165c61940606cc67fb2b386a2" ], + [ "blackman_nuttall", "dir_a953ba1f31684a48ed0144a63a293ae9.html", "dir_a953ba1f31684a48ed0144a63a293ae9" ], + [ "flat_top", "dir_cc06919342db86795a48353da98f8a52.html", "dir_cc06919342db86795a48353da98f8a52" ], + [ "hann", "dir_921d70230c427007d8b7307843a5136d.html", "dir_921d70230c427007d8b7307843a5136d" ], + [ "include", "dir_b98ee8c279438f4b21bd61b97608bcde.html", "dir_b98ee8c279438f4b21bd61b97608bcde" ], + [ "nuttall", "dir_4d5843eee21c7cebfad28c6fb5869b90.html", "dir_4d5843eee21c7cebfad28c6fb5869b90" ] +]; \ No newline at end of file diff --git a/docs/html/dir_95624ebda436e232844a7007340a6b2b_dep.md5 b/docs/html/dir_95624ebda436e232844a7007340a6b2b_dep.md5 new file mode 100644 index 0000000..a9d2a85 --- /dev/null +++ b/docs/html/dir_95624ebda436e232844a7007340a6b2b_dep.md5 @@ -0,0 +1 @@ +3f30afda862491a3db4f16042091d89c \ No newline at end of file diff --git a/docs/html/dir_95624ebda436e232844a7007340a6b2b_dep.svg b/docs/html/dir_95624ebda436e232844a7007340a6b2b_dep.svg new file mode 100644 index 0000000..93b6d6a --- /dev/null +++ b/docs/html/dir_95624ebda436e232844a7007340a6b2b_dep.svg @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +windows + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_95624ebda436e232844a7007340a6b2b + + + + + + + +dir_95624ebda436e232844a7007340a6b2b +windows + + + +dir_e878e923ef12715a74c793cf72e4f313 + + +blackman + + + + + +dir_3d8f91d165c61940606cc67fb2b386a2 + + +blackman_harris + + + + + +dir_a953ba1f31684a48ed0144a63a293ae9 + + +blackman_nuttall + + + + + +dir_cc06919342db86795a48353da98f8a52 + + +flat_top + + + + + +dir_921d70230c427007d8b7307843a5136d + + +hann + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde + + +include + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_e878e923ef12715a74c793cf72e4f313 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_3d8f91d165c61940606cc67fb2b386a2 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_a953ba1f31684a48ed0144a63a293ae9 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_cc06919342db86795a48353da98f8a52 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_921d70230c427007d8b7307843a5136d + + + + + + +1 + + + + + +dir_4d5843eee21c7cebfad28c6fb5869b90 + + +nuttall + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_4d5843eee21c7cebfad28c6fb5869b90 + + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dir_95624ebda436e232844a7007340a6b2b_dep_org.svg b/docs/html/dir_95624ebda436e232844a7007340a6b2b_dep_org.svg new file mode 100644 index 0000000..cf23839 --- /dev/null +++ b/docs/html/dir_95624ebda436e232844a7007340a6b2b_dep_org.svg @@ -0,0 +1,173 @@ + + + + + + +windows + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_95624ebda436e232844a7007340a6b2b + + + + + + + +dir_95624ebda436e232844a7007340a6b2b +windows + + + +dir_e878e923ef12715a74c793cf72e4f313 + + +blackman + + + + + +dir_3d8f91d165c61940606cc67fb2b386a2 + + +blackman_harris + + + + + +dir_a953ba1f31684a48ed0144a63a293ae9 + + +blackman_nuttall + + + + + +dir_cc06919342db86795a48353da98f8a52 + + +flat_top + + + + + +dir_921d70230c427007d8b7307843a5136d + + +hann + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde + + +include + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_e878e923ef12715a74c793cf72e4f313 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_3d8f91d165c61940606cc67fb2b386a2 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_a953ba1f31684a48ed0144a63a293ae9 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_cc06919342db86795a48353da98f8a52 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_921d70230c427007d8b7307843a5136d + + + + + + +1 + + + + + +dir_4d5843eee21c7cebfad28c6fb5869b90 + + +nuttall + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_4d5843eee21c7cebfad28c6fb5869b90 + + + + + + +1 + + + + + diff --git a/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc.html b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc.html new file mode 100644 index 0000000..90702e2 --- /dev/null +++ b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + + + + + + +

+Files

 
tinyusb.h
 
tinyusb_types.h
 
tusb_cdc_acm.h
 
tusb_config.h
 
tusb_console.h
 
tusb_tasks.h
 
vfs_tinyusb.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc.js b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc.js new file mode 100644 index 0000000..dc6311a --- /dev/null +++ b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc.js @@ -0,0 +1,10 @@ +var dir_97e7160f37b959978d0c3621cc0a2dfc = +[ + [ "tinyusb.h", "tinyusb_8h.html", "tinyusb_8h" ], + [ "tinyusb_types.h", "tinyusb__types_8h.html", "tinyusb__types_8h" ], + [ "tusb_cdc_acm.h", "tusb__cdc__acm_8h.html", "tusb__cdc__acm_8h" ], + [ "tusb_config.h", "tusb__config_8h.html", "tusb__config_8h" ], + [ "tusb_console.h", "tusb__console_8h.html", "tusb__console_8h" ], + [ "tusb_tasks.h", "tusb__tasks_8h.html", "tusb__tasks_8h" ], + [ "vfs_tinyusb.h", "vfs__tinyusb_8h.html", "vfs__tinyusb_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep.md5 b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep.md5 new file mode 100644 index 0000000..3b83efd --- /dev/null +++ b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep.md5 @@ -0,0 +1 @@ +957fa4e81171c17a905679d9877a6541 \ No newline at end of file diff --git a/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep.svg b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep.svg new file mode 100644 index 0000000..b8383e2 --- /dev/null +++ b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_2606190ade5f42f0803fb562b0f2687e + + +espressif__esp_tinyusb + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc + + +include + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +4 + + + + + + + + + + diff --git a/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep_org.svg b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep_org.svg new file mode 100644 index 0000000..0249ae0 --- /dev/null +++ b/docs/html/dir_97e7160f37b959978d0c3621cc0a2dfc_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_2606190ade5f42f0803fb562b0f2687e + + +espressif__esp_tinyusb + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc + + +include + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +4 + + + + + diff --git a/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.html b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.html new file mode 100644 index 0000000..c24f24f --- /dev/null +++ b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter Directory Reference
+
+
+
+Directory dependency graph for kalman_filter:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.js b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.js new file mode 100644 index 0000000..27ebb90 --- /dev/null +++ b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d.js @@ -0,0 +1,4 @@ +var dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d = +[ + [ "main", "dir_db7b1604ad652de4066dd6f160251f65.html", "dir_db7b1604ad652de4066dd6f160251f65" ] +]; \ No newline at end of file diff --git a/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.md5 b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.md5 new file mode 100644 index 0000000..ea33343 --- /dev/null +++ b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.md5 @@ -0,0 +1 @@ +785e23bda3e1671361671497e2b495bf \ No newline at end of file diff --git a/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.svg b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.svg new file mode 100644 index 0000000..758416a --- /dev/null +++ b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +kalman_filter + +clusterdir_2b34506dc3510c22337948b29ab07162 + + +apps + + + + +clusterdir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d + + + + + + + +dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d +kalman_filter + + + +dir_db7b1604ad652de4066dd6f160251f65 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_db7b1604ad652de4066dd6f160251f65->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep_org.svg b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep_org.svg new file mode 100644 index 0000000..689b779 --- /dev/null +++ b/docs/html/dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +kalman_filter + +clusterdir_2b34506dc3510c22337948b29ab07162 + + +apps + + + + +clusterdir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d + + + + + + + +dir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d +kalman_filter + + + +dir_db7b1604ad652de4066dd6f160251f65 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_db7b1604ad652de4066dd6f160251f65->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_9b69c23330a7d810ddb9527a98b69931.html b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931.html new file mode 100644 index 0000000..8a2f4f9 --- /dev/null +++ b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter Directory Reference
+
+
+
+Directory dependency graph for kalman_filter:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_9b69c23330a7d810ddb9527a98b69931.js b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931.js new file mode 100644 index 0000000..cac512f --- /dev/null +++ b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931.js @@ -0,0 +1,4 @@ +var dir_9b69c23330a7d810ddb9527a98b69931 = +[ + [ "main", "dir_5fc0e55c3fa90afc87691a4c1dff591d.html", "dir_5fc0e55c3fa90afc87691a4c1dff591d" ] +]; \ No newline at end of file diff --git a/docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep.md5 b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep.md5 new file mode 100644 index 0000000..30efa11 --- /dev/null +++ b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep.md5 @@ -0,0 +1 @@ +e8115d8e6691ffaf9394445b48fcc874 \ No newline at end of file diff --git a/docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep.svg b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep.svg new file mode 100644 index 0000000..6c3cfb4 --- /dev/null +++ b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +kalman_filter + +clusterdir_0db1884497eb987b5f550d1edc49e18a + + +apps + + + + +clusterdir_9b69c23330a7d810ddb9527a98b69931 + + + + + + + +dir_9b69c23330a7d810ddb9527a98b69931 +kalman_filter + + + +dir_5fc0e55c3fa90afc87691a4c1dff591d + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5fc0e55c3fa90afc87691a4c1dff591d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep_org.svg b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep_org.svg new file mode 100644 index 0000000..27be012 --- /dev/null +++ b/docs/html/dir_9b69c23330a7d810ddb9527a98b69931_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +kalman_filter + +clusterdir_0db1884497eb987b5f550d1edc49e18a + + +apps + + + + +clusterdir_9b69c23330a7d810ddb9527a98b69931 + + + + + + + +dir_9b69c23330a7d810ddb9527a98b69931 +kalman_filter + + + +dir_5fc0e55c3fa90afc87691a4c1dff591d + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5fc0e55c3fa90afc87691a4c1dff591d->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8.html b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8.html new file mode 100644 index 0000000..20b5e6f --- /dev/null +++ b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: espressif__led_strip Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
espressif__led_strip Directory Reference
+
+
+
+Directory dependency graph for espressif__led_strip:
+
+
+
+ + + + + +

+Directories

 
include
 
interface
 
src
+
+
+ +
+ + + + diff --git a/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8.js b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8.js new file mode 100644 index 0000000..21c7b87 --- /dev/null +++ b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8.js @@ -0,0 +1,6 @@ +var dir_9be252ebbe144643a161d99fe7bd96b8 = +[ + [ "include", "dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.html", "dir_f0aa04b7bbccd383b0f03f9b9fd86b7d" ], + [ "interface", "dir_43ee144b145d28ede80d7406234067ed.html", "dir_43ee144b145d28ede80d7406234067ed" ], + [ "src", "dir_91943268b81177f3c28b334e969dc816.html", "dir_91943268b81177f3c28b334e969dc816" ] +]; \ No newline at end of file diff --git a/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep.md5 b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep.md5 new file mode 100644 index 0000000..c7a99ef --- /dev/null +++ b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep.md5 @@ -0,0 +1 @@ +d275aaa319433ef8e5ba45e62fe7d97b \ No newline at end of file diff --git a/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep.svg b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep.svg new file mode 100644 index 0000000..bb7b5d0 --- /dev/null +++ b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep.svg @@ -0,0 +1,159 @@ + + + + + + + + + + + + +espressif__led_strip + +clusterdir_409f97388efe006bc3438b95e9edef48 + + +components + + + + +clusterdir_9be252ebbe144643a161d99fe7bd96b8 + + + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_9be252ebbe144643a161d99fe7bd96b8 +espressif__led_strip + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + +include + + + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +3 + + + + + +dir_43ee144b145d28ede80d7406234067ed + + +interface + + + + + +dir_43ee144b145d28ede80d7406234067ed->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +1 + + + + + +dir_91943268b81177f3c28b334e969dc816 + + +src + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +4 + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + + + + + +5 + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_43ee144b145d28ede80d7406234067ed + + + + + + +4 + + + + + + + + + + diff --git a/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep_org.svg b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep_org.svg new file mode 100644 index 0000000..b79579c --- /dev/null +++ b/docs/html/dir_9be252ebbe144643a161d99fe7bd96b8_dep_org.svg @@ -0,0 +1,133 @@ + + + + + + +espressif__led_strip + +clusterdir_409f97388efe006bc3438b95e9edef48 + + +components + + + + +clusterdir_9be252ebbe144643a161d99fe7bd96b8 + + + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_9be252ebbe144643a161d99fe7bd96b8 +espressif__led_strip + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + +include + + + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +3 + + + + + +dir_43ee144b145d28ede80d7406234067ed + + +interface + + + + + +dir_43ee144b145d28ede80d7406234067ed->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +1 + + + + + +dir_91943268b81177f3c28b334e969dc816 + + +src + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +4 + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + + + + + +5 + + + + + +dir_91943268b81177f3c28b334e969dc816->dir_43ee144b145d28ede80d7406234067ed + + + + + + +4 + + + + + diff --git a/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9.html b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9.html new file mode 100644 index 0000000..b109c71 --- /dev/null +++ b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: azure_board_apps Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
azure_board_apps Directory Reference
+
+
+
+Directory dependency graph for azure_board_apps:
+
+
+
+ + + + +

+Directories

 
apps
 
graphics
+
+
+ +
+ + + + diff --git a/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9.js b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9.js new file mode 100644 index 0000000..f4c679f --- /dev/null +++ b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9.js @@ -0,0 +1,5 @@ +var dir_9f56573f249ce70c94c7b8fff377f7a9 = +[ + [ "apps", "dir_42be8631e0eff9e3824673f44965e076.html", "dir_42be8631e0eff9e3824673f44965e076" ], + [ "graphics", "dir_f525258f048ec21eab34c8f507cb2ddc.html", "dir_f525258f048ec21eab34c8f507cb2ddc" ] +]; \ No newline at end of file diff --git a/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep.md5 b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep.md5 new file mode 100644 index 0000000..b1668f4 --- /dev/null +++ b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep.md5 @@ -0,0 +1 @@ +e010d6f1452a2eb5ca2d00a5aa36b46c \ No newline at end of file diff --git a/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep.svg b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep.svg new file mode 100644 index 0000000..5c202c5 --- /dev/null +++ b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +azure_board_apps + +clusterdir_09ad66f83672b653a2c2d9afebef122d + + +f9c2d4b3 + + + + +clusterdir_9f56573f249ce70c94c7b8fff377f7a9 + + + + + + + +dir_9f56573f249ce70c94c7b8fff377f7a9 +azure_board_apps + + + +dir_42be8631e0eff9e3824673f44965e076 + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_42be8631e0eff9e3824673f44965e076->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_f525258f048ec21eab34c8f507cb2ddc + + +graphics + + + + + +dir_f525258f048ec21eab34c8f507cb2ddc->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep_org.svg b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep_org.svg new file mode 100644 index 0000000..90b5de4 --- /dev/null +++ b/docs/html/dir_9f56573f249ce70c94c7b8fff377f7a9_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +azure_board_apps + +clusterdir_09ad66f83672b653a2c2d9afebef122d + + +f9c2d4b3 + + + + +clusterdir_9f56573f249ce70c94c7b8fff377f7a9 + + + + + + + +dir_9f56573f249ce70c94c7b8fff377f7a9 +azure_board_apps + + + +dir_42be8631e0eff9e3824673f44965e076 + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_42be8631e0eff9e3824673f44965e076->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_f525258f048ec21eab34c8f507cb2ddc + + +graphics + + + + + +dir_f525258f048ec21eab34c8f507cb2ddc->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_a3d37b3538242ea047872cfcc616fb89.html b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89.html new file mode 100644 index 0000000..408b9bd --- /dev/null +++ b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_matrix Directory Reference
+
+
+
+Directory dependency graph for 3d_matrix:
+
+
+
+ + + + +

+Directories

 
3d_matrix_data
 
3d_matrix_src
+
+
+ +
+ + + + diff --git a/docs/html/dir_a3d37b3538242ea047872cfcc616fb89.js b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89.js new file mode 100644 index 0000000..12884ca --- /dev/null +++ b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89.js @@ -0,0 +1,5 @@ +var dir_a3d37b3538242ea047872cfcc616fb89 = +[ + [ "3d_matrix_data", "dir_fc4402edab186de335f81f837d649a28.html", "dir_fc4402edab186de335f81f837d649a28" ], + [ "3d_matrix_src", "dir_0bd9d4933e358e4bf5f0430ee37507d3.html", "dir_0bd9d4933e358e4bf5f0430ee37507d3" ] +]; \ No newline at end of file diff --git a/docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep.md5 b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep.md5 new file mode 100644 index 0000000..4d64dac --- /dev/null +++ b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep.md5 @@ -0,0 +1 @@ +d58196e68bb25997c916e91d35cba688 \ No newline at end of file diff --git a/docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep.svg b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep.svg new file mode 100644 index 0000000..abee4b0 --- /dev/null +++ b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + +3d_matrix + +clusterdir_f525258f048ec21eab34c8f507cb2ddc + + +graphics + + + + +clusterdir_a3d37b3538242ea047872cfcc616fb89 + + + + + + + +dir_a3d37b3538242ea047872cfcc616fb89 +3d_matrix + + + +dir_fc4402edab186de335f81f837d649a28 + + +3d_matrix_data + + + + + +dir_0bd9d4933e358e4bf5f0430ee37507d3 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0bd9d4933e358e4bf5f0430ee37507d3->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep_org.svg b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep_org.svg new file mode 100644 index 0000000..62dbfab --- /dev/null +++ b/docs/html/dir_a3d37b3538242ea047872cfcc616fb89_dep_org.svg @@ -0,0 +1,72 @@ + + + + + + +3d_matrix + +clusterdir_f525258f048ec21eab34c8f507cb2ddc + + +graphics + + + + +clusterdir_a3d37b3538242ea047872cfcc616fb89 + + + + + + + +dir_a3d37b3538242ea047872cfcc616fb89 +3d_matrix + + + +dir_fc4402edab186de335f81f837d649a28 + + +3d_matrix_data + + + + + +dir_0bd9d4933e358e4bf5f0430ee37507d3 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0bd9d4933e358e4bf5f0430ee37507d3->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e.html b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e.html new file mode 100644 index 0000000..0527dc0 --- /dev/null +++ b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dspm_mult.h
 
dspm_mult_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e.js b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e.js new file mode 100644 index 0000000..628bd9a --- /dev/null +++ b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e.js @@ -0,0 +1,5 @@ +var dir_a433e8a6d28e4786ad1d6be7acd0a86e = +[ + [ "dspm_mult.h", "dspm__mult_8h.html", "dspm__mult_8h" ], + [ "dspm_mult_platform.h", "dspm__mult__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep.md5 b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep.md5 new file mode 100644 index 0000000..56ebb6f --- /dev/null +++ b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep.md5 @@ -0,0 +1 @@ +fd46fa9043408e899c8ef4b89940e1aa \ No newline at end of file diff --git a/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep.svg b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep.svg new file mode 100644 index 0000000..77f2695 --- /dev/null +++ b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep_org.svg b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep_org.svg new file mode 100644 index 0000000..62b0696 --- /dev/null +++ b/docs/html/dir_a433e8a6d28e4786ad1d6be7acd0a86e_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_6452a9bf1971d09ce0c2e6a86e350069 + + +mul + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_a433e8a6d28e4786ad1d6be7acd0a86e->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f.html b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f.html new file mode 100644 index 0000000..11300c0 --- /dev/null +++ b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: mem Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mem Directory Reference
+
+
+
+Directory dependency graph for mem:
+
+
+
+ + + +

+Directories

 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f.js b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f.js new file mode 100644 index 0000000..04227fe --- /dev/null +++ b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f.js @@ -0,0 +1,4 @@ +var dir_a4520cc2e8d056e147f1deaf11bb691f = +[ + [ "include", "dir_b0611a230b7c13c087177d819e4a0a75.html", "dir_b0611a230b7c13c087177d819e4a0a75" ] +]; \ No newline at end of file diff --git a/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep.md5 b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep.md5 new file mode 100644 index 0000000..d409544 --- /dev/null +++ b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep.md5 @@ -0,0 +1 @@ +5c4ad165e97130449b59ef8d93d96d7a \ No newline at end of file diff --git a/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep.svg b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep.svg new file mode 100644 index 0000000..856c1f0 --- /dev/null +++ b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +mem + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + +clusterdir_a4520cc2e8d056e147f1deaf11bb691f + + + + + + + +dir_a4520cc2e8d056e147f1deaf11bb691f +mem + + + +dir_b0611a230b7c13c087177d819e4a0a75 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_b0611a230b7c13c087177d819e4a0a75->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep_org.svg b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep_org.svg new file mode 100644 index 0000000..44d2373 --- /dev/null +++ b/docs/html/dir_a4520cc2e8d056e147f1deaf11bb691f_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +mem + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + +clusterdir_a4520cc2e8d056e147f1deaf11bb691f + + + + + + + +dir_a4520cc2e8d056e147f1deaf11bb691f +mem + + + +dir_b0611a230b7c13c087177d819e4a0a75 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_b0611a230b7c13c087177d819e4a0a75->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + diff --git a/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af.html b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af.html new file mode 100644 index 0000000..39b26f6 --- /dev/null +++ b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_wind_blackman_f32.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af.js b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af.js new file mode 100644 index 0000000..d0dcceb --- /dev/null +++ b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af.js @@ -0,0 +1,4 @@ +var dir_a4c5913a3d3eed486b216fbd720c97af = +[ + [ "dsps_wind_blackman_f32.c", "dsps__wind__blackman__f32_8c.html", "dsps__wind__blackman__f32_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep.md5 b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep.md5 new file mode 100644 index 0000000..6d947be --- /dev/null +++ b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep.md5 @@ -0,0 +1 @@ +6620fd04d30af86fc3385be5ae3b99df \ No newline at end of file diff --git a/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep.svg b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep.svg new file mode 100644 index 0000000..79d03a2 --- /dev/null +++ b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_e878e923ef12715a74c793cf72e4f313 + + +blackman + + + + + +dir_3630efa296d794a506d697d26fb77c32 + + +include + + + + + +dir_a4c5913a3d3eed486b216fbd720c97af + + +float + + + + + +dir_a4c5913a3d3eed486b216fbd720c97af->dir_3630efa296d794a506d697d26fb77c32 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep_org.svg b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep_org.svg new file mode 100644 index 0000000..903b195 --- /dev/null +++ b/docs/html/dir_a4c5913a3d3eed486b216fbd720c97af_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_e878e923ef12715a74c793cf72e4f313 + + +blackman + + + + + +dir_3630efa296d794a506d697d26fb77c32 + + +include + + + + + +dir_a4c5913a3d3eed486b216fbd720c97af + + +float + + + + + +dir_a4c5913a3d3eed486b216fbd720c97af->dir_3630efa296d794a506d697d26fb77c32 + + + + + + +1 + + + + + diff --git a/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a.html b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a.html new file mode 100644 index 0000000..7d86721 --- /dev/null +++ b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dspm_sub.h
 
dspm_sub_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a.js b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a.js new file mode 100644 index 0000000..7a9cb86 --- /dev/null +++ b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a.js @@ -0,0 +1,5 @@ +var dir_a8725166bca3343a4ff8dbf70470bf7a = +[ + [ "dspm_sub.h", "dspm__sub_8h.html", "dspm__sub_8h" ], + [ "dspm_sub_platform.h", "dspm__sub__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep.md5 b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep.md5 new file mode 100644 index 0000000..90326fe --- /dev/null +++ b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep.md5 @@ -0,0 +1 @@ +9d4a8a2fcf8911286bf790b291fd33bc \ No newline at end of file diff --git a/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep.svg b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep.svg new file mode 100644 index 0000000..e36f90a --- /dev/null +++ b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + +sub + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep_org.svg b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep_org.svg new file mode 100644 index 0000000..6b240f1 --- /dev/null +++ b/docs/html/dir_a8725166bca3343a4ff8dbf70470bf7a_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + +sub + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9.html b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9.html new file mode 100644 index 0000000..f72a48c --- /dev/null +++ b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: blackman_nuttall Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
blackman_nuttall Directory Reference
+
+
+
+Directory dependency graph for blackman_nuttall:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9.js b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9.js new file mode 100644 index 0000000..d63df9a --- /dev/null +++ b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9.js @@ -0,0 +1,5 @@ +var dir_a953ba1f31684a48ed0144a63a293ae9 = +[ + [ "float", "dir_5df7d12836dc4204a1a798d0831431eb.html", "dir_5df7d12836dc4204a1a798d0831431eb" ], + [ "include", "dir_6aa31ae276fd8d589dada5e04a4739f2.html", "dir_6aa31ae276fd8d589dada5e04a4739f2" ] +]; \ No newline at end of file diff --git a/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep.md5 b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep.md5 new file mode 100644 index 0000000..952c8cc --- /dev/null +++ b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep.md5 @@ -0,0 +1 @@ +98ccb79f396b4d8dbaeeb2af96af6cbc \ No newline at end of file diff --git a/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep.svg b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep.svg new file mode 100644 index 0000000..3bf1c2c --- /dev/null +++ b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +blackman_nuttall + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_a953ba1f31684a48ed0144a63a293ae9 + + + + + + + +dir_a953ba1f31684a48ed0144a63a293ae9 +blackman_nuttall + + + +dir_5df7d12836dc4204a1a798d0831431eb + + +float + + + + + +dir_6aa31ae276fd8d589dada5e04a4739f2 + + +include + + + + + +dir_5df7d12836dc4204a1a798d0831431eb->dir_6aa31ae276fd8d589dada5e04a4739f2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep_org.svg b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep_org.svg new file mode 100644 index 0000000..bcfc6c3 --- /dev/null +++ b/docs/html/dir_a953ba1f31684a48ed0144a63a293ae9_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +blackman_nuttall + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_a953ba1f31684a48ed0144a63a293ae9 + + + + + + + +dir_a953ba1f31684a48ed0144a63a293ae9 +blackman_nuttall + + + +dir_5df7d12836dc4204a1a798d0831431eb + + +float + + + + + +dir_6aa31ae276fd8d589dada5e04a4739f2 + + +include + + + + + +dir_5df7d12836dc4204a1a798d0831431eb->dir_6aa31ae276fd8d589dada5e04a4739f2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63.html b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63.html new file mode 100644 index 0000000..03e073c --- /dev/null +++ b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: cplx_gen Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cplx_gen Directory Reference
+
+
+
+Directory dependency graph for cplx_gen:
+
+
+
+ + + + +

+Files

 
dsps_cplx_gen.c
 
dsps_cplx_gen_init.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63.js b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63.js new file mode 100644 index 0000000..4b2f71a --- /dev/null +++ b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63.js @@ -0,0 +1,5 @@ +var dir_ab3ea85e91d8dc68e46d009ff6c24e63 = +[ + [ "dsps_cplx_gen.c", "dsps__cplx__gen_8c.html", "dsps__cplx__gen_8c" ], + [ "dsps_cplx_gen_init.c", "dsps__cplx__gen__init_8c.html", "dsps__cplx__gen__init_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep.md5 b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep.md5 new file mode 100644 index 0000000..763c5dd --- /dev/null +++ b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep.md5 @@ -0,0 +1 @@ +5cde9eef4102de0c5c59172fba03dd62 \ No newline at end of file diff --git a/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep.svg b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep.svg new file mode 100644 index 0000000..1e32108 --- /dev/null +++ b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +cplx_gen + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63 + + +cplx_gen + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +2 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep_org.svg b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep_org.svg new file mode 100644 index 0000000..0528a17 --- /dev/null +++ b/docs/html/dir_ab3ea85e91d8dc68e46d009ff6c24e63_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +cplx_gen + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63 + + +cplx_gen + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +2 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_ab3ea85e91d8dc68e46d009ff6c24e63->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + diff --git a/docs/html/dir_ad7c247d62c906d539eea57d302f162e.html b/docs/html/dir_ad7c247d62c906d539eea57d302f162e.html new file mode 100644 index 0000000..2d453b0 --- /dev/null +++ b/docs/html/dir_ad7c247d62c906d539eea57d302f162e.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: apps Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
apps Directory Reference
+
+
+
+Directory dependency graph for apps:
+
+
+
+ + + + +

+Directories

 
3d_graphics
 
kalman_filter
+
+
+ +
+ + + + diff --git a/docs/html/dir_ad7c247d62c906d539eea57d302f162e.js b/docs/html/dir_ad7c247d62c906d539eea57d302f162e.js new file mode 100644 index 0000000..caa4463 --- /dev/null +++ b/docs/html/dir_ad7c247d62c906d539eea57d302f162e.js @@ -0,0 +1,5 @@ +var dir_ad7c247d62c906d539eea57d302f162e = +[ + [ "3d_graphics", "dir_5b18cd7a18c6dd121c3886b4ca53be64.html", "dir_5b18cd7a18c6dd121c3886b4ca53be64" ], + [ "kalman_filter", "dir_33fba1519ab5d9fc7528a1e4e18a1727.html", "dir_33fba1519ab5d9fc7528a1e4e18a1727" ] +]; \ No newline at end of file diff --git a/docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep.md5 b/docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep.md5 new file mode 100644 index 0000000..3460387 --- /dev/null +++ b/docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep.md5 @@ -0,0 +1 @@ +d6b500c4dbec5407f0e022066d6bf738 \ No newline at end of file diff --git a/docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep.svg b/docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep.svg new file mode 100644 index 0000000..8f48f0d --- /dev/null +++ b/docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +apps + +clusterdir_f5ac212e894c3c636ee22eba8071736a + + +azure_board_apps + + + + +clusterdir_ad7c247d62c906d539eea57d302f162e + + + + + + + +dir_ad7c247d62c906d539eea57d302f162e +apps + + + +dir_5b18cd7a18c6dd121c3886b4ca53be64 + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5b18cd7a18c6dd121c3886b4ca53be64->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_33fba1519ab5d9fc7528a1e4e18a1727 + + +kalman_filter + + + + + +dir_33fba1519ab5d9fc7528a1e4e18a1727->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep_org.svg b/docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep_org.svg new file mode 100644 index 0000000..0dec165 --- /dev/null +++ b/docs/html/dir_ad7c247d62c906d539eea57d302f162e_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +apps + +clusterdir_f5ac212e894c3c636ee22eba8071736a + + +azure_board_apps + + + + +clusterdir_ad7c247d62c906d539eea57d302f162e + + + + + + + +dir_ad7c247d62c906d539eea57d302f162e +apps + + + +dir_5b18cd7a18c6dd121c3886b4ca53be64 + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5b18cd7a18c6dd121c3886b4ca53be64->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_33fba1519ab5d9fc7528a1e4e18a1727 + + +kalman_filter + + + + + +dir_33fba1519ab5d9fc7528a1e4e18a1727->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_b0611a230b7c13c087177d819e4a0a75.html b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75.html new file mode 100644 index 0000000..60e1c88 --- /dev/null +++ b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dsps_mem.h
 
dsps_mem_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_b0611a230b7c13c087177d819e4a0a75.js b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75.js new file mode 100644 index 0000000..27bd6e4 --- /dev/null +++ b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75.js @@ -0,0 +1,5 @@ +var dir_b0611a230b7c13c087177d819e4a0a75 = +[ + [ "dsps_mem.h", "dsps__mem_8h.html", "dsps__mem_8h" ], + [ "dsps_mem_platform.h", "dsps__mem__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep.md5 b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep.md5 new file mode 100644 index 0000000..bb04e83 --- /dev/null +++ b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep.md5 @@ -0,0 +1 @@ +80df4546009d4834a173578c7aef6cee \ No newline at end of file diff --git a/docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep.svg b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep.svg new file mode 100644 index 0000000..c231965 --- /dev/null +++ b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_a4520cc2e8d056e147f1deaf11bb691f + + +mem + + + + + +dir_b0611a230b7c13c087177d819e4a0a75 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_b0611a230b7c13c087177d819e4a0a75->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep_org.svg b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep_org.svg new file mode 100644 index 0000000..300917d --- /dev/null +++ b/docs/html/dir_b0611a230b7c13c087177d819e4a0a75_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_a4520cc2e8d056e147f1deaf11bb691f + + +mem + + + + + +dir_b0611a230b7c13c087177d819e4a0a75 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_b0611a230b7c13c087177d819e4a0a75->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + diff --git a/docs/html/dir_b06b87161308abcdcf61a00173e809b3.html b/docs/html/dir_b06b87161308abcdcf61a00173e809b3.html new file mode 100644 index 0000000..bb85e76 --- /dev/null +++ b/docs/html/dir_b06b87161308abcdcf61a00173e809b3.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_wind_flat_top.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_b06b87161308abcdcf61a00173e809b3.js b/docs/html/dir_b06b87161308abcdcf61a00173e809b3.js new file mode 100644 index 0000000..f835c52 --- /dev/null +++ b/docs/html/dir_b06b87161308abcdcf61a00173e809b3.js @@ -0,0 +1,4 @@ +var dir_b06b87161308abcdcf61a00173e809b3 = +[ + [ "dsps_wind_flat_top.h", "dsps__wind__flat__top_8h.html", "dsps__wind__flat__top_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep.md5 b/docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep.md5 new file mode 100644 index 0000000..8aab004 --- /dev/null +++ b/docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep.md5 @@ -0,0 +1 @@ +3838cbf0cc540b362611b8b8aa7afaf8 \ No newline at end of file diff --git a/docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep.svg b/docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep.svg new file mode 100644 index 0000000..18b0172 --- /dev/null +++ b/docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +include + +clusterdir_cc06919342db86795a48353da98f8a52 + + +flat_top + + + + + +dir_b06b87161308abcdcf61a00173e809b3 + + +include + + + + + + + + + + diff --git a/docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep_org.svg b/docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep_org.svg new file mode 100644 index 0000000..122415d --- /dev/null +++ b/docs/html/dir_b06b87161308abcdcf61a00173e809b3_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +include + +clusterdir_cc06919342db86795a48353da98f8a52 + + +flat_top + + + + + +dir_b06b87161308abcdcf61a00173e809b3 + + +include + + + + + diff --git a/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73.html b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73.html new file mode 100644 index 0000000..4228377 --- /dev/null +++ b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics Directory Reference
+
+
+
+Directory dependency graph for 3d_graphics:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73.js b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73.js new file mode 100644 index 0000000..d932a27 --- /dev/null +++ b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73.js @@ -0,0 +1,4 @@ +var dir_b1578e0a7dfccb2aa1ada3cffa80de73 = +[ + [ "main", "dir_5e963e75a20978d5a9f10b264408e6e5.html", "dir_5e963e75a20978d5a9f10b264408e6e5" ] +]; \ No newline at end of file diff --git a/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep.md5 b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep.md5 new file mode 100644 index 0000000..a7c752f --- /dev/null +++ b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep.md5 @@ -0,0 +1 @@ +57c69eff6584a6dcf0a255c64ab295ec \ No newline at end of file diff --git a/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep.svg b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep.svg new file mode 100644 index 0000000..9bc5b71 --- /dev/null +++ b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +3d_graphics + +clusterdir_2b34506dc3510c22337948b29ab07162 + + +apps + + + + +clusterdir_b1578e0a7dfccb2aa1ada3cffa80de73 + + + + + + + +dir_b1578e0a7dfccb2aa1ada3cffa80de73 +3d_graphics + + + +dir_5e963e75a20978d5a9f10b264408e6e5 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5e963e75a20978d5a9f10b264408e6e5->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep_org.svg b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep_org.svg new file mode 100644 index 0000000..b6ccdee --- /dev/null +++ b/docs/html/dir_b1578e0a7dfccb2aa1ada3cffa80de73_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +3d_graphics + +clusterdir_2b34506dc3510c22337948b29ab07162 + + +apps + + + + +clusterdir_b1578e0a7dfccb2aa1ada3cffa80de73 + + + + + + + +dir_b1578e0a7dfccb2aa1ada3cffa80de73 +3d_graphics + + + +dir_5e963e75a20978d5a9f10b264408e6e5 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_5e963e75a20978d5a9f10b264408e6e5->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + diff --git a/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932.html b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932.html new file mode 100644 index 0000000..1a01e5e --- /dev/null +++ b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: ekf Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf Directory Reference
+
+
+
+Directory dependency graph for ekf:
+
+
+
+ + + + +

+Directories

 
common
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932.js b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932.js new file mode 100644 index 0000000..0f32f77 --- /dev/null +++ b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932.js @@ -0,0 +1,5 @@ +var dir_b2edfaaef06a92a9d53ea863519f7932 = +[ + [ "common", "dir_1796197e4e8e42e555193fa38af1784a.html", "dir_1796197e4e8e42e555193fa38af1784a" ], + [ "include", "dir_daeea571a943a8adb5cad931a75d2354.html", "dir_daeea571a943a8adb5cad931a75d2354" ] +]; \ No newline at end of file diff --git a/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep.md5 b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep.md5 new file mode 100644 index 0000000..54137e6 --- /dev/null +++ b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep.md5 @@ -0,0 +1 @@ +8793b337fd4a0d900d24b22b728ffc44 \ No newline at end of file diff --git a/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep.svg b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep.svg new file mode 100644 index 0000000..cfdb632 --- /dev/null +++ b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +ekf + +clusterdir_0469dbe69b06e7cedb52b012fa55f8d0 + + +kalman + + + + +clusterdir_b2edfaaef06a92a9d53ea863519f7932 + + + + + + + +dir_b2edfaaef06a92a9d53ea863519f7932 +ekf + + + +dir_1796197e4e8e42e555193fa38af1784a + + +common + + + + + +dir_daeea571a943a8adb5cad931a75d2354 + + +include + + + + + +dir_1796197e4e8e42e555193fa38af1784a->dir_daeea571a943a8adb5cad931a75d2354 + + + + + + +1 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_daeea571a943a8adb5cad931a75d2354->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep_org.svg b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep_org.svg new file mode 100644 index 0000000..56ab901 --- /dev/null +++ b/docs/html/dir_b2edfaaef06a92a9d53ea863519f7932_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +ekf + +clusterdir_0469dbe69b06e7cedb52b012fa55f8d0 + + +kalman + + + + +clusterdir_b2edfaaef06a92a9d53ea863519f7932 + + + + + + + +dir_b2edfaaef06a92a9d53ea863519f7932 +ekf + + + +dir_1796197e4e8e42e555193fa38af1784a + + +common + + + + + +dir_daeea571a943a8adb5cad931a75d2354 + + +include + + + + + +dir_1796197e4e8e42e555193fa38af1784a->dir_daeea571a943a8adb5cad931a75d2354 + + + + + + +1 + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_daeea571a943a8adb5cad931a75d2354->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + diff --git a/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964.html b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964.html new file mode 100644 index 0000000..0540127 --- /dev/null +++ b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics Directory Reference
+
+
+
+Directory dependency graph for 3d_graphics:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964.js b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964.js new file mode 100644 index 0000000..6576a06 --- /dev/null +++ b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964.js @@ -0,0 +1,4 @@ +var dir_b3e5efb6887ef3293ea576aeaa5d8964 = +[ + [ "main", "dir_2b87e73d4416afbe0bda3bbfcb2d5dcf.html", "dir_2b87e73d4416afbe0bda3bbfcb2d5dcf" ] +]; \ No newline at end of file diff --git a/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep.md5 b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep.md5 new file mode 100644 index 0000000..80cf888 --- /dev/null +++ b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep.md5 @@ -0,0 +1 @@ +7f0a540ab25e0fca5d9f4c6a96a89df8 \ No newline at end of file diff --git a/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep.svg b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep.svg new file mode 100644 index 0000000..92cf9a6 --- /dev/null +++ b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +3d_graphics + +clusterdir_b4d0413a00f30ed5bea26ae94db4d4f7 + + +apps + + + + +clusterdir_b3e5efb6887ef3293ea576aeaa5d8964 + + + + + + + +dir_b3e5efb6887ef3293ea576aeaa5d8964 +3d_graphics + + + +dir_2b87e73d4416afbe0bda3bbfcb2d5dcf + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2b87e73d4416afbe0bda3bbfcb2d5dcf->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep_org.svg b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep_org.svg new file mode 100644 index 0000000..a96f9b6 --- /dev/null +++ b/docs/html/dir_b3e5efb6887ef3293ea576aeaa5d8964_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +3d_graphics + +clusterdir_b4d0413a00f30ed5bea26ae94db4d4f7 + + +apps + + + + +clusterdir_b3e5efb6887ef3293ea576aeaa5d8964 + + + + + + + +dir_b3e5efb6887ef3293ea576aeaa5d8964 +3d_graphics + + + +dir_2b87e73d4416afbe0bda3bbfcb2d5dcf + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_2b87e73d4416afbe0bda3bbfcb2d5dcf->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7.html b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7.html new file mode 100644 index 0000000..e2c5405 --- /dev/null +++ b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: apps Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
apps Directory Reference
+
+
+
+Directory dependency graph for apps:
+
+
+
+ + + + +

+Directories

 
3d_graphics
 
kalman_filter
+
+
+ +
+ + + + diff --git a/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7.js b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7.js new file mode 100644 index 0000000..0225b4e --- /dev/null +++ b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7.js @@ -0,0 +1,5 @@ +var dir_b4d0413a00f30ed5bea26ae94db4d4f7 = +[ + [ "3d_graphics", "dir_b3e5efb6887ef3293ea576aeaa5d8964.html", "dir_b3e5efb6887ef3293ea576aeaa5d8964" ], + [ "kalman_filter", "dir_192a153369401f20235f877504e6d5ad.html", "dir_192a153369401f20235f877504e6d5ad" ] +]; \ No newline at end of file diff --git a/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep.md5 b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep.md5 new file mode 100644 index 0000000..ba0165b --- /dev/null +++ b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep.md5 @@ -0,0 +1 @@ +a5c4e2bcc944b3cb9e627e184a496e0e \ No newline at end of file diff --git a/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep.svg b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep.svg new file mode 100644 index 0000000..063faf5 --- /dev/null +++ b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +apps + +clusterdir_fc647d5b5fee47835a64d22ac5da01fe + + +azure_board_apps + + + + +clusterdir_b4d0413a00f30ed5bea26ae94db4d4f7 + + + + + + + +dir_b4d0413a00f30ed5bea26ae94db4d4f7 +apps + + + +dir_b3e5efb6887ef3293ea576aeaa5d8964 + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b3e5efb6887ef3293ea576aeaa5d8964->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_192a153369401f20235f877504e6d5ad + + +kalman_filter + + + + + +dir_192a153369401f20235f877504e6d5ad->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep_org.svg b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep_org.svg new file mode 100644 index 0000000..0eca17e --- /dev/null +++ b/docs/html/dir_b4d0413a00f30ed5bea26ae94db4d4f7_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +apps + +clusterdir_fc647d5b5fee47835a64d22ac5da01fe + + +azure_board_apps + + + + +clusterdir_b4d0413a00f30ed5bea26ae94db4d4f7 + + + + + + + +dir_b4d0413a00f30ed5bea26ae94db4d4f7 +apps + + + +dir_b3e5efb6887ef3293ea576aeaa5d8964 + + +3d_graphics + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b3e5efb6887ef3293ea576aeaa5d8964->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_192a153369401f20235f877504e6d5ad + + +kalman_filter + + + + + +dir_192a153369401f20235f877504e6d5ad->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d.html b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d.html new file mode 100644 index 0000000..b3534e3 --- /dev/null +++ b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_wind_hann.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d.js b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d.js new file mode 100644 index 0000000..f9c3d64 --- /dev/null +++ b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d.js @@ -0,0 +1,4 @@ +var dir_b64675f983c0644af3c7dd36b6272b9d = +[ + [ "dsps_wind_hann.h", "dsps__wind__hann_8h.html", "dsps__wind__hann_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep.md5 b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep.md5 new file mode 100644 index 0000000..1574f85 --- /dev/null +++ b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep.md5 @@ -0,0 +1 @@ +56a1ec4df84e89ffdb212bb6d81971f6 \ No newline at end of file diff --git a/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep.svg b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep.svg new file mode 100644 index 0000000..ea723f6 --- /dev/null +++ b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +include + +clusterdir_921d70230c427007d8b7307843a5136d + + +hann + + + + + +dir_b64675f983c0644af3c7dd36b6272b9d + + +include + + + + + + + + + + diff --git a/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep_org.svg b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep_org.svg new file mode 100644 index 0000000..c108032 --- /dev/null +++ b/docs/html/dir_b64675f983c0644af3c7dd36b6272b9d_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +include + +clusterdir_921d70230c427007d8b7307843a5136d + + +hann + + + + + +dir_b64675f983c0644af3c7dd36b6272b9d + + +include + + + + + diff --git a/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543.html b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543.html new file mode 100644 index 0000000..ae03ab5 --- /dev/null +++ b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dsps_addc.h
 
dsps_addc_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543.js b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543.js new file mode 100644 index 0000000..e09c9de --- /dev/null +++ b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543.js @@ -0,0 +1,5 @@ +var dir_b6a1715e83971bfcc7e394ffdb6f5543 = +[ + [ "dsps_addc.h", "dsps__addc_8h.html", "dsps__addc_8h" ], + [ "dsps_addc_platform.h", "dsps__addc__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep.md5 b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep.md5 new file mode 100644 index 0000000..0bcaf6b --- /dev/null +++ b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep.md5 @@ -0,0 +1 @@ +b5f1d04202af0a5fece1595b617aa28c \ No newline at end of file diff --git a/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep.svg b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep.svg new file mode 100644 index 0000000..6e24612 --- /dev/null +++ b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_c2033497fb0ab786bab9abfae6d47534 + + +addc + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep_org.svg b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep_org.svg new file mode 100644 index 0000000..badc30b --- /dev/null +++ b/docs/html/dir_b6a1715e83971bfcc7e394ffdb6f5543_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_c2033497fb0ab786bab9abfae6d47534 + + +addc + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e.html b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e.html new file mode 100644 index 0000000..df890d8 --- /dev/null +++ b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
main.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e.js b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e.js new file mode 100644 index 0000000..d239ced --- /dev/null +++ b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e.js @@ -0,0 +1,4 @@ +var dir_b8b40c3eb39ca67509682dcf2c25211e = +[ + [ "main.c", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c.html", "components_2espressif____esp-dsp_2applications_2spectrum__box__lite_2main_2main_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep.md5 b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep.md5 new file mode 100644 index 0000000..1da27e1 --- /dev/null +++ b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep.md5 @@ -0,0 +1 @@ +69b3678f241ca08599691d1d064c11f0 \ No newline at end of file diff --git a/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep.svg b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep.svg new file mode 100644 index 0000000..44ea858 --- /dev/null +++ b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_169a0c2dbb59f200adaa018c9c77c755 + + +spectrum_box_lite + + + + + +dir_b8b40c3eb39ca67509682dcf2c25211e + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b8b40c3eb39ca67509682dcf2c25211e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep_org.svg b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep_org.svg new file mode 100644 index 0000000..d387211 --- /dev/null +++ b/docs/html/dir_b8b40c3eb39ca67509682dcf2c25211e_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_169a0c2dbb59f200adaa018c9c77c755 + + +spectrum_box_lite + + + + + +dir_b8b40c3eb39ca67509682dcf2c25211e + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b8b40c3eb39ca67509682dcf2c25211e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_b919e33db9942c3e712aefd750376bac.html b/docs/html/dir_b919e33db9942c3e712aefd750376bac.html new file mode 100644 index 0000000..492e72a --- /dev/null +++ b/docs/html/dir_b919e33db9942c3e712aefd750376bac.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: img_to_3d_matrix Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
img_to_3d_matrix Directory Reference
+
+
+
+Directory dependency graph for img_to_3d_matrix:
+
+
+
+ + + +

+Directories

 
templates
+
+
+ +
+ + + + diff --git a/docs/html/dir_b919e33db9942c3e712aefd750376bac.js b/docs/html/dir_b919e33db9942c3e712aefd750376bac.js new file mode 100644 index 0000000..421590f --- /dev/null +++ b/docs/html/dir_b919e33db9942c3e712aefd750376bac.js @@ -0,0 +1,4 @@ +var dir_b919e33db9942c3e712aefd750376bac = +[ + [ "templates", "dir_89e58584540eba160416052686348f24.html", "dir_89e58584540eba160416052686348f24" ] +]; \ No newline at end of file diff --git a/docs/html/dir_b919e33db9942c3e712aefd750376bac_dep.md5 b/docs/html/dir_b919e33db9942c3e712aefd750376bac_dep.md5 new file mode 100644 index 0000000..15f8c6b --- /dev/null +++ b/docs/html/dir_b919e33db9942c3e712aefd750376bac_dep.md5 @@ -0,0 +1 @@ +3c4102e0852b97fcd213abad173e1b7a \ No newline at end of file diff --git a/docs/html/dir_b919e33db9942c3e712aefd750376bac_dep.svg b/docs/html/dir_b919e33db9942c3e712aefd750376bac_dep.svg new file mode 100644 index 0000000..7ede6d9 --- /dev/null +++ b/docs/html/dir_b919e33db9942c3e712aefd750376bac_dep.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + +img_to_3d_matrix + +clusterdir_011fb339d4ebe6812c2c47d3e6334b23 + + +graphics + + + + +clusterdir_b919e33db9942c3e712aefd750376bac + + + + + + + +dir_b919e33db9942c3e712aefd750376bac +img_to_3d_matrix + + + +dir_89e58584540eba160416052686348f24 + + +templates + + + + + + + + + + diff --git a/docs/html/dir_b919e33db9942c3e712aefd750376bac_dep_org.svg b/docs/html/dir_b919e33db9942c3e712aefd750376bac_dep_org.svg new file mode 100644 index 0000000..60c28d0 --- /dev/null +++ b/docs/html/dir_b919e33db9942c3e712aefd750376bac_dep_org.svg @@ -0,0 +1,41 @@ + + + + + + +img_to_3d_matrix + +clusterdir_011fb339d4ebe6812c2c47d3e6334b23 + + +graphics + + + + +clusterdir_b919e33db9942c3e712aefd750376bac + + + + + + + +dir_b919e33db9942c3e712aefd750376bac +img_to_3d_matrix + + + +dir_89e58584540eba160416052686348f24 + + +templates + + + + + diff --git a/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde.html b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde.html new file mode 100644 index 0000000..04e9754 --- /dev/null +++ b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_wind.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde.js b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde.js new file mode 100644 index 0000000..6c97589 --- /dev/null +++ b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde.js @@ -0,0 +1,4 @@ +var dir_b98ee8c279438f4b21bd61b97608bcde = +[ + [ "dsps_wind.h", "dsps__wind_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep.md5 b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep.md5 new file mode 100644 index 0000000..214c82c --- /dev/null +++ b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep.md5 @@ -0,0 +1 @@ +adfc034e4c248d77b24cb1af17752bb4 \ No newline at end of file diff --git a/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep.svg b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep.svg new file mode 100644 index 0000000..ef51a43 --- /dev/null +++ b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + +include + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + + +dir_3d8f91d165c61940606cc67fb2b386a2 + + +blackman_harris + + + + + +dir_e878e923ef12715a74c793cf72e4f313 + + +blackman + + + + + +dir_4d5843eee21c7cebfad28c6fb5869b90 + + +nuttall + + + + + +dir_921d70230c427007d8b7307843a5136d + + +hann + + + + + +dir_a953ba1f31684a48ed0144a63a293ae9 + + +blackman_nuttall + + + + + +dir_cc06919342db86795a48353da98f8a52 + + +flat_top + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde + + +include + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_3d8f91d165c61940606cc67fb2b386a2 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_e878e923ef12715a74c793cf72e4f313 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_4d5843eee21c7cebfad28c6fb5869b90 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_921d70230c427007d8b7307843a5136d + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_a953ba1f31684a48ed0144a63a293ae9 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_cc06919342db86795a48353da98f8a52 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep_org.svg b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep_org.svg new file mode 100644 index 0000000..5415e60 --- /dev/null +++ b/docs/html/dir_b98ee8c279438f4b21bd61b97608bcde_dep_org.svg @@ -0,0 +1,161 @@ + + + + + + +include + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + + +dir_3d8f91d165c61940606cc67fb2b386a2 + + +blackman_harris + + + + + +dir_e878e923ef12715a74c793cf72e4f313 + + +blackman + + + + + +dir_4d5843eee21c7cebfad28c6fb5869b90 + + +nuttall + + + + + +dir_921d70230c427007d8b7307843a5136d + + +hann + + + + + +dir_a953ba1f31684a48ed0144a63a293ae9 + + +blackman_nuttall + + + + + +dir_cc06919342db86795a48353da98f8a52 + + +flat_top + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde + + +include + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_3d8f91d165c61940606cc67fb2b386a2 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_e878e923ef12715a74c793cf72e4f313 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_4d5843eee21c7cebfad28c6fb5869b90 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_921d70230c427007d8b7307843a5136d + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_a953ba1f31684a48ed0144a63a293ae9 + + + + + + +1 + + + + + +dir_b98ee8c279438f4b21bd61b97608bcde->dir_cc06919342db86795a48353da98f8a52 + + + + + + +1 + + + + + diff --git a/docs/html/dir_bab3575675640a99c668cf654a35a16e.html b/docs/html/dir_bab3575675640a99c668cf654a35a16e.html new file mode 100644 index 0000000..2d2f5f9 --- /dev/null +++ b/docs/html/dir_bab3575675640a99c668cf654a35a16e.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: m5stack_core_s3 Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
m5stack_core_s3 Directory Reference
+
+
+
+Directory dependency graph for m5stack_core_s3:
+
+
+
+ + + +

+Directories

 
apps
+
+
+ +
+ + + + diff --git a/docs/html/dir_bab3575675640a99c668cf654a35a16e.js b/docs/html/dir_bab3575675640a99c668cf654a35a16e.js new file mode 100644 index 0000000..9561136 --- /dev/null +++ b/docs/html/dir_bab3575675640a99c668cf654a35a16e.js @@ -0,0 +1,4 @@ +var dir_bab3575675640a99c668cf654a35a16e = +[ + [ "apps", "dir_0db1884497eb987b5f550d1edc49e18a.html", "dir_0db1884497eb987b5f550d1edc49e18a" ] +]; \ No newline at end of file diff --git a/docs/html/dir_bab3575675640a99c668cf654a35a16e_dep.md5 b/docs/html/dir_bab3575675640a99c668cf654a35a16e_dep.md5 new file mode 100644 index 0000000..06a671d --- /dev/null +++ b/docs/html/dir_bab3575675640a99c668cf654a35a16e_dep.md5 @@ -0,0 +1 @@ +ac715edcbda4a414dc721007285047a6 \ No newline at end of file diff --git a/docs/html/dir_bab3575675640a99c668cf654a35a16e_dep.svg b/docs/html/dir_bab3575675640a99c668cf654a35a16e_dep.svg new file mode 100644 index 0000000..076d2f4 --- /dev/null +++ b/docs/html/dir_bab3575675640a99c668cf654a35a16e_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +m5stack_core_s3 + +clusterdir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + +clusterdir_bab3575675640a99c668cf654a35a16e + + + + + + + +dir_bab3575675640a99c668cf654a35a16e +m5stack_core_s3 + + + +dir_0db1884497eb987b5f550d1edc49e18a + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0db1884497eb987b5f550d1edc49e18a->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + + + + + + diff --git a/docs/html/dir_bab3575675640a99c668cf654a35a16e_dep_org.svg b/docs/html/dir_bab3575675640a99c668cf654a35a16e_dep_org.svg new file mode 100644 index 0000000..cf5b1cb --- /dev/null +++ b/docs/html/dir_bab3575675640a99c668cf654a35a16e_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +m5stack_core_s3 + +clusterdir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + +clusterdir_bab3575675640a99c668cf654a35a16e + + + + + + + +dir_bab3575675640a99c668cf654a35a16e +m5stack_core_s3 + + + +dir_0db1884497eb987b5f550d1edc49e18a + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_0db1884497eb987b5f550d1edc49e18a->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + diff --git a/docs/html/dir_c0c0cd07563e9956c88b53baae458253.html b/docs/html/dir_c0c0cd07563e9956c88b53baae458253.html new file mode 100644 index 0000000..d6357dc --- /dev/null +++ b/docs/html/dir_c0c0cd07563e9956c88b53baae458253.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + +

+Files

 
dsps_add.h
 
dsps_add_platform.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_c0c0cd07563e9956c88b53baae458253.js b/docs/html/dir_c0c0cd07563e9956c88b53baae458253.js new file mode 100644 index 0000000..4137431 --- /dev/null +++ b/docs/html/dir_c0c0cd07563e9956c88b53baae458253.js @@ -0,0 +1,5 @@ +var dir_c0c0cd07563e9956c88b53baae458253 = +[ + [ "dsps_add.h", "dsps__add_8h.html", "dsps__add_8h" ], + [ "dsps_add_platform.h", "dsps__add__platform_8h.html", null ] +]; \ No newline at end of file diff --git a/docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep.md5 b/docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep.md5 new file mode 100644 index 0000000..4efe325 --- /dev/null +++ b/docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep.md5 @@ -0,0 +1 @@ +10c790aa6c17219558dae466b2e43b44 \ No newline at end of file diff --git a/docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep.svg b/docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep.svg new file mode 100644 index 0000000..bacc68d --- /dev/null +++ b/docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_c0c0cd07563e9956c88b53baae458253 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_c0c0cd07563e9956c88b53baae458253->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep_org.svg b/docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep_org.svg new file mode 100644 index 0000000..e90e1a1 --- /dev/null +++ b/docs/html/dir_c0c0cd07563e9956c88b53baae458253_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_c0c0cd07563e9956c88b53baae458253 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_c0c0cd07563e9956c88b53baae458253->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_c2033497fb0ab786bab9abfae6d47534.html b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534.html new file mode 100644 index 0000000..dd77288 --- /dev/null +++ b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: addc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
addc Directory Reference
+
+
+
+Directory dependency graph for addc:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_c2033497fb0ab786bab9abfae6d47534.js b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534.js new file mode 100644 index 0000000..d47cc9a --- /dev/null +++ b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534.js @@ -0,0 +1,5 @@ +var dir_c2033497fb0ab786bab9abfae6d47534 = +[ + [ "float", "dir_23982065b3648efc06e84985cbc62760.html", "dir_23982065b3648efc06e84985cbc62760" ], + [ "include", "dir_b6a1715e83971bfcc7e394ffdb6f5543.html", "dir_b6a1715e83971bfcc7e394ffdb6f5543" ] +]; \ No newline at end of file diff --git a/docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep.md5 b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep.md5 new file mode 100644 index 0000000..df30beb --- /dev/null +++ b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep.md5 @@ -0,0 +1 @@ +bf6d6423d5ca3b158369bb24ac4d3bca \ No newline at end of file diff --git a/docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep.svg b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep.svg new file mode 100644 index 0000000..b15570b --- /dev/null +++ b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +addc + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_c2033497fb0ab786bab9abfae6d47534 + + + + + + + +dir_c2033497fb0ab786bab9abfae6d47534 +addc + + + +dir_23982065b3648efc06e84985cbc62760 + + +float + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543 + + +include + + + + + +dir_23982065b3648efc06e84985cbc62760->dir_b6a1715e83971bfcc7e394ffdb6f5543 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep_org.svg b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep_org.svg new file mode 100644 index 0000000..166bbc1 --- /dev/null +++ b/docs/html/dir_c2033497fb0ab786bab9abfae6d47534_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +addc + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_c2033497fb0ab786bab9abfae6d47534 + + + + + + + +dir_c2033497fb0ab786bab9abfae6d47534 +addc + + + +dir_23982065b3648efc06e84985cbc62760 + + +float + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543 + + +include + + + + + +dir_23982065b3648efc06e84985cbc62760->dir_b6a1715e83971bfcc7e394ffdb6f5543 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_b6a1715e83971bfcc7e394ffdb6f5543->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.html b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.html new file mode 100644 index 0000000..fcdbcf8 --- /dev/null +++ b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: img_to_3d_matrix Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
img_to_3d_matrix Directory Reference
+
+
+
+Directory dependency graph for img_to_3d_matrix:
+
+
+
+ + + +

+Directories

 
templates
+
+
+ +
+ + + + diff --git a/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.js b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.js new file mode 100644 index 0000000..77eae51 --- /dev/null +++ b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b.js @@ -0,0 +1,4 @@ +var dir_c5b9f8f4a3ee5f165d6b260641ed6a6b = +[ + [ "templates", "dir_4675de09a54f36e152c3aa8af80b2677.html", "dir_4675de09a54f36e152c3aa8af80b2677" ] +]; \ No newline at end of file diff --git a/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.md5 b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.md5 new file mode 100644 index 0000000..ca431c5 --- /dev/null +++ b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.md5 @@ -0,0 +1 @@ +ef45dbdd2cbc36dad16df3ed6dd7bc40 \ No newline at end of file diff --git a/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.svg b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.svg new file mode 100644 index 0000000..462a0da --- /dev/null +++ b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + +img_to_3d_matrix + +clusterdir_171b4edb7086532dd11580f43732b9a7 + + +graphics + + + + +clusterdir_c5b9f8f4a3ee5f165d6b260641ed6a6b + + + + + + + +dir_c5b9f8f4a3ee5f165d6b260641ed6a6b +img_to_3d_matrix + + + +dir_4675de09a54f36e152c3aa8af80b2677 + + +templates + + + + + + + + + + diff --git a/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep_org.svg b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep_org.svg new file mode 100644 index 0000000..7449e9f --- /dev/null +++ b/docs/html/dir_c5b9f8f4a3ee5f165d6b260641ed6a6b_dep_org.svg @@ -0,0 +1,41 @@ + + + + + + +img_to_3d_matrix + +clusterdir_171b4edb7086532dd11580f43732b9a7 + + +graphics + + + + +clusterdir_c5b9f8f4a3ee5f165d6b260641ed6a6b + + + + + + + +dir_c5b9f8f4a3ee5f165d6b260641ed6a6b +img_to_3d_matrix + + + +dir_4675de09a54f36e152c3aa8af80b2677 + + +templates + + + + + diff --git a/docs/html/dir_c5eb101bd20917ef236da0cb98586871.html b/docs/html/dir_c5eb101bd20917ef236da0cb98586871.html new file mode 100644 index 0000000..2ee15c0 --- /dev/null +++ b/docs/html/dir_c5eb101bd20917ef236da0cb98586871.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: d1468452 Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
d1468452 Directory Reference
+
+
+
+Directory dependency graph for d1468452:
+
+
+
+ + + +

+Directories

 
apps
+
+
+ +
+ + + + diff --git a/docs/html/dir_c5eb101bd20917ef236da0cb98586871.js b/docs/html/dir_c5eb101bd20917ef236da0cb98586871.js new file mode 100644 index 0000000..e276e5e --- /dev/null +++ b/docs/html/dir_c5eb101bd20917ef236da0cb98586871.js @@ -0,0 +1,4 @@ +var dir_c5eb101bd20917ef236da0cb98586871 = +[ + [ "apps", "dir_16c85ce1c9ed281be79921a05621351c.html", "dir_16c85ce1c9ed281be79921a05621351c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep.md5 b/docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep.md5 new file mode 100644 index 0000000..a03f1b8 --- /dev/null +++ b/docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep.md5 @@ -0,0 +1 @@ +4422d25a67563f00e106448f88ca2c61 \ No newline at end of file diff --git a/docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep.svg b/docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep.svg new file mode 100644 index 0000000..f8ee416 --- /dev/null +++ b/docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +d1468452 + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + +clusterdir_c5eb101bd20917ef236da0cb98586871 + + + + + + + +dir_c5eb101bd20917ef236da0cb98586871 +d1468452 + + + +dir_16c85ce1c9ed281be79921a05621351c + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_16c85ce1c9ed281be79921a05621351c->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep_org.svg b/docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep_org.svg new file mode 100644 index 0000000..c48e064 --- /dev/null +++ b/docs/html/dir_c5eb101bd20917ef236da0cb98586871_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +d1468452 + +clusterdir_5a9612cb5743a88a5354e5e317c96db5 + + +external_examples + + + + +clusterdir_c5eb101bd20917ef236da0cb98586871 + + + + + + + +dir_c5eb101bd20917ef236da0cb98586871 +d1468452 + + + +dir_16c85ce1c9ed281be79921a05621351c + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_16c85ce1c9ed281be79921a05621351c->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + diff --git a/docs/html/dir_c5face973da07f52b4ad2936f0de0daf.html b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf.html new file mode 100644 index 0000000..118d76f --- /dev/null +++ b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + +

+Files

 
dsps_mul_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_c5face973da07f52b4ad2936f0de0daf.js b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf.js new file mode 100644 index 0000000..b8af741 --- /dev/null +++ b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf.js @@ -0,0 +1,4 @@ +var dir_c5face973da07f52b4ad2936f0de0daf = +[ + [ "dsps_mul_f32_ansi.c", "dsps__mul__f32__ansi_8c.html", "dsps__mul__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep.md5 b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep.md5 new file mode 100644 index 0000000..94ec8c5 --- /dev/null +++ b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep.md5 @@ -0,0 +1 @@ +8e80cb2a56a14fbf3fbfa1c7c85159d5 \ No newline at end of file diff --git a/docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep.svg b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep.svg new file mode 100644 index 0000000..85f5570 --- /dev/null +++ b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +float + +clusterdir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55 + + +include + + + + + +dir_c5face973da07f52b4ad2936f0de0daf + + +float + + + + + +dir_c5face973da07f52b4ad2936f0de0daf->dir_21e1fdd2586e76aa0db295cc144c9a55 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep_org.svg b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep_org.svg new file mode 100644 index 0000000..676ffd6 --- /dev/null +++ b/docs/html/dir_c5face973da07f52b4ad2936f0de0daf_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +float + +clusterdir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55 + + +include + + + + + +dir_c5face973da07f52b4ad2936f0de0daf + + +float + + + + + +dir_c5face973da07f52b4ad2936f0de0daf->dir_21e1fdd2586e76aa0db295cc144c9a55 + + + + + + +1 + + + + + diff --git a/docs/html/dir_cc06919342db86795a48353da98f8a52.html b/docs/html/dir_cc06919342db86795a48353da98f8a52.html new file mode 100644 index 0000000..84e748b --- /dev/null +++ b/docs/html/dir_cc06919342db86795a48353da98f8a52.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: flat_top Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
flat_top Directory Reference
+
+
+
+Directory dependency graph for flat_top:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_cc06919342db86795a48353da98f8a52.js b/docs/html/dir_cc06919342db86795a48353da98f8a52.js new file mode 100644 index 0000000..7a6478a --- /dev/null +++ b/docs/html/dir_cc06919342db86795a48353da98f8a52.js @@ -0,0 +1,5 @@ +var dir_cc06919342db86795a48353da98f8a52 = +[ + [ "float", "dir_2617388a3e5694eabf03217543075dbd.html", "dir_2617388a3e5694eabf03217543075dbd" ], + [ "include", "dir_b06b87161308abcdcf61a00173e809b3.html", "dir_b06b87161308abcdcf61a00173e809b3" ] +]; \ No newline at end of file diff --git a/docs/html/dir_cc06919342db86795a48353da98f8a52_dep.md5 b/docs/html/dir_cc06919342db86795a48353da98f8a52_dep.md5 new file mode 100644 index 0000000..a42d5b0 --- /dev/null +++ b/docs/html/dir_cc06919342db86795a48353da98f8a52_dep.md5 @@ -0,0 +1 @@ +3895c5b206cf446788c536d7604429b2 \ No newline at end of file diff --git a/docs/html/dir_cc06919342db86795a48353da98f8a52_dep.svg b/docs/html/dir_cc06919342db86795a48353da98f8a52_dep.svg new file mode 100644 index 0000000..05dcfe7 --- /dev/null +++ b/docs/html/dir_cc06919342db86795a48353da98f8a52_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +flat_top + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_cc06919342db86795a48353da98f8a52 + + + + + + + +dir_cc06919342db86795a48353da98f8a52 +flat_top + + + +dir_2617388a3e5694eabf03217543075dbd + + +float + + + + + +dir_b06b87161308abcdcf61a00173e809b3 + + +include + + + + + +dir_2617388a3e5694eabf03217543075dbd->dir_b06b87161308abcdcf61a00173e809b3 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_cc06919342db86795a48353da98f8a52_dep_org.svg b/docs/html/dir_cc06919342db86795a48353da98f8a52_dep_org.svg new file mode 100644 index 0000000..b9454cc --- /dev/null +++ b/docs/html/dir_cc06919342db86795a48353da98f8a52_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +flat_top + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_cc06919342db86795a48353da98f8a52 + + + + + + + +dir_cc06919342db86795a48353da98f8a52 +flat_top + + + +dir_2617388a3e5694eabf03217543075dbd + + +float + + + + + +dir_b06b87161308abcdcf61a00173e809b3 + + +include + + + + + +dir_2617388a3e5694eabf03217543075dbd->dir_b06b87161308abcdcf61a00173e809b3 + + + + + + +1 + + + + + diff --git a/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18.html b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18.html new file mode 100644 index 0000000..2db5751 --- /dev/null +++ b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: math Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
math Directory Reference
+
+
+
+Directory dependency graph for math:
+
+
+
+ + + + + + + + + +

+Directories

 
add
 
addc
 
include
 
mul
 
mulc
 
sqrt
 
sub
+
+
+ +
+ + + + diff --git a/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18.js b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18.js new file mode 100644 index 0000000..4348e6f --- /dev/null +++ b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18.js @@ -0,0 +1,10 @@ +var dir_ccd16ee69178f7f8a2cbd33b34cfbb18 = +[ + [ "add", "dir_4d36d9e87737a2136b2d2e486143979d.html", "dir_4d36d9e87737a2136b2d2e486143979d" ], + [ "addc", "dir_c2033497fb0ab786bab9abfae6d47534.html", "dir_c2033497fb0ab786bab9abfae6d47534" ], + [ "include", "dir_03855b1c5f3acbaf4daeb650f245a4c9.html", "dir_03855b1c5f3acbaf4daeb650f245a4c9" ], + [ "mul", "dir_65ea5eca559d12155f129d4142988850.html", "dir_65ea5eca559d12155f129d4142988850" ], + [ "mulc", "dir_176ce0f9603aed617a2000f9b4957e6f.html", "dir_176ce0f9603aed617a2000f9b4957e6f" ], + [ "sqrt", "dir_7ccf0c48f6a40a31b8e32f58e6b3bd59.html", "dir_7ccf0c48f6a40a31b8e32f58e6b3bd59" ], + [ "sub", "dir_dff87212d3726025066eaf86c6c94532.html", "dir_dff87212d3726025066eaf86c6c94532" ] +]; \ No newline at end of file diff --git a/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.md5 b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.md5 new file mode 100644 index 0000000..652a366 --- /dev/null +++ b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.md5 @@ -0,0 +1 @@ +71228290986bf54b366efafdf77c6a86 \ No newline at end of file diff --git a/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.svg b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.svg new file mode 100644 index 0000000..0f975a4 --- /dev/null +++ b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep.svg @@ -0,0 +1,299 @@ + + + + + + + + + + + + +math + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 +math + + + +dir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_4d36d9e87737a2136b2d2e486143979d->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_c2033497fb0ab786bab9abfae6d47534 + + +addc + + + + + +dir_c2033497fb0ab786bab9abfae6d47534->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9 + + +include + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_c2033497fb0ab786bab9abfae6d47534 + + + + + + +1 + + + + + +dir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_65ea5eca559d12155f129d4142988850 + + + + + + +1 + + + + + +dir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_176ce0f9603aed617a2000f9b4957e6f + + + + + + +1 + + + + + +dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + +sqrt + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + + + + + +1 + + + + + +dir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_dff87212d3726025066eaf86c6c94532 + + + + + + +1 + + + + + +dir_65ea5eca559d12155f129d4142988850->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_176ce0f9603aed617a2000f9b4957e6f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_7ccf0c48f6a40a31b8e32f58e6b3bd59->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_dff87212d3726025066eaf86c6c94532->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_dff87212d3726025066eaf86c6c94532->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep_org.svg b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep_org.svg new file mode 100644 index 0000000..9ef4770 --- /dev/null +++ b/docs/html/dir_ccd16ee69178f7f8a2cbd33b34cfbb18_dep_org.svg @@ -0,0 +1,273 @@ + + + + + + +math + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 +math + + + +dir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_4d36d9e87737a2136b2d2e486143979d->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_c2033497fb0ab786bab9abfae6d47534 + + +addc + + + + + +dir_c2033497fb0ab786bab9abfae6d47534->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9 + + +include + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_c2033497fb0ab786bab9abfae6d47534 + + + + + + +1 + + + + + +dir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_65ea5eca559d12155f129d4142988850 + + + + + + +1 + + + + + +dir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_176ce0f9603aed617a2000f9b4957e6f + + + + + + +1 + + + + + +dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + +sqrt + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_7ccf0c48f6a40a31b8e32f58e6b3bd59 + + + + + + +1 + + + + + +dir_dff87212d3726025066eaf86c6c94532 + + +sub + + + + + +dir_03855b1c5f3acbaf4daeb650f245a4c9->dir_dff87212d3726025066eaf86c6c94532 + + + + + + +1 + + + + + +dir_65ea5eca559d12155f129d4142988850->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_176ce0f9603aed617a2000f9b4957e6f->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_7ccf0c48f6a40a31b8e32f58e6b3bd59->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_dff87212d3726025066eaf86c6c94532->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_dff87212d3726025066eaf86c6c94532->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + diff --git a/docs/html/dir_ce1baaf5350db63792a033d5f80bd725.html b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725.html new file mode 100644 index 0000000..d8d5525 --- /dev/null +++ b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: fixed Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fixed Directory Reference
+
+
+
+Directory dependency graph for fixed:
+
+
+
+ + + + +

+Files

 
dsps_mul_s16_ansi.c
 
dsps_mul_s8_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_ce1baaf5350db63792a033d5f80bd725.js b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725.js new file mode 100644 index 0000000..2c647df --- /dev/null +++ b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725.js @@ -0,0 +1,5 @@ +var dir_ce1baaf5350db63792a033d5f80bd725 = +[ + [ "dsps_mul_s16_ansi.c", "dsps__mul__s16__ansi_8c.html", "dsps__mul__s16__ansi_8c" ], + [ "dsps_mul_s8_ansi.c", "dsps__mul__s8__ansi_8c.html", "dsps__mul__s8__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep.md5 b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep.md5 new file mode 100644 index 0000000..c454775 --- /dev/null +++ b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep.md5 @@ -0,0 +1 @@ +f61b4c8ded6685c6b54bf0431c8640d5 \ No newline at end of file diff --git a/docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep.svg b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep.svg new file mode 100644 index 0000000..108f953 --- /dev/null +++ b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +fixed + +clusterdir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55 + + +include + + + + + +dir_ce1baaf5350db63792a033d5f80bd725 + + +fixed + + + + + +dir_ce1baaf5350db63792a033d5f80bd725->dir_21e1fdd2586e76aa0db295cc144c9a55 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep_org.svg b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep_org.svg new file mode 100644 index 0000000..461fbbf --- /dev/null +++ b/docs/html/dir_ce1baaf5350db63792a033d5f80bd725_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +fixed + +clusterdir_65ea5eca559d12155f129d4142988850 + + +mul + + + + + +dir_21e1fdd2586e76aa0db295cc144c9a55 + + +include + + + + + +dir_ce1baaf5350db63792a033d5f80bd725 + + +fixed + + + + + +dir_ce1baaf5350db63792a033d5f80bd725->dir_21e1fdd2586e76aa0db295cc144c9a55 + + + + + + +2 + + + + + diff --git a/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4.html b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4.html new file mode 100644 index 0000000..1111837 --- /dev/null +++ b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: fixed Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fixed Directory Reference
+
+
+
+Directory dependency graph for fixed:
+
+
+
+ + + +

+Files

 
dsps_fft2r_sc16_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4.js b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4.js new file mode 100644 index 0000000..b726233 --- /dev/null +++ b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4.js @@ -0,0 +1,4 @@ +var dir_d189b23d12b196e6a83e21b0964d7cc4 = +[ + [ "dsps_fft2r_sc16_ansi.c", "dsps__fft2r__sc16__ansi_8c.html", "dsps__fft2r__sc16__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep.md5 b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep.md5 new file mode 100644 index 0000000..e81d787 --- /dev/null +++ b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep.md5 @@ -0,0 +1 @@ +52c41e46bf2896bfe7833ed564512c9b \ No newline at end of file diff --git a/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep.svg b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep.svg new file mode 100644 index 0000000..463c06b --- /dev/null +++ b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +fixed + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4 + + +fixed + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + + + + + + diff --git a/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep_org.svg b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep_org.svg new file mode 100644 index 0000000..64f8d64 --- /dev/null +++ b/docs/html/dir_d189b23d12b196e6a83e21b0964d7cc4_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +fixed + +clusterdir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_1d572fcc0f444402026b5028f7fd32af + + +include + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4 + + +fixed + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4->dir_1d572fcc0f444402026b5028f7fd32af + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_d189b23d12b196e6a83e21b0964d7cc4->dir_e78af46276061306d5e012847576d2b2 + + + + + + +4 + + + + + diff --git a/docs/html/dir_d3a7bf488950df7c258d146af03d9440.html b/docs/html/dir_d3a7bf488950df7c258d146af03d9440.html new file mode 100644 index 0000000..58dbb7b --- /dev/null +++ b/docs/html/dir_d3a7bf488950df7c258d146af03d9440.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: iir Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
iir Directory Reference
+
+
+
+Directory dependency graph for iir:
+
+
+
+ + + + + +

+Directories

 
biquad
 
include
 
test_sim
+
+
+ +
+ + + + diff --git a/docs/html/dir_d3a7bf488950df7c258d146af03d9440.js b/docs/html/dir_d3a7bf488950df7c258d146af03d9440.js new file mode 100644 index 0000000..03208c1 --- /dev/null +++ b/docs/html/dir_d3a7bf488950df7c258d146af03d9440.js @@ -0,0 +1,6 @@ +var dir_d3a7bf488950df7c258d146af03d9440 = +[ + [ "biquad", "dir_0f8480e348776be0b4173a763a451c02.html", "dir_0f8480e348776be0b4173a763a451c02" ], + [ "include", "dir_1f3faa83e2fcedf83b0357f6cc73c1df.html", "dir_1f3faa83e2fcedf83b0357f6cc73c1df" ], + [ "test_sim", "dir_40de81f340cbaee2d58ba5dafcdb1bc7.html", "dir_40de81f340cbaee2d58ba5dafcdb1bc7" ] +]; \ No newline at end of file diff --git a/docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep.md5 b/docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep.md5 new file mode 100644 index 0000000..11c7af7 --- /dev/null +++ b/docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep.md5 @@ -0,0 +1 @@ +e9d2b9263b5deb4074ea5a6b0b9805ea \ No newline at end of file diff --git a/docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep.svg b/docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep.svg new file mode 100644 index 0000000..076e59d --- /dev/null +++ b/docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep.svg @@ -0,0 +1,159 @@ + + + + + + + + + + + + +iir + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_d3a7bf488950df7c258d146af03d9440 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_d3a7bf488950df7c258d146af03d9440 +iir + + + +dir_0f8480e348776be0b4173a763a451c02 + + +biquad + + + + + +dir_0f8480e348776be0b4173a763a451c02->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df + + +include + + + + + +dir_0f8480e348776be0b4173a763a451c02->dir_1f3faa83e2fcedf83b0357f6cc73c1df + + + + + + +3 + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7 + + +test_sim + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7->dir_1f3faa83e2fcedf83b0357f6cc73c1df + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep_org.svg b/docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep_org.svg new file mode 100644 index 0000000..d64da29 --- /dev/null +++ b/docs/html/dir_d3a7bf488950df7c258d146af03d9440_dep_org.svg @@ -0,0 +1,133 @@ + + + + + + +iir + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_d3a7bf488950df7c258d146af03d9440 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_d3a7bf488950df7c258d146af03d9440 +iir + + + +dir_0f8480e348776be0b4173a763a451c02 + + +biquad + + + + + +dir_0f8480e348776be0b4173a763a451c02->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df + + +include + + + + + +dir_0f8480e348776be0b4173a763a451c02->dir_1f3faa83e2fcedf83b0357f6cc73c1df + + + + + + +3 + + + + + +dir_1f3faa83e2fcedf83b0357f6cc73c1df->dir_e78af46276061306d5e012847576d2b2 + + + + + + +2 + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7 + + +test_sim + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + +dir_40de81f340cbaee2d58ba5dafcdb1bc7->dir_1f3faa83e2fcedf83b0357f6cc73c1df + + + + + + +1 + + + + + diff --git a/docs/html/dir_d889323c3d75be7406c85891426fb089.html b/docs/html/dir_d889323c3d75be7406c85891426fb089.html new file mode 100644 index 0000000..ef969be --- /dev/null +++ b/docs/html/dir_d889323c3d75be7406c85891426fb089.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: conv Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
conv Directory Reference
+
+
+
+Directory dependency graph for conv:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_d889323c3d75be7406c85891426fb089.js b/docs/html/dir_d889323c3d75be7406c85891426fb089.js new file mode 100644 index 0000000..bc08245 --- /dev/null +++ b/docs/html/dir_d889323c3d75be7406c85891426fb089.js @@ -0,0 +1,5 @@ +var dir_d889323c3d75be7406c85891426fb089 = +[ + [ "float", "dir_e01b86c47b4b9f49293132a6e1dd8d05.html", "dir_e01b86c47b4b9f49293132a6e1dd8d05" ], + [ "include", "dir_de59488d4ecb668d05d95d08fff34891.html", "dir_de59488d4ecb668d05d95d08fff34891" ] +]; \ No newline at end of file diff --git a/docs/html/dir_d889323c3d75be7406c85891426fb089_dep.md5 b/docs/html/dir_d889323c3d75be7406c85891426fb089_dep.md5 new file mode 100644 index 0000000..f464e55 --- /dev/null +++ b/docs/html/dir_d889323c3d75be7406c85891426fb089_dep.md5 @@ -0,0 +1 @@ +ac2e97c457eed1f6f68aebd0e4193c19 \ No newline at end of file diff --git a/docs/html/dir_d889323c3d75be7406c85891426fb089_dep.svg b/docs/html/dir_d889323c3d75be7406c85891426fb089_dep.svg new file mode 100644 index 0000000..b02a1a2 --- /dev/null +++ b/docs/html/dir_d889323c3d75be7406c85891426fb089_dep.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + +conv + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_d889323c3d75be7406c85891426fb089 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_d889323c3d75be7406c85891426fb089 +conv + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05 + + +float + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + +dir_de59488d4ecb668d05d95d08fff34891 + + +include + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05->dir_de59488d4ecb668d05d95d08fff34891 + + + + + + +4 + + + + + +dir_de59488d4ecb668d05d95d08fff34891->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_d889323c3d75be7406c85891426fb089_dep_org.svg b/docs/html/dir_d889323c3d75be7406c85891426fb089_dep_org.svg new file mode 100644 index 0000000..c96b463 --- /dev/null +++ b/docs/html/dir_d889323c3d75be7406c85891426fb089_dep_org.svg @@ -0,0 +1,98 @@ + + + + + + +conv + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_d889323c3d75be7406c85891426fb089 + + + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_d889323c3d75be7406c85891426fb089 +conv + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05 + + +float + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + +dir_de59488d4ecb668d05d95d08fff34891 + + +include + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05->dir_de59488d4ecb668d05d95d08fff34891 + + + + + + +4 + + + + + +dir_de59488d4ecb668d05d95d08fff34891->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + diff --git a/docs/html/dir_d8d2b30d510138cdb5096652440331d7.html b/docs/html/dir_d8d2b30d510138cdb5096652440331d7.html new file mode 100644 index 0000000..50d5ae7 --- /dev/null +++ b/docs/html/dir_d8d2b30d510138cdb5096652440331d7.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: include_private Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include_private Directory Reference
+
+
+
+Directory dependency graph for include_private:
+
+
+
+ + + + + +

+Files

 
cdc.h
 
descriptors_control.h
 
usb_descriptors.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_d8d2b30d510138cdb5096652440331d7.js b/docs/html/dir_d8d2b30d510138cdb5096652440331d7.js new file mode 100644 index 0000000..56f017d --- /dev/null +++ b/docs/html/dir_d8d2b30d510138cdb5096652440331d7.js @@ -0,0 +1,6 @@ +var dir_d8d2b30d510138cdb5096652440331d7 = +[ + [ "cdc.h", "cdc_8h.html", "cdc_8h" ], + [ "descriptors_control.h", "descriptors__control_8h.html", "descriptors__control_8h" ], + [ "usb_descriptors.h", "usb__descriptors_8h.html", "usb__descriptors_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep.md5 b/docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep.md5 new file mode 100644 index 0000000..0a212e5 --- /dev/null +++ b/docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep.md5 @@ -0,0 +1 @@ +13d3d781232738567990e0f7eb3cc2fa \ No newline at end of file diff --git a/docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep.svg b/docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep.svg new file mode 100644 index 0000000..38ce59c --- /dev/null +++ b/docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include_private + +clusterdir_2606190ade5f42f0803fb562b0f2687e + + +espressif__esp_tinyusb + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc + + +include + + + + + +dir_d8d2b30d510138cdb5096652440331d7 + + +include_private + + + + + +dir_d8d2b30d510138cdb5096652440331d7->dir_97e7160f37b959978d0c3621cc0a2dfc + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep_org.svg b/docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep_org.svg new file mode 100644 index 0000000..3ebd729 --- /dev/null +++ b/docs/html/dir_d8d2b30d510138cdb5096652440331d7_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include_private + +clusterdir_2606190ade5f42f0803fb562b0f2687e + + +espressif__esp_tinyusb + + + + + +dir_97e7160f37b959978d0c3621cc0a2dfc + + +include + + + + + +dir_d8d2b30d510138cdb5096652440331d7 + + +include_private + + + + + +dir_d8d2b30d510138cdb5096652440331d7->dir_97e7160f37b959978d0c3621cc0a2dfc + + + + + + +3 + + + + + diff --git a/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde.html b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde.html new file mode 100644 index 0000000..8a28d40 --- /dev/null +++ b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: templates Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
templates Directory Reference
+
+
+
+Directory dependency graph for templates:
+
+
+
+ + + + +

+Files

 
template_img_to_3d.c
 
template_img_to_3d.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde.js b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde.js new file mode 100644 index 0000000..6c8e4c7 --- /dev/null +++ b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde.js @@ -0,0 +1,5 @@ +var dir_da1af8bdfc7d3f2dbe82319f48856cde = +[ + [ "template_img_to_3d.c", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html", null ], + [ "template_img_to_3d.h", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep.md5 b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep.md5 new file mode 100644 index 0000000..38935eb --- /dev/null +++ b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep.md5 @@ -0,0 +1 @@ +880bf3be3a7b41f685a5d9aeee072417 \ No newline at end of file diff --git a/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep.svg b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep.svg new file mode 100644 index 0000000..aa8d3e8 --- /dev/null +++ b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +templates + +clusterdir_de540661fcc17919ae935eb1da844485 + + +img_to_3d_matrix + + + + + +dir_da1af8bdfc7d3f2dbe82319f48856cde + + +templates + + + + + + + + + + diff --git a/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep_org.svg b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep_org.svg new file mode 100644 index 0000000..c784652 --- /dev/null +++ b/docs/html/dir_da1af8bdfc7d3f2dbe82319f48856cde_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +templates + +clusterdir_de540661fcc17919ae935eb1da844485 + + +img_to_3d_matrix + + + + + +dir_da1af8bdfc7d3f2dbe82319f48856cde + + +templates + + + + + diff --git a/docs/html/dir_daeea571a943a8adb5cad931a75d2354.html b/docs/html/dir_daeea571a943a8adb5cad931a75d2354.html new file mode 100644 index 0000000..b6767cb --- /dev/null +++ b/docs/html/dir_daeea571a943a8adb5cad931a75d2354.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
ekf.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_daeea571a943a8adb5cad931a75d2354.js b/docs/html/dir_daeea571a943a8adb5cad931a75d2354.js new file mode 100644 index 0000000..8a59be5 --- /dev/null +++ b/docs/html/dir_daeea571a943a8adb5cad931a75d2354.js @@ -0,0 +1,4 @@ +var dir_daeea571a943a8adb5cad931a75d2354 = +[ + [ "ekf.h", "ekf_8h.html", "ekf_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep.md5 b/docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep.md5 new file mode 100644 index 0000000..98d7c31 --- /dev/null +++ b/docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep.md5 @@ -0,0 +1 @@ +c588b4ee90180437ead50a536d1268c3 \ No newline at end of file diff --git a/docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep.svg b/docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep.svg new file mode 100644 index 0000000..7065039 --- /dev/null +++ b/docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_daeea571a943a8adb5cad931a75d2354 + + +include + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_daeea571a943a8adb5cad931a75d2354->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep_org.svg b/docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep_org.svg new file mode 100644 index 0000000..e56bfb3 --- /dev/null +++ b/docs/html/dir_daeea571a943a8adb5cad931a75d2354_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_daeea571a943a8adb5cad931a75d2354 + + +include + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_daeea571a943a8adb5cad931a75d2354->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + diff --git a/docs/html/dir_db7b1604ad652de4066dd6f160251f65.html b/docs/html/dir_db7b1604ad652de4066dd6f160251f65.html new file mode 100644 index 0000000..b75f072 --- /dev/null +++ b/docs/html/dir_db7b1604ad652de4066dd6f160251f65.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + + +

+Files

 
3d_kalman_demo.cpp
 
bmi270_context.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_db7b1604ad652de4066dd6f160251f65.js b/docs/html/dir_db7b1604ad652de4066dd6f160251f65.js new file mode 100644 index 0000000..d2bb4e9 --- /dev/null +++ b/docs/html/dir_db7b1604ad652de4066dd6f160251f65.js @@ -0,0 +1,5 @@ +var dir_db7b1604ad652de4066dd6f160251f65 = +[ + [ "3d_kalman_demo.cpp", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp" ], + [ "bmi270_context.c", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep.md5 b/docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep.md5 new file mode 100644 index 0000000..8d46e73 --- /dev/null +++ b/docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep.md5 @@ -0,0 +1 @@ +80dcffb826d0e499e46bb208af8d6bb4 \ No newline at end of file diff --git a/docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep.svg b/docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep.svg new file mode 100644 index 0000000..6e46b12 --- /dev/null +++ b/docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d + + +kalman_filter + + + + + +dir_db7b1604ad652de4066dd6f160251f65 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_db7b1604ad652de4066dd6f160251f65->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep_org.svg b/docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep_org.svg new file mode 100644 index 0000000..4f717dc --- /dev/null +++ b/docs/html/dir_db7b1604ad652de4066dd6f160251f65_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_982eff6c5ebe5c2e5dbbadd9e6c3ba3d + + +kalman_filter + + + + + +dir_db7b1604ad652de4066dd6f160251f65 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_db7b1604ad652de4066dd6f160251f65->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.html b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.html new file mode 100644 index 0000000..995f113 --- /dev/null +++ b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: misc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
misc Directory Reference
+
+
+
+Directory dependency graph for misc:
+
+
+
+ + + + + +

+Files

 
dsps_d_gen.c
 
dsps_h_gen.c
 
dsps_tone_gen.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.js b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.js new file mode 100644 index 0000000..b8cf8ab --- /dev/null +++ b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4.js @@ -0,0 +1,6 @@ +var dir_dc680dbb1cea7c0c88f2dd9d758e5cd4 = +[ + [ "dsps_d_gen.c", "dsps__d__gen_8c.html", "dsps__d__gen_8c" ], + [ "dsps_h_gen.c", "dsps__h__gen_8c.html", "dsps__h__gen_8c" ], + [ "dsps_tone_gen.c", "dsps__tone__gen_8c.html", "dsps__tone__gen_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.md5 b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.md5 new file mode 100644 index 0000000..4344699 --- /dev/null +++ b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.md5 @@ -0,0 +1 @@ +a8d597f5cff580cf7b65249eaed48311 \ No newline at end of file diff --git a/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.svg b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.svg new file mode 100644 index 0000000..afb4d45 --- /dev/null +++ b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +misc + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_dc680dbb1cea7c0c88f2dd9d758e5cd4 + + +misc + + + + + +dir_dc680dbb1cea7c0c88f2dd9d758e5cd4->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep_org.svg b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep_org.svg new file mode 100644 index 0000000..e6e9ef6 --- /dev/null +++ b/docs/html/dir_dc680dbb1cea7c0c88f2dd9d758e5cd4_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +misc + +clusterdir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_10508c1be7391f23f9614e5e6618e1bc + + +include + + + + + +dir_dc680dbb1cea7c0c88f2dd9d758e5cd4 + + +misc + + + + + +dir_dc680dbb1cea7c0c88f2dd9d758e5cd4->dir_10508c1be7391f23f9614e5e6618e1bc + + + + + + +3 + + + + + diff --git a/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f.html b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f.html new file mode 100644 index 0000000..1be52fe --- /dev/null +++ b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
kalman_filter_demo.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f.js b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f.js new file mode 100644 index 0000000..e8f0f8c --- /dev/null +++ b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f.js @@ -0,0 +1,4 @@ +var dir_dcebb773a78008f4ad1961fb5463c06f = +[ + [ "kalman_filter_demo.cpp", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep.md5 b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep.md5 new file mode 100644 index 0000000..3a88626 --- /dev/null +++ b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep.md5 @@ -0,0 +1 @@ +a0c69ad3762c3e9417c706012f17fef1 \ No newline at end of file diff --git a/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep.svg b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep.svg new file mode 100644 index 0000000..6b5e788 --- /dev/null +++ b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_eca7894df80a3acd051f3e5eab624191 + + +kalman_filter + + + + + +dir_dcebb773a78008f4ad1961fb5463c06f + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_dcebb773a78008f4ad1961fb5463c06f->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep_org.svg b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep_org.svg new file mode 100644 index 0000000..537ef92 --- /dev/null +++ b/docs/html/dir_dcebb773a78008f4ad1961fb5463c06f_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_eca7894df80a3acd051f3e5eab624191 + + +kalman_filter + + + + + +dir_dcebb773a78008f4ad1961fb5463c06f + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_dcebb773a78008f4ad1961fb5463c06f->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_de540661fcc17919ae935eb1da844485.html b/docs/html/dir_de540661fcc17919ae935eb1da844485.html new file mode 100644 index 0000000..a62b70d --- /dev/null +++ b/docs/html/dir_de540661fcc17919ae935eb1da844485.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: img_to_3d_matrix Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
img_to_3d_matrix Directory Reference
+
+
+
+Directory dependency graph for img_to_3d_matrix:
+
+
+
+ + + +

+Directories

 
templates
+
+
+ +
+ + + + diff --git a/docs/html/dir_de540661fcc17919ae935eb1da844485.js b/docs/html/dir_de540661fcc17919ae935eb1da844485.js new file mode 100644 index 0000000..71d0b00 --- /dev/null +++ b/docs/html/dir_de540661fcc17919ae935eb1da844485.js @@ -0,0 +1,4 @@ +var dir_de540661fcc17919ae935eb1da844485 = +[ + [ "templates", "dir_da1af8bdfc7d3f2dbe82319f48856cde.html", "dir_da1af8bdfc7d3f2dbe82319f48856cde" ] +]; \ No newline at end of file diff --git a/docs/html/dir_de540661fcc17919ae935eb1da844485_dep.md5 b/docs/html/dir_de540661fcc17919ae935eb1da844485_dep.md5 new file mode 100644 index 0000000..d4cd6db --- /dev/null +++ b/docs/html/dir_de540661fcc17919ae935eb1da844485_dep.md5 @@ -0,0 +1 @@ +b52c2594c958825bb2ffd75285029bd7 \ No newline at end of file diff --git a/docs/html/dir_de540661fcc17919ae935eb1da844485_dep.svg b/docs/html/dir_de540661fcc17919ae935eb1da844485_dep.svg new file mode 100644 index 0000000..308f97c --- /dev/null +++ b/docs/html/dir_de540661fcc17919ae935eb1da844485_dep.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + +img_to_3d_matrix + +clusterdir_f525258f048ec21eab34c8f507cb2ddc + + +graphics + + + + +clusterdir_de540661fcc17919ae935eb1da844485 + + + + + + + +dir_de540661fcc17919ae935eb1da844485 +img_to_3d_matrix + + + +dir_da1af8bdfc7d3f2dbe82319f48856cde + + +templates + + + + + + + + + + diff --git a/docs/html/dir_de540661fcc17919ae935eb1da844485_dep_org.svg b/docs/html/dir_de540661fcc17919ae935eb1da844485_dep_org.svg new file mode 100644 index 0000000..7b008d8 --- /dev/null +++ b/docs/html/dir_de540661fcc17919ae935eb1da844485_dep_org.svg @@ -0,0 +1,41 @@ + + + + + + +img_to_3d_matrix + +clusterdir_f525258f048ec21eab34c8f507cb2ddc + + +graphics + + + + +clusterdir_de540661fcc17919ae935eb1da844485 + + + + + + + +dir_de540661fcc17919ae935eb1da844485 +img_to_3d_matrix + + + +dir_da1af8bdfc7d3f2dbe82319f48856cde + + +templates + + + + + diff --git a/docs/html/dir_de59488d4ecb668d05d95d08fff34891.html b/docs/html/dir_de59488d4ecb668d05d95d08fff34891.html new file mode 100644 index 0000000..6320693 --- /dev/null +++ b/docs/html/dir_de59488d4ecb668d05d95d08fff34891.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + + + + +

+Files

 
dspi_conv.h
 
dsps_ccorr.h
 
dsps_conv.h
 
dsps_conv_platform.h
 
dsps_corr.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_de59488d4ecb668d05d95d08fff34891.js b/docs/html/dir_de59488d4ecb668d05d95d08fff34891.js new file mode 100644 index 0000000..4cc6462 --- /dev/null +++ b/docs/html/dir_de59488d4ecb668d05d95d08fff34891.js @@ -0,0 +1,8 @@ +var dir_de59488d4ecb668d05d95d08fff34891 = +[ + [ "dspi_conv.h", "dspi__conv_8h.html", "dspi__conv_8h" ], + [ "dsps_ccorr.h", "dsps__ccorr_8h.html", "dsps__ccorr_8h" ], + [ "dsps_conv.h", "dsps__conv_8h.html", "dsps__conv_8h" ], + [ "dsps_conv_platform.h", "dsps__conv__platform_8h.html", null ], + [ "dsps_corr.h", "dsps__corr_8h.html", "dsps__corr_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep.md5 b/docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep.md5 new file mode 100644 index 0000000..73ce31f --- /dev/null +++ b/docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep.md5 @@ -0,0 +1 @@ +2b8777e1a708e402863b69472c79c5ea \ No newline at end of file diff --git a/docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep.svg b/docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep.svg new file mode 100644 index 0000000..c141e63 --- /dev/null +++ b/docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_de59488d4ecb668d05d95d08fff34891 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_de59488d4ecb668d05d95d08fff34891->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep_org.svg b/docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep_org.svg new file mode 100644 index 0000000..253b9cc --- /dev/null +++ b/docs/html/dir_de59488d4ecb668d05d95d08fff34891_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_de59488d4ecb668d05d95d08fff34891 + + +include + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_de59488d4ecb668d05d95d08fff34891->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + diff --git a/docs/html/dir_df22749ae4ae6efb2cb45d380996b069.html b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069.html new file mode 100644 index 0000000..cbd45a4 --- /dev/null +++ b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
dsps_wind_nuttall.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_df22749ae4ae6efb2cb45d380996b069.js b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069.js new file mode 100644 index 0000000..0385fdc --- /dev/null +++ b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069.js @@ -0,0 +1,4 @@ +var dir_df22749ae4ae6efb2cb45d380996b069 = +[ + [ "dsps_wind_nuttall.h", "dsps__wind__nuttall_8h.html", "dsps__wind__nuttall_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep.md5 b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep.md5 new file mode 100644 index 0000000..0be4b42 --- /dev/null +++ b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep.md5 @@ -0,0 +1 @@ +51b24802636fcde2b4325b79268d944d \ No newline at end of file diff --git a/docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep.svg b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep.svg new file mode 100644 index 0000000..841b181 --- /dev/null +++ b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +include + +clusterdir_4d5843eee21c7cebfad28c6fb5869b90 + + +nuttall + + + + + +dir_df22749ae4ae6efb2cb45d380996b069 + + +include + + + + + + + + + + diff --git a/docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep_org.svg b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep_org.svg new file mode 100644 index 0000000..fc6567d --- /dev/null +++ b/docs/html/dir_df22749ae4ae6efb2cb45d380996b069_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +include + +clusterdir_4d5843eee21c7cebfad28c6fb5869b90 + + +nuttall + + + + + +dir_df22749ae4ae6efb2cb45d380996b069 + + +include + + + + + diff --git a/docs/html/dir_dff87212d3726025066eaf86c6c94532.html b/docs/html/dir_dff87212d3726025066eaf86c6c94532.html new file mode 100644 index 0000000..0464a79 --- /dev/null +++ b/docs/html/dir_dff87212d3726025066eaf86c6c94532.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: sub Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
sub Directory Reference
+
+
+
+Directory dependency graph for sub:
+
+
+
+ + + + + +

+Directories

 
fixed
 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_dff87212d3726025066eaf86c6c94532.js b/docs/html/dir_dff87212d3726025066eaf86c6c94532.js new file mode 100644 index 0000000..d8495eb --- /dev/null +++ b/docs/html/dir_dff87212d3726025066eaf86c6c94532.js @@ -0,0 +1,6 @@ +var dir_dff87212d3726025066eaf86c6c94532 = +[ + [ "fixed", "dir_2b0cccbe49e0991f22aeb1922cb13a96.html", "dir_2b0cccbe49e0991f22aeb1922cb13a96" ], + [ "float", "dir_88263a19b39727c9a1698c6c2734b927.html", "dir_88263a19b39727c9a1698c6c2734b927" ], + [ "include", "dir_2b4b44aa9ff3905b789a45cda1fd0906.html", "dir_2b4b44aa9ff3905b789a45cda1fd0906" ] +]; \ No newline at end of file diff --git a/docs/html/dir_dff87212d3726025066eaf86c6c94532_dep.md5 b/docs/html/dir_dff87212d3726025066eaf86c6c94532_dep.md5 new file mode 100644 index 0000000..384f761 --- /dev/null +++ b/docs/html/dir_dff87212d3726025066eaf86c6c94532_dep.md5 @@ -0,0 +1 @@ +f04e6c7bbf5f843dbd3688a2095ec1b1 \ No newline at end of file diff --git a/docs/html/dir_dff87212d3726025066eaf86c6c94532_dep.svg b/docs/html/dir_dff87212d3726025066eaf86c6c94532_dep.svg new file mode 100644 index 0000000..0acec14 --- /dev/null +++ b/docs/html/dir_dff87212d3726025066eaf86c6c94532_dep.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +sub + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_dff87212d3726025066eaf86c6c94532 + + + + + + + +dir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_dff87212d3726025066eaf86c6c94532 +sub + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96 + + +fixed + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906 + + +include + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96->dir_2b4b44aa9ff3905b789a45cda1fd0906 + + + + + + +1 + + + + + +dir_88263a19b39727c9a1698c6c2734b927 + + +float + + + + + +dir_88263a19b39727c9a1698c6c2734b927->dir_2b4b44aa9ff3905b789a45cda1fd0906 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_dff87212d3726025066eaf86c6c94532_dep_org.svg b/docs/html/dir_dff87212d3726025066eaf86c6c94532_dep_org.svg new file mode 100644 index 0000000..d0de9e7 --- /dev/null +++ b/docs/html/dir_dff87212d3726025066eaf86c6c94532_dep_org.svg @@ -0,0 +1,129 @@ + + + + + + +sub + +clusterdir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + +clusterdir_dff87212d3726025066eaf86c6c94532 + + + + + + + +dir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_dff87212d3726025066eaf86c6c94532 +sub + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96 + + +fixed + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96->dir_4d36d9e87737a2136b2d2e486143979d + + + + + + +1 + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906 + + +include + + + + + +dir_2b0cccbe49e0991f22aeb1922cb13a96->dir_2b4b44aa9ff3905b789a45cda1fd0906 + + + + + + +1 + + + + + +dir_88263a19b39727c9a1698c6c2734b927 + + +float + + + + + +dir_88263a19b39727c9a1698c6c2734b927->dir_2b4b44aa9ff3905b789a45cda1fd0906 + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_2b4b44aa9ff3905b789a45cda1fd0906->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05.html b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05.html new file mode 100644 index 0000000..f634c02 --- /dev/null +++ b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: float Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float Directory Reference
+
+
+
+Directory dependency graph for float:
+
+
+
+ + + + + + +

+Files

 
dspi_conv_f32_ansi.c
 
dsps_ccorr_f32_ansi.c
 
dsps_conv_f32_ansi.c
 
dsps_corr_f32_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05.js b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05.js new file mode 100644 index 0000000..e263e65 --- /dev/null +++ b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05.js @@ -0,0 +1,7 @@ +var dir_e01b86c47b4b9f49293132a6e1dd8d05 = +[ + [ "dspi_conv_f32_ansi.c", "dspi__conv__f32__ansi_8c.html", "dspi__conv__f32__ansi_8c" ], + [ "dsps_ccorr_f32_ansi.c", "dsps__ccorr__f32__ansi_8c.html", "dsps__ccorr__f32__ansi_8c" ], + [ "dsps_conv_f32_ansi.c", "dsps__conv__f32__ansi_8c.html", "dsps__conv__f32__ansi_8c" ], + [ "dsps_corr_f32_ansi.c", "dsps__corr__f32__ansi_8c.html", "dsps__corr__f32__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep.md5 b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep.md5 new file mode 100644 index 0000000..5ca43bc --- /dev/null +++ b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep.md5 @@ -0,0 +1 @@ +6b3b27d583860ddf14207f63ac4b3a23 \ No newline at end of file diff --git a/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep.svg b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep.svg new file mode 100644 index 0000000..8c24682 --- /dev/null +++ b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +float + +clusterdir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_de59488d4ecb668d05d95d08fff34891 + + +include + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05 + + +float + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05->dir_de59488d4ecb668d05d95d08fff34891 + + + + + + +4 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep_org.svg b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep_org.svg new file mode 100644 index 0000000..1022712 --- /dev/null +++ b/docs/html/dir_e01b86c47b4b9f49293132a6e1dd8d05_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +float + +clusterdir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_de59488d4ecb668d05d95d08fff34891 + + +include + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05 + + +float + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05->dir_de59488d4ecb668d05d95d08fff34891 + + + + + + +4 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_e01b86c47b4b9f49293132a6e1dd8d05->dir_e78af46276061306d5e012847576d2b2 + + + + + + +3 + + + + + diff --git a/docs/html/dir_e20383be2aa1cc8db7287a474982598e.html b/docs/html/dir_e20383be2aa1cc8db7287a474982598e.html new file mode 100644 index 0000000..5bb08f2 --- /dev/null +++ b/docs/html/dir_e20383be2aa1cc8db7287a474982598e.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: applications Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
applications Directory Reference
+
+
+
+Directory dependency graph for applications:
+
+
+
+ + + + + + +

+Directories

 
azure_board_apps
 
lyrat_board_app
 
m5stack_core_s3
 
spectrum_box_lite
+
+
+ +
+ + + + diff --git a/docs/html/dir_e20383be2aa1cc8db7287a474982598e.js b/docs/html/dir_e20383be2aa1cc8db7287a474982598e.js new file mode 100644 index 0000000..019f974 --- /dev/null +++ b/docs/html/dir_e20383be2aa1cc8db7287a474982598e.js @@ -0,0 +1,7 @@ +var dir_e20383be2aa1cc8db7287a474982598e = +[ + [ "azure_board_apps", "dir_f5ac212e894c3c636ee22eba8071736a.html", "dir_f5ac212e894c3c636ee22eba8071736a" ], + [ "lyrat_board_app", "dir_f770e0d3e13945b3c8eb56d882c10d0b.html", "dir_f770e0d3e13945b3c8eb56d882c10d0b" ], + [ "m5stack_core_s3", "dir_bab3575675640a99c668cf654a35a16e.html", "dir_bab3575675640a99c668cf654a35a16e" ], + [ "spectrum_box_lite", "dir_169a0c2dbb59f200adaa018c9c77c755.html", "dir_169a0c2dbb59f200adaa018c9c77c755" ] +]; \ No newline at end of file diff --git a/docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep.md5 b/docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep.md5 new file mode 100644 index 0000000..4e18220 --- /dev/null +++ b/docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep.md5 @@ -0,0 +1 @@ +02dcb65b24ee0c2575aed0d65e029178 \ No newline at end of file diff --git a/docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep.svg b/docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep.svg new file mode 100644 index 0000000..9b749a2 --- /dev/null +++ b/docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +applications + +clusterdir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + +clusterdir_e20383be2aa1cc8db7287a474982598e + + + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_e20383be2aa1cc8db7287a474982598e +applications + + + +dir_f5ac212e894c3c636ee22eba8071736a + + +azure_board_apps + + + + + +dir_f5ac212e894c3c636ee22eba8071736a->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + +dir_f770e0d3e13945b3c8eb56d882c10d0b + + +lyrat_board_app + + + + + +dir_f770e0d3e13945b3c8eb56d882c10d0b->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_bab3575675640a99c668cf654a35a16e + + +m5stack_core_s3 + + + + + +dir_bab3575675640a99c668cf654a35a16e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + +dir_169a0c2dbb59f200adaa018c9c77c755 + + +spectrum_box_lite + + + + + +dir_169a0c2dbb59f200adaa018c9c77c755->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep_org.svg b/docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep_org.svg new file mode 100644 index 0000000..2da63d6 --- /dev/null +++ b/docs/html/dir_e20383be2aa1cc8db7287a474982598e_dep_org.svg @@ -0,0 +1,129 @@ + + + + + + +applications + +clusterdir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + +clusterdir_e20383be2aa1cc8db7287a474982598e + + + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_e20383be2aa1cc8db7287a474982598e +applications + + + +dir_f5ac212e894c3c636ee22eba8071736a + + +azure_board_apps + + + + + +dir_f5ac212e894c3c636ee22eba8071736a->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + +dir_f770e0d3e13945b3c8eb56d882c10d0b + + +lyrat_board_app + + + + + +dir_f770e0d3e13945b3c8eb56d882c10d0b->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_bab3575675640a99c668cf654a35a16e + + +m5stack_core_s3 + + + + + +dir_bab3575675640a99c668cf654a35a16e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +7 + + + + + +dir_169a0c2dbb59f200adaa018c9c77c755 + + +spectrum_box_lite + + + + + +dir_169a0c2dbb59f200adaa018c9c77c755->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_e3201638ff68b74d4b205e537b11e272.html b/docs/html/dir_e3201638ff68b74d4b205e537b11e272.html new file mode 100644 index 0000000..7e0746e --- /dev/null +++ b/docs/html/dir_e3201638ff68b74d4b205e537b11e272.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: fixed Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fixed Directory Reference
+
+
+
+Directory dependency graph for fixed:
+
+
+
+ + + + + + +

+Files

 
dsps_fird_init_s16.c
 
dsps_fird_s16_ansi.c
 
dsps_firmr_init_s16.c
 
dsps_firmr_s16_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_e3201638ff68b74d4b205e537b11e272.js b/docs/html/dir_e3201638ff68b74d4b205e537b11e272.js new file mode 100644 index 0000000..cf2d771 --- /dev/null +++ b/docs/html/dir_e3201638ff68b74d4b205e537b11e272.js @@ -0,0 +1,7 @@ +var dir_e3201638ff68b74d4b205e537b11e272 = +[ + [ "dsps_fird_init_s16.c", "dsps__fird__init__s16_8c.html", "dsps__fird__init__s16_8c" ], + [ "dsps_fird_s16_ansi.c", "dsps__fird__s16__ansi_8c.html", "dsps__fird__s16__ansi_8c" ], + [ "dsps_firmr_init_s16.c", "dsps__firmr__init__s16_8c.html", "dsps__firmr__init__s16_8c" ], + [ "dsps_firmr_s16_ansi.c", "dsps__firmr__s16__ansi_8c.html", "dsps__firmr__s16__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep.md5 b/docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep.md5 new file mode 100644 index 0000000..8134cdc --- /dev/null +++ b/docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep.md5 @@ -0,0 +1 @@ +de210417a087b1ac4d96568239ea55d8 \ No newline at end of file diff --git a/docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep.svg b/docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep.svg new file mode 100644 index 0000000..ddd9c3c --- /dev/null +++ b/docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +fixed + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_e3201638ff68b74d4b205e537b11e272 + + +fixed + + + + + +dir_e3201638ff68b74d4b205e537b11e272->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +4 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_e3201638ff68b74d4b205e537b11e272->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + + + + + + diff --git a/docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep_org.svg b/docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep_org.svg new file mode 100644 index 0000000..b3e08fd --- /dev/null +++ b/docs/html/dir_e3201638ff68b74d4b205e537b11e272_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +fixed + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_e3201638ff68b74d4b205e537b11e272 + + +fixed + + + + + +dir_e3201638ff68b74d4b205e537b11e272->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +4 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_e3201638ff68b74d4b205e537b11e272->dir_e78af46276061306d5e012847576d2b2 + + + + + + +5 + + + + + diff --git a/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d.html b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d.html new file mode 100644 index 0000000..99b04a2 --- /dev/null +++ b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_matrix Directory Reference
+
+
+
+Directory dependency graph for 3d_matrix:
+
+
+
+ + + + +

+Directories

 
3d_matrix_data
 
3d_matrix_src
+
+
+ +
+ + + + diff --git a/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d.js b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d.js new file mode 100644 index 0000000..56521ca --- /dev/null +++ b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d.js @@ -0,0 +1,5 @@ +var dir_e33b7cda9a005c39a6e7551b4e05602d = +[ + [ "3d_matrix_data", "dir_6b43c4cb499058485fe69351829ae7a4.html", "dir_6b43c4cb499058485fe69351829ae7a4" ], + [ "3d_matrix_src", "dir_65b265e786231b2f269c91bc2dcd9462.html", "dir_65b265e786231b2f269c91bc2dcd9462" ] +]; \ No newline at end of file diff --git a/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep.md5 b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep.md5 new file mode 100644 index 0000000..0186bcd --- /dev/null +++ b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep.md5 @@ -0,0 +1 @@ +632e0c29ade06ae5ca4ff0b98d9bf44c \ No newline at end of file diff --git a/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep.svg b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep.svg new file mode 100644 index 0000000..ba99c5d --- /dev/null +++ b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + +3d_matrix + +clusterdir_171b4edb7086532dd11580f43732b9a7 + + +graphics + + + + +clusterdir_e33b7cda9a005c39a6e7551b4e05602d + + + + + + + +dir_e33b7cda9a005c39a6e7551b4e05602d +3d_matrix + + + +dir_6b43c4cb499058485fe69351829ae7a4 + + +3d_matrix_data + + + + + +dir_65b265e786231b2f269c91bc2dcd9462 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_65b265e786231b2f269c91bc2dcd9462->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep_org.svg b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep_org.svg new file mode 100644 index 0000000..c451dc4 --- /dev/null +++ b/docs/html/dir_e33b7cda9a005c39a6e7551b4e05602d_dep_org.svg @@ -0,0 +1,72 @@ + + + + + + +3d_matrix + +clusterdir_171b4edb7086532dd11580f43732b9a7 + + +graphics + + + + +clusterdir_e33b7cda9a005c39a6e7551b4e05602d + + + + + + + +dir_e33b7cda9a005c39a6e7551b4e05602d +3d_matrix + + + +dir_6b43c4cb499058485fe69351829ae7a4 + + +3d_matrix_data + + + + + +dir_65b265e786231b2f269c91bc2dcd9462 + + +3d_matrix_src + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_65b265e786231b2f269c91bc2dcd9462->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43.html b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43.html new file mode 100644 index 0000000..2ae5462 --- /dev/null +++ b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: wave_gen Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
wave_gen Directory Reference
+
+
+
+Directory dependency graph for wave_gen:
+
+
+
+ + + +

+Directories

 
include
+ + +

+Files

 
wave_gen.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43.js b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43.js new file mode 100644 index 0000000..05639c9 --- /dev/null +++ b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43.js @@ -0,0 +1,5 @@ +var dir_e6153ef005eb58932a236d4aa6e48d43 = +[ + [ "include", "dir_6c1a363c3aada72d365db18498017222.html", "dir_6c1a363c3aada72d365db18498017222" ], + [ "wave_gen.c", "wave__gen_8c.html", "wave__gen_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep.md5 b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep.md5 new file mode 100644 index 0000000..a5e9971 --- /dev/null +++ b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep.md5 @@ -0,0 +1 @@ +da8b52065f6b3e01e51dbd5cefa4955a \ No newline at end of file diff --git a/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep.svg b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep.svg new file mode 100644 index 0000000..dd002cf --- /dev/null +++ b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + +wave_gen + +clusterdir_409f97388efe006bc3438b95e9edef48 + + +components + + + + +clusterdir_e6153ef005eb58932a236d4aa6e48d43 + + + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_e6153ef005eb58932a236d4aa6e48d43 +wave_gen + + + +dir_e6153ef005eb58932a236d4aa6e48d43->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +2 + + + + + +dir_6c1a363c3aada72d365db18498017222 + + +include + + + + + +dir_e6153ef005eb58932a236d4aa6e48d43->dir_6c1a363c3aada72d365db18498017222 + + + + + + +1 + + + + + +dir_6c1a363c3aada72d365db18498017222->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep_org.svg b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep_org.svg new file mode 100644 index 0000000..3d1dc6d --- /dev/null +++ b/docs/html/dir_e6153ef005eb58932a236d4aa6e48d43_dep_org.svg @@ -0,0 +1,89 @@ + + + + + + +wave_gen + +clusterdir_409f97388efe006bc3438b95e9edef48 + + +components + + + + +clusterdir_e6153ef005eb58932a236d4aa6e48d43 + + + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_e6153ef005eb58932a236d4aa6e48d43 +wave_gen + + + +dir_e6153ef005eb58932a236d4aa6e48d43->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +2 + + + + + +dir_6c1a363c3aada72d365db18498017222 + + +include + + + + + +dir_e6153ef005eb58932a236d4aa6e48d43->dir_6c1a363c3aada72d365db18498017222 + + + + + + +1 + + + + + +dir_6c1a363c3aada72d365db18498017222->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +1 + + + + + diff --git a/docs/html/dir_e78af46276061306d5e012847576d2b2.html b/docs/html/dir_e78af46276061306d5e012847576d2b2.html new file mode 100644 index 0000000..8857a6f --- /dev/null +++ b/docs/html/dir_e78af46276061306d5e012847576d2b2.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: common Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
common Directory Reference
+
+
+
+Directory dependency graph for common:
+
+
+
+ + + + + +

+Directories

 
include
 
include_sim
 
misc
+
+
+ +
+ + + + diff --git a/docs/html/dir_e78af46276061306d5e012847576d2b2.js b/docs/html/dir_e78af46276061306d5e012847576d2b2.js new file mode 100644 index 0000000..69a6ea6 --- /dev/null +++ b/docs/html/dir_e78af46276061306d5e012847576d2b2.js @@ -0,0 +1,6 @@ +var dir_e78af46276061306d5e012847576d2b2 = +[ + [ "include", "dir_0aad210bf1f44ca0774b9c37a9d769cb.html", "dir_0aad210bf1f44ca0774b9c37a9d769cb" ], + [ "include_sim", "dir_5fa5d6f670414422007a5925e84ae702.html", "dir_5fa5d6f670414422007a5925e84ae702" ], + [ "misc", "dir_5b81275681346a9651ba0069dadde207.html", "dir_5b81275681346a9651ba0069dadde207" ] +]; \ No newline at end of file diff --git a/docs/html/dir_e78af46276061306d5e012847576d2b2_dep.md5 b/docs/html/dir_e78af46276061306d5e012847576d2b2_dep.md5 new file mode 100644 index 0000000..5b1194c --- /dev/null +++ b/docs/html/dir_e78af46276061306d5e012847576d2b2_dep.md5 @@ -0,0 +1 @@ +042981ce461fa22c080374543e8db193 \ No newline at end of file diff --git a/docs/html/dir_e78af46276061306d5e012847576d2b2_dep.svg b/docs/html/dir_e78af46276061306d5e012847576d2b2_dep.svg new file mode 100644 index 0000000..f4638fc --- /dev/null +++ b/docs/html/dir_e78af46276061306d5e012847576d2b2_dep.svg @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +common + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_e78af46276061306d5e012847576d2b2 + + + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_95624ebda436e232844a7007340a6b2b + + +windows + + + + + +dir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_e78af46276061306d5e012847576d2b2 +common + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb + + +include + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_5f2e64e9fe690f961d00e914be24c898 + + + + + + +2 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_d3a7bf488950df7c258d146af03d9440 + + + + + + +2 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_95624ebda436e232844a7007340a6b2b + + + + + + +1 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_d889323c3d75be7406c85891426fb089 + + + + + + +3 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_67c4e8b77b4357a93ff15d0d28548721 + + + + + + +6 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +2 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_6f0282a56182e11784085c9051410321 + + + + + + +1 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_5fa5d6f670414422007a5925e84ae702 + + +include_sim + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_5fa5d6f670414422007a5925e84ae702 + + + + + + +1 + + + + + +dir_5b81275681346a9651ba0069dadde207 + + +misc + + + + + +dir_5b81275681346a9651ba0069dadde207->dir_0aad210bf1f44ca0774b9c37a9d769cb + + + + + + +2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dir_e78af46276061306d5e012847576d2b2_dep_org.svg b/docs/html/dir_e78af46276061306d5e012847576d2b2_dep_org.svg new file mode 100644 index 0000000..931cc47 --- /dev/null +++ b/docs/html/dir_e78af46276061306d5e012847576d2b2_dep_org.svg @@ -0,0 +1,305 @@ + + + + + + +common + +clusterdir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + +clusterdir_e78af46276061306d5e012847576d2b2 + + + + + + + +dir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + +math + + + + + +dir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_d3a7bf488950df7c258d146af03d9440 + + +iir + + + + + +dir_95624ebda436e232844a7007340a6b2b + + +windows + + + + + +dir_d889323c3d75be7406c85891426fb089 + + +conv + + + + + +dir_67c4e8b77b4357a93ff15d0d28548721 + + +support + + + + + +dir_2e6515e08f756e255a623378cbf0a6d0 + + +fft + + + + + +dir_6f0282a56182e11784085c9051410321 + + +dct + + + + + +dir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + + +dir_e78af46276061306d5e012847576d2b2 +common + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb + + +include + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_0c02408d15b1f96bbde516c6c09437d8 + + + + + + +2 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_ccd16ee69178f7f8a2cbd33b34cfbb18 + + + + + + +1 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_5f2e64e9fe690f961d00e914be24c898 + + + + + + +2 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_d3a7bf488950df7c258d146af03d9440 + + + + + + +2 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_95624ebda436e232844a7007340a6b2b + + + + + + +1 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_d889323c3d75be7406c85891426fb089 + + + + + + +3 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_67c4e8b77b4357a93ff15d0d28548721 + + + + + + +6 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_2e6515e08f756e255a623378cbf0a6d0 + + + + + + +2 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_6f0282a56182e11784085c9051410321 + + + + + + +1 + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_0c394f99e8354c91f0eeb3e30368bc59 + + + + + + +1 + + + + + +dir_5fa5d6f670414422007a5925e84ae702 + + +include_sim + + + + + +dir_0aad210bf1f44ca0774b9c37a9d769cb->dir_5fa5d6f670414422007a5925e84ae702 + + + + + + +1 + + + + + +dir_5b81275681346a9651ba0069dadde207 + + +misc + + + + + +dir_5b81275681346a9651ba0069dadde207->dir_0aad210bf1f44ca0774b9c37a9d769cb + + + + + + +2 + + + + + diff --git a/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04.html b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04.html new file mode 100644 index 0000000..572c402 --- /dev/null +++ b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: sub Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
sub Directory Reference
+
+
+
+Directory dependency graph for sub:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04.js b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04.js new file mode 100644 index 0000000..557e7e6 --- /dev/null +++ b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04.js @@ -0,0 +1,5 @@ +var dir_e7f8e8e4b9616aa9af33ffb274dfdf04 = +[ + [ "float", "dir_2a71079c14d229ac9e67921fce4ad634.html", "dir_2a71079c14d229ac9e67921fce4ad634" ], + [ "include", "dir_a8725166bca3343a4ff8dbf70470bf7a.html", "dir_a8725166bca3343a4ff8dbf70470bf7a" ] +]; \ No newline at end of file diff --git a/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.md5 b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.md5 new file mode 100644 index 0000000..7f86106 --- /dev/null +++ b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.md5 @@ -0,0 +1 @@ +97e0e5307f38c13eb15b8d3c4fac703c \ No newline at end of file diff --git a/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.svg b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.svg new file mode 100644 index 0000000..75889f5 --- /dev/null +++ b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +sub + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + + + + + + +dir_e7f8e8e4b9616aa9af33ffb274dfdf04 +sub + + + +dir_2a71079c14d229ac9e67921fce4ad634 + + +float + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a + + +include + + + + + +dir_2a71079c14d229ac9e67921fce4ad634->dir_a8725166bca3343a4ff8dbf70470bf7a + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep_org.svg b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep_org.svg new file mode 100644 index 0000000..327d3eb --- /dev/null +++ b/docs/html/dir_e7f8e8e4b9616aa9af33ffb274dfdf04_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +sub + +clusterdir_0c394f99e8354c91f0eeb3e30368bc59 + + +matrix + + + + +clusterdir_e7f8e8e4b9616aa9af33ffb274dfdf04 + + + + + + + +dir_e7f8e8e4b9616aa9af33ffb274dfdf04 +sub + + + +dir_2a71079c14d229ac9e67921fce4ad634 + + +float + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a + + +include + + + + + +dir_2a71079c14d229ac9e67921fce4ad634->dir_a8725166bca3343a4ff8dbf70470bf7a + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_a8725166bca3343a4ff8dbf70470bf7a->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_e878e923ef12715a74c793cf72e4f313.html b/docs/html/dir_e878e923ef12715a74c793cf72e4f313.html new file mode 100644 index 0000000..28fdb99 --- /dev/null +++ b/docs/html/dir_e878e923ef12715a74c793cf72e4f313.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: blackman Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
blackman Directory Reference
+
+
+
+Directory dependency graph for blackman:
+
+
+
+ + + + +

+Directories

 
float
 
include
+
+
+ +
+ + + + diff --git a/docs/html/dir_e878e923ef12715a74c793cf72e4f313.js b/docs/html/dir_e878e923ef12715a74c793cf72e4f313.js new file mode 100644 index 0000000..3e60729 --- /dev/null +++ b/docs/html/dir_e878e923ef12715a74c793cf72e4f313.js @@ -0,0 +1,5 @@ +var dir_e878e923ef12715a74c793cf72e4f313 = +[ + [ "float", "dir_a4c5913a3d3eed486b216fbd720c97af.html", "dir_a4c5913a3d3eed486b216fbd720c97af" ], + [ "include", "dir_3630efa296d794a506d697d26fb77c32.html", "dir_3630efa296d794a506d697d26fb77c32" ] +]; \ No newline at end of file diff --git a/docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep.md5 b/docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep.md5 new file mode 100644 index 0000000..0432396 --- /dev/null +++ b/docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep.md5 @@ -0,0 +1 @@ +9f798331e4749fb2d65e2abfcac6ab10 \ No newline at end of file diff --git a/docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep.svg b/docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep.svg new file mode 100644 index 0000000..0f14d5d --- /dev/null +++ b/docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +blackman + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_e878e923ef12715a74c793cf72e4f313 + + + + + + + +dir_e878e923ef12715a74c793cf72e4f313 +blackman + + + +dir_a4c5913a3d3eed486b216fbd720c97af + + +float + + + + + +dir_3630efa296d794a506d697d26fb77c32 + + +include + + + + + +dir_a4c5913a3d3eed486b216fbd720c97af->dir_3630efa296d794a506d697d26fb77c32 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep_org.svg b/docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep_org.svg new file mode 100644 index 0000000..2fbcef7 --- /dev/null +++ b/docs/html/dir_e878e923ef12715a74c793cf72e4f313_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +blackman + +clusterdir_95624ebda436e232844a7007340a6b2b + + +windows + + + + +clusterdir_e878e923ef12715a74c793cf72e4f313 + + + + + + + +dir_e878e923ef12715a74c793cf72e4f313 +blackman + + + +dir_a4c5913a3d3eed486b216fbd720c97af + + +float + + + + + +dir_3630efa296d794a506d697d26fb77c32 + + +include + + + + + +dir_a4c5913a3d3eed486b216fbd720c97af->dir_3630efa296d794a506d697d26fb77c32 + + + + + + +1 + + + + + diff --git a/docs/html/dir_eca7894df80a3acd051f3e5eab624191.html b/docs/html/dir_eca7894df80a3acd051f3e5eab624191.html new file mode 100644 index 0000000..cf1c331 --- /dev/null +++ b/docs/html/dir_eca7894df80a3acd051f3e5eab624191.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter Directory Reference
+
+
+
+Directory dependency graph for kalman_filter:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_eca7894df80a3acd051f3e5eab624191.js b/docs/html/dir_eca7894df80a3acd051f3e5eab624191.js new file mode 100644 index 0000000..818c4b8 --- /dev/null +++ b/docs/html/dir_eca7894df80a3acd051f3e5eab624191.js @@ -0,0 +1,4 @@ +var dir_eca7894df80a3acd051f3e5eab624191 = +[ + [ "main", "dir_dcebb773a78008f4ad1961fb5463c06f.html", "dir_dcebb773a78008f4ad1961fb5463c06f" ] +]; \ No newline at end of file diff --git a/docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep.md5 b/docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep.md5 new file mode 100644 index 0000000..174a780 --- /dev/null +++ b/docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep.md5 @@ -0,0 +1 @@ +8ecf57acc4b77e7c5da3831a47f27aae \ No newline at end of file diff --git a/docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep.svg b/docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep.svg new file mode 100644 index 0000000..a0ddc83 --- /dev/null +++ b/docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +kalman_filter + +clusterdir_42be8631e0eff9e3824673f44965e076 + + +apps + + + + +clusterdir_eca7894df80a3acd051f3e5eab624191 + + + + + + + +dir_eca7894df80a3acd051f3e5eab624191 +kalman_filter + + + +dir_dcebb773a78008f4ad1961fb5463c06f + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_dcebb773a78008f4ad1961fb5463c06f->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep_org.svg b/docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep_org.svg new file mode 100644 index 0000000..01f77fa --- /dev/null +++ b/docs/html/dir_eca7894df80a3acd051f3e5eab624191_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +kalman_filter + +clusterdir_42be8631e0eff9e3824673f44965e076 + + +apps + + + + +clusterdir_eca7894df80a3acd051f3e5eab624191 + + + + + + + +dir_eca7894df80a3acd051f3e5eab624191 +kalman_filter + + + +dir_dcebb773a78008f4ad1961fb5463c06f + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_dcebb773a78008f4ad1961fb5463c06f->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.html b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.html new file mode 100644 index 0000000..1af36c3 --- /dev/null +++ b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: fixed Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fixed Directory Reference
+
+
+
+Directory dependency graph for fixed:
+
+
+
+ + + +

+Files

 
dsps_mulc_s16_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.js b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.js new file mode 100644 index 0000000..0e20bb7 --- /dev/null +++ b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5.js @@ -0,0 +1,4 @@ +var dir_ee35c1c3ca151a08d5d44d0cdc3a05d5 = +[ + [ "dsps_mulc_s16_ansi.c", "dsps__mulc__s16__ansi_8c.html", "dsps__mulc__s16__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.md5 b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.md5 new file mode 100644 index 0000000..f3dd565 --- /dev/null +++ b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.md5 @@ -0,0 +1 @@ +b60b65a955f85ddd4ba2956aba63b246 \ No newline at end of file diff --git a/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.svg b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.svg new file mode 100644 index 0000000..362e3bc --- /dev/null +++ b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +fixed + +clusterdir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521 + + +include + + + + + +dir_ee35c1c3ca151a08d5d44d0cdc3a05d5 + + +fixed + + + + + +dir_ee35c1c3ca151a08d5d44d0cdc3a05d5->dir_5ce06cfd77962876b8da27c1fc0c8521 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep_org.svg b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep_org.svg new file mode 100644 index 0000000..09eec25 --- /dev/null +++ b/docs/html/dir_ee35c1c3ca151a08d5d44d0cdc3a05d5_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +fixed + +clusterdir_176ce0f9603aed617a2000f9b4957e6f + + +mulc + + + + + +dir_5ce06cfd77962876b8da27c1fc0c8521 + + +include + + + + + +dir_ee35c1c3ca151a08d5d44d0cdc3a05d5 + + +fixed + + + + + +dir_ee35c1c3ca151a08d5d44d0cdc3a05d5->dir_5ce06cfd77962876b8da27c1fc0c8521 + + + + + + +1 + + + + + diff --git a/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.html b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.html new file mode 100644 index 0000000..7b92afd --- /dev/null +++ b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + + + + +

+Files

 
led_strip.h
 
led_strip_rmt.h
 
led_strip_spi.h
 
led_strip_types.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.js b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.js new file mode 100644 index 0000000..67b555a --- /dev/null +++ b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d.js @@ -0,0 +1,7 @@ +var dir_f0aa04b7bbccd383b0f03f9b9fd86b7d = +[ + [ "led_strip.h", "led__strip_8h.html", "led__strip_8h" ], + [ "led_strip_rmt.h", "led__strip__rmt_8h.html", "led__strip__rmt_8h" ], + [ "led_strip_spi.h", "led__strip__spi_8h.html", "led__strip__spi_8h" ], + [ "led_strip_types.h", "led__strip__types_8h.html", "led__strip__types_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.md5 b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.md5 new file mode 100644 index 0000000..3a9efe5 --- /dev/null +++ b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.md5 @@ -0,0 +1 @@ +9a1b2fd022f17fcfe1caa13f25ba4160 \ No newline at end of file diff --git a/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.svg b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.svg new file mode 100644 index 0000000..4706675 --- /dev/null +++ b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_9be252ebbe144643a161d99fe7bd96b8 + + +espressif__led_strip + + + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + +include + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep_org.svg b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep_org.svg new file mode 100644 index 0000000..586911b --- /dev/null +++ b/docs/html/dir_f0aa04b7bbccd383b0f03f9b9fd86b7d_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_9be252ebbe144643a161d99fe7bd96b8 + + +espressif__led_strip + + + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d + + +include + + + + + +dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + +espressif__esp-dsp + + + + + +dir_f0aa04b7bbccd383b0f03f9b9fd86b7d->dir_7b64b14aeba8b5bbb3841d17f1f0cd10 + + + + + + +3 + + + + + diff --git a/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38.html b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38.html new file mode 100644 index 0000000..d77190b --- /dev/null +++ b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: main Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
+
+ + + +

+Files

 
kalman_filter_demo.cpp
+
+
+ +
+ + + + diff --git a/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38.js b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38.js new file mode 100644 index 0000000..83270f2 --- /dev/null +++ b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38.js @@ -0,0 +1,4 @@ +var dir_f32633e65746b6a91fbe861f5f21dc38 = +[ + [ "kalman_filter_demo.cpp", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep.md5 b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep.md5 new file mode 100644 index 0000000..0baacc4 --- /dev/null +++ b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep.md5 @@ -0,0 +1 @@ +e7605762735287e4681bb74aa332bf2f \ No newline at end of file diff --git a/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep.svg b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep.svg new file mode 100644 index 0000000..4bd3a20 --- /dev/null +++ b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +main + +clusterdir_192a153369401f20235f877504e6d5ad + + +kalman_filter + + + + + +dir_f32633e65746b6a91fbe861f5f21dc38 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_f32633e65746b6a91fbe861f5f21dc38->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + + + + + + diff --git a/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep_org.svg b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep_org.svg new file mode 100644 index 0000000..9861e13 --- /dev/null +++ b/docs/html/dir_f32633e65746b6a91fbe861f5f21dc38_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +main + +clusterdir_192a153369401f20235f877504e6d5ad + + +kalman_filter + + + + + +dir_f32633e65746b6a91fbe861f5f21dc38 + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_f32633e65746b6a91fbe861f5f21dc38->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +3 + + + + + diff --git a/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc.html b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc.html new file mode 100644 index 0000000..188b855 --- /dev/null +++ b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: graphics Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics Directory Reference
+
+
+
+Directory dependency graph for graphics:
+
+
+
+ + + + +

+Directories

 
3d_matrix
 
img_to_3d_matrix
+
+
+ +
+ + + + diff --git a/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc.js b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc.js new file mode 100644 index 0000000..7ac7a7a --- /dev/null +++ b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc.js @@ -0,0 +1,5 @@ +var dir_f525258f048ec21eab34c8f507cb2ddc = +[ + [ "3d_matrix", "dir_a3d37b3538242ea047872cfcc616fb89.html", "dir_a3d37b3538242ea047872cfcc616fb89" ], + [ "img_to_3d_matrix", "dir_de540661fcc17919ae935eb1da844485.html", "dir_de540661fcc17919ae935eb1da844485" ] +]; \ No newline at end of file diff --git a/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep.md5 b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep.md5 new file mode 100644 index 0000000..3e1f381 --- /dev/null +++ b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep.md5 @@ -0,0 +1 @@ +095515a486f2dc602441e5bb02d022e0 \ No newline at end of file diff --git a/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep.svg b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep.svg new file mode 100644 index 0000000..4529c28 --- /dev/null +++ b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + +graphics + +clusterdir_9f56573f249ce70c94c7b8fff377f7a9 + + +azure_board_apps + + + + +clusterdir_f525258f048ec21eab34c8f507cb2ddc + + + + + + + +dir_f525258f048ec21eab34c8f507cb2ddc +graphics + + + +dir_a3d37b3538242ea047872cfcc616fb89 + + +3d_matrix + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_a3d37b3538242ea047872cfcc616fb89->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_de540661fcc17919ae935eb1da844485 + + +img_to_3d_matrix + + + + + + + + + + diff --git a/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep_org.svg b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep_org.svg new file mode 100644 index 0000000..f264fa2 --- /dev/null +++ b/docs/html/dir_f525258f048ec21eab34c8f507cb2ddc_dep_org.svg @@ -0,0 +1,72 @@ + + + + + + +graphics + +clusterdir_9f56573f249ce70c94c7b8fff377f7a9 + + +azure_board_apps + + + + +clusterdir_f525258f048ec21eab34c8f507cb2ddc + + + + + + + +dir_f525258f048ec21eab34c8f507cb2ddc +graphics + + + +dir_a3d37b3538242ea047872cfcc616fb89 + + +3d_matrix + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_a3d37b3538242ea047872cfcc616fb89->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + +dir_de540661fcc17919ae935eb1da844485 + + +img_to_3d_matrix + + + + + diff --git a/docs/html/dir_f5ac212e894c3c636ee22eba8071736a.html b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a.html new file mode 100644 index 0000000..c68cee5 --- /dev/null +++ b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: azure_board_apps Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
azure_board_apps Directory Reference
+
+
+
+Directory dependency graph for azure_board_apps:
+
+
+
+ + + + +

+Directories

 
apps
 
graphics
+
+
+ +
+ + + + diff --git a/docs/html/dir_f5ac212e894c3c636ee22eba8071736a.js b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a.js new file mode 100644 index 0000000..0e8329f --- /dev/null +++ b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a.js @@ -0,0 +1,5 @@ +var dir_f5ac212e894c3c636ee22eba8071736a = +[ + [ "apps", "dir_ad7c247d62c906d539eea57d302f162e.html", "dir_ad7c247d62c906d539eea57d302f162e" ], + [ "graphics", "dir_171b4edb7086532dd11580f43732b9a7.html", "dir_171b4edb7086532dd11580f43732b9a7" ] +]; \ No newline at end of file diff --git a/docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep.md5 b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep.md5 new file mode 100644 index 0000000..b2a3c68 --- /dev/null +++ b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep.md5 @@ -0,0 +1 @@ +ec066c6fc5461fc41a0f5140f3501fca \ No newline at end of file diff --git a/docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep.svg b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep.svg new file mode 100644 index 0000000..6816163 --- /dev/null +++ b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +azure_board_apps + +clusterdir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + +clusterdir_f5ac212e894c3c636ee22eba8071736a + + + + + + + +dir_f5ac212e894c3c636ee22eba8071736a +azure_board_apps + + + +dir_ad7c247d62c906d539eea57d302f162e + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_ad7c247d62c906d539eea57d302f162e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_171b4edb7086532dd11580f43732b9a7 + + +graphics + + + + + +dir_171b4edb7086532dd11580f43732b9a7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep_org.svg b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep_org.svg new file mode 100644 index 0000000..3e428ca --- /dev/null +++ b/docs/html/dir_f5ac212e894c3c636ee22eba8071736a_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +azure_board_apps + +clusterdir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + +clusterdir_f5ac212e894c3c636ee22eba8071736a + + + + + + + +dir_f5ac212e894c3c636ee22eba8071736a +azure_board_apps + + + +dir_ad7c247d62c906d539eea57d302f162e + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_ad7c247d62c906d539eea57d302f162e->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_171b4edb7086532dd11580f43732b9a7 + + +graphics + + + + + +dir_171b4edb7086532dd11580f43732b9a7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12.html b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12.html new file mode 100644 index 0000000..dc8a4d6 --- /dev/null +++ b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: fixed Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fixed Directory Reference
+
+
+
+Directory dependency graph for fixed:
+
+
+
+ + + + +

+Files

 
dsps_add_s16_ansi.c
 
dsps_add_s8_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12.js b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12.js new file mode 100644 index 0000000..9545129 --- /dev/null +++ b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12.js @@ -0,0 +1,5 @@ +var dir_f5cd8eaf0257daee38a85d69a967cc12 = +[ + [ "dsps_add_s16_ansi.c", "dsps__add__s16__ansi_8c.html", "dsps__add__s16__ansi_8c" ], + [ "dsps_add_s8_ansi.c", "dsps__add__s8__ansi_8c.html", "dsps__add__s8__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep.md5 b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep.md5 new file mode 100644 index 0000000..8085672 --- /dev/null +++ b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep.md5 @@ -0,0 +1 @@ +d8a7f6c0d676ac57c97bf998dbb9ce35 \ No newline at end of file diff --git a/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep.svg b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep.svg new file mode 100644 index 0000000..b81d662 --- /dev/null +++ b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +fixed + +clusterdir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_c0c0cd07563e9956c88b53baae458253 + + +include + + + + + +dir_f5cd8eaf0257daee38a85d69a967cc12 + + +fixed + + + + + +dir_f5cd8eaf0257daee38a85d69a967cc12->dir_c0c0cd07563e9956c88b53baae458253 + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep_org.svg b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep_org.svg new file mode 100644 index 0000000..2263df7 --- /dev/null +++ b/docs/html/dir_f5cd8eaf0257daee38a85d69a967cc12_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +fixed + +clusterdir_4d36d9e87737a2136b2d2e486143979d + + +add + + + + + +dir_c0c0cd07563e9956c88b53baae458253 + + +include + + + + + +dir_f5cd8eaf0257daee38a85d69a967cc12 + + +fixed + + + + + +dir_f5cd8eaf0257daee38a85d69a967cc12->dir_c0c0cd07563e9956c88b53baae458253 + + + + + + +2 + + + + + diff --git a/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a.html b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a.html new file mode 100644 index 0000000..37b4f09 --- /dev/null +++ b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+ + + +

+Files

 
ekf_imu13states.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a.js b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a.js new file mode 100644 index 0000000..4a62840 --- /dev/null +++ b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a.js @@ -0,0 +1,4 @@ +var dir_f69cca64cbddff3688ecc3dff3ca9e3a = +[ + [ "ekf_imu13states.h", "ekf__imu13states_8h.html", "ekf__imu13states_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep.md5 b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep.md5 new file mode 100644 index 0000000..ed8b318 --- /dev/null +++ b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep.md5 @@ -0,0 +1 @@ +17efb565fb31fa7b6e393a0b7d8f49d2 \ No newline at end of file diff --git a/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep.svg b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep.svg new file mode 100644 index 0000000..73c003e --- /dev/null +++ b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +include + +clusterdir_43b440e8c9d7b15ca688aa8c8e594f1b + + +ekf_imu13states + + + + + +dir_f69cca64cbddff3688ecc3dff3ca9e3a + + +include + + + + + +dir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_f69cca64cbddff3688ecc3dff3ca9e3a->dir_b2edfaaef06a92a9d53ea863519f7932 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep_org.svg b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep_org.svg new file mode 100644 index 0000000..22dd96e --- /dev/null +++ b/docs/html/dir_f69cca64cbddff3688ecc3dff3ca9e3a_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +include + +clusterdir_43b440e8c9d7b15ca688aa8c8e594f1b + + +ekf_imu13states + + + + + +dir_f69cca64cbddff3688ecc3dff3ca9e3a + + +include + + + + + +dir_b2edfaaef06a92a9d53ea863519f7932 + + +ekf + + + + + +dir_f69cca64cbddff3688ecc3dff3ca9e3a->dir_b2edfaaef06a92a9d53ea863519f7932 + + + + + + +1 + + + + + diff --git a/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b.html b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b.html new file mode 100644 index 0000000..1934822 --- /dev/null +++ b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b.html @@ -0,0 +1,123 @@ + + + + + + + +ESP-IDF Firmware: lyrat_board_app Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
lyrat_board_app Directory Reference
+
+
+
+Directory dependency graph for lyrat_board_app:
+
+
+
+ + + +

+Directories

 
main
+
+
+ +
+ + + + diff --git a/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b.js b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b.js new file mode 100644 index 0000000..f156670 --- /dev/null +++ b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b.js @@ -0,0 +1,4 @@ +var dir_f770e0d3e13945b3c8eb56d882c10d0b = +[ + [ "main", "dir_6964b7e33bb3bd939cb0a354e6a2bedc.html", "dir_6964b7e33bb3bd939cb0a354e6a2bedc" ] +]; \ No newline at end of file diff --git a/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep.md5 b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep.md5 new file mode 100644 index 0000000..a1eb97c --- /dev/null +++ b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep.md5 @@ -0,0 +1 @@ +f5be506fc916fefe73b5496c1bec043e \ No newline at end of file diff --git a/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep.svg b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep.svg new file mode 100644 index 0000000..d64e933 --- /dev/null +++ b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + +lyrat_board_app + +clusterdir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + +clusterdir_f770e0d3e13945b3c8eb56d882c10d0b + + + + + + + +dir_f770e0d3e13945b3c8eb56d882c10d0b +lyrat_board_app + + + +dir_6964b7e33bb3bd939cb0a354e6a2bedc + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_6964b7e33bb3bd939cb0a354e6a2bedc->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep_org.svg b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep_org.svg new file mode 100644 index 0000000..8f3742f --- /dev/null +++ b/docs/html/dir_f770e0d3e13945b3c8eb56d882c10d0b_dep_org.svg @@ -0,0 +1,63 @@ + + + + + + +lyrat_board_app + +clusterdir_e20383be2aa1cc8db7287a474982598e + + +applications + + + + +clusterdir_f770e0d3e13945b3c8eb56d882c10d0b + + + + + + + +dir_f770e0d3e13945b3c8eb56d882c10d0b +lyrat_board_app + + + +dir_6964b7e33bb3bd939cb0a354e6a2bedc + + +main + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_6964b7e33bb3bd939cb0a354e6a2bedc->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368.html b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368.html new file mode 100644 index 0000000..a4315de --- /dev/null +++ b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: test_sim Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
test_sim Directory Reference
+
+
+
+Directory dependency graph for test_sim:
+
+
+
+ + + + +

+Files

 
main.c
 
test_fir.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368.js b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368.js new file mode 100644 index 0000000..c7fd19c --- /dev/null +++ b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368.js @@ -0,0 +1,5 @@ +var dir_f92c71b2ef057433a6cd6431e49a6368 = +[ + [ "main.c", "components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c.html", "components_2espressif____esp-dsp_2modules_2fir_2test__sim_2main_8c" ], + [ "test_fir.c", "test__fir_8c.html", "test__fir_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep.md5 b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep.md5 new file mode 100644 index 0000000..8ab15e8 --- /dev/null +++ b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep.md5 @@ -0,0 +1 @@ +4960eddc50a64d4a82e18e8ed1f2dfa0 \ No newline at end of file diff --git a/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep.svg b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep.svg new file mode 100644 index 0000000..f68b5dc --- /dev/null +++ b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + +test_sim + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368 + + +test_sim + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + + + + + + diff --git a/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep_org.svg b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep_org.svg new file mode 100644 index 0000000..d3bea16 --- /dev/null +++ b/docs/html/dir_f92c71b2ef057433a6cd6431e49a6368_dep_org.svg @@ -0,0 +1,73 @@ + + + + + + +test_sim + +clusterdir_5f2e64e9fe690f961d00e914be24c898 + + +fir + + + + + +dir_5680bc0d3af986d470bfa6c1499bfa1e + + +include + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368 + + +test_sim + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368->dir_5680bc0d3af986d470bfa6c1499bfa1e + + + + + + +1 + + + + + +dir_e78af46276061306d5e012847576d2b2 + + +common + + + + + +dir_f92c71b2ef057433a6cd6431e49a6368->dir_e78af46276061306d5e012847576d2b2 + + + + + + +1 + + + + + diff --git a/docs/html/dir_fc4402edab186de335f81f837d649a28.html b/docs/html/dir_fc4402edab186de335f81f837d649a28.html new file mode 100644 index 0000000..4a4047a --- /dev/null +++ b/docs/html/dir_fc4402edab186de335f81f837d649a28.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: 3d_matrix_data Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_matrix_data Directory Reference
+
+
+
+Directory dependency graph for 3d_matrix_data:
+
+
+
+ + + + + + + + + +

+Files

 
cube_matrix.h
 
esp_logo.c
 
esp_logo.h
 
esp_text.c
 
esp_text.h
 
image_to_3d_matrix.c
 
image_to_3d_matrix.h
+
+
+ +
+ + + + diff --git a/docs/html/dir_fc4402edab186de335f81f837d649a28.js b/docs/html/dir_fc4402edab186de335f81f837d649a28.js new file mode 100644 index 0000000..2c1571e --- /dev/null +++ b/docs/html/dir_fc4402edab186de335f81f837d649a28.js @@ -0,0 +1,10 @@ +var dir_fc4402edab186de335f81f837d649a28 = +[ + [ "cube_matrix.h", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h" ], + [ "esp_logo.c", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html", null ], + [ "esp_logo.h", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h" ], + [ "esp_text.c", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c" ], + [ "esp_text.h", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h" ], + [ "image_to_3d_matrix.c", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html", null ], + [ "image_to_3d_matrix.h", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h" ] +]; \ No newline at end of file diff --git a/docs/html/dir_fc4402edab186de335f81f837d649a28_dep.md5 b/docs/html/dir_fc4402edab186de335f81f837d649a28_dep.md5 new file mode 100644 index 0000000..f7fcc28 --- /dev/null +++ b/docs/html/dir_fc4402edab186de335f81f837d649a28_dep.md5 @@ -0,0 +1 @@ +47ffa921df7d3fb9da1ae2118ec24765 \ No newline at end of file diff --git a/docs/html/dir_fc4402edab186de335f81f837d649a28_dep.svg b/docs/html/dir_fc4402edab186de335f81f837d649a28_dep.svg new file mode 100644 index 0000000..73d156d --- /dev/null +++ b/docs/html/dir_fc4402edab186de335f81f837d649a28_dep.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + +3d_matrix_data + +clusterdir_a3d37b3538242ea047872cfcc616fb89 + + +3d_matrix + + + + + +dir_fc4402edab186de335f81f837d649a28 + + +3d_matrix_data + + + + + + + + + + diff --git a/docs/html/dir_fc4402edab186de335f81f837d649a28_dep_org.svg b/docs/html/dir_fc4402edab186de335f81f837d649a28_dep_org.svg new file mode 100644 index 0000000..d80c92d --- /dev/null +++ b/docs/html/dir_fc4402edab186de335f81f837d649a28_dep_org.svg @@ -0,0 +1,29 @@ + + + + + + +3d_matrix_data + +clusterdir_a3d37b3538242ea047872cfcc616fb89 + + +3d_matrix + + + + + +dir_fc4402edab186de335f81f837d649a28 + + +3d_matrix_data + + + + + diff --git a/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe.html b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe.html new file mode 100644 index 0000000..b2d5c5d --- /dev/null +++ b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: azure_board_apps Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
azure_board_apps Directory Reference
+
+
+
+Directory dependency graph for azure_board_apps:
+
+
+
+ + + + +

+Directories

 
apps
 
graphics
+
+
+ +
+ + + + diff --git a/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe.js b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe.js new file mode 100644 index 0000000..27d98b0 --- /dev/null +++ b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe.js @@ -0,0 +1,5 @@ +var dir_fc647d5b5fee47835a64d22ac5da01fe = +[ + [ "apps", "dir_b4d0413a00f30ed5bea26ae94db4d4f7.html", "dir_b4d0413a00f30ed5bea26ae94db4d4f7" ], + [ "graphics", "dir_011fb339d4ebe6812c2c47d3e6334b23.html", "dir_011fb339d4ebe6812c2c47d3e6334b23" ] +]; \ No newline at end of file diff --git a/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep.md5 b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep.md5 new file mode 100644 index 0000000..b964abe --- /dev/null +++ b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep.md5 @@ -0,0 +1 @@ +54a9fa67bc3e20f3cdfc602ec049cddd \ No newline at end of file diff --git a/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep.svg b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep.svg new file mode 100644 index 0000000..c50e3dc --- /dev/null +++ b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + +azure_board_apps + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + +clusterdir_fc647d5b5fee47835a64d22ac5da01fe + + + + + + + +dir_fc647d5b5fee47835a64d22ac5da01fe +azure_board_apps + + + +dir_b4d0413a00f30ed5bea26ae94db4d4f7 + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b4d0413a00f30ed5bea26ae94db4d4f7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_011fb339d4ebe6812c2c47d3e6334b23 + + +graphics + + + + + +dir_011fb339d4ebe6812c2c47d3e6334b23->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + + + + + + diff --git a/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep_org.svg b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep_org.svg new file mode 100644 index 0000000..6b9dd94 --- /dev/null +++ b/docs/html/dir_fc647d5b5fee47835a64d22ac5da01fe_dep_org.svg @@ -0,0 +1,85 @@ + + + + + + +azure_board_apps + +clusterdir_86cc9db09b207ba858ad95ae6c2160e7 + + +applications + + + + +clusterdir_fc647d5b5fee47835a64d22ac5da01fe + + + + + + + +dir_fc647d5b5fee47835a64d22ac5da01fe +azure_board_apps + + + +dir_b4d0413a00f30ed5bea26ae94db4d4f7 + + +apps + + + + + +dir_1a94785b4fd07fa9f86295c704ab286b + + +modules + + + + + +dir_b4d0413a00f30ed5bea26ae94db4d4f7->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +5 + + + + + +dir_011fb339d4ebe6812c2c47d3e6334b23 + + +graphics + + + + + +dir_011fb339d4ebe6812c2c47d3e6334b23->dir_1a94785b4fd07fa9f86295c704ab286b + + + + + + +2 + + + + + diff --git a/docs/html/dir_fe9384a6c969461651fdf91b0c07824b.html b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b.html new file mode 100644 index 0000000..7f42b58 --- /dev/null +++ b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b.html @@ -0,0 +1,131 @@ + + + + + + + +ESP-IDF Firmware: fixed Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fixed Directory Reference
+
+
+
+Directory dependency graph for fixed:
+
+
+
+ + + + + + + + + + + +

+Files

 
dspi_dotprod_off_s16_ansi.c
 
dspi_dotprod_off_s8_ansi.c
 
dspi_dotprod_off_u16_ansi.c
 
dspi_dotprod_off_u8_ansi.c
 
dspi_dotprod_s16_ansi.c
 
dspi_dotprod_s8_ansi.c
 
dspi_dotprod_u16_ansi.c
 
dspi_dotprod_u8_ansi.c
 
dsps_dotprod_s16_ansi.c
+
+
+ +
+ + + + diff --git a/docs/html/dir_fe9384a6c969461651fdf91b0c07824b.js b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b.js new file mode 100644 index 0000000..78db772 --- /dev/null +++ b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b.js @@ -0,0 +1,12 @@ +var dir_fe9384a6c969461651fdf91b0c07824b = +[ + [ "dspi_dotprod_off_s16_ansi.c", "dspi__dotprod__off__s16__ansi_8c.html", "dspi__dotprod__off__s16__ansi_8c" ], + [ "dspi_dotprod_off_s8_ansi.c", "dspi__dotprod__off__s8__ansi_8c.html", "dspi__dotprod__off__s8__ansi_8c" ], + [ "dspi_dotprod_off_u16_ansi.c", "dspi__dotprod__off__u16__ansi_8c.html", "dspi__dotprod__off__u16__ansi_8c" ], + [ "dspi_dotprod_off_u8_ansi.c", "dspi__dotprod__off__u8__ansi_8c.html", "dspi__dotprod__off__u8__ansi_8c" ], + [ "dspi_dotprod_s16_ansi.c", "dspi__dotprod__s16__ansi_8c.html", "dspi__dotprod__s16__ansi_8c" ], + [ "dspi_dotprod_s8_ansi.c", "dspi__dotprod__s8__ansi_8c.html", "dspi__dotprod__s8__ansi_8c" ], + [ "dspi_dotprod_u16_ansi.c", "dspi__dotprod__u16__ansi_8c.html", "dspi__dotprod__u16__ansi_8c" ], + [ "dspi_dotprod_u8_ansi.c", "dspi__dotprod__u8__ansi_8c.html", "dspi__dotprod__u8__ansi_8c" ], + [ "dsps_dotprod_s16_ansi.c", "dsps__dotprod__s16__ansi_8c.html", "dsps__dotprod__s16__ansi_8c" ] +]; \ No newline at end of file diff --git a/docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep.md5 b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep.md5 new file mode 100644 index 0000000..e23cae2 --- /dev/null +++ b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep.md5 @@ -0,0 +1 @@ +40a5a2e1ffcb44ff5d664027307fb5c8 \ No newline at end of file diff --git a/docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep.svg b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep.svg new file mode 100644 index 0000000..bdcf463 --- /dev/null +++ b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + +fixed + +clusterdir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_503b7d37e1488242e5075cc003fe4360 + + +include + + + + + +dir_fe9384a6c969461651fdf91b0c07824b + + +fixed + + + + + +dir_fe9384a6c969461651fdf91b0c07824b->dir_503b7d37e1488242e5075cc003fe4360 + + + + + + +9 + + + + + + + + + + diff --git a/docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep_org.svg b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep_org.svg new file mode 100644 index 0000000..7df8bbc --- /dev/null +++ b/docs/html/dir_fe9384a6c969461651fdf91b0c07824b_dep_org.svg @@ -0,0 +1,51 @@ + + + + + + +fixed + +clusterdir_0c02408d15b1f96bbde516c6c09437d8 + + +dotprod + + + + + +dir_503b7d37e1488242e5075cc003fe4360 + + +include + + + + + +dir_fe9384a6c969461651fdf91b0c07824b + + +fixed + + + + + +dir_fe9384a6c969461651fdf91b0c07824b->dir_503b7d37e1488242e5075cc003fe4360 + + + + + + +9 + + + + + diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css new file mode 100644 index 0000000..788923a --- /dev/null +++ b/docs/html/doxygen.css @@ -0,0 +1,2540 @@ +/* The standard CSS for doxygen 1.16.1*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #3D578C; +--page-external-link-color: #334975; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--group-header-separator-color: #D9E0EE; +--group-header-color: #354C7B; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 75px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #C4CFE5; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #C4CFE5; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-folder-open-fill-color: #C4CFE5; +--icon-folder-fill-color: #D8DFEE; +--icon-folder-border-color: #4665A2; +--icon-doc-fill-color: #D8DFEE; +--icon-doc-border-color: #4665A2; + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; +--memdecl-border-color: #D5DDEC; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-proto-background-color: #EEF1F7; +--memdef-proto-text-color: #253555; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-border-color: #C4CFE5; +--nav-breadcrumb-separator-color: #C4CFE5; +--nav-breadcrumb-active-bg: #EEF1F7; +--nav-breadcrumb-color: #354C7B; +--nav-splitbar-bg-color: #DCE2EF; +--nav-splitbar-handle-color: #9CAFD4; +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-active-bg: #DCE2EF; +--nav-menu-active-color: #9CAFD4; +--nav-arrow-color: #B6C4DF; +--nav-arrow-selected-color: #90A5CE; + +/* sync icon */ +--sync-icon-border-color: #C4CFE5; +--sync-icon-background-color: #F9FAFC; +--sync-icon-selected-background-color: #EEF1F7; +--sync-icon-color: #C4CFE5; +--sync-icon-selected-color: #6884BD; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-active-color: black; +--search-filter-background-color: rgba(255,255,255,.7); +--search-filter-backdrop-filter: blur(4px); +--search-filter-foreground-color: black; +--search-filter-border-color: rgba(150,150,150,.4); +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: rgba(255,255,255,.8); +--search-results-backdrop-filter: blur(4px); +--search-results-border-color: rgba(150,150,150,.4); +--search-box-border-color: #B6C4DF; +--search-close-icon-bg-color: #A0A0A0; +--search-close-icon-fg-color: white; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--fragment-highlight-filter: -3; +--tooltip-foreground-color: black; +--tooltip-background-color: rgba(255,255,255,0.8); +--tooltip-arrow-background-color: white; +--tooltip-border-color: rgba(150,150,150,0.7); +--tooltip-backdrop-filter: blur(3px); +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 0 4px 8px 0 rgba(0,0,0,.25); +--fold-line-color: #808080; + +/** font-family */ +--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +--satisfies-color-hl: #b61825; +--satisfies-color-bg: #f8d1cc; +--verifies-color-hl: #b61825; +--verifies-color-bg: #f8d1cc; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #90A5CE; +--page-external-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--group-header-separator-color: #1D2A43; +--group-header-color: #90A5CE; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #212F4B; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #2C3F65; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-folder-open-fill-color: #4665A2; +--icon-folder-fill-color: #5373B4; +--icon-folder-border-color: #C4CFE5; +--icon-doc-fill-color: #6884BD; +--icon-doc-border-color: #C4CFE5; + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; +--memdecl-border-color: #233250; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-border-color: #212F4B; +--nav-breadcrumb-separator-color: #212F4B; +--nav-breadcrumb-active-bg: #1D2A43; +--nav-breadcrumb-color: #90A5CE; +--nav-splitbar-bg-color: #283A5D; +--nav-splitbar-handle-color: #4665A2; +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-active-bg: #1D2A43; +--nav-menu-active-color: #C9D3E7; +--nav-arrow-color: #4665A2; +--nav-arrow-selected-color: #6884BD; + +/* sync icon */ +--sync-icon-border-color: #212F4B; +--sync-icon-background-color: #101826; +--sync-icon-selected-background-color: #1D2A43; +--sync-icon-color: #4665A2; +--sync-icon-selected-color: #5373B4; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-active-color: #F5F5F5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-backdrop-filter: none; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: black; +--search-results-foreground-color: #90A5CE; +--search-results-backdrop-filter: none; +--search-results-border-color: #334975; +--search-box-border-color: #334975; +--search-close-icon-bg-color: #909090; +--search-close-icon-fg-color: black; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: #090D16; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--fragment-highlight-filter: 5; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-arrow-background-color: #202020; +--tooltip-backdrop-filter: none; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; + +/** font-family */ +--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +--satisfies-color-hl: #ad2617; +--satisfies-color-bg: #2e1917; +--verifies-color-hl: #ad2617; +--verifies-color-bg: #2e1917; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +body.resizing { + user-select: none; + -webkit-user-select: none; +} + +#doc-content { + scrollbar-width: thin; +} + +/* @group Heading Levels */ + +.title { + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 160%; + font-weight: 400; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + box-shadow: 12px 0 var(--page-background-color), + -12px 0 var(--page-background-color), + 12px 1px var(--group-header-separator-color), + -12px 1px var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +td h2.groupheader { + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; + margin-bottom: 0px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + margin-right: 6px; + padding-right: 6px; + text-align: right; + line-height: 110%; + background-color: var(--nav-background-color); +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + padding-right: 6px; + padding-left: 6px; + border-radius: 0 6px 6px 0; + background-color: var(--nav-menu-active-bg); +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +span.label a:hover { + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.el, a.el:visited, a.code, a.code:visited, a.line, a.line:visited { + color: var(--page-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--page-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +div.embeddoc { + font-family: var(--font-family-monospace); + padding-left: 10px; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul.check { + list-style: none; + padding-left: 40px; + margin: 0; +} + +ul.check li { + position: relative; +} + +li.unchecked::before, li.checked::before { + position: absolute; + left: -18px; + top: 0; +} + +li.unchecked::before { + content: "☐"; +} + +li.checked::before { + content: "☑"; +} + +ul.check li > p { + display: inline; +} + +ul.check li > p:not(:first-child) { + display: block; +} + +ol { + text-indent: 0px; +} + +ul { + text-indent: 0px; + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); +} + +pre.fragment { + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +span.tt { + white-space: pre; + font-family: var(--font-family-monospace); + background-color: var(--fragment-background-color); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: hidden; + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .4; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: wrap; + word-break: break-all; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -62px; + padding-left: 62px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + display: inline-block; + width: 12px; + height: 12px; + margin-left: 4px; + margin-right: 1px; +} + +span.foldnone { + display: inline-block; + position: relative; + cursor: pointer; + user-select: none; +} + +span.fold.plus, span.fold.minus { + width: 10px; + height: 10px; + background-color: var(--fragment-background-color); + position: relative; + border: 1px solid var(--fold-line-color); + margin-right: 1px; +} + +span.fold.plus::before, span.fold.minus::before { + content: ''; + position: absolute; + background-color: var(--fold-line-color); +} + +span.fold.plus::before { + width: 2px; + height: 6px; + top: 2px; + left: 4px; +} + +span.fold.plus::after { + content: ''; + position: absolute; + width: 6px; + height: 2px; + top: 4px; + left: 2px; + background-color: var(--fold-line-color); +} + +span.fold.minus::before { + width: 6px; + height: 2px; + top: 4px; + left: 2px; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 110%; + font-weight: 500; + margin-left: 0px; + margin-top: 0em; + margin-bottom: 6px; + padding-top: 8px; + padding-bottom: 4px; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 12px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + border: none; + margin-top: 16px; + margin-bottom: 16px; + height: 1px; + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight { + padding-top: 2px; + padding-bottom: 2px; +} + +.memTemplParams { + padding-left: 10px; + padding-top: 5px; +} + +.memItemLeft, .memItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +tr[class^='memdesc'] { + box-shadow: inset 0px 1px 3px 0px rgba(0,0,0,.075); +} + +.mdescLeft { + border-left: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); +} + +.mdescRight { + border-right: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; + border-left: 1px solid var(--memdecl-border-color); + border-right: 1px solid var(--memdecl-border-color); +} + +td.ititle { + border: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; + border-top-right-radius: 4px; + padding-left: 10px; +} + +tr:not(:first-child) > td.ititle { + border-top: 0; + border-radius: 0; +} + +.memItemLeft { + white-space: nowrap; + border-left: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); + padding-left: 10px; + transition: none; + vertical-align: top; + text-align: right; +} + +.memItemRight { + width: 100%; + border-right: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); + padding-right: 10px; + transition: none; + vertical-align: bottom; +} + +tr.heading + tr[class^='memitem'] td.memItemLeft, +tr.groupHeader + tr[class^='memitem'] td.memItemLeft, +tr.inherit_header + tr[class^='memitem'] td.memItemLeft { + border-top: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; +} + +tr.heading + tr[class^='memitem'] td.memItemRight, +tr.groupHeader + tr[class^='memitem'] td.memItemRight, +tr.inherit_header + tr[class^='memitem'] td.memItemRight { + border-top: 1px solid var(--memdecl-border-color); + border-top-right-radius: 4px; +} + +tr.heading + tr[class^='memitem'] td.memTemplParams, +tr.heading + tr td.ititle, +tr.groupHeader + tr[class^='memitem'] td.memTemplParams, +tr.groupHeader + tr td.ititle, +tr.inherit_header + tr[class^='memitem'] td.memTemplParams { + border-top: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +table.memberdecls tr:last-child td.memItemLeft, +table.memberdecls tr:last-child td.mdescLeft, +table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemLeft, +table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemLeft, +table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescLeft, +table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescLeft { + border-bottom-left-radius: 4px; +} + +table.memberdecls tr:last-child td.memItemRight, +table.memberdecls tr:last-child td.mdescRight, +table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemRight, +table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemRight, +table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescRight, +table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescRight { + border-bottom-right-radius: 4px; +} + +tr.template .memItemLeft, tr.template .memItemRight { + border-top: none; + padding-top: 0; +} + + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-color: var(--memdef-proto-background-color); + line-height: 1.25; + font-family: var(--font-family-monospace); + font-weight: 500; + font-size: 16px; + float:left; + box-shadow: 0 10px 0 -1px var(--memdef-proto-background-color), + 0 2px 8px 0 rgba(0,0,0,.075); + position: relative; +} + +.memtitle:after { + content: ''; + display: block; + background: var(--memdef-proto-background-color); + height: 10px; + bottom: -10px; + left: 0px; + right: -14px; + position: absolute; + border-top-right-radius: 6px; +} + +.permalink +{ + font-family: var(--font-family-monospace); + font-weight: 500; + line-height: 1.25; + font-size: 16px; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-family: var(--font-family-monospace); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + display: table !important; + width: 100%; + box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + border-radius: 4px; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-family: var(--font-family-monospace); + font-size: 13px; + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + background-color: var(--memdef-proto-background-color); + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; +} + +.paramname { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; +} + +.paramname em { + color: var(--memdef-param-name-color); + font-style: normal; + margin-right: 1px; +} + +.paramname .paramdefval { + font-family: var(--font-family-monospace); +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-background-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 14px; + transition: opacity 0.3s ease; +} + +span.arrowhead { + position: relative; + padding: 0; + margin: 0 0 0 2px; + display: inline-block; + width: 5px; + height: 5px; + border-right: 2px solid var(--nav-arrow-color); + border-bottom: 2px solid var(--nav-arrow-color); + transform: rotate(-45deg); + transition: transform 0.3s ease; +} + +span.arrowhead.opened { + transform: rotate(45deg); +} + +.selected span.arrowhead { + border-right: 2px solid var(--nav-arrow-selected-color); + border-bottom: 2px solid var(--nav-arrow-selected-color); +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfolder { + width: 24px; + height: 18px; + margin-top: 6px; + vertical-align:top; + display: inline-block; + position: relative; +} + +.icondoc { + width: 24px; + height: 18px; + margin-top: 3px; + vertical-align:top; + display: inline-block; + position: relative; +} + +.folder-icon { + width: 16px; + height: 11px; + background-color: var(--icon-folder-fill-color); + border: 1px solid var(--icon-folder-border-color); + border-radius: 0 2px 2px 2px; + position: relative; + box-sizing: content-box; +} + +.folder-icon::after { + content: ''; + position: absolute; + top: 2px; + left: -1px; + width: 16px; + height: 7px; + background-color: var(--icon-folder-open-fill-color); + border: 1px solid var(--icon-folder-border-color); + border-radius: 7px 7px 2px 2px; + transform-origin: top left; + opacity: 0; + transition: all 0.3s linear; +} + +.folder-icon::before { + content: ''; + position: absolute; + top: -3px; + left: -1px; + width: 6px; + height: 2px; + background-color: var(--icon-folder-fill-color); + border-top: 1px solid var(--icon-folder-border-color); + border-left: 1px solid var(--icon-folder-border-color); + border-right: 1px solid var(--icon-folder-border-color); + border-radius: 2px 2px 0 0; +} + +.folder-icon.open::after { + top: 3px; + opacity: 1; +} + +.doc-icon { + left: 6px; + width: 12px; + height: 16px; + background-color: var(--icon-doc-border-color); + clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); + position: relative; + display: inline-block; +} +.doc-icon::before { + content: ""; + left: 1px; + top: 1px; + width: 10px; + height: 14px; + background-color: var(--icon-doc-fill-color); + clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); + position: absolute; + box-sizing: border-box; +} +.doc-icon::after { + content: ""; + left: 7px; + top: 0px; + width: 3px; + height: 3px; + background-color: transparent; + position: absolute; + border: 1px solid var(--icon-doc-border-color); +} + + + + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +span.dynarrow { + position: relative; + display: inline-block; + width: 12px; + bottom: 1px; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fieldinit { + padding-top: 3px; + text-align: right; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + +/* style requirements page */ + +div.req_title { + text-decoration-line: underline; + text-decoration-style: solid; + text-decoration-color: var(--table-cell-border-color); + text-decoration-thickness: 1px; + font-weight: bold; +} + +table.reqlist tr > td:first-child { + text-align: right; + font-weight: bold; +} + +div.missing_satisfies { + border-left: 8px solid var(--satisfies-color-hl); + border-radius: 4px; + background: var(--satisfies-color-bg); + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; +} + +div.missing_verifies { + border-left: 8px solid var(--verifies-color-hl); + border-radius: 4px; + background: var(--verifies-color-bg); + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; +} + +/* ----------- navigation breadcrumb styling ----------- */ + +#nav-path ul { + height: 30px; + line-height: 30px; + color: var(--nav-text-normal-color); + overflow: hidden; + margin: 0px; + padding-left: 4px; + background-image: none; + background: var(--page-background-color); + border-bottom: 1px solid var(--nav-breadcrumb-separator-color); + font-size: var(--nav-font-size-level1); + font-family: var(--font-family-nav); + position: relative; + z-index: 100; +} + +#main-nav { + border-bottom: 1px solid var(--nav-border-color); +} + +.navpath li { + list-style-type:none; + float:left; + color: var(--nav-foreground-color); +} + +.navpath li.footer { + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + font-size: 8pt; + color: var(--footer-foreground-color); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; + padding-left: 15px; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--nav-breadcrumb-color); + position: relative; + top: 0px; + height: 30px; + margin-right: -20px; +} + +#nav-path li.navelem:after { + content: ''; + display: inline-block; + position: relative; + top: 0; + right: -15px; + width: 30px; + height: 30px; + transform: scaleX(0.5) scale(0.707) rotate(45deg); + z-index: 10; + background: var(--page-background-color); + box-shadow: 2px -2px 0 2px var(--nav-breadcrumb-separator-color); + border-radius: 0 5px 0 50px; +} + +#nav-path li.navelem:first-child { + margin-left: -6px; +} + +#nav-path li.navelem:hover, +#nav-path li.navelem:hover:after { + background-color: var(--nav-breadcrumb-active-bg); +} + +/* ---------------------- */ + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + margin: 0px; + background-color: var(--header-background-color); + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl { + padding: 0 0 0 0; +} + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention, dl.important { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt, dl.important dt { + color: var(--warning-color-hl); +} + +dl.warning .tt, dl.attention .tt, dl.important .tt { + background-color: hsl(from var(--warning-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.note .tt, dl.remark .tt { + background-color: hsl(from var(--note-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.todo .tt { + background-color: hsl(from var(--todo-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.test .tt { + background-color: hsl(from var(--test-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug .tt { + background-color: hsl(from var(--bug-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.deprecated .tt { + background-color: hsl(from var(--deprecated-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + +dl.invariant .tt, dl.pre .tt, dl.post .tt { + background-color: hsl(from var(--invariant-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, +dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, +dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0; + padding: 0; +} + +#side-nav #projectname +{ + font-size: 130%; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0 0 0 5px; + margin: 0px; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li[class^='level'] { + margin-left: 15px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.empty { + background-image: none; + margin-top: 0px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: 400; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0 2px 0; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 12px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + backdrop-filter: var(--tooltip-backdrop-filter); + -webkit-backdrop-filter: var(--tooltip-backdrop-filter); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-arrow-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-arrow-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd +{ + display: inline-block; +} +tt, code, kbd +{ + vertical-align: top; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +:root { + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/docs/html/doxygen.svg b/docs/html/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/docs/html/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/doxygen_crawl.html b/docs/html/doxygen_crawl.html new file mode 100644 index 0000000..f6a7fde --- /dev/null +++ b/docs/html/doxygen_crawl.html @@ -0,0 +1,2930 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsp__common_8h.html b/docs/html/dsp__common_8h.html new file mode 100644 index 0000000..c8d07c3 --- /dev/null +++ b/docs/html/dsp__common_8h.html @@ -0,0 +1,277 @@ + + + + + + + +ESP-IDF Firmware: dsp_common.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_common.h File Reference
+
+
+
#include <stdint.h>
+#include <stdbool.h>
+#include "
dsp_err.h"
+#include "esp_idf_version.h"
+#include <x86intrin.h>
+
+Include dependency graph for dsp_common.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define dsp_get_cpu_cycle_count   __rdtsc
+ + + + + + + +

+Functions

bool dsp_is_power_of_two (int x)
 check power of two The function check if the argument is power of 2. The implementation use ANSI C and could be compiled and run on any platform
int dsp_power_of_two (int x)
 Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could be compiled and run on any platform.
esp_err_t tie_log (int n_regs,...)
 Logginng for esp32s3 TIE core Registers covered q0 to q7, ACCX and SAR_BYTE.
+

Macro Definition Documentation

+ +

◆ dsp_get_cpu_cycle_count

+ +
+
+ + + + +
#define dsp_get_cpu_cycle_count   __rdtsc
+
+
+

Function Documentation

+ +

◆ dsp_is_power_of_two()

+ +
+
+ + + + + + + +
bool dsp_is_power_of_two (int x)
+
+ +

check power of two The function check if the argument is power of 2. The implementation use ANSI C and could be compiled and run on any platform

+
Returns
    +
  • true if x is power of two
  • +
  • false if no
  • +
+
+ +

Definition at line 17 of file dsps_pwroftwo.cpp.

+
18{
+
19 return (x != 0) && ((x & (x - 1)) == 0);
+
20}
+
float x[1024]
Definition test_fir.c:10
+
+

References x.

+ +

Referenced by dsps_bit_rev4r_direct_fc32_ansi(), dsps_bit_rev_fc32_ansi(), dsps_bit_rev_sc16_ansi(), dsps_cplx2reC_fc32_ansi(), dsps_cplx2reC_sc16(), dsps_cplx_gen_freq_get(), dsps_cplx_gen_init(), dsps_cplx_gen_phase_get(), dsps_fft2r_fc32_ansi_(), dsps_fft2r_sc16_ansi_(), dsps_gen_bitrev2r_table(), dsps_gen_bitrev4r_table(), dsps_gen_w_r2_fc32(), dsps_gen_w_r2_sc16(), dsps_sfdr_f32(), and dsps_snr_f32().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsp_power_of_two()

+ +
+
+ + + + + + + +
int dsp_power_of_two (int x)
+
+ +

Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could be compiled and run on any platform.

+
Returns
    +
  • power of two
  • +
+
+ +

Definition at line 22 of file dsps_pwroftwo.cpp.

+
23{
+
24 for (size_t i = 0; i < 32; i++) {
+
25 x = x >> 1;
+
26 if (0 == x) {
+
27 return i;
+
28 }
+
29 }
+
30 return 0;
+
31}
+
+

References x.

+ +

Referenced by dsps_bit_rev4r_direct_fc32_ansi(), dsps_cplx2real_sc16_ansi(), dsps_fft2r_init_fc32(), dsps_fft4r_fc32_ansi_(), dsps_fft4r_init_fc32(), and dsps_gen_bitrev4r_table().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tie_log()

+ +
+
+ + + + + + + + + + + +
esp_err_t tie_log (int n_regs,
... )
+
+ +

Logginng for esp32s3 TIE core Registers covered q0 to q7, ACCX and SAR_BYTE.

+
Parameters
+ + + +
n_regsnumber of registers to be logged at once
...register codes 0, 1, 2, 3, 4, 5, 6, 7, 'a', 's'
+
+
+
Returns
ESP_OK
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsp__common_8h.js b/docs/html/dsp__common_8h.js new file mode 100644 index 0000000..a655b5a --- /dev/null +++ b/docs/html/dsp__common_8h.js @@ -0,0 +1,7 @@ +var dsp__common_8h = +[ + [ "dsp_get_cpu_cycle_count", "dsp__common_8h.html#a84ff785b70399f2c2da24f09dfe0e601", null ], + [ "dsp_is_power_of_two", "dsp__common_8h.html#a0dc0b4dd19d7ebd2f69bfb0c1a6f85da", null ], + [ "dsp_power_of_two", "dsp__common_8h.html#a58855e560e0563aa519b012dbdcbaec2", null ], + [ "tie_log", "dsp__common_8h.html#afda07af304a49a800cfc7be4b2837fd6", null ] +]; \ No newline at end of file diff --git a/docs/html/dsp__common_8h__dep__incl.md5 b/docs/html/dsp__common_8h__dep__incl.md5 new file mode 100644 index 0000000..44c62b4 --- /dev/null +++ b/docs/html/dsp__common_8h__dep__incl.md5 @@ -0,0 +1 @@ +b3089f9d7a8a5565c1059b015023362f \ No newline at end of file diff --git a/docs/html/dsp__common_8h__dep__incl.svg b/docs/html/dsp__common_8h__dep__incl.svg new file mode 100644 index 0000000..d8507c4 --- /dev/null +++ b/docs/html/dsp__common_8h__dep__incl.svg @@ -0,0 +1,761 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_common.h + + +Node1 + + +dsp_common.h + + + + + +Node2 + + +aes3_tie_log.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_cplx_gen_init.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_dct_f32.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_dctiv_f32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_dstiv_f32.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_fir.h + + + + + +Node1->Node12 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node1->Node22 + + + + + + + + +Node26 + + +esp_dsp.h + + + + + +Node1->Node26 + + + + + + + + +Node54 + + +test_fir.c + + + + + +Node1->Node54 + + + + + + + + +Node55 + + +dsps_mem.h + + + + + +Node1->Node55 + + + + + + + + +Node56 + + +dsps_pwroftwo.cpp + + + + + +Node1->Node56 + + + + + + + + +Node57 + + +dsps_sfdr_f32.cpp + + + + + +Node1->Node57 + + + + + + + + +Node58 + + +dsps_snr_f32.cpp + + + + + +Node1->Node58 + + + + + + + + +Node59 + + +test_fft2r.c + + + + + +Node1->Node59 + + + + + + + + +Node60 + + +test_iir_biquad.c + + + + + +Node1->Node60 + + + + + + + + +Node61 + + +test_mmult.c + + + + + +Node1->Node61 + + + + + + + + +Node13 + + +dsps_fir_f32_ansi.c + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dsps_fir_init_f32.c + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +dsps_fird_f32_ansi.c + + + + + +Node12->Node15 + + + + + + + + +Node16 + + +dsps_fird_init_f32.c + + + + + +Node12->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node12->Node17 + + + + + + + + +Node18 + + +dsps_fird_s16_ansi.c + + + + + +Node12->Node18 + + + + + + + + +Node12->Node19 + + + + + + + + +Node12->Node20 + + + + + + + + +Node12->Node21 + + + + + + + + +Node12->Node22 + + + + + + + + +Node23 + + +dsps_resampler.h + + + + + +Node12->Node23 + + + + + + + + +Node12->Node26 + + + + + + + + +Node12->Node54 + + + + + + + + +Node24 + + +dsps_resampler_mr.c + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +dsps_resampler_ph.c + + + + + +Node23->Node25 + + + + + + + + +Node23->Node26 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsp__common_8h__dep__incl_org.svg b/docs/html/dsp__common_8h__dep__incl_org.svg new file mode 100644 index 0000000..708aafa --- /dev/null +++ b/docs/html/dsp__common_8h__dep__incl_org.svg @@ -0,0 +1,678 @@ + + + + + + +dsp_common.h + + +Node1 + + +dsp_common.h + + + + + +Node2 + + +aes3_tie_log.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_cplx_gen_init.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_dct_f32.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_dctiv_f32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_dstiv_f32.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_fir.h + + + + + +Node1->Node12 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node1->Node22 + + + + + + + + +Node26 + + +esp_dsp.h + + + + + +Node1->Node26 + + + + + + + + +Node54 + + +test_fir.c + + + + + +Node1->Node54 + + + + + + + + +Node55 + + +dsps_mem.h + + + + + +Node1->Node55 + + + + + + + + +Node56 + + +dsps_pwroftwo.cpp + + + + + +Node1->Node56 + + + + + + + + +Node57 + + +dsps_sfdr_f32.cpp + + + + + +Node1->Node57 + + + + + + + + +Node58 + + +dsps_snr_f32.cpp + + + + + +Node1->Node58 + + + + + + + + +Node59 + + +test_fft2r.c + + + + + +Node1->Node59 + + + + + + + + +Node60 + + +test_iir_biquad.c + + + + + +Node1->Node60 + + + + + + + + +Node61 + + +test_mmult.c + + + + + +Node1->Node61 + + + + + + + + +Node13 + + +dsps_fir_f32_ansi.c + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dsps_fir_init_f32.c + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +dsps_fird_f32_ansi.c + + + + + +Node12->Node15 + + + + + + + + +Node16 + + +dsps_fird_init_f32.c + + + + + +Node12->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node12->Node17 + + + + + + + + +Node18 + + +dsps_fird_s16_ansi.c + + + + + +Node12->Node18 + + + + + + + + +Node12->Node19 + + + + + + + + +Node12->Node20 + + + + + + + + +Node12->Node21 + + + + + + + + +Node12->Node22 + + + + + + + + +Node23 + + +dsps_resampler.h + + + + + +Node12->Node23 + + + + + + + + +Node12->Node26 + + + + + + + + +Node12->Node54 + + + + + + + + +Node24 + + +dsps_resampler_mr.c + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +dsps_resampler_ph.c + + + + + +Node23->Node25 + + + + + + + + +Node23->Node26 + + + + + + + + diff --git a/docs/html/dsp__common_8h__incl.md5 b/docs/html/dsp__common_8h__incl.md5 new file mode 100644 index 0000000..01c5246 --- /dev/null +++ b/docs/html/dsp__common_8h__incl.md5 @@ -0,0 +1 @@ +d2530aad7dba05e270c6ea3ab041f5b3 \ No newline at end of file diff --git a/docs/html/dsp__common_8h__incl.svg b/docs/html/dsp__common_8h__incl.svg new file mode 100644 index 0000000..373e21c --- /dev/null +++ b/docs/html/dsp__common_8h__incl.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + +dsp_common.h + + +Node1 + + +dsp_common.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdbool.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsp_err.h + + + + + +Node1->Node4 + + + + + + + + +Node8 + + +esp_idf_version.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +x86intrin.h + + + + + +Node1->Node9 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node4->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsp__common_8h__incl_org.svg b/docs/html/dsp__common_8h__incl_org.svg new file mode 100644 index 0000000..9ab9c1b --- /dev/null +++ b/docs/html/dsp__common_8h__incl_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsp_common.h + + +Node1 + + +dsp_common.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdbool.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsp_err.h + + + + + +Node1->Node4 + + + + + + + + +Node8 + + +esp_idf_version.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +x86intrin.h + + + + + +Node1->Node9 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node4->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + diff --git a/docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.md5 b/docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.md5 new file mode 100644 index 0000000..d258877 --- /dev/null +++ b/docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.md5 @@ -0,0 +1 @@ +ec4b25b66d1f82772201ad6e9ace40f6 \ No newline at end of file diff --git a/docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.svg b/docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.svg new file mode 100644 index 0000000..ff8f239 --- /dev/null +++ b/docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph.svg @@ -0,0 +1,591 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_is_power_of_two + + +Node1 + + +dsp_is_power_of_two + + + + + +Node2 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dsps_sfdr_f32 + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_snr_f32 + + + + + +Node1->Node7 + + + + + + + + +Node10 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +dsps_cplx2reC_fc32_ansi + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +dsps_cplx2reC_sc16 + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +dsps_cplx_gen_freq_get + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +dsps_cplx_gen_init + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +dsps_cplx_gen_phase_get + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +dsps_fft2r_fc32_ansi_ + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +dsps_gen_bitrev2r_table + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +dsps_gen_bitrev4r_table + + + + + +Node1->Node23 + + + + + + + + +Node24 + + +dsps_gen_w_r2_fc32 + + + + + +Node1->Node24 + + + + + + + + +Node25 + + +dsps_gen_w_r2_sc16 + + + + + +Node1->Node25 + + + + + + + + +Node3 + + +dsps_bit_rev4r_fc32 + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsps_fft2r_init_fc32 + + + + + +Node4->Node5 + + + + + + + + +Node4->Node6 + + + + + + + + +Node4->Node7 + + + + + + + + +Node5->Node6 + + + + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +test_fft2r + + + + + +Node5->Node8 + + + + + + + + +Node11 + + +dsps_fft2r_init_sc16 + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +microphone_read_task + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +microphone_read_task + + + + + +Node10->Node14 + + + + + + + + +Node11->Node12 + + + + + + + + +Node11->Node14 + + + + + + + + +Node16->Node12 + + + + + + + + +Node16->Node14 + + + + + + + + +Node24->Node5 + + + + + + + + +Node25->Node11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph_org.svg b/docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph_org.svg new file mode 100644 index 0000000..efb72f3 --- /dev/null +++ b/docs/html/dsp__common_8h_a0dc0b4dd19d7ebd2f69bfb0c1a6f85da_icgraph_org.svg @@ -0,0 +1,508 @@ + + + + + + +dsp_is_power_of_two + + +Node1 + + +dsp_is_power_of_two + + + + + +Node2 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dsps_sfdr_f32 + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_snr_f32 + + + + + +Node1->Node7 + + + + + + + + +Node10 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +dsps_cplx2reC_fc32_ansi + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +dsps_cplx2reC_sc16 + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +dsps_cplx_gen_freq_get + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +dsps_cplx_gen_init + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +dsps_cplx_gen_phase_get + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +dsps_fft2r_fc32_ansi_ + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +dsps_gen_bitrev2r_table + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +dsps_gen_bitrev4r_table + + + + + +Node1->Node23 + + + + + + + + +Node24 + + +dsps_gen_w_r2_fc32 + + + + + +Node1->Node24 + + + + + + + + +Node25 + + +dsps_gen_w_r2_sc16 + + + + + +Node1->Node25 + + + + + + + + +Node3 + + +dsps_bit_rev4r_fc32 + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsps_fft2r_init_fc32 + + + + + +Node4->Node5 + + + + + + + + +Node4->Node6 + + + + + + + + +Node4->Node7 + + + + + + + + +Node5->Node6 + + + + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +test_fft2r + + + + + +Node5->Node8 + + + + + + + + +Node11 + + +dsps_fft2r_init_sc16 + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +microphone_read_task + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +microphone_read_task + + + + + +Node10->Node14 + + + + + + + + +Node11->Node12 + + + + + + + + +Node11->Node14 + + + + + + + + +Node16->Node12 + + + + + + + + +Node16->Node14 + + + + + + + + +Node24->Node5 + + + + + + + + +Node25->Node11 + + + + + + + + diff --git a/docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph.md5 b/docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph.md5 new file mode 100644 index 0000000..b080288 --- /dev/null +++ b/docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph.md5 @@ -0,0 +1 @@ +e3199a21e4d23af9663d53f93ce2eff2 \ No newline at end of file diff --git a/docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph.svg b/docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph.svg new file mode 100644 index 0000000..4e46e03 --- /dev/null +++ b/docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph.svg @@ -0,0 +1,264 @@ + + + + + + + + + + + + +dsp_power_of_two + + +Node1 + + +dsp_power_of_two + + + + + +Node2 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_cplx2real_sc16_ansi + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node5 + + + + + + + + +Node10 + + +dsps_fft4r_fc32_ansi_ + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsps_fft4r_init_fc32 + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +dsps_gen_bitrev4r_table + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +dsps_bit_rev4r_fc32 + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +dsps_sfdr_f32 + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dsps_snr_f32 + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +test_fft2r + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +main + + + + + +Node8->Node9 + + + + + + + + +Node12 + + +app_main + + + + + +Node11->Node12 + + + + + + + + + + + + + diff --git a/docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph_org.svg b/docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph_org.svg new file mode 100644 index 0000000..acd4b0e --- /dev/null +++ b/docs/html/dsp__common_8h_a58855e560e0563aa519b012dbdcbaec2_icgraph_org.svg @@ -0,0 +1,238 @@ + + + + + + +dsp_power_of_two + + +Node1 + + +dsp_power_of_two + + + + + +Node2 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_cplx2real_sc16_ansi + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node5 + + + + + + + + +Node10 + + +dsps_fft4r_fc32_ansi_ + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsps_fft4r_init_fc32 + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +dsps_gen_bitrev4r_table + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +dsps_bit_rev4r_fc32 + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +dsps_sfdr_f32 + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dsps_snr_f32 + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +test_fft2r + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +main + + + + + +Node8->Node9 + + + + + + + + +Node12 + + +app_main + + + + + +Node11->Node12 + + + + + + + + diff --git a/docs/html/dsp__common_8h_source.html b/docs/html/dsp__common_8h_source.html new file mode 100644 index 0000000..87b4190 --- /dev/null +++ b/docs/html/dsp__common_8h_source.html @@ -0,0 +1,175 @@ + + + + + + + +ESP-IDF Firmware: dsp_common.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_common.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2022 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsp_common_H_
+
16#define _dsp_common_H_
+
17#include <stdint.h>
+
18#include <stdbool.h>
+
19#include "dsp_err.h"
+
20#include "esp_idf_version.h"
+
21
+
22#if defined(__XTENSA__) || defined(__riscv)
+
23#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)
+
24#include "esp_cpu.h"
+
25#else
+
26#include "soc/cpu.h"
+
27#endif
+
28#endif
+
29
+
30#ifdef __cplusplus
+
31extern "C"
+
32{
+
33#endif
+
34
+
44bool dsp_is_power_of_two(int x);
+
45
+
46
+
55int dsp_power_of_two(int x);
+
56
+
57
+
68esp_err_t tie_log(int n_regs, ...);
+
69
+
70#ifdef __cplusplus
+
71}
+
72#endif
+
73
+
74// esp_cpu_get_ccount function is implemented in IDF 4.1 and later
+
75#if defined(__XTENSA__) || defined(__riscv)
+
76#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)
+
77#define dsp_get_cpu_cycle_count esp_cpu_get_cycle_count
+
78#else
+
79#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 1, 0)
+
80#define dsp_get_cpu_cycle_count esp_cpu_get_ccount
+
81#else
+
82#define dsp_get_cpu_cycle_count xthal_get_ccount
+
83#endif
+
84#endif // ESP_IDF_VERSION
+
85#else
+
86// Linux Target
+
87#include <x86intrin.h>
+
88#define dsp_get_cpu_cycle_count __rdtsc
+
89#endif
+
90#endif // _dsp_common_H_
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
esp_err_t tie_log(int n_regs,...)
Logginng for esp32s3 TIE core Registers covered q0 to q7, ACCX and SAR_BYTE.
+ +
int esp_err_t
Definition esp_err.h:21
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dsp__err_8h.html b/docs/html/dsp__err_8h.html new file mode 100644 index 0000000..c211b72 --- /dev/null +++ b/docs/html/dsp__err_8h.html @@ -0,0 +1,128 @@ + + + + + + + +ESP-IDF Firmware: dsp_err.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_err.h File Reference
+
+
+
#include "stdint.h"
+#include "esp_err.h"
+#include "dsp_err_codes.h"
+
+Include dependency graph for dsp_err.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsp__err_8h__dep__incl.md5 b/docs/html/dsp__err_8h__dep__incl.md5 new file mode 100644 index 0000000..4e0986b --- /dev/null +++ b/docs/html/dsp__err_8h__dep__incl.md5 @@ -0,0 +1 @@ +c2276246a2852d10c358e8890fc770f1 \ No newline at end of file diff --git a/docs/html/dsp__err_8h__dep__incl.svg b/docs/html/dsp__err_8h__dep__incl.svg new file mode 100644 index 0000000..2009531 --- /dev/null +++ b/docs/html/dsp__err_8h__dep__incl.svg @@ -0,0 +1,1936 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_err.h + + +Node1 + + +dsp_err.h + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +dsps_fir.h + + + + + +Node1->Node13 + + + + + + + + +Node24 + + +dsps_resampler.h + + + + + +Node1->Node24 + + + + + + + + +Node56 + + +dsps_mem.h + + + + + +Node1->Node56 + + + + + + + + +Node63 + + +dspi_conv.h + + + + + +Node1->Node63 + + + + + + + + +Node65 + + +dspi_dotprod.h + + + + + +Node1->Node65 + + + + + + + + +Node76 + + +dspm_add.h + + + + + +Node1->Node76 + + + + + + + + +Node80 + + +dspm_addc.h + + + + + +Node1->Node80 + + + + + + + + +Node82 + + +dspm_mulc.h + + + + + +Node1->Node82 + + + + + + + + +Node84 + + +dspm_mult.h + + + + + +Node1->Node84 + + + + + + + + +Node88 + + +dspm_sub.h + + + + + +Node1->Node88 + + + + + + + + +Node90 + + +dsps_add.h + + + + + +Node1->Node90 + + + + + + + + +Node96 + + +dsps_addc.h + + + + + +Node1->Node96 + + + + + + + + +Node98 + + +dsps_biquad.h + + + + + +Node1->Node98 + + + + + + + + +Node101 + + +dsps_biquad_gen.h + + + + + +Node1->Node101 + + + + + + + + +Node103 + + +dsps_ccorr.h + + + + + +Node1->Node103 + + + + + + + + +Node104 + + +dsps_conv.h + + + + + +Node1->Node104 + + + + + + + + +Node107 + + +dsps_corr.h + + + + + +Node1->Node107 + + + + + + + + +Node109 + + +dsps_cplx_gen.h + + + + + +Node1->Node109 + + + + + + + + +Node111 + + +dsps_d_gen.h + + + + + +Node1->Node111 + + + + + + + + +Node113 + + +dsps_dct.h + + + + + +Node1->Node113 + + + + + + + + +Node114 + + +dsps_dotprod.h + + + + + +Node1->Node114 + + + + + + + + +Node118 + + +dsps_fft2r.h + + + + + +Node1->Node118 + + + + + + + + +Node119 + + +dsps_fft4r.h + + + + + +Node1->Node119 + + + + + + + + +Node120 + + +dsps_h_gen.h + + + + + +Node1->Node120 + + + + + + + + +Node122 + + +dsps_mul.h + + + + + +Node1->Node122 + + + + + + + + +Node126 + + +dsps_mulc.h + + + + + +Node1->Node126 + + + + + + + + +Node129 + + +dsps_sfdr.h + + + + + +Node1->Node129 + + + + + + + + +Node130 + + +dsps_snr.h + + + + + +Node1->Node130 + + + + + + + + +Node131 + + +dsps_sqrt.h + + + + + +Node1->Node131 + + + + + + + + +Node133 + + +dsps_sub.h + + + + + +Node1->Node133 + + + + + + + + +Node136 + + +dsps_tone_gen.h + + + + + +Node1->Node136 + + + + + + + + +Node138 + + +dsps_view.h + + + + + +Node1->Node138 + + + + + + + + +Node3 + + +aes3_tie_log.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_cplx_gen_init.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_dct_f32.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_dctiv_f32.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_dstiv_f32.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2->Node12 + + + + + + + + +Node2->Node13 + + + + + + + + +Node20 + + +dsps_firmr_f32_ansi.c + + + + + +Node2->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_f32.c + + + + + +Node2->Node21 + + + + + + + + +Node22 + + +dsps_firmr_init_s16.c + + + + + +Node2->Node22 + + + + + + + + +Node23 + + +dsps_firmr_s16_ansi.c + + + + + +Node2->Node23 + + + + + + + + +Node27 + + +esp_dsp.h + + + + + +Node2->Node27 + + + + + + + + +Node55 + + +test_fir.c + + + + + +Node2->Node55 + + + + + + + + +Node2->Node56 + + + + + + + + +Node57 + + +dsps_pwroftwo.cpp + + + + + +Node2->Node57 + + + + + + + + +Node58 + + +dsps_sfdr_f32.cpp + + + + + +Node2->Node58 + + + + + + + + +Node59 + + +dsps_snr_f32.cpp + + + + + +Node2->Node59 + + + + + + + + +Node60 + + +test_fft2r.c + + + + + +Node2->Node60 + + + + + + + + +Node61 + + +test_iir_biquad.c + + + + + +Node2->Node61 + + + + + + + + +Node62 + + +test_mmult.c + + + + + +Node2->Node62 + + + + + + + + +Node13->Node20 + + + + + + + + +Node13->Node21 + + + + + + + + +Node13->Node22 + + + + + + + + +Node13->Node23 + + + + + + + + +Node13->Node24 + + + + + + + + +Node13->Node27 + + + + + + + + +Node13->Node55 + + + + + + + + +Node24->Node27 + + + + + + + + +Node63->Node27 + + + + + + + + +Node64 + + +dspi_conv_f32_ansi.c + + + + + +Node63->Node64 + + + + + + + + +Node65->Node27 + + + + + + + + +Node66 + + +dspi_dotprod_f32_ansi.c + + + + + +Node65->Node66 + + + + + + + + +Node67 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node65->Node67 + + + + + + + + +Node68 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node65->Node68 + + + + + + + + +Node69 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node65->Node69 + + + + + + + + +Node70 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node65->Node70 + + + + + + + + +Node71 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node65->Node71 + + + + + + + + +Node72 + + +dspi_dotprod_s16_ansi.c + + + + + +Node65->Node72 + + + + + + + + +Node73 + + +dspi_dotprod_s8_ansi.c + + + + + +Node65->Node73 + + + + + + + + +Node74 + + +dspi_dotprod_u16_ansi.c + + + + + +Node65->Node74 + + + + + + + + +Node75 + + +dspi_dotprod_u8_ansi.c + + + + + +Node65->Node75 + + + + + + + + +Node77 + + +dspm_add_f32_ansi.c + + + + + +Node76->Node77 + + + + + + + + +Node78 + + +dspm_matrix.h + + + + + +Node76->Node78 + + + + + + + + +Node78->Node27 + + + + + + + + +Node80->Node78 + + + + + + + + +Node81 + + +dspm_addc_f32_ansi.c + + + + + +Node80->Node81 + + + + + + + + +Node82->Node78 + + + + + + + + +Node83 + + +dspm_mulc_f32_ansi.c + + + + + +Node82->Node83 + + + + + + + + +Node84->Node60 + + + + + + + + +Node84->Node62 + + + + + + + + +Node84->Node78 + + + + + + + + +Node85 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node84->Node85 + + + + + + + + +Node86 + + +dspm_mult_f32_ansi.c + + + + + +Node84->Node86 + + + + + + + + +Node87 + + +dspm_mult_s16_ansi.c + + + + + +Node84->Node87 + + + + + + + + +Node88->Node78 + + + + + + + + +Node89 + + +dspm_sub_f32_ansi.c + + + + + +Node88->Node89 + + + + + + + + +Node98->Node27 + + + + + + + + +Node98->Node61 + + + + + + + + +Node101->Node27 + + + + + + + + +Node104->Node27 + + + + + + + + +Node107->Node27 + + + + + + + + +Node109->Node4 + + + + + + + + +Node111->Node27 + + + + + + + + +Node113->Node5 + + + + + + + + +Node113->Node6 + + + + + + + + +Node113->Node7 + + + + + + + + +Node113->Node27 + + + + + + + + +Node114->Node27 + + + + + + + + +Node114->Node86 + + + + + + + + +Node114->Node87 + + + + + + + + +Node118->Node5 + + + + + + + + +Node118->Node6 + + + + + + + + +Node118->Node7 + + + + + + + + +Node118->Node8 + + + + + + + + +Node118->Node9 + + + + + + + + +Node118->Node10 + + + + + + + + +Node118->Node11 + + + + + + + + +Node118->Node12 + + + + + + + + +Node118->Node27 + + + + + + + + +Node118->Node58 + + + + + + + + +Node118->Node59 + + + + + + + + +Node118->Node60 + + + + + + + + +Node119->Node11 + + + + + + + + +Node119->Node12 + + + + + + + + +Node119->Node27 + + + + + + + + +Node120->Node27 + + + + + + + + +Node129->Node27 + + + + + + + + +Node129->Node58 + + + + + + + + +Node130->Node27 + + + + + + + + +Node130->Node59 + + + + + + + + +Node136->Node27 + + + + + + + + +Node138->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsp__err_8h__dep__incl_org.svg b/docs/html/dsp__err_8h__dep__incl_org.svg new file mode 100644 index 0000000..6c0e1b1 --- /dev/null +++ b/docs/html/dsp__err_8h__dep__incl_org.svg @@ -0,0 +1,1853 @@ + + + + + + +dsp_err.h + + +Node1 + + +dsp_err.h + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +dsps_fir.h + + + + + +Node1->Node13 + + + + + + + + +Node24 + + +dsps_resampler.h + + + + + +Node1->Node24 + + + + + + + + +Node56 + + +dsps_mem.h + + + + + +Node1->Node56 + + + + + + + + +Node63 + + +dspi_conv.h + + + + + +Node1->Node63 + + + + + + + + +Node65 + + +dspi_dotprod.h + + + + + +Node1->Node65 + + + + + + + + +Node76 + + +dspm_add.h + + + + + +Node1->Node76 + + + + + + + + +Node80 + + +dspm_addc.h + + + + + +Node1->Node80 + + + + + + + + +Node82 + + +dspm_mulc.h + + + + + +Node1->Node82 + + + + + + + + +Node84 + + +dspm_mult.h + + + + + +Node1->Node84 + + + + + + + + +Node88 + + +dspm_sub.h + + + + + +Node1->Node88 + + + + + + + + +Node90 + + +dsps_add.h + + + + + +Node1->Node90 + + + + + + + + +Node96 + + +dsps_addc.h + + + + + +Node1->Node96 + + + + + + + + +Node98 + + +dsps_biquad.h + + + + + +Node1->Node98 + + + + + + + + +Node101 + + +dsps_biquad_gen.h + + + + + +Node1->Node101 + + + + + + + + +Node103 + + +dsps_ccorr.h + + + + + +Node1->Node103 + + + + + + + + +Node104 + + +dsps_conv.h + + + + + +Node1->Node104 + + + + + + + + +Node107 + + +dsps_corr.h + + + + + +Node1->Node107 + + + + + + + + +Node109 + + +dsps_cplx_gen.h + + + + + +Node1->Node109 + + + + + + + + +Node111 + + +dsps_d_gen.h + + + + + +Node1->Node111 + + + + + + + + +Node113 + + +dsps_dct.h + + + + + +Node1->Node113 + + + + + + + + +Node114 + + +dsps_dotprod.h + + + + + +Node1->Node114 + + + + + + + + +Node118 + + +dsps_fft2r.h + + + + + +Node1->Node118 + + + + + + + + +Node119 + + +dsps_fft4r.h + + + + + +Node1->Node119 + + + + + + + + +Node120 + + +dsps_h_gen.h + + + + + +Node1->Node120 + + + + + + + + +Node122 + + +dsps_mul.h + + + + + +Node1->Node122 + + + + + + + + +Node126 + + +dsps_mulc.h + + + + + +Node1->Node126 + + + + + + + + +Node129 + + +dsps_sfdr.h + + + + + +Node1->Node129 + + + + + + + + +Node130 + + +dsps_snr.h + + + + + +Node1->Node130 + + + + + + + + +Node131 + + +dsps_sqrt.h + + + + + +Node1->Node131 + + + + + + + + +Node133 + + +dsps_sub.h + + + + + +Node1->Node133 + + + + + + + + +Node136 + + +dsps_tone_gen.h + + + + + +Node1->Node136 + + + + + + + + +Node138 + + +dsps_view.h + + + + + +Node1->Node138 + + + + + + + + +Node3 + + +aes3_tie_log.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_cplx_gen_init.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_dct_f32.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_dctiv_f32.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_dstiv_f32.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2->Node12 + + + + + + + + +Node2->Node13 + + + + + + + + +Node20 + + +dsps_firmr_f32_ansi.c + + + + + +Node2->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_f32.c + + + + + +Node2->Node21 + + + + + + + + +Node22 + + +dsps_firmr_init_s16.c + + + + + +Node2->Node22 + + + + + + + + +Node23 + + +dsps_firmr_s16_ansi.c + + + + + +Node2->Node23 + + + + + + + + +Node27 + + +esp_dsp.h + + + + + +Node2->Node27 + + + + + + + + +Node55 + + +test_fir.c + + + + + +Node2->Node55 + + + + + + + + +Node2->Node56 + + + + + + + + +Node57 + + +dsps_pwroftwo.cpp + + + + + +Node2->Node57 + + + + + + + + +Node58 + + +dsps_sfdr_f32.cpp + + + + + +Node2->Node58 + + + + + + + + +Node59 + + +dsps_snr_f32.cpp + + + + + +Node2->Node59 + + + + + + + + +Node60 + + +test_fft2r.c + + + + + +Node2->Node60 + + + + + + + + +Node61 + + +test_iir_biquad.c + + + + + +Node2->Node61 + + + + + + + + +Node62 + + +test_mmult.c + + + + + +Node2->Node62 + + + + + + + + +Node13->Node20 + + + + + + + + +Node13->Node21 + + + + + + + + +Node13->Node22 + + + + + + + + +Node13->Node23 + + + + + + + + +Node13->Node24 + + + + + + + + +Node13->Node27 + + + + + + + + +Node13->Node55 + + + + + + + + +Node24->Node27 + + + + + + + + +Node63->Node27 + + + + + + + + +Node64 + + +dspi_conv_f32_ansi.c + + + + + +Node63->Node64 + + + + + + + + +Node65->Node27 + + + + + + + + +Node66 + + +dspi_dotprod_f32_ansi.c + + + + + +Node65->Node66 + + + + + + + + +Node67 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node65->Node67 + + + + + + + + +Node68 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node65->Node68 + + + + + + + + +Node69 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node65->Node69 + + + + + + + + +Node70 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node65->Node70 + + + + + + + + +Node71 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node65->Node71 + + + + + + + + +Node72 + + +dspi_dotprod_s16_ansi.c + + + + + +Node65->Node72 + + + + + + + + +Node73 + + +dspi_dotprod_s8_ansi.c + + + + + +Node65->Node73 + + + + + + + + +Node74 + + +dspi_dotprod_u16_ansi.c + + + + + +Node65->Node74 + + + + + + + + +Node75 + + +dspi_dotprod_u8_ansi.c + + + + + +Node65->Node75 + + + + + + + + +Node77 + + +dspm_add_f32_ansi.c + + + + + +Node76->Node77 + + + + + + + + +Node78 + + +dspm_matrix.h + + + + + +Node76->Node78 + + + + + + + + +Node78->Node27 + + + + + + + + +Node80->Node78 + + + + + + + + +Node81 + + +dspm_addc_f32_ansi.c + + + + + +Node80->Node81 + + + + + + + + +Node82->Node78 + + + + + + + + +Node83 + + +dspm_mulc_f32_ansi.c + + + + + +Node82->Node83 + + + + + + + + +Node84->Node60 + + + + + + + + +Node84->Node62 + + + + + + + + +Node84->Node78 + + + + + + + + +Node85 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node84->Node85 + + + + + + + + +Node86 + + +dspm_mult_f32_ansi.c + + + + + +Node84->Node86 + + + + + + + + +Node87 + + +dspm_mult_s16_ansi.c + + + + + +Node84->Node87 + + + + + + + + +Node88->Node78 + + + + + + + + +Node89 + + +dspm_sub_f32_ansi.c + + + + + +Node88->Node89 + + + + + + + + +Node98->Node27 + + + + + + + + +Node98->Node61 + + + + + + + + +Node101->Node27 + + + + + + + + +Node104->Node27 + + + + + + + + +Node107->Node27 + + + + + + + + +Node109->Node4 + + + + + + + + +Node111->Node27 + + + + + + + + +Node113->Node5 + + + + + + + + +Node113->Node6 + + + + + + + + +Node113->Node7 + + + + + + + + +Node113->Node27 + + + + + + + + +Node114->Node27 + + + + + + + + +Node114->Node86 + + + + + + + + +Node114->Node87 + + + + + + + + +Node118->Node5 + + + + + + + + +Node118->Node6 + + + + + + + + +Node118->Node7 + + + + + + + + +Node118->Node8 + + + + + + + + +Node118->Node9 + + + + + + + + +Node118->Node10 + + + + + + + + +Node118->Node11 + + + + + + + + +Node118->Node12 + + + + + + + + +Node118->Node27 + + + + + + + + +Node118->Node58 + + + + + + + + +Node118->Node59 + + + + + + + + +Node118->Node60 + + + + + + + + +Node119->Node11 + + + + + + + + +Node119->Node12 + + + + + + + + +Node119->Node27 + + + + + + + + +Node120->Node27 + + + + + + + + +Node129->Node27 + + + + + + + + +Node129->Node58 + + + + + + + + +Node130->Node27 + + + + + + + + +Node130->Node59 + + + + + + + + +Node136->Node27 + + + + + + + + +Node138->Node27 + + + + + + + + diff --git a/docs/html/dsp__err_8h__incl.md5 b/docs/html/dsp__err_8h__incl.md5 new file mode 100644 index 0000000..7b0e0df --- /dev/null +++ b/docs/html/dsp__err_8h__incl.md5 @@ -0,0 +1 @@ +da46d5891252c84ca7518ed64e41fc29 \ No newline at end of file diff --git a/docs/html/dsp__err_8h__incl.svg b/docs/html/dsp__err_8h__incl.svg new file mode 100644 index 0000000..63a8bf5 --- /dev/null +++ b/docs/html/dsp__err_8h__incl.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +dsp_err.h + + +Node1 + + +dsp_err.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dsp_err_codes.h + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsp__err_8h__incl_org.svg b/docs/html/dsp__err_8h__incl_org.svg new file mode 100644 index 0000000..9ea5c32 --- /dev/null +++ b/docs/html/dsp__err_8h__incl_org.svg @@ -0,0 +1,93 @@ + + + + + + +dsp_err.h + + +Node1 + + +dsp_err.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dsp_err_codes.h + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/dsp__err_8h_source.html b/docs/html/dsp__err_8h_source.html new file mode 100644 index 0000000..aecd47c --- /dev/null +++ b/docs/html/dsp__err_8h_source.html @@ -0,0 +1,131 @@ + + + + + + + +ESP-IDF Firmware: dsp_err.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_err.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _DSP_ERR_H_
+
17#define _DSP_ERR_H_
+
18
+
19#include "stdint.h"
+
20#include "esp_err.h"
+
21#include "dsp_err_codes.h"
+
22
+
23#endif // _DSP_ERR_H_
+ + +
+
+
+ + + + diff --git a/docs/html/dsp__err__codes_8h.html b/docs/html/dsp__err__codes_8h.html new file mode 100644 index 0000000..34eeaee --- /dev/null +++ b/docs/html/dsp__err__codes_8h.html @@ -0,0 +1,273 @@ + + + + + + + +ESP-IDF Firmware: dsp_err_codes.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_err_codes.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + +

+Macros

#define DSP_OK   0
#define ESP_ERR_DSP_BASE   0x70000
#define ESP_ERR_DSP_INVALID_LENGTH   (ESP_ERR_DSP_BASE + 1)
#define ESP_ERR_DSP_INVALID_PARAM   (ESP_ERR_DSP_BASE + 2)
#define ESP_ERR_DSP_PARAM_OUTOFRANGE   (ESP_ERR_DSP_BASE + 3)
#define ESP_ERR_DSP_UNINITIALIZED   (ESP_ERR_DSP_BASE + 4)
#define ESP_ERR_DSP_REINITIALIZED   (ESP_ERR_DSP_BASE + 5)
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED   (ESP_ERR_DSP_BASE + 6)
+

Macro Definition Documentation

+ +

◆ DSP_OK

+ +
+
+ + + + +
#define DSP_OK   0
+
+ +

Definition at line 18 of file dsp_err_codes.h.

+ +
+
+ +

◆ ESP_ERR_DSP_ARRAY_NOT_ALIGNED

+ +
+
+ + + + +
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED   (ESP_ERR_DSP_BASE + 6)
+
+ +

Definition at line 25 of file dsp_err_codes.h.

+ +

Referenced by dsps_fir_init_f32(), dsps_fird_init_f32(), dsps_fird_init_s16(), and dsps_firmr_init_f32().

+ +
+
+ +

◆ ESP_ERR_DSP_BASE

+ +
+
+ + + + +
#define ESP_ERR_DSP_BASE   0x70000
+
+ +

Definition at line 19 of file dsp_err_codes.h.

+ +
+
+ +

◆ ESP_ERR_DSP_INVALID_LENGTH

+ + + +

◆ ESP_ERR_DSP_INVALID_PARAM

+ + + +

◆ ESP_ERR_DSP_PARAM_OUTOFRANGE

+ + + +

◆ ESP_ERR_DSP_REINITIALIZED

+ +
+
+ + + + +
#define ESP_ERR_DSP_REINITIALIZED   (ESP_ERR_DSP_BASE + 5)
+
+
+ +

◆ ESP_ERR_DSP_UNINITIALIZED

+ +
+
+ + + + +
#define ESP_ERR_DSP_UNINITIALIZED   (ESP_ERR_DSP_BASE + 4)
+
+
+
+
+ +
+ + + + diff --git a/docs/html/dsp__err__codes_8h.js b/docs/html/dsp__err__codes_8h.js new file mode 100644 index 0000000..b17788e --- /dev/null +++ b/docs/html/dsp__err__codes_8h.js @@ -0,0 +1,11 @@ +var dsp__err__codes_8h = +[ + [ "DSP_OK", "dsp__err__codes_8h.html#acb32dd0ae0512c1993128c25cb14ce4b", null ], + [ "ESP_ERR_DSP_ARRAY_NOT_ALIGNED", "dsp__err__codes_8h.html#ab267265daa6040bb40e420694d87241d", null ], + [ "ESP_ERR_DSP_BASE", "dsp__err__codes_8h.html#a71b8905b02f3af1c17a5ceb299f2d646", null ], + [ "ESP_ERR_DSP_INVALID_LENGTH", "dsp__err__codes_8h.html#aaedb76aaeca4fc347fda8442d33fc082", null ], + [ "ESP_ERR_DSP_INVALID_PARAM", "dsp__err__codes_8h.html#a65b6bdf74a629883db199aa83eacacdb", null ], + [ "ESP_ERR_DSP_PARAM_OUTOFRANGE", "dsp__err__codes_8h.html#a81b45777c0049263af392eedf24bdd55", null ], + [ "ESP_ERR_DSP_REINITIALIZED", "dsp__err__codes_8h.html#acb9510b59afd4d20ac223cc577944257", null ], + [ "ESP_ERR_DSP_UNINITIALIZED", "dsp__err__codes_8h.html#a9a83ca750de57b1d214d95663ba6220c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsp__err__codes_8h__dep__incl.md5 b/docs/html/dsp__err__codes_8h__dep__incl.md5 new file mode 100644 index 0000000..09f0187 --- /dev/null +++ b/docs/html/dsp__err__codes_8h__dep__incl.md5 @@ -0,0 +1 @@ +aff55a138290508b89dbf97c4db81950 \ No newline at end of file diff --git a/docs/html/dsp__err__codes_8h__dep__incl.svg b/docs/html/dsp__err__codes_8h__dep__incl.svg new file mode 100644 index 0000000..e66fdeb --- /dev/null +++ b/docs/html/dsp__err__codes_8h__dep__incl.svg @@ -0,0 +1,1936 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_err_codes.h + + +Node1 + + +dsp_err_codes.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_common.h + + + + + +Node2->Node3 + + + + + + + + +Node14 + + +dsps_fir.h + + + + + +Node2->Node14 + + + + + + + + +Node25 + + +dsps_resampler.h + + + + + +Node2->Node25 + + + + + + + + +Node57 + + +dsps_mem.h + + + + + +Node2->Node57 + + + + + + + + +Node64 + + +dspi_conv.h + + + + + +Node2->Node64 + + + + + + + + +Node66 + + +dspi_dotprod.h + + + + + +Node2->Node66 + + + + + + + + +Node77 + + +dspm_add.h + + + + + +Node2->Node77 + + + + + + + + +Node81 + + +dspm_addc.h + + + + + +Node2->Node81 + + + + + + + + +Node83 + + +dspm_mulc.h + + + + + +Node2->Node83 + + + + + + + + +Node85 + + +dspm_mult.h + + + + + +Node2->Node85 + + + + + + + + +Node89 + + +dspm_sub.h + + + + + +Node2->Node89 + + + + + + + + +Node91 + + +dsps_add.h + + + + + +Node2->Node91 + + + + + + + + +Node97 + + +dsps_addc.h + + + + + +Node2->Node97 + + + + + + + + +Node99 + + +dsps_biquad.h + + + + + +Node2->Node99 + + + + + + + + +Node102 + + +dsps_biquad_gen.h + + + + + +Node2->Node102 + + + + + + + + +Node104 + + +dsps_ccorr.h + + + + + +Node2->Node104 + + + + + + + + +Node105 + + +dsps_conv.h + + + + + +Node2->Node105 + + + + + + + + +Node108 + + +dsps_corr.h + + + + + +Node2->Node108 + + + + + + + + +Node110 + + +dsps_cplx_gen.h + + + + + +Node2->Node110 + + + + + + + + +Node112 + + +dsps_d_gen.h + + + + + +Node2->Node112 + + + + + + + + +Node114 + + +dsps_dct.h + + + + + +Node2->Node114 + + + + + + + + +Node115 + + +dsps_dotprod.h + + + + + +Node2->Node115 + + + + + + + + +Node119 + + +dsps_fft2r.h + + + + + +Node2->Node119 + + + + + + + + +Node120 + + +dsps_fft4r.h + + + + + +Node2->Node120 + + + + + + + + +Node121 + + +dsps_h_gen.h + + + + + +Node2->Node121 + + + + + + + + +Node123 + + +dsps_mul.h + + + + + +Node2->Node123 + + + + + + + + +Node127 + + +dsps_mulc.h + + + + + +Node2->Node127 + + + + + + + + +Node130 + + +dsps_sfdr.h + + + + + +Node2->Node130 + + + + + + + + +Node131 + + +dsps_snr.h + + + + + +Node2->Node131 + + + + + + + + +Node132 + + +dsps_sqrt.h + + + + + +Node2->Node132 + + + + + + + + +Node134 + + +dsps_sub.h + + + + + +Node2->Node134 + + + + + + + + +Node137 + + +dsps_tone_gen.h + + + + + +Node2->Node137 + + + + + + + + +Node139 + + +dsps_view.h + + + + + +Node2->Node139 + + + + + + + + +Node4 + + +aes3_tie_log.c + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dsps_cplx_gen_init.c + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dsps_dct_f32.c + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +dsps_dctiv_f32.c + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +dsps_dstiv_f32.c + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node3->Node13 + + + + + + + + +Node3->Node14 + + + + + + + + +Node21 + + +dsps_firmr_f32_ansi.c + + + + + +Node3->Node21 + + + + + + + + +Node22 + + +dsps_firmr_init_f32.c + + + + + +Node3->Node22 + + + + + + + + +Node23 + + +dsps_firmr_init_s16.c + + + + + +Node3->Node23 + + + + + + + + +Node24 + + +dsps_firmr_s16_ansi.c + + + + + +Node3->Node24 + + + + + + + + +Node28 + + +esp_dsp.h + + + + + +Node3->Node28 + + + + + + + + +Node56 + + +test_fir.c + + + + + +Node3->Node56 + + + + + + + + +Node3->Node57 + + + + + + + + +Node58 + + +dsps_pwroftwo.cpp + + + + + +Node3->Node58 + + + + + + + + +Node59 + + +dsps_sfdr_f32.cpp + + + + + +Node3->Node59 + + + + + + + + +Node60 + + +dsps_snr_f32.cpp + + + + + +Node3->Node60 + + + + + + + + +Node61 + + +test_fft2r.c + + + + + +Node3->Node61 + + + + + + + + +Node62 + + +test_iir_biquad.c + + + + + +Node3->Node62 + + + + + + + + +Node63 + + +test_mmult.c + + + + + +Node3->Node63 + + + + + + + + +Node14->Node21 + + + + + + + + +Node14->Node22 + + + + + + + + +Node14->Node23 + + + + + + + + +Node14->Node24 + + + + + + + + +Node14->Node25 + + + + + + + + +Node14->Node28 + + + + + + + + +Node14->Node56 + + + + + + + + +Node25->Node28 + + + + + + + + +Node64->Node28 + + + + + + + + +Node65 + + +dspi_conv_f32_ansi.c + + + + + +Node64->Node65 + + + + + + + + +Node66->Node28 + + + + + + + + +Node67 + + +dspi_dotprod_f32_ansi.c + + + + + +Node66->Node67 + + + + + + + + +Node68 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node66->Node68 + + + + + + + + +Node69 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node66->Node69 + + + + + + + + +Node70 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node66->Node70 + + + + + + + + +Node71 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node66->Node71 + + + + + + + + +Node72 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node66->Node72 + + + + + + + + +Node73 + + +dspi_dotprod_s16_ansi.c + + + + + +Node66->Node73 + + + + + + + + +Node74 + + +dspi_dotprod_s8_ansi.c + + + + + +Node66->Node74 + + + + + + + + +Node75 + + +dspi_dotprod_u16_ansi.c + + + + + +Node66->Node75 + + + + + + + + +Node76 + + +dspi_dotprod_u8_ansi.c + + + + + +Node66->Node76 + + + + + + + + +Node78 + + +dspm_add_f32_ansi.c + + + + + +Node77->Node78 + + + + + + + + +Node79 + + +dspm_matrix.h + + + + + +Node77->Node79 + + + + + + + + +Node79->Node28 + + + + + + + + +Node81->Node79 + + + + + + + + +Node82 + + +dspm_addc_f32_ansi.c + + + + + +Node81->Node82 + + + + + + + + +Node83->Node79 + + + + + + + + +Node84 + + +dspm_mulc_f32_ansi.c + + + + + +Node83->Node84 + + + + + + + + +Node85->Node61 + + + + + + + + +Node85->Node63 + + + + + + + + +Node85->Node79 + + + + + + + + +Node86 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node85->Node86 + + + + + + + + +Node87 + + +dspm_mult_f32_ansi.c + + + + + +Node85->Node87 + + + + + + + + +Node88 + + +dspm_mult_s16_ansi.c + + + + + +Node85->Node88 + + + + + + + + +Node89->Node79 + + + + + + + + +Node99->Node28 + + + + + + + + +Node99->Node62 + + + + + + + + +Node102->Node28 + + + + + + + + +Node105->Node28 + + + + + + + + +Node108->Node28 + + + + + + + + +Node110->Node5 + + + + + + + + +Node112->Node28 + + + + + + + + +Node114->Node6 + + + + + + + + +Node114->Node7 + + + + + + + + +Node114->Node8 + + + + + + + + +Node114->Node28 + + + + + + + + +Node115->Node28 + + + + + + + + +Node115->Node87 + + + + + + + + +Node115->Node88 + + + + + + + + +Node119->Node6 + + + + + + + + +Node119->Node7 + + + + + + + + +Node119->Node8 + + + + + + + + +Node119->Node9 + + + + + + + + +Node119->Node10 + + + + + + + + +Node119->Node11 + + + + + + + + +Node119->Node12 + + + + + + + + +Node119->Node13 + + + + + + + + +Node119->Node28 + + + + + + + + +Node119->Node59 + + + + + + + + +Node119->Node60 + + + + + + + + +Node119->Node61 + + + + + + + + +Node120->Node12 + + + + + + + + +Node120->Node13 + + + + + + + + +Node120->Node28 + + + + + + + + +Node121->Node28 + + + + + + + + +Node130->Node28 + + + + + + + + +Node130->Node59 + + + + + + + + +Node131->Node28 + + + + + + + + +Node131->Node60 + + + + + + + + +Node137->Node28 + + + + + + + + +Node139->Node28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsp__err__codes_8h__dep__incl_org.svg b/docs/html/dsp__err__codes_8h__dep__incl_org.svg new file mode 100644 index 0000000..5ba7dd7 --- /dev/null +++ b/docs/html/dsp__err__codes_8h__dep__incl_org.svg @@ -0,0 +1,1853 @@ + + + + + + +dsp_err_codes.h + + +Node1 + + +dsp_err_codes.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_common.h + + + + + +Node2->Node3 + + + + + + + + +Node14 + + +dsps_fir.h + + + + + +Node2->Node14 + + + + + + + + +Node25 + + +dsps_resampler.h + + + + + +Node2->Node25 + + + + + + + + +Node57 + + +dsps_mem.h + + + + + +Node2->Node57 + + + + + + + + +Node64 + + +dspi_conv.h + + + + + +Node2->Node64 + + + + + + + + +Node66 + + +dspi_dotprod.h + + + + + +Node2->Node66 + + + + + + + + +Node77 + + +dspm_add.h + + + + + +Node2->Node77 + + + + + + + + +Node81 + + +dspm_addc.h + + + + + +Node2->Node81 + + + + + + + + +Node83 + + +dspm_mulc.h + + + + + +Node2->Node83 + + + + + + + + +Node85 + + +dspm_mult.h + + + + + +Node2->Node85 + + + + + + + + +Node89 + + +dspm_sub.h + + + + + +Node2->Node89 + + + + + + + + +Node91 + + +dsps_add.h + + + + + +Node2->Node91 + + + + + + + + +Node97 + + +dsps_addc.h + + + + + +Node2->Node97 + + + + + + + + +Node99 + + +dsps_biquad.h + + + + + +Node2->Node99 + + + + + + + + +Node102 + + +dsps_biquad_gen.h + + + + + +Node2->Node102 + + + + + + + + +Node104 + + +dsps_ccorr.h + + + + + +Node2->Node104 + + + + + + + + +Node105 + + +dsps_conv.h + + + + + +Node2->Node105 + + + + + + + + +Node108 + + +dsps_corr.h + + + + + +Node2->Node108 + + + + + + + + +Node110 + + +dsps_cplx_gen.h + + + + + +Node2->Node110 + + + + + + + + +Node112 + + +dsps_d_gen.h + + + + + +Node2->Node112 + + + + + + + + +Node114 + + +dsps_dct.h + + + + + +Node2->Node114 + + + + + + + + +Node115 + + +dsps_dotprod.h + + + + + +Node2->Node115 + + + + + + + + +Node119 + + +dsps_fft2r.h + + + + + +Node2->Node119 + + + + + + + + +Node120 + + +dsps_fft4r.h + + + + + +Node2->Node120 + + + + + + + + +Node121 + + +dsps_h_gen.h + + + + + +Node2->Node121 + + + + + + + + +Node123 + + +dsps_mul.h + + + + + +Node2->Node123 + + + + + + + + +Node127 + + +dsps_mulc.h + + + + + +Node2->Node127 + + + + + + + + +Node130 + + +dsps_sfdr.h + + + + + +Node2->Node130 + + + + + + + + +Node131 + + +dsps_snr.h + + + + + +Node2->Node131 + + + + + + + + +Node132 + + +dsps_sqrt.h + + + + + +Node2->Node132 + + + + + + + + +Node134 + + +dsps_sub.h + + + + + +Node2->Node134 + + + + + + + + +Node137 + + +dsps_tone_gen.h + + + + + +Node2->Node137 + + + + + + + + +Node139 + + +dsps_view.h + + + + + +Node2->Node139 + + + + + + + + +Node4 + + +aes3_tie_log.c + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dsps_cplx_gen_init.c + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dsps_dct_f32.c + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +dsps_dctiv_f32.c + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +dsps_dstiv_f32.c + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node3->Node13 + + + + + + + + +Node3->Node14 + + + + + + + + +Node21 + + +dsps_firmr_f32_ansi.c + + + + + +Node3->Node21 + + + + + + + + +Node22 + + +dsps_firmr_init_f32.c + + + + + +Node3->Node22 + + + + + + + + +Node23 + + +dsps_firmr_init_s16.c + + + + + +Node3->Node23 + + + + + + + + +Node24 + + +dsps_firmr_s16_ansi.c + + + + + +Node3->Node24 + + + + + + + + +Node28 + + +esp_dsp.h + + + + + +Node3->Node28 + + + + + + + + +Node56 + + +test_fir.c + + + + + +Node3->Node56 + + + + + + + + +Node3->Node57 + + + + + + + + +Node58 + + +dsps_pwroftwo.cpp + + + + + +Node3->Node58 + + + + + + + + +Node59 + + +dsps_sfdr_f32.cpp + + + + + +Node3->Node59 + + + + + + + + +Node60 + + +dsps_snr_f32.cpp + + + + + +Node3->Node60 + + + + + + + + +Node61 + + +test_fft2r.c + + + + + +Node3->Node61 + + + + + + + + +Node62 + + +test_iir_biquad.c + + + + + +Node3->Node62 + + + + + + + + +Node63 + + +test_mmult.c + + + + + +Node3->Node63 + + + + + + + + +Node14->Node21 + + + + + + + + +Node14->Node22 + + + + + + + + +Node14->Node23 + + + + + + + + +Node14->Node24 + + + + + + + + +Node14->Node25 + + + + + + + + +Node14->Node28 + + + + + + + + +Node14->Node56 + + + + + + + + +Node25->Node28 + + + + + + + + +Node64->Node28 + + + + + + + + +Node65 + + +dspi_conv_f32_ansi.c + + + + + +Node64->Node65 + + + + + + + + +Node66->Node28 + + + + + + + + +Node67 + + +dspi_dotprod_f32_ansi.c + + + + + +Node66->Node67 + + + + + + + + +Node68 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node66->Node68 + + + + + + + + +Node69 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node66->Node69 + + + + + + + + +Node70 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node66->Node70 + + + + + + + + +Node71 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node66->Node71 + + + + + + + + +Node72 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node66->Node72 + + + + + + + + +Node73 + + +dspi_dotprod_s16_ansi.c + + + + + +Node66->Node73 + + + + + + + + +Node74 + + +dspi_dotprod_s8_ansi.c + + + + + +Node66->Node74 + + + + + + + + +Node75 + + +dspi_dotprod_u16_ansi.c + + + + + +Node66->Node75 + + + + + + + + +Node76 + + +dspi_dotprod_u8_ansi.c + + + + + +Node66->Node76 + + + + + + + + +Node78 + + +dspm_add_f32_ansi.c + + + + + +Node77->Node78 + + + + + + + + +Node79 + + +dspm_matrix.h + + + + + +Node77->Node79 + + + + + + + + +Node79->Node28 + + + + + + + + +Node81->Node79 + + + + + + + + +Node82 + + +dspm_addc_f32_ansi.c + + + + + +Node81->Node82 + + + + + + + + +Node83->Node79 + + + + + + + + +Node84 + + +dspm_mulc_f32_ansi.c + + + + + +Node83->Node84 + + + + + + + + +Node85->Node61 + + + + + + + + +Node85->Node63 + + + + + + + + +Node85->Node79 + + + + + + + + +Node86 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node85->Node86 + + + + + + + + +Node87 + + +dspm_mult_f32_ansi.c + + + + + +Node85->Node87 + + + + + + + + +Node88 + + +dspm_mult_s16_ansi.c + + + + + +Node85->Node88 + + + + + + + + +Node89->Node79 + + + + + + + + +Node99->Node28 + + + + + + + + +Node99->Node62 + + + + + + + + +Node102->Node28 + + + + + + + + +Node105->Node28 + + + + + + + + +Node108->Node28 + + + + + + + + +Node110->Node5 + + + + + + + + +Node112->Node28 + + + + + + + + +Node114->Node6 + + + + + + + + +Node114->Node7 + + + + + + + + +Node114->Node8 + + + + + + + + +Node114->Node28 + + + + + + + + +Node115->Node28 + + + + + + + + +Node115->Node87 + + + + + + + + +Node115->Node88 + + + + + + + + +Node119->Node6 + + + + + + + + +Node119->Node7 + + + + + + + + +Node119->Node8 + + + + + + + + +Node119->Node9 + + + + + + + + +Node119->Node10 + + + + + + + + +Node119->Node11 + + + + + + + + +Node119->Node12 + + + + + + + + +Node119->Node13 + + + + + + + + +Node119->Node28 + + + + + + + + +Node119->Node59 + + + + + + + + +Node119->Node60 + + + + + + + + +Node119->Node61 + + + + + + + + +Node120->Node12 + + + + + + + + +Node120->Node13 + + + + + + + + +Node120->Node28 + + + + + + + + +Node121->Node28 + + + + + + + + +Node130->Node28 + + + + + + + + +Node130->Node59 + + + + + + + + +Node131->Node28 + + + + + + + + +Node131->Node60 + + + + + + + + +Node137->Node28 + + + + + + + + +Node139->Node28 + + + + + + + + diff --git a/docs/html/dsp__err__codes_8h_source.html b/docs/html/dsp__err__codes_8h_source.html new file mode 100644 index 0000000..4c14058 --- /dev/null +++ b/docs/html/dsp__err__codes_8h_source.html @@ -0,0 +1,134 @@ + + + + + + + +ESP-IDF Firmware: dsp_err_codes.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_err_codes.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2022 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsp_error_codes_H_
+
16#define _dsp_error_codes_H_
+
17
+
18#define DSP_OK 0 // For internal use only. Please use ESP_OK instead
+
19#define ESP_ERR_DSP_BASE 0x70000
+
20#define ESP_ERR_DSP_INVALID_LENGTH (ESP_ERR_DSP_BASE + 1)
+
21#define ESP_ERR_DSP_INVALID_PARAM (ESP_ERR_DSP_BASE + 2)
+
22#define ESP_ERR_DSP_PARAM_OUTOFRANGE (ESP_ERR_DSP_BASE + 3)
+
23#define ESP_ERR_DSP_UNINITIALIZED (ESP_ERR_DSP_BASE + 4)
+
24#define ESP_ERR_DSP_REINITIALIZED (ESP_ERR_DSP_BASE + 5)
+
25#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED (ESP_ERR_DSP_BASE + 6)
+
26
+
27
+
28#endif // _dsp_error_codes_H_
+
+
+
+ + + + diff --git a/docs/html/dsp__platform_8h.html b/docs/html/dsp__platform_8h.html new file mode 100644 index 0000000..29d07e1 --- /dev/null +++ b/docs/html/dsp__platform_8h.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: dsp_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_platform.h File Reference
+
+
+
#include "esp_idf_version.h"
+#include "freertos/FreeRTOS.h"
+#include "freertos/portable.h"
+#include "freertos/task.h"
+#include "freertos/semphr.h"
+
+Include dependency graph for dsp_platform.h:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsp__platform_8h__incl.md5 b/docs/html/dsp__platform_8h__incl.md5 new file mode 100644 index 0000000..66807de --- /dev/null +++ b/docs/html/dsp__platform_8h__incl.md5 @@ -0,0 +1 @@ +6eed8e8e437152c70c6a27be0af7f736 \ No newline at end of file diff --git a/docs/html/dsp__platform_8h__incl.svg b/docs/html/dsp__platform_8h__incl.svg new file mode 100644 index 0000000..9cb576d --- /dev/null +++ b/docs/html/dsp__platform_8h__incl.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_platform.h + + +Node1 + + +dsp_platform.h + + + + + +Node2 + + +esp_idf_version.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +freertos/FreeRTOS.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +freertos/portable.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/task.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +freertos/semphr.h + + + + + +Node1->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsp__platform_8h__incl_org.svg b/docs/html/dsp__platform_8h__incl_org.svg new file mode 100644 index 0000000..ba9052c --- /dev/null +++ b/docs/html/dsp__platform_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsp_platform.h + + +Node1 + + +dsp_platform.h + + + + + +Node2 + + +esp_idf_version.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +freertos/FreeRTOS.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +freertos/portable.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/task.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +freertos/semphr.h + + + + + +Node1->Node6 + + + + + + + + diff --git a/docs/html/dsp__platform_8h_source.html b/docs/html/dsp__platform_8h_source.html new file mode 100644 index 0000000..7e099c9 --- /dev/null +++ b/docs/html/dsp__platform_8h_source.html @@ -0,0 +1,139 @@ + + + + + + + +ESP-IDF Firmware: dsp_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_platform.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef dsp_platform_h_
+
17#define dsp_platform_h_
+
18#include "esp_idf_version.h"
+
19
+
20#if defined(__XTENSA__) || defined(__riscv)
+
21#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)
+
22#include "esp_cpu.h"
+
23#else
+
24#include "soc/cpu.h"
+
25#endif
+
26#endif
+
27
+
28#include "freertos/FreeRTOS.h"
+
29#include "freertos/portable.h"
+
30#include "freertos/task.h"
+
31#include "freertos/semphr.h"
+
32
+
33#endif // dsp_platform_h_
+
+
+
+ + + + diff --git a/docs/html/dsp__tests_8h.html b/docs/html/dsp__tests_8h.html new file mode 100644 index 0000000..8a6be90 --- /dev/null +++ b/docs/html/dsp__tests_8h.html @@ -0,0 +1,206 @@ + + + + + + + +ESP-IDF Firmware: dsp_tests.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_tests.h File Reference
+
+
+
#include <stdlib.h>
+#include "esp_idf_version.h"
+#include "esp_dsp.h"
+
+Include dependency graph for dsp_tests.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Macros

#define TEST_ASSERT_EXEC_IN_RANGE(min_exec, max_exec, actual)
#define memalign(align_, size_)
+

Macro Definition Documentation

+ +

◆ memalign

+ +
+
+ + + + + + + + + + + +
#define memalign( align_,
size_ )
+
+
+ +

◆ TEST_ASSERT_EXEC_IN_RANGE

+ +
+
+ + + + + + + + + + + + + + + + +
#define TEST_ASSERT_EXEC_IN_RANGE( min_exec,
max_exec,
actual )
+
+Value:
if (actual >= max_exec) { \
+
ESP_LOGE("", "Time error. Expected max: %i, reached: %i", (int)max_exec, (int)actual);\
+
TEST_ASSERT_MESSAGE (false, "Exec time takes more than expected! ");\
+
}\
+
if (actual < min_exec) {\
+
ESP_LOGE("", "Time error. Expected min: %i, reached: %i", (int)min_exec, (int)actual);\
+
TEST_ASSERT_MESSAGE (false, "Exec time takes less then expected!");\
+
}
+
+

Definition at line 22 of file dsp_tests.h.

+
22#define TEST_ASSERT_EXEC_IN_RANGE(min_exec, max_exec, actual) \
+
23 if (actual >= max_exec) { \
+
24 ESP_LOGE("", "Time error. Expected max: %i, reached: %i", (int)max_exec, (int)actual);\
+
25 TEST_ASSERT_MESSAGE (false, "Exec time takes more than expected! ");\
+
26 }\
+
27 if (actual < min_exec) {\
+
28 ESP_LOGE("", "Time error. Expected min: %i, reached: %i", (int)min_exec, (int)actual);\
+
29 TEST_ASSERT_MESSAGE (false, "Exec time takes less then expected!");\
+
30 }
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/dsp__tests_8h.js b/docs/html/dsp__tests_8h.js new file mode 100644 index 0000000..66a1ca2 --- /dev/null +++ b/docs/html/dsp__tests_8h.js @@ -0,0 +1,5 @@ +var dsp__tests_8h = +[ + [ "memalign", "dsp__tests_8h.html#ab626699d1dd59026f6bf987d2c694ea0", null ], + [ "TEST_ASSERT_EXEC_IN_RANGE", "dsp__tests_8h.html#a91c3a4ca5673acca6fb36895d18c066a", null ] +]; \ No newline at end of file diff --git a/docs/html/dsp__tests_8h__dep__incl.md5 b/docs/html/dsp__tests_8h__dep__incl.md5 new file mode 100644 index 0000000..883c11e --- /dev/null +++ b/docs/html/dsp__tests_8h__dep__incl.md5 @@ -0,0 +1 @@ +471cb149210a1c3ab4367607b0edd7e5 \ No newline at end of file diff --git a/docs/html/dsp__tests_8h__dep__incl.svg b/docs/html/dsp__tests_8h__dep__incl.svg new file mode 100644 index 0000000..72bc5f8 --- /dev/null +++ b/docs/html/dsp__tests_8h__dep__incl.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_tests.h + + +Node1 + + +dsp_tests.h + + + + + +Node2 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fird_init_s16.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_firmr_f32_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_firmr_init_f32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_firmr_init_s16.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_firmr_s16_ansi.c + + + + + +Node1->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsp__tests_8h__dep__incl_org.svg b/docs/html/dsp__tests_8h__dep__incl_org.svg new file mode 100644 index 0000000..0b7c071 --- /dev/null +++ b/docs/html/dsp__tests_8h__dep__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +dsp_tests.h + + +Node1 + + +dsp_tests.h + + + + + +Node2 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fird_init_s16.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_firmr_f32_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_firmr_init_f32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_firmr_init_s16.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_firmr_s16_ansi.c + + + + + +Node1->Node7 + + + + + + + + diff --git a/docs/html/dsp__tests_8h__incl.md5 b/docs/html/dsp__tests_8h__incl.md5 new file mode 100644 index 0000000..91378a7 --- /dev/null +++ b/docs/html/dsp__tests_8h__incl.md5 @@ -0,0 +1 @@ +24f8712abbb24023ced0b546edd3289d \ No newline at end of file diff --git a/docs/html/dsp__tests_8h__incl.svg b/docs/html/dsp__tests_8h__incl.svg new file mode 100644 index 0000000..a4452b2 --- /dev/null +++ b/docs/html/dsp__tests_8h__incl.svg @@ -0,0 +1,1609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_tests.h + + +Node1 + + +dsp_tests.h + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_idf_version.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsp_common.h + + + + + +Node4->Node5 + + + + + + + + +Node12 + + +dsp_types.h + + + + + +Node4->Node12 + + + + + + + + +Node14 + + +dsps_dotprod.h + + + + + +Node4->Node14 + + + + + + + + +Node18 + + +dsps_math.h + + + + + +Node4->Node18 + + + + + + + + +Node30 + + +dsps_fir.h + + + + + +Node4->Node30 + + + + + + + + +Node32 + + +dsps_resampler.h + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +dsps_biquad.h + + + + + +Node4->Node33 + + + + + + + + +Node35 + + +dsps_biquad_gen.h + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +dsps_wind.h + + + + + +Node4->Node36 + + + + + + + + +Node43 + + +dsps_conv.h + + + + + +Node4->Node43 + + + + + + + + +Node45 + + +dsps_corr.h + + + + + +Node4->Node45 + + + + + + + + +Node46 + + +dsps_d_gen.h + + + + + +Node4->Node46 + + + + + + + + +Node47 + + +dsps_h_gen.h + + + + + +Node4->Node47 + + + + + + + + +Node48 + + +dsps_tone_gen.h + + + + + +Node4->Node48 + + + + + + + + +Node49 + + +dsps_snr.h + + + + + +Node4->Node49 + + + + + + + + +Node50 + + +dsps_sfdr.h + + + + + +Node4->Node50 + + + + + + + + +Node51 + + +dsps_fft2r.h + + + + + +Node4->Node51 + + + + + + + + +Node54 + + +dsps_fft4r.h + + + + + +Node4->Node54 + + + + + + + + +Node56 + + +dsps_dct.h + + + + + +Node4->Node56 + + + + + + + + +Node57 + + +dspm_matrix.h + + + + + +Node4->Node57 + + + + + + + + +Node68 + + +dsps_view.h + + + + + +Node4->Node68 + + + + + + + + +Node69 + + +dspi_dotprod.h + + + + + +Node4->Node69 + + + + + + + + +Node71 + + +dspi_conv.h + + + + + +Node4->Node71 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +stdbool.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err.h + + + + + +Node5->Node8 + + + + + + + + +Node11 + + +x86intrin.h + + + + + +Node5->Node11 + + + + + + + + +Node8->Node6 + + + + + + + + +Node12->Node6 + + + + + + + + +Node12->Node7 + + + + + + + + +Node13 + + +inttypes.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node8 + + + + + + + + +Node15 + + +esp_log.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_dotprod_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node15->Node2 + + + + + + + + +Node17 + + +sdkconfig.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_add.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_sub.h + + + + + +Node18->Node21 + + + + + + + + +Node23 + + +dsps_mul.h + + + + + +Node18->Node23 + + + + + + + + +Node25 + + +dsps_addc.h + + + + + +Node18->Node25 + + + + + + + + +Node27 + + +dsps_mulc.h + + + + + +Node18->Node27 + + + + + + + + +Node29 + + +dsps_sqrt.h + + + + + +Node18->Node29 + + + + + + + + +Node19->Node8 + + + + + + + + +Node21->Node8 + + + + + + + + +Node23->Node8 + + + + + + + + +Node25->Node8 + + + + + + + + +Node27->Node8 + + + + + + + + +Node29->Node8 + + + + + + + + +Node30->Node5 + + + + + + + + +Node30->Node8 + + + + + + + + +Node31 + + +dsps_fir_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node31->Node17 + + + + + + + + +Node32->Node8 + + + + + + + + +Node32->Node30 + + + + + + + + +Node33->Node8 + + + + + + + + +Node34 + + +dsps_biquad_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node17 + + + + + + + + +Node35->Node8 + + + + + + + + +Node37 + + +dsps_wind_hann.h + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman.h + + + + + +Node36->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_harris.h + + + + + +Node36->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +dsps_wind_nuttall.h + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +dsps_wind_flat_top.h + + + + + +Node36->Node42 + + + + + + + + +Node43->Node8 + + + + + + + + +Node44 + + +dsps_conv_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node8 + + + + + + + + +Node45->Node44 + + + + + + + + +Node46->Node8 + + + + + + + + +Node47->Node8 + + + + + + + + +Node48->Node8 + + + + + + + + +Node49->Node8 + + + + + + + + +Node50->Node8 + + + + + + + + +Node51->Node8 + + + + + + + + +Node51->Node17 + + + + + + + + +Node52 + + +dsps_fft_tables.h + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +dsps_fft2r_platform.h + + + + + +Node51->Node53 + + + + + + + + +Node53->Node17 + + + + + + + + +Node54->Node8 + + + + + + + + +Node54->Node17 + + + + + + + + +Node54->Node52 + + + + + + + + +Node55 + + +dsps_fft4r_platform.h + + + + + +Node54->Node55 + + + + + + + + +Node55->Node17 + + + + + + + + +Node56->Node8 + + + + + + + + +Node56->Node17 + + + + + + + + +Node58 + + +dspm_add.h + + + + + +Node57->Node58 + + + + + + + + +Node60 + + +dspm_addc.h + + + + + +Node57->Node60 + + + + + + + + +Node62 + + +dspm_mult.h + + + + + +Node57->Node62 + + + + + + + + +Node64 + + +dspm_mulc.h + + + + + +Node57->Node64 + + + + + + + + +Node66 + + +dspm_sub.h + + + + + +Node57->Node66 + + + + + + + + +Node58->Node8 + + + + + + + + +Node60->Node8 + + + + + + + + +Node62->Node8 + + + + + + + + +Node64->Node8 + + + + + + + + +Node66->Node8 + + + + + + + + +Node68->Node8 + + + + + + + + +Node69->Node8 + + + + + + + + +Node69->Node12 + + + + + + + + +Node69->Node15 + + + + + + + + +Node70 + + +dspi_dotprod_platform.h + + + + + +Node69->Node70 + + + + + + + + +Node70->Node17 + + + + + + + + +Node71->Node8 + + + + + + + + +Node71->Node12 + + + + + + + + +Node71->Node44 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsp__tests_8h__incl_org.svg b/docs/html/dsp__tests_8h__incl_org.svg new file mode 100644 index 0000000..c70138b --- /dev/null +++ b/docs/html/dsp__tests_8h__incl_org.svg @@ -0,0 +1,1526 @@ + + + + + + +dsp_tests.h + + +Node1 + + +dsp_tests.h + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_idf_version.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsp_common.h + + + + + +Node4->Node5 + + + + + + + + +Node12 + + +dsp_types.h + + + + + +Node4->Node12 + + + + + + + + +Node14 + + +dsps_dotprod.h + + + + + +Node4->Node14 + + + + + + + + +Node18 + + +dsps_math.h + + + + + +Node4->Node18 + + + + + + + + +Node30 + + +dsps_fir.h + + + + + +Node4->Node30 + + + + + + + + +Node32 + + +dsps_resampler.h + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +dsps_biquad.h + + + + + +Node4->Node33 + + + + + + + + +Node35 + + +dsps_biquad_gen.h + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +dsps_wind.h + + + + + +Node4->Node36 + + + + + + + + +Node43 + + +dsps_conv.h + + + + + +Node4->Node43 + + + + + + + + +Node45 + + +dsps_corr.h + + + + + +Node4->Node45 + + + + + + + + +Node46 + + +dsps_d_gen.h + + + + + +Node4->Node46 + + + + + + + + +Node47 + + +dsps_h_gen.h + + + + + +Node4->Node47 + + + + + + + + +Node48 + + +dsps_tone_gen.h + + + + + +Node4->Node48 + + + + + + + + +Node49 + + +dsps_snr.h + + + + + +Node4->Node49 + + + + + + + + +Node50 + + +dsps_sfdr.h + + + + + +Node4->Node50 + + + + + + + + +Node51 + + +dsps_fft2r.h + + + + + +Node4->Node51 + + + + + + + + +Node54 + + +dsps_fft4r.h + + + + + +Node4->Node54 + + + + + + + + +Node56 + + +dsps_dct.h + + + + + +Node4->Node56 + + + + + + + + +Node57 + + +dspm_matrix.h + + + + + +Node4->Node57 + + + + + + + + +Node68 + + +dsps_view.h + + + + + +Node4->Node68 + + + + + + + + +Node69 + + +dspi_dotprod.h + + + + + +Node4->Node69 + + + + + + + + +Node71 + + +dspi_conv.h + + + + + +Node4->Node71 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +stdbool.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err.h + + + + + +Node5->Node8 + + + + + + + + +Node11 + + +x86intrin.h + + + + + +Node5->Node11 + + + + + + + + +Node8->Node6 + + + + + + + + +Node12->Node6 + + + + + + + + +Node12->Node7 + + + + + + + + +Node13 + + +inttypes.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node8 + + + + + + + + +Node15 + + +esp_log.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_dotprod_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node15->Node2 + + + + + + + + +Node17 + + +sdkconfig.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_add.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_sub.h + + + + + +Node18->Node21 + + + + + + + + +Node23 + + +dsps_mul.h + + + + + +Node18->Node23 + + + + + + + + +Node25 + + +dsps_addc.h + + + + + +Node18->Node25 + + + + + + + + +Node27 + + +dsps_mulc.h + + + + + +Node18->Node27 + + + + + + + + +Node29 + + +dsps_sqrt.h + + + + + +Node18->Node29 + + + + + + + + +Node19->Node8 + + + + + + + + +Node21->Node8 + + + + + + + + +Node23->Node8 + + + + + + + + +Node25->Node8 + + + + + + + + +Node27->Node8 + + + + + + + + +Node29->Node8 + + + + + + + + +Node30->Node5 + + + + + + + + +Node30->Node8 + + + + + + + + +Node31 + + +dsps_fir_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node31->Node17 + + + + + + + + +Node32->Node8 + + + + + + + + +Node32->Node30 + + + + + + + + +Node33->Node8 + + + + + + + + +Node34 + + +dsps_biquad_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node17 + + + + + + + + +Node35->Node8 + + + + + + + + +Node37 + + +dsps_wind_hann.h + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman.h + + + + + +Node36->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_harris.h + + + + + +Node36->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +dsps_wind_nuttall.h + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +dsps_wind_flat_top.h + + + + + +Node36->Node42 + + + + + + + + +Node43->Node8 + + + + + + + + +Node44 + + +dsps_conv_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node8 + + + + + + + + +Node45->Node44 + + + + + + + + +Node46->Node8 + + + + + + + + +Node47->Node8 + + + + + + + + +Node48->Node8 + + + + + + + + +Node49->Node8 + + + + + + + + +Node50->Node8 + + + + + + + + +Node51->Node8 + + + + + + + + +Node51->Node17 + + + + + + + + +Node52 + + +dsps_fft_tables.h + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +dsps_fft2r_platform.h + + + + + +Node51->Node53 + + + + + + + + +Node53->Node17 + + + + + + + + +Node54->Node8 + + + + + + + + +Node54->Node17 + + + + + + + + +Node54->Node52 + + + + + + + + +Node55 + + +dsps_fft4r_platform.h + + + + + +Node54->Node55 + + + + + + + + +Node55->Node17 + + + + + + + + +Node56->Node8 + + + + + + + + +Node56->Node17 + + + + + + + + +Node58 + + +dspm_add.h + + + + + +Node57->Node58 + + + + + + + + +Node60 + + +dspm_addc.h + + + + + +Node57->Node60 + + + + + + + + +Node62 + + +dspm_mult.h + + + + + +Node57->Node62 + + + + + + + + +Node64 + + +dspm_mulc.h + + + + + +Node57->Node64 + + + + + + + + +Node66 + + +dspm_sub.h + + + + + +Node57->Node66 + + + + + + + + +Node58->Node8 + + + + + + + + +Node60->Node8 + + + + + + + + +Node62->Node8 + + + + + + + + +Node64->Node8 + + + + + + + + +Node66->Node8 + + + + + + + + +Node68->Node8 + + + + + + + + +Node69->Node8 + + + + + + + + +Node69->Node12 + + + + + + + + +Node69->Node15 + + + + + + + + +Node70 + + +dspi_dotprod_platform.h + + + + + +Node69->Node70 + + + + + + + + +Node70->Node17 + + + + + + + + +Node71->Node8 + + + + + + + + +Node71->Node12 + + + + + + + + +Node71->Node44 + + + + + + + + diff --git a/docs/html/dsp__tests_8h_source.html b/docs/html/dsp__tests_8h_source.html new file mode 100644 index 0000000..a6a72ea --- /dev/null +++ b/docs/html/dsp__tests_8h_source.html @@ -0,0 +1,147 @@ + + + + + + + +ESP-IDF Firmware: dsp_tests.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_tests.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _DSP_TESTS_H_
+
16#define _DSP_TESTS_H_
+
17
+
18#include <stdlib.h>
+
19#include "esp_idf_version.h"
+
20#include "esp_dsp.h"
+
21
+
+
22#define TEST_ASSERT_EXEC_IN_RANGE(min_exec, max_exec, actual) \
+
23 if (actual >= max_exec) { \
+
24 ESP_LOGE("", "Time error. Expected max: %i, reached: %i", (int)max_exec, (int)actual);\
+
25 TEST_ASSERT_MESSAGE (false, "Exec time takes more than expected! ");\
+
26 }\
+
27 if (actual < min_exec) {\
+
28 ESP_LOGE("", "Time error. Expected min: %i, reached: %i", (int)min_exec, (int)actual);\
+
29 TEST_ASSERT_MESSAGE (false, "Exec time takes less then expected!");\
+
30 }
+
+
31
+
32
+
33// memalign function is implemented in IDF 4.3 and later
+
34#if ESP_IDF_VERSION <= ESP_IDF_VERSION_VAL(4, 3, 0)
+
35#define memalign(align_, size_) malloc(size_)
+
36#endif
+
37
+
38#endif // _DSP_TESTS_H_
+ +
+
+
+ + + + diff --git a/docs/html/dsp__types_8h.html b/docs/html/dsp__types_8h.html new file mode 100644 index 0000000..8046656 --- /dev/null +++ b/docs/html/dsp__types_8h.html @@ -0,0 +1,184 @@ + + + + + + + +ESP-IDF Firmware: dsp_types.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_types.h File Reference
+
+
+
#include <stdint.h>
+#include <stdbool.h>
+#include <inttypes.h>
+
+Include dependency graph for dsp_types.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Data Structures

union  sc16_u
union  fc32_u
struct  image2d_s
+ + + + +

+Typedefs

typedef union sc16_u sc16_t
typedef union fc32_u fc32_t
typedef struct image2d_s image2d_t
+

Typedef Documentation

+ +

◆ fc32_t

+ +
+
+ + + + +
typedef union fc32_u fc32_t
+
+ +
+
+ +

◆ image2d_t

+ +
+
+ + + + +
typedef struct image2d_s image2d_t
+
+ +
+
+ +

◆ sc16_t

+ +
+
+ + + + +
typedef union sc16_u sc16_t
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsp__types_8h.js b/docs/html/dsp__types_8h.js new file mode 100644 index 0000000..39d7ed8 --- /dev/null +++ b/docs/html/dsp__types_8h.js @@ -0,0 +1,9 @@ +var dsp__types_8h = +[ + [ "sc16_u", "unionsc16__u.html", "unionsc16__u" ], + [ "fc32_u", "unionfc32__u.html", "unionfc32__u" ], + [ "image2d_s", "structimage2d__s.html", "structimage2d__s" ], + [ "fc32_t", "dsp__types_8h.html#ab9f9006730b225efc993859a1aeae3e0", null ], + [ "image2d_t", "dsp__types_8h.html#a0064756ceb4882c2e570152dc3340b69", null ], + [ "sc16_t", "dsp__types_8h.html#af71bcd226be4b8d7d088c095ba2be108", null ] +]; \ No newline at end of file diff --git a/docs/html/dsp__types_8h__dep__incl.md5 b/docs/html/dsp__types_8h__dep__incl.md5 new file mode 100644 index 0000000..63c2cf4 --- /dev/null +++ b/docs/html/dsp__types_8h__dep__incl.md5 @@ -0,0 +1 @@ +e45da76251f28ba7d685883f8198f84f \ No newline at end of file diff --git a/docs/html/dsp__types_8h__dep__incl.svg b/docs/html/dsp__types_8h__dep__incl.svg new file mode 100644 index 0000000..2e6bc79 --- /dev/null +++ b/docs/html/dsp__types_8h__dep__incl.svg @@ -0,0 +1,910 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_types.h + + +Node1 + + +dsp_types.h + + + + + +Node2 + + +dspi_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node17 + + + + + + + + +Node38 + + +dspi_dotprod.h + + + + + +Node1->Node38 + + + + + + + + +Node49 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node49 + + + + + + + + +Node50 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node50 + + + + + + + + +Node51 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node51 + + + + + + + + +Node52 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node52 + + + + + + + + +Node3 + + +dspi_conv_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node16->Node17 + + + + + + + + +Node38->Node4 + + + + + + + + +Node39 + + +dspi_dotprod_f32_ansi.c + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node38->Node40 + + + + + + + + +Node41 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node38->Node41 + + + + + + + + +Node42 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node38->Node42 + + + + + + + + +Node43 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node38->Node43 + + + + + + + + +Node44 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node38->Node44 + + + + + + + + +Node45 + + +dspi_dotprod_s16_ansi.c + + + + + +Node38->Node45 + + + + + + + + +Node46 + + +dspi_dotprod_s8_ansi.c + + + + + +Node38->Node46 + + + + + + + + +Node47 + + +dspi_dotprod_u16_ansi.c + + + + + +Node38->Node47 + + + + + + + + +Node48 + + +dspi_dotprod_u8_ansi.c + + + + + +Node38->Node48 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsp__types_8h__dep__incl_org.svg b/docs/html/dsp__types_8h__dep__incl_org.svg new file mode 100644 index 0000000..8e3aa0a --- /dev/null +++ b/docs/html/dsp__types_8h__dep__incl_org.svg @@ -0,0 +1,827 @@ + + + + + + +dsp_types.h + + +Node1 + + +dsp_types.h + + + + + +Node2 + + +dspi_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node17 + + + + + + + + +Node38 + + +dspi_dotprod.h + + + + + +Node1->Node38 + + + + + + + + +Node49 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node49 + + + + + + + + +Node50 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node50 + + + + + + + + +Node51 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node51 + + + + + + + + +Node52 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node52 + + + + + + + + +Node3 + + +dspi_conv_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node16->Node17 + + + + + + + + +Node38->Node4 + + + + + + + + +Node39 + + +dspi_dotprod_f32_ansi.c + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node38->Node40 + + + + + + + + +Node41 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node38->Node41 + + + + + + + + +Node42 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node38->Node42 + + + + + + + + +Node43 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node38->Node43 + + + + + + + + +Node44 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node38->Node44 + + + + + + + + +Node45 + + +dspi_dotprod_s16_ansi.c + + + + + +Node38->Node45 + + + + + + + + +Node46 + + +dspi_dotprod_s8_ansi.c + + + + + +Node38->Node46 + + + + + + + + +Node47 + + +dspi_dotprod_u16_ansi.c + + + + + +Node38->Node47 + + + + + + + + +Node48 + + +dspi_dotprod_u8_ansi.c + + + + + +Node38->Node48 + + + + + + + + diff --git a/docs/html/dsp__types_8h__incl.md5 b/docs/html/dsp__types_8h__incl.md5 new file mode 100644 index 0000000..8e399d4 --- /dev/null +++ b/docs/html/dsp__types_8h__incl.md5 @@ -0,0 +1 @@ +45e784218bd77d6ff139e05d6284c747 \ No newline at end of file diff --git a/docs/html/dsp__types_8h__incl.svg b/docs/html/dsp__types_8h__incl.svg new file mode 100644 index 0000000..eec11b4 --- /dev/null +++ b/docs/html/dsp__types_8h__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsp_types.h + + +Node1 + + +dsp_types.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdbool.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +inttypes.h + + + + + +Node1->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsp__types_8h__incl_org.svg b/docs/html/dsp__types_8h__incl_org.svg new file mode 100644 index 0000000..04ad1f9 --- /dev/null +++ b/docs/html/dsp__types_8h__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsp_types.h + + +Node1 + + +dsp_types.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdbool.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +inttypes.h + + + + + +Node1->Node4 + + + + + + + + diff --git a/docs/html/dsp__types_8h_source.html b/docs/html/dsp__types_8h_source.html new file mode 100644 index 0000000..10d50ae --- /dev/null +++ b/docs/html/dsp__types_8h_source.html @@ -0,0 +1,167 @@ + + + + + + + +ESP-IDF Firmware: dsp_types.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsp_types.h
+
+
+Go to the documentation of this file.
1#ifndef _dsp_types_H_
+
2#define _dsp_types_H_
+
3#include <stdint.h>
+
4#include <stdbool.h>
+
5#include <inttypes.h>
+
6
+
7// union to simplify access to the 16 bit data
+
+
8typedef union sc16_u {
+
9 struct {
+
10 int16_t re;
+
11 int16_t im;
+
12 };
+
13 uint32_t data;
+ +
+
15
+
+
16typedef union fc32_u {
+
17 struct {
+
18 float re;
+
19 float im;
+
20 };
+
21 uint64_t data;
+ +
+
23
+
+
24typedef struct image2d_s {
+
25 void *data; // could be int8_t, unt8_t, int16_t, unt16_t, float
+
26 int step_x; // step of elements by X
+
27 int step_y; // step of elements by Y, usually is 1
+
28 int stride_x; // stride width: size of the elements in X axis * by step_x + padding
+
29 int stride_y; // stride height: size of the elements in Y axis * by step_y + padding
+
30 // Point[x,y] = data[width*y*step_y + x*step_x];
+
31 // Full data size = width*height
+
32 int size_x; // image width
+
33 int size_y; // image height
+ +
+
35
+
36#endif // _dsp_types_H_
+
struct image2d_s image2d_t
+
union fc32_u fc32_t
+
union sc16_u sc16_t
+ +
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
int size_x
Definition dsp_types.h:32
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
int size_y
Definition dsp_types.h:33
+ +
uint64_t data
Definition dsp_types.h:21
+
float re
Definition dsp_types.h:18
+
float im
Definition dsp_types.h:19
+ +
int16_t re
Definition dsp_types.h:10
+
uint32_t data
Definition dsp_types.h:13
+
int16_t im
Definition dsp_types.h:11
+
+
+
+ + + + diff --git a/docs/html/dspi__conv_8h.html b/docs/html/dspi__conv_8h.html new file mode 100644 index 0000000..7a76c2c --- /dev/null +++ b/docs/html/dspi__conv_8h.html @@ -0,0 +1,380 @@ + + + + + + + +ESP-IDF Firmware: dspi_conv.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_conv.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_conv_platform.h"
+#include "dsp_types.h"
+
+Include dependency graph for dspi_conv.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define dspi_conv_f32   dspi_conv_f32_ansi
+ + + + +

+Functions

esp_err_t dspi_conv_f32_ansi (const image2d_t *in_image, const image2d_t *filter, image2d_t *out_image)
 2D Convolution
+

Macro Definition Documentation

+ +

◆ dspi_conv_f32

+ +
+
+ + + + +
#define dspi_conv_f32   dspi_conv_f32_ansi
+
+ +

Definition at line 52 of file dspi_conv.h.

+ +
+
+

Function Documentation

+ +

◆ dspi_conv_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dspi_conv_f32_ansi (const image2d_t * in_image,
const image2d_t * filter,
image2d_t * out_image )
+
+ +

2D Convolution

+

The function convolve Signal image with Kernel (filter) image. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
[in]in_imageinput image
[in]filterinput array with convolution kernel
[out]out_imageoutput image. The stride and step parameters must be set.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 18 of file dspi_conv_f32_ansi.c.

+
19{
+
20 out_image->size_x = in_image->size_x;
+
21 out_image->size_y = in_image->size_y;
+
22 float *i_data = (float *)in_image->data;
+
23 float *out_data = (float *)out_image->data;
+
24
+
25 int rest_x = (filter->size_x - 1) >> 1;
+
26 int rest_y = (filter->size_y - 1) >> 1;
+
27
+
28 int i_pos = 0;
+
29 int i_step = in_image->stride_x * in_image->step_y;
+
30 int f_step = filter->stride_x * filter->step_y;
+
31
+
32 // Up side of image
+
33 for (int y = 0 ; y < rest_y; y++ ) {
+
34 int i_pos_y = i_pos;
+
35 for (int x = 0 ; x < rest_x; x++) {
+
36 int i_pos_x = i_pos_y;
+
37 float acc = 0;
+
38 float *f_data = (float *)filter->data;
+
39 for (int m = rest_y - y ; m < filter->size_y ; m++) {
+
40 for (int n = rest_x - x ; n < filter->size_x ; n++) {
+
41 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
42 }
+
43 f_data += f_step;
+
44 i_pos_x += i_step;
+
45 }
+
46 i_pos_y += in_image->step_x;
+
47 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
48 }
+
49 for (int x = rest_x ; x < in_image->size_x - filter->size_x / 2; x++) {
+
50 int i_pos_x = i_pos_y;
+
51 float acc = 0;
+
52 float *f_data = (float *)filter->data;
+
53 for (int m = rest_y - y ; m < filter->size_y ; m++) {
+
54 for (int n = 0 ; n < filter->size_x ; n++) {
+
55 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
56 }
+
57 f_data += f_step;
+
58 i_pos_x += i_step;
+
59 }
+
60 i_pos_y += in_image->step_x;
+
61 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
62 }
+
63 for (int x = in_image->size_x - filter->size_x / 2 - 1; x < in_image->size_x; x++) {
+
64 int i_pos_x = i_pos_y;
+
65 float acc = 0;
+
66 float *f_data = (float *)filter->data;
+
67 for (int m = rest_y - y ; m < filter->size_y ; m++) {
+
68 for (int n = 0 ; n < filter->size_x - (x - in_image->size_x + filter->size_x / 2 + 1); n++) {
+
69 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
70 }
+
71 f_data += f_step;
+
72 i_pos_x += i_step;
+
73 }
+
74 i_pos_y += in_image->step_x;
+
75 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
76 }
+
77 i_pos += in_image->stride_x * in_image->step_y;
+
78 }
+
79 // Middle side of image
+
80 i_pos = 0;
+
81 for (int y = rest_y ; y < in_image->size_y - filter->size_y / 2; y++ ) {
+
82 int i_pos_y = i_pos;
+
83 for (int x = 0 ; x < rest_x; x++) {
+
84 int i_pos_x = i_pos_y;
+
85 float acc = 0;
+
86 float *f_data = (float *)filter->data;
+
87 for (int m = 0 ; m < filter->size_y ; m++) {
+
88 for (int n = rest_x - x ; n < filter->size_x ; n++) {
+
89 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
90 }
+
91 f_data += f_step;
+
92 i_pos_x += i_step;
+
93 }
+
94 i_pos_y += in_image->step_x;
+
95 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
96 }
+
97 for (int x = in_image->size_x - filter->size_x / 2 - 1; x < in_image->size_x; x++) {
+
98 int i_pos_x = i_pos_y;
+
99 float acc = 0;
+
100 float *f_data = (float *)filter->data;
+
101 for (int m = 0 ; m < filter->size_y ; m++) {
+
102 for (int n = 0 ; n < filter->size_x - (x - in_image->size_x + filter->size_x / 2 + 1); n++) {
+
103 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
104 }
+
105 f_data += f_step;
+
106 i_pos_x += i_step;
+
107 }
+
108 i_pos_y += in_image->step_x;
+
109 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
110 }
+
111
+
112 i_pos += in_image->stride_x * in_image->step_y;
+
113 }
+
114 // Down side of image
+
115 i_pos = 0;
+
116 for (int y = in_image->size_y - filter->size_y / 2 ; y < in_image->size_y; y++ ) {
+
117 int i_pos_y = i_pos;
+
118 for (int x = 0 ; x < rest_x; x++) {
+
119 int i_pos_x = i_pos_y;
+
120 float acc = 0;
+
121 float *f_data = (float *)filter->data;
+
122 for (int m = 0 ; m < filter->size_y - (y - in_image->size_y + filter->size_y / 2 + 1); m++) {
+
123 for (int n = rest_x - x ; n < filter->size_x ; n++) {
+
124 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
125 }
+
126 f_data += f_step;
+
127 i_pos_x += i_step;
+
128 }
+
129 i_pos_y += in_image->step_x;
+
130 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
131 }
+
132 for (int x = rest_x ; x < in_image->size_x - filter->size_x / 2; x++) {
+
133 int i_pos_x = i_pos_y;
+
134 float acc = 0;
+
135 float *f_data = (float *)filter->data;
+
136 for (int m = 0 ; m < filter->size_y - (y - in_image->size_y + filter->size_y / 2 + 1); m++) {
+
137 for (int n = 0 ; n < filter->size_x ; n++) {
+
138 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
139 }
+
140 f_data += f_step;
+
141 i_pos_x += i_step;
+
142 }
+
143 i_pos_y += in_image->step_x;
+
144 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
145 }
+
146 for (int x = in_image->size_x - filter->size_x / 2 ; x < in_image->size_x; x++) {
+
147 int i_pos_x = i_pos_y;
+
148 float acc = 0;
+
149 float *f_data = (float *)filter->data;
+
150 for (int m = 0 ; m < filter->size_y - (y - in_image->size_y + filter->size_y / 2 + 1); m++) {
+
151 for (int n = 0 ; n < filter->size_x - (x - in_image->size_x + filter->size_x / 2 + 1); n++) {
+
152 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
153 }
+
154 f_data += f_step;
+
155 i_pos_x += i_step;
+
156 }
+
157 i_pos_y += in_image->step_x;
+
158 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
159 }
+
160
+
161 i_pos += in_image->stride_x * in_image->step_y;
+
162 }
+
163 // Main image block
+
164 i_pos = 0;
+
165 for (int y = rest_y ; y < in_image->size_y - filter->size_y / 2; y++ ) {
+
166 int i_pos_y = i_pos;
+
167 for (int x = rest_x ; x < in_image->size_x - filter->size_x / 2; x++) {
+
168 int i_pos_x = i_pos_y;
+
169 float acc = 0;
+
170 float *f_data = (float *)filter->data;
+
171 for (int m = 0 ; m < filter->size_y ; m++) {
+
172 for (int n = 0 ; n < filter->size_x ; n++) {
+
173 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
174 }
+
175 f_data += f_step;
+
176 i_pos_x += i_step;
+
177 }
+
178 i_pos_y += in_image->step_x;
+
179 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
180 }
+
181 i_pos += in_image->stride_x * in_image->step_y;
+
182 }
+
183 return ESP_OK;
+
184}
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int size_x
Definition dsp_types.h:32
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
int size_y
Definition dsp_types.h:33
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+

References image2d_s::data, ESP_OK, m, n, image2d_s::size_x, image2d_s::size_y, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__conv_8h.js b/docs/html/dspi__conv_8h.js new file mode 100644 index 0000000..46f4c3b --- /dev/null +++ b/docs/html/dspi__conv_8h.js @@ -0,0 +1,5 @@ +var dspi__conv_8h = +[ + [ "dspi_conv_f32", "dspi__conv_8h.html#aa1764bb785c8e75e3e14e8bd240db641", null ], + [ "dspi_conv_f32_ansi", "dspi__conv_8h.html#a008a5fe5609a8388dd733704095d3e49", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__conv_8h__dep__incl.md5 b/docs/html/dspi__conv_8h__dep__incl.md5 new file mode 100644 index 0000000..9e16584 --- /dev/null +++ b/docs/html/dspi__conv_8h__dep__incl.md5 @@ -0,0 +1 @@ +e7fecdb0af85418ce7090ff840a61639 \ No newline at end of file diff --git a/docs/html/dspi__conv_8h__dep__incl.svg b/docs/html/dspi__conv_8h__dep__incl.svg new file mode 100644 index 0000000..97e1ea6 --- /dev/null +++ b/docs/html/dspi__conv_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspi_conv.h + + +Node1 + + +dspi_conv.h + + + + + +Node2 + + +dspi_conv_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspi__conv_8h__dep__incl_org.svg b/docs/html/dspi__conv_8h__dep__incl_org.svg new file mode 100644 index 0000000..032be07 --- /dev/null +++ b/docs/html/dspi__conv_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dspi_conv.h + + +Node1 + + +dspi_conv.h + + + + + +Node2 + + +dspi_conv_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + diff --git a/docs/html/dspi__conv_8h__incl.md5 b/docs/html/dspi__conv_8h__incl.md5 new file mode 100644 index 0000000..467f8c4 --- /dev/null +++ b/docs/html/dspi__conv_8h__incl.md5 @@ -0,0 +1 @@ +c204ac7291bc59e062f6fb85a054de11 \ No newline at end of file diff --git a/docs/html/dspi__conv_8h__incl.svg b/docs/html/dspi__conv_8h__incl.svg new file mode 100644 index 0000000..2d05e29 --- /dev/null +++ b/docs/html/dspi__conv_8h__incl.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + +dspi_conv.h + + +Node1 + + +dspi_conv.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_conv_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + +Node9->Node3 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + + + + + + diff --git a/docs/html/dspi__conv_8h__incl_org.svg b/docs/html/dspi__conv_8h__incl_org.svg new file mode 100644 index 0000000..c9e49cd --- /dev/null +++ b/docs/html/dspi__conv_8h__incl_org.svg @@ -0,0 +1,210 @@ + + + + + + +dspi_conv.h + + +Node1 + + +dspi_conv.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_conv_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + +Node9->Node3 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + diff --git a/docs/html/dspi__conv_8h_source.html b/docs/html/dspi__conv_8h_source.html new file mode 100644 index 0000000..4ff8b8b --- /dev/null +++ b/docs/html/dspi__conv_8h_source.html @@ -0,0 +1,151 @@ + + + + + + + +ESP-IDF Firmware: dspi_conv.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_conv.h
+
+
+Go to the documentation of this file.
1// Copyright 2024 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dspi_conv_H_
+
16#define _dspi_conv_H_
+
17#include "dsp_err.h"
+
18
+
19#include "dsps_conv_platform.h"
+
20#include "dsp_types.h"
+
21
+
22#ifdef __cplusplus
+
23extern "C"
+
24{
+
25#endif
+
26
+
42esp_err_t dspi_conv_f32_ansi(const image2d_t *in_image, const image2d_t *filter, image2d_t *out_image);
+
44
+
45#ifdef __cplusplus
+
46}
+
47#endif
+
48
+
49#ifdef CONFIG_DSP_OPTIMIZED
+
50#define dspi_conv_f32 dspi_conv_f32_ansi
+
51#else
+
52#define dspi_conv_f32 dspi_conv_f32_ansi
+
53#endif // CONFIG_DSP_OPTIMIZED
+
54
+
55#endif // _dspi_conv_H_
+ + +
struct image2d_s image2d_t
+
esp_err_t dspi_conv_f32_ansi(const image2d_t *in_image, const image2d_t *filter, image2d_t *out_image)
2D Convolution
+ +
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dspi__conv__f32__ansi_8c.html b/docs/html/dspi__conv__f32__ansi_8c.html new file mode 100644 index 0000000..a4bd8eb --- /dev/null +++ b/docs/html/dspi__conv__f32__ansi_8c.html @@ -0,0 +1,352 @@ + + + + + + + +ESP-IDF Firmware: dspi_conv_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_conv_f32_ansi.c File Reference
+
+
+
#include "dspi_conv.h"
+#include "esp_log.h"
+
+Include dependency graph for dspi_conv_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspi_conv_f32_ansi (const image2d_t *in_image, const image2d_t *filter, image2d_t *out_image)
 2D Convolution
+

Function Documentation

+ +

◆ dspi_conv_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dspi_conv_f32_ansi (const image2d_t * in_image,
const image2d_t * filter,
image2d_t * out_image )
+
+ +

2D Convolution

+

The function convolve Signal image with Kernel (filter) image. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
[in]in_imageinput image
[in]filterinput array with convolution kernel
[out]out_imageoutput image. The stride and step parameters must be set.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 18 of file dspi_conv_f32_ansi.c.

+
19{
+
20 out_image->size_x = in_image->size_x;
+
21 out_image->size_y = in_image->size_y;
+
22 float *i_data = (float *)in_image->data;
+
23 float *out_data = (float *)out_image->data;
+
24
+
25 int rest_x = (filter->size_x - 1) >> 1;
+
26 int rest_y = (filter->size_y - 1) >> 1;
+
27
+
28 int i_pos = 0;
+
29 int i_step = in_image->stride_x * in_image->step_y;
+
30 int f_step = filter->stride_x * filter->step_y;
+
31
+
32 // Up side of image
+
33 for (int y = 0 ; y < rest_y; y++ ) {
+
34 int i_pos_y = i_pos;
+
35 for (int x = 0 ; x < rest_x; x++) {
+
36 int i_pos_x = i_pos_y;
+
37 float acc = 0;
+
38 float *f_data = (float *)filter->data;
+
39 for (int m = rest_y - y ; m < filter->size_y ; m++) {
+
40 for (int n = rest_x - x ; n < filter->size_x ; n++) {
+
41 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
42 }
+
43 f_data += f_step;
+
44 i_pos_x += i_step;
+
45 }
+
46 i_pos_y += in_image->step_x;
+
47 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
48 }
+
49 for (int x = rest_x ; x < in_image->size_x - filter->size_x / 2; x++) {
+
50 int i_pos_x = i_pos_y;
+
51 float acc = 0;
+
52 float *f_data = (float *)filter->data;
+
53 for (int m = rest_y - y ; m < filter->size_y ; m++) {
+
54 for (int n = 0 ; n < filter->size_x ; n++) {
+
55 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
56 }
+
57 f_data += f_step;
+
58 i_pos_x += i_step;
+
59 }
+
60 i_pos_y += in_image->step_x;
+
61 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
62 }
+
63 for (int x = in_image->size_x - filter->size_x / 2 - 1; x < in_image->size_x; x++) {
+
64 int i_pos_x = i_pos_y;
+
65 float acc = 0;
+
66 float *f_data = (float *)filter->data;
+
67 for (int m = rest_y - y ; m < filter->size_y ; m++) {
+
68 for (int n = 0 ; n < filter->size_x - (x - in_image->size_x + filter->size_x / 2 + 1); n++) {
+
69 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
70 }
+
71 f_data += f_step;
+
72 i_pos_x += i_step;
+
73 }
+
74 i_pos_y += in_image->step_x;
+
75 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
76 }
+
77 i_pos += in_image->stride_x * in_image->step_y;
+
78 }
+
79 // Middle side of image
+
80 i_pos = 0;
+
81 for (int y = rest_y ; y < in_image->size_y - filter->size_y / 2; y++ ) {
+
82 int i_pos_y = i_pos;
+
83 for (int x = 0 ; x < rest_x; x++) {
+
84 int i_pos_x = i_pos_y;
+
85 float acc = 0;
+
86 float *f_data = (float *)filter->data;
+
87 for (int m = 0 ; m < filter->size_y ; m++) {
+
88 for (int n = rest_x - x ; n < filter->size_x ; n++) {
+
89 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
90 }
+
91 f_data += f_step;
+
92 i_pos_x += i_step;
+
93 }
+
94 i_pos_y += in_image->step_x;
+
95 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
96 }
+
97 for (int x = in_image->size_x - filter->size_x / 2 - 1; x < in_image->size_x; x++) {
+
98 int i_pos_x = i_pos_y;
+
99 float acc = 0;
+
100 float *f_data = (float *)filter->data;
+
101 for (int m = 0 ; m < filter->size_y ; m++) {
+
102 for (int n = 0 ; n < filter->size_x - (x - in_image->size_x + filter->size_x / 2 + 1); n++) {
+
103 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
104 }
+
105 f_data += f_step;
+
106 i_pos_x += i_step;
+
107 }
+
108 i_pos_y += in_image->step_x;
+
109 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
110 }
+
111
+
112 i_pos += in_image->stride_x * in_image->step_y;
+
113 }
+
114 // Down side of image
+
115 i_pos = 0;
+
116 for (int y = in_image->size_y - filter->size_y / 2 ; y < in_image->size_y; y++ ) {
+
117 int i_pos_y = i_pos;
+
118 for (int x = 0 ; x < rest_x; x++) {
+
119 int i_pos_x = i_pos_y;
+
120 float acc = 0;
+
121 float *f_data = (float *)filter->data;
+
122 for (int m = 0 ; m < filter->size_y - (y - in_image->size_y + filter->size_y / 2 + 1); m++) {
+
123 for (int n = rest_x - x ; n < filter->size_x ; n++) {
+
124 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
125 }
+
126 f_data += f_step;
+
127 i_pos_x += i_step;
+
128 }
+
129 i_pos_y += in_image->step_x;
+
130 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
131 }
+
132 for (int x = rest_x ; x < in_image->size_x - filter->size_x / 2; x++) {
+
133 int i_pos_x = i_pos_y;
+
134 float acc = 0;
+
135 float *f_data = (float *)filter->data;
+
136 for (int m = 0 ; m < filter->size_y - (y - in_image->size_y + filter->size_y / 2 + 1); m++) {
+
137 for (int n = 0 ; n < filter->size_x ; n++) {
+
138 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
139 }
+
140 f_data += f_step;
+
141 i_pos_x += i_step;
+
142 }
+
143 i_pos_y += in_image->step_x;
+
144 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
145 }
+
146 for (int x = in_image->size_x - filter->size_x / 2 ; x < in_image->size_x; x++) {
+
147 int i_pos_x = i_pos_y;
+
148 float acc = 0;
+
149 float *f_data = (float *)filter->data;
+
150 for (int m = 0 ; m < filter->size_y - (y - in_image->size_y + filter->size_y / 2 + 1); m++) {
+
151 for (int n = 0 ; n < filter->size_x - (x - in_image->size_x + filter->size_x / 2 + 1); n++) {
+
152 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
153 }
+
154 f_data += f_step;
+
155 i_pos_x += i_step;
+
156 }
+
157 i_pos_y += in_image->step_x;
+
158 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
159 }
+
160
+
161 i_pos += in_image->stride_x * in_image->step_y;
+
162 }
+
163 // Main image block
+
164 i_pos = 0;
+
165 for (int y = rest_y ; y < in_image->size_y - filter->size_y / 2; y++ ) {
+
166 int i_pos_y = i_pos;
+
167 for (int x = rest_x ; x < in_image->size_x - filter->size_x / 2; x++) {
+
168 int i_pos_x = i_pos_y;
+
169 float acc = 0;
+
170 float *f_data = (float *)filter->data;
+
171 for (int m = 0 ; m < filter->size_y ; m++) {
+
172 for (int n = 0 ; n < filter->size_x ; n++) {
+
173 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
174 }
+
175 f_data += f_step;
+
176 i_pos_x += i_step;
+
177 }
+
178 i_pos_y += in_image->step_x;
+
179 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
180 }
+
181 i_pos += in_image->stride_x * in_image->step_y;
+
182 }
+
183 return ESP_OK;
+
184}
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int size_x
Definition dsp_types.h:32
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
int size_y
Definition dsp_types.h:33
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+

References image2d_s::data, ESP_OK, m, n, image2d_s::size_x, image2d_s::size_y, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__conv__f32__ansi_8c.js b/docs/html/dspi__conv__f32__ansi_8c.js new file mode 100644 index 0000000..a22ce70 --- /dev/null +++ b/docs/html/dspi__conv__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__conv__f32__ansi_8c = +[ + [ "dspi_conv_f32_ansi", "dspi__conv__f32__ansi_8c.html#a008a5fe5609a8388dd733704095d3e49", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__conv__f32__ansi_8c__incl.md5 b/docs/html/dspi__conv__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..226b8cf --- /dev/null +++ b/docs/html/dspi__conv__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +a7445a927883600e6c8f522e99a45b61 \ No newline at end of file diff --git a/docs/html/dspi__conv__f32__ansi_8c__incl.svg b/docs/html/dspi__conv__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..9cb9669 --- /dev/null +++ b/docs/html/dspi__conv__f32__ansi_8c__incl.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + +dspi_conv_f32_ansi.c + + +Node1 + + +dspi_conv_f32_ansi.c + + + + + +Node2 + + +dspi_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +esp_log.h + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_conv_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_types.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +inttypes.h + + + + + +Node10->Node12 + + + + + + + + +Node13->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dspi__conv__f32__ansi_8c__incl_org.svg b/docs/html/dspi__conv__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..b07bb5a --- /dev/null +++ b/docs/html/dspi__conv__f32__ansi_8c__incl_org.svg @@ -0,0 +1,255 @@ + + + + + + +dspi_conv_f32_ansi.c + + +Node1 + + +dspi_conv_f32_ansi.c + + + + + +Node2 + + +dspi_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +esp_log.h + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_conv_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_types.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +inttypes.h + + + + + +Node10->Node12 + + + + + + + + +Node13->Node6 + + + + + + + + diff --git a/docs/html/dspi__conv__f32__ansi_8c_source.html b/docs/html/dspi__conv__f32__ansi_8c_source.html new file mode 100644 index 0000000..606c0da --- /dev/null +++ b/docs/html/dspi__conv__f32__ansi_8c_source.html @@ -0,0 +1,308 @@ + + + + + + + +ESP-IDF Firmware: dspi_conv_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_conv_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2024 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_conv.h"
+
16#include "esp_log.h"
+
17
+
+
18esp_err_t dspi_conv_f32_ansi(const image2d_t *in_image, const image2d_t *filter, image2d_t *out_image)
+
19{
+
20 out_image->size_x = in_image->size_x;
+
21 out_image->size_y = in_image->size_y;
+
22 float *i_data = (float *)in_image->data;
+
23 float *out_data = (float *)out_image->data;
+
24
+
25 int rest_x = (filter->size_x - 1) >> 1;
+
26 int rest_y = (filter->size_y - 1) >> 1;
+
27
+
28 int i_pos = 0;
+
29 int i_step = in_image->stride_x * in_image->step_y;
+
30 int f_step = filter->stride_x * filter->step_y;
+
31
+
32 // Up side of image
+
33 for (int y = 0 ; y < rest_y; y++ ) {
+
34 int i_pos_y = i_pos;
+
35 for (int x = 0 ; x < rest_x; x++) {
+
36 int i_pos_x = i_pos_y;
+
37 float acc = 0;
+
38 float *f_data = (float *)filter->data;
+
39 for (int m = rest_y - y ; m < filter->size_y ; m++) {
+
40 for (int n = rest_x - x ; n < filter->size_x ; n++) {
+
41 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
42 }
+
43 f_data += f_step;
+
44 i_pos_x += i_step;
+
45 }
+
46 i_pos_y += in_image->step_x;
+
47 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
48 }
+
49 for (int x = rest_x ; x < in_image->size_x - filter->size_x / 2; x++) {
+
50 int i_pos_x = i_pos_y;
+
51 float acc = 0;
+
52 float *f_data = (float *)filter->data;
+
53 for (int m = rest_y - y ; m < filter->size_y ; m++) {
+
54 for (int n = 0 ; n < filter->size_x ; n++) {
+
55 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
56 }
+
57 f_data += f_step;
+
58 i_pos_x += i_step;
+
59 }
+
60 i_pos_y += in_image->step_x;
+
61 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
62 }
+
63 for (int x = in_image->size_x - filter->size_x / 2 - 1; x < in_image->size_x; x++) {
+
64 int i_pos_x = i_pos_y;
+
65 float acc = 0;
+
66 float *f_data = (float *)filter->data;
+
67 for (int m = rest_y - y ; m < filter->size_y ; m++) {
+
68 for (int n = 0 ; n < filter->size_x - (x - in_image->size_x + filter->size_x / 2 + 1); n++) {
+
69 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
70 }
+
71 f_data += f_step;
+
72 i_pos_x += i_step;
+
73 }
+
74 i_pos_y += in_image->step_x;
+
75 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
76 }
+
77 i_pos += in_image->stride_x * in_image->step_y;
+
78 }
+
79 // Middle side of image
+
80 i_pos = 0;
+
81 for (int y = rest_y ; y < in_image->size_y - filter->size_y / 2; y++ ) {
+
82 int i_pos_y = i_pos;
+
83 for (int x = 0 ; x < rest_x; x++) {
+
84 int i_pos_x = i_pos_y;
+
85 float acc = 0;
+
86 float *f_data = (float *)filter->data;
+
87 for (int m = 0 ; m < filter->size_y ; m++) {
+
88 for (int n = rest_x - x ; n < filter->size_x ; n++) {
+
89 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
90 }
+
91 f_data += f_step;
+
92 i_pos_x += i_step;
+
93 }
+
94 i_pos_y += in_image->step_x;
+
95 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
96 }
+
97 for (int x = in_image->size_x - filter->size_x / 2 - 1; x < in_image->size_x; x++) {
+
98 int i_pos_x = i_pos_y;
+
99 float acc = 0;
+
100 float *f_data = (float *)filter->data;
+
101 for (int m = 0 ; m < filter->size_y ; m++) {
+
102 for (int n = 0 ; n < filter->size_x - (x - in_image->size_x + filter->size_x / 2 + 1); n++) {
+
103 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
104 }
+
105 f_data += f_step;
+
106 i_pos_x += i_step;
+
107 }
+
108 i_pos_y += in_image->step_x;
+
109 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
110 }
+
111
+
112 i_pos += in_image->stride_x * in_image->step_y;
+
113 }
+
114 // Down side of image
+
115 i_pos = 0;
+
116 for (int y = in_image->size_y - filter->size_y / 2 ; y < in_image->size_y; y++ ) {
+
117 int i_pos_y = i_pos;
+
118 for (int x = 0 ; x < rest_x; x++) {
+
119 int i_pos_x = i_pos_y;
+
120 float acc = 0;
+
121 float *f_data = (float *)filter->data;
+
122 for (int m = 0 ; m < filter->size_y - (y - in_image->size_y + filter->size_y / 2 + 1); m++) {
+
123 for (int n = rest_x - x ; n < filter->size_x ; n++) {
+
124 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
125 }
+
126 f_data += f_step;
+
127 i_pos_x += i_step;
+
128 }
+
129 i_pos_y += in_image->step_x;
+
130 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
131 }
+
132 for (int x = rest_x ; x < in_image->size_x - filter->size_x / 2; x++) {
+
133 int i_pos_x = i_pos_y;
+
134 float acc = 0;
+
135 float *f_data = (float *)filter->data;
+
136 for (int m = 0 ; m < filter->size_y - (y - in_image->size_y + filter->size_y / 2 + 1); m++) {
+
137 for (int n = 0 ; n < filter->size_x ; n++) {
+
138 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
139 }
+
140 f_data += f_step;
+
141 i_pos_x += i_step;
+
142 }
+
143 i_pos_y += in_image->step_x;
+
144 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
145 }
+
146 for (int x = in_image->size_x - filter->size_x / 2 ; x < in_image->size_x; x++) {
+
147 int i_pos_x = i_pos_y;
+
148 float acc = 0;
+
149 float *f_data = (float *)filter->data;
+
150 for (int m = 0 ; m < filter->size_y - (y - in_image->size_y + filter->size_y / 2 + 1); m++) {
+
151 for (int n = 0 ; n < filter->size_x - (x - in_image->size_x + filter->size_x / 2 + 1); n++) {
+
152 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
153 }
+
154 f_data += f_step;
+
155 i_pos_x += i_step;
+
156 }
+
157 i_pos_y += in_image->step_x;
+
158 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
159 }
+
160
+
161 i_pos += in_image->stride_x * in_image->step_y;
+
162 }
+
163 // Main image block
+
164 i_pos = 0;
+
165 for (int y = rest_y ; y < in_image->size_y - filter->size_y / 2; y++ ) {
+
166 int i_pos_y = i_pos;
+
167 for (int x = rest_x ; x < in_image->size_x - filter->size_x / 2; x++) {
+
168 int i_pos_x = i_pos_y;
+
169 float acc = 0;
+
170 float *f_data = (float *)filter->data;
+
171 for (int m = 0 ; m < filter->size_y ; m++) {
+
172 for (int n = 0 ; n < filter->size_x ; n++) {
+
173 acc += i_data[i_pos_x + n * in_image->step_x] * f_data[filter->step_x * n];
+
174 }
+
175 f_data += f_step;
+
176 i_pos_x += i_step;
+
177 }
+
178 i_pos_y += in_image->step_x;
+
179 out_data[x * out_image->step_x + y * out_image->stride_x * out_image->step_y] = acc;
+
180 }
+
181 i_pos += in_image->stride_x * in_image->step_y;
+
182 }
+
183 return ESP_OK;
+
184}
+
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_conv_f32_ansi(const image2d_t *in_image, const image2d_t *filter, image2d_t *out_image)
2D Convolution
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
int stride_x
Definition dsp_types.h:28
+
int size_x
Definition dsp_types.h:32
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
int size_y
Definition dsp_types.h:33
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod_8h.html b/docs/html/dspi__dotprod_8h.html new file mode 100644 index 0000000..c9dc028 --- /dev/null +++ b/docs/html/dspi__dotprod_8h.html @@ -0,0 +1,1726 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod.h File Reference
+
+
+
#include "esp_log.h"
+#include "dsp_err.h"
+#include "dsp_types.h"
+#include "dspi_dotprod_platform.h"
+
+Include dependency graph for dspi_dotprod.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dspi_dotprod_f32_ansi (image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y)
 dot product of two images Dot product calculation for two floating point images: out_value += image[i...] * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
esp_err_t dspi_dotprod_s16_ansi (image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift)
 dot product of two images Dot product calculation for two floating point images: out_value += image[i...] * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
esp_err_t dspi_dotprod_u16_ansi (image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_s8_ansi (image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_u8_ansi (image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_s16_aes3 (image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_u16_aes3 (image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_s8_aes3 (image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_u8_aes3 (image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_s16_arp4 (image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_s8_arp4 (image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_u16_arp4 (image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_u8_arp4 (image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift)
esp_err_t dspi_dotprod_off_f32_ansi (image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y, float offset)
 dot product of two images with input offset Dot product calculation for two floating point images: out_value += (image[i...] + offset) * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
esp_err_t dspi_dotprod_off_s16_ansi (image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset)
 dot product of two images with input offset Dot product calculation for two floating point images: out_value += (image[i...] + offset) * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
esp_err_t dspi_dotprod_off_u16_ansi (image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset)
esp_err_t dspi_dotprod_off_s8_ansi (image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset)
esp_err_t dspi_dotprod_off_u8_ansi (image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset)
esp_err_t dspi_dotprod_off_s16_aes3 (image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset)
esp_err_t dspi_dotprod_off_u16_aes3 (image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset)
esp_err_t dspi_dotprod_off_s8_aes3 (image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset)
esp_err_t dspi_dotprod_off_u8_aes3 (image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset)
esp_err_t dspi_dotprod_off_s16_arp4 (image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset)
esp_err_t dspi_dotprod_off_u16_arp4 (image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset)
esp_err_t dspi_dotprod_off_s8_arp4 (image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset)
esp_err_t dspi_dotprod_off_u8_arp4 (image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset)
+

Function Documentation

+ +

◆ dspi_dotprod_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_f32_ansi (image2d_t * in_image,
image2d_t * filter,
float * out_value,
int count_x,
int count_y )
+
+ +

dot product of two images Dot product calculation for two floating point images: out_value += image[i...] * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + +
[in]in_imagedescriptor of the image
[in]filterdescriptor of the filter
[out]out_valuepointer to the output value
[in]count_xamount of samples by X axis (count_x*step_X <= widdth)
[in]count_yamount of samples by Y axis (count_y*step_Y <= height)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dspi_dotprod_f32_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 float *i_data = (float *)in_image->data;
+
33 float *f_data = (float *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 float acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += i_data[in_image->step_x * x] * f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 *out_value = acc;
+
46 return ESP_OK;
+
47}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_off_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_f32_ansi (image2d_t * in_image,
image2d_t * filter,
float * out_value,
int count_x,
int count_y,
float offset )
+
+ +

dot product of two images with input offset Dot product calculation for two floating point images: out_value += (image[i...] + offset) * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + +
[in]in_imagedescriptor of the image
[in]filterdescriptor of the filter
[out]out_valuepointer to the output value
[in]count_xamount of samples by X axis (count_x*step_X <= widdth)
[in]count_yamount of samples by Y axis (count_y*step_Y <= height)
[in]offset- input offset value.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dspi_dotprod_off_f32_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 float *i_data = (float *)in_image->data;
+
33 float *f_data = (float *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 float acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += i_data[in_image->step_x * x] * (f_data[filter->step_x * x] + offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 *out_value = acc;
+
46 return ESP_OK;
+
47}
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_off_s16_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_s16_aes3 (image2d_t * in_image,
image2d_t * filter,
int16_t * out_value,
int count_x,
int count_y,
int shift,
int16_t offset )
+
+ +
+
+ +

◆ dspi_dotprod_off_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_s16_ansi (image2d_t * in_image,
image2d_t * filter,
int16_t * out_value,
int count_x,
int count_y,
int shift,
int16_t offset )
+
+ +

dot product of two images with input offset Dot product calculation for two floating point images: out_value += (image[i...] + offset) * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + + +
[in]in_imagedescriptor of the image
[in]filterdescriptor of the filter
[out]out_valuepointer to the output value
[in]count_xamount of samples by X axis (count_x*step_X <= widdth)
[in]count_yamount of samples by Y axis (count_y*step_Y <= height)
[in]shift- result shift to right, by default must be 15 for int16_t or 7 for int8_t
[in]offset- input offset value.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dspi_dotprod_off_s16_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int16_t *i_data = (int16_t *)in_image->data;
+
33 int16_t *f_data = (int16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * ((int32_t)f_data[filter->step_x * x] + (int32_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_off_s16_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_s16_arp4 (image2d_t * in_image,
image2d_t * filter,
int16_t * out_value,
int count_x,
int count_y,
int shift,
int16_t offset )
+
+ +
+
+ +

◆ dspi_dotprod_off_s8_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_s8_aes3 (image2d_t * in_image,
image2d_t * filter,
int8_t * out_value,
int count_x,
int count_y,
int shift,
int8_t offset )
+
+ +
+
+ +

◆ dspi_dotprod_off_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_s8_ansi (image2d_t * in_image,
image2d_t * filter,
int8_t * out_value,
int count_x,
int count_y,
int shift,
int8_t offset )
+
+ +

Definition at line 17 of file dspi_dotprod_off_s8_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int8_t *i_data = (int8_t *)in_image->data;
+
33 int8_t *f_data = (int8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * ((int16_t)f_data[filter->step_x * x] + (int16_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_off_s8_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_s8_arp4 (image2d_t * in_image,
image2d_t * filter,
int8_t * out_value,
int count_x,
int count_y,
int shift,
int8_t offset )
+
+ +
+
+ +

◆ dspi_dotprod_off_u16_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_u16_aes3 (image2d_t * in_image,
image2d_t * filter,
uint16_t * out_value,
int count_x,
int count_y,
int shift,
uint16_t offset )
+
+ +
+
+ +

◆ dspi_dotprod_off_u16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_u16_ansi (image2d_t * in_image,
image2d_t * filter,
uint16_t * out_value,
int count_x,
int count_y,
int shift,
uint16_t offset )
+
+ +

Definition at line 17 of file dspi_dotprod_off_u16_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint16_t *i_data = (uint16_t *)in_image->data;
+
33 uint16_t *f_data = (uint16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * ((int32_t)f_data[filter->step_x * x] + (int32_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_off_u16_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_u16_arp4 (image2d_t * in_image,
image2d_t * filter,
uint16_t * out_value,
int count_x,
int count_y,
int shift,
uint16_t offset )
+
+ +
+
+ +

◆ dspi_dotprod_off_u8_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_u8_aes3 (image2d_t * in_image,
image2d_t * filter,
uint8_t * out_value,
int count_x,
int count_y,
int shift,
uint8_t offset )
+
+ +
+
+ +

◆ dspi_dotprod_off_u8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_u8_ansi (image2d_t * in_image,
image2d_t * filter,
uint8_t * out_value,
int count_x,
int count_y,
int shift,
uint8_t offset )
+
+ +

Definition at line 17 of file dspi_dotprod_off_u8_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint8_t *i_data = (uint8_t *)in_image->data;
+
33 uint8_t *f_data = (uint8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * ((int16_t)f_data[filter->step_x * x] + (int16_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_off_u8_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_u8_arp4 (image2d_t * in_image,
image2d_t * filter,
uint8_t * out_value,
int count_x,
int count_y,
int shift,
uint8_t offset )
+
+ +
+
+ +

◆ dspi_dotprod_s16_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_s16_aes3 (image2d_t * in_image,
image2d_t * filter,
int16_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +
+
+ +

◆ dspi_dotprod_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_s16_ansi (image2d_t * in_image,
image2d_t * filter,
int16_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +

dot product of two images Dot product calculation for two floating point images: out_value += image[i...] * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + +
[in]in_imagedescriptor of the image
[in]filterdescriptor of the filter
[out]out_valuepointer to the output value
[in]count_xamount of samples by X axis (count_x*step_X <= widdth)
[in]count_yamount of samples by Y axis (count_y*step_Y <= height)
[in]shift- result shift to right, by default must be 15 for int16_t or 7 for int8_t
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dspi_dotprod_s16_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int16_t *i_data = (int16_t *)in_image->data;
+
33 int16_t *f_data = (int16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * (int32_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_s16_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_s16_arp4 (image2d_t * in_image,
image2d_t * filter,
int16_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +
+
+ +

◆ dspi_dotprod_s8_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_s8_aes3 (image2d_t * in_image,
image2d_t * filter,
int8_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +
+
+ +

◆ dspi_dotprod_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_s8_ansi (image2d_t * in_image,
image2d_t * filter,
int8_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +

Definition at line 17 of file dspi_dotprod_s8_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int8_t *i_data = (int8_t *)in_image->data;
+
33 int8_t *f_data = (int8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * (int16_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_s8_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_s8_arp4 (image2d_t * in_image,
image2d_t * filter,
int8_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +
+
+ +

◆ dspi_dotprod_u16_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_u16_aes3 (image2d_t * in_image,
image2d_t * filter,
uint16_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +
+
+ +

◆ dspi_dotprod_u16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_u16_ansi (image2d_t * in_image,
image2d_t * filter,
uint16_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +

Definition at line 17 of file dspi_dotprod_u16_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint16_t *i_data = (uint16_t *)in_image->data;
+
33 uint16_t *f_data = (uint16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * (int32_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_u16_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_u16_arp4 (image2d_t * in_image,
image2d_t * filter,
uint16_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +
+
+ +

◆ dspi_dotprod_u8_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_u8_aes3 (image2d_t * in_image,
image2d_t * filter,
uint8_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +
+
+ +

◆ dspi_dotprod_u8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_u8_ansi (image2d_t * in_image,
image2d_t * filter,
uint8_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +

Definition at line 17 of file dspi_dotprod_u8_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint8_t *i_data = (uint8_t *)in_image->data;
+
33 uint8_t *f_data = (uint8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * (int16_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+ +

◆ dspi_dotprod_u8_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_u8_arp4 (image2d_t * in_image,
image2d_t * filter,
uint8_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod_8h.js b/docs/html/dspi__dotprod_8h.js new file mode 100644 index 0000000..900b966 --- /dev/null +++ b/docs/html/dspi__dotprod_8h.js @@ -0,0 +1,29 @@ +var dspi__dotprod_8h = +[ + [ "dspi_dotprod_f32_ansi", "dspi__dotprod_8h.html#a0ba056f793df7ddda6ccec2531315448", null ], + [ "dspi_dotprod_off_f32_ansi", "dspi__dotprod_8h.html#a9a4b9f20f6b1446bd75e57ddd64d91dc", null ], + [ "dspi_dotprod_off_s16_aes3", "dspi__dotprod_8h.html#a01a28bc5b5b3083685e6761f0e2fcc1d", null ], + [ "dspi_dotprod_off_s16_ansi", "dspi__dotprod_8h.html#afa617e2e6cfb2bc27a1136c056bdcd26", null ], + [ "dspi_dotprod_off_s16_arp4", "dspi__dotprod_8h.html#a723fd346ab49ae06f7b4556771d428da", null ], + [ "dspi_dotprod_off_s8_aes3", "dspi__dotprod_8h.html#a5c2c49e3dcc46b1de8d00c12efe2c62c", null ], + [ "dspi_dotprod_off_s8_ansi", "dspi__dotprod_8h.html#a0416e9042f183a42d1a6ac40e9413478", null ], + [ "dspi_dotprod_off_s8_arp4", "dspi__dotprod_8h.html#a3c53b2a81f4df5a7fd3e0aa874c51e70", null ], + [ "dspi_dotprod_off_u16_aes3", "dspi__dotprod_8h.html#a6f192a066b8cdcbdf13a9dca4e562c39", null ], + [ "dspi_dotprod_off_u16_ansi", "dspi__dotprod_8h.html#ad333a0fe6b4ea01333b210ec84be3248", null ], + [ "dspi_dotprod_off_u16_arp4", "dspi__dotprod_8h.html#af42f6569c291263cea50870055ca4631", null ], + [ "dspi_dotprod_off_u8_aes3", "dspi__dotprod_8h.html#acc48310824443257b2f2b705982d0ee8", null ], + [ "dspi_dotprod_off_u8_ansi", "dspi__dotprod_8h.html#ab3262bb41d0d7d2adef89693dc03dda6", null ], + [ "dspi_dotprod_off_u8_arp4", "dspi__dotprod_8h.html#a4ca3d3dab38e90ac3cdb38b8439531e5", null ], + [ "dspi_dotprod_s16_aes3", "dspi__dotprod_8h.html#a704dad25c696df9635b4438a702e2760", null ], + [ "dspi_dotprod_s16_ansi", "dspi__dotprod_8h.html#a122031585019ec0898f187aa5f70f781", null ], + [ "dspi_dotprod_s16_arp4", "dspi__dotprod_8h.html#a02da023fe8033b66a508ddecc6cc90c6", null ], + [ "dspi_dotprod_s8_aes3", "dspi__dotprod_8h.html#aef24fefaf266d2d1b14f8df1c87744a8", null ], + [ "dspi_dotprod_s8_ansi", "dspi__dotprod_8h.html#a4e6e12a18571df9267462df574175e3e", null ], + [ "dspi_dotprod_s8_arp4", "dspi__dotprod_8h.html#a3671402eba79bb836e202c54b0514339", null ], + [ "dspi_dotprod_u16_aes3", "dspi__dotprod_8h.html#aafa8b55674237256d8ca97521e20e418", null ], + [ "dspi_dotprod_u16_ansi", "dspi__dotprod_8h.html#afc46eca733aeb7bf7646755d5dabdedf", null ], + [ "dspi_dotprod_u16_arp4", "dspi__dotprod_8h.html#a9c5fa6f2ec414091f0da7ac89e86d724", null ], + [ "dspi_dotprod_u8_aes3", "dspi__dotprod_8h.html#aa2d2baebd37a94fea41e45ee5007d444", null ], + [ "dspi_dotprod_u8_ansi", "dspi__dotprod_8h.html#a7b81101060b40dfebfe5e11b987f20f4", null ], + [ "dspi_dotprod_u8_arp4", "dspi__dotprod_8h.html#a9180bfbd15266884f13628886ba2d728", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod_8h__dep__incl.md5 b/docs/html/dspi__dotprod_8h__dep__incl.md5 new file mode 100644 index 0000000..1a94ca8 --- /dev/null +++ b/docs/html/dspi__dotprod_8h__dep__incl.md5 @@ -0,0 +1 @@ +be239403f70a95d363b8d8eb734ee8c2 \ No newline at end of file diff --git a/docs/html/dspi__dotprod_8h__dep__incl.svg b/docs/html/dspi__dotprod_8h__dep__incl.svg new file mode 100644 index 0000000..2fcef72 --- /dev/null +++ b/docs/html/dspi__dotprod_8h__dep__incl.svg @@ -0,0 +1,901 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspi_dotprod.h + + +Node1 + + +dspi_dotprod.h + + + + + +Node2 + + +dspi_dotprod_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dspi_dotprod_s16_ansi.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspi_dotprod_s8_ansi.c + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspi_dotprod_u16_ansi.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dspi_dotprod_u8_ansi.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_dsp.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +3d_graphics_demo.cpp + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node12->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node12->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node12->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node12->Node18 + + + + + + + + +Node19 + + +3d_kalman_demo.cpp + + + + + +Node12->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node12->Node20 + + + + + + + + +Node21 + + +audio_amp_main.c + + + + + +Node12->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node12->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node12->Node23 + + + + + + + + +Node24 + + +dsp_tests.h + + + + + +Node12->Node24 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node12->Node31 + + + + + + + + +Node33 + + +graphics_support.h + + + + + +Node12->Node33 + + + + + + + + +Node35 + + +graphics_support.h + + + + + +Node12->Node35 + + + + + + + + +Node37 + + +init_display.c + + + + + +Node12->Node37 + + + + + + + + +Node38 + + +init_display.c + + + + + +Node12->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node12->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node12->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node12->Node41 + + + + + + + + +Node42 + + +kalman_filter_demo.cpp + + + + + +Node12->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node12->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node12->Node44 + + + + + + + + +Node45 + + +main.c + + + + + +Node12->Node45 + + + + + + + + +Node25 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +dsps_fird_init_s16.c + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +dsps_firmr_f32_ansi.c + + + + + +Node24->Node27 + + + + + + + + +Node28 + + +dsps_firmr_init_f32.c + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +dsps_firmr_init_s16.c + + + + + +Node24->Node29 + + + + + + + + +Node30 + + +dsps_firmr_s16_ansi.c + + + + + +Node24->Node30 + + + + + + + + +Node32 + + +graphics_support.cpp + + + + + +Node31->Node32 + + + + + + + + +Node34 + + +graphics_support.cpp + + + + + +Node33->Node34 + + + + + + + + +Node36 + + +graphics_support.cpp + + + + + +Node35->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod_8h__dep__incl_org.svg b/docs/html/dspi__dotprod_8h__dep__incl_org.svg new file mode 100644 index 0000000..721554b --- /dev/null +++ b/docs/html/dspi__dotprod_8h__dep__incl_org.svg @@ -0,0 +1,818 @@ + + + + + + +dspi_dotprod.h + + +Node1 + + +dspi_dotprod.h + + + + + +Node2 + + +dspi_dotprod_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dspi_dotprod_s16_ansi.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspi_dotprod_s8_ansi.c + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspi_dotprod_u16_ansi.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dspi_dotprod_u8_ansi.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_dsp.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +3d_graphics_demo.cpp + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node12->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node12->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node12->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node12->Node18 + + + + + + + + +Node19 + + +3d_kalman_demo.cpp + + + + + +Node12->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node12->Node20 + + + + + + + + +Node21 + + +audio_amp_main.c + + + + + +Node12->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node12->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node12->Node23 + + + + + + + + +Node24 + + +dsp_tests.h + + + + + +Node12->Node24 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node12->Node31 + + + + + + + + +Node33 + + +graphics_support.h + + + + + +Node12->Node33 + + + + + + + + +Node35 + + +graphics_support.h + + + + + +Node12->Node35 + + + + + + + + +Node37 + + +init_display.c + + + + + +Node12->Node37 + + + + + + + + +Node38 + + +init_display.c + + + + + +Node12->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node12->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node12->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node12->Node41 + + + + + + + + +Node42 + + +kalman_filter_demo.cpp + + + + + +Node12->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node12->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node12->Node44 + + + + + + + + +Node45 + + +main.c + + + + + +Node12->Node45 + + + + + + + + +Node25 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +dsps_fird_init_s16.c + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +dsps_firmr_f32_ansi.c + + + + + +Node24->Node27 + + + + + + + + +Node28 + + +dsps_firmr_init_f32.c + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +dsps_firmr_init_s16.c + + + + + +Node24->Node29 + + + + + + + + +Node30 + + +dsps_firmr_s16_ansi.c + + + + + +Node24->Node30 + + + + + + + + +Node32 + + +graphics_support.cpp + + + + + +Node31->Node32 + + + + + + + + +Node34 + + +graphics_support.cpp + + + + + +Node33->Node34 + + + + + + + + +Node36 + + +graphics_support.cpp + + + + + +Node35->Node36 + + + + + + + + diff --git a/docs/html/dspi__dotprod_8h__incl.md5 b/docs/html/dspi__dotprod_8h__incl.md5 new file mode 100644 index 0000000..02260e6 --- /dev/null +++ b/docs/html/dspi__dotprod_8h__incl.md5 @@ -0,0 +1 @@ +05f2f996b383b9a849661f20a05bafa2 \ No newline at end of file diff --git a/docs/html/dspi__dotprod_8h__incl.svg b/docs/html/dspi__dotprod_8h__incl.svg new file mode 100644 index 0000000..195b72e --- /dev/null +++ b/docs/html/dspi__dotprod_8h__incl.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + +dspi_dotprod.h + + +Node1 + + +dspi_dotprod.h + + + + + +Node2 + + +esp_log.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsp_err.h + + + + + +Node1->Node4 + + + + + + + + +Node8 + + +dsp_types.h + + + + + +Node1->Node8 + + + + + + + + +Node11 + + +dspi_dotprod_platform.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +stdlib.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node4->Node7 + + + + + + + + +Node6->Node3 + + + + + + + + +Node8->Node5 + + + + + + + + +Node9 + + +stdbool.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +inttypes.h + + + + + +Node8->Node10 + + + + + + + + +Node12 + + +sdkconfig.h + + + + + +Node11->Node12 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod_8h__incl_org.svg b/docs/html/dspi__dotprod_8h__incl_org.svg new file mode 100644 index 0000000..caa3551 --- /dev/null +++ b/docs/html/dspi__dotprod_8h__incl_org.svg @@ -0,0 +1,237 @@ + + + + + + +dspi_dotprod.h + + +Node1 + + +dspi_dotprod.h + + + + + +Node2 + + +esp_log.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsp_err.h + + + + + +Node1->Node4 + + + + + + + + +Node8 + + +dsp_types.h + + + + + +Node1->Node8 + + + + + + + + +Node11 + + +dspi_dotprod_platform.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +stdlib.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node4->Node7 + + + + + + + + +Node6->Node3 + + + + + + + + +Node8->Node5 + + + + + + + + +Node9 + + +stdbool.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +inttypes.h + + + + + +Node8->Node10 + + + + + + + + +Node12 + + +sdkconfig.h + + + + + +Node11->Node12 + + + + + + + + diff --git a/docs/html/dspi__dotprod_8h_source.html b/docs/html/dspi__dotprod_8h_source.html new file mode 100644 index 0000000..189ff8c --- /dev/null +++ b/docs/html/dspi__dotprod_8h_source.html @@ -0,0 +1,257 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod.h
+
+
+Go to the documentation of this file.
1
+
2// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
3//
+
4// Licensed under the Apache License, Version 2.0 (the "License");
+
5// you may not use this file except in compliance with the License.
+
6// You may obtain a copy of the License at
+
7//
+
8// http://www.apache.org/licenses/LICENSE-2.0
+
9//
+
10// Unless required by applicable law or agreed to in writing, software
+
11// distributed under the License is distributed on an "AS IS" BASIS,
+
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
13// See the License for the specific language governing permissions and
+
14// limitations under the License.
+
15
+
16
+
17#ifndef _dspi_dotprod_H_
+
18#define _dspi_dotprod_H_
+
19
+
20#include "esp_log.h"
+
21#include "dsp_err.h"
+
22#include "dsp_types.h"
+ +
24
+
25#ifdef __cplusplus
+
26extern "C"
+
27{
+
28#endif
+
29
+
46esp_err_t dspi_dotprod_f32_ansi(image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y);
+
48
+
66esp_err_t dspi_dotprod_s16_ansi(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift);
+
67esp_err_t dspi_dotprod_u16_ansi(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift);
+
68esp_err_t dspi_dotprod_s8_ansi(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift);
+
69esp_err_t dspi_dotprod_u8_ansi(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift);
+
70
+
71esp_err_t dspi_dotprod_s16_aes3(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift);
+
72esp_err_t dspi_dotprod_u16_aes3(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift);
+
73esp_err_t dspi_dotprod_s8_aes3(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift);
+
74esp_err_t dspi_dotprod_u8_aes3(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift);
+
75
+
76esp_err_t dspi_dotprod_s16_arp4(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift);
+
77esp_err_t dspi_dotprod_s8_arp4(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift);
+
78esp_err_t dspi_dotprod_u16_arp4(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift);
+
79esp_err_t dspi_dotprod_u8_arp4(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift);
+
80
+
81
+
83
+
101esp_err_t dspi_dotprod_off_f32_ansi(image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y, float offset);
+
103
+
122esp_err_t dspi_dotprod_off_s16_ansi(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset);
+
123esp_err_t dspi_dotprod_off_u16_ansi(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset);
+
124esp_err_t dspi_dotprod_off_s8_ansi(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset);
+
125esp_err_t dspi_dotprod_off_u8_ansi(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset);
+
126
+
127esp_err_t dspi_dotprod_off_s16_aes3(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset);
+
128esp_err_t dspi_dotprod_off_u16_aes3(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset);
+
129esp_err_t dspi_dotprod_off_s8_aes3(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset);
+
130esp_err_t dspi_dotprod_off_u8_aes3(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset);
+
131
+
132esp_err_t dspi_dotprod_off_s16_arp4(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset);
+
133esp_err_t dspi_dotprod_off_u16_arp4(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset);
+
134esp_err_t dspi_dotprod_off_s8_arp4(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset);
+
135esp_err_t dspi_dotprod_off_u8_arp4(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset);
+
136
+
138
+
139
+
140#ifdef __cplusplus
+
141}
+
142#endif
+
143
+
144
+
145#ifdef CONFIG_DSP_OPTIMIZED
+
146#define dspi_dotprod_f32 dspi_dotprod_f32_ansi
+
147#define dspi_dotprod_off_f32 dspi_dotprod_off_f32_ansi
+
148#if (dspi_dotprod_aes3_enabled == 1)
+
149#define dspi_dotprod_s16 dspi_dotprod_s16_aes3
+
150#define dspi_dotprod_u16 dspi_dotprod_u16_aes3
+
151#define dspi_dotprod_s8 dspi_dotprod_s8_aes3
+
152#define dspi_dotprod_u8 dspi_dotprod_u8_aes3
+
153#define dspi_dotprod_off_s16 dspi_dotprod_off_s16_aes3
+
154#define dspi_dotprod_off_s8 dspi_dotprod_off_s8_aes3
+
155#define dspi_dotprod_off_u16 dspi_dotprod_off_u16_aes3
+
156#define dspi_dotprod_off_u8 dspi_dotprod_off_u8_aes3
+
157#elif (dspi_dotprod_arp4_enabled == 1)
+
158#define dspi_dotprod_s16 dspi_dotprod_s16_arp4
+
159#define dspi_dotprod_s8 dspi_dotprod_s8_arp4
+
160#define dspi_dotprod_u16 dspi_dotprod_u16_arp4
+
161#define dspi_dotprod_u8 dspi_dotprod_u8_arp4
+
162#define dspi_dotprod_off_s16 dspi_dotprod_off_s16_arp4
+
163#define dspi_dotprod_off_s8 dspi_dotprod_off_s8_arp4
+
164#define dspi_dotprod_off_u16 dspi_dotprod_off_u16_arp4
+
165#define dspi_dotprod_off_u8 dspi_dotprod_off_u8_arp4
+
166#else
+
167#define dspi_dotprod_s16 dspi_dotprod_s16_ansi
+
168#define dspi_dotprod_s8 dspi_dotprod_s8_ansi
+
169#define dspi_dotprod_u16 dspi_dotprod_u16_ansi
+
170#define dspi_dotprod_u8 dspi_dotprod_u8_ansi
+
171#define dspi_dotprod_off_s16 dspi_dotprod_off_s16_ansi
+
172#define dspi_dotprod_off_s8 dspi_dotprod_off_s8_ansi
+
173#define dspi_dotprod_off_u16 dspi_dotprod_off_u16_ansi
+
174#define dspi_dotprod_off_u8 dspi_dotprod_off_u8_ansi
+
175#endif
+
176#endif
+
177#ifdef CONFIG_DSP_ANSI
+
178#define dspi_dotprod_f32 dspi_dotprod_f32_ansi
+
179#define dspi_dotprod_off_f32 dspi_dotprod_off_f32_ansi
+
180#define dspi_dotprod_s16 dspi_dotprod_s16_ansi
+
181#define dspi_dotprod_s8 dspi_dotprod_s8_ansi
+
182#define dspi_dotprod_off_s16 dspi_dotprod_off_s16_ansi
+
183#define dspi_dotprod_off_s8 dspi_dotprod_off_s8_ansi
+
184#define dspi_dotprod_u16 dspi_dotprod_u16_ansi
+
185#define dspi_dotprod_u8 dspi_dotprod_u8_ansi
+
186#define dspi_dotprod_off_u16 dspi_dotprod_off_u16_ansi
+
187#define dspi_dotprod_off_u8 dspi_dotprod_off_u8_ansi
+
188#endif
+
189
+
190
+
191#endif // _dspi_dotprod_H_
+ + +
struct image2d_s image2d_t
+
esp_err_t dspi_dotprod_off_s16_aes3(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset)
+
esp_err_t dspi_dotprod_s16_arp4(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_off_s8_ansi(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset)
+
esp_err_t dspi_dotprod_f32_ansi(image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y)
dot product of two images Dot product calculation for two floating point images: out_value += image[i...
+
esp_err_t dspi_dotprod_s16_ansi(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift)
dot product of two images Dot product calculation for two floating point images: out_value += image[i...
+
esp_err_t dspi_dotprod_s8_arp4(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_off_s8_arp4(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset)
+
esp_err_t dspi_dotprod_off_u8_arp4(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset)
+
esp_err_t dspi_dotprod_s8_ansi(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_off_s8_aes3(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset)
+
esp_err_t dspi_dotprod_off_u16_aes3(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset)
+
esp_err_t dspi_dotprod_s16_aes3(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_off_s16_arp4(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset)
+
esp_err_t dspi_dotprod_u8_ansi(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_u8_arp4(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_off_f32_ansi(image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y, float offset)
dot product of two images with input offset Dot product calculation for two floating point images: ou...
+
esp_err_t dspi_dotprod_u16_arp4(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_u8_aes3(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_u16_aes3(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_off_u8_ansi(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset)
+
esp_err_t dspi_dotprod_off_u8_aes3(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset)
+
esp_err_t dspi_dotprod_off_u16_ansi(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset)
+
esp_err_t dspi_dotprod_s8_aes3(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift)
+
esp_err_t dspi_dotprod_off_u16_arp4(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset)
+
esp_err_t dspi_dotprod_off_s16_ansi(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset)
dot product of two images with input offset Dot product calculation for two floating point images: ou...
+
esp_err_t dspi_dotprod_u16_ansi(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift)
+ +
int esp_err_t
Definition esp_err.h:21
+ +
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__f32__ansi_8c.html b/docs/html/dspi__dotprod__f32__ansi_8c.html new file mode 100644 index 0000000..a8107b6 --- /dev/null +++ b/docs/html/dspi__dotprod__f32__ansi_8c.html @@ -0,0 +1,224 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_f32_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspi_dotprod_f32_ansi (image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y)
 dot product of two images Dot product calculation for two floating point images: out_value += image[i...] * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
+

Function Documentation

+ +

◆ dspi_dotprod_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_f32_ansi (image2d_t * in_image,
image2d_t * filter,
float * out_value,
int count_x,
int count_y )
+
+ +

dot product of two images Dot product calculation for two floating point images: out_value += image[i...] * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + +
[in]in_imagedescriptor of the image
[in]filterdescriptor of the filter
[out]out_valuepointer to the output value
[in]count_xamount of samples by X axis (count_x*step_X <= widdth)
[in]count_yamount of samples by Y axis (count_y*step_Y <= height)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dspi_dotprod_f32_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 float *i_data = (float *)in_image->data;
+
33 float *f_data = (float *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 float acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += i_data[in_image->step_x * x] * f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 *out_value = acc;
+
46 return ESP_OK;
+
47}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__f32__ansi_8c.js b/docs/html/dspi__dotprod__f32__ansi_8c.js new file mode 100644 index 0000000..9b95e84 --- /dev/null +++ b/docs/html/dspi__dotprod__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__f32__ansi_8c = +[ + [ "dspi_dotprod_f32_ansi", "dspi__dotprod__f32__ansi_8c.html#a0ba056f793df7ddda6ccec2531315448", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__f32__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..f53776c --- /dev/null +++ b/docs/html/dspi__dotprod__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +e529fd8712ca2cd565d5c309789c3887 \ No newline at end of file diff --git a/docs/html/dspi__dotprod__f32__ansi_8c__incl.svg b/docs/html/dspi__dotprod__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..303a27f --- /dev/null +++ b/docs/html/dspi__dotprod__f32__ansi_8c__incl.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + +dspi_dotprod_f32_ansi.c + + +Node1 + + +dspi_dotprod_f32_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__f32__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..e311ac7 --- /dev/null +++ b/docs/html/dspi__dotprod__f32__ansi_8c__incl_org.svg @@ -0,0 +1,255 @@ + + + + + + +dspi_dotprod_f32_ansi.c + + +Node1 + + +dspi_dotprod_f32_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__f32__ansi_8c_source.html b/docs/html/dspi__dotprod__f32__ansi_8c_source.html new file mode 100644 index 0000000..7c87cf3 --- /dev/null +++ b/docs/html/dspi__dotprod__f32__ansi_8c_source.html @@ -0,0 +1,168 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_f32_ansi(image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 float *i_data = (float *)in_image->data;
+
33 float *f_data = (float *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 float acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += i_data[in_image->step_x * x] * f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 *out_value = acc;
+
46 return ESP_OK;
+
47}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_f32_ansi(image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y)
dot product of two images Dot product calculation for two floating point images: out_value += image[i...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__off__f32__ansi_8c.html b/docs/html/dspi__dotprod__off__f32__ansi_8c.html new file mode 100644 index 0000000..cfb5128 --- /dev/null +++ b/docs/html/dspi__dotprod__off__f32__ansi_8c.html @@ -0,0 +1,230 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_f32_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_off_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspi_dotprod_off_f32_ansi (image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y, float offset)
 dot product of two images with input offset Dot product calculation for two floating point images: out_value += (image[i...] + offset) * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
+

Function Documentation

+ +

◆ dspi_dotprod_off_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_f32_ansi (image2d_t * in_image,
image2d_t * filter,
float * out_value,
int count_x,
int count_y,
float offset )
+
+ +

dot product of two images with input offset Dot product calculation for two floating point images: out_value += (image[i...] + offset) * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + +
[in]in_imagedescriptor of the image
[in]filterdescriptor of the filter
[out]out_valuepointer to the output value
[in]count_xamount of samples by X axis (count_x*step_X <= widdth)
[in]count_yamount of samples by Y axis (count_y*step_Y <= height)
[in]offset- input offset value.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dspi_dotprod_off_f32_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 float *i_data = (float *)in_image->data;
+
33 float *f_data = (float *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 float acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += i_data[in_image->step_x * x] * (f_data[filter->step_x * x] + offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 *out_value = acc;
+
46 return ESP_OK;
+
47}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__off__f32__ansi_8c.js b/docs/html/dspi__dotprod__off__f32__ansi_8c.js new file mode 100644 index 0000000..65f3f9e --- /dev/null +++ b/docs/html/dspi__dotprod__off__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__off__f32__ansi_8c = +[ + [ "dspi_dotprod_off_f32_ansi", "dspi__dotprod__off__f32__ansi_8c.html#a9a4b9f20f6b1446bd75e57ddd64d91dc", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__f32__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__off__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..750e557 --- /dev/null +++ b/docs/html/dspi__dotprod__off__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +d0e764545d28a012eac4bf947af9b9df \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__f32__ansi_8c__incl.svg b/docs/html/dspi__dotprod__off__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..5e7a335 --- /dev/null +++ b/docs/html/dspi__dotprod__off__f32__ansi_8c__incl.svg @@ -0,0 +1,282 @@ + + + + + + + + + + + + +dspi_dotprod_off_f32_ansi.c + + +Node1 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__f32__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__off__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..4527381 --- /dev/null +++ b/docs/html/dspi__dotprod__off__f32__ansi_8c__incl_org.svg @@ -0,0 +1,256 @@ + + + + + + +dspi_dotprod_off_f32_ansi.c + + +Node1 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__f32__ansi_8c_source.html b/docs/html/dspi__dotprod__off__f32__ansi_8c_source.html new file mode 100644 index 0000000..d0997d2 --- /dev/null +++ b/docs/html/dspi__dotprod__off__f32__ansi_8c_source.html @@ -0,0 +1,168 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_off_f32_ansi(image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y, float offset)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 float *i_data = (float *)in_image->data;
+
33 float *f_data = (float *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 float acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += i_data[in_image->step_x * x] * (f_data[filter->step_x * x] + offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 *out_value = acc;
+
46 return ESP_OK;
+
47}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_off_f32_ansi(image2d_t *in_image, image2d_t *filter, float *out_value, int count_x, int count_y, float offset)
dot product of two images with input offset Dot product calculation for two floating point images: ou...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__off__s16__ansi_8c.html b/docs/html/dspi__dotprod__off__s16__ansi_8c.html new file mode 100644 index 0000000..52e7dfc --- /dev/null +++ b/docs/html/dspi__dotprod__off__s16__ansi_8c.html @@ -0,0 +1,238 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_s16_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_off_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspi_dotprod_off_s16_ansi (image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset)
 dot product of two images with input offset Dot product calculation for two floating point images: out_value += (image[i...] + offset) * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
+

Function Documentation

+ +

◆ dspi_dotprod_off_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_s16_ansi (image2d_t * in_image,
image2d_t * filter,
int16_t * out_value,
int count_x,
int count_y,
int shift,
int16_t offset )
+
+ +

dot product of two images with input offset Dot product calculation for two floating point images: out_value += (image[i...] + offset) * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + + +
[in]in_imagedescriptor of the image
[in]filterdescriptor of the filter
[out]out_valuepointer to the output value
[in]count_xamount of samples by X axis (count_x*step_X <= widdth)
[in]count_yamount of samples by Y axis (count_y*step_Y <= height)
[in]shift- result shift to right, by default must be 15 for int16_t or 7 for int8_t
[in]offset- input offset value.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dspi_dotprod_off_s16_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int16_t *i_data = (int16_t *)in_image->data;
+
33 int16_t *f_data = (int16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * ((int32_t)f_data[filter->step_x * x] + (int32_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__off__s16__ansi_8c.js b/docs/html/dspi__dotprod__off__s16__ansi_8c.js new file mode 100644 index 0000000..7306253 --- /dev/null +++ b/docs/html/dspi__dotprod__off__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__off__s16__ansi_8c = +[ + [ "dspi_dotprod_off_s16_ansi", "dspi__dotprod__off__s16__ansi_8c.html#afa617e2e6cfb2bc27a1136c056bdcd26", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__s16__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__off__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..a6b80d6 --- /dev/null +++ b/docs/html/dspi__dotprod__off__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +28b94db48316695fce66447354bdadb4 \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__s16__ansi_8c__incl.svg b/docs/html/dspi__dotprod__off__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..e083ad4 --- /dev/null +++ b/docs/html/dspi__dotprod__off__s16__ansi_8c__incl.svg @@ -0,0 +1,282 @@ + + + + + + + + + + + + +dspi_dotprod_off_s16_ansi.c + + +Node1 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__s16__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__off__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..fc9698f --- /dev/null +++ b/docs/html/dspi__dotprod__off__s16__ansi_8c__incl_org.svg @@ -0,0 +1,256 @@ + + + + + + +dspi_dotprod_off_s16_ansi.c + + +Node1 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__s16__ansi_8c_source.html b/docs/html/dspi__dotprod__off__s16__ansi_8c_source.html new file mode 100644 index 0000000..ad38d57 --- /dev/null +++ b/docs/html/dspi__dotprod__off__s16__ansi_8c_source.html @@ -0,0 +1,170 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_s16_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_off_s16_ansi(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int16_t *i_data = (int16_t *)in_image->data;
+
33 int16_t *f_data = (int16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * ((int32_t)f_data[filter->step_x * x] + (int32_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_off_s16_ansi(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift, int16_t offset)
dot product of two images with input offset Dot product calculation for two floating point images: ou...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__off__s8__ansi_8c.html b/docs/html/dspi__dotprod__off__s8__ansi_8c.html new file mode 100644 index 0000000..5675bf2 --- /dev/null +++ b/docs/html/dspi__dotprod__off__s8__ansi_8c.html @@ -0,0 +1,218 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_s8_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_s8_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_off_s8_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dspi_dotprod_off_s8_ansi (image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset)
+

Function Documentation

+ +

◆ dspi_dotprod_off_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_s8_ansi (image2d_t * in_image,
image2d_t * filter,
int8_t * out_value,
int count_x,
int count_y,
int shift,
int8_t offset )
+
+ +

Definition at line 17 of file dspi_dotprod_off_s8_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int8_t *i_data = (int8_t *)in_image->data;
+
33 int8_t *f_data = (int8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * ((int16_t)f_data[filter->step_x * x] + (int16_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__off__s8__ansi_8c.js b/docs/html/dspi__dotprod__off__s8__ansi_8c.js new file mode 100644 index 0000000..991ea67 --- /dev/null +++ b/docs/html/dspi__dotprod__off__s8__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__off__s8__ansi_8c = +[ + [ "dspi_dotprod_off_s8_ansi", "dspi__dotprod__off__s8__ansi_8c.html#a0416e9042f183a42d1a6ac40e9413478", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__s8__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__off__s8__ansi_8c__incl.md5 new file mode 100644 index 0000000..b0d1ab0 --- /dev/null +++ b/docs/html/dspi__dotprod__off__s8__ansi_8c__incl.md5 @@ -0,0 +1 @@ +abc13a1ecd713c40073f6a357e5031af \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__s8__ansi_8c__incl.svg b/docs/html/dspi__dotprod__off__s8__ansi_8c__incl.svg new file mode 100644 index 0000000..185dfb6 --- /dev/null +++ b/docs/html/dspi__dotprod__off__s8__ansi_8c__incl.svg @@ -0,0 +1,282 @@ + + + + + + + + + + + + +dspi_dotprod_off_s8_ansi.c + + +Node1 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__s8__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__off__s8__ansi_8c__incl_org.svg new file mode 100644 index 0000000..1d51e23 --- /dev/null +++ b/docs/html/dspi__dotprod__off__s8__ansi_8c__incl_org.svg @@ -0,0 +1,256 @@ + + + + + + +dspi_dotprod_off_s8_ansi.c + + +Node1 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__s8__ansi_8c_source.html b/docs/html/dspi__dotprod__off__s8__ansi_8c_source.html new file mode 100644 index 0000000..2c4084e --- /dev/null +++ b/docs/html/dspi__dotprod__off__s8__ansi_8c_source.html @@ -0,0 +1,170 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_s8_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_s8_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_off_s8_ansi(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int8_t *i_data = (int8_t *)in_image->data;
+
33 int8_t *f_data = (int8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * ((int16_t)f_data[filter->step_x * x] + (int16_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_off_s8_ansi(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift, int8_t offset)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__off__u16__ansi_8c.html b/docs/html/dspi__dotprod__off__u16__ansi_8c.html new file mode 100644 index 0000000..baa9e59 --- /dev/null +++ b/docs/html/dspi__dotprod__off__u16__ansi_8c.html @@ -0,0 +1,218 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_u16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_u16_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_off_u16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dspi_dotprod_off_u16_ansi (image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset)
+

Function Documentation

+ +

◆ dspi_dotprod_off_u16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_u16_ansi (image2d_t * in_image,
image2d_t * filter,
uint16_t * out_value,
int count_x,
int count_y,
int shift,
uint16_t offset )
+
+ +

Definition at line 17 of file dspi_dotprod_off_u16_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint16_t *i_data = (uint16_t *)in_image->data;
+
33 uint16_t *f_data = (uint16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * ((int32_t)f_data[filter->step_x * x] + (int32_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__off__u16__ansi_8c.js b/docs/html/dspi__dotprod__off__u16__ansi_8c.js new file mode 100644 index 0000000..370543d --- /dev/null +++ b/docs/html/dspi__dotprod__off__u16__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__off__u16__ansi_8c = +[ + [ "dspi_dotprod_off_u16_ansi", "dspi__dotprod__off__u16__ansi_8c.html#ad333a0fe6b4ea01333b210ec84be3248", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__u16__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__off__u16__ansi_8c__incl.md5 new file mode 100644 index 0000000..49fee8e --- /dev/null +++ b/docs/html/dspi__dotprod__off__u16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +0b3122499e828adc6790951eeabc7f63 \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__u16__ansi_8c__incl.svg b/docs/html/dspi__dotprod__off__u16__ansi_8c__incl.svg new file mode 100644 index 0000000..e16939a --- /dev/null +++ b/docs/html/dspi__dotprod__off__u16__ansi_8c__incl.svg @@ -0,0 +1,282 @@ + + + + + + + + + + + + +dspi_dotprod_off_u16_ansi.c + + +Node1 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__u16__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__off__u16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..d5cd952 --- /dev/null +++ b/docs/html/dspi__dotprod__off__u16__ansi_8c__incl_org.svg @@ -0,0 +1,256 @@ + + + + + + +dspi_dotprod_off_u16_ansi.c + + +Node1 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__u16__ansi_8c_source.html b/docs/html/dspi__dotprod__off__u16__ansi_8c_source.html new file mode 100644 index 0000000..d3d9293 --- /dev/null +++ b/docs/html/dspi__dotprod__off__u16__ansi_8c_source.html @@ -0,0 +1,170 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_u16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_u16_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_off_u16_ansi(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint16_t *i_data = (uint16_t *)in_image->data;
+
33 uint16_t *f_data = (uint16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * ((int32_t)f_data[filter->step_x * x] + (int32_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_off_u16_ansi(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift, uint16_t offset)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__off__u8__ansi_8c.html b/docs/html/dspi__dotprod__off__u8__ansi_8c.html new file mode 100644 index 0000000..b8ce4db --- /dev/null +++ b/docs/html/dspi__dotprod__off__u8__ansi_8c.html @@ -0,0 +1,218 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_u8_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_u8_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_off_u8_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dspi_dotprod_off_u8_ansi (image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset)
+

Function Documentation

+ +

◆ dspi_dotprod_off_u8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_off_u8_ansi (image2d_t * in_image,
image2d_t * filter,
uint8_t * out_value,
int count_x,
int count_y,
int shift,
uint8_t offset )
+
+ +

Definition at line 17 of file dspi_dotprod_off_u8_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint8_t *i_data = (uint8_t *)in_image->data;
+
33 uint8_t *f_data = (uint8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * ((int16_t)f_data[filter->step_x * x] + (int16_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__off__u8__ansi_8c.js b/docs/html/dspi__dotprod__off__u8__ansi_8c.js new file mode 100644 index 0000000..d7ce868 --- /dev/null +++ b/docs/html/dspi__dotprod__off__u8__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__off__u8__ansi_8c = +[ + [ "dspi_dotprod_off_u8_ansi", "dspi__dotprod__off__u8__ansi_8c.html#ab3262bb41d0d7d2adef89693dc03dda6", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__u8__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__off__u8__ansi_8c__incl.md5 new file mode 100644 index 0000000..050f487 --- /dev/null +++ b/docs/html/dspi__dotprod__off__u8__ansi_8c__incl.md5 @@ -0,0 +1 @@ +fc685d85300a7e50c862af858d37978d \ No newline at end of file diff --git a/docs/html/dspi__dotprod__off__u8__ansi_8c__incl.svg b/docs/html/dspi__dotprod__off__u8__ansi_8c__incl.svg new file mode 100644 index 0000000..8e976bc --- /dev/null +++ b/docs/html/dspi__dotprod__off__u8__ansi_8c__incl.svg @@ -0,0 +1,282 @@ + + + + + + + + + + + + +dspi_dotprod_off_u8_ansi.c + + +Node1 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__u8__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__off__u8__ansi_8c__incl_org.svg new file mode 100644 index 0000000..7a99eb7 --- /dev/null +++ b/docs/html/dspi__dotprod__off__u8__ansi_8c__incl_org.svg @@ -0,0 +1,256 @@ + + + + + + +dspi_dotprod_off_u8_ansi.c + + +Node1 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__off__u8__ansi_8c_source.html b/docs/html/dspi__dotprod__off__u8__ansi_8c_source.html new file mode 100644 index 0000000..ee5809c --- /dev/null +++ b/docs/html/dspi__dotprod__off__u8__ansi_8c_source.html @@ -0,0 +1,170 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_off_u8_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_off_u8_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_off_u8_ansi(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint8_t *i_data = (uint8_t *)in_image->data;
+
33 uint8_t *f_data = (uint8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * ((int16_t)f_data[filter->step_x * x] + (int16_t)offset);
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_off_u8_ansi(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift, uint8_t offset)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__platform_8h.html b/docs/html/dspi__dotprod__platform_8h.html new file mode 100644 index 0000000..a77042d --- /dev/null +++ b/docs/html/dspi__dotprod__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dspi_dotprod_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__platform_8h__dep__incl.md5 b/docs/html/dspi__dotprod__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..c730cb3 --- /dev/null +++ b/docs/html/dspi__dotprod__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +259af9bd53411cedbacff3f17ab16165 \ No newline at end of file diff --git a/docs/html/dspi__dotprod__platform_8h__dep__incl.svg b/docs/html/dspi__dotprod__platform_8h__dep__incl.svg new file mode 100644 index 0000000..fda4760 --- /dev/null +++ b/docs/html/dspi__dotprod__platform_8h__dep__incl.svg @@ -0,0 +1,757 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspi_dotprod_platform.h + + +Node1 + + +dspi_dotprod_platform.h + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspi_dotprod_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dspi_dotprod_s16_ansi.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dspi_dotprod_s8_ansi.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dspi_dotprod_u16_ansi.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dspi_dotprod_u8_ansi.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +esp_dsp.h + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +3d_graphics_demo.cpp + + + + + +Node13->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +3d_kalman_demo.cpp + + + + + +Node13->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node13->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node13->Node23 + + + + + + + + +Node24 + + +audio_amp_main.c + + + + + +Node13->Node24 + + + + + + + + +Node25 + + +dsp_tests.h + + + + + +Node13->Node25 + + + + + + + + +Node32 + + +graphics_support.h + + + + + +Node13->Node32 + + + + + + + + +Node34 + + +graphics_support.h + + + + + +Node13->Node34 + + + + + + + + +Node36 + + +graphics_support.h + + + + + +Node13->Node36 + + + + + + + + +Node38 + + +init_display.c + + + + + +Node13->Node38 + + + + + + + + +Node39 + + +init_display.c + + + + + +Node13->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node13->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node13->Node41 + + + + + + + + +Node42 + + +kalman_filter_demo.cpp + + + + + +Node13->Node42 + + + + + + + + +Node43 + + +kalman_filter_demo.cpp + + + + + +Node13->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node13->Node44 + + + + + + + + +Node45 + + +main.c + + + + + +Node13->Node45 + + + + + + + + +Node46 + + +main.c + + + + + +Node13->Node46 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__platform_8h__dep__incl_org.svg b/docs/html/dspi__dotprod__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..cbc54d2 --- /dev/null +++ b/docs/html/dspi__dotprod__platform_8h__dep__incl_org.svg @@ -0,0 +1,674 @@ + + + + + + +dspi_dotprod_platform.h + + +Node1 + + +dspi_dotprod_platform.h + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspi_dotprod_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dspi_dotprod_s16_ansi.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dspi_dotprod_s8_ansi.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dspi_dotprod_u16_ansi.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dspi_dotprod_u8_ansi.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +esp_dsp.h + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +3d_graphics_demo.cpp + + + + + +Node13->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +3d_kalman_demo.cpp + + + + + +Node13->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node13->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node13->Node23 + + + + + + + + +Node24 + + +audio_amp_main.c + + + + + +Node13->Node24 + + + + + + + + +Node25 + + +dsp_tests.h + + + + + +Node13->Node25 + + + + + + + + +Node32 + + +graphics_support.h + + + + + +Node13->Node32 + + + + + + + + +Node34 + + +graphics_support.h + + + + + +Node13->Node34 + + + + + + + + +Node36 + + +graphics_support.h + + + + + +Node13->Node36 + + + + + + + + +Node38 + + +init_display.c + + + + + +Node13->Node38 + + + + + + + + +Node39 + + +init_display.c + + + + + +Node13->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node13->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node13->Node41 + + + + + + + + +Node42 + + +kalman_filter_demo.cpp + + + + + +Node13->Node42 + + + + + + + + +Node43 + + +kalman_filter_demo.cpp + + + + + +Node13->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node13->Node44 + + + + + + + + +Node45 + + +main.c + + + + + +Node13->Node45 + + + + + + + + +Node46 + + +main.c + + + + + +Node13->Node46 + + + + + + + + diff --git a/docs/html/dspi__dotprod__platform_8h__incl.md5 b/docs/html/dspi__dotprod__platform_8h__incl.md5 new file mode 100644 index 0000000..89e6078 --- /dev/null +++ b/docs/html/dspi__dotprod__platform_8h__incl.md5 @@ -0,0 +1 @@ +c09f10de043d2a34b8dd8c6f9e93c6c6 \ No newline at end of file diff --git a/docs/html/dspi__dotprod__platform_8h__incl.svg b/docs/html/dspi__dotprod__platform_8h__incl.svg new file mode 100644 index 0000000..41c16cb --- /dev/null +++ b/docs/html/dspi__dotprod__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspi_dotprod_platform.h + + +Node1 + + +dspi_dotprod_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__platform_8h__incl_org.svg b/docs/html/dspi__dotprod__platform_8h__incl_org.svg new file mode 100644 index 0000000..4e3f5fa --- /dev/null +++ b/docs/html/dspi__dotprod__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspi_dotprod_platform.h + + +Node1 + + +dspi_dotprod_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dspi__dotprod__platform_8h_source.html b/docs/html/dspi__dotprod__platform_8h_source.html new file mode 100644 index 0000000..d0720fc --- /dev/null +++ b/docs/html/dspi__dotprod__platform_8h_source.html @@ -0,0 +1,130 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dspi_dotprod_platform_H_
+
2#define _dspi_dotprod_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if CONFIG_IDF_TARGET_ESP32S3
+
12#define dspi_dotprod_aes3_enabled 1
+
13#endif
+
14#endif // __XTENSA__
+
15
+
16#if CONFIG_IDF_TARGET_ESP32P4
+
17#ifdef CONFIG_DSP_OPTIMIZED
+
18#define dspi_dotprod_arp4_enabled 1
+
19#else
+
20#define dspi_dotprod_arp4_enabled 0
+
21#endif
+
22#endif
+
23
+
24#endif // _dspi_dotprod_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__s16__ansi_8c.html b/docs/html/dspi__dotprod__s16__ansi_8c.html new file mode 100644 index 0000000..69f452f --- /dev/null +++ b/docs/html/dspi__dotprod__s16__ansi_8c.html @@ -0,0 +1,232 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_s16_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspi_dotprod_s16_ansi (image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift)
 dot product of two images Dot product calculation for two floating point images: out_value += image[i...] * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
+

Function Documentation

+ +

◆ dspi_dotprod_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_s16_ansi (image2d_t * in_image,
image2d_t * filter,
int16_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +

dot product of two images Dot product calculation for two floating point images: out_value += image[i...] * src2[i*...]); i= [0..count_x*count_y) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + +
[in]in_imagedescriptor of the image
[in]filterdescriptor of the filter
[out]out_valuepointer to the output value
[in]count_xamount of samples by X axis (count_x*step_X <= widdth)
[in]count_yamount of samples by Y axis (count_y*step_Y <= height)
[in]shift- result shift to right, by default must be 15 for int16_t or 7 for int8_t
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dspi_dotprod_s16_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int16_t *i_data = (int16_t *)in_image->data;
+
33 int16_t *f_data = (int16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * (int32_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__s16__ansi_8c.js b/docs/html/dspi__dotprod__s16__ansi_8c.js new file mode 100644 index 0000000..7b85274 --- /dev/null +++ b/docs/html/dspi__dotprod__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__s16__ansi_8c = +[ + [ "dspi_dotprod_s16_ansi", "dspi__dotprod__s16__ansi_8c.html#a122031585019ec0898f187aa5f70f781", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__s16__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..100f23b --- /dev/null +++ b/docs/html/dspi__dotprod__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +8f44f4be19065fe91bb25a741d62af95 \ No newline at end of file diff --git a/docs/html/dspi__dotprod__s16__ansi_8c__incl.svg b/docs/html/dspi__dotprod__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..55bd7f6 --- /dev/null +++ b/docs/html/dspi__dotprod__s16__ansi_8c__incl.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + +dspi_dotprod_s16_ansi.c + + +Node1 + + +dspi_dotprod_s16_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__s16__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..ee17a47 --- /dev/null +++ b/docs/html/dspi__dotprod__s16__ansi_8c__incl_org.svg @@ -0,0 +1,255 @@ + + + + + + +dspi_dotprod_s16_ansi.c + + +Node1 + + +dspi_dotprod_s16_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__s16__ansi_8c_source.html b/docs/html/dspi__dotprod__s16__ansi_8c_source.html new file mode 100644 index 0000000..2050219 --- /dev/null +++ b/docs/html/dspi__dotprod__s16__ansi_8c_source.html @@ -0,0 +1,170 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_s16_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_s16_ansi(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int16_t *i_data = (int16_t *)in_image->data;
+
33 int16_t *f_data = (int16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * (int32_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_s16_ansi(image2d_t *in_image, image2d_t *filter, int16_t *out_value, int count_x, int count_y, int shift)
dot product of two images Dot product calculation for two floating point images: out_value += image[i...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__s8__ansi_8c.html b/docs/html/dspi__dotprod__s8__ansi_8c.html new file mode 100644 index 0000000..d495f13 --- /dev/null +++ b/docs/html/dspi__dotprod__s8__ansi_8c.html @@ -0,0 +1,213 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_s8_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_s8_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_s8_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dspi_dotprod_s8_ansi (image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift)
+

Function Documentation

+ +

◆ dspi_dotprod_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_s8_ansi (image2d_t * in_image,
image2d_t * filter,
int8_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +

Definition at line 17 of file dspi_dotprod_s8_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int8_t *i_data = (int8_t *)in_image->data;
+
33 int8_t *f_data = (int8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * (int16_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__s8__ansi_8c.js b/docs/html/dspi__dotprod__s8__ansi_8c.js new file mode 100644 index 0000000..89e9304 --- /dev/null +++ b/docs/html/dspi__dotprod__s8__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__s8__ansi_8c = +[ + [ "dspi_dotprod_s8_ansi", "dspi__dotprod__s8__ansi_8c.html#a4e6e12a18571df9267462df574175e3e", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__s8__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__s8__ansi_8c__incl.md5 new file mode 100644 index 0000000..6a81c69 --- /dev/null +++ b/docs/html/dspi__dotprod__s8__ansi_8c__incl.md5 @@ -0,0 +1 @@ +6788ae40e97b99c871bb8c48f7482e4c \ No newline at end of file diff --git a/docs/html/dspi__dotprod__s8__ansi_8c__incl.svg b/docs/html/dspi__dotprod__s8__ansi_8c__incl.svg new file mode 100644 index 0000000..7a274cf --- /dev/null +++ b/docs/html/dspi__dotprod__s8__ansi_8c__incl.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + +dspi_dotprod_s8_ansi.c + + +Node1 + + +dspi_dotprod_s8_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__s8__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__s8__ansi_8c__incl_org.svg new file mode 100644 index 0000000..5e61945 --- /dev/null +++ b/docs/html/dspi__dotprod__s8__ansi_8c__incl_org.svg @@ -0,0 +1,255 @@ + + + + + + +dspi_dotprod_s8_ansi.c + + +Node1 + + +dspi_dotprod_s8_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__s8__ansi_8c_source.html b/docs/html/dspi__dotprod__s8__ansi_8c_source.html new file mode 100644 index 0000000..2bf2631 --- /dev/null +++ b/docs/html/dspi__dotprod__s8__ansi_8c_source.html @@ -0,0 +1,170 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_s8_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_s8_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_s8_ansi(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 int8_t *i_data = (int8_t *)in_image->data;
+
33 int8_t *f_data = (int8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * (int16_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_s8_ansi(image2d_t *in_image, image2d_t *filter, int8_t *out_value, int count_x, int count_y, int shift)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__u16__ansi_8c.html b/docs/html/dspi__dotprod__u16__ansi_8c.html new file mode 100644 index 0000000..2ac350e --- /dev/null +++ b/docs/html/dspi__dotprod__u16__ansi_8c.html @@ -0,0 +1,213 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_u16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_u16_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_u16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dspi_dotprod_u16_ansi (image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift)
+

Function Documentation

+ +

◆ dspi_dotprod_u16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_u16_ansi (image2d_t * in_image,
image2d_t * filter,
uint16_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +

Definition at line 17 of file dspi_dotprod_u16_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint16_t *i_data = (uint16_t *)in_image->data;
+
33 uint16_t *f_data = (uint16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * (int32_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__u16__ansi_8c.js b/docs/html/dspi__dotprod__u16__ansi_8c.js new file mode 100644 index 0000000..a71bd39 --- /dev/null +++ b/docs/html/dspi__dotprod__u16__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__u16__ansi_8c = +[ + [ "dspi_dotprod_u16_ansi", "dspi__dotprod__u16__ansi_8c.html#afc46eca733aeb7bf7646755d5dabdedf", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__u16__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__u16__ansi_8c__incl.md5 new file mode 100644 index 0000000..9478747 --- /dev/null +++ b/docs/html/dspi__dotprod__u16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +b0fa4a0217d86d8a7f0a528b6114f681 \ No newline at end of file diff --git a/docs/html/dspi__dotprod__u16__ansi_8c__incl.svg b/docs/html/dspi__dotprod__u16__ansi_8c__incl.svg new file mode 100644 index 0000000..29bab03 --- /dev/null +++ b/docs/html/dspi__dotprod__u16__ansi_8c__incl.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + +dspi_dotprod_u16_ansi.c + + +Node1 + + +dspi_dotprod_u16_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__u16__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__u16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..d82605a --- /dev/null +++ b/docs/html/dspi__dotprod__u16__ansi_8c__incl_org.svg @@ -0,0 +1,255 @@ + + + + + + +dspi_dotprod_u16_ansi.c + + +Node1 + + +dspi_dotprod_u16_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__u16__ansi_8c_source.html b/docs/html/dspi__dotprod__u16__ansi_8c_source.html new file mode 100644 index 0000000..9032330 --- /dev/null +++ b/docs/html/dspi__dotprod__u16__ansi_8c_source.html @@ -0,0 +1,170 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_u16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_u16_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_u16_ansi(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint16_t *i_data = (uint16_t *)in_image->data;
+
33 uint16_t *f_data = (uint16_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int64_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int32_t)i_data[in_image->step_x * x] * (int32_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_u16_ansi(image2d_t *in_image, image2d_t *filter, uint16_t *out_value, int count_x, int count_y, int shift)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspi__dotprod__u8__ansi_8c.html b/docs/html/dspi__dotprod__u8__ansi_8c.html new file mode 100644 index 0000000..8d00632 --- /dev/null +++ b/docs/html/dspi__dotprod__u8__ansi_8c.html @@ -0,0 +1,213 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_u8_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_u8_ansi.c File Reference
+
+
+
#include "dspi_dotprod.h"
+
+Include dependency graph for dspi_dotprod_u8_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dspi_dotprod_u8_ansi (image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift)
+

Function Documentation

+ +

◆ dspi_dotprod_u8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspi_dotprod_u8_ansi (image2d_t * in_image,
image2d_t * filter,
uint8_t * out_value,
int count_x,
int count_y,
int shift )
+
+ +

Definition at line 17 of file dspi_dotprod_u8_ansi.c.

+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint8_t *i_data = (uint8_t *)in_image->data;
+
33 uint8_t *f_data = (uint8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * (int16_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References image2d_s::data, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, image2d_s::step_x, image2d_s::step_y, image2d_s::stride_x, image2d_s::stride_y, x, and y.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspi__dotprod__u8__ansi_8c.js b/docs/html/dspi__dotprod__u8__ansi_8c.js new file mode 100644 index 0000000..d2deb36 --- /dev/null +++ b/docs/html/dspi__dotprod__u8__ansi_8c.js @@ -0,0 +1,4 @@ +var dspi__dotprod__u8__ansi_8c = +[ + [ "dspi_dotprod_u8_ansi", "dspi__dotprod__u8__ansi_8c.html#a7b81101060b40dfebfe5e11b987f20f4", null ] +]; \ No newline at end of file diff --git a/docs/html/dspi__dotprod__u8__ansi_8c__incl.md5 b/docs/html/dspi__dotprod__u8__ansi_8c__incl.md5 new file mode 100644 index 0000000..b31fa68 --- /dev/null +++ b/docs/html/dspi__dotprod__u8__ansi_8c__incl.md5 @@ -0,0 +1 @@ +5100119e521478430397bd672a80b49d \ No newline at end of file diff --git a/docs/html/dspi__dotprod__u8__ansi_8c__incl.svg b/docs/html/dspi__dotprod__u8__ansi_8c__incl.svg new file mode 100644 index 0000000..1dbb20f --- /dev/null +++ b/docs/html/dspi__dotprod__u8__ansi_8c__incl.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + +dspi_dotprod_u8_ansi.c + + +Node1 + + +dspi_dotprod_u8_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dspi__dotprod__u8__ansi_8c__incl_org.svg b/docs/html/dspi__dotprod__u8__ansi_8c__incl_org.svg new file mode 100644 index 0000000..d7b7644 --- /dev/null +++ b/docs/html/dspi__dotprod__u8__ansi_8c__incl_org.svg @@ -0,0 +1,255 @@ + + + + + + +dspi_dotprod_u8_ansi.c + + +Node1 + + +dspi_dotprod_u8_ansi.c + + + + + +Node2 + + +dspi_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsp_types.h + + + + + +Node2->Node9 + + + + + + + + +Node12 + + +dspi_dotprod_platform.h + + + + + +Node2->Node12 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + diff --git a/docs/html/dspi__dotprod__u8__ansi_8c_source.html b/docs/html/dspi__dotprod__u8__ansi_8c_source.html new file mode 100644 index 0000000..a70b1e8 --- /dev/null +++ b/docs/html/dspi__dotprod__u8__ansi_8c_source.html @@ -0,0 +1,170 @@ + + + + + + + +ESP-IDF Firmware: dspi_dotprod_u8_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspi_dotprod_u8_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dspi_dotprod.h"
+
16
+
+
17esp_err_t dspi_dotprod_u8_ansi(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift)
+
18{
+
19 if (in_image->step_x * count_x > in_image->stride_x) {
+ +
21 }
+
22 if (in_image->step_y * count_y > in_image->stride_y) {
+ +
24 }
+
25 if (filter->step_x * count_x > filter->stride_x) {
+ +
27 }
+
28 if (filter->step_y * count_y > filter->stride_y) {
+ +
30 }
+
31
+
32 uint8_t *i_data = (uint8_t *)in_image->data;
+
33 uint8_t *f_data = (uint8_t *)filter->data;
+
34 int i_step = in_image->stride_x * in_image->step_y;
+
35 int f_step = filter->stride_x * filter->step_y;
+
36
+
37 int32_t acc = 0;
+
38 for (int y = 0; y < count_y; y++) {
+
39 for (int x = 0; x < count_x; x++) {
+
40 acc += (int16_t)i_data[in_image->step_x * x] * (int16_t)f_data[filter->step_x * x];
+
41 }
+
42 i_data += i_step;
+
43 f_data += f_step;
+
44 }
+
45 acc += 1 << (shift - 1); // round operation
+
46 acc >>= shift;
+
47 *out_value = acc;
+
48 return ESP_OK;
+
49}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
struct image2d_s image2d_t
+ +
esp_err_t dspi_dotprod_u8_ansi(image2d_t *in_image, image2d_t *filter, uint8_t *out_value, int count_x, int count_y, int shift)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int stride_x
Definition dsp_types.h:28
+
int stride_y
Definition dsp_types.h:29
+
void * data
Definition dsp_types.h:25
+
int step_y
Definition dsp_types.h:27
+
int step_x
Definition dsp_types.h:26
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dspm__add_8h.html b/docs/html/dspm__add_8h.html new file mode 100644 index 0000000..d8f1fe0 --- /dev/null +++ b/docs/html/dspm__add_8h.html @@ -0,0 +1,375 @@ + + + + + + + +ESP-IDF Firmware: dspm_add.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_add.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dspm_add_platform.h"
+
+Include dependency graph for dspm_add.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define dspm_add_f32   dspm_add_f32_ansi
+ + + + + +

+Functions

esp_err_t dspm_add_f32_ansi (const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
 add two arrays with paddings (add two sub-matrices)
esp_err_t dspm_add_f32_ae32 (const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
+

Macro Definition Documentation

+ +

◆ dspm_add_f32

+ +
+
+ + + + +
#define dspm_add_f32   dspm_add_f32_ansi
+
+ +

Definition at line 62 of file dspm_add.h.

+ +

Referenced by dspm::operator+(), and dspm::Mat::operator+=().

+ +
+
+

Function Documentation

+ +

◆ dspm_add_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_add_f32_ae32 (const float * input1,
const float * input2,
float * output,
int rows,
int cols,
int padd1,
int padd2,
int padd_out,
int step1,
int step2,
int step_out )
+
+ +
+
+ +

◆ dspm_add_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_add_f32_ansi (const float * input1,
const float * input2,
float * output,
int rows,
int cols,
int padd1,
int padd2,
int padd_out,
int step1,
int step2,
int step_out )
+
+ +

add two arrays with paddings (add two sub-matrices)

+

The function adds two arrays defined as sub-matrices with paddings out[row * ptr_step_out + col * step_out] = in1[row * ptr_step_in1 + col * step1] + in2[row * ptr_step_in2 + col * step2]; The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + + + + +
[in]input1input array 1
[in]input2input array 2
[out]outputoutput array
[in]rowsmatrix rows
[in]colsmatrix cols
[in]padd1input array 1 padding
[in]padd2input array 2 padding
[in]padd_outoutput array padding
[in]step1step over input array 1 (by default should be 1)
[in]step2step over input array 2 (by default should be 1)
[in]step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 10 of file dspm_add_f32_ansi.c.

+
11{
+
12 if (NULL == input1) {
+ +
14 }
+
15 if (NULL == input2) {
+ +
17 }
+
18 if (NULL == output) {
+ +
20 }
+
21
+
22 if (rows <= 0) {
+ +
24 }
+
25 if (cols <= 0) {
+ +
27 }
+
28
+
29 if (padd1 < 0) {
+ +
31 }
+
32 if (padd2 < 0) {
+ +
34 }
+
35 if (padd_out < 0) {
+ +
37 }
+
38
+
39 if (step1 <= 0) {
+ +
41 }
+
42 if (step2 <= 0) {
+ +
44 }
+
45 if (step_out <= 0) {
+ +
47 }
+
48
+
49 const int ptr_input1_step = cols + padd1;
+
50 const int ptr_input2_step = cols + padd2;
+
51 const int ptr_output_step = cols + padd_out;
+
52 float *ptr_input1 = (float *)input1;
+
53 float *ptr_input2 = (float *)input2;
+
54
+
55 for (int row = 0; row < rows; row++) {
+
56 for (int col = 0; col < cols; col++) {
+
57 output[col * step_out] = ptr_input1[col * step1] + ptr_input2[col * step2];
+
58 }
+
59 ptr_input1 += ptr_input1_step;
+
60 ptr_input2 += ptr_input2_step;
+
61 output += ptr_output_step;
+
62 }
+
63 return ESP_OK;
+
64}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__add_8h.js b/docs/html/dspm__add_8h.js new file mode 100644 index 0000000..d449350 --- /dev/null +++ b/docs/html/dspm__add_8h.js @@ -0,0 +1,6 @@ +var dspm__add_8h = +[ + [ "dspm_add_f32", "dspm__add_8h.html#a3c208c27eb243c78e2b69f6048693e8b", null ], + [ "dspm_add_f32_ae32", "dspm__add_8h.html#ac5534f5e205f711615d6e30a87a4c363", null ], + [ "dspm_add_f32_ansi", "dspm__add_8h.html#a60f8f7e438565281213d91c36fd8ecf7", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__add_8h__dep__incl.md5 b/docs/html/dspm__add_8h__dep__incl.md5 new file mode 100644 index 0000000..49adab0 --- /dev/null +++ b/docs/html/dspm__add_8h__dep__incl.md5 @@ -0,0 +1 @@ +a23b63e14fb6f1335a317a37dc0cc359 \ No newline at end of file diff --git a/docs/html/dspm__add_8h__dep__incl.svg b/docs/html/dspm__add_8h__dep__incl.svg new file mode 100644 index 0000000..b512818 --- /dev/null +++ b/docs/html/dspm__add_8h__dep__incl.svg @@ -0,0 +1,608 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm_add.h + + +Node1 + + +dspm_add.h + + + + + +Node2 + + +dspm_add_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspm__add_8h__dep__incl_org.svg b/docs/html/dspm__add_8h__dep__incl_org.svg new file mode 100644 index 0000000..9a55b7b --- /dev/null +++ b/docs/html/dspm__add_8h__dep__incl_org.svg @@ -0,0 +1,525 @@ + + + + + + +dspm_add.h + + +Node1 + + +dspm_add.h + + + + + +Node2 + + +dspm_add_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + diff --git a/docs/html/dspm__add_8h__incl.md5 b/docs/html/dspm__add_8h__incl.md5 new file mode 100644 index 0000000..82771e3 --- /dev/null +++ b/docs/html/dspm__add_8h__incl.md5 @@ -0,0 +1 @@ +a2badeb969bcb550b6612ee18360aa26 \ No newline at end of file diff --git a/docs/html/dspm__add_8h__incl.svg b/docs/html/dspm__add_8h__incl.svg new file mode 100644 index 0000000..c92444d --- /dev/null +++ b/docs/html/dspm__add_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_add.h + + +Node1 + + +dspm_add.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_add_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dspm__add_8h__incl_org.svg b/docs/html/dspm__add_8h__incl_org.svg new file mode 100644 index 0000000..fde38c3 --- /dev/null +++ b/docs/html/dspm__add_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_add.h + + +Node1 + + +dspm_add.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_add_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dspm__add_8h_source.html b/docs/html/dspm__add_8h_source.html new file mode 100644 index 0000000..13e37d0 --- /dev/null +++ b/docs/html/dspm__add_8h_source.html @@ -0,0 +1,151 @@ + + + + + + + +ESP-IDF Firmware: dspm_add.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_add.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7
+
8#ifndef _dspm_add_H_
+
9#define _dspm_add_H_
+
10#include "dsp_err.h"
+
11
+
12#include "dspm_add_platform.h"
+
13
+
14
+
15#ifdef __cplusplus
+
16extern "C"
+
17{
+
18#endif
+
19
+
20
+
45esp_err_t dspm_add_f32_ansi(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out);
+
46esp_err_t dspm_add_f32_ae32(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out);
+
48
+
49#ifdef __cplusplus
+
50}
+
51#endif
+
52
+
53#if CONFIG_DSP_OPTIMIZED
+
54
+
55#if (dspm_add_f32_ae32_enabled == 1)
+
56#define dspm_add_f32 dspm_add_f32_ae32
+
57#else
+
58#define dspm_add_f32 dspm_add_f32_ansi
+
59#endif
+
60
+
61#else // CONFIG_DSP_OPTIMIZED
+
62#define dspm_add_f32 dspm_add_f32_ansi
+
63#endif // CONFIG_DSP_OPTIMIZED
+
64
+
65#endif // _dspm_add_H_
+ +
esp_err_t dspm_add_f32_ansi(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
add two arrays with paddings (add two sub-matrices)
+
esp_err_t dspm_add_f32_ae32(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
+ +
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dspm__add__f32__ansi_8c.html b/docs/html/dspm__add__f32__ansi_8c.html new file mode 100644 index 0000000..3e4a7b6 --- /dev/null +++ b/docs/html/dspm__add__f32__ansi_8c.html @@ -0,0 +1,278 @@ + + + + + + + +ESP-IDF Firmware: dspm_add_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_add_f32_ansi.c File Reference
+
+
+
#include "dspm_add.h"
+
+Include dependency graph for dspm_add_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspm_add_f32_ansi (const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
 add two arrays with paddings (add two sub-matrices)
+

Function Documentation

+ +

◆ dspm_add_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_add_f32_ansi (const float * input1,
const float * input2,
float * output,
int rows,
int cols,
int padd1,
int padd2,
int padd_out,
int step1,
int step2,
int step_out )
+
+ +

add two arrays with paddings (add two sub-matrices)

+

The function adds two arrays defined as sub-matrices with paddings out[row * ptr_step_out + col * step_out] = in1[row * ptr_step_in1 + col * step1] + in2[row * ptr_step_in2 + col * step2]; The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + + + + +
[in]input1input array 1
[in]input2input array 2
[out]outputoutput array
[in]rowsmatrix rows
[in]colsmatrix cols
[in]padd1input array 1 padding
[in]padd2input array 2 padding
[in]padd_outoutput array padding
[in]step1step over input array 1 (by default should be 1)
[in]step2step over input array 2 (by default should be 1)
[in]step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 10 of file dspm_add_f32_ansi.c.

+
11{
+
12 if (NULL == input1) {
+ +
14 }
+
15 if (NULL == input2) {
+ +
17 }
+
18 if (NULL == output) {
+ +
20 }
+
21
+
22 if (rows <= 0) {
+ +
24 }
+
25 if (cols <= 0) {
+ +
27 }
+
28
+
29 if (padd1 < 0) {
+ +
31 }
+
32 if (padd2 < 0) {
+ +
34 }
+
35 if (padd_out < 0) {
+ +
37 }
+
38
+
39 if (step1 <= 0) {
+ +
41 }
+
42 if (step2 <= 0) {
+ +
44 }
+
45 if (step_out <= 0) {
+ +
47 }
+
48
+
49 const int ptr_input1_step = cols + padd1;
+
50 const int ptr_input2_step = cols + padd2;
+
51 const int ptr_output_step = cols + padd_out;
+
52 float *ptr_input1 = (float *)input1;
+
53 float *ptr_input2 = (float *)input2;
+
54
+
55 for (int row = 0; row < rows; row++) {
+
56 for (int col = 0; col < cols; col++) {
+
57 output[col * step_out] = ptr_input1[col * step1] + ptr_input2[col * step2];
+
58 }
+
59 ptr_input1 += ptr_input1_step;
+
60 ptr_input2 += ptr_input2_step;
+
61 output += ptr_output_step;
+
62 }
+
63 return ESP_OK;
+
64}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__add__f32__ansi_8c.js b/docs/html/dspm__add__f32__ansi_8c.js new file mode 100644 index 0000000..90f4feb --- /dev/null +++ b/docs/html/dspm__add__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dspm__add__f32__ansi_8c = +[ + [ "dspm_add_f32_ansi", "dspm__add__f32__ansi_8c.html#a60f8f7e438565281213d91c36fd8ecf7", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__add__f32__ansi_8c__incl.md5 b/docs/html/dspm__add__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..e15d946 --- /dev/null +++ b/docs/html/dspm__add__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +3cd80e1497102a2911a8922e1c6d26cd \ No newline at end of file diff --git a/docs/html/dspm__add__f32__ansi_8c__incl.svg b/docs/html/dspm__add__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..bac2a8b --- /dev/null +++ b/docs/html/dspm__add__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_add_f32_ansi.c + + +Node1 + + +dspm_add_f32_ansi.c + + + + + +Node2 + + +dspm_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dspm__add__f32__ansi_8c__incl_org.svg b/docs/html/dspm__add__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..3590f0d --- /dev/null +++ b/docs/html/dspm__add__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_add_f32_ansi.c + + +Node1 + + +dspm_add_f32_ansi.c + + + + + +Node2 + + +dspm_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dspm__add__f32__ansi_8c_source.html b/docs/html/dspm__add__f32__ansi_8c_source.html new file mode 100644 index 0000000..e1153c2 --- /dev/null +++ b/docs/html/dspm__add__f32__ansi_8c_source.html @@ -0,0 +1,177 @@ + + + + + + + +ESP-IDF Firmware: dspm_add_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_add_f32_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7
+
8#include "dspm_add.h"
+
9
+
+
10esp_err_t dspm_add_f32_ansi(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
+
11{
+
12 if (NULL == input1) {
+ +
14 }
+
15 if (NULL == input2) {
+ +
17 }
+
18 if (NULL == output) {
+ +
20 }
+
21
+
22 if (rows <= 0) {
+ +
24 }
+
25 if (cols <= 0) {
+ +
27 }
+
28
+
29 if (padd1 < 0) {
+ +
31 }
+
32 if (padd2 < 0) {
+ +
34 }
+
35 if (padd_out < 0) {
+ +
37 }
+
38
+
39 if (step1 <= 0) {
+ +
41 }
+
42 if (step2 <= 0) {
+ +
44 }
+
45 if (step_out <= 0) {
+ +
47 }
+
48
+
49 const int ptr_input1_step = cols + padd1;
+
50 const int ptr_input2_step = cols + padd2;
+
51 const int ptr_output_step = cols + padd_out;
+
52 float *ptr_input1 = (float *)input1;
+
53 float *ptr_input2 = (float *)input2;
+
54
+
55 for (int row = 0; row < rows; row++) {
+
56 for (int col = 0; col < cols; col++) {
+
57 output[col * step_out] = ptr_input1[col * step1] + ptr_input2[col * step2];
+
58 }
+
59 ptr_input1 += ptr_input1_step;
+
60 ptr_input2 += ptr_input2_step;
+
61 output += ptr_output_step;
+
62 }
+
63 return ESP_OK;
+
64}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dspm_add_f32_ansi(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
add two arrays with paddings (add two sub-matrices)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dspm__add__platform_8h.html b/docs/html/dspm__add__platform_8h.html new file mode 100644 index 0000000..45b5db7 --- /dev/null +++ b/docs/html/dspm__add__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dspm_add_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_add_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dspm_add_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dspm__add__platform_8h__dep__incl.md5 b/docs/html/dspm__add__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..da59678 --- /dev/null +++ b/docs/html/dspm__add__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +168afc4ae8d31a77f760237aaa7c4d0f \ No newline at end of file diff --git a/docs/html/dspm__add__platform_8h__dep__incl.svg b/docs/html/dspm__add__platform_8h__dep__incl.svg new file mode 100644 index 0000000..8bc2d8e --- /dev/null +++ b/docs/html/dspm__add__platform_8h__dep__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dspm_add_platform.h + + +Node1 + + +dspm_add_platform.h + + + + + +Node2 + + +dspm_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_add_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm_matrix.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node39 + + +mat.cpp + + + + + +Node4->Node39 + + + + + + + + + + + + + diff --git a/docs/html/dspm__add__platform_8h__dep__incl_org.svg b/docs/html/dspm__add__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..2780252 --- /dev/null +++ b/docs/html/dspm__add__platform_8h__dep__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dspm_add_platform.h + + +Node1 + + +dspm_add_platform.h + + + + + +Node2 + + +dspm_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_add_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm_matrix.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node39 + + +mat.cpp + + + + + +Node4->Node39 + + + + + + + + diff --git a/docs/html/dspm__add__platform_8h__incl.md5 b/docs/html/dspm__add__platform_8h__incl.md5 new file mode 100644 index 0000000..a617370 --- /dev/null +++ b/docs/html/dspm__add__platform_8h__incl.md5 @@ -0,0 +1 @@ +fb1c3d5848e57897bb88beb7128ec9c5 \ No newline at end of file diff --git a/docs/html/dspm__add__platform_8h__incl.svg b/docs/html/dspm__add__platform_8h__incl.svg new file mode 100644 index 0000000..e172b61 --- /dev/null +++ b/docs/html/dspm__add__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm_add_platform.h + + +Node1 + + +dspm_add_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dspm__add__platform_8h__incl_org.svg b/docs/html/dspm__add__platform_8h__incl_org.svg new file mode 100644 index 0000000..33e7082 --- /dev/null +++ b/docs/html/dspm__add__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm_add_platform.h + + +Node1 + + +dspm_add_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dspm__add__platform_8h_source.html b/docs/html/dspm__add__platform_8h_source.html new file mode 100644 index 0000000..b20ee11 --- /dev/null +++ b/docs/html/dspm__add__platform_8h_source.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dspm_add_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_add_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dspm_add_platform_H_
+
2#define _dspm_add_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dspm_add_f32_ae32_enabled 1
+
14
+
15#endif
+
16
+
17#endif // __XTENSA__
+
18
+
19
+
20#endif // _dspm_add_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dspm__addc_8h.html b/docs/html/dspm__addc_8h.html new file mode 100644 index 0000000..c182a7c --- /dev/null +++ b/docs/html/dspm__addc_8h.html @@ -0,0 +1,338 @@ + + + + + + + +ESP-IDF Firmware: dspm_addc.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_addc.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dspm_addc_platform.h"
+
+Include dependency graph for dspm_addc.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +
#define dspm_addc_f32   dspm_addc_f32_ansi
esp_err_t dspm_addc_f32_ansi (const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
 add a constant and an array with padding (add a constant and a sub-matrix)
esp_err_t dspm_addc_f32_ae32 (const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
+

Macro Definition Documentation

+ +

◆ dspm_addc_f32

+ +
+
+ + + + +
#define dspm_addc_f32   dspm_addc_f32_ansi
+
+ +

Definition at line 57 of file dspm_addc.h.

+ +

Referenced by dspm::operator+(), dspm::Mat::operator+=(), dspm::operator-(), and dspm::Mat::operator-=().

+ +
+
+

Function Documentation

+ +

◆ dspm_addc_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_addc_f32_ae32 (const float * input,
float * output,
float C,
int rows,
int cols,
int padd_in,
int padd_out,
int step_in,
int step_out )
+
+ +

References C.

+ +
+
+ +

◆ dspm_addc_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_addc_f32_ansi (const float * input,
float * output,
float C,
int rows,
int cols,
int padd_in,
int padd_out,
int step_in,
int step_out )
+
+ +

add a constant and an array with padding (add a constant and a sub-matrix)

+

The function adds a constant and an array defined as a sub-matrix with padding out[row * ptr_step_out + col * step_out] = input[row * ptr_step_in + col * step_in] + C; The implementation uses ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + + +
[in]inputinput array
[out]outputoutput array
[in]Cconstant value
[in]rowsmatrix rows
[in]colsmatrix cols
[in]padd_ininput array padding
[in]padd_outoutput array padding
[in]step_instep over input array (by default should be 1)
[in]step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 9 of file dspm_addc_f32_ansi.c.

+
10{
+
11 if (NULL == input) {
+ +
13 }
+
14 if (NULL == output) {
+ +
16 }
+
17
+
18 if (rows <= 0) {
+ +
20 }
+
21 if (cols <= 0) {
+ +
23 }
+
24
+
25 if (padd_in < 0) {
+ +
27 }
+
28 if (padd_out < 0) {
+ +
30 }
+
31
+
32 if (step_in <= 0) {
+ +
34 }
+
35 if (step_out <= 0) {
+ +
37 }
+
38
+
39 const int ptr_step_in = cols + padd_in;
+
40 const int ptr_step_out = cols + padd_out;
+
41 float *ptr_input = (float *)input;
+
42
+
43 for (int row = 0; row < rows; row++) {
+
44 for (int col = 0; col < cols; col++) {
+
45 output[col * step_out] = ptr_input[col * step_in] + C;
+
46 }
+
47 output += ptr_step_out;
+
48 ptr_input += ptr_step_in;
+
49 }
+
50 return ESP_OK;
+
51}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__addc_8h.js b/docs/html/dspm__addc_8h.js new file mode 100644 index 0000000..99f74a7 --- /dev/null +++ b/docs/html/dspm__addc_8h.js @@ -0,0 +1,6 @@ +var dspm__addc_8h = +[ + [ "dspm_addc_f32", "dspm__addc_8h.html#aa32d4587624c755483616740a330bd56", null ], + [ "dspm_addc_f32_ae32", "dspm__addc_8h.html#aec9010b82124d70aed845d698f7339be", null ], + [ "dspm_addc_f32_ansi", "dspm__addc_8h.html#a5a310b67a9b211f205c477394e8bbbe3", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__addc_8h__dep__incl.md5 b/docs/html/dspm__addc_8h__dep__incl.md5 new file mode 100644 index 0000000..5a31e32 --- /dev/null +++ b/docs/html/dspm__addc_8h__dep__incl.md5 @@ -0,0 +1 @@ +1570ca9ddbb97096e9788151abe7bf19 \ No newline at end of file diff --git a/docs/html/dspm__addc_8h__dep__incl.svg b/docs/html/dspm__addc_8h__dep__incl.svg new file mode 100644 index 0000000..0d237de --- /dev/null +++ b/docs/html/dspm__addc_8h__dep__incl.svg @@ -0,0 +1,608 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm_addc.h + + +Node1 + + +dspm_addc.h + + + + + +Node2 + + +dspm_addc_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspm__addc_8h__dep__incl_org.svg b/docs/html/dspm__addc_8h__dep__incl_org.svg new file mode 100644 index 0000000..431f933 --- /dev/null +++ b/docs/html/dspm__addc_8h__dep__incl_org.svg @@ -0,0 +1,525 @@ + + + + + + +dspm_addc.h + + +Node1 + + +dspm_addc.h + + + + + +Node2 + + +dspm_addc_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + diff --git a/docs/html/dspm__addc_8h__incl.md5 b/docs/html/dspm__addc_8h__incl.md5 new file mode 100644 index 0000000..9697ad5 --- /dev/null +++ b/docs/html/dspm__addc_8h__incl.md5 @@ -0,0 +1 @@ +b2d3c40a14e1f6a25e0a77ef803d3742 \ No newline at end of file diff --git a/docs/html/dspm__addc_8h__incl.svg b/docs/html/dspm__addc_8h__incl.svg new file mode 100644 index 0000000..36168dd --- /dev/null +++ b/docs/html/dspm__addc_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_addc.h + + +Node1 + + +dspm_addc.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_addc_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dspm__addc_8h__incl_org.svg b/docs/html/dspm__addc_8h__incl_org.svg new file mode 100644 index 0000000..709b09d --- /dev/null +++ b/docs/html/dspm__addc_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_addc.h + + +Node1 + + +dspm_addc.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_addc_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dspm__addc_8h_source.html b/docs/html/dspm__addc_8h_source.html new file mode 100644 index 0000000..2f8644a --- /dev/null +++ b/docs/html/dspm__addc_8h_source.html @@ -0,0 +1,150 @@ + + + + + + + +ESP-IDF Firmware: dspm_addc.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_addc.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#ifndef _dspm_addc_H_
+
8#define _dspm_addc_H_
+
9#include "dsp_err.h"
+
10
+
11#include "dspm_addc_platform.h"
+
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
18
+
41esp_err_t dspm_addc_f32_ansi(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out);
+
42esp_err_t dspm_addc_f32_ae32(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out);
+
43
+
44
+
45#ifdef __cplusplus
+
46}
+
47#endif
+
48
+
49
+
50#if CONFIG_DSP_OPTIMIZED
+
51#if (dspm_addc_f32_ae32_enabled == 1)
+
52#define dspm_addc_f32 dspm_addc_f32_ae32
+
53#else
+
54#define dspm_addc_f32 dspm_addc_f32_ansi
+
55#endif
+
56#else
+
57#define dspm_addc_f32 dspm_addc_f32_ansi
+
58#endif // CONFIG_DSP_OPTIMIZED
+
59
+
60#endif // _dspm_addc_H_
+ +
esp_err_t dspm_addc_f32_ansi(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
add a constant and an array with padding (add a constant and a sub-matrix)
+
esp_err_t dspm_addc_f32_ae32(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
+ +
int esp_err_t
Definition esp_err.h:21
+
float C[4][16]
Definition test_mmult.c:22
+
+
+
+ + + + diff --git a/docs/html/dspm__addc__f32__ansi_8c.html b/docs/html/dspm__addc__f32__ansi_8c.html new file mode 100644 index 0000000..85f168b --- /dev/null +++ b/docs/html/dspm__addc__f32__ansi_8c.html @@ -0,0 +1,255 @@ + + + + + + + +ESP-IDF Firmware: dspm_addc_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_addc_f32_ansi.c File Reference
+
+
+
#include "dspm_addc.h"
+
+Include dependency graph for dspm_addc_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspm_addc_f32_ansi (const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
 add a constant and an array with padding (add a constant and a sub-matrix)
+

Function Documentation

+ +

◆ dspm_addc_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_addc_f32_ansi (const float * input,
float * output,
float C,
int rows,
int cols,
int padd_in,
int padd_out,
int step_in,
int step_out )
+
+ +

add a constant and an array with padding (add a constant and a sub-matrix)

+

The function adds a constant and an array defined as a sub-matrix with padding out[row * ptr_step_out + col * step_out] = input[row * ptr_step_in + col * step_in] + C; The implementation uses ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + + +
[in]inputinput array
[out]outputoutput array
[in]Cconstant value
[in]rowsmatrix rows
[in]colsmatrix cols
[in]padd_ininput array padding
[in]padd_outoutput array padding
[in]step_instep over input array (by default should be 1)
[in]step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 9 of file dspm_addc_f32_ansi.c.

+
10{
+
11 if (NULL == input) {
+ +
13 }
+
14 if (NULL == output) {
+ +
16 }
+
17
+
18 if (rows <= 0) {
+ +
20 }
+
21 if (cols <= 0) {
+ +
23 }
+
24
+
25 if (padd_in < 0) {
+ +
27 }
+
28 if (padd_out < 0) {
+ +
30 }
+
31
+
32 if (step_in <= 0) {
+ +
34 }
+
35 if (step_out <= 0) {
+ +
37 }
+
38
+
39 const int ptr_step_in = cols + padd_in;
+
40 const int ptr_step_out = cols + padd_out;
+
41 float *ptr_input = (float *)input;
+
42
+
43 for (int row = 0; row < rows; row++) {
+
44 for (int col = 0; col < cols; col++) {
+
45 output[col * step_out] = ptr_input[col * step_in] + C;
+
46 }
+
47 output += ptr_step_out;
+
48 ptr_input += ptr_step_in;
+
49 }
+
50 return ESP_OK;
+
51}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__addc__f32__ansi_8c.js b/docs/html/dspm__addc__f32__ansi_8c.js new file mode 100644 index 0000000..beab520 --- /dev/null +++ b/docs/html/dspm__addc__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dspm__addc__f32__ansi_8c = +[ + [ "dspm_addc_f32_ansi", "dspm__addc__f32__ansi_8c.html#a5a310b67a9b211f205c477394e8bbbe3", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__addc__f32__ansi_8c__incl.md5 b/docs/html/dspm__addc__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..9f4c4be --- /dev/null +++ b/docs/html/dspm__addc__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +15f5b99f953b08146af3bbe3831360ba \ No newline at end of file diff --git a/docs/html/dspm__addc__f32__ansi_8c__incl.svg b/docs/html/dspm__addc__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..10ebb7d --- /dev/null +++ b/docs/html/dspm__addc__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_addc_f32_ansi.c + + +Node1 + + +dspm_addc_f32_ansi.c + + + + + +Node2 + + +dspm_addc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_addc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dspm__addc__f32__ansi_8c__incl_org.svg b/docs/html/dspm__addc__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..b6becc5 --- /dev/null +++ b/docs/html/dspm__addc__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_addc_f32_ansi.c + + +Node1 + + +dspm_addc_f32_ansi.c + + + + + +Node2 + + +dspm_addc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_addc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dspm__addc__f32__ansi_8c_source.html b/docs/html/dspm__addc__f32__ansi_8c_source.html new file mode 100644 index 0000000..27dde47 --- /dev/null +++ b/docs/html/dspm__addc__f32__ansi_8c_source.html @@ -0,0 +1,165 @@ + + + + + + + +ESP-IDF Firmware: dspm_addc_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_addc_f32_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dspm_addc.h"
+
8
+
+
9esp_err_t dspm_addc_f32_ansi(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
+
10{
+
11 if (NULL == input) {
+ +
13 }
+
14 if (NULL == output) {
+ +
16 }
+
17
+
18 if (rows <= 0) {
+ +
20 }
+
21 if (cols <= 0) {
+ +
23 }
+
24
+
25 if (padd_in < 0) {
+ +
27 }
+
28 if (padd_out < 0) {
+ +
30 }
+
31
+
32 if (step_in <= 0) {
+ +
34 }
+
35 if (step_out <= 0) {
+ +
37 }
+
38
+
39 const int ptr_step_in = cols + padd_in;
+
40 const int ptr_step_out = cols + padd_out;
+
41 float *ptr_input = (float *)input;
+
42
+
43 for (int row = 0; row < rows; row++) {
+
44 for (int col = 0; col < cols; col++) {
+
45 output[col * step_out] = ptr_input[col * step_in] + C;
+
46 }
+
47 output += ptr_step_out;
+
48 ptr_input += ptr_step_in;
+
49 }
+
50 return ESP_OK;
+
51}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dspm_addc_f32_ansi(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
add a constant and an array with padding (add a constant and a sub-matrix)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+
+
+ + + + diff --git a/docs/html/dspm__addc__platform_8h.html b/docs/html/dspm__addc__platform_8h.html new file mode 100644 index 0000000..fefa87c --- /dev/null +++ b/docs/html/dspm__addc__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dspm_addc_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_addc_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dspm_addc_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dspm__addc__platform_8h__dep__incl.md5 b/docs/html/dspm__addc__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..9d514f6 --- /dev/null +++ b/docs/html/dspm__addc__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +86bfb214c3dff863d745e976c1f93f37 \ No newline at end of file diff --git a/docs/html/dspm__addc__platform_8h__dep__incl.svg b/docs/html/dspm__addc__platform_8h__dep__incl.svg new file mode 100644 index 0000000..6fc1f3e --- /dev/null +++ b/docs/html/dspm__addc__platform_8h__dep__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dspm_addc_platform.h + + +Node1 + + +dspm_addc_platform.h + + + + + +Node2 + + +dspm_addc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_addc_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm_matrix.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node39 + + +mat.cpp + + + + + +Node4->Node39 + + + + + + + + + + + + + diff --git a/docs/html/dspm__addc__platform_8h__dep__incl_org.svg b/docs/html/dspm__addc__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..dd704ef --- /dev/null +++ b/docs/html/dspm__addc__platform_8h__dep__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dspm_addc_platform.h + + +Node1 + + +dspm_addc_platform.h + + + + + +Node2 + + +dspm_addc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_addc_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm_matrix.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node39 + + +mat.cpp + + + + + +Node4->Node39 + + + + + + + + diff --git a/docs/html/dspm__addc__platform_8h__incl.md5 b/docs/html/dspm__addc__platform_8h__incl.md5 new file mode 100644 index 0000000..a9006e4 --- /dev/null +++ b/docs/html/dspm__addc__platform_8h__incl.md5 @@ -0,0 +1 @@ +66760cfad8ce7e691cc88da094eb87d6 \ No newline at end of file diff --git a/docs/html/dspm__addc__platform_8h__incl.svg b/docs/html/dspm__addc__platform_8h__incl.svg new file mode 100644 index 0000000..f95e1b7 --- /dev/null +++ b/docs/html/dspm__addc__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm_addc_platform.h + + +Node1 + + +dspm_addc_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dspm__addc__platform_8h__incl_org.svg b/docs/html/dspm__addc__platform_8h__incl_org.svg new file mode 100644 index 0000000..832df7e --- /dev/null +++ b/docs/html/dspm__addc__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm_addc_platform.h + + +Node1 + + +dspm_addc_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dspm__addc__platform_8h_source.html b/docs/html/dspm__addc__platform_8h_source.html new file mode 100644 index 0000000..9a8e9eb --- /dev/null +++ b/docs/html/dspm__addc__platform_8h_source.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: dspm_addc_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_addc_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dspm_addc_platform_H_
+
2#define _dspm_addc_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dspm_addc_f32_ae32_enabled 1
+
14
+
15#endif
+
16#endif // __XTENSA__
+
17
+
18
+
19#endif // _dspm_addc_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dspm__matrix_8h.html b/docs/html/dspm__matrix_8h.html new file mode 100644 index 0000000..a42aed3 --- /dev/null +++ b/docs/html/dspm__matrix_8h.html @@ -0,0 +1,130 @@ + + + + + + + +ESP-IDF Firmware: dspm_matrix.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_matrix.h File Reference
+
+
+
#include "dspm_add.h"
+#include "dspm_addc.h"
+#include "dspm_mult.h"
+#include "dspm_mulc.h"
+#include "dspm_sub.h"
+
+Include dependency graph for dspm_matrix.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dspm__matrix_8h__dep__incl.md5 b/docs/html/dspm__matrix_8h__dep__incl.md5 new file mode 100644 index 0000000..a59dc62 --- /dev/null +++ b/docs/html/dspm__matrix_8h__dep__incl.md5 @@ -0,0 +1 @@ +5872d0c01254e11a30528093ec1026eb \ No newline at end of file diff --git a/docs/html/dspm__matrix_8h__dep__incl.svg b/docs/html/dspm__matrix_8h__dep__incl.svg new file mode 100644 index 0000000..33233d3 --- /dev/null +++ b/docs/html/dspm__matrix_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm_matrix.h + + +Node1 + + +dspm_matrix.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node36 + + +mat.cpp + + + + + +Node1->Node36 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +dsp_tests.h + + + + + +Node2->Node14 + + + + + + + + +Node21 + + +graphics_support.h + + + + + +Node2->Node21 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node2->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node2->Node25 + + + + + + + + +Node27 + + +init_display.c + + + + + +Node2->Node27 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node2->Node28 + + + + + + + + +Node29 + + +kalman_filter_demo.cpp + + + + + +Node2->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node2->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node2->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +main.c + + + + + +Node2->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node2->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node2->Node35 + + + + + + + + +Node15 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fird_init_s16.c + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +dsps_firmr_f32_ansi.c + + + + + +Node14->Node17 + + + + + + + + +Node18 + + +dsps_firmr_init_f32.c + + + + + +Node14->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_s16.c + + + + + +Node14->Node19 + + + + + + + + +Node20 + + +dsps_firmr_s16_ansi.c + + + + + +Node14->Node20 + + + + + + + + +Node22 + + +graphics_support.cpp + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspm__matrix_8h__dep__incl_org.svg b/docs/html/dspm__matrix_8h__dep__incl_org.svg new file mode 100644 index 0000000..609b396 --- /dev/null +++ b/docs/html/dspm__matrix_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dspm_matrix.h + + +Node1 + + +dspm_matrix.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node36 + + +mat.cpp + + + + + +Node1->Node36 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +dsp_tests.h + + + + + +Node2->Node14 + + + + + + + + +Node21 + + +graphics_support.h + + + + + +Node2->Node21 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node2->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node2->Node25 + + + + + + + + +Node27 + + +init_display.c + + + + + +Node2->Node27 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node2->Node28 + + + + + + + + +Node29 + + +kalman_filter_demo.cpp + + + + + +Node2->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node2->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node2->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +main.c + + + + + +Node2->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node2->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node2->Node35 + + + + + + + + +Node15 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fird_init_s16.c + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +dsps_firmr_f32_ansi.c + + + + + +Node14->Node17 + + + + + + + + +Node18 + + +dsps_firmr_init_f32.c + + + + + +Node14->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_s16.c + + + + + +Node14->Node19 + + + + + + + + +Node20 + + +dsps_firmr_s16_ansi.c + + + + + +Node14->Node20 + + + + + + + + +Node22 + + +graphics_support.cpp + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + diff --git a/docs/html/dspm__matrix_8h__incl.md5 b/docs/html/dspm__matrix_8h__incl.md5 new file mode 100644 index 0000000..d59048f --- /dev/null +++ b/docs/html/dspm__matrix_8h__incl.md5 @@ -0,0 +1 @@ +dbb1dea49ec0048217c54c9e55025dbb \ No newline at end of file diff --git a/docs/html/dspm__matrix_8h__incl.svg b/docs/html/dspm__matrix_8h__incl.svg new file mode 100644 index 0000000..a848b7d --- /dev/null +++ b/docs/html/dspm__matrix_8h__incl.svg @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm_matrix.h + + +Node1 + + +dspm_matrix.h + + + + + +Node2 + + +dspm_add.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dspm_addc.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +dspm_mult.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dspm_mulc.h + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +dspm_sub.h + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm_addc_platform.h + + + + + +Node10->Node11 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12->Node3 + + + + + + + + +Node13 + + +dspm_mult_platform.h + + + + + +Node12->Node13 + + + + + + + + +Node13->Node9 + + + + + + + + +Node14->Node3 + + + + + + + + +Node15 + + +dspm_mulc_platform.h + + + + + +Node14->Node15 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16->Node3 + + + + + + + + +Node17 + + +dspm_sub_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspm__matrix_8h__incl_org.svg b/docs/html/dspm__matrix_8h__incl_org.svg new file mode 100644 index 0000000..a62032b --- /dev/null +++ b/docs/html/dspm__matrix_8h__incl_org.svg @@ -0,0 +1,363 @@ + + + + + + +dspm_matrix.h + + +Node1 + + +dspm_matrix.h + + + + + +Node2 + + +dspm_add.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dspm_addc.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +dspm_mult.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dspm_mulc.h + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +dspm_sub.h + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm_addc_platform.h + + + + + +Node10->Node11 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12->Node3 + + + + + + + + +Node13 + + +dspm_mult_platform.h + + + + + +Node12->Node13 + + + + + + + + +Node13->Node9 + + + + + + + + +Node14->Node3 + + + + + + + + +Node15 + + +dspm_mulc_platform.h + + + + + +Node14->Node15 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16->Node3 + + + + + + + + +Node17 + + +dspm_sub_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node9 + + + + + + + + diff --git a/docs/html/dspm__matrix_8h_source.html b/docs/html/dspm__matrix_8h_source.html new file mode 100644 index 0000000..732d6d3 --- /dev/null +++ b/docs/html/dspm__matrix_8h_source.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: dspm_matrix.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_matrix.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#ifndef _dspm_matrix_H_
+
8#define _dspm_matrix_H_
+
9
+
10#include "dspm_add.h"
+
11#include "dspm_addc.h"
+
12#include "dspm_mult.h"
+
13#include "dspm_mulc.h"
+
14#include "dspm_sub.h"
+
15
+
16#endif // _dspm_matrix_H_
+ + + + + +
+
+
+ + + + diff --git a/docs/html/dspm__mulc_8h.html b/docs/html/dspm__mulc_8h.html new file mode 100644 index 0000000..59b6360 --- /dev/null +++ b/docs/html/dspm__mulc_8h.html @@ -0,0 +1,344 @@ + + + + + + + +ESP-IDF Firmware: dspm_mulc.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mulc.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dspm_mulc_platform.h"
+
+Include dependency graph for dspm_mulc.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define dspm_mulc_f32   dspm_mulc_f32_ansi
+ + + + + +

+Functions

esp_err_t dspm_mulc_f32_ansi (const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
 multiply a constant and an array with padding
esp_err_t dspm_mulc_f32_ae32 (const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
+

Macro Definition Documentation

+ +

◆ dspm_mulc_f32

+ +
+
+ + + + +
#define dspm_mulc_f32   dspm_mulc_f32_ansi
+
+ +

Definition at line 57 of file dspm_mulc.h.

+ +

Referenced by dspm::operator*(), dspm::Mat::operator*=(), dspm::operator/(), and dspm::Mat::operator/=().

+ +
+
+

Function Documentation

+ +

◆ dspm_mulc_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mulc_f32_ae32 (const float * input,
float * output,
float C,
int rows,
int cols,
int padd_in,
int padd_out,
int step_in,
int step_out )
+
+ +

References C.

+ +
+
+ +

◆ dspm_mulc_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mulc_f32_ansi (const float * input,
float * output,
float C,
int rows,
int cols,
int padd_in,
int padd_out,
int step_in,
int step_out )
+
+ +

multiply a constant and an array with padding

+

The function multiplies a constant and an array defined as s sub-matrix with padding out[row * ptr_step_out + col * step_out] = input[row * ptr_step_in + col * step_in] * C; The implementation uses ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + + +
[in]inputinput array
[out]outputoutput array
[in]Cconstant value
[in]rowsinput matrix rows
[in]colsinput matrix cols
[in]padd_ininput array padding
[in]padd_outoutput array padding
[in]step_instep over input array (by default should be 1)
[in]step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 9 of file dspm_mulc_f32_ansi.c.

+
10{
+
11 if (NULL == input) {
+ +
13 }
+
14 if (NULL == output) {
+ +
16 }
+
17
+
18 if (rows <= 0) {
+ +
20 }
+
21 if (cols <= 0) {
+ +
23 }
+
24
+
25 if (padd_in < 0) {
+ +
27 }
+
28 if (padd_out < 0) {
+ +
30 }
+
31
+
32 if (step_in <= 0) {
+ +
34 }
+
35 if (step_out <= 0) {
+ +
37 }
+
38
+
39 const int ptr_input_step = cols + padd_in;
+
40 const int ptr_output_step = cols + padd_out;
+
41 float *ptr_input = (float *)input;
+
42
+
43 for (int row = 0; row < rows; row++) {
+
44 for (int col = 0; col < cols; col++) {
+
45 output[col * step_out] = ptr_input[col * step_in] * C;
+
46 }
+
47 ptr_input += ptr_input_step;
+
48 output += ptr_output_step;
+
49 }
+
50 return ESP_OK;
+
51}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__mulc_8h.js b/docs/html/dspm__mulc_8h.js new file mode 100644 index 0000000..6f872b1 --- /dev/null +++ b/docs/html/dspm__mulc_8h.js @@ -0,0 +1,6 @@ +var dspm__mulc_8h = +[ + [ "dspm_mulc_f32", "dspm__mulc_8h.html#ac3d397096331356af7ea2ae88590f1b8", null ], + [ "dspm_mulc_f32_ae32", "dspm__mulc_8h.html#aa41a6a8b2b72a454b4e109262d5deb72", null ], + [ "dspm_mulc_f32_ansi", "dspm__mulc_8h.html#abb1afd15402be07656ef706e91b2d0a8", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__mulc_8h__dep__incl.md5 b/docs/html/dspm__mulc_8h__dep__incl.md5 new file mode 100644 index 0000000..ff6b756 --- /dev/null +++ b/docs/html/dspm__mulc_8h__dep__incl.md5 @@ -0,0 +1 @@ +f07c340217f106283219cfe029ca4b2d \ No newline at end of file diff --git a/docs/html/dspm__mulc_8h__dep__incl.svg b/docs/html/dspm__mulc_8h__dep__incl.svg new file mode 100644 index 0000000..54d6afb --- /dev/null +++ b/docs/html/dspm__mulc_8h__dep__incl.svg @@ -0,0 +1,608 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm_mulc.h + + +Node1 + + +dspm_mulc.h + + + + + +Node2 + + +dspm_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dspm_mulc_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspm__mulc_8h__dep__incl_org.svg b/docs/html/dspm__mulc_8h__dep__incl_org.svg new file mode 100644 index 0000000..62e829f --- /dev/null +++ b/docs/html/dspm__mulc_8h__dep__incl_org.svg @@ -0,0 +1,525 @@ + + + + + + +dspm_mulc.h + + +Node1 + + +dspm_mulc.h + + + + + +Node2 + + +dspm_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dspm_mulc_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dspm__mulc_8h__incl.md5 b/docs/html/dspm__mulc_8h__incl.md5 new file mode 100644 index 0000000..0a3bd8f --- /dev/null +++ b/docs/html/dspm__mulc_8h__incl.md5 @@ -0,0 +1 @@ +d661046e76177459fb7cd4439537c98f \ No newline at end of file diff --git a/docs/html/dspm__mulc_8h__incl.svg b/docs/html/dspm__mulc_8h__incl.svg new file mode 100644 index 0000000..dcc69b9 --- /dev/null +++ b/docs/html/dspm__mulc_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_mulc.h + + +Node1 + + +dspm_mulc.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_mulc_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mulc_8h__incl_org.svg b/docs/html/dspm__mulc_8h__incl_org.svg new file mode 100644 index 0000000..3ccef04 --- /dev/null +++ b/docs/html/dspm__mulc_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_mulc.h + + +Node1 + + +dspm_mulc.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_mulc_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dspm__mulc_8h_source.html b/docs/html/dspm__mulc_8h_source.html new file mode 100644 index 0000000..48020d5 --- /dev/null +++ b/docs/html/dspm__mulc_8h_source.html @@ -0,0 +1,150 @@ + + + + + + + +ESP-IDF Firmware: dspm_mulc.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mulc.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7
+
8#ifndef _dspm_mulc_H_
+
9#define _dspm_mulc_H_
+
10#include "dsp_err.h"
+
11
+
12#include "dspm_mulc_platform.h"
+
13
+
14#ifdef __cplusplus
+
15extern "C"
+
16{
+
17#endif
+
18
+
41esp_err_t dspm_mulc_f32_ansi(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out);
+
42esp_err_t dspm_mulc_f32_ae32(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out);
+
44
+
45#ifdef __cplusplus
+
46}
+
47#endif
+
48
+
49#if CONFIG_DSP_OPTIMIZED
+
50#if (dspm_mulc_f32_ae32_enabled == 1)
+
51#define dspm_mulc_f32 dspm_mulc_f32_ae32
+
52#else //
+
53#define dspm_mulc_f32 dspm_mulc_f32_ansi
+
54#endif
+
55
+
56#else
+
57#define dspm_mulc_f32 dspm_mulc_f32_ansi
+
58#endif
+
59
+
60
+
61#endif // _dspm_mulc_H_
+ +
esp_err_t dspm_mulc_f32_ae32(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
+
esp_err_t dspm_mulc_f32_ansi(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
multiply a constant and an array with padding
+ +
int esp_err_t
Definition esp_err.h:21
+
float C[4][16]
Definition test_mmult.c:22
+
+
+
+ + + + diff --git a/docs/html/dspm__mulc__f32__ansi_8c.html b/docs/html/dspm__mulc__f32__ansi_8c.html new file mode 100644 index 0000000..94df2ab --- /dev/null +++ b/docs/html/dspm__mulc__f32__ansi_8c.html @@ -0,0 +1,255 @@ + + + + + + + +ESP-IDF Firmware: dspm_mulc_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mulc_f32_ansi.c File Reference
+
+
+
#include "dspm_mulc.h"
+
+Include dependency graph for dspm_mulc_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspm_mulc_f32_ansi (const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
 multiply a constant and an array with padding
+

Function Documentation

+ +

◆ dspm_mulc_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mulc_f32_ansi (const float * input,
float * output,
float C,
int rows,
int cols,
int padd_in,
int padd_out,
int step_in,
int step_out )
+
+ +

multiply a constant and an array with padding

+

The function multiplies a constant and an array defined as s sub-matrix with padding out[row * ptr_step_out + col * step_out] = input[row * ptr_step_in + col * step_in] * C; The implementation uses ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + + +
[in]inputinput array
[out]outputoutput array
[in]Cconstant value
[in]rowsinput matrix rows
[in]colsinput matrix cols
[in]padd_ininput array padding
[in]padd_outoutput array padding
[in]step_instep over input array (by default should be 1)
[in]step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 9 of file dspm_mulc_f32_ansi.c.

+
10{
+
11 if (NULL == input) {
+ +
13 }
+
14 if (NULL == output) {
+ +
16 }
+
17
+
18 if (rows <= 0) {
+ +
20 }
+
21 if (cols <= 0) {
+ +
23 }
+
24
+
25 if (padd_in < 0) {
+ +
27 }
+
28 if (padd_out < 0) {
+ +
30 }
+
31
+
32 if (step_in <= 0) {
+ +
34 }
+
35 if (step_out <= 0) {
+ +
37 }
+
38
+
39 const int ptr_input_step = cols + padd_in;
+
40 const int ptr_output_step = cols + padd_out;
+
41 float *ptr_input = (float *)input;
+
42
+
43 for (int row = 0; row < rows; row++) {
+
44 for (int col = 0; col < cols; col++) {
+
45 output[col * step_out] = ptr_input[col * step_in] * C;
+
46 }
+
47 ptr_input += ptr_input_step;
+
48 output += ptr_output_step;
+
49 }
+
50 return ESP_OK;
+
51}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__mulc__f32__ansi_8c.js b/docs/html/dspm__mulc__f32__ansi_8c.js new file mode 100644 index 0000000..a6013c4 --- /dev/null +++ b/docs/html/dspm__mulc__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dspm__mulc__f32__ansi_8c = +[ + [ "dspm_mulc_f32_ansi", "dspm__mulc__f32__ansi_8c.html#abb1afd15402be07656ef706e91b2d0a8", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__mulc__f32__ansi_8c__incl.md5 b/docs/html/dspm__mulc__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..32d494b --- /dev/null +++ b/docs/html/dspm__mulc__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +386e985813b0b594213734549cbd83a5 \ No newline at end of file diff --git a/docs/html/dspm__mulc__f32__ansi_8c__incl.svg b/docs/html/dspm__mulc__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..3ba80ee --- /dev/null +++ b/docs/html/dspm__mulc__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_mulc_f32_ansi.c + + +Node1 + + +dspm_mulc_f32_ansi.c + + + + + +Node2 + + +dspm_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_mulc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mulc__f32__ansi_8c__incl_org.svg b/docs/html/dspm__mulc__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..33eeb6d --- /dev/null +++ b/docs/html/dspm__mulc__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_mulc_f32_ansi.c + + +Node1 + + +dspm_mulc_f32_ansi.c + + + + + +Node2 + + +dspm_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_mulc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dspm__mulc__f32__ansi_8c_source.html b/docs/html/dspm__mulc__f32__ansi_8c_source.html new file mode 100644 index 0000000..b253b14 --- /dev/null +++ b/docs/html/dspm__mulc__f32__ansi_8c_source.html @@ -0,0 +1,165 @@ + + + + + + + +ESP-IDF Firmware: dspm_mulc_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mulc_f32_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dspm_mulc.h"
+
8
+
+
9esp_err_t dspm_mulc_f32_ansi(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
+
10{
+
11 if (NULL == input) {
+ +
13 }
+
14 if (NULL == output) {
+ +
16 }
+
17
+
18 if (rows <= 0) {
+ +
20 }
+
21 if (cols <= 0) {
+ +
23 }
+
24
+
25 if (padd_in < 0) {
+ +
27 }
+
28 if (padd_out < 0) {
+ +
30 }
+
31
+
32 if (step_in <= 0) {
+ +
34 }
+
35 if (step_out <= 0) {
+ +
37 }
+
38
+
39 const int ptr_input_step = cols + padd_in;
+
40 const int ptr_output_step = cols + padd_out;
+
41 float *ptr_input = (float *)input;
+
42
+
43 for (int row = 0; row < rows; row++) {
+
44 for (int col = 0; col < cols; col++) {
+
45 output[col * step_out] = ptr_input[col * step_in] * C;
+
46 }
+
47 ptr_input += ptr_input_step;
+
48 output += ptr_output_step;
+
49 }
+
50 return ESP_OK;
+
51}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dspm_mulc_f32_ansi(const float *input, float *output, float C, int rows, int cols, int padd_in, int padd_out, int step_in, int step_out)
multiply a constant and an array with padding
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+
+
+ + + + diff --git a/docs/html/dspm__mulc__platform_8h.html b/docs/html/dspm__mulc__platform_8h.html new file mode 100644 index 0000000..9baa500 --- /dev/null +++ b/docs/html/dspm__mulc__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dspm_mulc_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mulc_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dspm_mulc_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dspm__mulc__platform_8h__dep__incl.md5 b/docs/html/dspm__mulc__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..93fca0d --- /dev/null +++ b/docs/html/dspm__mulc__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +1170e1c4157a58ddaa19fcc9a91379c6 \ No newline at end of file diff --git a/docs/html/dspm__mulc__platform_8h__dep__incl.svg b/docs/html/dspm__mulc__platform_8h__dep__incl.svg new file mode 100644 index 0000000..8ab533c --- /dev/null +++ b/docs/html/dspm__mulc__platform_8h__dep__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dspm_mulc_platform.h + + +Node1 + + +dspm_mulc_platform.h + + + + + +Node2 + + +dspm_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dspm_mulc_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mulc__platform_8h__dep__incl_org.svg b/docs/html/dspm__mulc__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..e440314 --- /dev/null +++ b/docs/html/dspm__mulc__platform_8h__dep__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dspm_mulc_platform.h + + +Node1 + + +dspm_mulc_platform.h + + + + + +Node2 + + +dspm_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dspm_mulc_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + diff --git a/docs/html/dspm__mulc__platform_8h__incl.md5 b/docs/html/dspm__mulc__platform_8h__incl.md5 new file mode 100644 index 0000000..92353dd --- /dev/null +++ b/docs/html/dspm__mulc__platform_8h__incl.md5 @@ -0,0 +1 @@ +1779ec234be99eed2ca1588bcbb236f5 \ No newline at end of file diff --git a/docs/html/dspm__mulc__platform_8h__incl.svg b/docs/html/dspm__mulc__platform_8h__incl.svg new file mode 100644 index 0000000..7e9296b --- /dev/null +++ b/docs/html/dspm__mulc__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm_mulc_platform.h + + +Node1 + + +dspm_mulc_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mulc__platform_8h__incl_org.svg b/docs/html/dspm__mulc__platform_8h__incl_org.svg new file mode 100644 index 0000000..63b23e1 --- /dev/null +++ b/docs/html/dspm__mulc__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm_mulc_platform.h + + +Node1 + + +dspm_mulc_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dspm__mulc__platform_8h_source.html b/docs/html/dspm__mulc__platform_8h_source.html new file mode 100644 index 0000000..c15df31 --- /dev/null +++ b/docs/html/dspm__mulc__platform_8h_source.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dspm_mulc_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mulc_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dspm_mulc_platform_H_
+
2#define _dspm_mulc_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dspm_mulc_f32_ae32_enabled 1
+
14
+
15#endif
+
16
+
17#endif // __XTENSA__
+
18
+
19
+
20#endif // _dspm_mulc_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dspm__mult_8h.html b/docs/html/dspm__mult_8h.html new file mode 100644 index 0000000..63a2752 --- /dev/null +++ b/docs/html/dspm__mult_8h.html @@ -0,0 +1,1304 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dspm_mult_platform.h"
+
+Include dependency graph for dspm_mult.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dspm_mult_3x3x1_f32_ae32 (const float *A, const float *B, float *C)
 Matrix multiplication A[3x3]xB[3x1].
esp_err_t dspm_mult_3x3x3_f32_ae32 (const float *A, const float *B, float *C)
 Matrix multiplication A[3x3]xB[3x3].
esp_err_t dspm_mult_4x4x1_f32_ae32 (const float *A, const float *B, float *C)
 Matrix multiplication A[4x4]xB[4x1].
esp_err_t dspm_mult_4x4x4_f32_ae32 (const float *A, const float *B, float *C)
 Matrix multiplication A[4x4]xB[4x4].
esp_err_t dspm_mult_f32_ansi (const float *A, const float *B, float *C, int m, int n, int k)
 Matrix multiplication.
esp_err_t dspm_mult_f32_ae32 (const float *A, const float *B, float *C, int m, int n, int k)
esp_err_t dspm_mult_f32_aes3 (const float *A, const float *B, float *C, int m, int n, int k)
esp_err_t dspm_mult_f32_arp4 (const float *A, const float *B, float *C, int m, int n, int k)
esp_err_t dspm_mult_s16_ansi (const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
 Matrix multiplication 16 bit signeg int.
esp_err_t dspm_mult_s16_ae32 (const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
esp_err_t dspm_mult_s16_aes3 (const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
esp_err_t dspm_mult_s16_arp4 (const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
#define dspm_mult_s16   dspm_mult_s16_ansi
#define dspm_mult_f32   dspm_mult_f32_ansi
#define dspm_mult_3x3x1_f32(A, B, C)
#define dsps_sub_f32   dsps_sub_f32_ansi
#define dsps_add_f32   dsps_add_f32_ansi
#define dspm_mult_4x4x4_f32(A, B, C)
#define dspm_mult_ex_f32   dspm_mult_ex_f32_ansi
#define dspm_mult_3x3x3_f32(A, B, C)
#define dspm_mult_4x4x1_f32(A, B, C)
esp_err_t dspm_mult_ex_f32_ansi (const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd)
 Matrix subset multiplication.
esp_err_t dspm_mult_ex_f32_ae32 (const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd)
esp_err_t dspm_mult_ex_f32_aes3 (const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd)
esp_err_t dspm_mult_ex_f32_arp4 (const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd)
+

Macro Definition Documentation

+ +

◆ dspm_mult_3x3x1_f32

+ +
+
+ + + + + + + + + + + + + + + + +
#define dspm_mult_3x3x1_f32( A,
B,
C )
+
+Value:
dspm_mult_f32(A,B,C, 3, 3, 1)
+
#define dspm_mult_f32
Definition dspm_mult.h:221
+
float C[4][16]
Definition test_mmult.c:22
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
+

Definition at line 222 of file dspm_mult.h.

+ +
+
+ +

◆ dspm_mult_3x3x3_f32

+ +
+
+ + + + + + + + + + + + + + + + +
#define dspm_mult_3x3x3_f32( A,
B,
C )
+
+Value:
dspm_mult_f32(A,B,C,3,3,3);
+
+

Definition at line 227 of file dspm_mult.h.

+ +
+
+ +

◆ dspm_mult_4x4x1_f32

+ +
+
+ + + + + + + + + + + + + + + + +
#define dspm_mult_4x4x1_f32( A,
B,
C )
+
+Value:
dspm_mult_f32(A,B,C, 4, 4, 1)
+
+

Definition at line 228 of file dspm_mult.h.

+ +
+
+ +

◆ dspm_mult_4x4x4_f32

+ +
+
+ + + + + + + + + + + + + + + + +
#define dspm_mult_4x4x4_f32( A,
B,
C )
+
+Value:
dspm_mult_f32(A,B,C, 4, 4, 4)
+
+

Definition at line 225 of file dspm_mult.h.

+ +
+
+ +

◆ dspm_mult_ex_f32

+ +
+
+ + + + +
#define dspm_mult_ex_f32   dspm_mult_ex_f32_ansi
+
+ +

Definition at line 226 of file dspm_mult.h.

+ +

Referenced by dspm::operator*(), and dspm::Mat::operator*=().

+ +
+
+ +

◆ dspm_mult_f32

+ +
+
+ + + + +
#define dspm_mult_f32   dspm_mult_f32_ansi
+
+ +

Definition at line 221 of file dspm_mult.h.

+ +

Referenced by dspm::operator*(), and dspm::Mat::operator*=().

+ +
+
+ +

◆ dspm_mult_s16

+ +
+
+ + + + +
#define dspm_mult_s16   dspm_mult_s16_ansi
+
+ +

Definition at line 220 of file dspm_mult.h.

+ +
+
+ +

◆ dsps_add_f32

+ +
+
+ + + + +
#define dsps_add_f32   dsps_add_f32_ansi
+
+ +

Definition at line 224 of file dspm_mult.h.

+ +
+
+ +

◆ dsps_sub_f32

+ +
+
+ + + + +
#define dsps_sub_f32   dsps_sub_f32_ansi
+
+ +

Definition at line 223 of file dspm_mult.h.

+ +
+
+

Function Documentation

+ +

◆ dspm_mult_3x3x1_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_3x3x1_f32_ae32 (const float * A,
const float * B,
float * C )
+
+ +

Matrix multiplication A[3x3]xB[3x1].

+

Matrix multiplication for two floating point matrices 3x3 and 3x1: C[1][3] = A[3][3] * B[3][1] The implementation is optimized for ESP32 chip.

+
Parameters
+ + + + +
[in]Ainput matrix A[3][3]
[in]Binput matrix/vector B[3][1]
Cresult matrix/vector C[3][3]
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

References A, B, and C.

+ +
+
+ +

◆ dspm_mult_3x3x3_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_3x3x3_f32_ae32 (const float * A,
const float * B,
float * C )
+
+ +

Matrix multiplication A[3x3]xB[3x3].

+

Matrix multiplication for two square 3x3 floating point matrices: C[3][3] = A[3][3] * B[3][3] The implementation is optimized for ESP32 chip.

+
Parameters
+ + + + +
[in]Ainput matrix A[3][3]
[in]Binput matrix B[3][3]
Cresult matrix C[3][3]
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

References A, B, and C.

+ +
+
+ +

◆ dspm_mult_4x4x1_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_4x4x1_f32_ae32 (const float * A,
const float * B,
float * C )
+
+ +

Matrix multiplication A[4x4]xB[4x1].

+

Matrix multiplication for two floating point matrices 4x4 and 4x1: C[1][4] = A[4][4] * B[4][1] The implementation is optimized for ESP32 chip.

+
Parameters
+ + + + +
[in]Ainput matrix A[4][4]
[in]Binput matrix/vector B[4][1]
Cresult matrix/vector C[4][4]
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

References A, B, and C.

+ +
+
+ +

◆ dspm_mult_4x4x4_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_4x4x4_f32_ae32 (const float * A,
const float * B,
float * C )
+
+ +

Matrix multiplication A[4x4]xB[4x4].

+

Matrix multiplication for two square 3x3 floating point matrices: C[4][4] = A[4][4] * B[4][4] The implementation is optimized for ESP32 chip.

+
Parameters
+ + + + +
[in]Ainput matrix A[4][4]
[in]Binput matrix B[4][4]
Cresult matrix C[4][4]
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

References A, B, C, k, m, and n.

+ +
+
+ +

◆ dspm_mult_ex_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_ex_f32_ae32 (const float * A,
const float * B,
float * C,
int m,
int n,
int k,
int A_padd,
int B_padd,
int C_padd )
+
+ +

References A, B, C, k, m, and n.

+ +
+
+ +

◆ dspm_mult_ex_f32_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_ex_f32_aes3 (const float * A,
const float * B,
float * C,
int m,
int n,
int k,
int A_padd,
int B_padd,
int C_padd )
+
+ +

References A, B, C, k, m, and n.

+ +
+
+ +

◆ dspm_mult_ex_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_ex_f32_ansi (const float * A,
const float * B,
float * C,
int m,
int n,
int k,
int A_padd,
int B_padd,
int C_padd )
+
+ +

Matrix subset multiplication.

+

One or all of the matrices are matrix subsets, described with pointers and strides Matrix multiplication for two floating point matrices: C[m][k] = A[m][n] * B[n][k] The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + + + + +
[in]Ainput matrix A[m][n]
[in]Binput matrix B[n][k]
[out]Cresult matrix C[m][k]
[in]mmatrix dimension
[in]nmatrix dimension
[in]kmatrix dimension
[in]A_paddinput matrix A padding
[in]B_paddinput matrix B padding
[in]C_paddresult matrix C padding
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 12 of file dspm_mult_ex_f32_ansi.c.

+
13{
+
14 if (NULL == A) {
+ +
16 }
+
17 if (NULL == B) {
+ +
19 }
+
20 if (NULL == C) {
+ +
22 }
+
23
+
24 if (A_rows <= 0) {
+ +
26 }
+
27 if (A_cols <= 0) {
+ +
29 }
+
30 if (B_cols <= 0) {
+ +
32 }
+
33
+
34 if (A_padding < 0) {
+ +
36 }
+
37 if (B_padding < 0) {
+ +
39 }
+
40 if (C_padding < 0) {
+ +
42 }
+
43
+
44 const int A_step = A_cols + A_padding;
+
45 const int B_step = B_cols + B_padding;
+
46 const int C_step = B_cols + C_padding;
+
47
+
48 for (int i = 0; i < A_rows; i++) {
+
49 for (int j = 0; j < B_cols; j++) {
+
50 C[i * C_step + j] = A[i * A_step] * B[j];
+
51 for (int s = 1; s < A_cols; s++) {
+
52 C[i * C_step + j] += A[i * A_step + s] * B[s * B_step + j];
+
53 }
+
54 }
+
55 }
+
56 return ESP_OK;
+
57}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References A, B, C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+ +

◆ dspm_mult_ex_f32_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_ex_f32_arp4 (const float * A,
const float * B,
float * C,
int m,
int n,
int k,
int A_padd,
int B_padd,
int C_padd )
+
+ +

References A, B, C, k, m, and n.

+ +
+
+ +

◆ dspm_mult_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_f32_ae32 (const float * A,
const float * B,
float * C,
int m,
int n,
int k )
+
+ +

References A, B, C, k, m, and n.

+ +

Referenced by test_mmult().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dspm_mult_f32_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_f32_aes3 (const float * A,
const float * B,
float * C,
int m,
int n,
int k )
+
+ +

References A, B, C, k, m, and n.

+ +

Referenced by test_mmult().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dspm_mult_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_f32_ansi (const float * A,
const float * B,
float * C,
int m,
int n,
int k )
+
+ +

Matrix multiplication.

+

Matrix multiplication for two floating point matrices: C[m][k] = A[m][n] * B[n][k] The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + +
[in]Ainput matrix A[m][n]
[in]Binput matrix B[n][k]
Cresult matrix C[m][k]
[in]mmatrix dimension
[in]nmatrix dimension
[in]kmatrix dimension
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 22 of file dspm_mult_f32_ansi.c.

+
23{
+
24 for (int i = 0 ; i < m ; i++) {
+
25 for (int j = 0 ; j < k ; j++) {
+
26 C[i * k + j] = A[i * n] * B[j];
+
27 for (int s = 1; s < n ; s++) {
+
28 C[i * k + j] += A[i * n + s] * B[s * k + j];
+
29 }
+
30 }
+
31 }
+
32 return ESP_OK;
+
33}
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+

References A, B, C, ESP_OK, k, m, and n.

+ +
+
+ +

◆ dspm_mult_f32_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_f32_arp4 (const float * A,
const float * B,
float * C,
int m,
int n,
int k )
+
+ +

References A, B, C, k, m, and n.

+ +
+
+ +

◆ dspm_mult_s16_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_s16_ae32 (const int16_t * A,
const int16_t * B,
int16_t * C,
int m,
int n,
int k,
int shift )
+
+ +

References A, B, C, k, m, and n.

+ +
+
+ +

◆ dspm_mult_s16_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_s16_aes3 (const int16_t * A,
const int16_t * B,
int16_t * C,
int m,
int n,
int k,
int shift )
+
+ +

References A, B, C, k, m, and n.

+ +
+
+ +

◆ dspm_mult_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_s16_ansi (const int16_t * A,
const int16_t * B,
int16_t * C,
int m,
int n,
int k,
int shift )
+
+ +

Matrix multiplication 16 bit signeg int.

+

Matrix multiplication for two signed 16 bit fixed point matrices: C[m][k] = (A[m][n] * B[n][k]) >> (15- shift) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + + +
[in]Ainput matrix A[m][n]
[in]Binput matrix B[n][k]
Cresult matrix C[m][k]
[in]mmatrix dimension
[in]nmatrix dimension
[in]kmatrix dimension
[in]shiftevery result will be shifted and stored as 16 bit signed value.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 21 of file dspm_mult_s16_ansi.c.

+
22{
+
23 int final_shift = shift - 15;
+
24 for (int i = 0 ; i < m ; i++) {
+
25 for (int j = 0 ; j < k ; j++) {
+
26 // This code also could be used
+
27 //dsps_dotprode_f32_ae32(&A[i*n],&B[j],&C[i*k + j],n,1,n);
+
28 long long acc = 0x7fff >> shift;
+
29 for (int s = 0; s < n ; s++) {
+
30 acc += (int32_t)A[i * n + s] * (int32_t)B[s * k + j];
+
31 }
+
32 if (final_shift > 0) {
+
33 C[i * k + j] = (acc << final_shift);
+
34 } else {
+
35 C[i * k + j] = (acc >> (-final_shift));
+
36 }
+
37 }
+
38 }
+
39 return ESP_OK;
+
40}
+
+

References A, B, C, ESP_OK, k, m, and n.

+ +
+
+ +

◆ dspm_mult_s16_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_s16_arp4 (const int16_t * A,
const int16_t * B,
int16_t * C,
int m,
int n,
int k,
int shift )
+
+ +

References A, B, C, k, m, and n.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__mult_8h.js b/docs/html/dspm__mult_8h.js new file mode 100644 index 0000000..8613295 --- /dev/null +++ b/docs/html/dspm__mult_8h.js @@ -0,0 +1,28 @@ +var dspm__mult_8h = +[ + [ "dspm_mult_3x3x1_f32", "dspm__mult_8h.html#acf845ba247a2b93ad2a6b7bcb7072e19", null ], + [ "dspm_mult_3x3x3_f32", "dspm__mult_8h.html#accd21e4692e0778dca7154d9d74fc69e", null ], + [ "dspm_mult_4x4x1_f32", "dspm__mult_8h.html#a425be330fd928a9fc7cab8192ae9cab9", null ], + [ "dspm_mult_4x4x4_f32", "dspm__mult_8h.html#adfea768963f0b9c4792cd5645674aaf7", null ], + [ "dspm_mult_ex_f32", "dspm__mult_8h.html#a4058e1d71aa9f6686bf9039984ef3d2b", null ], + [ "dspm_mult_f32", "dspm__mult_8h.html#adb7839f78116b3d4878310b7affa2d0a", null ], + [ "dspm_mult_s16", "dspm__mult_8h.html#aeb6df7fd44c013577f967a3bc7f4f7b6", null ], + [ "dsps_add_f32", "dspm__mult_8h.html#a4f223284901dc0e73718ff90bf7c7c62", null ], + [ "dsps_sub_f32", "dspm__mult_8h.html#a4bf3ac7d22a45e6d34ce4354f126b255", null ], + [ "dspm_mult_3x3x1_f32_ae32", "dspm__mult_8h.html#a88404df7132af785a1bdb2f8b9aa3c36", null ], + [ "dspm_mult_3x3x3_f32_ae32", "dspm__mult_8h.html#a0900f988a32cd84494906464e3b664e2", null ], + [ "dspm_mult_4x4x1_f32_ae32", "dspm__mult_8h.html#ab0983baab232067f669ca5c139647c7a", null ], + [ "dspm_mult_4x4x4_f32_ae32", "dspm__mult_8h.html#a4b4b8f02345aca2b0b1aecce197ff7d2", null ], + [ "dspm_mult_ex_f32_ae32", "dspm__mult_8h.html#a71d969b1124945b82e7e2ccb3793b395", null ], + [ "dspm_mult_ex_f32_aes3", "dspm__mult_8h.html#afebc5b0bd1d51092acb35df3ff841889", null ], + [ "dspm_mult_ex_f32_ansi", "dspm__mult_8h.html#aab723a693cc2de422b1cb2c17a653b8c", null ], + [ "dspm_mult_ex_f32_arp4", "dspm__mult_8h.html#aed02396640dd104ea27ea2d6cceadf62", null ], + [ "dspm_mult_f32_ae32", "dspm__mult_8h.html#aa24068a1bb8cac4c1d41f8433a1bfdef", null ], + [ "dspm_mult_f32_aes3", "dspm__mult_8h.html#a2493a1df5776923a37b0525ee23cc148", null ], + [ "dspm_mult_f32_ansi", "dspm__mult_8h.html#ab2d9751c10ea4e02a7e06818570206b4", null ], + [ "dspm_mult_f32_arp4", "dspm__mult_8h.html#a81ce01d914a2f72bdd429bbf748b5e5d", null ], + [ "dspm_mult_s16_ae32", "dspm__mult_8h.html#ae2dc27e9cef2263368effa245311286a", null ], + [ "dspm_mult_s16_aes3", "dspm__mult_8h.html#a939b37535c9fb9b07d62fe9fb47abb0b", null ], + [ "dspm_mult_s16_ansi", "dspm__mult_8h.html#a599d1350fa87ca9d86498471787d0bab", null ], + [ "dspm_mult_s16_arp4", "dspm__mult_8h.html#a11484473361dd21ad7f550fbb8b8557d", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__mult_8h__dep__incl.md5 b/docs/html/dspm__mult_8h__dep__incl.md5 new file mode 100644 index 0000000..2f1e01c --- /dev/null +++ b/docs/html/dspm__mult_8h__dep__incl.md5 @@ -0,0 +1 @@ +14d6756d5a71825a92987a87ef299dc7 \ No newline at end of file diff --git a/docs/html/dspm__mult_8h__dep__incl.svg b/docs/html/dspm__mult_8h__dep__incl.svg new file mode 100644 index 0000000..97da8c7 --- /dev/null +++ b/docs/html/dspm__mult_8h__dep__incl.svg @@ -0,0 +1,680 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm_mult.h + + +Node1 + + +dspm_mult.h + + + + + +Node2 + + +dspm_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dspm_mult_f32_ansi.c + + + + + +Node1->Node39 + + + + + + + + +Node40 + + +dspm_mult_s16_ansi.c + + + + + +Node1->Node40 + + + + + + + + +Node41 + + +test_fft2r.c + + + + + +Node1->Node41 + + + + + + + + +Node42 + + +test_mmult.c + + + + + +Node1->Node42 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspm__mult_8h__dep__incl_org.svg b/docs/html/dspm__mult_8h__dep__incl_org.svg new file mode 100644 index 0000000..f76ff76 --- /dev/null +++ b/docs/html/dspm__mult_8h__dep__incl_org.svg @@ -0,0 +1,597 @@ + + + + + + +dspm_mult.h + + +Node1 + + +dspm_mult.h + + + + + +Node2 + + +dspm_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dspm_mult_f32_ansi.c + + + + + +Node1->Node39 + + + + + + + + +Node40 + + +dspm_mult_s16_ansi.c + + + + + +Node1->Node40 + + + + + + + + +Node41 + + +test_fft2r.c + + + + + +Node1->Node41 + + + + + + + + +Node42 + + +test_mmult.c + + + + + +Node1->Node42 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dspm__mult_8h__incl.md5 b/docs/html/dspm__mult_8h__incl.md5 new file mode 100644 index 0000000..5482acc --- /dev/null +++ b/docs/html/dspm__mult_8h__incl.md5 @@ -0,0 +1 @@ +8cc289994592e601fb05844e5411b348 \ No newline at end of file diff --git a/docs/html/dspm__mult_8h__incl.svg b/docs/html/dspm__mult_8h__incl.svg new file mode 100644 index 0000000..1bf9bc4 --- /dev/null +++ b/docs/html/dspm__mult_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_mult.h + + +Node1 + + +dspm_mult.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_mult_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mult_8h__incl_org.svg b/docs/html/dspm__mult_8h__incl_org.svg new file mode 100644 index 0000000..0d8e68b --- /dev/null +++ b/docs/html/dspm__mult_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_mult.h + + +Node1 + + +dspm_mult.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_mult_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph.md5 b/docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph.md5 new file mode 100644 index 0000000..83fe8ee --- /dev/null +++ b/docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph.md5 @@ -0,0 +1 @@ +cf2780a5384a71c3d23f360ed2acc634 \ No newline at end of file diff --git a/docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph.svg b/docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph.svg new file mode 100644 index 0000000..5ee7c09 --- /dev/null +++ b/docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm_mult_f32_aes3 + + +Node1 + + +dspm_mult_f32_aes3 + + + + + +Node2 + + +test_mmult + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph_org.svg b/docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph_org.svg new file mode 100644 index 0000000..48619c9 --- /dev/null +++ b/docs/html/dspm__mult_8h_a2493a1df5776923a37b0525ee23cc148_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm_mult_f32_aes3 + + +Node1 + + +dspm_mult_f32_aes3 + + + + + +Node2 + + +test_mmult + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph.md5 b/docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph.md5 new file mode 100644 index 0000000..2c9b230 --- /dev/null +++ b/docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph.md5 @@ -0,0 +1 @@ +def4f79392da5cd14a2afeec841098f7 \ No newline at end of file diff --git a/docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph.svg b/docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph.svg new file mode 100644 index 0000000..c13e554 --- /dev/null +++ b/docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dspm_mult_f32_ae32 + + +Node1 + + +dspm_mult_f32_ae32 + + + + + +Node2 + + +test_mmult + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph_org.svg b/docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph_org.svg new file mode 100644 index 0000000..cbb140b --- /dev/null +++ b/docs/html/dspm__mult_8h_aa24068a1bb8cac4c1d41f8433a1bfdef_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dspm_mult_f32_ae32 + + +Node1 + + +dspm_mult_f32_ae32 + + + + + +Node2 + + +test_mmult + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dspm__mult_8h_source.html b/docs/html/dspm__mult_8h_source.html new file mode 100644 index 0000000..66dd162 --- /dev/null +++ b/docs/html/dspm__mult_8h_source.html @@ -0,0 +1,250 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2023 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dspm_mult_H_
+
16#define _dspm_mult_H_
+
17
+
18#include "dsp_err.h"
+
19#include "dspm_mult_platform.h"
+
20
+
21#ifdef __cplusplus
+
22extern "C"
+
23{
+
24#endif
+
25
+
44esp_err_t dspm_mult_f32_ansi(const float *A, const float *B, float *C, int m, int n, int k);
+
45esp_err_t dspm_mult_f32_ae32(const float *A, const float *B, float *C, int m, int n, int k);
+
46esp_err_t dspm_mult_f32_aes3(const float *A, const float *B, float *C, int m, int n, int k);
+
47esp_err_t dspm_mult_f32_arp4(const float *A, const float *B, float *C, int m, int n, int k);
+
49
+
50
+
64esp_err_t dspm_mult_3x3x1_f32_ae32(const float *A, const float *B, float *C);
+
65
+
79esp_err_t dspm_mult_3x3x3_f32_ae32(const float *A, const float *B, float *C);
+
80
+
94
+
95esp_err_t dspm_mult_4x4x1_f32_ae32(const float *A, const float *B, float *C);
+
96
+
110esp_err_t dspm_mult_4x4x4_f32_ae32(const float *A, const float *B, float *C);
+
111
+
131esp_err_t dspm_mult_s16_ansi(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift);
+
132esp_err_t dspm_mult_s16_ae32(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift);
+
133esp_err_t dspm_mult_s16_aes3(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift);
+
134esp_err_t dspm_mult_s16_arp4(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift);
+
136
+
159esp_err_t dspm_mult_ex_f32_ansi(const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd);
+
160esp_err_t dspm_mult_ex_f32_ae32(const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd);
+
161esp_err_t dspm_mult_ex_f32_aes3(const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd);
+
162esp_err_t dspm_mult_ex_f32_arp4(const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd);
+
163
+
164#ifdef __cplusplus
+
165}
+
166#endif
+
167
+
168#if CONFIG_DSP_OPTIMIZED
+
169
+
170
+
171#if (dspm_mult_s16_aes3_enabled == 1)
+
172#define dspm_mult_s16 dspm_mult_s16_aes3
+
173#elif (dspm_mult_s16_ae32_enabled == 1)
+
174#define dspm_mult_s16 dspm_mult_s16_ae32
+
175#elif (dspm_mult_s16_arp4_enabled == 1)
+
176#define dspm_mult_s16 dspm_mult_s16_arp4
+
177#else
+
178#define dspm_mult_s16 dspm_mult_s16_ansi
+
179#endif
+
180
+
181#if (dspm_mult_f32_aes3_enabled == 1)
+
182#define dspm_mult_f32 dspm_mult_f32_aes3
+
183#define dspm_mult_ex_f32 dspm_mult_ex_f32_aes3
+
184#elif (dspm_mult_f32_ae32_enabled == 1)
+
185#define dspm_mult_f32 dspm_mult_f32_ae32
+
186#define dspm_mult_ex_f32 dspm_mult_ex_f32_ae32
+
187#elif (dspm_mult_f32_arp4_enabled == 1)
+
188#define dspm_mult_f32 dspm_mult_f32_arp4
+
189#define dspm_mult_ex_f32 dspm_mult_ex_f32_arp4
+
190#else
+
191#define dspm_mult_f32 dspm_mult_f32_ansi
+
192#define dspm_mult_ex_f32 dspm_mult_ex_f32_ansi
+
193#endif
+
194
+
195#if (dspm_mult_3x3x1_f32_ae32_enabled == 1)
+
196#define dspm_mult_3x3x1_f32 dspm_mult_3x3x1_f32_ae32
+
197#else
+
198#define dspm_mult_3x3x1_f32(A,B,C) dspm_mult_f32(A,B,C, 3, 3, 1)
+
199#endif
+
200#if (dspm_mult_3x3x3_f32_ae32_enabled == 1)
+
201#define dspm_mult_3x3x3_f32(A,B,C) dspm_mult_3x3x3_f32_ae32(A,B,C)
+
202#else
+
203#define dspm_mult_3x3x3_f32(A,B,C) dspm_mult_f32(A,B,C,3,3,3);
+
204#endif
+
205#if (dspm_mult_4x4x1_f32_ae32_enabled == 1)
+
206#define dspm_mult_4x4x1_f32(A,B,C) dspm_mult_4x4x1_f32_ae32(A,B,C)
+
207#else
+
208#define dspm_mult_4x4x1_f32(A,B,C) dspm_mult_f32(A,B,C, 4, 4, 1)
+
209#endif
+
210
+
211#if (dspm_mult_f32_aes3_enabled == 1)
+
212#define dspm_mult_4x4x4_f32(A,B,C) dspm_mult_f32_aes3(A,B,C, 4, 4, 4)
+
213#elif (dspm_mult_4x4x4_f32_ae32_enabled == 1)
+
214#define dspm_mult_4x4x4_f32 dspm_mult_4x4x4_f32_ae32
+
215#else
+
216#define dspm_mult_4x4x4_f32(A,B,C) dspm_mult_f32(A,B,C, 4, 4, 4)
+
217#endif
+
218
+
219#else
+
220#define dspm_mult_s16 dspm_mult_s16_ansi
+
221#define dspm_mult_f32 dspm_mult_f32_ansi
+
222#define dspm_mult_3x3x1_f32(A,B,C) dspm_mult_f32(A,B,C, 3, 3, 1)
+
223#define dsps_sub_f32 dsps_sub_f32_ansi
+
224#define dsps_add_f32 dsps_add_f32_ansi
+
225#define dspm_mult_4x4x4_f32(A,B,C) dspm_mult_f32(A,B,C, 4, 4, 4)
+
226#define dspm_mult_ex_f32 dspm_mult_ex_f32_ansi
+
227#define dspm_mult_3x3x3_f32(A,B,C) dspm_mult_f32(A,B,C,3,3,3);
+
228#define dspm_mult_4x4x1_f32(A,B,C) dspm_mult_f32(A,B,C, 4, 4, 1)
+
229#endif // CONFIG_DSP_OPTIMIZED
+
230
+
231
+
232#endif // _dspm_mult_H_
+ +
esp_err_t dspm_mult_3x3x3_f32_ae32(const float *A, const float *B, float *C)
Matrix multiplication A[3x3]xB[3x3].
+
esp_err_t dspm_mult_s16_arp4(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
+
esp_err_t dspm_mult_f32_aes3(const float *A, const float *B, float *C, int m, int n, int k)
+
esp_err_t dspm_mult_4x4x4_f32_ae32(const float *A, const float *B, float *C)
Matrix multiplication A[4x4]xB[4x4].
+
esp_err_t dspm_mult_s16_ansi(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
Matrix multiplication 16 bit signeg int.
+
esp_err_t dspm_mult_ex_f32_ae32(const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd)
+
esp_err_t dspm_mult_f32_arp4(const float *A, const float *B, float *C, int m, int n, int k)
+
esp_err_t dspm_mult_3x3x1_f32_ae32(const float *A, const float *B, float *C)
Matrix multiplication A[3x3]xB[3x1].
+
esp_err_t dspm_mult_s16_aes3(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
+
esp_err_t dspm_mult_f32_ae32(const float *A, const float *B, float *C, int m, int n, int k)
+
esp_err_t dspm_mult_ex_f32_ansi(const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd)
Matrix subset multiplication.
+
esp_err_t dspm_mult_4x4x1_f32_ae32(const float *A, const float *B, float *C)
Matrix multiplication A[4x4]xB[4x1].
+
esp_err_t dspm_mult_f32_ansi(const float *A, const float *B, float *C, int m, int n, int k)
Matrix multiplication.
+
esp_err_t dspm_mult_s16_ae32(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
+
esp_err_t dspm_mult_ex_f32_arp4(const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd)
+
esp_err_t dspm_mult_ex_f32_aes3(const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd)
+ +
int esp_err_t
Definition esp_err.h:21
+
float C[4][16]
Definition test_mmult.c:22
+
const int m
Definition test_mmult.c:16
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/dspm__mult__ex__f32__ansi_8c.html b/docs/html/dspm__mult__ex__f32__ansi_8c.html new file mode 100644 index 0000000..b2b6a20 --- /dev/null +++ b/docs/html/dspm__mult__ex__f32__ansi_8c.html @@ -0,0 +1,260 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult_ex_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult_ex_f32_ansi.c File Reference
+
+
+
#include "dspm_mult.h"
+
+Include dependency graph for dspm_mult_ex_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspm_mult_ex_f32_ansi (const float *A, const float *B, float *C, int A_rows, int A_cols, int B_cols, int A_padding, int B_padding, int C_padding)
 Matrix subset multiplication.
+

Function Documentation

+ +

◆ dspm_mult_ex_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_ex_f32_ansi (const float * A,
const float * B,
float * C,
int m,
int n,
int k,
int A_padd,
int B_padd,
int C_padd )
+
+ +

Matrix subset multiplication.

+

One or all of the matrices are matrix subsets, described with pointers and strides Matrix multiplication for two floating point matrices: C[m][k] = A[m][n] * B[n][k] The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + + + + +
[in]Ainput matrix A[m][n]
[in]Binput matrix B[n][k]
[out]Cresult matrix C[m][k]
[in]mmatrix dimension
[in]nmatrix dimension
[in]kmatrix dimension
[in]A_paddinput matrix A padding
[in]B_paddinput matrix B padding
[in]C_paddresult matrix C padding
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 12 of file dspm_mult_ex_f32_ansi.c.

+
13{
+
14 if (NULL == A) {
+ +
16 }
+
17 if (NULL == B) {
+ +
19 }
+
20 if (NULL == C) {
+ +
22 }
+
23
+
24 if (A_rows <= 0) {
+ +
26 }
+
27 if (A_cols <= 0) {
+ +
29 }
+
30 if (B_cols <= 0) {
+ +
32 }
+
33
+
34 if (A_padding < 0) {
+ +
36 }
+
37 if (B_padding < 0) {
+ +
39 }
+
40 if (C_padding < 0) {
+ +
42 }
+
43
+
44 const int A_step = A_cols + A_padding;
+
45 const int B_step = B_cols + B_padding;
+
46 const int C_step = B_cols + C_padding;
+
47
+
48 for (int i = 0; i < A_rows; i++) {
+
49 for (int j = 0; j < B_cols; j++) {
+
50 C[i * C_step + j] = A[i * A_step] * B[j];
+
51 for (int s = 1; s < A_cols; s++) {
+
52 C[i * C_step + j] += A[i * A_step + s] * B[s * B_step + j];
+
53 }
+
54 }
+
55 }
+
56 return ESP_OK;
+
57}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
+

References A, B, C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__mult__ex__f32__ansi_8c.js b/docs/html/dspm__mult__ex__f32__ansi_8c.js new file mode 100644 index 0000000..cc53e5d --- /dev/null +++ b/docs/html/dspm__mult__ex__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dspm__mult__ex__f32__ansi_8c = +[ + [ "dspm_mult_ex_f32_ansi", "dspm__mult__ex__f32__ansi_8c.html#a59fbe8a85bb4e53e4e857922cc03a45a", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__mult__ex__f32__ansi_8c__incl.md5 b/docs/html/dspm__mult__ex__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..fe29f16 --- /dev/null +++ b/docs/html/dspm__mult__ex__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +7f092ef7c541dad61060b30fa67d89d2 \ No newline at end of file diff --git a/docs/html/dspm__mult__ex__f32__ansi_8c__incl.svg b/docs/html/dspm__mult__ex__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..35232c3 --- /dev/null +++ b/docs/html/dspm__mult__ex__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_mult_ex_f32_ansi.c + + +Node1 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node2 + + +dspm_mult.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_mult_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mult__ex__f32__ansi_8c__incl_org.svg b/docs/html/dspm__mult__ex__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..405481f --- /dev/null +++ b/docs/html/dspm__mult__ex__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_mult_ex_f32_ansi.c + + +Node1 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node2 + + +dspm_mult.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_mult_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dspm__mult__ex__f32__ansi_8c_source.html b/docs/html/dspm__mult__ex__f32__ansi_8c_source.html new file mode 100644 index 0000000..54f5197 --- /dev/null +++ b/docs/html/dspm__mult__ex__f32__ansi_8c_source.html @@ -0,0 +1,173 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult_ex_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult_ex_f32_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dspm_mult.h"
+
8
+
9// Matrix A(m,n), m - amount or rows, n - amount of columns
+
10// C(m,k) = A(m,n)*B(n,k)
+
11// c(i * c_step,j) = sum(a(i * a_step,s)*b(s * b_step,j)) , s=1..n
+
+
12esp_err_t dspm_mult_ex_f32_ansi(const float *A, const float *B, float *C, int A_rows, int A_cols, int B_cols, int A_padding, int B_padding, int C_padding)
+
13{
+
14 if (NULL == A) {
+ +
16 }
+
17 if (NULL == B) {
+ +
19 }
+
20 if (NULL == C) {
+ +
22 }
+
23
+
24 if (A_rows <= 0) {
+ +
26 }
+
27 if (A_cols <= 0) {
+ +
29 }
+
30 if (B_cols <= 0) {
+ +
32 }
+
33
+
34 if (A_padding < 0) {
+ +
36 }
+
37 if (B_padding < 0) {
+ +
39 }
+
40 if (C_padding < 0) {
+ +
42 }
+
43
+
44 const int A_step = A_cols + A_padding;
+
45 const int B_step = B_cols + B_padding;
+
46 const int C_step = B_cols + C_padding;
+
47
+
48 for (int i = 0; i < A_rows; i++) {
+
49 for (int j = 0; j < B_cols; j++) {
+
50 C[i * C_step + j] = A[i * A_step] * B[j];
+
51 for (int s = 1; s < A_cols; s++) {
+
52 C[i * C_step + j] += A[i * A_step + s] * B[s * B_step + j];
+
53 }
+
54 }
+
55 }
+
56 return ESP_OK;
+
57}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dspm_mult_ex_f32_ansi(const float *A, const float *B, float *C, int A_rows, int A_cols, int B_cols, int A_padding, int B_padding, int C_padding)
Matrix subset multiplication.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
+
+
+ + + + diff --git a/docs/html/dspm__mult__f32__ansi_8c.html b/docs/html/dspm__mult__f32__ansi_8c.html new file mode 100644 index 0000000..9f17321 --- /dev/null +++ b/docs/html/dspm__mult__f32__ansi_8c.html @@ -0,0 +1,211 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult_f32_ansi.c File Reference
+
+
+
#include "dsps_dotprod.h"
+#include "dspm_mult.h"
+
+Include dependency graph for dspm_mult_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspm_mult_f32_ansi (const float *A, const float *B, float *C, int m, int n, int k)
 Matrix multiplication.
+

Function Documentation

+ +

◆ dspm_mult_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_f32_ansi (const float * A,
const float * B,
float * C,
int m,
int n,
int k )
+
+ +

Matrix multiplication.

+

Matrix multiplication for two floating point matrices: C[m][k] = A[m][n] * B[n][k] The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + +
[in]Ainput matrix A[m][n]
[in]Binput matrix B[n][k]
Cresult matrix C[m][k]
[in]mmatrix dimension
[in]nmatrix dimension
[in]kmatrix dimension
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 22 of file dspm_mult_f32_ansi.c.

+
23{
+
24 for (int i = 0 ; i < m ; i++) {
+
25 for (int j = 0 ; j < k ; j++) {
+
26 C[i * k + j] = A[i * n] * B[j];
+
27 for (int s = 1; s < n ; s++) {
+
28 C[i * k + j] += A[i * n + s] * B[s * k + j];
+
29 }
+
30 }
+
31 }
+
32 return ESP_OK;
+
33}
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
const int m
Definition test_mmult.c:16
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+

References A, B, C, ESP_OK, k, m, and n.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__mult__f32__ansi_8c.js b/docs/html/dspm__mult__f32__ansi_8c.js new file mode 100644 index 0000000..ef8a77b --- /dev/null +++ b/docs/html/dspm__mult__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dspm__mult__f32__ansi_8c = +[ + [ "dspm_mult_f32_ansi", "dspm__mult__f32__ansi_8c.html#ab2d9751c10ea4e02a7e06818570206b4", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__mult__f32__ansi_8c__incl.md5 b/docs/html/dspm__mult__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..9290b99 --- /dev/null +++ b/docs/html/dspm__mult__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +cd97cc253126c97ce3923ce60b0c58a1 \ No newline at end of file diff --git a/docs/html/dspm__mult__f32__ansi_8c__incl.svg b/docs/html/dspm__mult__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..2ae3851 --- /dev/null +++ b/docs/html/dspm__mult__f32__ansi_8c__incl.svg @@ -0,0 +1,272 @@ + + + + + + + + + + + + +dspm_mult_f32_ansi.c + + +Node1 + + +dspm_mult_f32_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dspm_mult.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + +Node11->Node5 + + + + + + + + +Node12 + + +dspm_mult_platform.h + + + + + +Node11->Node12 + + + + + + + + +Node12->Node10 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mult__f32__ansi_8c__incl_org.svg b/docs/html/dspm__mult__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..9e32a6b --- /dev/null +++ b/docs/html/dspm__mult__f32__ansi_8c__incl_org.svg @@ -0,0 +1,246 @@ + + + + + + +dspm_mult_f32_ansi.c + + +Node1 + + +dspm_mult_f32_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dspm_mult.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + +Node11->Node5 + + + + + + + + +Node12 + + +dspm_mult_platform.h + + + + + +Node11->Node12 + + + + + + + + +Node12->Node10 + + + + + + + + diff --git a/docs/html/dspm__mult__f32__ansi_8c_source.html b/docs/html/dspm__mult__f32__ansi_8c_source.html new file mode 100644 index 0000000..0915d9d --- /dev/null +++ b/docs/html/dspm__mult__f32__ansi_8c_source.html @@ -0,0 +1,152 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#include "dsps_dotprod.h"
+
17#include "dspm_mult.h"
+
18
+
19// Matrinx A(m,n), m - amount or rows, n - amount of columns
+
20// C(m,k) = A(m,n)*B(n,k)
+
21// c(i,j) = sum(a(i,s)*b(s,j)) , s=1..n
+
+
22esp_err_t dspm_mult_f32_ansi(const float *A, const float *B, float *C, int m, int n, int k)
+
23{
+
24 for (int i = 0 ; i < m ; i++) {
+
25 for (int j = 0 ; j < k ; j++) {
+
26 C[i * k + j] = A[i * n] * B[j];
+
27 for (int s = 1; s < n ; s++) {
+
28 C[i * k + j] += A[i * n + s] * B[s * k + j];
+
29 }
+
30 }
+
31 }
+
32 return ESP_OK;
+
33}
+
+ +
esp_err_t dspm_mult_f32_ansi(const float *A, const float *B, float *C, int m, int n, int k)
Matrix multiplication.
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
const int m
Definition test_mmult.c:16
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/dspm__mult__platform_8h.html b/docs/html/dspm__mult__platform_8h.html new file mode 100644 index 0000000..7ce6884 --- /dev/null +++ b/docs/html/dspm__mult__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dspm_mult_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dspm__mult__platform_8h__dep__incl.md5 b/docs/html/dspm__mult__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..07868bb --- /dev/null +++ b/docs/html/dspm__mult__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +687f516d7e0224b1584fbbc92de1631a \ No newline at end of file diff --git a/docs/html/dspm__mult__platform_8h__dep__incl.svg b/docs/html/dspm__mult__platform_8h__dep__incl.svg new file mode 100644 index 0000000..6dcb147 --- /dev/null +++ b/docs/html/dspm__mult__platform_8h__dep__incl.svg @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm_mult_platform.h + + +Node1 + + +dspm_mult_platform.h + + + + + +Node2 + + +dspm_mult.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node40 + + +dspm_mult_f32_ansi.c + + + + + +Node2->Node40 + + + + + + + + +Node41 + + +dspm_mult_s16_ansi.c + + + + + +Node2->Node41 + + + + + + + + +Node42 + + +test_fft2r.c + + + + + +Node2->Node42 + + + + + + + + +Node43 + + +test_mmult.c + + + + + +Node2->Node43 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspm__mult__platform_8h__dep__incl_org.svg b/docs/html/dspm__mult__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..404924a --- /dev/null +++ b/docs/html/dspm__mult__platform_8h__dep__incl_org.svg @@ -0,0 +1,183 @@ + + + + + + +dspm_mult_platform.h + + +Node1 + + +dspm_mult_platform.h + + + + + +Node2 + + +dspm_mult.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dspm_mult_ex_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node40 + + +dspm_mult_f32_ansi.c + + + + + +Node2->Node40 + + + + + + + + +Node41 + + +dspm_mult_s16_ansi.c + + + + + +Node2->Node41 + + + + + + + + +Node42 + + +test_fft2r.c + + + + + +Node2->Node42 + + + + + + + + +Node43 + + +test_mmult.c + + + + + +Node2->Node43 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + diff --git a/docs/html/dspm__mult__platform_8h__incl.md5 b/docs/html/dspm__mult__platform_8h__incl.md5 new file mode 100644 index 0000000..7d0e492 --- /dev/null +++ b/docs/html/dspm__mult__platform_8h__incl.md5 @@ -0,0 +1 @@ +1b52e16159d250b4227c4a9f7b0a1fc7 \ No newline at end of file diff --git a/docs/html/dspm__mult__platform_8h__incl.svg b/docs/html/dspm__mult__platform_8h__incl.svg new file mode 100644 index 0000000..c0dad41 --- /dev/null +++ b/docs/html/dspm__mult__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm_mult_platform.h + + +Node1 + + +dspm_mult_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mult__platform_8h__incl_org.svg b/docs/html/dspm__mult__platform_8h__incl_org.svg new file mode 100644 index 0000000..e9c10b9 --- /dev/null +++ b/docs/html/dspm__mult__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm_mult_platform.h + + +Node1 + + +dspm_mult_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dspm__mult__platform_8h_source.html b/docs/html/dspm__mult__platform_8h_source.html new file mode 100644 index 0000000..3bbf791 --- /dev/null +++ b/docs/html/dspm__mult__platform_8h_source.html @@ -0,0 +1,150 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dspm_mult_platform_H_
+
2#define _dspm_mult_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dspm_mult_f32_ae32_enabled 1
+
14#define dspm_mult_3x3x1_f32_ae32_enabled 1
+
15#define dspm_mult_3x3x3_f32_ae32_enabled 1
+
16#define dspm_mult_4x4x1_f32_ae32_enabled 1
+
17#define dspm_mult_4x4x4_f32_ae32_enabled 1
+
18
+
19#endif
+
20
+
21#if ((XCHAL_HAVE_LOOPS == 1) && (XCHAL_HAVE_MAC16 == 1))
+
22
+
23#define dspm_mult_s16_ae32_enabled 1
+
24
+
25#endif
+
26#endif // __XTENSA__
+
27
+
28#if CONFIG_IDF_TARGET_ESP32S3
+
29#define dspm_mult_f32_aes3_enabled 1
+
30#define dspm_mult_s16_aes3_enabled 1
+
31#endif
+
32
+
33#if CONFIG_IDF_TARGET_ESP32P4
+
34#ifdef CONFIG_DSP_OPTIMIZED
+
35#define dspm_mult_f32_arp4_enabled 1
+
36#define dspm_mult_s16_arp4_enabled 1
+
37#else
+
38#define dspm_mult_f32_arp4_enabled 0
+
39#define dspm_mult_s16_arp4_enabled 0
+
40#endif // CONFIG_DSP_OPTIMIZED
+
41
+
42#endif
+
43
+
44#endif // _dspm_mult_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dspm__mult__s16__ansi_8c.html b/docs/html/dspm__mult__s16__ansi_8c.html new file mode 100644 index 0000000..772ce2a --- /dev/null +++ b/docs/html/dspm__mult__s16__ansi_8c.html @@ -0,0 +1,225 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult_s16_ansi.c File Reference
+
+
+
#include "dsps_dotprod.h"
+#include "dspm_mult.h"
+
+Include dependency graph for dspm_mult_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspm_mult_s16_ansi (const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
 Matrix multiplication 16 bit signeg int.
+

Function Documentation

+ +

◆ dspm_mult_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_mult_s16_ansi (const int16_t * A,
const int16_t * B,
int16_t * C,
int m,
int n,
int k,
int shift )
+
+ +

Matrix multiplication 16 bit signeg int.

+

Matrix multiplication for two signed 16 bit fixed point matrices: C[m][k] = (A[m][n] * B[n][k]) >> (15- shift) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + + +
[in]Ainput matrix A[m][n]
[in]Binput matrix B[n][k]
Cresult matrix C[m][k]
[in]mmatrix dimension
[in]nmatrix dimension
[in]kmatrix dimension
[in]shiftevery result will be shifted and stored as 16 bit signed value.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 21 of file dspm_mult_s16_ansi.c.

+
22{
+
23 int final_shift = shift - 15;
+
24 for (int i = 0 ; i < m ; i++) {
+
25 for (int j = 0 ; j < k ; j++) {
+
26 // This code also could be used
+
27 //dsps_dotprode_f32_ae32(&A[i*n],&B[j],&C[i*k + j],n,1,n);
+
28 long long acc = 0x7fff >> shift;
+
29 for (int s = 0; s < n ; s++) {
+
30 acc += (int32_t)A[i * n + s] * (int32_t)B[s * k + j];
+
31 }
+
32 if (final_shift > 0) {
+
33 C[i * k + j] = (acc << final_shift);
+
34 } else {
+
35 C[i * k + j] = (acc >> (-final_shift));
+
36 }
+
37 }
+
38 }
+
39 return ESP_OK;
+
40}
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
const int m
Definition test_mmult.c:16
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+

References A, B, C, ESP_OK, k, m, and n.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__mult__s16__ansi_8c.js b/docs/html/dspm__mult__s16__ansi_8c.js new file mode 100644 index 0000000..5b62822 --- /dev/null +++ b/docs/html/dspm__mult__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dspm__mult__s16__ansi_8c = +[ + [ "dspm_mult_s16_ansi", "dspm__mult__s16__ansi_8c.html#a599d1350fa87ca9d86498471787d0bab", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__mult__s16__ansi_8c__incl.md5 b/docs/html/dspm__mult__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..08cca57 --- /dev/null +++ b/docs/html/dspm__mult__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +544f7119e20f71356c4a27d6f7bf6a6f \ No newline at end of file diff --git a/docs/html/dspm__mult__s16__ansi_8c__incl.svg b/docs/html/dspm__mult__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..a7e0c5e --- /dev/null +++ b/docs/html/dspm__mult__s16__ansi_8c__incl.svg @@ -0,0 +1,272 @@ + + + + + + + + + + + + +dspm_mult_s16_ansi.c + + +Node1 + + +dspm_mult_s16_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dspm_mult.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + +Node11->Node5 + + + + + + + + +Node12 + + +dspm_mult_platform.h + + + + + +Node11->Node12 + + + + + + + + +Node12->Node10 + + + + + + + + + + + + + diff --git a/docs/html/dspm__mult__s16__ansi_8c__incl_org.svg b/docs/html/dspm__mult__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..a64cd2c --- /dev/null +++ b/docs/html/dspm__mult__s16__ansi_8c__incl_org.svg @@ -0,0 +1,246 @@ + + + + + + +dspm_mult_s16_ansi.c + + +Node1 + + +dspm_mult_s16_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dspm_mult.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + +Node11->Node5 + + + + + + + + +Node12 + + +dspm_mult_platform.h + + + + + +Node11->Node12 + + + + + + + + +Node12->Node10 + + + + + + + + diff --git a/docs/html/dspm__mult__s16__ansi_8c_source.html b/docs/html/dspm__mult__s16__ansi_8c_source.html new file mode 100644 index 0000000..050ce25 --- /dev/null +++ b/docs/html/dspm__mult__s16__ansi_8c_source.html @@ -0,0 +1,159 @@ + + + + + + + +ESP-IDF Firmware: dspm_mult_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_mult_s16_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_dotprod.h"
+
16#include "dspm_mult.h"
+
17
+
18// Matrinx A(m,n), m - amount or rows, n - amount of columns
+
19// C(m,k) = A(m,n)*B(n,k)
+
20// c(i,j) = sum(a(i,s)*b(s,j)) , s=1..n
+
+
21esp_err_t dspm_mult_s16_ansi(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
+
22{
+
23 int final_shift = shift - 15;
+
24 for (int i = 0 ; i < m ; i++) {
+
25 for (int j = 0 ; j < k ; j++) {
+
26 // This code also could be used
+
27 //dsps_dotprode_f32_ae32(&A[i*n],&B[j],&C[i*k + j],n,1,n);
+
28 long long acc = 0x7fff >> shift;
+
29 for (int s = 0; s < n ; s++) {
+
30 acc += (int32_t)A[i * n + s] * (int32_t)B[s * k + j];
+
31 }
+
32 if (final_shift > 0) {
+
33 C[i * k + j] = (acc << final_shift);
+
34 } else {
+
35 C[i * k + j] = (acc >> (-final_shift));
+
36 }
+
37 }
+
38 }
+
39 return ESP_OK;
+
40}
+
+ +
esp_err_t dspm_mult_s16_ansi(const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift)
Matrix multiplication 16 bit signeg int.
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
const int m
Definition test_mmult.c:16
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/dspm__sub_8h.html b/docs/html/dspm__sub_8h.html new file mode 100644 index 0000000..7ef6e0e --- /dev/null +++ b/docs/html/dspm__sub_8h.html @@ -0,0 +1,375 @@ + + + + + + + +ESP-IDF Firmware: dspm_sub.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_sub.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dspm_sub_platform.h"
+
+Include dependency graph for dspm_sub.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define dspm_sub_f32   dspm_sub_f32_ansi
+ + + + + +

+Functions

esp_err_t dspm_sub_f32_ansi (const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
 subtracts two arrays with paddings (subtracts two sub-matrices)
esp_err_t dspm_sub_f32_ae32 (const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
+

Macro Definition Documentation

+ +

◆ dspm_sub_f32

+ +
+
+ + + + +
#define dspm_sub_f32   dspm_sub_f32_ansi
+
+ +

Definition at line 58 of file dspm_sub.h.

+ +

Referenced by dspm::operator-(), and dspm::Mat::operator-=().

+ +
+
+

Function Documentation

+ +

◆ dspm_sub_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_sub_f32_ae32 (const float * input1,
const float * input2,
float * output,
int rows,
int cols,
int padd1,
int padd2,
int padd_out,
int step1,
int step2,
int step_out )
+
+ +
+
+ +

◆ dspm_sub_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_sub_f32_ansi (const float * input1,
const float * input2,
float * output,
int rows,
int cols,
int padd1,
int padd2,
int padd_out,
int step1,
int step2,
int step_out )
+
+ +

subtracts two arrays with paddings (subtracts two sub-matrices)

+

The function subtracts two arrays defined as sub-matrices with paddings out[row * ptr_step_out + col * step_out] = in1[row * ptr_step_in1 + col * step1] - in2[row * ptr_step_in2 + col * step2]; The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + + + + +
[in]input1input array 1
[in]input2input array 2
[out]outputoutput array
[in]rowsmatrix rows
[in]colsmatrix cols
[in]padd1input array 1 padding
[in]padd2input array 2 padding
[in]padd_outoutput array padding
[in]step1step over input array 1 (by default should be 1)
[in]step2step over input array 2 (by default should be 1)
[in]step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 9 of file dspm_sub_f32_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 if (rows <= 0) {
+ +
23 }
+
24 if (cols <= 0) {
+ +
26 }
+
27
+
28 if (padd1 < 0) {
+ +
30 }
+
31 if (padd2 < 0) {
+ +
33 }
+
34 if (padd_out < 0) {
+ +
36 }
+
37
+
38 if (step1 <= 0) {
+ +
40 }
+
41 if (step2 <= 0) {
+ +
43 }
+
44 if (step_out <= 0) {
+ +
46 }
+
47
+
48 const int ptr_input1_step = cols + padd1;
+
49 const int ptr_input2_step = cols + padd2;
+
50 const int ptr_out_step = cols + padd_out;
+
51 float *ptr_input1 = (float *)input1;
+
52 float *ptr_input2 = (float *)input2;
+
53
+
54 for (int row = 0; row < rows; row++) {
+
55 for (int col = 0; col < cols; col++) {
+
56 output[col * step_out] = ptr_input1[col * step1] - ptr_input2[col * step2];
+
57 }
+
58 ptr_input1 += ptr_input1_step;
+
59 ptr_input2 += ptr_input2_step;
+
60 output += ptr_out_step;
+
61 }
+
62 return ESP_OK;
+
63}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__sub_8h.js b/docs/html/dspm__sub_8h.js new file mode 100644 index 0000000..d129f13 --- /dev/null +++ b/docs/html/dspm__sub_8h.js @@ -0,0 +1,6 @@ +var dspm__sub_8h = +[ + [ "dspm_sub_f32", "dspm__sub_8h.html#a7c7d549c01741255c012f81e1d43f98a", null ], + [ "dspm_sub_f32_ae32", "dspm__sub_8h.html#a50c21dcf98738cd3faf3dafba4e5f66c", null ], + [ "dspm_sub_f32_ansi", "dspm__sub_8h.html#a73d9e7d79ae41ec26b1bb41660b1477d", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__sub_8h__dep__incl.md5 b/docs/html/dspm__sub_8h__dep__incl.md5 new file mode 100644 index 0000000..fa8d7a0 --- /dev/null +++ b/docs/html/dspm__sub_8h__dep__incl.md5 @@ -0,0 +1 @@ +aa34670c197c4b79942bef6168114462 \ No newline at end of file diff --git a/docs/html/dspm__sub_8h__dep__incl.svg b/docs/html/dspm__sub_8h__dep__incl.svg new file mode 100644 index 0000000..b0f3571 --- /dev/null +++ b/docs/html/dspm__sub_8h__dep__incl.svg @@ -0,0 +1,608 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dspm_sub.h + + +Node1 + + +dspm_sub.h + + + + + +Node2 + + +dspm_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dspm_sub_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dspm__sub_8h__dep__incl_org.svg b/docs/html/dspm__sub_8h__dep__incl_org.svg new file mode 100644 index 0000000..cc7fcb6 --- /dev/null +++ b/docs/html/dspm__sub_8h__dep__incl_org.svg @@ -0,0 +1,525 @@ + + + + + + +dspm_sub.h + + +Node1 + + +dspm_sub.h + + + + + +Node2 + + +dspm_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dspm_sub_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dspm__sub_8h__incl.md5 b/docs/html/dspm__sub_8h__incl.md5 new file mode 100644 index 0000000..d0bfa88 --- /dev/null +++ b/docs/html/dspm__sub_8h__incl.md5 @@ -0,0 +1 @@ +88c7359b4b0a3cfacbfa02f7384d8354 \ No newline at end of file diff --git a/docs/html/dspm__sub_8h__incl.svg b/docs/html/dspm__sub_8h__incl.svg new file mode 100644 index 0000000..ea6bfd9 --- /dev/null +++ b/docs/html/dspm__sub_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_sub.h + + +Node1 + + +dspm_sub.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_sub_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dspm__sub_8h__incl_org.svg b/docs/html/dspm__sub_8h__incl_org.svg new file mode 100644 index 0000000..bc22d5a --- /dev/null +++ b/docs/html/dspm__sub_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_sub.h + + +Node1 + + +dspm_sub.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dspm_sub_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dspm__sub_8h_source.html b/docs/html/dspm__sub_8h_source.html new file mode 100644 index 0000000..c039e65 --- /dev/null +++ b/docs/html/dspm__sub_8h_source.html @@ -0,0 +1,148 @@ + + + + + + + +ESP-IDF Firmware: dspm_sub.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_sub.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#ifndef _dspm_sub_H_
+
8#define _dspm_sub_H_
+
9#include "dsp_err.h"
+
10
+
11#include "dspm_sub_platform.h"
+
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
42esp_err_t dspm_sub_f32_ansi(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out);
+
43esp_err_t dspm_sub_f32_ae32(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out);
+
45
+
46#ifdef __cplusplus
+
47}
+
48#endif
+
49
+
50#if CONFIG_DSP_OPTIMIZED
+
51
+
52#if (dspm_sub_f32_ae32_enabled == 1)
+
53#define dspm_sub_f32 dspm_sub_f32_ae32
+
54#else
+
55#define dspm_sub_f32 dspm_sub_f32_ansi
+
56#endif
+
57#else
+
58#define dspm_sub_f32 dspm_sub_f32_ansi
+
59#endif // CONFIG_DSP_OPTIMIZED
+
60
+
61
+
62#endif // _dspm_sub_H_
+ +
esp_err_t dspm_sub_f32_ae32(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
+
esp_err_t dspm_sub_f32_ansi(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
subtracts two arrays with paddings (subtracts two sub-matrices)
+ +
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dspm__sub__f32__ansi_8c.html b/docs/html/dspm__sub__f32__ansi_8c.html new file mode 100644 index 0000000..a182d7c --- /dev/null +++ b/docs/html/dspm__sub__f32__ansi_8c.html @@ -0,0 +1,278 @@ + + + + + + + +ESP-IDF Firmware: dspm_sub_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_sub_f32_ansi.c File Reference
+
+
+
#include "dspm_sub.h"
+
+Include dependency graph for dspm_sub_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dspm_sub_f32_ansi (const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
 subtracts two arrays with paddings (subtracts two sub-matrices)
+

Function Documentation

+ +

◆ dspm_sub_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dspm_sub_f32_ansi (const float * input1,
const float * input2,
float * output,
int rows,
int cols,
int padd1,
int padd2,
int padd_out,
int step1,
int step2,
int step_out )
+
+ +

subtracts two arrays with paddings (subtracts two sub-matrices)

+

The function subtracts two arrays defined as sub-matrices with paddings out[row * ptr_step_out + col * step_out] = in1[row * ptr_step_in1 + col * step1] - in2[row * ptr_step_in2 + col * step2]; The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + + + + +
[in]input1input array 1
[in]input2input array 2
[out]outputoutput array
[in]rowsmatrix rows
[in]colsmatrix cols
[in]padd1input array 1 padding
[in]padd2input array 2 padding
[in]padd_outoutput array padding
[in]step1step over input array 1 (by default should be 1)
[in]step2step over input array 2 (by default should be 1)
[in]step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 9 of file dspm_sub_f32_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 if (rows <= 0) {
+ +
23 }
+
24 if (cols <= 0) {
+ +
26 }
+
27
+
28 if (padd1 < 0) {
+ +
30 }
+
31 if (padd2 < 0) {
+ +
33 }
+
34 if (padd_out < 0) {
+ +
36 }
+
37
+
38 if (step1 <= 0) {
+ +
40 }
+
41 if (step2 <= 0) {
+ +
43 }
+
44 if (step_out <= 0) {
+ +
46 }
+
47
+
48 const int ptr_input1_step = cols + padd1;
+
49 const int ptr_input2_step = cols + padd2;
+
50 const int ptr_out_step = cols + padd_out;
+
51 float *ptr_input1 = (float *)input1;
+
52 float *ptr_input2 = (float *)input2;
+
53
+
54 for (int row = 0; row < rows; row++) {
+
55 for (int col = 0; col < cols; col++) {
+
56 output[col * step_out] = ptr_input1[col * step1] - ptr_input2[col * step2];
+
57 }
+
58 ptr_input1 += ptr_input1_step;
+
59 ptr_input2 += ptr_input2_step;
+
60 output += ptr_out_step;
+
61 }
+
62 return ESP_OK;
+
63}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dspm__sub__f32__ansi_8c.js b/docs/html/dspm__sub__f32__ansi_8c.js new file mode 100644 index 0000000..f3b596a --- /dev/null +++ b/docs/html/dspm__sub__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dspm__sub__f32__ansi_8c = +[ + [ "dspm_sub_f32_ansi", "dspm__sub__f32__ansi_8c.html#a73d9e7d79ae41ec26b1bb41660b1477d", null ] +]; \ No newline at end of file diff --git a/docs/html/dspm__sub__f32__ansi_8c__incl.md5 b/docs/html/dspm__sub__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..e1dcf74 --- /dev/null +++ b/docs/html/dspm__sub__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +144082ff154dc96130b5e56276e02a91 \ No newline at end of file diff --git a/docs/html/dspm__sub__f32__ansi_8c__incl.svg b/docs/html/dspm__sub__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..498d1b6 --- /dev/null +++ b/docs/html/dspm__sub__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dspm_sub_f32_ansi.c + + +Node1 + + +dspm_sub_f32_ansi.c + + + + + +Node2 + + +dspm_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_sub_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dspm__sub__f32__ansi_8c__incl_org.svg b/docs/html/dspm__sub__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..eab6499 --- /dev/null +++ b/docs/html/dspm__sub__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dspm_sub_f32_ansi.c + + +Node1 + + +dspm_sub_f32_ansi.c + + + + + +Node2 + + +dspm_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dspm_sub_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dspm__sub__f32__ansi_8c_source.html b/docs/html/dspm__sub__f32__ansi_8c_source.html new file mode 100644 index 0000000..d84df6c --- /dev/null +++ b/docs/html/dspm__sub__f32__ansi_8c_source.html @@ -0,0 +1,176 @@ + + + + + + + +ESP-IDF Firmware: dspm_sub_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_sub_f32_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dspm_sub.h"
+
8
+
+
9esp_err_t dspm_sub_f32_ansi(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 if (rows <= 0) {
+ +
23 }
+
24 if (cols <= 0) {
+ +
26 }
+
27
+
28 if (padd1 < 0) {
+ +
30 }
+
31 if (padd2 < 0) {
+ +
33 }
+
34 if (padd_out < 0) {
+ +
36 }
+
37
+
38 if (step1 <= 0) {
+ +
40 }
+
41 if (step2 <= 0) {
+ +
43 }
+
44 if (step_out <= 0) {
+ +
46 }
+
47
+
48 const int ptr_input1_step = cols + padd1;
+
49 const int ptr_input2_step = cols + padd2;
+
50 const int ptr_out_step = cols + padd_out;
+
51 float *ptr_input1 = (float *)input1;
+
52 float *ptr_input2 = (float *)input2;
+
53
+
54 for (int row = 0; row < rows; row++) {
+
55 for (int col = 0; col < cols; col++) {
+
56 output[col * step_out] = ptr_input1[col * step1] - ptr_input2[col * step2];
+
57 }
+
58 ptr_input1 += ptr_input1_step;
+
59 ptr_input2 += ptr_input2_step;
+
60 output += ptr_out_step;
+
61 }
+
62 return ESP_OK;
+
63}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dspm_sub_f32_ansi(const float *input1, const float *input2, float *output, int rows, int cols, int padd1, int padd2, int padd_out, int step1, int step2, int step_out)
subtracts two arrays with paddings (subtracts two sub-matrices)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dspm__sub__platform_8h.html b/docs/html/dspm__sub__platform_8h.html new file mode 100644 index 0000000..74f7c28 --- /dev/null +++ b/docs/html/dspm__sub__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dspm_sub_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_sub_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dspm_sub_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dspm__sub__platform_8h__dep__incl.md5 b/docs/html/dspm__sub__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..8d5de7e --- /dev/null +++ b/docs/html/dspm__sub__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +90c089a4991bd024d8a9d84000262c62 \ No newline at end of file diff --git a/docs/html/dspm__sub__platform_8h__dep__incl.svg b/docs/html/dspm__sub__platform_8h__dep__incl.svg new file mode 100644 index 0000000..d585752 --- /dev/null +++ b/docs/html/dspm__sub__platform_8h__dep__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dspm_sub_platform.h + + +Node1 + + +dspm_sub_platform.h + + + + + +Node2 + + +dspm_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dspm_sub_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + + + + + + diff --git a/docs/html/dspm__sub__platform_8h__dep__incl_org.svg b/docs/html/dspm__sub__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..f310d07 --- /dev/null +++ b/docs/html/dspm__sub__platform_8h__dep__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dspm_sub_platform.h + + +Node1 + + +dspm_sub_platform.h + + + + + +Node2 + + +dspm_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_matrix.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dspm_sub_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + diff --git a/docs/html/dspm__sub__platform_8h__incl.md5 b/docs/html/dspm__sub__platform_8h__incl.md5 new file mode 100644 index 0000000..22109dc --- /dev/null +++ b/docs/html/dspm__sub__platform_8h__incl.md5 @@ -0,0 +1 @@ +5436a5fc7c0468ea583e278a57f86134 \ No newline at end of file diff --git a/docs/html/dspm__sub__platform_8h__incl.svg b/docs/html/dspm__sub__platform_8h__incl.svg new file mode 100644 index 0000000..0bfc15c --- /dev/null +++ b/docs/html/dspm__sub__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dspm_sub_platform.h + + +Node1 + + +dspm_sub_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dspm__sub__platform_8h__incl_org.svg b/docs/html/dspm__sub__platform_8h__incl_org.svg new file mode 100644 index 0000000..14cbdae --- /dev/null +++ b/docs/html/dspm__sub__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dspm_sub_platform.h + + +Node1 + + +dspm_sub_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dspm__sub__platform_8h_source.html b/docs/html/dspm__sub__platform_8h_source.html new file mode 100644 index 0000000..c5b0d8f --- /dev/null +++ b/docs/html/dspm__sub__platform_8h_source.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: dspm_sub_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dspm_sub_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dspm_sub_platform_H_
+
2#define _dspm_sub_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dspm_sub_f32_ae32_enabled 1
+
14
+
15#endif
+
16#endif // __XTENSA__
+
17
+
18#endif // _dspm_sub_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__add_8h.html b/docs/html/dsps__add_8h.html new file mode 100644 index 0000000..e1213e2 --- /dev/null +++ b/docs/html/dsps__add_8h.html @@ -0,0 +1,629 @@ + + + + + + + +ESP-IDF Firmware: dsps_add.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_add_platform.h"
+
+Include dependency graph for dsps_add.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Macros

#define dsps_add_f32   dsps_add_f32_ansi
#define dsps_add_s16   dsps_add_s16_ansi
#define dsps_add_s8   dsps_add_s8_ansi
+ + + + + + + + + + +

+Functions

esp_err_t dsps_add_f32_ansi (const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
 add two arrays
esp_err_t dsps_add_f32_ae32 (const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
esp_err_t dsps_add_s16_ansi (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_add_s16_ae32 (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_add_s16_aes3 (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_add_s8_ansi (const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_add_s8_aes3 (const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+

Macro Definition Documentation

+ +

◆ dsps_add_f32

+ +
+
+ + + + +
#define dsps_add_f32   dsps_add_f32_ansi
+
+ +

Definition at line 84 of file dsps_add.h.

+ +

Referenced by dspm::Mat::operator+=().

+ +
+
+ +

◆ dsps_add_s16

+ +
+
+ + + + +
#define dsps_add_s16   dsps_add_s16_ansi
+
+ +

Definition at line 85 of file dsps_add.h.

+ +
+
+ +

◆ dsps_add_s8

+ +
+
+ + + + +
#define dsps_add_s8   dsps_add_s8_ansi
+
+ +

Definition at line 86 of file dsps_add.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_add_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_f32_ae32 (const float * input1,
const float * input2,
float * output,
int len,
int step1,
int step2,
int step_out )
+
+ +
+
+ +

◆ dsps_add_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_f32_ansi (const float * input1,
const float * input2,
float * output,
int len,
int step1,
int step2,
int step_out )
+
+ +

add two arrays

+

The function add one input array to another out[i*step_out] = input1[i*step1] + input2[i*step2]; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
[in]input1input array 1
[in]input2input array 2
outputoutput array
lenamount of operations for arrays
step1step over input array 1 (by default should be 1)
step2step over input array 2 (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_add_f32_ansi.c.

+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 output[i * step_out] = input1[i * step1] + input2[i * step2];
+
31 }
+
32 return ESP_OK;
+
33}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+ +

◆ dsps_add_s16_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_s16_ae32 (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +
+
+ +

◆ dsps_add_s16_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_s16_aes3 (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +
+
+ +

◆ dsps_add_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_s16_ansi (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 10 of file dsps_add_s16_ansi.c.

+
11{
+
12 if (NULL == input1) {
+ +
14 }
+
15 if (NULL == input2) {
+ +
17 }
+
18 if (NULL == output) {
+ +
20 }
+
21
+
22 for (int i = 0 ; i < len ; i++) {
+
23 int32_t acc = (int32_t)input1[i * step1] + (int32_t)input2[i * step2];
+
24 output[i * step_out] = acc >> shift;
+
25 }
+
26 return ESP_OK;
+
27}
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+ +

◆ dsps_add_s8_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_s8_aes3 (const int8_t * input1,
const int8_t * input2,
int8_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +
+
+ +

◆ dsps_add_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_s8_ansi (const int8_t * input1,
const int8_t * input2,
int8_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 9 of file dsps_add_s8_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] + (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__add_8h.js b/docs/html/dsps__add_8h.js new file mode 100644 index 0000000..23cf55d --- /dev/null +++ b/docs/html/dsps__add_8h.js @@ -0,0 +1,13 @@ +var dsps__add_8h = +[ + [ "dsps_add_f32", "dsps__add_8h.html#a4f223284901dc0e73718ff90bf7c7c62", null ], + [ "dsps_add_s16", "dsps__add_8h.html#a6e5e4a9171ae89f62cfc8cc0d814d0da", null ], + [ "dsps_add_s8", "dsps__add_8h.html#a2b418ace1af527e91606bd99cca1f1e0", null ], + [ "dsps_add_f32_ae32", "dsps__add_8h.html#aee4b1220be46707acd357a229a791b33", null ], + [ "dsps_add_f32_ansi", "dsps__add_8h.html#a3b25d42a76783cb5da48059c84928b00", null ], + [ "dsps_add_s16_ae32", "dsps__add_8h.html#aeedccca4c2113daf379e7459db847f2e", null ], + [ "dsps_add_s16_aes3", "dsps__add_8h.html#af74538d4683367ba561484c6af4d2b44", null ], + [ "dsps_add_s16_ansi", "dsps__add_8h.html#a4b1d6fd763ded54ea24479bc7cdd6876", null ], + [ "dsps_add_s8_aes3", "dsps__add_8h.html#a795bba5775f3e39bc3a7bc0c5e5fbc12", null ], + [ "dsps_add_s8_ansi", "dsps__add_8h.html#aa915f2285073a7b55c9051cf741e3b4f", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__add_8h__dep__incl.md5 b/docs/html/dsps__add_8h__dep__incl.md5 new file mode 100644 index 0000000..8fb0077 --- /dev/null +++ b/docs/html/dsps__add_8h__dep__incl.md5 @@ -0,0 +1 @@ +3d66daefce9256f233f93f6602762825 \ No newline at end of file diff --git a/docs/html/dsps__add_8h__dep__incl.svg b/docs/html/dsps__add_8h__dep__incl.svg new file mode 100644 index 0000000..7669a9b --- /dev/null +++ b/docs/html/dsps__add_8h__dep__incl.svg @@ -0,0 +1,662 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_add.h + + +Node1 + + +dsps_add.h + + + + + +Node2 + + +dsps_add_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_add_s16_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_add_s8_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_math.h + + + + + +Node1->Node5 + + + + + + + + +Node41 + + +dsps_sub_s16_ansi.c + + + + + +Node1->Node41 + + + + + + + + +Node6 + + +esp_dsp.h + + + + + +Node5->Node6 + + + + + + + + +Node40 + + +mat.cpp + + + + + +Node5->Node40 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node6->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +3d_graphics_demo.cpp + + + + + +Node6->Node12 + + + + + + + + +Node13 + + +3d_kalman_demo.cpp + + + + + +Node6->Node13 + + + + + + + + +Node14 + + +3d_kalman_demo.cpp + + + + + +Node6->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node6->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node6->Node16 + + + + + + + + +Node17 + + +audio_amp_main.c + + + + + +Node6->Node17 + + + + + + + + +Node18 + + +dsp_tests.h + + + + + +Node6->Node18 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node6->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node6->Node27 + + + + + + + + +Node29 + + +graphics_support.h + + + + + +Node6->Node29 + + + + + + + + +Node31 + + +init_display.c + + + + + +Node6->Node31 + + + + + + + + +Node32 + + +init_display.c + + + + + +Node6->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node6->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node6->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node6->Node35 + + + + + + + + +Node36 + + +kalman_filter_demo.cpp + + + + + +Node6->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node6->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node6->Node38 + + + + + + + + +Node39 + + +main.c + + + + + +Node6->Node39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__add_8h__dep__incl_org.svg b/docs/html/dsps__add_8h__dep__incl_org.svg new file mode 100644 index 0000000..7e01036 --- /dev/null +++ b/docs/html/dsps__add_8h__dep__incl_org.svg @@ -0,0 +1,579 @@ + + + + + + +dsps_add.h + + +Node1 + + +dsps_add.h + + + + + +Node2 + + +dsps_add_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_add_s16_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_add_s8_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_math.h + + + + + +Node1->Node5 + + + + + + + + +Node41 + + +dsps_sub_s16_ansi.c + + + + + +Node1->Node41 + + + + + + + + +Node6 + + +esp_dsp.h + + + + + +Node5->Node6 + + + + + + + + +Node40 + + +mat.cpp + + + + + +Node5->Node40 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node6->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +3d_graphics_demo.cpp + + + + + +Node6->Node12 + + + + + + + + +Node13 + + +3d_kalman_demo.cpp + + + + + +Node6->Node13 + + + + + + + + +Node14 + + +3d_kalman_demo.cpp + + + + + +Node6->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node6->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node6->Node16 + + + + + + + + +Node17 + + +audio_amp_main.c + + + + + +Node6->Node17 + + + + + + + + +Node18 + + +dsp_tests.h + + + + + +Node6->Node18 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node6->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node6->Node27 + + + + + + + + +Node29 + + +graphics_support.h + + + + + +Node6->Node29 + + + + + + + + +Node31 + + +init_display.c + + + + + +Node6->Node31 + + + + + + + + +Node32 + + +init_display.c + + + + + +Node6->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node6->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node6->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node6->Node35 + + + + + + + + +Node36 + + +kalman_filter_demo.cpp + + + + + +Node6->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node6->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node6->Node38 + + + + + + + + +Node39 + + +main.c + + + + + +Node6->Node39 + + + + + + + + diff --git a/docs/html/dsps__add_8h__incl.md5 b/docs/html/dsps__add_8h__incl.md5 new file mode 100644 index 0000000..e7e042a --- /dev/null +++ b/docs/html/dsps__add_8h__incl.md5 @@ -0,0 +1 @@ +57f71b8709d190b0a509404dd8eba917 \ No newline at end of file diff --git a/docs/html/dsps__add_8h__incl.svg b/docs/html/dsps__add_8h__incl.svg new file mode 100644 index 0000000..bee4f91 --- /dev/null +++ b/docs/html/dsps__add_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_add.h + + +Node1 + + +dsps_add.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_add_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__add_8h__incl_org.svg b/docs/html/dsps__add_8h__incl_org.svg new file mode 100644 index 0000000..7df7ac9 --- /dev/null +++ b/docs/html/dsps__add_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_add.h + + +Node1 + + +dsps_add.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_add_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__add_8h_source.html b/docs/html/dsps__add_8h_source.html new file mode 100644 index 0000000..a34d8dd --- /dev/null +++ b/docs/html/dsps__add_8h_source.html @@ -0,0 +1,184 @@ + + + + + + + +ESP-IDF Firmware: dsps_add.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_add_H_
+
16#define _dsps_add_H_
+
17#include "dsp_err.h"
+
18
+
19#include "dsps_add_platform.h"
+
20
+
21
+
22#ifdef __cplusplus
+
23extern "C"
+
24{
+
25#endif
+
26
+
27
+
48esp_err_t dsps_add_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out);
+
49esp_err_t dsps_add_f32_ae32(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out);
+
50
+
51esp_err_t dsps_add_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift);
+
52esp_err_t dsps_add_s16_ae32(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift);
+
53esp_err_t dsps_add_s16_aes3(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift);
+
54
+
55esp_err_t dsps_add_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift);
+
56esp_err_t dsps_add_s8_aes3(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift);
+
57
+
59
+
60#ifdef __cplusplus
+
61}
+
62#endif
+
63
+
64#if CONFIG_DSP_OPTIMIZED
+
65
+
66#if (dsps_add_f32_ae32_enabled == 1)
+
67#define dsps_add_f32 dsps_add_f32_ae32
+
68#else
+
69#define dsps_add_f32 dsps_add_f32_ansi
+
70#endif
+
71
+
72#if (dsps_add_s16_aes3_enabled == 1)
+
73#define dsps_add_s16 dsps_add_s16_aes3
+
74#define dsps_add_s8 dsps_add_s8_aes3
+
75#elif (dsps_add_s16_ae32_enabled == 1)
+
76#define dsps_add_s16 dsps_add_s16_ae32
+
77#define dsps_add_s8 dsps_add_s8_ansi
+
78#else
+
79#define dsps_add_s16 dsps_add_s16_ansi
+
80#define dsps_add_s8 dsps_add_s8_ansi
+
81#endif
+
82
+
83#else // CONFIG_DSP_OPTIMIZED
+
84#define dsps_add_f32 dsps_add_f32_ansi
+
85#define dsps_add_s16 dsps_add_s16_ansi
+
86#define dsps_add_s8 dsps_add_s8_ansi
+
87#endif // CONFIG_DSP_OPTIMIZED
+
88
+
89#endif // _dsps_add_H_
+ +
esp_err_t dsps_add_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
add two arrays
+
esp_err_t dsps_add_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_add_s8_aes3(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_add_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_add_f32_ae32(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
+
esp_err_t dsps_add_s16_ae32(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_add_s16_aes3(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+ +
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__add__f32__ansi_8c.html b/docs/html/dsps__add__f32__ansi_8c.html new file mode 100644 index 0000000..dee5d25 --- /dev/null +++ b/docs/html/dsps__add__f32__ansi_8c.html @@ -0,0 +1,216 @@ + + + + + + + +ESP-IDF Firmware: dsps_add_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add_f32_ansi.c File Reference
+
+
+
#include "dsps_add.h"
+
+Include dependency graph for dsps_add_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_add_f32_ansi (const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
 add two arrays
+

Function Documentation

+ +

◆ dsps_add_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_f32_ansi (const float * input1,
const float * input2,
float * output,
int len,
int step1,
int step2,
int step_out )
+
+ +

add two arrays

+

The function add one input array to another out[i*step_out] = input1[i*step1] + input2[i*step2]; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
[in]input1input array 1
[in]input2input array 2
outputoutput array
lenamount of operations for arrays
step1step over input array 1 (by default should be 1)
step2step over input array 2 (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_add_f32_ansi.c.

+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 output[i * step_out] = input1[i * step1] + input2[i * step2];
+
31 }
+
32 return ESP_OK;
+
33}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__add__f32__ansi_8c.js b/docs/html/dsps__add__f32__ansi_8c.js new file mode 100644 index 0000000..ebd1c71 --- /dev/null +++ b/docs/html/dsps__add__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__add__f32__ansi_8c = +[ + [ "dsps_add_f32_ansi", "dsps__add__f32__ansi_8c.html#a3b25d42a76783cb5da48059c84928b00", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__add__f32__ansi_8c__incl.md5 b/docs/html/dsps__add__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..7824a1d --- /dev/null +++ b/docs/html/dsps__add__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +bc6397712153c1b4bd9b6665bfb8d136 \ No newline at end of file diff --git a/docs/html/dsps__add__f32__ansi_8c__incl.svg b/docs/html/dsps__add__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..b50fe32 --- /dev/null +++ b/docs/html/dsps__add__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_add_f32_ansi.c + + +Node1 + + +dsps_add_f32_ansi.c + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__add__f32__ansi_8c__incl_org.svg b/docs/html/dsps__add__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..1d3fbb4 --- /dev/null +++ b/docs/html/dsps__add__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_add_f32_ansi.c + + +Node1 + + +dsps_add_f32_ansi.c + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__add__f32__ansi_8c_source.html b/docs/html/dsps__add__f32__ansi_8c_source.html new file mode 100644 index 0000000..6583c7d --- /dev/null +++ b/docs/html/dsps__add__f32__ansi_8c_source.html @@ -0,0 +1,146 @@ + + + + + + + +ESP-IDF Firmware: dsps_add_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_add.h"
+
16
+
+
17esp_err_t dsps_add_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 output[i * step_out] = input1[i * step1] + input2[i * step2];
+
31 }
+
32 return ESP_OK;
+
33}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_add_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
add two arrays
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__add__platform_8h.html b/docs/html/dsps__add__platform_8h.html new file mode 100644 index 0000000..ea27a80 --- /dev/null +++ b/docs/html/dsps__add__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_add_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_add_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__add__platform_8h__dep__incl.md5 b/docs/html/dsps__add__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..7bae25e --- /dev/null +++ b/docs/html/dsps__add__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +3171f8abb6cf7ab5de9aacc57be71466 \ No newline at end of file diff --git a/docs/html/dsps__add__platform_8h__dep__incl.svg b/docs/html/dsps__add__platform_8h__dep__incl.svg new file mode 100644 index 0000000..7f2d9f2 --- /dev/null +++ b/docs/html/dsps__add__platform_8h__dep__incl.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_add_platform.h + + +Node1 + + +dsps_add_platform.h + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_add_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_add_s16_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_add_s8_ansi.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_math.h + + + + + +Node2->Node6 + + + + + + + + +Node42 + + +dsps_sub_s16_ansi.c + + + + + +Node2->Node42 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node6->Node7 + + + + + + + + +Node41 + + +mat.cpp + + + + + +Node6->Node41 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__add__platform_8h__dep__incl_org.svg b/docs/html/dsps__add__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..057b9c8 --- /dev/null +++ b/docs/html/dsps__add__platform_8h__dep__incl_org.svg @@ -0,0 +1,165 @@ + + + + + + +dsps_add_platform.h + + +Node1 + + +dsps_add_platform.h + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_add_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_add_s16_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_add_s8_ansi.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_math.h + + + + + +Node2->Node6 + + + + + + + + +Node42 + + +dsps_sub_s16_ansi.c + + + + + +Node2->Node42 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node6->Node7 + + + + + + + + +Node41 + + +mat.cpp + + + + + +Node6->Node41 + + + + + + + + diff --git a/docs/html/dsps__add__platform_8h__incl.md5 b/docs/html/dsps__add__platform_8h__incl.md5 new file mode 100644 index 0000000..f622783 --- /dev/null +++ b/docs/html/dsps__add__platform_8h__incl.md5 @@ -0,0 +1 @@ +cb19e2d857cfc9927160ce98cb261073 \ No newline at end of file diff --git a/docs/html/dsps__add__platform_8h__incl.svg b/docs/html/dsps__add__platform_8h__incl.svg new file mode 100644 index 0000000..f61bbb5 --- /dev/null +++ b/docs/html/dsps__add__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_add_platform.h + + +Node1 + + +dsps_add_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__add__platform_8h__incl_org.svg b/docs/html/dsps__add__platform_8h__incl_org.svg new file mode 100644 index 0000000..31645da --- /dev/null +++ b/docs/html/dsps__add__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_add_platform.h + + +Node1 + + +dsps_add_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__add__platform_8h_source.html b/docs/html/dsps__add__platform_8h_source.html new file mode 100644 index 0000000..0c13a41 --- /dev/null +++ b/docs/html/dsps__add__platform_8h_source.html @@ -0,0 +1,138 @@ + + + + + + + +ESP-IDF Firmware: dsps_add_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_add_platform_H_
+
2#define _dsps_add_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10#if (CONFIG_IDF_TARGET_ESP32S3 == 1)
+
11#define dsps_add_f32_ae32_enabled 1
+
12#define dsps_add_s16_aes3_enabled 1
+
13#else
+
14
+
15#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
16
+
17#define dsps_add_f32_ae32_enabled 1
+
18#define dsps_add_s16_ae32_enabled 1
+
19
+
20#endif
+
21
+
22#if (XCHAL_HAVE_LOOPS == 1)
+
23#define dsps_add_f32_ae32_enabled 1
+
24#define dsps_add_s16_ae32_enabled 1
+
25#endif
+
26
+
27#endif // CONFIG_IDF_TARGET_ESP32S3
+
28
+
29#endif // __XTENSA__
+
30
+
31
+
32#endif // _dsps_add_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__add__s16__ansi_8c.html b/docs/html/dsps__add__s16__ansi_8c.html new file mode 100644 index 0000000..281e0f0 --- /dev/null +++ b/docs/html/dsps__add__s16__ansi_8c.html @@ -0,0 +1,201 @@ + + + + + + + +ESP-IDF Firmware: dsps_add_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add_s16_ansi.c File Reference
+
+
+
#include "dsps_add.h"
+
+Include dependency graph for dsps_add_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dsps_add_s16_ansi (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+

Function Documentation

+ +

◆ dsps_add_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_s16_ansi (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 10 of file dsps_add_s16_ansi.c.

+
11{
+
12 if (NULL == input1) {
+ +
14 }
+
15 if (NULL == input2) {
+ +
17 }
+
18 if (NULL == output) {
+ +
20 }
+
21
+
22 for (int i = 0 ; i < len ; i++) {
+
23 int32_t acc = (int32_t)input1[i * step1] + (int32_t)input2[i * step2];
+
24 output[i * step_out] = acc >> shift;
+
25 }
+
26 return ESP_OK;
+
27}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__add__s16__ansi_8c.js b/docs/html/dsps__add__s16__ansi_8c.js new file mode 100644 index 0000000..b52fc39 --- /dev/null +++ b/docs/html/dsps__add__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__add__s16__ansi_8c = +[ + [ "dsps_add_s16_ansi", "dsps__add__s16__ansi_8c.html#a4b1d6fd763ded54ea24479bc7cdd6876", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__add__s16__ansi_8c__incl.md5 b/docs/html/dsps__add__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..a521282 --- /dev/null +++ b/docs/html/dsps__add__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +97730edd97b39648c3331d209f4aa02d \ No newline at end of file diff --git a/docs/html/dsps__add__s16__ansi_8c__incl.svg b/docs/html/dsps__add__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..6e77208 --- /dev/null +++ b/docs/html/dsps__add__s16__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_add_s16_ansi.c + + +Node1 + + +dsps_add_s16_ansi.c + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__add__s16__ansi_8c__incl_org.svg b/docs/html/dsps__add__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..fa8964d --- /dev/null +++ b/docs/html/dsps__add__s16__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_add_s16_ansi.c + + +Node1 + + +dsps_add_s16_ansi.c + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__add__s16__ansi_8c_source.html b/docs/html/dsps__add__s16__ansi_8c_source.html new file mode 100644 index 0000000..189a9ae --- /dev/null +++ b/docs/html/dsps__add__s16__ansi_8c_source.html @@ -0,0 +1,140 @@ + + + + + + + +ESP-IDF Firmware: dsps_add_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add_s16_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7
+
8#include "dsps_add.h"
+
9
+
+
10esp_err_t dsps_add_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
11{
+
12 if (NULL == input1) {
+ +
14 }
+
15 if (NULL == input2) {
+ +
17 }
+
18 if (NULL == output) {
+ +
20 }
+
21
+
22 for (int i = 0 ; i < len ; i++) {
+
23 int32_t acc = (int32_t)input1[i * step1] + (int32_t)input2[i * step2];
+
24 output[i * step_out] = acc >> shift;
+
25 }
+
26 return ESP_OK;
+
27}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_add_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__add__s8__ansi_8c.html b/docs/html/dsps__add__s8__ansi_8c.html new file mode 100644 index 0000000..b3fd3d6 --- /dev/null +++ b/docs/html/dsps__add__s8__ansi_8c.html @@ -0,0 +1,201 @@ + + + + + + + +ESP-IDF Firmware: dsps_add_s8_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add_s8_ansi.c File Reference
+
+
+
#include "dsps_add.h"
+
+Include dependency graph for dsps_add_s8_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dsps_add_s8_ansi (const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+

Function Documentation

+ +

◆ dsps_add_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_add_s8_ansi (const int8_t * input1,
const int8_t * input2,
int8_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 9 of file dsps_add_s8_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] + (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__add__s8__ansi_8c.js b/docs/html/dsps__add__s8__ansi_8c.js new file mode 100644 index 0000000..728942c --- /dev/null +++ b/docs/html/dsps__add__s8__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__add__s8__ansi_8c = +[ + [ "dsps_add_s8_ansi", "dsps__add__s8__ansi_8c.html#aa915f2285073a7b55c9051cf741e3b4f", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__add__s8__ansi_8c__incl.md5 b/docs/html/dsps__add__s8__ansi_8c__incl.md5 new file mode 100644 index 0000000..27e7f91 --- /dev/null +++ b/docs/html/dsps__add__s8__ansi_8c__incl.md5 @@ -0,0 +1 @@ +32b4e228d842d8463d20740f47cc9a0b \ No newline at end of file diff --git a/docs/html/dsps__add__s8__ansi_8c__incl.svg b/docs/html/dsps__add__s8__ansi_8c__incl.svg new file mode 100644 index 0000000..ef00163 --- /dev/null +++ b/docs/html/dsps__add__s8__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_add_s8_ansi.c + + +Node1 + + +dsps_add_s8_ansi.c + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__add__s8__ansi_8c__incl_org.svg b/docs/html/dsps__add__s8__ansi_8c__incl_org.svg new file mode 100644 index 0000000..a3b418a --- /dev/null +++ b/docs/html/dsps__add__s8__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_add_s8_ansi.c + + +Node1 + + +dsps_add_s8_ansi.c + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__add__s8__ansi_8c_source.html b/docs/html/dsps__add__s8__ansi_8c_source.html new file mode 100644 index 0000000..46a91a8 --- /dev/null +++ b/docs/html/dsps__add__s8__ansi_8c_source.html @@ -0,0 +1,139 @@ + + + + + + + +ESP-IDF Firmware: dsps_add_s8_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_add_s8_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_add.h"
+
8
+
+
9esp_err_t dsps_add_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] + (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_add_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__addc_8h.html b/docs/html/dsps__addc_8h.html new file mode 100644 index 0000000..bb5c2d0 --- /dev/null +++ b/docs/html/dsps__addc_8h.html @@ -0,0 +1,287 @@ + + + + + + + +ESP-IDF Firmware: dsps_addc.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_addc.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_addc_platform.h"
+
+Include dependency graph for dsps_addc.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define dsps_addc_f32   dsps_addc_f32_ansi
+ + + + + +

+Functions

esp_err_t dsps_addc_f32_ansi (const float *input, float *output, int len, float C, int step_in, int step_out)
 add constant
esp_err_t dsps_addc_f32_ae32 (const float *input, float *output, int len, float C, int step_in, int step_out)
+

Macro Definition Documentation

+ +

◆ dsps_addc_f32

+ +
+
+ + + + +
#define dsps_addc_f32   dsps_addc_f32_ansi
+
+ +

Definition at line 62 of file dsps_addc.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_addc_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_addc_f32_ae32 (const float * input,
float * output,
int len,
float C,
int step_in,
int step_out )
+
+ +

References C.

+ +
+
+ +

◆ dsps_addc_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_addc_f32_ansi (const float * input,
float * output,
int len,
float C,
int step_in,
int step_out )
+
+ +

add constant

+

The function adds constant to the input array x[i*step_out] = y[i*step_in] + C; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + +
[in]inputinput array
outputoutput array
lenamount of operations for arrays
Cconstant value
step_instep over input array (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_addc_f32_ansi.c.

+
18{
+
19 if (NULL == input) {
+ +
21 }
+
22 if (NULL == output) {
+ +
24 }
+
25
+
26 for (int i = 0 ; i < len ; i++) {
+
27 output[i * step_out] = input[i * step_in] + C;
+
28 }
+
29 return ESP_OK;
+
30}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +

Referenced by dspm::Mat::operator+=(), and dspm::Mat::operator-=().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__addc_8h.js b/docs/html/dsps__addc_8h.js new file mode 100644 index 0000000..98cbed3 --- /dev/null +++ b/docs/html/dsps__addc_8h.js @@ -0,0 +1,6 @@ +var dsps__addc_8h = +[ + [ "dsps_addc_f32", "dsps__addc_8h.html#a614796c7c86b7c55f412d202435cc5eb", null ], + [ "dsps_addc_f32_ae32", "dsps__addc_8h.html#a2c16efddb2eaba33e10783bb29bff1ba", null ], + [ "dsps_addc_f32_ansi", "dsps__addc_8h.html#ada8973331709849575d7c14c65808016", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__addc_8h__dep__incl.md5 b/docs/html/dsps__addc_8h__dep__incl.md5 new file mode 100644 index 0000000..b68bc93 --- /dev/null +++ b/docs/html/dsps__addc_8h__dep__incl.md5 @@ -0,0 +1 @@ +937550f6010bd8f9d87e04cfa181ed0a \ No newline at end of file diff --git a/docs/html/dsps__addc_8h__dep__incl.svg b/docs/html/dsps__addc_8h__dep__incl.svg new file mode 100644 index 0000000..1485f65 --- /dev/null +++ b/docs/html/dsps__addc_8h__dep__incl.svg @@ -0,0 +1,608 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_addc.h + + +Node1 + + +dsps_addc.h + + + + + +Node2 + + +dsps_addc_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__addc_8h__dep__incl_org.svg b/docs/html/dsps__addc_8h__dep__incl_org.svg new file mode 100644 index 0000000..0cfe3e3 --- /dev/null +++ b/docs/html/dsps__addc_8h__dep__incl_org.svg @@ -0,0 +1,525 @@ + + + + + + +dsps_addc.h + + +Node1 + + +dsps_addc.h + + + + + +Node2 + + +dsps_addc_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + diff --git a/docs/html/dsps__addc_8h__incl.md5 b/docs/html/dsps__addc_8h__incl.md5 new file mode 100644 index 0000000..5071be9 --- /dev/null +++ b/docs/html/dsps__addc_8h__incl.md5 @@ -0,0 +1 @@ +4e8836dde6924e537b2abe5af2b958c8 \ No newline at end of file diff --git a/docs/html/dsps__addc_8h__incl.svg b/docs/html/dsps__addc_8h__incl.svg new file mode 100644 index 0000000..55bb543 --- /dev/null +++ b/docs/html/dsps__addc_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_addc.h + + +Node1 + + +dsps_addc.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_addc_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__addc_8h__incl_org.svg b/docs/html/dsps__addc_8h__incl_org.svg new file mode 100644 index 0000000..87543c6 --- /dev/null +++ b/docs/html/dsps__addc_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_addc.h + + +Node1 + + +dsps_addc.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_addc_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph.md5 b/docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph.md5 new file mode 100644 index 0000000..3b34ccb --- /dev/null +++ b/docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph.md5 @@ -0,0 +1 @@ +0c77c5c9891fa5c0d88900c5a79558ac \ No newline at end of file diff --git a/docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph.svg b/docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph.svg new file mode 100644 index 0000000..c5f7d4a --- /dev/null +++ b/docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_addc_f32_ansi + + +Node1 + + +dsps_addc_f32_ansi + + + + + +Node2 + + +dspm::Mat::operator+= + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::operator-= + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph_org.svg b/docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph_org.svg new file mode 100644 index 0000000..1d8bd9c --- /dev/null +++ b/docs/html/dsps__addc_8h_ada8973331709849575d7c14c65808016_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_addc_f32_ansi + + +Node1 + + +dsps_addc_f32_ansi + + + + + +Node2 + + +dspm::Mat::operator+= + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::operator-= + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__addc_8h_source.html b/docs/html/dsps__addc_8h_source.html new file mode 100644 index 0000000..ff52689 --- /dev/null +++ b/docs/html/dsps__addc_8h_source.html @@ -0,0 +1,157 @@ + + + + + + + +ESP-IDF Firmware: dsps_addc.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_addc.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_addc_H_
+
16#define _dsps_addc_H_
+
17#include "dsp_err.h"
+
18
+
19#include "dsps_addc_platform.h"
+
20
+
21#ifdef __cplusplus
+
22extern "C"
+
23{
+
24#endif
+
25
+
26
+
46esp_err_t dsps_addc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out);
+
47esp_err_t dsps_addc_f32_ae32(const float *input, float *output, int len, float C, int step_in, int step_out);
+
49
+
50#ifdef __cplusplus
+
51}
+
52#endif
+
53
+
54
+
55#if CONFIG_DSP_OPTIMIZED
+
56#if (dsps_addc_f32_ae32_enabled == 1)
+
57#define dsps_addc_f32 dsps_addc_f32_ae32
+
58#else
+
59#define dsps_addc_f32 dsps_addc_f32_ansi
+
60#endif
+
61#else
+
62#define dsps_addc_f32 dsps_addc_f32_ansi
+
63#endif // CONFIG_DSP_OPTIMIZED
+
64
+
65#endif // _dsps_addc_H_
+ +
esp_err_t dsps_addc_f32_ae32(const float *input, float *output, int len, float C, int step_in, int step_out)
+
esp_err_t dsps_addc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
add constant
+ +
int esp_err_t
Definition esp_err.h:21
+
float C[4][16]
Definition test_mmult.c:22
+
+
+
+ + + + diff --git a/docs/html/dsps__addc__f32__ansi_8c.html b/docs/html/dsps__addc__f32__ansi_8c.html new file mode 100644 index 0000000..b658c4b --- /dev/null +++ b/docs/html/dsps__addc__f32__ansi_8c.html @@ -0,0 +1,215 @@ + + + + + + + +ESP-IDF Firmware: dsps_addc_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_addc_f32_ansi.c File Reference
+
+
+
#include "dsps_addc.h"
+
+Include dependency graph for dsps_addc_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_addc_f32_ansi (const float *input, float *output, int len, float C, int step_in, int step_out)
 add constant
+

Function Documentation

+ +

◆ dsps_addc_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_addc_f32_ansi (const float * input,
float * output,
int len,
float C,
int step_in,
int step_out )
+
+ +

add constant

+

The function adds constant to the input array x[i*step_out] = y[i*step_in] + C; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + +
[in]inputinput array
outputoutput array
lenamount of operations for arrays
Cconstant value
step_instep over input array (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_addc_f32_ansi.c.

+
18{
+
19 if (NULL == input) {
+ +
21 }
+
22 if (NULL == output) {
+ +
24 }
+
25
+
26 for (int i = 0 ; i < len ; i++) {
+
27 output[i * step_out] = input[i * step_in] + C;
+
28 }
+
29 return ESP_OK;
+
30}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +

Referenced by dspm::Mat::operator+=(), and dspm::Mat::operator-=().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__addc__f32__ansi_8c.js b/docs/html/dsps__addc__f32__ansi_8c.js new file mode 100644 index 0000000..ccebfa9 --- /dev/null +++ b/docs/html/dsps__addc__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__addc__f32__ansi_8c = +[ + [ "dsps_addc_f32_ansi", "dsps__addc__f32__ansi_8c.html#ada8973331709849575d7c14c65808016", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__addc__f32__ansi_8c__incl.md5 b/docs/html/dsps__addc__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..0e51c85 --- /dev/null +++ b/docs/html/dsps__addc__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +965e93ca12a7ef4fd684d55b4eec4152 \ No newline at end of file diff --git a/docs/html/dsps__addc__f32__ansi_8c__incl.svg b/docs/html/dsps__addc__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..726657b --- /dev/null +++ b/docs/html/dsps__addc__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_addc_f32_ansi.c + + +Node1 + + +dsps_addc_f32_ansi.c + + + + + +Node2 + + +dsps_addc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_addc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__addc__f32__ansi_8c__incl_org.svg b/docs/html/dsps__addc__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..88ef506 --- /dev/null +++ b/docs/html/dsps__addc__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_addc_f32_ansi.c + + +Node1 + + +dsps_addc_f32_ansi.c + + + + + +Node2 + + +dsps_addc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_addc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph.md5 b/docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph.md5 new file mode 100644 index 0000000..3b34ccb --- /dev/null +++ b/docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph.md5 @@ -0,0 +1 @@ +0c77c5c9891fa5c0d88900c5a79558ac \ No newline at end of file diff --git a/docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph.svg b/docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph.svg new file mode 100644 index 0000000..c5f7d4a --- /dev/null +++ b/docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_addc_f32_ansi + + +Node1 + + +dsps_addc_f32_ansi + + + + + +Node2 + + +dspm::Mat::operator+= + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::operator-= + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph_org.svg b/docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph_org.svg new file mode 100644 index 0000000..1d8bd9c --- /dev/null +++ b/docs/html/dsps__addc__f32__ansi_8c_ada8973331709849575d7c14c65808016_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_addc_f32_ansi + + +Node1 + + +dsps_addc_f32_ansi + + + + + +Node2 + + +dspm::Mat::operator+= + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::operator-= + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__addc__f32__ansi_8c_source.html b/docs/html/dsps__addc__f32__ansi_8c_source.html new file mode 100644 index 0000000..70bf9a5 --- /dev/null +++ b/docs/html/dsps__addc__f32__ansi_8c_source.html @@ -0,0 +1,144 @@ + + + + + + + +ESP-IDF Firmware: dsps_addc_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_addc_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_addc.h"
+
16
+
+
17esp_err_t dsps_addc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
+
18{
+
19 if (NULL == input) {
+ +
21 }
+
22 if (NULL == output) {
+ +
24 }
+
25
+
26 for (int i = 0 ; i < len ; i++) {
+
27 output[i * step_out] = input[i * step_in] + C;
+
28 }
+
29 return ESP_OK;
+
30}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_addc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
add constant
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+
+
+ + + + diff --git a/docs/html/dsps__addc__platform_8h.html b/docs/html/dsps__addc__platform_8h.html new file mode 100644 index 0000000..fab9ea7 --- /dev/null +++ b/docs/html/dsps__addc__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_addc_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_addc_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_addc_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__addc__platform_8h__dep__incl.md5 b/docs/html/dsps__addc__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..e90cfd1 --- /dev/null +++ b/docs/html/dsps__addc__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +191077cfc9e808d51bbe91a176a216ea \ No newline at end of file diff --git a/docs/html/dsps__addc__platform_8h__dep__incl.svg b/docs/html/dsps__addc__platform_8h__dep__incl.svg new file mode 100644 index 0000000..fd45eda --- /dev/null +++ b/docs/html/dsps__addc__platform_8h__dep__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_addc_platform.h + + +Node1 + + +dsps_addc_platform.h + + + + + +Node2 + + +dsps_addc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_addc_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_math.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node39 + + +mat.cpp + + + + + +Node4->Node39 + + + + + + + + + + + + + diff --git a/docs/html/dsps__addc__platform_8h__dep__incl_org.svg b/docs/html/dsps__addc__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..71c8d09 --- /dev/null +++ b/docs/html/dsps__addc__platform_8h__dep__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_addc_platform.h + + +Node1 + + +dsps_addc_platform.h + + + + + +Node2 + + +dsps_addc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_addc_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_math.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node39 + + +mat.cpp + + + + + +Node4->Node39 + + + + + + + + diff --git a/docs/html/dsps__addc__platform_8h__incl.md5 b/docs/html/dsps__addc__platform_8h__incl.md5 new file mode 100644 index 0000000..ca98710 --- /dev/null +++ b/docs/html/dsps__addc__platform_8h__incl.md5 @@ -0,0 +1 @@ +63f1e56d77a1cd225904b7b23cdbb32a \ No newline at end of file diff --git a/docs/html/dsps__addc__platform_8h__incl.svg b/docs/html/dsps__addc__platform_8h__incl.svg new file mode 100644 index 0000000..3784608 --- /dev/null +++ b/docs/html/dsps__addc__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_addc_platform.h + + +Node1 + + +dsps_addc_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__addc__platform_8h__incl_org.svg b/docs/html/dsps__addc__platform_8h__incl_org.svg new file mode 100644 index 0000000..12848e9 --- /dev/null +++ b/docs/html/dsps__addc__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_addc_platform.h + + +Node1 + + +dsps_addc_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__addc__platform_8h_source.html b/docs/html/dsps__addc__platform_8h_source.html new file mode 100644 index 0000000..206c48e --- /dev/null +++ b/docs/html/dsps__addc__platform_8h_source.html @@ -0,0 +1,125 @@ + + + + + + + +ESP-IDF Firmware: dsps_addc_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_addc_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_addc_platform_H_
+
2#define _dsps_addc_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dsps_addc_f32_ae32_enabled 1
+
14
+
15#endif
+
16#endif // __XTENSA__
+
17
+
18
+
19#endif // _dsps_addc_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__biquad_8h.html b/docs/html/dsps__biquad_8h.html new file mode 100644 index 0000000..cb95e1c --- /dev/null +++ b/docs/html/dsps__biquad_8h.html @@ -0,0 +1,547 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_biquad_platform.h"
+
+Include dependency graph for dsps_biquad.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Macros

#define dsps_biquad_f32   dsps_biquad_f32_ansi
#define dsps_biquad_sf32   dsps_biquad_sf32_ansi
+ + + + + + + + + + + + + +

+Functions

esp_err_t dsps_biquad_f32_ansi (const float *input, float *output, int len, float *coef, float *w)
 IIR filter.
esp_err_t dsps_biquad_f32_ae32 (const float *input, float *output, int len, float *coef, float *w)
esp_err_t dsps_biquad_f32_aes3 (const float *input, float *output, int len, float *coef, float *w)
esp_err_t dsps_biquad_f32_arp4 (const float *input, float *output, int len, float *coef, float *w)
esp_err_t dsps_biquad_sf32_ansi (const float *input, float *output, int len, float *coef, float *w)
 IIR filter for stereo data.
esp_err_t dsps_biquad_sf32_ae32 (const float *input, float *output, int len, float *coef, float *w)
esp_err_t dsps_biquad_sf32_aes3 (const float *input, float *output, int len, float *coef, float *w)
esp_err_t dsps_biquad_sf32_arp4 (const float *input, float *output, int len, float *coef, float *w)
+

Macro Definition Documentation

+ +

◆ dsps_biquad_f32

+ +
+
+ + + + +
#define dsps_biquad_f32   dsps_biquad_f32_ansi
+
+ +

Definition at line 99 of file dsps_biquad.h.

+ +

Referenced by audio_read_task(), audio_read_task(), and audio_read_task().

+ +
+
+ +

◆ dsps_biquad_sf32

+ +
+
+ + + + +
#define dsps_biquad_sf32   dsps_biquad_sf32_ansi
+
+ +

Definition at line 100 of file dsps_biquad.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_biquad_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_f32_ae32 (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +
+
+ +

◆ dsps_biquad_f32_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_f32_aes3 (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +
+
+ +

◆ dsps_biquad_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_f32_ansi (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +

IIR filter.

+

IIR filter 2nd order direct form II (bi quad) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + +
[in]inputinput array
outputoutput array
lenlength of input and output vectors
coefarray of coefficients. b0,b1,b2,a1,a2 expected that a0 = 1. b0..b2 - numerator, a0..a2 - denominator
wdelay line w0,w1. Length of 2.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 19 of file dsps_biquad_f32_ansi.c.

+
20{
+
21 for (int i = 0 ; i < len ; i++) {
+
22 float d0 = input[i] - coef[3] * w[0] - coef[4] * w[1];
+
23 output[i] = coef[0] * d0 + coef[1] * w[0] + coef[2] * w[1];
+
24 w[1] = w[0];
+
25 w[0] = d0;
+
26 }
+
27 return ESP_OK;
+
28}
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK.

+ +

Referenced by test_iir_biquad().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_biquad_f32_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_f32_arp4 (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +
+
+ +

◆ dsps_biquad_sf32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_sf32_ae32 (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +
+
+ +

◆ dsps_biquad_sf32_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_sf32_aes3 (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +
+
+ +

◆ dsps_biquad_sf32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_sf32_ansi (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +

IIR filter for stereo data.

+

IIR filter 2nd order direct form II (bi quad) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + +
[in]inputinput array of two channels: L/R/L/R/L/R
outputoutput array of two channels: L/R/L/R/L/R
lennumber of samples in one channel
coefarray of coefficients. b0,b1,b2,a1,a2 expected that a0 = 1. b0..b2 - numerator, a0..a2 - denominator
wdelay line w0,w1,w2,w3. Length of 4. w0,w1 - channel0, w2,w3 - channel1
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 19 of file dsps_biquad_sf32_ansi.c.

+
20{
+
21 for (int i = 0 ; i < len ; i++) {
+
22 float d0 = input[i * 2 + 0] - coef[3] * w[0] - coef[4] * w[1];
+
23 output[i * 2 + 0] = coef[0] * d0 + coef[1] * w[0] + coef[2] * w[1];
+
24 w[1] = w[0];
+
25 w[0] = d0;
+
26
+
27 d0 = input[i * 2 + 1] - coef[3] * w[2] - coef[4] * w[3];
+
28 output[i * 2 + 1] = coef[0] * d0 + coef[1] * w[2] + coef[2] * w[3];
+
29 w[3] = w[2];
+
30 w[2] = d0;
+
31 }
+
32 return ESP_OK;
+
33}
+
+

References ESP_OK.

+ +
+
+ +

◆ dsps_biquad_sf32_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_sf32_arp4 (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__biquad_8h.js b/docs/html/dsps__biquad_8h.js new file mode 100644 index 0000000..a1be2c7 --- /dev/null +++ b/docs/html/dsps__biquad_8h.js @@ -0,0 +1,13 @@ +var dsps__biquad_8h = +[ + [ "dsps_biquad_f32", "dsps__biquad_8h.html#af22b9cddf781d1197ec47e87343bf70c", null ], + [ "dsps_biquad_sf32", "dsps__biquad_8h.html#a6adb5072721bd35e83507853b3aeeff2", null ], + [ "dsps_biquad_f32_ae32", "dsps__biquad_8h.html#a252923dffe8c425f383d695ce89261d1", null ], + [ "dsps_biquad_f32_aes3", "dsps__biquad_8h.html#a846101c79b9535501f44ab79b1ef10fc", null ], + [ "dsps_biquad_f32_ansi", "dsps__biquad_8h.html#acaf70e9932ec03b4ec2e7979f6dc476b", null ], + [ "dsps_biquad_f32_arp4", "dsps__biquad_8h.html#ae29cc701f2804f366b3d9a3781818ba1", null ], + [ "dsps_biquad_sf32_ae32", "dsps__biquad_8h.html#a843cc6ff06003a533441d4e6b0d1294a", null ], + [ "dsps_biquad_sf32_aes3", "dsps__biquad_8h.html#a7af69762e0a58ba6008ac422f1020f27", null ], + [ "dsps_biquad_sf32_ansi", "dsps__biquad_8h.html#a3dd7c415d3ec325c06da5857bec84b61", null ], + [ "dsps_biquad_sf32_arp4", "dsps__biquad_8h.html#a332666454c016b6c629ae1d6973f6451", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__biquad_8h__dep__incl.md5 b/docs/html/dsps__biquad_8h__dep__incl.md5 new file mode 100644 index 0000000..01ae6b6 --- /dev/null +++ b/docs/html/dsps__biquad_8h__dep__incl.md5 @@ -0,0 +1 @@ +24cfc08bdbbbbac118f3aa2f892f4576 \ No newline at end of file diff --git a/docs/html/dsps__biquad_8h__dep__incl.svg b/docs/html/dsps__biquad_8h__dep__incl.svg new file mode 100644 index 0000000..a656f8d --- /dev/null +++ b/docs/html/dsps__biquad_8h__dep__incl.svg @@ -0,0 +1,770 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_biquad.h + + +Node1 + + +dsps_biquad.h + + + + + +Node2 + + +dsps_biquad_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_sf32_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node38 + + +test_iir_biquad.c + + + + + +Node1->Node38 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dsps_fird_init_s16.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +graphics_support.cpp + + + + + +Node27->Node28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad_8h__dep__incl_org.svg b/docs/html/dsps__biquad_8h__dep__incl_org.svg new file mode 100644 index 0000000..a440a50 --- /dev/null +++ b/docs/html/dsps__biquad_8h__dep__incl_org.svg @@ -0,0 +1,687 @@ + + + + + + +dsps_biquad.h + + +Node1 + + +dsps_biquad.h + + + + + +Node2 + + +dsps_biquad_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_sf32_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node38 + + +test_iir_biquad.c + + + + + +Node1->Node38 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dsps_fird_init_s16.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +graphics_support.cpp + + + + + +Node27->Node28 + + + + + + + + diff --git a/docs/html/dsps__biquad_8h__incl.md5 b/docs/html/dsps__biquad_8h__incl.md5 new file mode 100644 index 0000000..5ceda3e --- /dev/null +++ b/docs/html/dsps__biquad_8h__incl.md5 @@ -0,0 +1 @@ +69a4e1b3f6f7d9846c5202668cdf7c7b \ No newline at end of file diff --git a/docs/html/dsps__biquad_8h__incl.svg b/docs/html/dsps__biquad_8h__incl.svg new file mode 100644 index 0000000..d0ec5f9 --- /dev/null +++ b/docs/html/dsps__biquad_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_biquad.h + + +Node1 + + +dsps_biquad.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_biquad_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad_8h__incl_org.svg b/docs/html/dsps__biquad_8h__incl_org.svg new file mode 100644 index 0000000..0c6794d --- /dev/null +++ b/docs/html/dsps__biquad_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_biquad.h + + +Node1 + + +dsps_biquad.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_biquad_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 b/docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 new file mode 100644 index 0000000..471beec --- /dev/null +++ b/docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 @@ -0,0 +1 @@ +5dfc2b37ba5bb9db40bb702da77fdf35 \ No newline at end of file diff --git a/docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.svg b/docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.svg new file mode 100644 index 0000000..ab11e8d --- /dev/null +++ b/docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_biquad_f32_ansi + + +Node1 + + +dsps_biquad_f32_ansi + + + + + +Node2 + + +test_iir_biquad + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph_org.svg b/docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph_org.svg new file mode 100644 index 0000000..477ac88 --- /dev/null +++ b/docs/html/dsps__biquad_8h_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_biquad_f32_ansi + + +Node1 + + +dsps_biquad_f32_ansi + + + + + +Node2 + + +test_iir_biquad + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__biquad_8h_source.html b/docs/html/dsps__biquad_8h_source.html new file mode 100644 index 0000000..6f82bd0 --- /dev/null +++ b/docs/html/dsps__biquad_8h_source.html @@ -0,0 +1,184 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2025 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _dsps_biquad_H_
+
17#define _dsps_biquad_H_
+
18
+
19#include "dsp_err.h"
+
20
+ +
22
+
23#ifdef __cplusplus
+
24extern "C"
+
25{
+
26#endif
+
27
+
46esp_err_t dsps_biquad_f32_ansi(const float *input, float *output, int len, float *coef, float *w);
+
47esp_err_t dsps_biquad_f32_ae32(const float *input, float *output, int len, float *coef, float *w);
+
48esp_err_t dsps_biquad_f32_aes3(const float *input, float *output, int len, float *coef, float *w);
+
49esp_err_t dsps_biquad_f32_arp4(const float *input, float *output, int len, float *coef, float *w);
+
51
+
70esp_err_t dsps_biquad_sf32_ansi(const float *input, float *output, int len, float *coef, float *w);
+
71esp_err_t dsps_biquad_sf32_ae32(const float *input, float *output, int len, float *coef, float *w);
+
72esp_err_t dsps_biquad_sf32_aes3(const float *input, float *output, int len, float *coef, float *w);
+
73esp_err_t dsps_biquad_sf32_arp4(const float *input, float *output, int len, float *coef, float *w);
+
75
+
76
+
77#ifdef __cplusplus
+
78}
+
79#endif
+
80
+
81#if CONFIG_DSP_OPTIMIZED
+
82
+
83#if (dsps_biquad_f32_ae32_enabled == 1)
+
84#define dsps_biquad_f32 dsps_biquad_f32_ae32
+
85#define dsps_biquad_sf32 dsps_biquad_sf32_ae32
+
86#elif (dsps_biquad_f32_aes3_enabled == 1)
+
87#define dsps_biquad_f32 dsps_biquad_f32_aes3
+
88#define dsps_biquad_sf32 dsps_biquad_sf32_ae32
+
89#elif (dsps_biquad_f32_arp4_enabled == 1)
+
90#define dsps_biquad_f32 dsps_biquad_f32_arp4
+
91#define dsps_biquad_sf32 dsps_biquad_sf32_arp4
+
92#else
+
93#define dsps_biquad_f32 dsps_biquad_f32_ansi
+
94#define dsps_biquad_sf32 dsps_biquad_sf32_ansi
+
95#endif
+
96
+
97#else // CONFIG_DSP_OPTIMIZED
+
98
+
99#define dsps_biquad_f32 dsps_biquad_f32_ansi
+
100#define dsps_biquad_sf32 dsps_biquad_sf32_ansi
+
101
+
102#endif // CONFIG_DSP_OPTIMIZED
+
103
+
104
+
105#endif // _dsps_biquad_H_
+ +
esp_err_t dsps_biquad_f32_ae32(const float *input, float *output, int len, float *coef, float *w)
+
esp_err_t dsps_biquad_sf32_arp4(const float *input, float *output, int len, float *coef, float *w)
+
esp_err_t dsps_biquad_sf32_ansi(const float *input, float *output, int len, float *coef, float *w)
IIR filter for stereo data.
+
esp_err_t dsps_biquad_sf32_aes3(const float *input, float *output, int len, float *coef, float *w)
+
esp_err_t dsps_biquad_sf32_ae32(const float *input, float *output, int len, float *coef, float *w)
+
esp_err_t dsps_biquad_f32_aes3(const float *input, float *output, int len, float *coef, float *w)
+
esp_err_t dsps_biquad_f32_ansi(const float *input, float *output, int len, float *coef, float *w)
IIR filter.
+
esp_err_t dsps_biquad_f32_arp4(const float *input, float *output, int len, float *coef, float *w)
+ +
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__biquad__f32__ansi_8c.html b/docs/html/dsps__biquad__f32__ansi_8c.html new file mode 100644 index 0000000..d1d4a82 --- /dev/null +++ b/docs/html/dsps__biquad__f32__ansi_8c.html @@ -0,0 +1,203 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_f32_ansi.c File Reference
+
+
+
#include "dsps_biquad.h"
+
+Include dependency graph for dsps_biquad_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_biquad_f32_ansi (const float *input, float *output, int len, float *coef, float *w)
 IIR filter.
+

Function Documentation

+ +

◆ dsps_biquad_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_f32_ansi (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +

IIR filter.

+

IIR filter 2nd order direct form II (bi quad) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + +
[in]inputinput array
outputoutput array
lenlength of input and output vectors
coefarray of coefficients. b0,b1,b2,a1,a2 expected that a0 = 1. b0..b2 - numerator, a0..a2 - denominator
wdelay line w0,w1. Length of 2.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 19 of file dsps_biquad_f32_ansi.c.

+
20{
+
21 for (int i = 0 ; i < len ; i++) {
+
22 float d0 = input[i] - coef[3] * w[0] - coef[4] * w[1];
+
23 output[i] = coef[0] * d0 + coef[1] * w[0] + coef[2] * w[1];
+
24 w[1] = w[0];
+
25 w[0] = d0;
+
26 }
+
27 return ESP_OK;
+
28}
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK.

+ +

Referenced by test_iir_biquad().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__biquad__f32__ansi_8c.js b/docs/html/dsps__biquad__f32__ansi_8c.js new file mode 100644 index 0000000..0e3afaa --- /dev/null +++ b/docs/html/dsps__biquad__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__biquad__f32__ansi_8c = +[ + [ "dsps_biquad_f32_ansi", "dsps__biquad__f32__ansi_8c.html#acaf70e9932ec03b4ec2e7979f6dc476b", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__biquad__f32__ansi_8c__incl.md5 b/docs/html/dsps__biquad__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..556bb2d --- /dev/null +++ b/docs/html/dsps__biquad__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +b764ec329a8b2d0a369134250de794ee \ No newline at end of file diff --git a/docs/html/dsps__biquad__f32__ansi_8c__incl.svg b/docs/html/dsps__biquad__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..a6e37eb --- /dev/null +++ b/docs/html/dsps__biquad__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_biquad_f32_ansi.c + + +Node1 + + +dsps_biquad_f32_ansi.c + + + + + +Node2 + + +dsps_biquad.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_biquad_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__f32__ansi_8c__incl_org.svg b/docs/html/dsps__biquad__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..1e264e8 --- /dev/null +++ b/docs/html/dsps__biquad__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_biquad_f32_ansi.c + + +Node1 + + +dsps_biquad_f32_ansi.c + + + + + +Node2 + + +dsps_biquad.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_biquad_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 b/docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 new file mode 100644 index 0000000..471beec --- /dev/null +++ b/docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.md5 @@ -0,0 +1 @@ +5dfc2b37ba5bb9db40bb702da77fdf35 \ No newline at end of file diff --git a/docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.svg b/docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.svg new file mode 100644 index 0000000..ab11e8d --- /dev/null +++ b/docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_biquad_f32_ansi + + +Node1 + + +dsps_biquad_f32_ansi + + + + + +Node2 + + +test_iir_biquad + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph_org.svg b/docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph_org.svg new file mode 100644 index 0000000..477ac88 --- /dev/null +++ b/docs/html/dsps__biquad__f32__ansi_8c_acaf70e9932ec03b4ec2e7979f6dc476b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_biquad_f32_ansi + + +Node1 + + +dsps_biquad_f32_ansi + + + + + +Node2 + + +test_iir_biquad + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__biquad__f32__ansi_8c_source.html b/docs/html/dsps__biquad__f32__ansi_8c_source.html new file mode 100644 index 0000000..db6e9b3 --- /dev/null +++ b/docs/html/dsps__biquad__f32__ansi_8c_source.html @@ -0,0 +1,140 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#include "dsps_biquad.h"
+
17
+
18
+
+
19esp_err_t dsps_biquad_f32_ansi(const float *input, float *output, int len, float *coef, float *w)
+
20{
+
21 for (int i = 0 ; i < len ; i++) {
+
22 float d0 = input[i] - coef[3] * w[0] - coef[4] * w[1];
+
23 output[i] = coef[0] * d0 + coef[1] * w[0] + coef[2] * w[1];
+
24 w[1] = w[0];
+
25 w[0] = d0;
+
26 }
+
27 return ESP_OK;
+
28}
+
+ +
esp_err_t dsps_biquad_f32_ansi(const float *input, float *output, int len, float *coef, float *w)
IIR filter.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__biquad__gen_8h.html b/docs/html/dsps__biquad__gen_8h.html new file mode 100644 index 0000000..387a646 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h.html @@ -0,0 +1,899 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_gen.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_gen.h File Reference
+
+
+
#include "dsp_err.h"
+
+Include dependency graph for dsps_biquad_gen.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_biquad_gen_lpf_f32 (float *coeffs, float f, float qFactor)
 LPF IIR filter coefficients Coefficients for low pass 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform.
esp_err_t dsps_biquad_gen_hpf_f32 (float *coeffs, float f, float qFactor)
 HPF IIR filter coefficients.
esp_err_t dsps_biquad_gen_bpf_f32 (float *coeffs, float f, float qFactor)
 BPF IIR filter coefficients.
esp_err_t dsps_biquad_gen_bpf0db_f32 (float *coeffs, float f, float qFactor)
 0 dB BPF IIR filter coefficients
esp_err_t dsps_biquad_gen_notch_f32 (float *coeffs, float f, float gain, float qFactor)
 Notch IIR filter coefficients.
esp_err_t dsps_biquad_gen_allpass360_f32 (float *coeffs, float f, float qFactor)
 Allpass 360 degree IIR filter coefficients.
esp_err_t dsps_biquad_gen_allpass180_f32 (float *coeffs, float f, float qFactor)
 Allpass 180 degree IIR filter coefficients.
esp_err_t dsps_biquad_gen_peakingEQ_f32 (float *coeffs, float f, float qFactor)
 peak IIR filter coefficients
esp_err_t dsps_biquad_gen_lowShelf_f32 (float *coeffs, float f, float gain, float qFactor)
 low shelf IIR filter coefficients
esp_err_t dsps_biquad_gen_highShelf_f32 (float *coeffs, float f, float gain, float qFactor)
 high shelf IIR filter coefficients
+

Function Documentation

+ +

◆ dsps_biquad_gen_allpass180_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_allpass180_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

Allpass 180 degree IIR filter coefficients.

+

Coefficients for all pass 2nd order IIR filter (bi-quad) with 180 degree phase shift The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 182 of file dsps_biquad_gen_f32.c.

+
183{
+
184 if (qFactor <= 0.0001) {
+
185 qFactor = 0.0001;
+
186 }
+
187 float Fs = 1;
+
188
+
189 float w0 = 2 * M_PI * f / Fs;
+
190 float c = cosf(w0);
+
191 float s = sinf(w0);
+
192 float alpha = s / (2 * qFactor);
+
193
+
194 float b0 = 1 - alpha;
+
195 float b1 = -2 * c;
+
196 float b2 = 1 + alpha;
+
197 float a0 = 1 + alpha;
+
198 float a1 = -2 * c;
+
199 float a2 = 1 - alpha;
+
200
+
201 coeffs[0] = b0 / a0;
+
202 coeffs[1] = b1 / a0;
+
203 coeffs[2] = b2 / a0;
+
204 coeffs[3] = a1 / a0;
+
205 coeffs[4] = a2 / a0;
+
206 return ESP_OK;
+
207}
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
float coeffs[256]
Definition test_fir.c:14
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_allpass360_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_allpass360_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

Allpass 360 degree IIR filter coefficients.

+

Coefficients for all pass 2nd order IIR filter (bi-quad) with 360 degree phase shift The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 155 of file dsps_biquad_gen_f32.c.

+
156{
+
157 if (qFactor <= 0.0001) {
+
158 qFactor = 0.0001;
+
159 }
+
160 float Fs = 1;
+
161
+
162 float w0 = 2 * M_PI * f / Fs;
+
163 float c = cosf(w0);
+
164 float s = sinf(w0);
+
165 float alpha = s / (2 * qFactor);
+
166
+
167 float b0 = 1 - alpha;
+
168 float b1 = -2 * c;
+
169 float b2 = 1 + alpha;
+
170 float a0 = 1 + alpha;
+
171 float a1 = -2 * c;
+
172 float a2 = 1 - alpha;
+
173
+
174 coeffs[0] = b0 / a0;
+
175 coeffs[1] = b1 / a0;
+
176 coeffs[2] = b2 / a0;
+
177 coeffs[3] = a1 / a0;
+
178 coeffs[4] = a2 / a0;
+
179 return ESP_OK;
+
180}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_bpf0db_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_bpf0db_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

0 dB BPF IIR filter coefficients

+

Coefficients for band pass 2nd order IIR filter (bi-quad) with 0 dB gain in passband The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter center frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 100 of file dsps_biquad_gen_f32.c.

+
101{
+
102 if (qFactor <= 0.0001) {
+
103 qFactor = 0.0001;
+
104 }
+
105 float Fs = 1;
+
106
+
107 float w0 = 2 * M_PI * f / Fs;
+
108 float c = cosf(w0);
+
109 float s = sinf(w0);
+
110 float alpha = s / (2 * qFactor);
+
111
+
112 float b0 = alpha;
+
113 float b1 = 0;
+
114 float b2 = -alpha;
+
115 float a0 = 1 + alpha;
+
116 float a1 = -2 * c;
+
117 float a2 = 1 - alpha;
+
118
+
119 coeffs[0] = b0 / a0;
+
120 coeffs[1] = b1 / a0;
+
121 coeffs[2] = b2 / a0;
+
122 coeffs[3] = a1 / a0;
+
123 coeffs[4] = a2 / a0;
+
124 return ESP_OK;
+
125}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_bpf_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_bpf_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

BPF IIR filter coefficients.

+

Coefficients for band pass 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter center frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 73 of file dsps_biquad_gen_f32.c.

+
74{
+
75 if (qFactor <= 0.0001) {
+
76 qFactor = 0.0001;
+
77 }
+
78 float Fs = 1;
+
79
+
80 float w0 = 2 * M_PI * f / Fs;
+
81 float c = cosf(w0);
+
82 float s = sinf(w0);
+
83 float alpha = s / (2 * qFactor);
+
84
+
85 float b0 = s / 2;
+
86 float b1 = 0;
+
87 float b2 = -b0;
+
88 float a0 = 1 + alpha;
+
89 float a1 = -2 * c;
+
90 float a2 = 1 - alpha;
+
91
+
92 coeffs[0] = b0 / a0;
+
93 coeffs[1] = b1 / a0;
+
94 coeffs[2] = b2 / a0;
+
95 coeffs[3] = a1 / a0;
+
96 coeffs[4] = a2 / a0;
+
97 return ESP_OK;
+
98}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_highShelf_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_highShelf_f32 (float * coeffs,
float f,
float gain,
float qFactor )
+
+ +

high shelf IIR filter coefficients

+

Coefficients for high pass Shelf 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
gaingain in stopband in dB
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 264 of file dsps_biquad_gen_f32.c.

+
265{
+
266 if (qFactor <= 0.0001) {
+
267 qFactor = 0.0001;
+
268 }
+
269 float Fs = 1;
+
270
+
271 float A = sqrtf(pow(10, (double)gain / 20.0));
+
272 float w0 = 2 * M_PI * f / Fs;
+
273 float c = cosf(w0);
+
274 float s = sinf(w0);
+
275 float alpha = s / (2 * qFactor);
+
276
+
277 float b0 = A * ((A + 1) + (A - 1) * c + 2 * sqrtf(A) * alpha);
+
278 float b1 = -2 * A * ((A - 1) + (A + 1) * c);
+
279 float b2 = A * ((A + 1) + (A - 1) * c - 2 * sqrtf(A) * alpha);
+
280 float a0 = (A + 1) - (A - 1) * c + 2 * sqrtf(A) * alpha;
+
281 float a1 = 2 * ((A - 1) - (A + 1) * c);
+
282 float a2 = (A + 1) - (A - 1) * c - 2 * sqrtf(A) * alpha;
+
283
+
284 coeffs[0] = b0 / a0;
+
285 coeffs[1] = b1 / a0;
+
286 coeffs[2] = b2 / a0;
+
287 coeffs[3] = a1 / a0;
+
288 coeffs[4] = a2 / a0;
+
289 return ESP_OK;
+
290}
+
float A[4][8]
Definition test_mmult.c:20
+
+

References A, coeffs, ESP_OK, and M_PI.

+ +

Referenced by audio_process_task(), audio_process_task(), audio_process_task(), buttons_process_task(), buttons_process_task(), and buttons_process_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_biquad_gen_hpf_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_hpf_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

HPF IIR filter coefficients.

+

Coefficients for high pass 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter cut off frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 46 of file dsps_biquad_gen_f32.c.

+
47{
+
48 if (qFactor <= 0.0001) {
+
49 qFactor = 0.0001;
+
50 }
+
51 float Fs = 1;
+
52
+
53 float w0 = 2 * M_PI * f / Fs;
+
54 float c = cosf(w0);
+
55 float s = sinf(w0);
+
56 float alpha = s / (2 * qFactor);
+
57
+
58 float b0 = (1 + c) / 2;
+
59 float b1 = -(1 + c);
+
60 float b2 = b0;
+
61 float a0 = 1 + alpha;
+
62 float a1 = -2 * c;
+
63 float a2 = 1 - alpha;
+
64
+
65 coeffs[0] = b0 / a0;
+
66 coeffs[1] = b1 / a0;
+
67 coeffs[2] = b2 / a0;
+
68 coeffs[3] = a1 / a0;
+
69 coeffs[4] = a2 / a0;
+
70 return ESP_OK;
+
71}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_lowShelf_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_lowShelf_f32 (float * coeffs,
float f,
float gain,
float qFactor )
+
+ +

low shelf IIR filter coefficients

+

Coefficients for low pass Shelf 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
gaingain in stopband in dB
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 236 of file dsps_biquad_gen_f32.c.

+
237{
+
238 if (qFactor <= 0.0001) {
+
239 qFactor = 0.0001;
+
240 }
+
241 float Fs = 1;
+
242
+
243 float A = sqrtf(pow(10, (double)gain / 20.0));
+
244 float w0 = 2 * M_PI * f / Fs;
+
245 float c = cosf(w0);
+
246 float s = sinf(w0);
+
247 float alpha = s / (2 * qFactor);
+
248
+
249 float b0 = A * ((A + 1) - (A - 1) * c + 2 * sqrtf(A) * alpha);
+
250 float b1 = 2 * A * ((A - 1) - (A + 1) * c);
+
251 float b2 = A * ((A + 1) - (A - 1) * c - 2 * sqrtf(A) * alpha);
+
252 float a0 = (A + 1) + (A - 1) * c + 2 * sqrtf(A) * alpha;
+
253 float a1 = -2 * ((A - 1) + (A + 1) * c);
+
254 float a2 = (A + 1) + (A - 1) * c - 2 * sqrtf(A) * alpha;
+
255
+
256 coeffs[0] = b0 / a0;
+
257 coeffs[1] = b1 / a0;
+
258 coeffs[2] = b2 / a0;
+
259 coeffs[3] = a1 / a0;
+
260 coeffs[4] = a2 / a0;
+
261 return ESP_OK;
+
262}
+
+

References A, coeffs, ESP_OK, and M_PI.

+ +

Referenced by audio_process_task(), audio_process_task(), audio_process_task(), buttons_process_task(), buttons_process_task(), and buttons_process_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_biquad_gen_lpf_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_lpf_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

LPF IIR filter coefficients Coefficients for low pass 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform.

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter cut off frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 19 of file dsps_biquad_gen_f32.c.

+
20{
+
21 if (qFactor <= 0.0001) {
+
22 qFactor = 0.0001;
+
23 }
+
24 float Fs = 1;
+
25
+
26 float w0 = 2 * M_PI * f / Fs;
+
27 float c = cosf(w0);
+
28 float s = sinf(w0);
+
29 float alpha = s / (2 * qFactor);
+
30
+
31 float b0 = (1 - c) / 2;
+
32 float b1 = 1 - c;
+
33 float b2 = b0;
+
34 float a0 = 1 + alpha;
+
35 float a1 = -2 * c;
+
36 float a2 = 1 - alpha;
+
37
+
38 coeffs[0] = b0 / a0;
+
39 coeffs[1] = b1 / a0;
+
40 coeffs[2] = b2 / a0;
+
41 coeffs[3] = a1 / a0;
+
42 coeffs[4] = a2 / a0;
+
43 return ESP_OK;
+
44}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_notch_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_notch_f32 (float * coeffs,
float f,
float gain,
float qFactor )
+
+ +

Notch IIR filter coefficients.

+

Coefficients for notch 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
gaingain in stopband in dB
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 127 of file dsps_biquad_gen_f32.c.

+
128{
+
129 if (qFactor <= 0.0001) {
+
130 qFactor = 0.0001;
+
131 }
+
132 float Fs = 1;
+
133
+
134 float A = sqrtf(pow(10, (double)gain / 20.0));
+
135 float w0 = 2 * M_PI * f / Fs;
+
136 float c = cosf(w0);
+
137 float s = sinf(w0);
+
138 float alpha = s / (2 * qFactor);
+
139
+
140 float b0 = 1 + alpha * A;
+
141 float b1 = -2 * c;
+
142 float b2 = 1 - alpha * A;
+
143 float a0 = 1 + alpha;
+
144 float a1 = -2 * c;
+
145 float a2 = 1 - alpha;
+
146
+
147 coeffs[0] = b0 / a0;
+
148 coeffs[1] = b1 / a0;
+
149 coeffs[2] = b2 / a0;
+
150 coeffs[3] = a1 / a0;
+
151 coeffs[4] = a2 / a0;
+
152 return ESP_OK;
+
153}
+
+

References A, coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_peakingEQ_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_peakingEQ_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

peak IIR filter coefficients

+

Coefficients for peak 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 209 of file dsps_biquad_gen_f32.c.

+
210{
+
211 if (qFactor <= 0.0001) {
+
212 qFactor = 0.0001;
+
213 }
+
214 float Fs = 1;
+
215
+
216 float w0 = 2 * M_PI * f / Fs;
+
217 float c = cosf(w0);
+
218 float s = sinf(w0);
+
219 float alpha = s / (2 * qFactor);
+
220
+
221 float b0 = alpha;
+
222 float b1 = 0;
+
223 float b2 = -alpha;
+
224 float a0 = 1 + alpha;
+
225 float a1 = -2 * c;
+
226 float a2 = 1 - alpha;
+
227
+
228 coeffs[0] = b0 / a0;
+
229 coeffs[1] = b1 / a0;
+
230 coeffs[2] = b2 / a0;
+
231 coeffs[3] = a1 / a0;
+
232 coeffs[4] = a2 / a0;
+
233 return ESP_OK;
+
234}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__biquad__gen_8h.js b/docs/html/dsps__biquad__gen_8h.js new file mode 100644 index 0000000..629676a --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h.js @@ -0,0 +1,13 @@ +var dsps__biquad__gen_8h = +[ + [ "dsps_biquad_gen_allpass180_f32", "dsps__biquad__gen_8h.html#aa4db784b585e2da6570697841f5bf873", null ], + [ "dsps_biquad_gen_allpass360_f32", "dsps__biquad__gen_8h.html#af90971f70f1360814591f14f559bf4ca", null ], + [ "dsps_biquad_gen_bpf0db_f32", "dsps__biquad__gen_8h.html#a600bdd4ce1a1ff2dfaefa276213e79b8", null ], + [ "dsps_biquad_gen_bpf_f32", "dsps__biquad__gen_8h.html#ab6f87b0a37098be48fc4b5d6efe2b082", null ], + [ "dsps_biquad_gen_highShelf_f32", "dsps__biquad__gen_8h.html#aff286789300a4805e9d133099144ef3e", null ], + [ "dsps_biquad_gen_hpf_f32", "dsps__biquad__gen_8h.html#a7323c9a85fd108c3667602dc0330759d", null ], + [ "dsps_biquad_gen_lowShelf_f32", "dsps__biquad__gen_8h.html#ab6bcec3856bdd4d742ab98f6431903e2", null ], + [ "dsps_biquad_gen_lpf_f32", "dsps__biquad__gen_8h.html#abbd4ce3d27c7caf753d530cf2b76d138", null ], + [ "dsps_biquad_gen_notch_f32", "dsps__biquad__gen_8h.html#a63db397a1032532eeade6860e5530fe9", null ], + [ "dsps_biquad_gen_peakingEQ_f32", "dsps__biquad__gen_8h.html#a44e9bcb25eaffb835cb9bef29506039b", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__biquad__gen_8h__dep__incl.md5 b/docs/html/dsps__biquad__gen_8h__dep__incl.md5 new file mode 100644 index 0000000..dfb8522 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h__dep__incl.md5 @@ -0,0 +1 @@ +4423bd8bd3f75a2cc2746850bf69d6cd \ No newline at end of file diff --git a/docs/html/dsps__biquad__gen_8h__dep__incl.svg b/docs/html/dsps__biquad__gen_8h__dep__incl.svg new file mode 100644 index 0000000..ed51581 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_biquad_gen.h + + +Node1 + + +dsps_biquad_gen.h + + + + + +Node2 + + +dsps_biquad_gen_f32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__gen_8h__dep__incl_org.svg b/docs/html/dsps__biquad__gen_8h__dep__incl_org.svg new file mode 100644 index 0000000..67dda75 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dsps_biquad_gen.h + + +Node1 + + +dsps_biquad_gen.h + + + + + +Node2 + + +dsps_biquad_gen_f32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + diff --git a/docs/html/dsps__biquad__gen_8h__incl.md5 b/docs/html/dsps__biquad__gen_8h__incl.md5 new file mode 100644 index 0000000..f7fede4 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h__incl.md5 @@ -0,0 +1 @@ +5c5d61d366cf92638004b7991ed489d5 \ No newline at end of file diff --git a/docs/html/dsps__biquad__gen_8h__incl.svg b/docs/html/dsps__biquad__gen_8h__incl.svg new file mode 100644 index 0000000..0c5633e --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_biquad_gen.h + + +Node1 + + +dsps_biquad_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__gen_8h__incl_org.svg b/docs/html/dsps__biquad__gen_8h__incl_org.svg new file mode 100644 index 0000000..753fe42 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_biquad_gen.h + + +Node1 + + +dsps_biquad_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.md5 b/docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.md5 new file mode 100644 index 0000000..cee2fe8 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.md5 @@ -0,0 +1 @@ +bb763b5f58212548e756e73975be5f4e \ No newline at end of file diff --git a/docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.svg b/docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.svg new file mode 100644 index 0000000..1edadb4 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_biquad_gen_lowShelf_f32 + + +Node1 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +buttons_process_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node6->Node2 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph_org.svg b/docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph_org.svg new file mode 100644 index 0000000..0df7145 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h_ab6bcec3856bdd4d742ab98f6431903e2_icgraph_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsps_biquad_gen_lowShelf_f32 + + +Node1 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +buttons_process_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node6->Node2 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph.md5 b/docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph.md5 new file mode 100644 index 0000000..232bc6d --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph.md5 @@ -0,0 +1 @@ +1d50c738a9c779e1037e19958d4caea9 \ No newline at end of file diff --git a/docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph.svg b/docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph.svg new file mode 100644 index 0000000..7435e0a --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_biquad_gen_highShelf_f32 + + +Node1 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +buttons_process_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node6->Node2 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph_org.svg b/docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph_org.svg new file mode 100644 index 0000000..4902d78 --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h_aff286789300a4805e9d133099144ef3e_icgraph_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsps_biquad_gen_highShelf_f32 + + +Node1 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +buttons_process_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node6->Node2 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/docs/html/dsps__biquad__gen_8h_source.html b/docs/html/dsps__biquad__gen_8h_source.html new file mode 100644 index 0000000..88e3f7b --- /dev/null +++ b/docs/html/dsps__biquad__gen_8h_source.html @@ -0,0 +1,177 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_gen.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_gen.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_biquad_gen_H_
+
16#define _dsps_biquad_gen_H_
+
17
+
18#include "dsp_err.h"
+
19
+
20#ifdef __cplusplus
+
21extern "C"
+
22{
+
23#endif
+
24
+
25// Common rules for all generated coefficients.
+
26// The coefficients placed to the array as follows:
+
27// coeffs[0] = b0;
+
28// coeffs[1] = b1;
+
29// coeffs[2] = b2;
+
30// coeffs[3] = a1;
+
31// coeffs[4] = a2;
+
32// a0 - are not placed and expected always as == 1
+
33
+
47esp_err_t dsps_biquad_gen_lpf_f32(float *coeffs, float f, float qFactor);
+
48
+
63esp_err_t dsps_biquad_gen_hpf_f32(float *coeffs, float f, float qFactor);
+
64
+
79esp_err_t dsps_biquad_gen_bpf_f32(float *coeffs, float f, float qFactor);
+
80
+
95esp_err_t dsps_biquad_gen_bpf0db_f32(float *coeffs, float f, float qFactor);
+
96
+
112esp_err_t dsps_biquad_gen_notch_f32(float *coeffs, float f, float gain, float qFactor);
+
113
+
128esp_err_t dsps_biquad_gen_allpass360_f32(float *coeffs, float f, float qFactor);
+
129
+
144esp_err_t dsps_biquad_gen_allpass180_f32(float *coeffs, float f, float qFactor);
+
145
+
160esp_err_t dsps_biquad_gen_peakingEQ_f32(float *coeffs, float f, float qFactor);
+
161
+
177esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor);
+
178
+
194esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor);
+
195
+
196#ifdef __cplusplus
+
197}
+
198#endif
+
199
+
200#endif // _dsps_biquad_gen_H_
+ +
esp_err_t dsps_biquad_gen_peakingEQ_f32(float *coeffs, float f, float qFactor)
peak IIR filter coefficients
+
esp_err_t dsps_biquad_gen_bpf0db_f32(float *coeffs, float f, float qFactor)
0 dB BPF IIR filter coefficients
+
esp_err_t dsps_biquad_gen_notch_f32(float *coeffs, float f, float gain, float qFactor)
Notch IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_hpf_f32(float *coeffs, float f, float qFactor)
HPF IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_allpass180_f32(float *coeffs, float f, float qFactor)
Allpass 180 degree IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor)
low shelf IIR filter coefficients
+
esp_err_t dsps_biquad_gen_bpf_f32(float *coeffs, float f, float qFactor)
BPF IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_lpf_f32(float *coeffs, float f, float qFactor)
LPF IIR filter coefficients Coefficients for low pass 2nd order IIR filter (bi-quad) The implementati...
+
esp_err_t dsps_biquad_gen_allpass360_f32(float *coeffs, float f, float qFactor)
Allpass 360 degree IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor)
high shelf IIR filter coefficients
+
int esp_err_t
Definition esp_err.h:21
+
float coeffs[256]
Definition test_fir.c:14
+
+
+
+ + + + diff --git a/docs/html/dsps__biquad__gen__f32_8c.html b/docs/html/dsps__biquad__gen__f32_8c.html new file mode 100644 index 0000000..5832357 --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c.html @@ -0,0 +1,896 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_gen_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_gen_f32.c File Reference
+
+
+
#include "dsps_biquad_gen.h"
+#include <math.h>
+#include "esp_log.h"
+
+Include dependency graph for dsps_biquad_gen_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_biquad_gen_lpf_f32 (float *coeffs, float f, float qFactor)
 LPF IIR filter coefficients Coefficients for low pass 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform.
esp_err_t dsps_biquad_gen_hpf_f32 (float *coeffs, float f, float qFactor)
 HPF IIR filter coefficients.
esp_err_t dsps_biquad_gen_bpf_f32 (float *coeffs, float f, float qFactor)
 BPF IIR filter coefficients.
esp_err_t dsps_biquad_gen_bpf0db_f32 (float *coeffs, float f, float qFactor)
 0 dB BPF IIR filter coefficients
esp_err_t dsps_biquad_gen_notch_f32 (float *coeffs, float f, float gain, float qFactor)
 Notch IIR filter coefficients.
esp_err_t dsps_biquad_gen_allpass360_f32 (float *coeffs, float f, float qFactor)
 Allpass 360 degree IIR filter coefficients.
esp_err_t dsps_biquad_gen_allpass180_f32 (float *coeffs, float f, float qFactor)
 Allpass 180 degree IIR filter coefficients.
esp_err_t dsps_biquad_gen_peakingEQ_f32 (float *coeffs, float f, float qFactor)
 peak IIR filter coefficients
esp_err_t dsps_biquad_gen_lowShelf_f32 (float *coeffs, float f, float gain, float qFactor)
 low shelf IIR filter coefficients
esp_err_t dsps_biquad_gen_highShelf_f32 (float *coeffs, float f, float gain, float qFactor)
 high shelf IIR filter coefficients
+

Function Documentation

+ +

◆ dsps_biquad_gen_allpass180_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_allpass180_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

Allpass 180 degree IIR filter coefficients.

+

Coefficients for all pass 2nd order IIR filter (bi-quad) with 180 degree phase shift The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 182 of file dsps_biquad_gen_f32.c.

+
183{
+
184 if (qFactor <= 0.0001) {
+
185 qFactor = 0.0001;
+
186 }
+
187 float Fs = 1;
+
188
+
189 float w0 = 2 * M_PI * f / Fs;
+
190 float c = cosf(w0);
+
191 float s = sinf(w0);
+
192 float alpha = s / (2 * qFactor);
+
193
+
194 float b0 = 1 - alpha;
+
195 float b1 = -2 * c;
+
196 float b2 = 1 + alpha;
+
197 float a0 = 1 + alpha;
+
198 float a1 = -2 * c;
+
199 float a2 = 1 - alpha;
+
200
+
201 coeffs[0] = b0 / a0;
+
202 coeffs[1] = b1 / a0;
+
203 coeffs[2] = b2 / a0;
+
204 coeffs[3] = a1 / a0;
+
205 coeffs[4] = a2 / a0;
+
206 return ESP_OK;
+
207}
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
float coeffs[256]
Definition test_fir.c:14
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_allpass360_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_allpass360_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

Allpass 360 degree IIR filter coefficients.

+

Coefficients for all pass 2nd order IIR filter (bi-quad) with 360 degree phase shift The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 155 of file dsps_biquad_gen_f32.c.

+
156{
+
157 if (qFactor <= 0.0001) {
+
158 qFactor = 0.0001;
+
159 }
+
160 float Fs = 1;
+
161
+
162 float w0 = 2 * M_PI * f / Fs;
+
163 float c = cosf(w0);
+
164 float s = sinf(w0);
+
165 float alpha = s / (2 * qFactor);
+
166
+
167 float b0 = 1 - alpha;
+
168 float b1 = -2 * c;
+
169 float b2 = 1 + alpha;
+
170 float a0 = 1 + alpha;
+
171 float a1 = -2 * c;
+
172 float a2 = 1 - alpha;
+
173
+
174 coeffs[0] = b0 / a0;
+
175 coeffs[1] = b1 / a0;
+
176 coeffs[2] = b2 / a0;
+
177 coeffs[3] = a1 / a0;
+
178 coeffs[4] = a2 / a0;
+
179 return ESP_OK;
+
180}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_bpf0db_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_bpf0db_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

0 dB BPF IIR filter coefficients

+

Coefficients for band pass 2nd order IIR filter (bi-quad) with 0 dB gain in passband The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter center frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 100 of file dsps_biquad_gen_f32.c.

+
101{
+
102 if (qFactor <= 0.0001) {
+
103 qFactor = 0.0001;
+
104 }
+
105 float Fs = 1;
+
106
+
107 float w0 = 2 * M_PI * f / Fs;
+
108 float c = cosf(w0);
+
109 float s = sinf(w0);
+
110 float alpha = s / (2 * qFactor);
+
111
+
112 float b0 = alpha;
+
113 float b1 = 0;
+
114 float b2 = -alpha;
+
115 float a0 = 1 + alpha;
+
116 float a1 = -2 * c;
+
117 float a2 = 1 - alpha;
+
118
+
119 coeffs[0] = b0 / a0;
+
120 coeffs[1] = b1 / a0;
+
121 coeffs[2] = b2 / a0;
+
122 coeffs[3] = a1 / a0;
+
123 coeffs[4] = a2 / a0;
+
124 return ESP_OK;
+
125}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_bpf_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_bpf_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

BPF IIR filter coefficients.

+

Coefficients for band pass 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter center frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 73 of file dsps_biquad_gen_f32.c.

+
74{
+
75 if (qFactor <= 0.0001) {
+
76 qFactor = 0.0001;
+
77 }
+
78 float Fs = 1;
+
79
+
80 float w0 = 2 * M_PI * f / Fs;
+
81 float c = cosf(w0);
+
82 float s = sinf(w0);
+
83 float alpha = s / (2 * qFactor);
+
84
+
85 float b0 = s / 2;
+
86 float b1 = 0;
+
87 float b2 = -b0;
+
88 float a0 = 1 + alpha;
+
89 float a1 = -2 * c;
+
90 float a2 = 1 - alpha;
+
91
+
92 coeffs[0] = b0 / a0;
+
93 coeffs[1] = b1 / a0;
+
94 coeffs[2] = b2 / a0;
+
95 coeffs[3] = a1 / a0;
+
96 coeffs[4] = a2 / a0;
+
97 return ESP_OK;
+
98}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_highShelf_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_highShelf_f32 (float * coeffs,
float f,
float gain,
float qFactor )
+
+ +

high shelf IIR filter coefficients

+

Coefficients for high pass Shelf 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
gaingain in stopband in dB
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 264 of file dsps_biquad_gen_f32.c.

+
265{
+
266 if (qFactor <= 0.0001) {
+
267 qFactor = 0.0001;
+
268 }
+
269 float Fs = 1;
+
270
+
271 float A = sqrtf(pow(10, (double)gain / 20.0));
+
272 float w0 = 2 * M_PI * f / Fs;
+
273 float c = cosf(w0);
+
274 float s = sinf(w0);
+
275 float alpha = s / (2 * qFactor);
+
276
+
277 float b0 = A * ((A + 1) + (A - 1) * c + 2 * sqrtf(A) * alpha);
+
278 float b1 = -2 * A * ((A - 1) + (A + 1) * c);
+
279 float b2 = A * ((A + 1) + (A - 1) * c - 2 * sqrtf(A) * alpha);
+
280 float a0 = (A + 1) - (A - 1) * c + 2 * sqrtf(A) * alpha;
+
281 float a1 = 2 * ((A - 1) - (A + 1) * c);
+
282 float a2 = (A + 1) - (A - 1) * c - 2 * sqrtf(A) * alpha;
+
283
+
284 coeffs[0] = b0 / a0;
+
285 coeffs[1] = b1 / a0;
+
286 coeffs[2] = b2 / a0;
+
287 coeffs[3] = a1 / a0;
+
288 coeffs[4] = a2 / a0;
+
289 return ESP_OK;
+
290}
+
float A[4][8]
Definition test_mmult.c:20
+
+

References A, coeffs, ESP_OK, and M_PI.

+ +

Referenced by audio_process_task(), audio_process_task(), audio_process_task(), buttons_process_task(), buttons_process_task(), and buttons_process_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_biquad_gen_hpf_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_hpf_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

HPF IIR filter coefficients.

+

Coefficients for high pass 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter cut off frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 46 of file dsps_biquad_gen_f32.c.

+
47{
+
48 if (qFactor <= 0.0001) {
+
49 qFactor = 0.0001;
+
50 }
+
51 float Fs = 1;
+
52
+
53 float w0 = 2 * M_PI * f / Fs;
+
54 float c = cosf(w0);
+
55 float s = sinf(w0);
+
56 float alpha = s / (2 * qFactor);
+
57
+
58 float b0 = (1 + c) / 2;
+
59 float b1 = -(1 + c);
+
60 float b2 = b0;
+
61 float a0 = 1 + alpha;
+
62 float a1 = -2 * c;
+
63 float a2 = 1 - alpha;
+
64
+
65 coeffs[0] = b0 / a0;
+
66 coeffs[1] = b1 / a0;
+
67 coeffs[2] = b2 / a0;
+
68 coeffs[3] = a1 / a0;
+
69 coeffs[4] = a2 / a0;
+
70 return ESP_OK;
+
71}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_lowShelf_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_lowShelf_f32 (float * coeffs,
float f,
float gain,
float qFactor )
+
+ +

low shelf IIR filter coefficients

+

Coefficients for low pass Shelf 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
gaingain in stopband in dB
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 236 of file dsps_biquad_gen_f32.c.

+
237{
+
238 if (qFactor <= 0.0001) {
+
239 qFactor = 0.0001;
+
240 }
+
241 float Fs = 1;
+
242
+
243 float A = sqrtf(pow(10, (double)gain / 20.0));
+
244 float w0 = 2 * M_PI * f / Fs;
+
245 float c = cosf(w0);
+
246 float s = sinf(w0);
+
247 float alpha = s / (2 * qFactor);
+
248
+
249 float b0 = A * ((A + 1) - (A - 1) * c + 2 * sqrtf(A) * alpha);
+
250 float b1 = 2 * A * ((A - 1) - (A + 1) * c);
+
251 float b2 = A * ((A + 1) - (A - 1) * c - 2 * sqrtf(A) * alpha);
+
252 float a0 = (A + 1) + (A - 1) * c + 2 * sqrtf(A) * alpha;
+
253 float a1 = -2 * ((A - 1) + (A + 1) * c);
+
254 float a2 = (A + 1) + (A - 1) * c - 2 * sqrtf(A) * alpha;
+
255
+
256 coeffs[0] = b0 / a0;
+
257 coeffs[1] = b1 / a0;
+
258 coeffs[2] = b2 / a0;
+
259 coeffs[3] = a1 / a0;
+
260 coeffs[4] = a2 / a0;
+
261 return ESP_OK;
+
262}
+
+

References A, coeffs, ESP_OK, and M_PI.

+ +

Referenced by audio_process_task(), audio_process_task(), audio_process_task(), buttons_process_task(), buttons_process_task(), and buttons_process_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_biquad_gen_lpf_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_lpf_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

LPF IIR filter coefficients Coefficients for low pass 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform.

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter cut off frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 19 of file dsps_biquad_gen_f32.c.

+
20{
+
21 if (qFactor <= 0.0001) {
+
22 qFactor = 0.0001;
+
23 }
+
24 float Fs = 1;
+
25
+
26 float w0 = 2 * M_PI * f / Fs;
+
27 float c = cosf(w0);
+
28 float s = sinf(w0);
+
29 float alpha = s / (2 * qFactor);
+
30
+
31 float b0 = (1 - c) / 2;
+
32 float b1 = 1 - c;
+
33 float b2 = b0;
+
34 float a0 = 1 + alpha;
+
35 float a1 = -2 * c;
+
36 float a2 = 1 - alpha;
+
37
+
38 coeffs[0] = b0 / a0;
+
39 coeffs[1] = b1 / a0;
+
40 coeffs[2] = b2 / a0;
+
41 coeffs[3] = a1 / a0;
+
42 coeffs[4] = a2 / a0;
+
43 return ESP_OK;
+
44}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_notch_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_notch_f32 (float * coeffs,
float f,
float gain,
float qFactor )
+
+ +

Notch IIR filter coefficients.

+

Coefficients for notch 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
gaingain in stopband in dB
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 127 of file dsps_biquad_gen_f32.c.

+
128{
+
129 if (qFactor <= 0.0001) {
+
130 qFactor = 0.0001;
+
131 }
+
132 float Fs = 1;
+
133
+
134 float A = sqrtf(pow(10, (double)gain / 20.0));
+
135 float w0 = 2 * M_PI * f / Fs;
+
136 float c = cosf(w0);
+
137 float s = sinf(w0);
+
138 float alpha = s / (2 * qFactor);
+
139
+
140 float b0 = 1 + alpha * A;
+
141 float b1 = -2 * c;
+
142 float b2 = 1 - alpha * A;
+
143 float a0 = 1 + alpha;
+
144 float a1 = -2 * c;
+
145 float a2 = 1 - alpha;
+
146
+
147 coeffs[0] = b0 / a0;
+
148 coeffs[1] = b1 / a0;
+
149 coeffs[2] = b2 / a0;
+
150 coeffs[3] = a1 / a0;
+
151 coeffs[4] = a2 / a0;
+
152 return ESP_OK;
+
153}
+
+

References A, coeffs, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_biquad_gen_peakingEQ_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_gen_peakingEQ_f32 (float * coeffs,
float f,
float qFactor )
+
+ +

peak IIR filter coefficients

+

Coefficients for peak 2nd order IIR filter (bi-quad) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
coeffsresult coefficients. b0,b1,b2,a1,a2, a0 are not placed to the array and expected by IIR as 1
ffilter notch frequency in range of 0..0.5 (normalized to sample frequency)
qFactorQ factor of filter
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 209 of file dsps_biquad_gen_f32.c.

+
210{
+
211 if (qFactor <= 0.0001) {
+
212 qFactor = 0.0001;
+
213 }
+
214 float Fs = 1;
+
215
+
216 float w0 = 2 * M_PI * f / Fs;
+
217 float c = cosf(w0);
+
218 float s = sinf(w0);
+
219 float alpha = s / (2 * qFactor);
+
220
+
221 float b0 = alpha;
+
222 float b1 = 0;
+
223 float b2 = -alpha;
+
224 float a0 = 1 + alpha;
+
225 float a1 = -2 * c;
+
226 float a2 = 1 - alpha;
+
227
+
228 coeffs[0] = b0 / a0;
+
229 coeffs[1] = b1 / a0;
+
230 coeffs[2] = b2 / a0;
+
231 coeffs[3] = a1 / a0;
+
232 coeffs[4] = a2 / a0;
+
233 return ESP_OK;
+
234}
+
+

References coeffs, ESP_OK, and M_PI.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__biquad__gen__f32_8c.js b/docs/html/dsps__biquad__gen__f32_8c.js new file mode 100644 index 0000000..f9e71ce --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c.js @@ -0,0 +1,13 @@ +var dsps__biquad__gen__f32_8c = +[ + [ "dsps_biquad_gen_allpass180_f32", "dsps__biquad__gen__f32_8c.html#aa4db784b585e2da6570697841f5bf873", null ], + [ "dsps_biquad_gen_allpass360_f32", "dsps__biquad__gen__f32_8c.html#af90971f70f1360814591f14f559bf4ca", null ], + [ "dsps_biquad_gen_bpf0db_f32", "dsps__biquad__gen__f32_8c.html#a600bdd4ce1a1ff2dfaefa276213e79b8", null ], + [ "dsps_biquad_gen_bpf_f32", "dsps__biquad__gen__f32_8c.html#ab6f87b0a37098be48fc4b5d6efe2b082", null ], + [ "dsps_biquad_gen_highShelf_f32", "dsps__biquad__gen__f32_8c.html#aff286789300a4805e9d133099144ef3e", null ], + [ "dsps_biquad_gen_hpf_f32", "dsps__biquad__gen__f32_8c.html#a7323c9a85fd108c3667602dc0330759d", null ], + [ "dsps_biquad_gen_lowShelf_f32", "dsps__biquad__gen__f32_8c.html#ab6bcec3856bdd4d742ab98f6431903e2", null ], + [ "dsps_biquad_gen_lpf_f32", "dsps__biquad__gen__f32_8c.html#abbd4ce3d27c7caf753d530cf2b76d138", null ], + [ "dsps_biquad_gen_notch_f32", "dsps__biquad__gen__f32_8c.html#a63db397a1032532eeade6860e5530fe9", null ], + [ "dsps_biquad_gen_peakingEQ_f32", "dsps__biquad__gen__f32_8c.html#a44e9bcb25eaffb835cb9bef29506039b", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__biquad__gen__f32_8c__incl.md5 b/docs/html/dsps__biquad__gen__f32_8c__incl.md5 new file mode 100644 index 0000000..33b543c --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c__incl.md5 @@ -0,0 +1 @@ +37701445575f5053be931d506b1b6349 \ No newline at end of file diff --git a/docs/html/dsps__biquad__gen__f32_8c__incl.svg b/docs/html/dsps__biquad__gen__f32_8c__incl.svg new file mode 100644 index 0000000..da13102 --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c__incl.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + +dsps_biquad_gen_f32.c + + +Node1 + + +dsps_biquad_gen_f32.c + + + + + +Node2 + + +dsps_biquad_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +math.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__gen__f32_8c__incl_org.svg b/docs/html/dsps__biquad__gen__f32_8c__incl_org.svg new file mode 100644 index 0000000..7da2f29 --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c__incl_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsps_biquad_gen_f32.c + + +Node1 + + +dsps_biquad_gen_f32.c + + + + + +Node2 + + +dsps_biquad_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +math.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9->Node6 + + + + + + + + diff --git a/docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.md5 b/docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.md5 new file mode 100644 index 0000000..cee2fe8 --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.md5 @@ -0,0 +1 @@ +bb763b5f58212548e756e73975be5f4e \ No newline at end of file diff --git a/docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.svg b/docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.svg new file mode 100644 index 0000000..131141d --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_biquad_gen_lowShelf_f32 + + +Node1 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +buttons_process_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node6->Node2 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph_org.svg b/docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph_org.svg new file mode 100644 index 0000000..0df7145 --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c_ab6bcec3856bdd4d742ab98f6431903e2_icgraph_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsps_biquad_gen_lowShelf_f32 + + +Node1 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +buttons_process_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node6->Node2 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph.md5 b/docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph.md5 new file mode 100644 index 0000000..232bc6d --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph.md5 @@ -0,0 +1 @@ +1d50c738a9c779e1037e19958d4caea9 \ No newline at end of file diff --git a/docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph.svg b/docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph.svg new file mode 100644 index 0000000..258c5db --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_biquad_gen_highShelf_f32 + + +Node1 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +buttons_process_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node6->Node2 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph_org.svg b/docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph_org.svg new file mode 100644 index 0000000..4902d78 --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c_aff286789300a4805e9d133099144ef3e_icgraph_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsps_biquad_gen_highShelf_f32 + + +Node1 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +audio_process_task + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +buttons_process_task + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node6->Node2 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/docs/html/dsps__biquad__gen__f32_8c_source.html b/docs/html/dsps__biquad__gen__f32_8c_source.html new file mode 100644 index 0000000..6b1d6a3 --- /dev/null +++ b/docs/html/dsps__biquad__gen__f32_8c_source.html @@ -0,0 +1,433 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_gen_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_gen_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_biquad_gen.h"
+
16#include <math.h>
+
17#include "esp_log.h"
+
18
+
+
19esp_err_t dsps_biquad_gen_lpf_f32(float *coeffs, float f, float qFactor)
+
20{
+
21 if (qFactor <= 0.0001) {
+
22 qFactor = 0.0001;
+
23 }
+
24 float Fs = 1;
+
25
+
26 float w0 = 2 * M_PI * f / Fs;
+
27 float c = cosf(w0);
+
28 float s = sinf(w0);
+
29 float alpha = s / (2 * qFactor);
+
30
+
31 float b0 = (1 - c) / 2;
+
32 float b1 = 1 - c;
+
33 float b2 = b0;
+
34 float a0 = 1 + alpha;
+
35 float a1 = -2 * c;
+
36 float a2 = 1 - alpha;
+
37
+
38 coeffs[0] = b0 / a0;
+
39 coeffs[1] = b1 / a0;
+
40 coeffs[2] = b2 / a0;
+
41 coeffs[3] = a1 / a0;
+
42 coeffs[4] = a2 / a0;
+
43 return ESP_OK;
+
44}
+
+
45
+
+
46esp_err_t dsps_biquad_gen_hpf_f32(float *coeffs, float f, float qFactor)
+
47{
+
48 if (qFactor <= 0.0001) {
+
49 qFactor = 0.0001;
+
50 }
+
51 float Fs = 1;
+
52
+
53 float w0 = 2 * M_PI * f / Fs;
+
54 float c = cosf(w0);
+
55 float s = sinf(w0);
+
56 float alpha = s / (2 * qFactor);
+
57
+
58 float b0 = (1 + c) / 2;
+
59 float b1 = -(1 + c);
+
60 float b2 = b0;
+
61 float a0 = 1 + alpha;
+
62 float a1 = -2 * c;
+
63 float a2 = 1 - alpha;
+
64
+
65 coeffs[0] = b0 / a0;
+
66 coeffs[1] = b1 / a0;
+
67 coeffs[2] = b2 / a0;
+
68 coeffs[3] = a1 / a0;
+
69 coeffs[4] = a2 / a0;
+
70 return ESP_OK;
+
71}
+
+
72
+
+
73esp_err_t dsps_biquad_gen_bpf_f32(float *coeffs, float f, float qFactor)
+
74{
+
75 if (qFactor <= 0.0001) {
+
76 qFactor = 0.0001;
+
77 }
+
78 float Fs = 1;
+
79
+
80 float w0 = 2 * M_PI * f / Fs;
+
81 float c = cosf(w0);
+
82 float s = sinf(w0);
+
83 float alpha = s / (2 * qFactor);
+
84
+
85 float b0 = s / 2;
+
86 float b1 = 0;
+
87 float b2 = -b0;
+
88 float a0 = 1 + alpha;
+
89 float a1 = -2 * c;
+
90 float a2 = 1 - alpha;
+
91
+
92 coeffs[0] = b0 / a0;
+
93 coeffs[1] = b1 / a0;
+
94 coeffs[2] = b2 / a0;
+
95 coeffs[3] = a1 / a0;
+
96 coeffs[4] = a2 / a0;
+
97 return ESP_OK;
+
98}
+
+
99
+
+
100esp_err_t dsps_biquad_gen_bpf0db_f32(float *coeffs, float f, float qFactor)
+
101{
+
102 if (qFactor <= 0.0001) {
+
103 qFactor = 0.0001;
+
104 }
+
105 float Fs = 1;
+
106
+
107 float w0 = 2 * M_PI * f / Fs;
+
108 float c = cosf(w0);
+
109 float s = sinf(w0);
+
110 float alpha = s / (2 * qFactor);
+
111
+
112 float b0 = alpha;
+
113 float b1 = 0;
+
114 float b2 = -alpha;
+
115 float a0 = 1 + alpha;
+
116 float a1 = -2 * c;
+
117 float a2 = 1 - alpha;
+
118
+
119 coeffs[0] = b0 / a0;
+
120 coeffs[1] = b1 / a0;
+
121 coeffs[2] = b2 / a0;
+
122 coeffs[3] = a1 / a0;
+
123 coeffs[4] = a2 / a0;
+
124 return ESP_OK;
+
125}
+
+
126
+
+
127esp_err_t dsps_biquad_gen_notch_f32(float *coeffs, float f, float gain, float qFactor)
+
128{
+
129 if (qFactor <= 0.0001) {
+
130 qFactor = 0.0001;
+
131 }
+
132 float Fs = 1;
+
133
+
134 float A = sqrtf(pow(10, (double)gain / 20.0));
+
135 float w0 = 2 * M_PI * f / Fs;
+
136 float c = cosf(w0);
+
137 float s = sinf(w0);
+
138 float alpha = s / (2 * qFactor);
+
139
+
140 float b0 = 1 + alpha * A;
+
141 float b1 = -2 * c;
+
142 float b2 = 1 - alpha * A;
+
143 float a0 = 1 + alpha;
+
144 float a1 = -2 * c;
+
145 float a2 = 1 - alpha;
+
146
+
147 coeffs[0] = b0 / a0;
+
148 coeffs[1] = b1 / a0;
+
149 coeffs[2] = b2 / a0;
+
150 coeffs[3] = a1 / a0;
+
151 coeffs[4] = a2 / a0;
+
152 return ESP_OK;
+
153}
+
+
154
+
+
155esp_err_t dsps_biquad_gen_allpass360_f32(float *coeffs, float f, float qFactor)
+
156{
+
157 if (qFactor <= 0.0001) {
+
158 qFactor = 0.0001;
+
159 }
+
160 float Fs = 1;
+
161
+
162 float w0 = 2 * M_PI * f / Fs;
+
163 float c = cosf(w0);
+
164 float s = sinf(w0);
+
165 float alpha = s / (2 * qFactor);
+
166
+
167 float b0 = 1 - alpha;
+
168 float b1 = -2 * c;
+
169 float b2 = 1 + alpha;
+
170 float a0 = 1 + alpha;
+
171 float a1 = -2 * c;
+
172 float a2 = 1 - alpha;
+
173
+
174 coeffs[0] = b0 / a0;
+
175 coeffs[1] = b1 / a0;
+
176 coeffs[2] = b2 / a0;
+
177 coeffs[3] = a1 / a0;
+
178 coeffs[4] = a2 / a0;
+
179 return ESP_OK;
+
180}
+
+
181
+
+
182esp_err_t dsps_biquad_gen_allpass180_f32(float *coeffs, float f, float qFactor)
+
183{
+
184 if (qFactor <= 0.0001) {
+
185 qFactor = 0.0001;
+
186 }
+
187 float Fs = 1;
+
188
+
189 float w0 = 2 * M_PI * f / Fs;
+
190 float c = cosf(w0);
+
191 float s = sinf(w0);
+
192 float alpha = s / (2 * qFactor);
+
193
+
194 float b0 = 1 - alpha;
+
195 float b1 = -2 * c;
+
196 float b2 = 1 + alpha;
+
197 float a0 = 1 + alpha;
+
198 float a1 = -2 * c;
+
199 float a2 = 1 - alpha;
+
200
+
201 coeffs[0] = b0 / a0;
+
202 coeffs[1] = b1 / a0;
+
203 coeffs[2] = b2 / a0;
+
204 coeffs[3] = a1 / a0;
+
205 coeffs[4] = a2 / a0;
+
206 return ESP_OK;
+
207}
+
+
208
+
+
209esp_err_t dsps_biquad_gen_peakingEQ_f32(float *coeffs, float f, float qFactor)
+
210{
+
211 if (qFactor <= 0.0001) {
+
212 qFactor = 0.0001;
+
213 }
+
214 float Fs = 1;
+
215
+
216 float w0 = 2 * M_PI * f / Fs;
+
217 float c = cosf(w0);
+
218 float s = sinf(w0);
+
219 float alpha = s / (2 * qFactor);
+
220
+
221 float b0 = alpha;
+
222 float b1 = 0;
+
223 float b2 = -alpha;
+
224 float a0 = 1 + alpha;
+
225 float a1 = -2 * c;
+
226 float a2 = 1 - alpha;
+
227
+
228 coeffs[0] = b0 / a0;
+
229 coeffs[1] = b1 / a0;
+
230 coeffs[2] = b2 / a0;
+
231 coeffs[3] = a1 / a0;
+
232 coeffs[4] = a2 / a0;
+
233 return ESP_OK;
+
234}
+
+
235
+
+
236esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor)
+
237{
+
238 if (qFactor <= 0.0001) {
+
239 qFactor = 0.0001;
+
240 }
+
241 float Fs = 1;
+
242
+
243 float A = sqrtf(pow(10, (double)gain / 20.0));
+
244 float w0 = 2 * M_PI * f / Fs;
+
245 float c = cosf(w0);
+
246 float s = sinf(w0);
+
247 float alpha = s / (2 * qFactor);
+
248
+
249 float b0 = A * ((A + 1) - (A - 1) * c + 2 * sqrtf(A) * alpha);
+
250 float b1 = 2 * A * ((A - 1) - (A + 1) * c);
+
251 float b2 = A * ((A + 1) - (A - 1) * c - 2 * sqrtf(A) * alpha);
+
252 float a0 = (A + 1) + (A - 1) * c + 2 * sqrtf(A) * alpha;
+
253 float a1 = -2 * ((A - 1) + (A + 1) * c);
+
254 float a2 = (A + 1) + (A - 1) * c - 2 * sqrtf(A) * alpha;
+
255
+
256 coeffs[0] = b0 / a0;
+
257 coeffs[1] = b1 / a0;
+
258 coeffs[2] = b2 / a0;
+
259 coeffs[3] = a1 / a0;
+
260 coeffs[4] = a2 / a0;
+
261 return ESP_OK;
+
262}
+
+
263
+
+
264esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor)
+
265{
+
266 if (qFactor <= 0.0001) {
+
267 qFactor = 0.0001;
+
268 }
+
269 float Fs = 1;
+
270
+
271 float A = sqrtf(pow(10, (double)gain / 20.0));
+
272 float w0 = 2 * M_PI * f / Fs;
+
273 float c = cosf(w0);
+
274 float s = sinf(w0);
+
275 float alpha = s / (2 * qFactor);
+
276
+
277 float b0 = A * ((A + 1) + (A - 1) * c + 2 * sqrtf(A) * alpha);
+
278 float b1 = -2 * A * ((A - 1) + (A + 1) * c);
+
279 float b2 = A * ((A + 1) + (A - 1) * c - 2 * sqrtf(A) * alpha);
+
280 float a0 = (A + 1) - (A - 1) * c + 2 * sqrtf(A) * alpha;
+
281 float a1 = 2 * ((A - 1) - (A + 1) * c);
+
282 float a2 = (A + 1) - (A - 1) * c - 2 * sqrtf(A) * alpha;
+
283
+
284 coeffs[0] = b0 / a0;
+
285 coeffs[1] = b1 / a0;
+
286 coeffs[2] = b2 / a0;
+
287 coeffs[3] = a1 / a0;
+
288 coeffs[4] = a2 / a0;
+
289 return ESP_OK;
+
290}
+
+ +
esp_err_t dsps_biquad_gen_peakingEQ_f32(float *coeffs, float f, float qFactor)
peak IIR filter coefficients
+
esp_err_t dsps_biquad_gen_bpf0db_f32(float *coeffs, float f, float qFactor)
0 dB BPF IIR filter coefficients
+
esp_err_t dsps_biquad_gen_notch_f32(float *coeffs, float f, float gain, float qFactor)
Notch IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_hpf_f32(float *coeffs, float f, float qFactor)
HPF IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_allpass180_f32(float *coeffs, float f, float qFactor)
Allpass 180 degree IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor)
low shelf IIR filter coefficients
+
esp_err_t dsps_biquad_gen_bpf_f32(float *coeffs, float f, float qFactor)
BPF IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_lpf_f32(float *coeffs, float f, float qFactor)
LPF IIR filter coefficients Coefficients for low pass 2nd order IIR filter (bi-quad) The implementati...
+
esp_err_t dsps_biquad_gen_allpass360_f32(float *coeffs, float f, float qFactor)
Allpass 360 degree IIR filter coefficients.
+
esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor)
high shelf IIR filter coefficients
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+ +
float coeffs[256]
Definition test_fir.c:14
+
float A[4][8]
Definition test_mmult.c:20
+
+
+
+ + + + diff --git a/docs/html/dsps__biquad__platform_8h.html b/docs/html/dsps__biquad__platform_8h.html new file mode 100644 index 0000000..31c1599 --- /dev/null +++ b/docs/html/dsps__biquad__platform_8h.html @@ -0,0 +1,148 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_biquad_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define dsps_biquad_f32_arp4_enabled   0
+

Macro Definition Documentation

+ +

◆ dsps_biquad_f32_arp4_enabled

+ +
+
+ + + + +
#define dsps_biquad_f32_arp4_enabled   0
+
+ +

Definition at line 31 of file dsps_biquad_platform.h.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__biquad__platform_8h.js b/docs/html/dsps__biquad__platform_8h.js new file mode 100644 index 0000000..baece3d --- /dev/null +++ b/docs/html/dsps__biquad__platform_8h.js @@ -0,0 +1,4 @@ +var dsps__biquad__platform_8h = +[ + [ "dsps_biquad_f32_arp4_enabled", "dsps__biquad__platform_8h.html#abf7b502fb6d86fff6781f13718e367da", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__biquad__platform_8h__dep__incl.md5 b/docs/html/dsps__biquad__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..7e47107 --- /dev/null +++ b/docs/html/dsps__biquad__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +78038e2e967611c13d2b4481507aa8b6 \ No newline at end of file diff --git a/docs/html/dsps__biquad__platform_8h__dep__incl.svg b/docs/html/dsps__biquad__platform_8h__dep__incl.svg new file mode 100644 index 0000000..54da05f --- /dev/null +++ b/docs/html/dsps__biquad__platform_8h__dep__incl.svg @@ -0,0 +1,626 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_biquad_platform.h + + +Node1 + + +dsps_biquad_platform.h + + + + + +Node2 + + +dsps_biquad.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_biquad_sf32_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node2->Node5 + + + + + + + + +Node39 + + +test_iir_biquad.c + + + + + +Node2->Node39 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node5->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node5->Node12 + + + + + + + + +Node13 + + +3d_kalman_demo.cpp + + + + + +Node5->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node5->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node5->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node5->Node16 + + + + + + + + +Node17 + + +dsp_tests.h + + + + + +Node5->Node17 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node5->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node5->Node26 + + + + + + + + +Node28 + + +graphics_support.h + + + + + +Node5->Node28 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node5->Node30 + + + + + + + + +Node31 + + +init_display.c + + + + + +Node5->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node5->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node5->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node5->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node5->Node38 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__platform_8h__dep__incl_org.svg b/docs/html/dsps__biquad__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..d4cf547 --- /dev/null +++ b/docs/html/dsps__biquad__platform_8h__dep__incl_org.svg @@ -0,0 +1,543 @@ + + + + + + +dsps_biquad_platform.h + + +Node1 + + +dsps_biquad_platform.h + + + + + +Node2 + + +dsps_biquad.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_biquad_sf32_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node2->Node5 + + + + + + + + +Node39 + + +test_iir_biquad.c + + + + + +Node2->Node39 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node5->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node5->Node12 + + + + + + + + +Node13 + + +3d_kalman_demo.cpp + + + + + +Node5->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node5->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node5->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node5->Node16 + + + + + + + + +Node17 + + +dsp_tests.h + + + + + +Node5->Node17 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node5->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node5->Node26 + + + + + + + + +Node28 + + +graphics_support.h + + + + + +Node5->Node28 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node5->Node30 + + + + + + + + +Node31 + + +init_display.c + + + + + +Node5->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node5->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node5->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node5->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node5->Node38 + + + + + + + + diff --git a/docs/html/dsps__biquad__platform_8h__incl.md5 b/docs/html/dsps__biquad__platform_8h__incl.md5 new file mode 100644 index 0000000..0ed528c --- /dev/null +++ b/docs/html/dsps__biquad__platform_8h__incl.md5 @@ -0,0 +1 @@ +f56b1d3bee67374d433c861d8577b496 \ No newline at end of file diff --git a/docs/html/dsps__biquad__platform_8h__incl.svg b/docs/html/dsps__biquad__platform_8h__incl.svg new file mode 100644 index 0000000..dec049a --- /dev/null +++ b/docs/html/dsps__biquad__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_biquad_platform.h + + +Node1 + + +dsps_biquad_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__platform_8h__incl_org.svg b/docs/html/dsps__biquad__platform_8h__incl_org.svg new file mode 100644 index 0000000..b4aa27a --- /dev/null +++ b/docs/html/dsps__biquad__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_biquad_platform.h + + +Node1 + + +dsps_biquad_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__biquad__platform_8h_source.html b/docs/html/dsps__biquad__platform_8h_source.html new file mode 100644 index 0000000..8e3f48a --- /dev/null +++ b/docs/html/dsps__biquad__platform_8h_source.html @@ -0,0 +1,140 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_biquad_platform_H_
+
2#define _dsps_biquad_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
11
+
12#define dsps_biquad_f32_ae32_enabled 1
+
13
+
14#endif
+
15
+
16#if CONFIG_IDF_TARGET_ESP32S3
+
17#define dsps_biquad_f32_aes3_enabled 1
+
18#else
+
19#define dsps_biquad_f32_aes3_enabled 0
+
20#endif
+
21
+
22#endif // __XTENSA__
+
23
+
24#ifdef CONFIG_IDF_TARGET_ESP32P4
+
25#ifdef CONFIG_DSP_OPTIMIZED
+
26#define dsps_biquad_f32_arp4_enabled 1
+
27#else
+
28#define dsps_biquad_f32_arp4_enabled 0
+
29#endif // CONFIG_DSP_OPTIMIZED
+
30#else
+
31#define dsps_biquad_f32_arp4_enabled 0
+
32#endif
+
33
+
34#endif // _dsps_biquad_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__biquad__sf32__ansi_8c.html b/docs/html/dsps__biquad__sf32__ansi_8c.html new file mode 100644 index 0000000..d0cb74f --- /dev/null +++ b/docs/html/dsps__biquad__sf32__ansi_8c.html @@ -0,0 +1,201 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_sf32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_sf32_ansi.c File Reference
+
+
+
#include "dsps_biquad.h"
+
+Include dependency graph for dsps_biquad_sf32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_biquad_sf32_ansi (const float *input, float *output, int len, float *coef, float *w)
 IIR filter for stereo data.
+

Function Documentation

+ +

◆ dsps_biquad_sf32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_biquad_sf32_ansi (const float * input,
float * output,
int len,
float * coef,
float * w )
+
+ +

IIR filter for stereo data.

+

IIR filter 2nd order direct form II (bi quad) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + +
[in]inputinput array of two channels: L/R/L/R/L/R
outputoutput array of two channels: L/R/L/R/L/R
lennumber of samples in one channel
coefarray of coefficients. b0,b1,b2,a1,a2 expected that a0 = 1. b0..b2 - numerator, a0..a2 - denominator
wdelay line w0,w1,w2,w3. Length of 4. w0,w1 - channel0, w2,w3 - channel1
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 19 of file dsps_biquad_sf32_ansi.c.

+
20{
+
21 for (int i = 0 ; i < len ; i++) {
+
22 float d0 = input[i * 2 + 0] - coef[3] * w[0] - coef[4] * w[1];
+
23 output[i * 2 + 0] = coef[0] * d0 + coef[1] * w[0] + coef[2] * w[1];
+
24 w[1] = w[0];
+
25 w[0] = d0;
+
26
+
27 d0 = input[i * 2 + 1] - coef[3] * w[2] - coef[4] * w[3];
+
28 output[i * 2 + 1] = coef[0] * d0 + coef[1] * w[2] + coef[2] * w[3];
+
29 w[3] = w[2];
+
30 w[2] = d0;
+
31 }
+
32 return ESP_OK;
+
33}
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__biquad__sf32__ansi_8c.js b/docs/html/dsps__biquad__sf32__ansi_8c.js new file mode 100644 index 0000000..07205cc --- /dev/null +++ b/docs/html/dsps__biquad__sf32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__biquad__sf32__ansi_8c = +[ + [ "dsps_biquad_sf32_ansi", "dsps__biquad__sf32__ansi_8c.html#a3dd7c415d3ec325c06da5857bec84b61", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__biquad__sf32__ansi_8c__incl.md5 b/docs/html/dsps__biquad__sf32__ansi_8c__incl.md5 new file mode 100644 index 0000000..1136927 --- /dev/null +++ b/docs/html/dsps__biquad__sf32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +ca57ac6abbf48fb759a2ab6cf13775c7 \ No newline at end of file diff --git a/docs/html/dsps__biquad__sf32__ansi_8c__incl.svg b/docs/html/dsps__biquad__sf32__ansi_8c__incl.svg new file mode 100644 index 0000000..37dfe75 --- /dev/null +++ b/docs/html/dsps__biquad__sf32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_biquad_sf32_ansi.c + + +Node1 + + +dsps_biquad_sf32_ansi.c + + + + + +Node2 + + +dsps_biquad.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_biquad_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__biquad__sf32__ansi_8c__incl_org.svg b/docs/html/dsps__biquad__sf32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..cc52864 --- /dev/null +++ b/docs/html/dsps__biquad__sf32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_biquad_sf32_ansi.c + + +Node1 + + +dsps_biquad_sf32_ansi.c + + + + + +Node2 + + +dsps_biquad.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_biquad_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__biquad__sf32__ansi_8c_source.html b/docs/html/dsps__biquad__sf32__ansi_8c_source.html new file mode 100644 index 0000000..cfdc675 --- /dev/null +++ b/docs/html/dsps__biquad__sf32__ansi_8c_source.html @@ -0,0 +1,145 @@ + + + + + + + +ESP-IDF Firmware: dsps_biquad_sf32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_biquad_sf32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#include "dsps_biquad.h"
+
17
+
18
+
+
19esp_err_t dsps_biquad_sf32_ansi(const float *input, float *output, int len, float *coef, float *w)
+
20{
+
21 for (int i = 0 ; i < len ; i++) {
+
22 float d0 = input[i * 2 + 0] - coef[3] * w[0] - coef[4] * w[1];
+
23 output[i * 2 + 0] = coef[0] * d0 + coef[1] * w[0] + coef[2] * w[1];
+
24 w[1] = w[0];
+
25 w[0] = d0;
+
26
+
27 d0 = input[i * 2 + 1] - coef[3] * w[2] - coef[4] * w[3];
+
28 output[i * 2 + 1] = coef[0] * d0 + coef[1] * w[2] + coef[2] * w[3];
+
29 w[3] = w[2];
+
30 w[2] = d0;
+
31 }
+
32 return ESP_OK;
+
33}
+
+ +
esp_err_t dsps_biquad_sf32_ansi(const float *input, float *output, int len, float *coef, float *w)
IIR filter for stereo data.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__ccorr_8h.html b/docs/html/dsps__ccorr_8h.html new file mode 100644 index 0000000..d7d7f8a --- /dev/null +++ b/docs/html/dsps__ccorr_8h.html @@ -0,0 +1,307 @@ + + + + + + + +ESP-IDF Firmware: dsps_ccorr.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_ccorr.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_conv_platform.h"
+
+Include dependency graph for dsps_ccorr.h:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +
#define dsps_ccorr_f32   dsps_ccorr_f32_ansi
esp_err_t dsps_ccorr_f32_ansi (const float *Signal, const int siglen, const float *Pattern, const int patlen, float *corrout)
 Cross correlation.
esp_err_t dsps_ccorr_f32_ae32 (const float *Signal, const int siglen, const float *Pattern, const int patlen, float *corrout)
+

Macro Definition Documentation

+ +

◆ dsps_ccorr_f32

+ +
+
+ + + + +
#define dsps_ccorr_f32   dsps_ccorr_f32_ansi
+
+

}@

+ +

Definition at line 60 of file dsps_ccorr.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_ccorr_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_ccorr_f32_ae32 (const float * Signal,
const int siglen,
const float * Pattern,
const int patlen,
float * corrout )
+
+ +
+
+ +

◆ dsps_ccorr_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_ccorr_f32_ansi (const float * Signal,
const int siglen,
const float * Pattern,
const int patlen,
float * corrout )
+
+ +

Cross correlation.

+

The function make cross correlate between two ignals. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + +
[in]Signal1input array with input 1 signal values
[in]siglen1length of the input 1 signal array
[in]Signal2input array with input 2 signal values
[in]siglen2length of the input signal array
corroutoutput array with result of cross correlation. The size of dest array must be (siglen1 + siglen2 - 1) !!!
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library (one of the input array are NULL, or if (siglen < patlen))
  • +
+
+ +

Definition at line 20 of file dsps_ccorr_f32_ansi.c.

+
21{
+
22 if (NULL == Signal) {
+ +
24 }
+
25 if (NULL == Kernel) {
+ +
27 }
+
28 if (NULL == corrvout) {
+ +
30 }
+
31
+
32 float *sig = (float *)Signal;
+
33 float *kern = (float *)Kernel;
+
34 int lsig = siglen;
+
35 int lkern = kernlen;
+
36
+
37 if (siglen < kernlen) {
+
38 sig = (float *)Kernel;
+
39 kern = (float *)Signal;
+
40 lsig = kernlen;
+
41 lkern = siglen;
+
42 }
+
43
+
44 for (int n = 0; n < lkern; n++) {
+
45 int k;
+
46 int kmin = lkern - 1 - n;
+
47 corrvout[n] = 0;
+
48
+
49 for (k = 0; k <= n; k++) {
+
50 corrvout[n] += sig[k] * kern[kmin + k];
+
51 }
+
52 ESP_LOGV(TAG, "L1 k = %i, n = %i , kmin= %i, kmax= %i", 0, n, kmin, kmin + n);
+
53 }
+
54 for (int n = lkern; n < lsig; n++) {
+
55 int kmin, kmax, k;
+
56
+
57 corrvout[n] = 0;
+
58
+
59 kmin = n - lkern + 1;
+
60 kmax = n;
+
61 for (k = kmin; k <= kmax; k++) {
+
62 corrvout[n] += sig[k] * kern[k - kmin];
+
63 }
+
64 ESP_LOGV(TAG, "L2 n=%i, kmin = %i, kmax = %i , k-kmin = %i", n, kmin, kmax, 0);
+
65 }
+
66
+
67 for (int n = lsig; n < lsig + lkern - 1; n++) {
+
68 int kmin, kmax, k;
+
69
+
70 corrvout[n] = 0;
+
71
+
72 kmin = n - lkern + 1;
+
73 kmax = lsig - 1;
+
74
+
75 for (k = kmin; k <= kmax; k++) {
+
76 corrvout[n] += sig[k] * kern[k - kmin];
+
77 }
+
78 ESP_LOGV(TAG, "L3 n=%i, kmin = %i, kmax = %i , k - kmin = %i", n, kmin, kmax, kmax - kmin);
+
79 }
+
80 return ESP_OK;
+
81}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
static const char * TAG
Definition main/main.c:31
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, k, n, and TAG.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__ccorr_8h.js b/docs/html/dsps__ccorr_8h.js new file mode 100644 index 0000000..21536ac --- /dev/null +++ b/docs/html/dsps__ccorr_8h.js @@ -0,0 +1,6 @@ +var dsps__ccorr_8h = +[ + [ "dsps_ccorr_f32", "dsps__ccorr_8h.html#afad3fe720c315547bd511593fd4a0f97", null ], + [ "dsps_ccorr_f32_ae32", "dsps__ccorr_8h.html#aeae31359d81d462cfe99a4b36a32fb48", null ], + [ "dsps_ccorr_f32_ansi", "dsps__ccorr_8h.html#ae97debaecf9975bc832a9a6524537076", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__ccorr_8h__incl.md5 b/docs/html/dsps__ccorr_8h__incl.md5 new file mode 100644 index 0000000..c9613c7 --- /dev/null +++ b/docs/html/dsps__ccorr_8h__incl.md5 @@ -0,0 +1 @@ +f68ec41050f25699276b4bcf190b1ac5 \ No newline at end of file diff --git a/docs/html/dsps__ccorr_8h__incl.svg b/docs/html/dsps__ccorr_8h__incl.svg new file mode 100644 index 0000000..2f7b4bd --- /dev/null +++ b/docs/html/dsps__ccorr_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_ccorr.h + + +Node1 + + +dsps_ccorr.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_conv_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__ccorr_8h__incl_org.svg b/docs/html/dsps__ccorr_8h__incl_org.svg new file mode 100644 index 0000000..630da69 --- /dev/null +++ b/docs/html/dsps__ccorr_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_ccorr.h + + +Node1 + + +dsps_ccorr.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_conv_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__ccorr_8h_source.html b/docs/html/dsps__ccorr_8h_source.html new file mode 100644 index 0000000..62ba070 --- /dev/null +++ b/docs/html/dsps__ccorr_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + +ESP-IDF Firmware: dsps_ccorr.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_ccorr.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_ccorr_H_
+
16#define _dsps_ccorr_H_
+
17#include "dsp_err.h"
+
18
+
19#include "dsps_conv_platform.h"
+
20
+
21#ifdef __cplusplus
+
22extern "C"
+
23{
+
24#endif
+
25
+
26
+
44esp_err_t dsps_ccorr_f32_ansi(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *corrout);
+
45esp_err_t dsps_ccorr_f32_ae32(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *corrout);
+
47
+
48#ifdef __cplusplus
+
49}
+
50#endif
+
51
+
52
+
53#ifdef CONFIG_DSP_OPTIMIZED
+
54#if (dsps_ccorr_f32_ae32_enabled == 1)
+
55#define dsps_ccorr_f32 dsps_ccorr_f32_ae32
+
56#else
+
57#define dsps_ccorr_f32 dsps_ccorr_f32_ansi
+
58#endif // dsps_ccorr_f32_ae32_enabled
+
59#else
+
60#define dsps_ccorr_f32 dsps_ccorr_f32_ansi
+
61#endif
+
62
+
63#endif // _dsps_conv_H_
+ +
esp_err_t dsps_ccorr_f32_ansi(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *corrout)
Cross correlation.
+
esp_err_t dsps_ccorr_f32_ae32(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *corrout)
+ +
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__ccorr__f32__ansi_8c.html b/docs/html/dsps__ccorr__f32__ansi_8c.html new file mode 100644 index 0000000..1e1b98d --- /dev/null +++ b/docs/html/dsps__ccorr__f32__ansi_8c.html @@ -0,0 +1,282 @@ + + + + + + + +ESP-IDF Firmware: dsps_ccorr_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_ccorr_f32_ansi.c File Reference
+
+
+
#include "dsps_conv.h"
+#include "esp_log.h"
+
+Include dependency graph for dsps_ccorr_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_ccorr_f32_ansi (const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *corrvout)
 Cross correlation.
+ + +

+Variables

static const char * TAG = "dsps_conv"
+

Function Documentation

+ +

◆ dsps_ccorr_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_ccorr_f32_ansi (const float * Signal,
const int siglen,
const float * Pattern,
const int patlen,
float * corrout )
+
+ +

Cross correlation.

+

The function make cross correlate between two ignals. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + +
[in]Signal1input array with input 1 signal values
[in]siglen1length of the input 1 signal array
[in]Signal2input array with input 2 signal values
[in]siglen2length of the input signal array
corroutoutput array with result of cross correlation. The size of dest array must be (siglen1 + siglen2 - 1) !!!
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library (one of the input array are NULL, or if (siglen < patlen))
  • +
+
+ +

Definition at line 20 of file dsps_ccorr_f32_ansi.c.

+
21{
+
22 if (NULL == Signal) {
+ +
24 }
+
25 if (NULL == Kernel) {
+ +
27 }
+
28 if (NULL == corrvout) {
+ +
30 }
+
31
+
32 float *sig = (float *)Signal;
+
33 float *kern = (float *)Kernel;
+
34 int lsig = siglen;
+
35 int lkern = kernlen;
+
36
+
37 if (siglen < kernlen) {
+
38 sig = (float *)Kernel;
+
39 kern = (float *)Signal;
+
40 lsig = kernlen;
+
41 lkern = siglen;
+
42 }
+
43
+
44 for (int n = 0; n < lkern; n++) {
+
45 int k;
+
46 int kmin = lkern - 1 - n;
+
47 corrvout[n] = 0;
+
48
+
49 for (k = 0; k <= n; k++) {
+
50 corrvout[n] += sig[k] * kern[kmin + k];
+
51 }
+
52 ESP_LOGV(TAG, "L1 k = %i, n = %i , kmin= %i, kmax= %i", 0, n, kmin, kmin + n);
+
53 }
+
54 for (int n = lkern; n < lsig; n++) {
+
55 int kmin, kmax, k;
+
56
+
57 corrvout[n] = 0;
+
58
+
59 kmin = n - lkern + 1;
+
60 kmax = n;
+
61 for (k = kmin; k <= kmax; k++) {
+
62 corrvout[n] += sig[k] * kern[k - kmin];
+
63 }
+
64 ESP_LOGV(TAG, "L2 n=%i, kmin = %i, kmax = %i , k-kmin = %i", n, kmin, kmax, 0);
+
65 }
+
66
+
67 for (int n = lsig; n < lsig + lkern - 1; n++) {
+
68 int kmin, kmax, k;
+
69
+
70 corrvout[n] = 0;
+
71
+
72 kmin = n - lkern + 1;
+
73 kmax = lsig - 1;
+
74
+
75 for (k = kmin; k <= kmax; k++) {
+
76 corrvout[n] += sig[k] * kern[k - kmin];
+
77 }
+
78 ESP_LOGV(TAG, "L3 n=%i, kmin = %i, kmax = %i , k - kmin = %i", n, kmin, kmax, kmax - kmin);
+
79 }
+
80 return ESP_OK;
+
81}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
static const char * TAG
Definition main/main.c:31
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, k, n, and TAG.

+ +
+
+

Variable Documentation

+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "dsps_conv"
+
+static
+
+ +

Definition at line 18 of file dsps_ccorr_f32_ansi.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__ccorr__f32__ansi_8c.js b/docs/html/dsps__ccorr__f32__ansi_8c.js new file mode 100644 index 0000000..f2615e9 --- /dev/null +++ b/docs/html/dsps__ccorr__f32__ansi_8c.js @@ -0,0 +1,5 @@ +var dsps__ccorr__f32__ansi_8c = +[ + [ "dsps_ccorr_f32_ansi", "dsps__ccorr__f32__ansi_8c.html#a649af4a79267928d1b534545f12ab7f5", null ], + [ "TAG", "dsps__ccorr__f32__ansi_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__ccorr__f32__ansi_8c__incl.md5 b/docs/html/dsps__ccorr__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..ffcbb23 --- /dev/null +++ b/docs/html/dsps__ccorr__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +894e962f4db6d3836729198bd58921a3 \ No newline at end of file diff --git a/docs/html/dsps__ccorr__f32__ansi_8c__incl.svg b/docs/html/dsps__ccorr__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..20252cd --- /dev/null +++ b/docs/html/dsps__ccorr__f32__ansi_8c__incl.svg @@ -0,0 +1,218 @@ + + + + + + + + + + + + +dsps_ccorr_f32_ansi.c + + +Node1 + + +dsps_ccorr_f32_ansi.c + + + + + +Node2 + + +dsps_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +esp_log.h + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_conv_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__ccorr__f32__ansi_8c__incl_org.svg b/docs/html/dsps__ccorr__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..77c3bde --- /dev/null +++ b/docs/html/dsps__ccorr__f32__ansi_8c__incl_org.svg @@ -0,0 +1,192 @@ + + + + + + +dsps_ccorr_f32_ansi.c + + +Node1 + + +dsps_ccorr_f32_ansi.c + + + + + +Node2 + + +dsps_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +esp_log.h + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_conv_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node6 + + + + + + + + diff --git a/docs/html/dsps__ccorr__f32__ansi_8c_source.html b/docs/html/dsps__ccorr__f32__ansi_8c_source.html new file mode 100644 index 0000000..bdc4a4f --- /dev/null +++ b/docs/html/dsps__ccorr__f32__ansi_8c_source.html @@ -0,0 +1,198 @@ + + + + + + + +ESP-IDF Firmware: dsps_ccorr_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_ccorr_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_conv.h"
+
16#include "esp_log.h"
+
17
+
18static const char *TAG = "dsps_conv";
+
19
+
+
20esp_err_t dsps_ccorr_f32_ansi(const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *corrvout)
+
21{
+
22 if (NULL == Signal) {
+ +
24 }
+
25 if (NULL == Kernel) {
+ +
27 }
+
28 if (NULL == corrvout) {
+ +
30 }
+
31
+
32 float *sig = (float *)Signal;
+
33 float *kern = (float *)Kernel;
+
34 int lsig = siglen;
+
35 int lkern = kernlen;
+
36
+
37 if (siglen < kernlen) {
+
38 sig = (float *)Kernel;
+
39 kern = (float *)Signal;
+
40 lsig = kernlen;
+
41 lkern = siglen;
+
42 }
+
43
+
44 for (int n = 0; n < lkern; n++) {
+
45 int k;
+
46 int kmin = lkern - 1 - n;
+
47 corrvout[n] = 0;
+
48
+
49 for (k = 0; k <= n; k++) {
+
50 corrvout[n] += sig[k] * kern[kmin + k];
+
51 }
+
52 ESP_LOGV(TAG, "L1 k = %i, n = %i , kmin= %i, kmax= %i", 0, n, kmin, kmin + n);
+
53 }
+
54 for (int n = lkern; n < lsig; n++) {
+
55 int kmin, kmax, k;
+
56
+
57 corrvout[n] = 0;
+
58
+
59 kmin = n - lkern + 1;
+
60 kmax = n;
+
61 for (k = kmin; k <= kmax; k++) {
+
62 corrvout[n] += sig[k] * kern[k - kmin];
+
63 }
+
64 ESP_LOGV(TAG, "L2 n=%i, kmin = %i, kmax = %i , k-kmin = %i", n, kmin, kmax, 0);
+
65 }
+
66
+
67 for (int n = lsig; n < lsig + lkern - 1; n++) {
+
68 int kmin, kmax, k;
+
69
+
70 corrvout[n] = 0;
+
71
+
72 kmin = n - lkern + 1;
+
73 kmax = lsig - 1;
+
74
+
75 for (k = kmin; k <= kmax; k++) {
+
76 corrvout[n] += sig[k] * kern[k - kmin];
+
77 }
+
78 ESP_LOGV(TAG, "L3 n=%i, kmin = %i, kmax = %i , k - kmin = %i", n, kmin, kmax, kmax - kmin);
+
79 }
+
80 return ESP_OK;
+
81}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
esp_err_t dsps_ccorr_f32_ansi(const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *corrvout)
Cross correlation.
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
static const char * TAG
Definition main/main.c:31
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/dsps__conv_8h.html b/docs/html/dsps__conv_8h.html new file mode 100644 index 0000000..0ae1a4a --- /dev/null +++ b/docs/html/dsps__conv_8h.html @@ -0,0 +1,317 @@ + + + + + + + +ESP-IDF Firmware: dsps_conv.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_conv.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_conv_platform.h"
+
+Include dependency graph for dsps_conv.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define dsps_conv_f32   dsps_conv_f32_ansi
+ + + + + +

+Functions

esp_err_t dsps_conv_f32_ae32 (const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *convout)
 Convolution.
esp_err_t dsps_conv_f32_ansi (const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *convout)
+

Macro Definition Documentation

+ +

◆ dsps_conv_f32

+ +
+
+ + + + +
#define dsps_conv_f32   dsps_conv_f32_ansi
+
+ +

Definition at line 62 of file dsps_conv.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_conv_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_conv_f32_ae32 (const float * Signal,
const int siglen,
const float * Kernel,
const int kernlen,
float * convout )
+
+ +

Convolution.

+

The function convolve Signal array with Kernel array. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + +
[in]Signalinput array with signal
[in]siglenlength of the input signal
[in]Kernelinput array with convolution kernel
[in]kernlenlength of the Kernel array
convoutoutput array with convolution result length of (siglen + Kernel -1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +
+
+ +

◆ dsps_conv_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_conv_f32_ansi (const float * Signal,
const int siglen,
const float * Kernel,
const int kernlen,
float * convout )
+
+ +

Definition at line 20 of file dsps_conv_f32_ansi.c.

+
21{
+
22 if (NULL == Signal) {
+ +
24 }
+
25 if (NULL == Kernel) {
+ +
27 }
+
28 if (NULL == convout) {
+ +
30 }
+
31
+
32 float *sig = (float *)Signal;
+
33 float *kern = (float *)Kernel;
+
34 int lsig = siglen;
+
35 int lkern = kernlen;
+
36
+
37 if (siglen < kernlen) {
+
38 sig = (float *)Kernel;
+
39 kern = (float *)Signal;
+
40 lsig = kernlen;
+
41 lkern = siglen;
+
42 }
+
43
+
44 for (int n = 0; n < lkern; n++) {
+
45 size_t k;
+
46
+
47 convout[n] = 0;
+
48
+
49 for (k = 0; k <= n; k++) {
+
50 convout[n] += sig[k] * kern[n - k];
+
51 }
+
52 ESP_LOGV(TAG, "L1 kmin = %i, kmax = %i , n-kmin = %i", 0, n, n);
+
53 }
+
54 for (int n = lkern; n < lsig; n++) {
+
55 int kmin, kmax, k;
+
56
+
57 convout[n] = 0;
+
58
+
59 kmin = n - lkern + 1;
+
60 kmax = n;
+
61 ESP_LOGV(TAG, "L2 n=%i, kmin = %i, kmax = %i , n-kmin = %i", n, kmin, kmax, n - kmin);
+
62 for (k = kmin; k <= kmax; k++) {
+
63 convout[n] += sig[k] * kern[n - k];
+
64 }
+
65 }
+
66
+
67 for (int n = lsig; n < lsig + lkern - 1; n++) {
+
68 int kmin, kmax, k;
+
69
+
70 convout[n] = 0;
+
71
+
72 kmin = n - lkern + 1;
+
73 kmax = lsig - 1;
+
74
+
75 for (k = kmin; k <= kmax; k++) {
+
76 convout[n] += sig[k] * kern[n - k];
+
77 }
+
78 ESP_LOGV(TAG, "L3 n=%i, kmin = %i, kmax = %i , n-kmin = %i", n, kmin, kmax, n - kmin);
+
79 }
+
80 return ESP_OK;
+
81}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
static const char * TAG
Definition main/main.c:31
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, k, n, and TAG.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__conv_8h.js b/docs/html/dsps__conv_8h.js new file mode 100644 index 0000000..15fb5fd --- /dev/null +++ b/docs/html/dsps__conv_8h.js @@ -0,0 +1,6 @@ +var dsps__conv_8h = +[ + [ "dsps_conv_f32", "dsps__conv_8h.html#ab74187134d71c4d088c74d9034d4e20a", null ], + [ "dsps_conv_f32_ae32", "dsps__conv_8h.html#ac5a2359cf6af694828155a9b7bf9b2ac", null ], + [ "dsps_conv_f32_ansi", "dsps__conv_8h.html#a2ebab814a2ff08fd2f488d9d3d9a9253", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__conv_8h__dep__incl.md5 b/docs/html/dsps__conv_8h__dep__incl.md5 new file mode 100644 index 0000000..802b09e --- /dev/null +++ b/docs/html/dsps__conv_8h__dep__incl.md5 @@ -0,0 +1 @@ +3d9f6ebefc388a568e8834bb7a7620c0 \ No newline at end of file diff --git a/docs/html/dsps__conv_8h__dep__incl.svg b/docs/html/dsps__conv_8h__dep__incl.svg new file mode 100644 index 0000000..16f41fe --- /dev/null +++ b/docs/html/dsps__conv_8h__dep__incl.svg @@ -0,0 +1,752 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_conv.h + + +Node1 + + +dsps_conv.h + + + + + +Node2 + + +dsps_ccorr_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_conv_f32_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dsps_fird_init_s16.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +graphics_support.cpp + + + + + +Node27->Node28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__conv_8h__dep__incl_org.svg b/docs/html/dsps__conv_8h__dep__incl_org.svg new file mode 100644 index 0000000..947ec92 --- /dev/null +++ b/docs/html/dsps__conv_8h__dep__incl_org.svg @@ -0,0 +1,669 @@ + + + + + + +dsps_conv.h + + +Node1 + + +dsps_conv.h + + + + + +Node2 + + +dsps_ccorr_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_conv_f32_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dsps_fird_init_s16.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +graphics_support.cpp + + + + + +Node27->Node28 + + + + + + + + diff --git a/docs/html/dsps__conv_8h__incl.md5 b/docs/html/dsps__conv_8h__incl.md5 new file mode 100644 index 0000000..45d0b73 --- /dev/null +++ b/docs/html/dsps__conv_8h__incl.md5 @@ -0,0 +1 @@ +8898132db93eda9f1e253cb0acfda93e \ No newline at end of file diff --git a/docs/html/dsps__conv_8h__incl.svg b/docs/html/dsps__conv_8h__incl.svg new file mode 100644 index 0000000..b75c010 --- /dev/null +++ b/docs/html/dsps__conv_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_conv.h + + +Node1 + + +dsps_conv.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_conv_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__conv_8h__incl_org.svg b/docs/html/dsps__conv_8h__incl_org.svg new file mode 100644 index 0000000..1bfe623 --- /dev/null +++ b/docs/html/dsps__conv_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_conv.h + + +Node1 + + +dsps_conv.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_conv_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__conv_8h_source.html b/docs/html/dsps__conv_8h_source.html new file mode 100644 index 0000000..7615687 --- /dev/null +++ b/docs/html/dsps__conv_8h_source.html @@ -0,0 +1,158 @@ + + + + + + + +ESP-IDF Firmware: dsps_conv.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_conv.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_conv_H_
+
16#define _dsps_conv_H_
+
17#include "dsp_err.h"
+
18
+
19#include "dsps_conv_platform.h"
+
20
+
21#ifdef __cplusplus
+
22extern "C"
+
23{
+
24#endif
+
25
+
26
+
44esp_err_t dsps_conv_f32_ae32(const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *convout);
+
45esp_err_t dsps_conv_f32_ansi(const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *convout);
+
47
+
48#ifdef __cplusplus
+
49}
+
50#endif
+
51
+
52
+
53#ifdef CONFIG_DSP_OPTIMIZED
+
54
+
55#if (dsps_conv_f32_ae32_enabled == 1)
+
56#define dsps_conv_f32 dsps_conv_f32_ae32
+
57#else
+
58#define dsps_conv_f32 dsps_conv_f32_ansi
+
59#endif // dsps_conv_f32_ae32_enabled
+
60
+
61#else
+
62#define dsps_conv_f32 dsps_conv_f32_ansi
+
63#endif
+
64
+
65#endif // _dsps_conv_H_
+ +
esp_err_t dsps_conv_f32_ansi(const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *convout)
+
esp_err_t dsps_conv_f32_ae32(const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *convout)
Convolution.
+ +
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__conv__f32__ansi_8c.html b/docs/html/dsps__conv__f32__ansi_8c.html new file mode 100644 index 0000000..a9aa492 --- /dev/null +++ b/docs/html/dsps__conv__f32__ansi_8c.html @@ -0,0 +1,263 @@ + + + + + + + +ESP-IDF Firmware: dsps_conv_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_conv_f32_ansi.c File Reference
+
+
+
#include "dsps_conv.h"
+#include "esp_log.h"
+
+Include dependency graph for dsps_conv_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dsps_conv_f32_ansi (const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *convout)
+ + +

+Variables

static const char * TAG = "dsps_conv"
+

Function Documentation

+ +

◆ dsps_conv_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_conv_f32_ansi (const float * Signal,
const int siglen,
const float * Kernel,
const int kernlen,
float * convout )
+
+ +

Definition at line 20 of file dsps_conv_f32_ansi.c.

+
21{
+
22 if (NULL == Signal) {
+ +
24 }
+
25 if (NULL == Kernel) {
+ +
27 }
+
28 if (NULL == convout) {
+ +
30 }
+
31
+
32 float *sig = (float *)Signal;
+
33 float *kern = (float *)Kernel;
+
34 int lsig = siglen;
+
35 int lkern = kernlen;
+
36
+
37 if (siglen < kernlen) {
+
38 sig = (float *)Kernel;
+
39 kern = (float *)Signal;
+
40 lsig = kernlen;
+
41 lkern = siglen;
+
42 }
+
43
+
44 for (int n = 0; n < lkern; n++) {
+
45 size_t k;
+
46
+
47 convout[n] = 0;
+
48
+
49 for (k = 0; k <= n; k++) {
+
50 convout[n] += sig[k] * kern[n - k];
+
51 }
+
52 ESP_LOGV(TAG, "L1 kmin = %i, kmax = %i , n-kmin = %i", 0, n, n);
+
53 }
+
54 for (int n = lkern; n < lsig; n++) {
+
55 int kmin, kmax, k;
+
56
+
57 convout[n] = 0;
+
58
+
59 kmin = n - lkern + 1;
+
60 kmax = n;
+
61 ESP_LOGV(TAG, "L2 n=%i, kmin = %i, kmax = %i , n-kmin = %i", n, kmin, kmax, n - kmin);
+
62 for (k = kmin; k <= kmax; k++) {
+
63 convout[n] += sig[k] * kern[n - k];
+
64 }
+
65 }
+
66
+
67 for (int n = lsig; n < lsig + lkern - 1; n++) {
+
68 int kmin, kmax, k;
+
69
+
70 convout[n] = 0;
+
71
+
72 kmin = n - lkern + 1;
+
73 kmax = lsig - 1;
+
74
+
75 for (k = kmin; k <= kmax; k++) {
+
76 convout[n] += sig[k] * kern[n - k];
+
77 }
+
78 ESP_LOGV(TAG, "L3 n=%i, kmin = %i, kmax = %i , n-kmin = %i", n, kmin, kmax, n - kmin);
+
79 }
+
80 return ESP_OK;
+
81}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
static const char * TAG
Definition main/main.c:31
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, k, n, and TAG.

+ +
+
+

Variable Documentation

+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "dsps_conv"
+
+static
+
+ +

Definition at line 18 of file dsps_conv_f32_ansi.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__conv__f32__ansi_8c.js b/docs/html/dsps__conv__f32__ansi_8c.js new file mode 100644 index 0000000..ed44758 --- /dev/null +++ b/docs/html/dsps__conv__f32__ansi_8c.js @@ -0,0 +1,5 @@ +var dsps__conv__f32__ansi_8c = +[ + [ "dsps_conv_f32_ansi", "dsps__conv__f32__ansi_8c.html#a2ebab814a2ff08fd2f488d9d3d9a9253", null ], + [ "TAG", "dsps__conv__f32__ansi_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__conv__f32__ansi_8c__incl.md5 b/docs/html/dsps__conv__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..c67846d --- /dev/null +++ b/docs/html/dsps__conv__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +8f6c6803697b15b0870af7a6be2eab69 \ No newline at end of file diff --git a/docs/html/dsps__conv__f32__ansi_8c__incl.svg b/docs/html/dsps__conv__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..88fe167 --- /dev/null +++ b/docs/html/dsps__conv__f32__ansi_8c__incl.svg @@ -0,0 +1,218 @@ + + + + + + + + + + + + +dsps_conv_f32_ansi.c + + +Node1 + + +dsps_conv_f32_ansi.c + + + + + +Node2 + + +dsps_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +esp_log.h + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_conv_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__conv__f32__ansi_8c__incl_org.svg b/docs/html/dsps__conv__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..e7f7560 --- /dev/null +++ b/docs/html/dsps__conv__f32__ansi_8c__incl_org.svg @@ -0,0 +1,192 @@ + + + + + + +dsps_conv_f32_ansi.c + + +Node1 + + +dsps_conv_f32_ansi.c + + + + + +Node2 + + +dsps_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +esp_log.h + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_conv_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node6 + + + + + + + + diff --git a/docs/html/dsps__conv__f32__ansi_8c_source.html b/docs/html/dsps__conv__f32__ansi_8c_source.html new file mode 100644 index 0000000..5c9ec63 --- /dev/null +++ b/docs/html/dsps__conv__f32__ansi_8c_source.html @@ -0,0 +1,198 @@ + + + + + + + +ESP-IDF Firmware: dsps_conv_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_conv_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_conv.h"
+
16#include "esp_log.h"
+
17
+
18static const char *TAG = "dsps_conv";
+
19
+
+
20esp_err_t dsps_conv_f32_ansi(const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *convout)
+
21{
+
22 if (NULL == Signal) {
+ +
24 }
+
25 if (NULL == Kernel) {
+ +
27 }
+
28 if (NULL == convout) {
+ +
30 }
+
31
+
32 float *sig = (float *)Signal;
+
33 float *kern = (float *)Kernel;
+
34 int lsig = siglen;
+
35 int lkern = kernlen;
+
36
+
37 if (siglen < kernlen) {
+
38 sig = (float *)Kernel;
+
39 kern = (float *)Signal;
+
40 lsig = kernlen;
+
41 lkern = siglen;
+
42 }
+
43
+
44 for (int n = 0; n < lkern; n++) {
+
45 size_t k;
+
46
+
47 convout[n] = 0;
+
48
+
49 for (k = 0; k <= n; k++) {
+
50 convout[n] += sig[k] * kern[n - k];
+
51 }
+
52 ESP_LOGV(TAG, "L1 kmin = %i, kmax = %i , n-kmin = %i", 0, n, n);
+
53 }
+
54 for (int n = lkern; n < lsig; n++) {
+
55 int kmin, kmax, k;
+
56
+
57 convout[n] = 0;
+
58
+
59 kmin = n - lkern + 1;
+
60 kmax = n;
+
61 ESP_LOGV(TAG, "L2 n=%i, kmin = %i, kmax = %i , n-kmin = %i", n, kmin, kmax, n - kmin);
+
62 for (k = kmin; k <= kmax; k++) {
+
63 convout[n] += sig[k] * kern[n - k];
+
64 }
+
65 }
+
66
+
67 for (int n = lsig; n < lsig + lkern - 1; n++) {
+
68 int kmin, kmax, k;
+
69
+
70 convout[n] = 0;
+
71
+
72 kmin = n - lkern + 1;
+
73 kmax = lsig - 1;
+
74
+
75 for (k = kmin; k <= kmax; k++) {
+
76 convout[n] += sig[k] * kern[n - k];
+
77 }
+
78 ESP_LOGV(TAG, "L3 n=%i, kmin = %i, kmax = %i , n-kmin = %i", n, kmin, kmax, n - kmin);
+
79 }
+
80 return ESP_OK;
+
81}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_conv_f32_ansi(const float *Signal, const int siglen, const float *Kernel, const int kernlen, float *convout)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
static const char * TAG
Definition main/main.c:31
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/dsps__conv__platform_8h.html b/docs/html/dsps__conv__platform_8h.html new file mode 100644 index 0000000..5995806 --- /dev/null +++ b/docs/html/dsps__conv__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_conv_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_conv_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_conv_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__conv__platform_8h__dep__incl.md5 b/docs/html/dsps__conv__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..23d3332 --- /dev/null +++ b/docs/html/dsps__conv__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +f526694ddfdffb415fe7adf22678946d \ No newline at end of file diff --git a/docs/html/dsps__conv__platform_8h__dep__incl.svg b/docs/html/dsps__conv__platform_8h__dep__incl.svg new file mode 100644 index 0000000..5958fae --- /dev/null +++ b/docs/html/dsps__conv__platform_8h__dep__incl.svg @@ -0,0 +1,716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_conv_platform.h + + +Node1 + + +dsps_conv_platform.h + + + + + +Node2 + + +dspi_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_ccorr.h + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dsps_conv.h + + + + + +Node1->Node39 + + + + + + + + +Node42 + + +dsps_corr.h + + + + + +Node1->Node42 + + + + + + + + +Node3 + + +dspi_conv_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node39->Node4 + + + + + + + + +Node40 + + +dsps_ccorr_f32_ansi.c + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_conv_f32_ansi.c + + + + + +Node39->Node41 + + + + + + + + +Node42->Node4 + + + + + + + + +Node43 + + +dsps_corr_f32_ansi.c + + + + + +Node42->Node43 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__conv__platform_8h__dep__incl_org.svg b/docs/html/dsps__conv__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..d817981 --- /dev/null +++ b/docs/html/dsps__conv__platform_8h__dep__incl_org.svg @@ -0,0 +1,633 @@ + + + + + + +dsps_conv_platform.h + + +Node1 + + +dsps_conv_platform.h + + + + + +Node2 + + +dspi_conv.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_ccorr.h + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dsps_conv.h + + + + + +Node1->Node39 + + + + + + + + +Node42 + + +dsps_corr.h + + + + + +Node1->Node42 + + + + + + + + +Node3 + + +dspi_conv_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node39->Node4 + + + + + + + + +Node40 + + +dsps_ccorr_f32_ansi.c + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_conv_f32_ansi.c + + + + + +Node39->Node41 + + + + + + + + +Node42->Node4 + + + + + + + + +Node43 + + +dsps_corr_f32_ansi.c + + + + + +Node42->Node43 + + + + + + + + diff --git a/docs/html/dsps__conv__platform_8h__incl.md5 b/docs/html/dsps__conv__platform_8h__incl.md5 new file mode 100644 index 0000000..b09a0d3 --- /dev/null +++ b/docs/html/dsps__conv__platform_8h__incl.md5 @@ -0,0 +1 @@ +80f412364cf6de31f8a4ae9d07cb937a \ No newline at end of file diff --git a/docs/html/dsps__conv__platform_8h__incl.svg b/docs/html/dsps__conv__platform_8h__incl.svg new file mode 100644 index 0000000..d623f97 --- /dev/null +++ b/docs/html/dsps__conv__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_conv_platform.h + + +Node1 + + +dsps_conv_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__conv__platform_8h__incl_org.svg b/docs/html/dsps__conv__platform_8h__incl_org.svg new file mode 100644 index 0000000..e6e9c4a --- /dev/null +++ b/docs/html/dsps__conv__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_conv_platform.h + + +Node1 + + +dsps_conv_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__conv__platform_8h_source.html b/docs/html/dsps__conv__platform_8h_source.html new file mode 100644 index 0000000..14e0a43 --- /dev/null +++ b/docs/html/dsps__conv__platform_8h_source.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_conv_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_conv_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_conv_platform_H_
+
2#define _dsps_conv_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dsps_conv_f32_ae32_enabled 1
+
14#define dsps_ccorr_f32_ae32_enabled 1
+
15#define dsps_corr_f32_ae32_enabled 1
+
16
+
17#endif
+
18#endif // __XTENSA__
+
19
+
20#endif // _dsps_conv_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__corr_8h.html b/docs/html/dsps__corr_8h.html new file mode 100644 index 0000000..042edf2 --- /dev/null +++ b/docs/html/dsps__corr_8h.html @@ -0,0 +1,278 @@ + + + + + + + +ESP-IDF Firmware: dsps_corr.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_corr.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_conv_platform.h"
+
+Include dependency graph for dsps_corr.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define dsps_corr_f32   dsps_corr_f32_ansi
+ + + + + +

+Functions

esp_err_t dsps_corr_f32_ansi (const float *Signal, const int siglen, const float *Pattern, const int patlen, float *dest)
 Correlation with pattern.
esp_err_t dsps_corr_f32_ae32 (const float *Signal, const int siglen, const float *Pattern, const int patlen, float *dest)
+

Macro Definition Documentation

+ +

◆ dsps_corr_f32

+ +
+
+ + + + +
#define dsps_corr_f32   dsps_corr_f32_ansi
+
+ +

Definition at line 60 of file dsps_corr.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_corr_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_corr_f32_ae32 (const float * Signal,
const int siglen,
const float * Pattern,
const int patlen,
float * dest )
+
+ +
+
+ +

◆ dsps_corr_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_corr_f32_ansi (const float * Signal,
const int siglen,
const float * Pattern,
const int patlen,
float * dest )
+
+ +

Correlation with pattern.

+

The function correlate input sigla array with pattern array. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + +
[in]Signalinput array with signal values
[in]siglenlength of the signal array
[in]Patterninput array with pattern values
[in]patlenlength of the pattern array. The siglen must be bigger then patlen!
destoutput array with result of correlation
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library (one of the input array are NULL, or if (siglen < patlen))
  • +
+
+ +

Definition at line 17 of file dsps_corr_f32_ansi.c.

+
18{
+
19 if (NULL == Signal) {
+ +
21 }
+
22 if (NULL == Pattern) {
+ +
24 }
+
25 if (NULL == dest) {
+ +
27 }
+
28 if (siglen < patlen) {
+ +
30 }
+
31
+
32 for (size_t n = 0; n <= (siglen - patlen); n++) {
+
33 float k_corr = 0;
+
34 for (size_t m = 0; m < patlen; m++) {
+
35 k_corr += Signal[n + m] * Pattern[m];
+
36 }
+
37 dest[n] = k_corr;
+
38 }
+
39 return ESP_OK;
+
40}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, m, and n.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__corr_8h.js b/docs/html/dsps__corr_8h.js new file mode 100644 index 0000000..7252fac --- /dev/null +++ b/docs/html/dsps__corr_8h.js @@ -0,0 +1,6 @@ +var dsps__corr_8h = +[ + [ "dsps_corr_f32", "dsps__corr_8h.html#a460f7ddd548b5a476509e4c82100c66a", null ], + [ "dsps_corr_f32_ae32", "dsps__corr_8h.html#ae691c29d92b8445a3d45043423c6193f", null ], + [ "dsps_corr_f32_ansi", "dsps__corr_8h.html#a17ca46cf63e728f6c68de2d3895f5f52", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__corr_8h__dep__incl.md5 b/docs/html/dsps__corr_8h__dep__incl.md5 new file mode 100644 index 0000000..b14decc --- /dev/null +++ b/docs/html/dsps__corr_8h__dep__incl.md5 @@ -0,0 +1 @@ +39cf6908bfa118d9723e40704ab41810 \ No newline at end of file diff --git a/docs/html/dsps__corr_8h__dep__incl.svg b/docs/html/dsps__corr_8h__dep__incl.svg new file mode 100644 index 0000000..8b05c8e --- /dev/null +++ b/docs/html/dsps__corr_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_corr.h + + +Node1 + + +dsps_corr.h + + + + + +Node2 + + +dsps_corr_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__corr_8h__dep__incl_org.svg b/docs/html/dsps__corr_8h__dep__incl_org.svg new file mode 100644 index 0000000..26a4c85 --- /dev/null +++ b/docs/html/dsps__corr_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dsps_corr.h + + +Node1 + + +dsps_corr.h + + + + + +Node2 + + +dsps_corr_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + diff --git a/docs/html/dsps__corr_8h__incl.md5 b/docs/html/dsps__corr_8h__incl.md5 new file mode 100644 index 0000000..e24f78e --- /dev/null +++ b/docs/html/dsps__corr_8h__incl.md5 @@ -0,0 +1 @@ +b7d434befe3a06875f484ac973da8910 \ No newline at end of file diff --git a/docs/html/dsps__corr_8h__incl.svg b/docs/html/dsps__corr_8h__incl.svg new file mode 100644 index 0000000..8b35972 --- /dev/null +++ b/docs/html/dsps__corr_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_corr.h + + +Node1 + + +dsps_corr.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_conv_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__corr_8h__incl_org.svg b/docs/html/dsps__corr_8h__incl_org.svg new file mode 100644 index 0000000..42c8474 --- /dev/null +++ b/docs/html/dsps__corr_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_corr.h + + +Node1 + + +dsps_corr.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_conv_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__corr_8h_source.html b/docs/html/dsps__corr_8h_source.html new file mode 100644 index 0000000..1be778d --- /dev/null +++ b/docs/html/dsps__corr_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + +ESP-IDF Firmware: dsps_corr.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_corr.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_corr_H_
+
16#define _dsps_corr_H_
+
17#include "dsp_err.h"
+
18
+
19#include "dsps_conv_platform.h"
+
20
+
21#ifdef __cplusplus
+
22extern "C"
+
23{
+
24#endif
+
25
+
26
+
44esp_err_t dsps_corr_f32_ansi(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *dest);
+
45esp_err_t dsps_corr_f32_ae32(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *dest);
+
47
+
48#ifdef __cplusplus
+
49}
+
50#endif
+
51
+
52
+
53#ifdef CONFIG_DSP_OPTIMIZED
+
54#if (dsps_corr_f32_ae32_enabled == 1)
+
55#define dsps_corr_f32 dsps_corr_f32_ae32
+
56#else
+
57#define dsps_corr_f32 dsps_corr_f32_ansi
+
58#endif // dsps_corr_f32_ae32_enabled
+
59#else
+
60#define dsps_corr_f32 dsps_corr_f32_ansi
+
61#endif
+
62
+
63#endif // _dsps_corr_H_
+ + +
esp_err_t dsps_corr_f32_ansi(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *dest)
Correlation with pattern.
+
esp_err_t dsps_corr_f32_ae32(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *dest)
+
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__corr__f32__ansi_8c.html b/docs/html/dsps__corr__f32__ansi_8c.html new file mode 100644 index 0000000..a3636fc --- /dev/null +++ b/docs/html/dsps__corr__f32__ansi_8c.html @@ -0,0 +1,213 @@ + + + + + + + +ESP-IDF Firmware: dsps_corr_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_corr_f32_ansi.c File Reference
+
+
+
#include "dsps_corr.h"
+
+Include dependency graph for dsps_corr_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_corr_f32_ansi (const float *Signal, const int siglen, const float *Pattern, const int patlen, float *dest)
 Correlation with pattern.
+

Function Documentation

+ +

◆ dsps_corr_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_corr_f32_ansi (const float * Signal,
const int siglen,
const float * Pattern,
const int patlen,
float * dest )
+
+ +

Correlation with pattern.

+

The function correlate input sigla array with pattern array. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + +
[in]Signalinput array with signal values
[in]siglenlength of the signal array
[in]Patterninput array with pattern values
[in]patlenlength of the pattern array. The siglen must be bigger then patlen!
destoutput array with result of correlation
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library (one of the input array are NULL, or if (siglen < patlen))
  • +
+
+ +

Definition at line 17 of file dsps_corr_f32_ansi.c.

+
18{
+
19 if (NULL == Signal) {
+ +
21 }
+
22 if (NULL == Pattern) {
+ +
24 }
+
25 if (NULL == dest) {
+ +
27 }
+
28 if (siglen < patlen) {
+ +
30 }
+
31
+
32 for (size_t n = 0; n <= (siglen - patlen); n++) {
+
33 float k_corr = 0;
+
34 for (size_t m = 0; m < patlen; m++) {
+
35 k_corr += Signal[n + m] * Pattern[m];
+
36 }
+
37 dest[n] = k_corr;
+
38 }
+
39 return ESP_OK;
+
40}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, m, and n.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__corr__f32__ansi_8c.js b/docs/html/dsps__corr__f32__ansi_8c.js new file mode 100644 index 0000000..fd1f984 --- /dev/null +++ b/docs/html/dsps__corr__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__corr__f32__ansi_8c = +[ + [ "dsps_corr_f32_ansi", "dsps__corr__f32__ansi_8c.html#a17ca46cf63e728f6c68de2d3895f5f52", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__corr__f32__ansi_8c__incl.md5 b/docs/html/dsps__corr__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..bd92620 --- /dev/null +++ b/docs/html/dsps__corr__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +f64cdacaecefd53ccda1594f030cd0e9 \ No newline at end of file diff --git a/docs/html/dsps__corr__f32__ansi_8c__incl.svg b/docs/html/dsps__corr__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..f017391 --- /dev/null +++ b/docs/html/dsps__corr__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_corr_f32_ansi.c + + +Node1 + + +dsps_corr_f32_ansi.c + + + + + +Node2 + + +dsps_corr.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_conv_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__corr__f32__ansi_8c__incl_org.svg b/docs/html/dsps__corr__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..c05a28f --- /dev/null +++ b/docs/html/dsps__corr__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_corr_f32_ansi.c + + +Node1 + + +dsps_corr_f32_ansi.c + + + + + +Node2 + + +dsps_corr.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_conv_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__corr__f32__ansi_8c_source.html b/docs/html/dsps__corr__f32__ansi_8c_source.html new file mode 100644 index 0000000..b7b6c57 --- /dev/null +++ b/docs/html/dsps__corr__f32__ansi_8c_source.html @@ -0,0 +1,155 @@ + + + + + + + +ESP-IDF Firmware: dsps_corr_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_corr_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_corr.h"
+
16
+
+
17esp_err_t dsps_corr_f32_ansi(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *dest)
+
18{
+
19 if (NULL == Signal) {
+ +
21 }
+
22 if (NULL == Pattern) {
+ +
24 }
+
25 if (NULL == dest) {
+ +
27 }
+
28 if (siglen < patlen) {
+ +
30 }
+
31
+
32 for (size_t n = 0; n <= (siglen - patlen); n++) {
+
33 float k_corr = 0;
+
34 for (size_t m = 0; m < patlen; m++) {
+
35 k_corr += Signal[n + m] * Pattern[m];
+
36 }
+
37 dest[n] = k_corr;
+
38 }
+
39 return ESP_OK;
+
40}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_corr_f32_ansi(const float *Signal, const int siglen, const float *Pattern, const int patlen, float *dest)
Correlation with pattern.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+
+
+ + + + diff --git a/docs/html/dsps__cplx__gen_8c.html b/docs/html/dsps__cplx__gen_8c.html new file mode 100644 index 0000000..d31e9e6 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8c.html @@ -0,0 +1,214 @@ + + + + + + + +ESP-IDF Firmware: dsps_cplx_gen.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_cplx_gen.c File Reference
+
+
+
#include "dsps_cplx_gen.h"
+
+Include dependency graph for dsps_cplx_gen.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_cplx_gen_ansi (cplx_sig_t *cplx_gen, void *output, int32_t len)
 The function generates a complex signal.
+

Function Documentation

+ +

◆ dsps_cplx_gen_ansi()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx_gen_ansi (cplx_sig_t * cplx_gen,
void * output,
int32_t len )
+
+ +

The function generates a complex signal.

+

the generated complex signal is in the form of two harmonics signals in either 16-bit signed fixed point or 32-bit floating point

+

x[i]= A*sin(step*i + ph/180*Pi) x[i+1]= B*cos(step*i + ph/180*Pi) where step = 2*Pi*frequency

+

dsps_cplx_gen_ansi() - The implementation uses ANSI C and could be compiled and run on any platform dsps_cplx_gen_ae32() - Is targetted for Xtensa cores

+
Parameters
+ + + + +
cplx_genpointer to the generator structure
outputoutput array (length of len*2), data type is void so both (S16_FIXED, F32_FLOAT) types could be used
lenlength of the output signal
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 9 of file dsps_cplx_gen.c.

+
10{
+
11 // angle frequency is already cplx_gen->freq
+
12 const int sin_to_cos = cplx_gen->lut_len / 4;
+
13 float ph = cplx_gen->phase;
+
14 const float fr = cplx_gen->freq;
+
15 int sin_pos, cos_pos;
+
16
+
17 for (int i = 0 ; i < len; i++) {
+
18
+
19 if (ph < 0) {
+
20 ph += 1.0;
+
21 }
+
22 if (ph >= 1.0) {
+
23 ph -= 1.0;
+
24 }
+
25
+
26 sin_pos = (int)(ph * (cplx_gen->lut_len));
+
27 cos_pos = (sin_pos + sin_to_cos) & (cplx_gen->lut_len - 1);
+
28
+
29 if (cplx_gen->d_type == S16_FIXED) {
+
30 ((int16_t *)output)[i * 2 + 0] = ((int16_t *)cplx_gen->lut)[cos_pos];
+
31 ((int16_t *)output)[i * 2 + 1] = ((int16_t *)cplx_gen->lut)[sin_pos];
+
32 } else {
+
33 ((float *)output)[i * 2 + 0] = ((float *)cplx_gen->lut)[cos_pos];
+
34 ((float *)output)[i * 2 + 1] = ((float *)cplx_gen->lut)[sin_pos];
+
35 }
+
36 ph += fr;
+
37 }
+
38
+
39 return ESP_OK;
+
40}
+
@ S16_FIXED
+
#define ESP_OK
Definition esp_err.h:23
+
int32_t lut_len
+ +
out_d_type d_type
+ + +
+

References cplx_sig_s::d_type, ESP_OK, cplx_sig_s::freq, cplx_sig_s::lut, cplx_sig_s::lut_len, cplx_sig_s::phase, and S16_FIXED.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__cplx__gen_8c.js b/docs/html/dsps__cplx__gen_8c.js new file mode 100644 index 0000000..dd927bb --- /dev/null +++ b/docs/html/dsps__cplx__gen_8c.js @@ -0,0 +1,4 @@ +var dsps__cplx__gen_8c = +[ + [ "dsps_cplx_gen_ansi", "dsps__cplx__gen_8c.html#a618bc21e9fcf444d008c701a53d33318", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen_8c__incl.md5 b/docs/html/dsps__cplx__gen_8c__incl.md5 new file mode 100644 index 0000000..1d7dba2 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8c__incl.md5 @@ -0,0 +1 @@ +81f0cef46f8a7600fe481320cc46f6ee \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen_8c__incl.svg b/docs/html/dsps__cplx__gen_8c__incl.svg new file mode 100644 index 0000000..3c94d7b --- /dev/null +++ b/docs/html/dsps__cplx__gen_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_cplx_gen.c + + +Node1 + + +dsps_cplx_gen.c + + + + + +Node2 + + +dsps_cplx_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_cplx_gen_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8c__incl_org.svg b/docs/html/dsps__cplx__gen_8c__incl_org.svg new file mode 100644 index 0000000..65c75c8 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_cplx_gen.c + + +Node1 + + +dsps_cplx_gen.c + + + + + +Node2 + + +dsps_cplx_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_cplx_gen_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8c_source.html b/docs/html/dsps__cplx__gen_8c_source.html new file mode 100644 index 0000000..c3ca1b3 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8c_source.html @@ -0,0 +1,159 @@ + + + + + + + +ESP-IDF Firmware: dsps_cplx_gen.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_cplx_gen.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_cplx_gen.h"
+
8
+
+
9esp_err_t dsps_cplx_gen_ansi(cplx_sig_t *cplx_gen, void *output, int32_t len)
+
10{
+
11 // angle frequency is already cplx_gen->freq
+
12 const int sin_to_cos = cplx_gen->lut_len / 4;
+
13 float ph = cplx_gen->phase;
+
14 const float fr = cplx_gen->freq;
+
15 int sin_pos, cos_pos;
+
16
+
17 for (int i = 0 ; i < len; i++) {
+
18
+
19 if (ph < 0) {
+
20 ph += 1.0;
+
21 }
+
22 if (ph >= 1.0) {
+
23 ph -= 1.0;
+
24 }
+
25
+
26 sin_pos = (int)(ph * (cplx_gen->lut_len));
+
27 cos_pos = (sin_pos + sin_to_cos) & (cplx_gen->lut_len - 1);
+
28
+
29 if (cplx_gen->d_type == S16_FIXED) {
+
30 ((int16_t *)output)[i * 2 + 0] = ((int16_t *)cplx_gen->lut)[cos_pos];
+
31 ((int16_t *)output)[i * 2 + 1] = ((int16_t *)cplx_gen->lut)[sin_pos];
+
32 } else {
+
33 ((float *)output)[i * 2 + 0] = ((float *)cplx_gen->lut)[cos_pos];
+
34 ((float *)output)[i * 2 + 1] = ((float *)cplx_gen->lut)[sin_pos];
+
35 }
+
36 ph += fr;
+
37 }
+
38
+
39 return ESP_OK;
+
40}
+
+
esp_err_t dsps_cplx_gen_ansi(cplx_sig_t *cplx_gen, void *output, int32_t len)
The function generates a complex signal.
+ +
struct cplx_sig_s cplx_sig_t
Data struct of the complex signal generator.
+
@ S16_FIXED
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int32_t lut_len
+ +
out_d_type d_type
+ + +
+
+
+ + + + diff --git a/docs/html/dsps__cplx__gen_8h.html b/docs/html/dsps__cplx__gen_8h.html new file mode 100644 index 0000000..83baaac --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h.html @@ -0,0 +1,790 @@ + + + + + + + +ESP-IDF Firmware: dsps_cplx_gen.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_cplx_gen.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_cplx_gen_platform.h"
+
+Include dependency graph for dsps_cplx_gen.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  cplx_sig_s
 Data struct of the complex signal generator. More...
+ + +

+Macros

#define dsps_cplx_gen   dsps_cplx_gen_ansi
+ + + + + +

+Typedefs

typedef enum output_data_type out_d_type
 Ennum defining output data type of the complex generator.
typedef struct cplx_sig_s cplx_sig_t
 Data struct of the complex signal generator.
+ + + +

+Enumerations

enum  output_data_type { S16_FIXED = 0 +, F32_FLOAT = 1 + }
 Ennum defining output data type of the complex generator. More...
+ + + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_cplx_gen_init (cplx_sig_t *cplx_gen, out_d_type d_type, void *lut, int32_t lut_len, float freq, float initial_phase)
 Initialize strucure for complex generator.
esp_err_t dsps_cplx_gen_freq_set (cplx_sig_t *cplx_gen, float freq)
 function sets the output frequency of the complex generator
float dsps_cplx_gen_freq_get (cplx_sig_t *cplx_gen)
 function gets the output frequency of the complex generator
esp_err_t dsps_cplx_gen_phase_set (cplx_sig_t *cplx_gen, float phase)
 function sets the phase of the complex generator
float dsps_cplx_gen_phase_get (cplx_sig_t *cplx_gen)
 function gets the phase of the complex generator
esp_err_t dsps_cplx_gen_set (cplx_sig_t *cplx_gen, float freq, float phase)
 function sets the output frequency and the phase of the complex generator
void cplx_gen_free (cplx_sig_t *cplx_gen)
 function frees dynamically allocated memory, which was allocated in the init function
esp_err_t dsps_cplx_gen_ansi (cplx_sig_t *cplx_gen, void *output, int32_t len)
 The function generates a complex signal.
esp_err_t dsps_cplx_gen_ae32 (cplx_sig_t *cplx_gen, void *output, int32_t len)
+

Macro Definition Documentation

+ +

◆ dsps_cplx_gen

+ +
+
+ + + + +
#define dsps_cplx_gen   dsps_cplx_gen_ansi
+
+ +

Definition at line 184 of file dsps_cplx_gen.h.

+ +
+
+

Typedef Documentation

+ +

◆ cplx_sig_t

+ +
+
+ + + + +
typedef struct cplx_sig_s cplx_sig_t
+
+ +

Data struct of the complex signal generator.

+

This structure is used by a complex generator internally. A user should access this structure only in case of extensions for the DSP Library. All the fields of this structure are initialized by the dsps_cplx_gen_init(...) function.

+ +
+
+ +

◆ out_d_type

+ +
+
+ + + + +
typedef enum output_data_type out_d_type
+
+ +

Ennum defining output data type of the complex generator.

+ +
+
+

Enumeration Type Documentation

+ +

◆ output_data_type

+ +
+
+ + + + +
enum output_data_type
+
+ +

Ennum defining output data type of the complex generator.

+ + + +
Enumerator
S16_FIXED 

Q15 fixed point - int16_t

+
F32_FLOAT 

Single precision floating point - float

+
+ +

Definition at line 23 of file dsps_cplx_gen.h.

+
23 {
+
24 S16_FIXED = 0,
+
25 F32_FLOAT = 1,
+ +
@ F32_FLOAT
+
@ S16_FIXED
+
enum output_data_type out_d_type
Ennum defining output data type of the complex generator.
+
+
+
+

Function Documentation

+ +

◆ cplx_gen_free()

+ +
+
+ + + + + + + +
void cplx_gen_free (cplx_sig_t * cplx_gen)
+
+ +

function frees dynamically allocated memory, which was allocated in the init function

+

free function must be called after the dsps_cplx_gen_init(...) is called, once the complex generator is not needed anymore

+
Parameters
+ + +
cplx_genpointer to the complex signal generator structure
+
+
+ +

Definition at line 142 of file dsps_cplx_gen_init.c.

+
143{
+
144 if (cplx_gen->free_status & 0x0001) {
+
145 free(cplx_gen->lut);
+
146 cplx_gen->free_status = 0;
+
147 }
+
148}
+
int16_t free_status
+ +
+

References cplx_sig_s::free_status, and cplx_sig_s::lut.

+ +
+
+ +

◆ dsps_cplx_gen_ae32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx_gen_ae32 (cplx_sig_t * cplx_gen,
void * output,
int32_t len )
+
+ +
+
+ +

◆ dsps_cplx_gen_ansi()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx_gen_ansi (cplx_sig_t * cplx_gen,
void * output,
int32_t len )
+
+ +

The function generates a complex signal.

+

the generated complex signal is in the form of two harmonics signals in either 16-bit signed fixed point or 32-bit floating point

+

x[i]= A*sin(step*i + ph/180*Pi) x[i+1]= B*cos(step*i + ph/180*Pi) where step = 2*Pi*frequency

+

dsps_cplx_gen_ansi() - The implementation uses ANSI C and could be compiled and run on any platform dsps_cplx_gen_ae32() - Is targetted for Xtensa cores

+
Parameters
+ + + + +
cplx_genpointer to the generator structure
outputoutput array (length of len*2), data type is void so both (S16_FIXED, F32_FLOAT) types could be used
lenlength of the output signal
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 9 of file dsps_cplx_gen.c.

+
10{
+
11 // angle frequency is already cplx_gen->freq
+
12 const int sin_to_cos = cplx_gen->lut_len / 4;
+
13 float ph = cplx_gen->phase;
+
14 const float fr = cplx_gen->freq;
+
15 int sin_pos, cos_pos;
+
16
+
17 for (int i = 0 ; i < len; i++) {
+
18
+
19 if (ph < 0) {
+
20 ph += 1.0;
+
21 }
+
22 if (ph >= 1.0) {
+
23 ph -= 1.0;
+
24 }
+
25
+
26 sin_pos = (int)(ph * (cplx_gen->lut_len));
+
27 cos_pos = (sin_pos + sin_to_cos) & (cplx_gen->lut_len - 1);
+
28
+
29 if (cplx_gen->d_type == S16_FIXED) {
+
30 ((int16_t *)output)[i * 2 + 0] = ((int16_t *)cplx_gen->lut)[cos_pos];
+
31 ((int16_t *)output)[i * 2 + 1] = ((int16_t *)cplx_gen->lut)[sin_pos];
+
32 } else {
+
33 ((float *)output)[i * 2 + 0] = ((float *)cplx_gen->lut)[cos_pos];
+
34 ((float *)output)[i * 2 + 1] = ((float *)cplx_gen->lut)[sin_pos];
+
35 }
+
36 ph += fr;
+
37 }
+
38
+
39 return ESP_OK;
+
40}
+
#define ESP_OK
Definition esp_err.h:23
+
int32_t lut_len
+ +
out_d_type d_type
+ +
+

References cplx_sig_s::d_type, ESP_OK, cplx_sig_s::freq, cplx_sig_s::lut, cplx_sig_s::lut_len, cplx_sig_s::phase, and S16_FIXED.

+ +
+
+ +

◆ dsps_cplx_gen_freq_get()

+ +
+
+ + + + + + + +
float dsps_cplx_gen_freq_get (cplx_sig_t * cplx_gen)
+
+ +

function gets the output frequency of the complex generator

+

get function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + +
cplx_genpointer to the complex signal generator structure
+
+
+
Returns
function returns frequency of the signal generator
+ +

Definition at line 92 of file dsps_cplx_gen_init.c.

+
93{
+
94 // Check if the structure was initialized
+
95 if (!dsp_is_power_of_two(cplx_gen->lut_len)) {
+
96 ESP_LOGE(TAG, "cplx_gen strucure was not initialized");
+
97 return -2;
+
98 }
+
99
+
100 return (cplx_gen->freq);
+
101}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
static const char * TAG
Definition main/main.c:31
+
+

References dsp_is_power_of_two(), cplx_sig_s::freq, cplx_sig_s::lut_len, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx_gen_freq_set()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx_gen_freq_set (cplx_sig_t * cplx_gen,
float freq )
+
+ +

function sets the output frequency of the complex generator

+

set function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + + +
cplx_genpointer to the complex signal generator structure
freqnew frequency to be set in a range of [-1..1] where 1 is a Nyquist frequency
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_INVALID_PARAM if the frequency is out of the Nyquist frequency range
  • +
+
+ +

Definition at line 81 of file dsps_cplx_gen_init.c.

+
82{
+
83 if ((freq >= 1) || (freq <= -1)) { // frequency is a Nyquist frequency, must be in a range from (-1 to 1)
+
84 ESP_LOGE(TAG, "The frequency is out of range. Valid range is +/- 1. ");
+ +
86 }
+
87
+
88 cplx_gen->freq = freq;
+
89 return ESP_OK;
+
90}
+
#define ESP_ERR_DSP_INVALID_PARAM
+
+

References ESP_ERR_DSP_INVALID_PARAM, ESP_OK, cplx_sig_s::freq, and TAG.

+ +
+
+ +

◆ dsps_cplx_gen_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx_gen_init (cplx_sig_t * cplx_gen,
out_d_type d_type,
void * lut,
int32_t lut_len,
float freq,
float initial_phase )
+
+ +

Initialize strucure for complex generator.

+

Function initializes a structure for either 16-bit fixed point, or 32-bit floating point complex generator using LUT table. cplx_gen_free(...) must be called, once the generator is not needed anymore to free dynamically allocated memory

+

A user can specify his own LUT table and pass a pointer to the table (void *lut) during the initialization. If the LUT table pointer passed to the init function is a NULL, the LUT table is initialized internally.

+
Parameters
+ + + + + + + +
cplx_genpointer to the floating point generator structure
d_typeoutput data type - out_d_type enum
lutpointer to a user-defined LUT, the data type is void so both (S16_FIXED, F32_FLOAT) types could be used
lut_lenlength of the LUT
freqFrequency of the output signal in a range of [-1...1], where 1 is a Nyquist frequency
initial_phaseinitial phase of the complex signal in range of [-1..1] where 1 is related to 2Pi and -1 is related to -2Pi
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 18 of file dsps_cplx_gen_init.c.

+
19{
+
20 cplx_gen->lut_len = lut_len;
+
21 cplx_gen->freq = freq;
+
22 cplx_gen->lut = lut;
+
23 cplx_gen->free_status = 0;
+
24 cplx_gen->d_type = d_type;
+
25 cplx_gen->phase = initial_phase;
+
26
+
27 // length of the LUT must be power of 2
+
28 if (!dsp_is_power_of_two(lut_len)) {
+
29 ESP_LOGE(TAG, "The length of the LUT must be power of 2");
+ +
31 }
+
32
+
33 // LUT length must be in a range from 256 to 8192
+
34 if ((lut == NULL) && ((cplx_gen->lut_len > 8192) || (cplx_gen->lut_len < 256))) {
+
35 ESP_LOGE(TAG, "The length of the LUT table out of range. Valid range is 256 to 8192");
+ +
37 }
+
38
+
39 // frequency is a Nyquist frequency, must be in a range from (-1 to 1)
+
40 if ((cplx_gen->freq >= 1) || (cplx_gen->freq <= -1)) {
+
41 ESP_LOGE(TAG, "The frequency is out of range. Valid range is +/- 1. ");
+ +
43 }
+
44
+
45 // initial phase in a range from (-1 to 1)
+
46 if ((cplx_gen->phase >= 1) || (cplx_gen->phase <= -1)) {
+
47 ESP_LOGE(TAG, "The phase is out of range. Valid range is +/- 1. ");
+ +
49 }
+
50
+
51 // LUT table coefficients generation
+
52 if (lut == NULL) { // lut has not been provided by an user. Allocate and initialize it
+
53 cplx_gen->free_status |= 0x0001; // lut has been allocated, free_status indicates that the space must be freed afterwards
+
54
+
55 if (cplx_gen->d_type == S16_FIXED) { // Q15 fixed point
+
56 int16_t *local_lut = (int16_t *)malloc(cplx_gen->lut_len * sizeof(int16_t));
+
57
+
58 float term;
+
59 for (int i = 0 ; i < cplx_gen->lut_len; i++) {
+
60 term = (2.0 * M_PI) * ((float)(i) / (float)(cplx_gen->lut_len));
+
61 local_lut[i] = (int16_t)(sin(term) * Q15_MAX); // conversion to Q15 fixed point
+
62 }
+
63 cplx_gen->lut = (void *)local_lut;
+
64 } else if (cplx_gen->d_type == F32_FLOAT) { // Single precision floating point
+
65 float *local_lut = (float *)malloc(cplx_gen->lut_len * sizeof(float));
+
66
+
67 float term;
+
68 for (int i = 0 ; i < cplx_gen->lut_len; i++) {
+
69 term = (2.0 * M_PI) * ((float)(i) / (float)(cplx_gen->lut_len));
+
70 local_lut[i] = (float)sin(term);
+
71 }
+
72 cplx_gen->lut = (void *)local_lut;
+
73 } else {
+
74 cplx_gen->lut = NULL;
+ +
76 }
+
77 }
+
78 return ESP_OK;
+
79}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define Q15_MAX
+
#define M_PI
Definition esp_err.h:26
+
+

References cplx_sig_s::d_type, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_INVALID_PARAM, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, F32_FLOAT, cplx_sig_s::free_status, cplx_sig_s::freq, cplx_sig_s::lut, cplx_sig_s::lut_len, M_PI, cplx_sig_s::phase, Q15_MAX, S16_FIXED, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx_gen_phase_get()

+ +
+
+ + + + + + + +
float dsps_cplx_gen_phase_get (cplx_sig_t * cplx_gen)
+
+ +

function gets the phase of the complex generator

+

get function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + +
cplx_genpointer to the complex signal generator structure
+
+
+
Returns
function returns phase of the signal generator
+ +

Definition at line 114 of file dsps_cplx_gen_init.c.

+
115{
+
116 // Check if the structure was initialized
+
117 if (!dsp_is_power_of_two(cplx_gen->lut_len)) {
+
118 ESP_LOGE(TAG, "cplx_gen strucure was not initialized");
+
119 return -2;
+
120 }
+
121
+
122 return (cplx_gen->phase);
+
123}
+
+

References dsp_is_power_of_two(), cplx_sig_s::lut_len, cplx_sig_s::phase, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx_gen_phase_set()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx_gen_phase_set (cplx_sig_t * cplx_gen,
float phase )
+
+ +

function sets the phase of the complex generator

+

set function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + + +
cplx_genpointer to the complex signal generator structure
phasenew phase to be set in the range of [-1..1] where 1 is related to 2Pi and -1 is related to -2Pi
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_INVALID_PARAM if the phase is out of -1 ... 1 range
  • +
+
+ +

Definition at line 103 of file dsps_cplx_gen_init.c.

+
104{
+
105 if ((phase >= 1) || (phase <= -1)) { // initial phase in a range from (-1 to 1)
+
106 ESP_LOGE(TAG, "The phase is out of range. Valid range is +/- 1. ");
+ +
108 }
+
109
+
110 cplx_gen->phase = phase;
+
111 return ESP_OK;
+
112}
+
+

References ESP_ERR_DSP_INVALID_PARAM, ESP_OK, cplx_sig_s::phase, and TAG.

+ +
+
+ +

◆ dsps_cplx_gen_set()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx_gen_set (cplx_sig_t * cplx_gen,
float freq,
float phase )
+
+ +

function sets the output frequency and the phase of the complex generator

+

set function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + + + +
cplx_genpointer to the complex signal generator structure
freqnew frequency to be set in the range of [-1..1] where 1 is a Nyquist frequency
phasenew phase to be set in the range of [-1..1] where 1 is related to 2Pi and -1 is related to -2Pi
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_INVALID_PARAM if the frequency is out of the Nyquist frequency range if the phase is out of -1 ... 1 range
  • +
+
+ +

Definition at line 125 of file dsps_cplx_gen_init.c.

+
126{
+
127 if ((freq >= 1) || (freq <= -1)) { // frequency is a Nyquist frequency, must be in a range from (-1 to 1)
+
128 ESP_LOGE(TAG, "The frequency is out of range. Valid range is +/- 1. ");
+ +
130 }
+
131
+
132 if ((phase >= 1) || (phase <= -1)) { // phase in a range from (-1 to 1)
+
133 ESP_LOGE(TAG, "The phase is out of range. Valid range is +/- 1. ");
+ +
135 }
+
136
+
137 cplx_gen->phase = phase;
+
138 cplx_gen->freq = freq;
+
139 return ESP_OK;
+
140}
+
+

References ESP_ERR_DSP_INVALID_PARAM, ESP_OK, cplx_sig_s::freq, cplx_sig_s::phase, and TAG.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__cplx__gen_8h.js b/docs/html/dsps__cplx__gen_8h.js new file mode 100644 index 0000000..af69685 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h.js @@ -0,0 +1,20 @@ +var dsps__cplx__gen_8h = +[ + [ "cplx_sig_s", "structcplx__sig__s.html", "structcplx__sig__s" ], + [ "dsps_cplx_gen", "dsps__cplx__gen_8h.html#a9e881e335fc9d672c2bf012e7dc196d1", null ], + [ "cplx_sig_t", "dsps__cplx__gen_8h.html#a54ad305bcecd087415c0d535e3cef356", null ], + [ "out_d_type", "dsps__cplx__gen_8h.html#aac5918713656b0dd767b627c4c19c4f3", null ], + [ "output_data_type", "dsps__cplx__gen_8h.html#aa30f40707893f8201695a2c20e2d8c7d", [ + [ "S16_FIXED", "dsps__cplx__gen_8h.html#aa30f40707893f8201695a2c20e2d8c7daa82d1374aefebe302f1cc5dc52d677b0", null ], + [ "F32_FLOAT", "dsps__cplx__gen_8h.html#aa30f40707893f8201695a2c20e2d8c7daa773aae1b09604990c60fab3ea6940ce", null ] + ] ], + [ "cplx_gen_free", "dsps__cplx__gen_8h.html#a8d1fc1e0f4dd0e580e2f0a315f7a3959", null ], + [ "dsps_cplx_gen_ae32", "dsps__cplx__gen_8h.html#a2352efe1c066f9bfc07deb9edb4b2764", null ], + [ "dsps_cplx_gen_ansi", "dsps__cplx__gen_8h.html#a618bc21e9fcf444d008c701a53d33318", null ], + [ "dsps_cplx_gen_freq_get", "dsps__cplx__gen_8h.html#a647829667361f9a6d8cf66f54d3d67ad", null ], + [ "dsps_cplx_gen_freq_set", "dsps__cplx__gen_8h.html#a044e19b38f57d556c5bb81c98a478da8", null ], + [ "dsps_cplx_gen_init", "dsps__cplx__gen_8h.html#a7a053e6a2a00914d14047fa18ea4b7e4", null ], + [ "dsps_cplx_gen_phase_get", "dsps__cplx__gen_8h.html#a80a5d652e0564a4df28109802c03d6e0", null ], + [ "dsps_cplx_gen_phase_set", "dsps__cplx__gen_8h.html#a0fe7a43e3cb4c373cd6a79dbf591ab4f", null ], + [ "dsps_cplx_gen_set", "dsps__cplx__gen_8h.html#a35374eb26d478277ce8844333d63167c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen_8h__dep__incl.md5 b/docs/html/dsps__cplx__gen_8h__dep__incl.md5 new file mode 100644 index 0000000..d567fc9 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h__dep__incl.md5 @@ -0,0 +1 @@ +cdadd84215c8094c4796c76333249506 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen_8h__dep__incl.svg b/docs/html/dsps__cplx__gen_8h__dep__incl.svg new file mode 100644 index 0000000..711b2ba --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h__dep__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_cplx_gen.h + + +Node1 + + +dsps_cplx_gen.h + + + + + +Node2 + + +dsps_cplx_gen.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_cplx_gen_init.c + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h__dep__incl_org.svg b/docs/html/dsps__cplx__gen_8h__dep__incl_org.svg new file mode 100644 index 0000000..bd5f852 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h__dep__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_cplx_gen.h + + +Node1 + + +dsps_cplx_gen.h + + + + + +Node2 + + +dsps_cplx_gen.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_cplx_gen_init.c + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h__incl.md5 b/docs/html/dsps__cplx__gen_8h__incl.md5 new file mode 100644 index 0000000..9934298 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h__incl.md5 @@ -0,0 +1 @@ +be7d43597775790d440b6a9a64c9fb25 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen_8h__incl.svg b/docs/html/dsps__cplx__gen_8h__incl.svg new file mode 100644 index 0000000..881757b --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_cplx_gen.h + + +Node1 + + +dsps_cplx_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_cplx_gen_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h__incl_org.svg b/docs/html/dsps__cplx__gen_8h__incl_org.svg new file mode 100644 index 0000000..a9e2eeb --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_cplx_gen.h + + +Node1 + + +dsps_cplx_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_cplx_gen_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph.md5 b/docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph.md5 new file mode 100644 index 0000000..0ee223b --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph.md5 @@ -0,0 +1 @@ +a7b5d723733c4364f221cd1068b958f1 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph.svg b/docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph.svg new file mode 100644 index 0000000..df8f17c --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx_gen_freq_get + + +Node1 + + +dsps_cplx_gen_freq_get + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph_org.svg b/docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph_org.svg new file mode 100644 index 0000000..841e2a7 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_a647829667361f9a6d8cf66f54d3d67ad_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx_gen_freq_get + + +Node1 + + +dsps_cplx_gen_freq_get + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 b/docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 new file mode 100644 index 0000000..4bdb887 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 @@ -0,0 +1 @@ +987ed6b167373151c651b35444b08943 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg b/docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg new file mode 100644 index 0000000..1d0da28 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx_gen_init + + +Node1 + + +dsps_cplx_gen_init + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg b/docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg new file mode 100644 index 0000000..4f70f61 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx_gen_init + + +Node1 + + +dsps_cplx_gen_init + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph.md5 b/docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph.md5 new file mode 100644 index 0000000..56de51a --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph.md5 @@ -0,0 +1 @@ +20a1ffd5b7f0924a37633417e0f93792 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph.svg b/docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph.svg new file mode 100644 index 0000000..d00a097 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx_gen_phase_get + + +Node1 + + +dsps_cplx_gen_phase_get + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph_org.svg b/docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph_org.svg new file mode 100644 index 0000000..6dfc5bb --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_a80a5d652e0564a4df28109802c03d6e0_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx_gen_phase_get + + +Node1 + + +dsps_cplx_gen_phase_get + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen_8h_source.html b/docs/html/dsps__cplx__gen_8h_source.html new file mode 100644 index 0000000..95beb91 --- /dev/null +++ b/docs/html/dsps__cplx__gen_8h_source.html @@ -0,0 +1,205 @@ + + + + + + + +ESP-IDF Firmware: dsps_cplx_gen.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_cplx_gen.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#ifndef _dsps_cplx_gen_H_
+
8#define _dsps_cplx_gen_H_
+
9
+
10#include "dsp_err.h"
+ +
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
18
+
+
23typedef enum output_data_type {
+ + + +
+
27
+
28
+
+
36typedef struct cplx_sig_s {
+
37 void *lut;
+
38 int32_t lut_len;
+
39 float freq;
+
40 float phase;
+ +
42 int16_t free_status;
+ +
+
44
+
45
+
66esp_err_t dsps_cplx_gen_init(cplx_sig_t *cplx_gen, out_d_type d_type, void *lut, int32_t lut_len, float freq, float initial_phase);
+
67
+
68
+
81esp_err_t dsps_cplx_gen_freq_set(cplx_sig_t *cplx_gen, float freq);
+
82
+
83
+
93float dsps_cplx_gen_freq_get(cplx_sig_t *cplx_gen);
+
94
+
95
+
108esp_err_t dsps_cplx_gen_phase_set(cplx_sig_t *cplx_gen, float phase);
+
109
+
110
+
120float dsps_cplx_gen_phase_get(cplx_sig_t *cplx_gen);
+
121
+
122
+
137esp_err_t dsps_cplx_gen_set(cplx_sig_t *cplx_gen, float freq, float phase);
+
138
+
139
+
148void cplx_gen_free(cplx_sig_t *cplx_gen);
+
149
+
150
+
172esp_err_t dsps_cplx_gen_ansi(cplx_sig_t *cplx_gen, void *output, int32_t len);
+
173esp_err_t dsps_cplx_gen_ae32(cplx_sig_t *cplx_gen, void *output, int32_t len);
+
174
+
175
+
176#ifdef __cplusplus
+
177}
+
178#endif
+
179
+
180
+
181#if (dsps_cplx_gen_ae32_enbled || dsps_cplx_gen_aes3_enbled)
+
182#define dsps_cplx_gen dsps_cplx_gen_ae32
+
183#else // CONFIG_DSP_OPTIMIZED
+
184#define dsps_cplx_gen dsps_cplx_gen_ansi
+
185#endif // CONFIG_DSP_OPTIMIZED
+
186
+
187#endif // _dsps_cplx_gen_H_
+ +
esp_err_t dsps_cplx_gen_freq_set(cplx_sig_t *cplx_gen, float freq)
function sets the output frequency of the complex generator
+
esp_err_t dsps_cplx_gen_phase_set(cplx_sig_t *cplx_gen, float phase)
function sets the phase of the complex generator
+
esp_err_t dsps_cplx_gen_ae32(cplx_sig_t *cplx_gen, void *output, int32_t len)
+
esp_err_t dsps_cplx_gen_set(cplx_sig_t *cplx_gen, float freq, float phase)
function sets the output frequency and the phase of the complex generator
+
struct cplx_sig_s cplx_sig_t
Data struct of the complex signal generator.
+
esp_err_t dsps_cplx_gen_ansi(cplx_sig_t *cplx_gen, void *output, int32_t len)
The function generates a complex signal.
+
float dsps_cplx_gen_freq_get(cplx_sig_t *cplx_gen)
function gets the output frequency of the complex generator
+
esp_err_t dsps_cplx_gen_init(cplx_sig_t *cplx_gen, out_d_type d_type, void *lut, int32_t lut_len, float freq, float initial_phase)
Initialize strucure for complex generator.
+
float dsps_cplx_gen_phase_get(cplx_sig_t *cplx_gen)
function gets the phase of the complex generator
+
void cplx_gen_free(cplx_sig_t *cplx_gen)
function frees dynamically allocated memory, which was allocated in the init function
+
output_data_type
Ennum defining output data type of the complex generator.
+
@ F32_FLOAT
+
@ S16_FIXED
+
enum output_data_type out_d_type
Ennum defining output data type of the complex generator.
+ +
int esp_err_t
Definition esp_err.h:21
+
Data struct of the complex signal generator.
+
int32_t lut_len
+ +
out_d_type d_type
+
int16_t free_status
+ + +
+
+
+ + + + diff --git a/docs/html/dsps__cplx__gen__init_8c.html b/docs/html/dsps__cplx__gen__init_8c.html new file mode 100644 index 0000000..849dcbc --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c.html @@ -0,0 +1,628 @@ + + + + + + + +ESP-IDF Firmware: dsps_cplx_gen_init.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_cplx_gen_init.c File Reference
+
+
+
#include "dsps_cplx_gen.h"
+#include "dsp_common.h"
+#include "esp_log.h"
+#include <math.h>
+#include <malloc.h>
+
+Include dependency graph for dsps_cplx_gen_init.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define Q15_MAX   INT16_MAX
+ + + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_cplx_gen_init (cplx_sig_t *cplx_gen, out_d_type d_type, void *lut, int32_t lut_len, float freq, float initial_phase)
 Initialize strucure for complex generator.
esp_err_t dsps_cplx_gen_freq_set (cplx_sig_t *cplx_gen, float freq)
 function sets the output frequency of the complex generator
float dsps_cplx_gen_freq_get (cplx_sig_t *cplx_gen)
 function gets the output frequency of the complex generator
esp_err_t dsps_cplx_gen_phase_set (cplx_sig_t *cplx_gen, float phase)
 function sets the phase of the complex generator
float dsps_cplx_gen_phase_get (cplx_sig_t *cplx_gen)
 function gets the phase of the complex generator
esp_err_t dsps_cplx_gen_set (cplx_sig_t *cplx_gen, float freq, float phase)
 function sets the output frequency and the phase of the complex generator
void cplx_gen_free (cplx_sig_t *cplx_gen)
 function frees dynamically allocated memory, which was allocated in the init function
+ + +

+Variables

static const char * TAG = "dsps_cplx_gen"
+

Macro Definition Documentation

+ +

◆ Q15_MAX

+ +
+
+ + + + +
#define Q15_MAX   INT16_MAX
+
+ +

Definition at line 14 of file dsps_cplx_gen_init.c.

+ +

Referenced by dsps_cplx_gen_init().

+ +
+
+

Function Documentation

+ +

◆ cplx_gen_free()

+ +
+
+ + + + + + + +
void cplx_gen_free (cplx_sig_t * cplx_gen)
+
+ +

function frees dynamically allocated memory, which was allocated in the init function

+

free function must be called after the dsps_cplx_gen_init(...) is called, once the complex generator is not needed anymore

+
Parameters
+ + +
cplx_genpointer to the complex signal generator structure
+
+
+ +

Definition at line 142 of file dsps_cplx_gen_init.c.

+
143{
+
144 if (cplx_gen->free_status & 0x0001) {
+
145 free(cplx_gen->lut);
+
146 cplx_gen->free_status = 0;
+
147 }
+
148}
+
int16_t free_status
+ +
+

References cplx_sig_s::free_status, and cplx_sig_s::lut.

+ +
+
+ +

◆ dsps_cplx_gen_freq_get()

+ +
+
+ + + + + + + +
float dsps_cplx_gen_freq_get (cplx_sig_t * cplx_gen)
+
+ +

function gets the output frequency of the complex generator

+

get function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + +
cplx_genpointer to the complex signal generator structure
+
+
+
Returns
function returns frequency of the signal generator
+ +

Definition at line 92 of file dsps_cplx_gen_init.c.

+
93{
+
94 // Check if the structure was initialized
+
95 if (!dsp_is_power_of_two(cplx_gen->lut_len)) {
+
96 ESP_LOGE(TAG, "cplx_gen strucure was not initialized");
+
97 return -2;
+
98 }
+
99
+
100 return (cplx_gen->freq);
+
101}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
static const char * TAG
Definition main/main.c:31
+
int32_t lut_len
+ +
+

References dsp_is_power_of_two(), cplx_sig_s::freq, cplx_sig_s::lut_len, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx_gen_freq_set()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx_gen_freq_set (cplx_sig_t * cplx_gen,
float freq )
+
+ +

function sets the output frequency of the complex generator

+

set function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + + +
cplx_genpointer to the complex signal generator structure
freqnew frequency to be set in a range of [-1..1] where 1 is a Nyquist frequency
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_INVALID_PARAM if the frequency is out of the Nyquist frequency range
  • +
+
+ +

Definition at line 81 of file dsps_cplx_gen_init.c.

+
82{
+
83 if ((freq >= 1) || (freq <= -1)) { // frequency is a Nyquist frequency, must be in a range from (-1 to 1)
+
84 ESP_LOGE(TAG, "The frequency is out of range. Valid range is +/- 1. ");
+ +
86 }
+
87
+
88 cplx_gen->freq = freq;
+
89 return ESP_OK;
+
90}
+
#define ESP_ERR_DSP_INVALID_PARAM
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_INVALID_PARAM, ESP_OK, cplx_sig_s::freq, and TAG.

+ +
+
+ +

◆ dsps_cplx_gen_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx_gen_init (cplx_sig_t * cplx_gen,
out_d_type d_type,
void * lut,
int32_t lut_len,
float freq,
float initial_phase )
+
+ +

Initialize strucure for complex generator.

+

Function initializes a structure for either 16-bit fixed point, or 32-bit floating point complex generator using LUT table. cplx_gen_free(...) must be called, once the generator is not needed anymore to free dynamically allocated memory

+

A user can specify his own LUT table and pass a pointer to the table (void *lut) during the initialization. If the LUT table pointer passed to the init function is a NULL, the LUT table is initialized internally.

+
Parameters
+ + + + + + + +
cplx_genpointer to the floating point generator structure
d_typeoutput data type - out_d_type enum
lutpointer to a user-defined LUT, the data type is void so both (S16_FIXED, F32_FLOAT) types could be used
lut_lenlength of the LUT
freqFrequency of the output signal in a range of [-1...1], where 1 is a Nyquist frequency
initial_phaseinitial phase of the complex signal in range of [-1..1] where 1 is related to 2Pi and -1 is related to -2Pi
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 18 of file dsps_cplx_gen_init.c.

+
19{
+
20 cplx_gen->lut_len = lut_len;
+
21 cplx_gen->freq = freq;
+
22 cplx_gen->lut = lut;
+
23 cplx_gen->free_status = 0;
+
24 cplx_gen->d_type = d_type;
+
25 cplx_gen->phase = initial_phase;
+
26
+
27 // length of the LUT must be power of 2
+
28 if (!dsp_is_power_of_two(lut_len)) {
+
29 ESP_LOGE(TAG, "The length of the LUT must be power of 2");
+ +
31 }
+
32
+
33 // LUT length must be in a range from 256 to 8192
+
34 if ((lut == NULL) && ((cplx_gen->lut_len > 8192) || (cplx_gen->lut_len < 256))) {
+
35 ESP_LOGE(TAG, "The length of the LUT table out of range. Valid range is 256 to 8192");
+ +
37 }
+
38
+
39 // frequency is a Nyquist frequency, must be in a range from (-1 to 1)
+
40 if ((cplx_gen->freq >= 1) || (cplx_gen->freq <= -1)) {
+
41 ESP_LOGE(TAG, "The frequency is out of range. Valid range is +/- 1. ");
+ +
43 }
+
44
+
45 // initial phase in a range from (-1 to 1)
+
46 if ((cplx_gen->phase >= 1) || (cplx_gen->phase <= -1)) {
+
47 ESP_LOGE(TAG, "The phase is out of range. Valid range is +/- 1. ");
+ +
49 }
+
50
+
51 // LUT table coefficients generation
+
52 if (lut == NULL) { // lut has not been provided by an user. Allocate and initialize it
+
53 cplx_gen->free_status |= 0x0001; // lut has been allocated, free_status indicates that the space must be freed afterwards
+
54
+
55 if (cplx_gen->d_type == S16_FIXED) { // Q15 fixed point
+
56 int16_t *local_lut = (int16_t *)malloc(cplx_gen->lut_len * sizeof(int16_t));
+
57
+
58 float term;
+
59 for (int i = 0 ; i < cplx_gen->lut_len; i++) {
+
60 term = (2.0 * M_PI) * ((float)(i) / (float)(cplx_gen->lut_len));
+
61 local_lut[i] = (int16_t)(sin(term) * Q15_MAX); // conversion to Q15 fixed point
+
62 }
+
63 cplx_gen->lut = (void *)local_lut;
+
64 } else if (cplx_gen->d_type == F32_FLOAT) { // Single precision floating point
+
65 float *local_lut = (float *)malloc(cplx_gen->lut_len * sizeof(float));
+
66
+
67 float term;
+
68 for (int i = 0 ; i < cplx_gen->lut_len; i++) {
+
69 term = (2.0 * M_PI) * ((float)(i) / (float)(cplx_gen->lut_len));
+
70 local_lut[i] = (float)sin(term);
+
71 }
+
72 cplx_gen->lut = (void *)local_lut;
+
73 } else {
+
74 cplx_gen->lut = NULL;
+ +
76 }
+
77 }
+
78 return ESP_OK;
+
79}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
@ F32_FLOAT
+
@ S16_FIXED
+
#define Q15_MAX
+
#define M_PI
Definition esp_err.h:26
+ +
out_d_type d_type
+
+

References cplx_sig_s::d_type, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_INVALID_PARAM, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, F32_FLOAT, cplx_sig_s::free_status, cplx_sig_s::freq, cplx_sig_s::lut, cplx_sig_s::lut_len, M_PI, cplx_sig_s::phase, Q15_MAX, S16_FIXED, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx_gen_phase_get()

+ +
+
+ + + + + + + +
float dsps_cplx_gen_phase_get (cplx_sig_t * cplx_gen)
+
+ +

function gets the phase of the complex generator

+

get function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + +
cplx_genpointer to the complex signal generator structure
+
+
+
Returns
function returns phase of the signal generator
+ +

Definition at line 114 of file dsps_cplx_gen_init.c.

+
115{
+
116 // Check if the structure was initialized
+
117 if (!dsp_is_power_of_two(cplx_gen->lut_len)) {
+
118 ESP_LOGE(TAG, "cplx_gen strucure was not initialized");
+
119 return -2;
+
120 }
+
121
+
122 return (cplx_gen->phase);
+
123}
+
+

References dsp_is_power_of_two(), cplx_sig_s::lut_len, cplx_sig_s::phase, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx_gen_phase_set()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx_gen_phase_set (cplx_sig_t * cplx_gen,
float phase )
+
+ +

function sets the phase of the complex generator

+

set function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + + +
cplx_genpointer to the complex signal generator structure
phasenew phase to be set in the range of [-1..1] where 1 is related to 2Pi and -1 is related to -2Pi
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_INVALID_PARAM if the phase is out of -1 ... 1 range
  • +
+
+ +

Definition at line 103 of file dsps_cplx_gen_init.c.

+
104{
+
105 if ((phase >= 1) || (phase <= -1)) { // initial phase in a range from (-1 to 1)
+
106 ESP_LOGE(TAG, "The phase is out of range. Valid range is +/- 1. ");
+ +
108 }
+
109
+
110 cplx_gen->phase = phase;
+
111 return ESP_OK;
+
112}
+
+

References ESP_ERR_DSP_INVALID_PARAM, ESP_OK, cplx_sig_s::phase, and TAG.

+ +
+
+ +

◆ dsps_cplx_gen_set()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx_gen_set (cplx_sig_t * cplx_gen,
float freq,
float phase )
+
+ +

function sets the output frequency and the phase of the complex generator

+

set function can be used after the cplx_gen structure was initialized by the dsps_cplx_gen_init(...) function

+
Parameters
+ + + + +
cplx_genpointer to the complex signal generator structure
freqnew frequency to be set in the range of [-1..1] where 1 is a Nyquist frequency
phasenew phase to be set in the range of [-1..1] where 1 is related to 2Pi and -1 is related to -2Pi
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_INVALID_PARAM if the frequency is out of the Nyquist frequency range if the phase is out of -1 ... 1 range
  • +
+
+ +

Definition at line 125 of file dsps_cplx_gen_init.c.

+
126{
+
127 if ((freq >= 1) || (freq <= -1)) { // frequency is a Nyquist frequency, must be in a range from (-1 to 1)
+
128 ESP_LOGE(TAG, "The frequency is out of range. Valid range is +/- 1. ");
+ +
130 }
+
131
+
132 if ((phase >= 1) || (phase <= -1)) { // phase in a range from (-1 to 1)
+
133 ESP_LOGE(TAG, "The phase is out of range. Valid range is +/- 1. ");
+ +
135 }
+
136
+
137 cplx_gen->phase = phase;
+
138 cplx_gen->freq = freq;
+
139 return ESP_OK;
+
140}
+
+

References ESP_ERR_DSP_INVALID_PARAM, ESP_OK, cplx_sig_s::freq, cplx_sig_s::phase, and TAG.

+ +
+
+

Variable Documentation

+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "dsps_cplx_gen"
+
+static
+
+ +

Definition at line 16 of file dsps_cplx_gen_init.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__cplx__gen__init_8c.js b/docs/html/dsps__cplx__gen__init_8c.js new file mode 100644 index 0000000..d0c5a77 --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c.js @@ -0,0 +1,12 @@ +var dsps__cplx__gen__init_8c = +[ + [ "Q15_MAX", "dsps__cplx__gen__init_8c.html#adabd7fb7c7917aed16729b365c3f900b", null ], + [ "cplx_gen_free", "dsps__cplx__gen__init_8c.html#a8d1fc1e0f4dd0e580e2f0a315f7a3959", null ], + [ "dsps_cplx_gen_freq_get", "dsps__cplx__gen__init_8c.html#a647829667361f9a6d8cf66f54d3d67ad", null ], + [ "dsps_cplx_gen_freq_set", "dsps__cplx__gen__init_8c.html#a044e19b38f57d556c5bb81c98a478da8", null ], + [ "dsps_cplx_gen_init", "dsps__cplx__gen__init_8c.html#a7a053e6a2a00914d14047fa18ea4b7e4", null ], + [ "dsps_cplx_gen_phase_get", "dsps__cplx__gen__init_8c.html#a80a5d652e0564a4df28109802c03d6e0", null ], + [ "dsps_cplx_gen_phase_set", "dsps__cplx__gen__init_8c.html#a0fe7a43e3cb4c373cd6a79dbf591ab4f", null ], + [ "dsps_cplx_gen_set", "dsps__cplx__gen__init_8c.html#a35374eb26d478277ce8844333d63167c", null ], + [ "TAG", "dsps__cplx__gen__init_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen__init_8c__incl.md5 b/docs/html/dsps__cplx__gen__init_8c__incl.md5 new file mode 100644 index 0000000..383be15 --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c__incl.md5 @@ -0,0 +1 @@ +bae9b1ecfd4650fe6ccc9ae40499a99a \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen__init_8c__incl.svg b/docs/html/dsps__cplx__gen__init_8c__incl.svg new file mode 100644 index 0000000..d160fda --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c__incl.svg @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_cplx_gen_init.c + + +Node1 + + +dsps_cplx_gen_init.c + + + + + +Node2 + + +dsps_cplx_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +esp_log.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +math.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +malloc.h + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_cplx_gen_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__init_8c__incl_org.svg b/docs/html/dsps__cplx__gen__init_8c__incl_org.svg new file mode 100644 index 0000000..996bed7 --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c__incl_org.svg @@ -0,0 +1,318 @@ + + + + + + +dsps_cplx_gen_init.c + + +Node1 + + +dsps_cplx_gen_init.c + + + + + +Node2 + + +dsps_cplx_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +esp_log.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +math.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +malloc.h + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_cplx_gen_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph.md5 b/docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph.md5 new file mode 100644 index 0000000..0ee223b --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph.md5 @@ -0,0 +1 @@ +a7b5d723733c4364f221cd1068b958f1 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph.svg b/docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph.svg new file mode 100644 index 0000000..df8f17c --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx_gen_freq_get + + +Node1 + + +dsps_cplx_gen_freq_get + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph_org.svg b/docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph_org.svg new file mode 100644 index 0000000..841e2a7 --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_a647829667361f9a6d8cf66f54d3d67ad_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx_gen_freq_get + + +Node1 + + +dsps_cplx_gen_freq_get + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 b/docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 new file mode 100644 index 0000000..4bdb887 --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.md5 @@ -0,0 +1 @@ +987ed6b167373151c651b35444b08943 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg b/docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg new file mode 100644 index 0000000..1d0da28 --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx_gen_init + + +Node1 + + +dsps_cplx_gen_init + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg b/docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg new file mode 100644 index 0000000..4f70f61 --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_a7a053e6a2a00914d14047fa18ea4b7e4_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx_gen_init + + +Node1 + + +dsps_cplx_gen_init + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph.md5 b/docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph.md5 new file mode 100644 index 0000000..56de51a --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph.md5 @@ -0,0 +1 @@ +20a1ffd5b7f0924a37633417e0f93792 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph.svg b/docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph.svg new file mode 100644 index 0000000..d00a097 --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx_gen_phase_get + + +Node1 + + +dsps_cplx_gen_phase_get + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph_org.svg b/docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph_org.svg new file mode 100644 index 0000000..6dfc5bb --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_a80a5d652e0564a4df28109802c03d6e0_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx_gen_phase_get + + +Node1 + + +dsps_cplx_gen_phase_get + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__init_8c_source.html b/docs/html/dsps__cplx__gen__init_8c_source.html new file mode 100644 index 0000000..691d3af --- /dev/null +++ b/docs/html/dsps__cplx__gen__init_8c_source.html @@ -0,0 +1,297 @@ + + + + + + + +ESP-IDF Firmware: dsps_cplx_gen_init.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_cplx_gen_init.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7
+
8#include "dsps_cplx_gen.h"
+
9#include "dsp_common.h"
+
10#include "esp_log.h"
+
11#include <math.h>
+
12#include <malloc.h>
+
13
+
14#define Q15_MAX INT16_MAX
+
15
+
16static const char *TAG = "dsps_cplx_gen";
+
17
+
+
18esp_err_t dsps_cplx_gen_init(cplx_sig_t *cplx_gen, out_d_type d_type, void *lut, int32_t lut_len, float freq, float initial_phase)
+
19{
+
20 cplx_gen->lut_len = lut_len;
+
21 cplx_gen->freq = freq;
+
22 cplx_gen->lut = lut;
+
23 cplx_gen->free_status = 0;
+
24 cplx_gen->d_type = d_type;
+
25 cplx_gen->phase = initial_phase;
+
26
+
27 // length of the LUT must be power of 2
+
28 if (!dsp_is_power_of_two(lut_len)) {
+
29 ESP_LOGE(TAG, "The length of the LUT must be power of 2");
+ +
31 }
+
32
+
33 // LUT length must be in a range from 256 to 8192
+
34 if ((lut == NULL) && ((cplx_gen->lut_len > 8192) || (cplx_gen->lut_len < 256))) {
+
35 ESP_LOGE(TAG, "The length of the LUT table out of range. Valid range is 256 to 8192");
+ +
37 }
+
38
+
39 // frequency is a Nyquist frequency, must be in a range from (-1 to 1)
+
40 if ((cplx_gen->freq >= 1) || (cplx_gen->freq <= -1)) {
+
41 ESP_LOGE(TAG, "The frequency is out of range. Valid range is +/- 1. ");
+ +
43 }
+
44
+
45 // initial phase in a range from (-1 to 1)
+
46 if ((cplx_gen->phase >= 1) || (cplx_gen->phase <= -1)) {
+
47 ESP_LOGE(TAG, "The phase is out of range. Valid range is +/- 1. ");
+ +
49 }
+
50
+
51 // LUT table coefficients generation
+
52 if (lut == NULL) { // lut has not been provided by an user. Allocate and initialize it
+
53 cplx_gen->free_status |= 0x0001; // lut has been allocated, free_status indicates that the space must be freed afterwards
+
54
+
55 if (cplx_gen->d_type == S16_FIXED) { // Q15 fixed point
+
56 int16_t *local_lut = (int16_t *)malloc(cplx_gen->lut_len * sizeof(int16_t));
+
57
+
58 float term;
+
59 for (int i = 0 ; i < cplx_gen->lut_len; i++) {
+
60 term = (2.0 * M_PI) * ((float)(i) / (float)(cplx_gen->lut_len));
+
61 local_lut[i] = (int16_t)(sin(term) * Q15_MAX); // conversion to Q15 fixed point
+
62 }
+
63 cplx_gen->lut = (void *)local_lut;
+
64 } else if (cplx_gen->d_type == F32_FLOAT) { // Single precision floating point
+
65 float *local_lut = (float *)malloc(cplx_gen->lut_len * sizeof(float));
+
66
+
67 float term;
+
68 for (int i = 0 ; i < cplx_gen->lut_len; i++) {
+
69 term = (2.0 * M_PI) * ((float)(i) / (float)(cplx_gen->lut_len));
+
70 local_lut[i] = (float)sin(term);
+
71 }
+
72 cplx_gen->lut = (void *)local_lut;
+
73 } else {
+
74 cplx_gen->lut = NULL;
+ +
76 }
+
77 }
+
78 return ESP_OK;
+
79}
+
+
80
+
+ +
82{
+
83 if ((freq >= 1) || (freq <= -1)) { // frequency is a Nyquist frequency, must be in a range from (-1 to 1)
+
84 ESP_LOGE(TAG, "The frequency is out of range. Valid range is +/- 1. ");
+ +
86 }
+
87
+
88 cplx_gen->freq = freq;
+
89 return ESP_OK;
+
90}
+
+
91
+
+ +
93{
+
94 // Check if the structure was initialized
+
95 if (!dsp_is_power_of_two(cplx_gen->lut_len)) {
+
96 ESP_LOGE(TAG, "cplx_gen strucure was not initialized");
+
97 return -2;
+
98 }
+
99
+
100 return (cplx_gen->freq);
+
101}
+
+
102
+
+ +
104{
+
105 if ((phase >= 1) || (phase <= -1)) { // initial phase in a range from (-1 to 1)
+
106 ESP_LOGE(TAG, "The phase is out of range. Valid range is +/- 1. ");
+ +
108 }
+
109
+
110 cplx_gen->phase = phase;
+
111 return ESP_OK;
+
112}
+
+
113
+
+ +
115{
+
116 // Check if the structure was initialized
+
117 if (!dsp_is_power_of_two(cplx_gen->lut_len)) {
+
118 ESP_LOGE(TAG, "cplx_gen strucure was not initialized");
+
119 return -2;
+
120 }
+
121
+
122 return (cplx_gen->phase);
+
123}
+
+
124
+
+
125esp_err_t dsps_cplx_gen_set(cplx_sig_t *cplx_gen, float freq, float phase)
+
126{
+
127 if ((freq >= 1) || (freq <= -1)) { // frequency is a Nyquist frequency, must be in a range from (-1 to 1)
+
128 ESP_LOGE(TAG, "The frequency is out of range. Valid range is +/- 1. ");
+ +
130 }
+
131
+
132 if ((phase >= 1) || (phase <= -1)) { // phase in a range from (-1 to 1)
+
133 ESP_LOGE(TAG, "The phase is out of range. Valid range is +/- 1. ");
+ +
135 }
+
136
+
137 cplx_gen->phase = phase;
+
138 cplx_gen->freq = freq;
+
139 return ESP_OK;
+
140}
+
+
141
+
+ +
143{
+
144 if (cplx_gen->free_status & 0x0001) {
+
145 free(cplx_gen->lut);
+
146 cplx_gen->free_status = 0;
+
147 }
+
148}
+
+ +
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
#define ESP_ERR_DSP_INVALID_PARAM
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_INVALID_LENGTH
+ +
struct cplx_sig_s cplx_sig_t
Data struct of the complex signal generator.
+
@ F32_FLOAT
+
@ S16_FIXED
+
enum output_data_type out_d_type
Ennum defining output data type of the complex generator.
+
esp_err_t dsps_cplx_gen_freq_set(cplx_sig_t *cplx_gen, float freq)
function sets the output frequency of the complex generator
+
esp_err_t dsps_cplx_gen_phase_set(cplx_sig_t *cplx_gen, float phase)
function sets the phase of the complex generator
+
esp_err_t dsps_cplx_gen_set(cplx_sig_t *cplx_gen, float freq, float phase)
function sets the output frequency and the phase of the complex generator
+
float dsps_cplx_gen_freq_get(cplx_sig_t *cplx_gen)
function gets the output frequency of the complex generator
+
esp_err_t dsps_cplx_gen_init(cplx_sig_t *cplx_gen, out_d_type d_type, void *lut, int32_t lut_len, float freq, float initial_phase)
Initialize strucure for complex generator.
+
float dsps_cplx_gen_phase_get(cplx_sig_t *cplx_gen)
function gets the phase of the complex generator
+
void cplx_gen_free(cplx_sig_t *cplx_gen)
function frees dynamically allocated memory, which was allocated in the init function
+
#define Q15_MAX
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+ +
static const char * TAG
Definition main/main.c:31
+
int32_t lut_len
+ +
out_d_type d_type
+
int16_t free_status
+ + +
+
+
+ + + + diff --git a/docs/html/dsps__cplx__gen__platform_8h.html b/docs/html/dsps__cplx__gen__platform_8h.html new file mode 100644 index 0000000..40a4b5c --- /dev/null +++ b/docs/html/dsps__cplx__gen__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_cplx_gen_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_cplx_gen_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_cplx_gen_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__cplx__gen__platform_8h__dep__incl.md5 b/docs/html/dsps__cplx__gen__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..ee854f7 --- /dev/null +++ b/docs/html/dsps__cplx__gen__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +b5c7c0a699b91697a8a336d981149f14 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen__platform_8h__dep__incl.svg b/docs/html/dsps__cplx__gen__platform_8h__dep__incl.svg new file mode 100644 index 0000000..430725d --- /dev/null +++ b/docs/html/dsps__cplx__gen__platform_8h__dep__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsps_cplx_gen_platform.h + + +Node1 + + +dsps_cplx_gen_platform.h + + + + + +Node2 + + +dsps_cplx_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_cplx_gen.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_cplx_gen_init.c + + + + + +Node2->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__platform_8h__dep__incl_org.svg b/docs/html/dsps__cplx__gen__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..8b45caf --- /dev/null +++ b/docs/html/dsps__cplx__gen__platform_8h__dep__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsps_cplx_gen_platform.h + + +Node1 + + +dsps_cplx_gen_platform.h + + + + + +Node2 + + +dsps_cplx_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_cplx_gen.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_cplx_gen_init.c + + + + + +Node2->Node4 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__platform_8h__incl.md5 b/docs/html/dsps__cplx__gen__platform_8h__incl.md5 new file mode 100644 index 0000000..1b5327f --- /dev/null +++ b/docs/html/dsps__cplx__gen__platform_8h__incl.md5 @@ -0,0 +1 @@ +6248d386e3e460a694b35bffbe5f76b8 \ No newline at end of file diff --git a/docs/html/dsps__cplx__gen__platform_8h__incl.svg b/docs/html/dsps__cplx__gen__platform_8h__incl.svg new file mode 100644 index 0000000..402a7f1 --- /dev/null +++ b/docs/html/dsps__cplx__gen__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx_gen_platform.h + + +Node1 + + +dsps_cplx_gen_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__platform_8h__incl_org.svg b/docs/html/dsps__cplx__gen__platform_8h__incl_org.svg new file mode 100644 index 0000000..959bf54 --- /dev/null +++ b/docs/html/dsps__cplx__gen__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx_gen_platform.h + + +Node1 + + +dsps_cplx_gen_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__cplx__gen__platform_8h_source.html b/docs/html/dsps__cplx__gen__platform_8h_source.html new file mode 100644 index 0000000..53325ba --- /dev/null +++ b/docs/html/dsps__cplx__gen__platform_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_cplx_gen_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_cplx_gen_platform.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#ifndef _dsps_cplx_gen_platform_H_
+
8#define _dsps_cplx_gen_platform_H_
+
9
+
10#include "sdkconfig.h"
+
11
+
12#ifdef __XTENSA__
+
13#include <xtensa/config/core-isa.h>
+
14#include <xtensa/config/core-matmap.h>
+
15
+
16
+
17#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
18
+
19#if CONFIG_IDF_TARGET_ESP32S3
+
20#define dsps_cplx_gen_aes3_enbled 1
+
21#define dsps_cplx_gen_ae32_enbled 0
+
22
+
23#elif CONFIG_IDF_TARGET_ESP32
+
24#define dsps_cplx_gen_ae32_enbled 1
+
25#define dsps_cplx_gen_aes3_enbled 0
+
26
+
27#endif // CONFIG_IDF_TARGET_ESP32S3 CONFIG_IDF_TARGET_ESP32
+
28#endif //
+
29#endif // __XTENSA__
+
30#endif // _dsps_cplx_gen_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__d__gen_8c.html b/docs/html/dsps__d__gen_8c.html new file mode 100644 index 0000000..7b7b91e --- /dev/null +++ b/docs/html/dsps__d__gen_8c.html @@ -0,0 +1,189 @@ + + + + + + + +ESP-IDF Firmware: dsps_d_gen.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_d_gen.c File Reference
+
+
+
#include "dsps_d_gen.h"
+
+Include dependency graph for dsps_d_gen.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_d_gen_f32 (float *output, int len, int pos)
 delta function
+

Function Documentation

+ +

◆ dsps_d_gen_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_d_gen_f32 (float * output,
int len,
int pos )
+
+ +

delta function

+

The function generate delta function. output[i]=0, if i=[0..N) output[i]=1, if i=pos, pos: [0..N-1) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
outputoutput array.
lenlength of the input signal
posdelta function position
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_d_gen.c.

+
18{
+
19 if (pos >= len) {
+ +
21 }
+
22 if (pos < 0) {
+ +
24 }
+
25 for (int i = 0 ; i < len ; i++) {
+
26 output[i] = 0;
+
27 }
+
28 output[pos] = 1;
+
29 return ESP_OK;
+
30}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__d__gen_8c.js b/docs/html/dsps__d__gen_8c.js new file mode 100644 index 0000000..88b9754 --- /dev/null +++ b/docs/html/dsps__d__gen_8c.js @@ -0,0 +1,4 @@ +var dsps__d__gen_8c = +[ + [ "dsps_d_gen_f32", "dsps__d__gen_8c.html#aa8c94c29b4d1c57fd3ade00fc269b522", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__d__gen_8c__incl.md5 b/docs/html/dsps__d__gen_8c__incl.md5 new file mode 100644 index 0000000..64c5a03 --- /dev/null +++ b/docs/html/dsps__d__gen_8c__incl.md5 @@ -0,0 +1 @@ +ead20d0456df9dc39e4043c6073d22ca \ No newline at end of file diff --git a/docs/html/dsps__d__gen_8c__incl.svg b/docs/html/dsps__d__gen_8c__incl.svg new file mode 100644 index 0000000..04bc089 --- /dev/null +++ b/docs/html/dsps__d__gen_8c__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_d_gen.c + + +Node1 + + +dsps_d_gen.c + + + + + +Node2 + + +dsps_d_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + + + + + + diff --git a/docs/html/dsps__d__gen_8c__incl_org.svg b/docs/html/dsps__d__gen_8c__incl_org.svg new file mode 100644 index 0000000..912f446 --- /dev/null +++ b/docs/html/dsps__d__gen_8c__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_d_gen.c + + +Node1 + + +dsps_d_gen.c + + + + + +Node2 + + +dsps_d_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + diff --git a/docs/html/dsps__d__gen_8c_source.html b/docs/html/dsps__d__gen_8c_source.html new file mode 100644 index 0000000..ab8ab38 --- /dev/null +++ b/docs/html/dsps__d__gen_8c_source.html @@ -0,0 +1,143 @@ + + + + + + + +ESP-IDF Firmware: dsps_d_gen.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_d_gen.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_d_gen.h"
+
16
+
+
17esp_err_t dsps_d_gen_f32(float *output, int len, int pos)
+
18{
+
19 if (pos >= len) {
+ +
21 }
+
22 if (pos < 0) {
+ +
24 }
+
25 for (int i = 0 ; i < len ; i++) {
+
26 output[i] = 0;
+
27 }
+
28 output[pos] = 1;
+
29 return ESP_OK;
+
30}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
esp_err_t dsps_d_gen_f32(float *output, int len, int pos)
delta function
Definition dsps_d_gen.c:17
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__d__gen_8h.html b/docs/html/dsps__d__gen_8h.html new file mode 100644 index 0000000..fdf0fef --- /dev/null +++ b/docs/html/dsps__d__gen_8h.html @@ -0,0 +1,194 @@ + + + + + + + +ESP-IDF Firmware: dsps_d_gen.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_d_gen.h File Reference
+
+
+
#include "dsp_err.h"
+
+Include dependency graph for dsps_d_gen.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_d_gen_f32 (float *output, int len, int pos)
 delta function
+

Function Documentation

+ +

◆ dsps_d_gen_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_d_gen_f32 (float * output,
int len,
int pos )
+
+ +

delta function

+

The function generate delta function. output[i]=0, if i=[0..N) output[i]=1, if i=pos, pos: [0..N-1) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
outputoutput array.
lenlength of the input signal
posdelta function position
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_d_gen.c.

+
18{
+
19 if (pos >= len) {
+ +
21 }
+
22 if (pos < 0) {
+ +
24 }
+
25 for (int i = 0 ; i < len ; i++) {
+
26 output[i] = 0;
+
27 }
+
28 output[pos] = 1;
+
29 return ESP_OK;
+
30}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__d__gen_8h.js b/docs/html/dsps__d__gen_8h.js new file mode 100644 index 0000000..66cb91b --- /dev/null +++ b/docs/html/dsps__d__gen_8h.js @@ -0,0 +1,4 @@ +var dsps__d__gen_8h = +[ + [ "dsps_d_gen_f32", "dsps__d__gen_8h.html#aa8c94c29b4d1c57fd3ade00fc269b522", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__d__gen_8h__dep__incl.md5 b/docs/html/dsps__d__gen_8h__dep__incl.md5 new file mode 100644 index 0000000..2d48d55 --- /dev/null +++ b/docs/html/dsps__d__gen_8h__dep__incl.md5 @@ -0,0 +1 @@ +3a1ea44adc56623ab6d7000c30d6b30f \ No newline at end of file diff --git a/docs/html/dsps__d__gen_8h__dep__incl.svg b/docs/html/dsps__d__gen_8h__dep__incl.svg new file mode 100644 index 0000000..cf601be --- /dev/null +++ b/docs/html/dsps__d__gen_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_d_gen.h + + +Node1 + + +dsps_d_gen.h + + + + + +Node2 + + +dsps_d_gen.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__d__gen_8h__dep__incl_org.svg b/docs/html/dsps__d__gen_8h__dep__incl_org.svg new file mode 100644 index 0000000..657b6ee --- /dev/null +++ b/docs/html/dsps__d__gen_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dsps_d_gen.h + + +Node1 + + +dsps_d_gen.h + + + + + +Node2 + + +dsps_d_gen.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + diff --git a/docs/html/dsps__d__gen_8h__incl.md5 b/docs/html/dsps__d__gen_8h__incl.md5 new file mode 100644 index 0000000..8fe7992 --- /dev/null +++ b/docs/html/dsps__d__gen_8h__incl.md5 @@ -0,0 +1 @@ +52003e4ef927a28db9146cd82acaa790 \ No newline at end of file diff --git a/docs/html/dsps__d__gen_8h__incl.svg b/docs/html/dsps__d__gen_8h__incl.svg new file mode 100644 index 0000000..7cb3824 --- /dev/null +++ b/docs/html/dsps__d__gen_8h__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_d_gen.h + + +Node1 + + +dsps_d_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__d__gen_8h__incl_org.svg b/docs/html/dsps__d__gen_8h__incl_org.svg new file mode 100644 index 0000000..6aa249c --- /dev/null +++ b/docs/html/dsps__d__gen_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_d_gen.h + + +Node1 + + +dsps_d_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__d__gen_8h_source.html b/docs/html/dsps__d__gen_8h_source.html new file mode 100644 index 0000000..0e0ad81 --- /dev/null +++ b/docs/html/dsps__d__gen_8h_source.html @@ -0,0 +1,140 @@ + + + + + + + +ESP-IDF Firmware: dsps_d_gen.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_d_gen.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_d_gen_H_
+
16#define _dsps_d_gen_H_
+
17#include "dsp_err.h"
+
18
+
19
+
20#ifdef __cplusplus
+
21extern "C"
+
22{
+
23#endif
+
24
+
41esp_err_t dsps_d_gen_f32(float *output, int len, int pos);
+
42
+
43#ifdef __cplusplus
+
44}
+
45#endif
+
46
+
47#endif // _dsps_d_gen_H_
+ +
esp_err_t dsps_d_gen_f32(float *output, int len, int pos)
delta function
Definition dsps_d_gen.c:17
+
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__dct_8h.html b/docs/html/dsps__dct_8h.html new file mode 100644 index 0000000..9752875 --- /dev/null +++ b/docs/html/dsps__dct_8h.html @@ -0,0 +1,635 @@ + + + + + + + +ESP-IDF Firmware: dsps_dct.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dct.h File Reference
+
+
+
#include "dsp_err.h"
+#include "sdkconfig.h"
+
+Include dependency graph for dsps_dct.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_dct_f32 (float *data, int N)
 DCT of radix 2, unscaled.
esp_err_t dsps_dctiv_f32 (float *data, int N)
 DCT of radix 2, type IV, unscaled.
esp_err_t dsps_dstiv_f32 (float *data, int N)
 DST of radix 2, type IV, unscaled.
esp_err_t dsps_dct_inv_f32 (float *data, int N)
 Inverce DCT of radix 2.
esp_err_t dsps_dct_f32_ref (float *data, int N, float *result)
 DCTs.
esp_err_t dsps_dct_inverce_f32_ref (float *data, int N, float *result)
+

Function Documentation

+ +

◆ dsps_dct_f32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_dct_f32 (float * data,
int N )
+
+ +

DCT of radix 2, unscaled.

+

Discrete Cosine Transform type II of radix 2, unscaled Function is FFT based The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + +
[in,out]datainput/output array with size of N*2. An elements located: Re[0],Re[1], , ... Re[N-1], any data... up to N*2 result of DCT will be stored to this array from 0...N-1. Size of data array must be N*2!!!
[in]NSize of DCT transform. Size of data array must be N*2!!!
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 47 of file dsps_dct_f32.c.

+
48{
+
49 esp_err_t ret = ESP_OK;
+
50 if (dsps_fft2r_initialized == 0) {
+ +
52 }
+
53
+
54 for (int i = 0; i < N / 2; i++) {
+
55 data[(N - 1 - i) * 2] = data[i * 2 + 1];
+
56 data[i * 2 + 1] = 0;
+
57 data[N + i * 2 + 1] = 0;
+
58 }
+
59
+
60 ret = dsps_fft2r_fc32(data, N);
+
61 if (ret != ESP_OK) {
+
62 return ret;
+
63 }
+
64
+
65 // // The follows code do the same as this one:
+
66 // //
+
67 // float factor = M_PI / (N * 2);
+
68 // ret = dsps_bit_rev_fc32(data, N);
+
69 // for (int i = 0; i < N; i++) {
+
70 // float temp = i * factor;
+
71 // data[i] = data[i*2] * cosf(temp) + data[i*2 + 1] * sinf(temp);
+
72 // }
+
73 int table_step = 2;
+
74 for (int i = 0; i < N; i++) {
+
75 float c = dsps_fft_w_table_fc32[i * 2 * table_step];
+
76 float s = dsps_fft_w_table_fc32[i * 2 * table_step + 1];
+
77 data[i * 2] = data[i * 2] * c;
+
78 data[i * 2 + 1] = data[i * 2 + 1] * s;
+
79 }
+
80 ret = dsps_bit_rev_fc32(data, N);
+
81 if (ret != ESP_OK) {
+
82 return ret;
+
83 }
+
84
+
85 for (int i = 0; i < N; i++) {
+
86 data[i] = data[i * 2] + data[i * 2 + 1];
+
87 }
+
88 return ESP_OK;
+
89}
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_fft2r_fc32
Definition dsps_fft2r.h:248
+
float * dsps_fft_w_table_fc32
+
uint8_t dsps_fft2r_initialized
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+

References data, dsps_bit_rev_fc32, dsps_fft2r_fc32, dsps_fft2r_initialized, dsps_fft_w_table_fc32, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and N.

+ +
+
+ +

◆ dsps_dct_f32_ref()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_dct_f32_ref (float * data,
int N,
float * result )
+
+ +

DCTs.

+

Direct DCT type II and Inverce DCT type III, unscaled These functions used as a reference for general purpose. These functions are not optimyzed! The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + +
[in]datainput/output array with size of N. An elements located: Re[0],Re[1], , ... Re[N-1]
[in]NSize of DCT transform. Size of data array must be N*2!!!
[out]resultoutput result array with size of N.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 21 of file dsps_dct_f32.c.

+
22{
+
23 float factor = M_PI / N;
+
24 for (size_t i = 0; i < N; i++) {
+
25 float sum = 0;
+
26 for (size_t j = 0; j < N; j++) {
+
27 sum += data[j] * cosf((j + 0.5) * i * factor);
+
28 }
+
29 result[i] = sum;
+
30 }
+
31 return ESP_OK;
+
32}
+
#define M_PI
Definition esp_err.h:26
+
+

References data, ESP_OK, M_PI, and N.

+ +
+
+ +

◆ dsps_dct_inv_f32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_dct_inv_f32 (float * data,
int N )
+
+ +

Inverce DCT of radix 2.

+

Inverce Discrete Cosine Transform type II of radix 2, unscaled Function is FFT based The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + +
[in,out]datainput/output array with size of N*2. An elements located: Re[0],Re[1], , ... Re[N-1], any data... up to N*2 result of DCT will be stored to this array from 0...N-1. Size of data array must be N*2!!!
[in]NSize of DCT transform. Size of data array must be N*2!!!
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 91 of file dsps_dct_f32.c.

+
92{
+
93 esp_err_t ret = ESP_OK;
+
94 if (dsps_fft2r_initialized == 0) {
+ +
96 }
+
97
+
98 float factor = M_PI / (N * 2);
+
99 data[0] *= 0.5;
+
100 for (int i = N - 1; i >= 0; i--) {
+
101 float temp = i * factor;
+
102 data[i * 2] = data[i] * cosf(temp);
+
103 data[i * 2 + 1] = data[i] * -sinf(temp);
+
104 }
+
105 ret = dsps_fft2r_fc32(data, N);
+
106 if (ret != ESP_OK) {
+
107 return ret;
+
108 }
+
109 ret = dsps_bit_rev_fc32(data, N);
+
110 if (ret != ESP_OK) {
+
111 return ret;
+
112 }
+
113 for (size_t i = 0; i < N / 2; i++) {
+
114 data[i * 2 + 1] = data[(N - 1 - i) * 2];
+
115 }
+
116
+
117 return ESP_OK;
+
118}
+
+

References data, dsps_bit_rev_fc32, dsps_fft2r_fc32, dsps_fft2r_initialized, ESP_ERR_DSP_REINITIALIZED, ESP_OK, M_PI, and N.

+ +
+
+ +

◆ dsps_dct_inverce_f32_ref()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_dct_inverce_f32_ref (float * data,
int N,
float * result )
+
+ +

Definition at line 34 of file dsps_dct_f32.c.

+
35{
+
36 float factor = M_PI / N;
+
37 for (size_t i = 0; i < N; i++) {
+
38 float sum = data[0] / 2;
+
39 for (size_t j = 0; j < N; j++) {
+
40 sum += data[j] * cosf(j * (i + 0.5) * factor);
+
41 }
+
42 result[i] = sum;
+
43 }
+
44 return ESP_OK;
+
45}
+
+

References data, ESP_OK, M_PI, and N.

+ +
+
+ +

◆ dsps_dctiv_f32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_dctiv_f32 (float * data,
int N )
+
+ +

DCT of radix 2, type IV, unscaled.

+

Discrete Cosine Transform type IV of radix 2, unscaled Function is FFT based The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + +
[in,out]datainput/output array with size of N. An elements located: Re[0],Re[1], , ... Re[N-1] result of DST will be stored to this array from 0...N-1. Size of data array must be N
[in]NSize of DCT transform. Size of data array must be N
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 21 of file dsps_dctiv_f32.c.

+
22{
+
23 if (dsps_fft2r_initialized == 0) {
+ +
25 }
+
26
+
27 float factor = M_PI / (ndct * 2);
+
28 float in1, in2, in3, in4;
+
29 for (int i = 0; i < ndct / 4; i++) {
+
30 in1 = data[i * 2 + 0];
+
31 in2 = data[i * 2 + 1];
+
32 in3 = data[ndct - i * 2 - 1];
+
33 in4 = data[ndct - i * 2 - 2];
+
34
+
35 data[i * 2 + 0] = (
+
36 in1 * cos(factor * (i * 2 + 0))
+
37 + in3 * cos(factor * ((ndct - i * 2)))
+
38 );
+
39
+
40 data[i * 2 + 1] = (
+
41 -in1 * sin(factor * (i * 2))
+
42 + in3 * sin(factor * ((ndct - i * 2)))
+
43 );
+
44
+
45 data[ndct - i * 2 + 0 - 2] = (
+
46 in2 * cos(factor * (i * 2 + 1 + 0.5) )
+
47 + in4 * cos(factor * ((ndct - i * 2 - 1) - 0.5) )
+
48 );
+
49
+
50 data[ndct - i * 2 + 1 - 2] = (
+
51 in2 * sin(factor * (i * 2 + 1))
+
52 + in4 * sin(-factor * ((ndct - i * 2 - 1)) )
+
53 );
+
54
+
55 }
+
56 esp_err_t error = ESP_OK;
+
57 error = dsps_fft2r_fc32(data, ndct / 2);
+
58 if (error != ESP_OK) {
+
59 return error;
+
60 }
+
61 error = dsps_bit_rev_fc32(data, ndct / 2);
+
62 if (error != ESP_OK) {
+
63 return error;
+
64 }
+
65
+
66 for (int i = 0; i < ndct / 4; i++) {
+
67 in1 = data[2 * i + 0];
+
68 in2 = data[2 * i + 1];
+
69
+
70 in3 = data[ndct - 2 * i - 2];
+
71 in4 = data[ndct - 2 * i - 1];
+
72
+
73 data[i * 2 + 0] = (
+
74 in1 * cos(factor * (0 + i * 2))
+
75 + in2 * sin(factor * (0 + i * 2))
+
76 );
+
77
+
78 data[ndct - i * 2 - 1] = (
+
79 in1 * cos(factor * (ndct - i * 2))
+
80 - in2 * sin(factor * (ndct - i * 2))
+
81 );
+
82
+
83 data[i * 2 + 1] = (
+
84 in3 * cos(factor * (2 + i * 2))
+
85 - in4 * sin(factor * (2 + i * 2))
+
86 );
+
87
+
88 data[ndct - i * 2 - 2] = (
+
89 in3 * cos(factor * (ndct - i * 2 - 2) )
+
90 + in4 * sin(factor * (ndct - i * 2 - 2) )
+
91 );
+
92 }
+
93 return ESP_OK;
+
94}
+
+

References data, dsps_bit_rev_fc32, dsps_fft2r_fc32, dsps_fft2r_initialized, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and M_PI.

+ +
+
+ +

◆ dsps_dstiv_f32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_dstiv_f32 (float * data,
int N )
+
+ +

DST of radix 2, type IV, unscaled.

+

Discrete Sine Transform type IV of radix 2, unscaled Function is FFT based The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + +
[in,out]datainput/output array with size of N*2. An elements located: Re[0],Re[1], , ... Re[N-1] result of DST will be stored to this array from 0...N-1. Size of data array must be N
[in]NSize of DST transform. Size of data array must be N
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 21 of file dsps_dstiv_f32.c.

+
22{
+
23 if (dsps_fft2r_initialized == 0) {
+ +
25 }
+
26
+
27 float in1, in2, in3, in4;
+
28 float factor = M_PI / (ndst);
+
29
+
30 for (int i = 0; i < ndst / 4; i++) {
+
31
+
32 in1 = data[2 * i + 0];
+
33 in2 = data[2 * i + 1];
+
34
+
35 in3 = data[ndst - 2 * i - 2];
+
36 in4 = data[ndst - 2 * i - 1];
+
37
+
38 data[i * 2 + 1] = (
+
39 in1 * cos(factor * (i + 0))
+
40 - in4 * sin(factor * ((ndst - i - 1)))
+
41 );
+
42
+
43 data[i * 2 + 0] = (
+
44 in1 * sin(factor * (i))
+
45 - in4 * cos(factor * ((ndst - i - 1)))
+
46 );
+
47
+
48 data[ndst - i * 2 - 2] = (
+
49 -in3 * cos(factor * (ndst - i - 1))
+
50 + in2 * sin(factor * (ndst - i - 1))
+
51 );
+
52
+
53 data[ndst - i * 2 - 1] = (
+
54 +in3 * sin(factor * (i + 1))
+
55 - in2 * cos(-factor * (i + 1))
+
56 );
+
57
+
58 }
+
59
+
60 esp_err_t error = ESP_OK;
+
61 error = dsps_fft2r_fc32(data, ndst / 2);
+
62 if (error != ESP_OK) {
+
63 return error;
+
64 }
+
65 error = dsps_bit_rev_fc32(data, ndst / 2);
+
66 if (error != ESP_OK) {
+
67 return error;
+
68 }
+
69
+
70 for (int i = 0; i < ndst / 4; i++) {
+
71 in1 = data[2 * i + 0];
+
72 in2 = data[2 * i + 1];
+
73
+
74 in3 = data[ndst - 2 * i - 2];
+
75 in4 = data[ndst - 2 * i - 1];
+
76
+
77 data[i * 2 + 0] = (
+
78 in1 * cos(factor * (0 + i))
+
79 + in2 * sin(factor * (0 + i))
+
80 );
+
81
+
82 data[ndst - i * 2 - 2 + 1] = (
+
83 -in1 * cos(factor * (ndst / 2 - i))
+
84 + in2 * sin(factor * (ndst / 2 - i))
+
85 );
+
86
+
87 data[i * 2 + 1] = (
+
88 -in3 * cos(factor * (1 + i))
+
89 + in4 * sin(factor * (1 + i))
+
90 );
+
91
+
92 data[ndst - i * 2 - 2 + 0] = (
+
93 +in3 * cos(factor * (ndst / 2 - i - 1))
+
94 + in4 * sin(factor * (ndst / 2 - i - 1))
+
95 );
+
96 }
+
97 return ESP_OK;
+
98}
+
+

References data, dsps_bit_rev_fc32, dsps_fft2r_fc32, dsps_fft2r_initialized, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and M_PI.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__dct_8h.js b/docs/html/dsps__dct_8h.js new file mode 100644 index 0000000..5db3871 --- /dev/null +++ b/docs/html/dsps__dct_8h.js @@ -0,0 +1,9 @@ +var dsps__dct_8h = +[ + [ "dsps_dct_f32", "dsps__dct_8h.html#a8dd860b62b20c82af9b3623a33a33f14", null ], + [ "dsps_dct_f32_ref", "dsps__dct_8h.html#a0c4903343751f59b0d3451d9cdf61971", null ], + [ "dsps_dct_inv_f32", "dsps__dct_8h.html#ab4b7ce487de6bbf83ebd1d4b32a79834", null ], + [ "dsps_dct_inverce_f32_ref", "dsps__dct_8h.html#af75556ca5c4b418d59e04009396e9c86", null ], + [ "dsps_dctiv_f32", "dsps__dct_8h.html#ace1f0cfaee35c8a4302cca840662da81", null ], + [ "dsps_dstiv_f32", "dsps__dct_8h.html#a454725041b757906f7132ae51729498b", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__dct_8h__dep__incl.md5 b/docs/html/dsps__dct_8h__dep__incl.md5 new file mode 100644 index 0000000..d668092 --- /dev/null +++ b/docs/html/dsps__dct_8h__dep__incl.md5 @@ -0,0 +1 @@ +5a22bdd088b51dd91c77e7fd15d687ba \ No newline at end of file diff --git a/docs/html/dsps__dct_8h__dep__incl.svg b/docs/html/dsps__dct_8h__dep__incl.svg new file mode 100644 index 0000000..ec624a0 --- /dev/null +++ b/docs/html/dsps__dct_8h__dep__incl.svg @@ -0,0 +1,770 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_dct.h + + +Node1 + + +dsps_dct.h + + + + + +Node2 + + +dsps_dct_f32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_dctiv_f32.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_dstiv_f32.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node5->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node5->Node12 + + + + + + + + +Node13 + + +3d_kalman_demo.cpp + + + + + +Node5->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node5->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node5->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node5->Node16 + + + + + + + + +Node17 + + +dsp_tests.h + + + + + +Node5->Node17 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node5->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node5->Node26 + + + + + + + + +Node28 + + +graphics_support.h + + + + + +Node5->Node28 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node5->Node30 + + + + + + + + +Node31 + + +init_display.c + + + + + +Node5->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node5->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node5->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node5->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node5->Node38 + + + + + + + + +Node18 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +dsps_fird_init_s16.c + + + + + +Node17->Node19 + + + + + + + + +Node20 + + +dsps_firmr_f32_ansi.c + + + + + +Node17->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_f32.c + + + + + +Node17->Node21 + + + + + + + + +Node22 + + +dsps_firmr_init_s16.c + + + + + +Node17->Node22 + + + + + + + + +Node23 + + +dsps_firmr_s16_ansi.c + + + + + +Node17->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + +Node29 + + +graphics_support.cpp + + + + + +Node28->Node29 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__dct_8h__dep__incl_org.svg b/docs/html/dsps__dct_8h__dep__incl_org.svg new file mode 100644 index 0000000..a92604c --- /dev/null +++ b/docs/html/dsps__dct_8h__dep__incl_org.svg @@ -0,0 +1,687 @@ + + + + + + +dsps_dct.h + + +Node1 + + +dsps_dct.h + + + + + +Node2 + + +dsps_dct_f32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_dctiv_f32.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_dstiv_f32.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node5->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node5->Node12 + + + + + + + + +Node13 + + +3d_kalman_demo.cpp + + + + + +Node5->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node5->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node5->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node5->Node16 + + + + + + + + +Node17 + + +dsp_tests.h + + + + + +Node5->Node17 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node5->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node5->Node26 + + + + + + + + +Node28 + + +graphics_support.h + + + + + +Node5->Node28 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node5->Node30 + + + + + + + + +Node31 + + +init_display.c + + + + + +Node5->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node5->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node5->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node5->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node5->Node38 + + + + + + + + +Node18 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +dsps_fird_init_s16.c + + + + + +Node17->Node19 + + + + + + + + +Node20 + + +dsps_firmr_f32_ansi.c + + + + + +Node17->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_f32.c + + + + + +Node17->Node21 + + + + + + + + +Node22 + + +dsps_firmr_init_s16.c + + + + + +Node17->Node22 + + + + + + + + +Node23 + + +dsps_firmr_s16_ansi.c + + + + + +Node17->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + +Node29 + + +graphics_support.cpp + + + + + +Node28->Node29 + + + + + + + + diff --git a/docs/html/dsps__dct_8h__incl.md5 b/docs/html/dsps__dct_8h__incl.md5 new file mode 100644 index 0000000..799cb02 --- /dev/null +++ b/docs/html/dsps__dct_8h__incl.md5 @@ -0,0 +1 @@ +f5e716a4f2f8a0b83bc64f06675a2f0d \ No newline at end of file diff --git a/docs/html/dsps__dct_8h__incl.svg b/docs/html/dsps__dct_8h__incl.svg new file mode 100644 index 0000000..649914b --- /dev/null +++ b/docs/html/dsps__dct_8h__incl.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +dsps_dct.h + + +Node1 + + +dsps_dct.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +sdkconfig.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__dct_8h__incl_org.svg b/docs/html/dsps__dct_8h__incl_org.svg new file mode 100644 index 0000000..c41dc75 --- /dev/null +++ b/docs/html/dsps__dct_8h__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +dsps_dct.h + + +Node1 + + +dsps_dct.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +sdkconfig.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__dct_8h_source.html b/docs/html/dsps__dct_8h_source.html new file mode 100644 index 0000000..b22d363 --- /dev/null +++ b/docs/html/dsps__dct_8h_source.html @@ -0,0 +1,159 @@ + + + + + + + +ESP-IDF Firmware: dsps_dct.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dct.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_dct_H_
+
16#define _dsps_dct_H_
+
17#include "dsp_err.h"
+
18#include "sdkconfig.h"
+
19
+
20#ifdef __cplusplus
+
21extern "C"
+
22{
+
23#endif
+
24
+
43esp_err_t dsps_dct_f32(float *data, int N);
+
45
+
46
+
65esp_err_t dsps_dctiv_f32(float *data, int N);
+
67
+
86esp_err_t dsps_dstiv_f32(float *data, int N);
+
88
+
107esp_err_t dsps_dct_inv_f32(float *data, int N);
+
108
+
110
+
128esp_err_t dsps_dct_f32_ref(float *data, int N, float *result);
+
129esp_err_t dsps_dct_inverce_f32_ref(float *data, int N, float *result);
+
131
+
132
+
133#ifdef __cplusplus
+
134}
+
135#endif
+
136
+
137#endif // _dsps_dct_H_
+ +
esp_err_t dsps_dct_f32_ref(float *data, int N, float *result)
DCTs.
+
esp_err_t dsps_dstiv_f32(float *data, int N)
DST of radix 2, type IV, unscaled.
+
esp_err_t dsps_dct_f32(float *data, int N)
DCT of radix 2, unscaled.
+
esp_err_t dsps_dct_inv_f32(float *data, int N)
Inverce DCT of radix 2.
+
esp_err_t dsps_dctiv_f32(float *data, int N)
DCT of radix 2, type IV, unscaled.
+
esp_err_t dsps_dct_inverce_f32_ref(float *data, int N, float *result)
+
int esp_err_t
Definition esp_err.h:21
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+
+
+ + + + diff --git a/docs/html/dsps__dct__f32_8c.html b/docs/html/dsps__dct__f32_8c.html new file mode 100644 index 0000000..8a6a2a2 --- /dev/null +++ b/docs/html/dsps__dct__f32_8c.html @@ -0,0 +1,393 @@ + + + + + + + +ESP-IDF Firmware: dsps_dct_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dct_f32.c File Reference
+
+
+
#include "dsp_common.h"
+#include <math.h>
+#include "dsps_dct.h"
+#include "dsps_fft2r.h"
+
+Include dependency graph for dsps_dct_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + +

+Functions

esp_err_t dsps_dct_f32_ref (float *data, int N, float *result)
 DCTs.
esp_err_t dsps_dct_inverce_f32_ref (float *data, int N, float *result)
esp_err_t dsps_dct_f32 (float *data, int N)
 DCT of radix 2, unscaled.
esp_err_t dsps_dct_inv_f32 (float *data, int N)
 Inverce DCT of radix 2.
+

Function Documentation

+ +

◆ dsps_dct_f32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_dct_f32 (float * data,
int N )
+
+ +

DCT of radix 2, unscaled.

+

Discrete Cosine Transform type II of radix 2, unscaled Function is FFT based The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + +
[in,out]datainput/output array with size of N*2. An elements located: Re[0],Re[1], , ... Re[N-1], any data... up to N*2 result of DCT will be stored to this array from 0...N-1. Size of data array must be N*2!!!
[in]NSize of DCT transform. Size of data array must be N*2!!!
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 47 of file dsps_dct_f32.c.

+
48{
+
49 esp_err_t ret = ESP_OK;
+
50 if (dsps_fft2r_initialized == 0) {
+ +
52 }
+
53
+
54 for (int i = 0; i < N / 2; i++) {
+
55 data[(N - 1 - i) * 2] = data[i * 2 + 1];
+
56 data[i * 2 + 1] = 0;
+
57 data[N + i * 2 + 1] = 0;
+
58 }
+
59
+
60 ret = dsps_fft2r_fc32(data, N);
+
61 if (ret != ESP_OK) {
+
62 return ret;
+
63 }
+
64
+
65 // // The follows code do the same as this one:
+
66 // //
+
67 // float factor = M_PI / (N * 2);
+
68 // ret = dsps_bit_rev_fc32(data, N);
+
69 // for (int i = 0; i < N; i++) {
+
70 // float temp = i * factor;
+
71 // data[i] = data[i*2] * cosf(temp) + data[i*2 + 1] * sinf(temp);
+
72 // }
+
73 int table_step = 2;
+
74 for (int i = 0; i < N; i++) {
+
75 float c = dsps_fft_w_table_fc32[i * 2 * table_step];
+
76 float s = dsps_fft_w_table_fc32[i * 2 * table_step + 1];
+
77 data[i * 2] = data[i * 2] * c;
+
78 data[i * 2 + 1] = data[i * 2 + 1] * s;
+
79 }
+
80 ret = dsps_bit_rev_fc32(data, N);
+
81 if (ret != ESP_OK) {
+
82 return ret;
+
83 }
+
84
+
85 for (int i = 0; i < N; i++) {
+
86 data[i] = data[i * 2] + data[i * 2 + 1];
+
87 }
+
88 return ESP_OK;
+
89}
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_fft2r_fc32
Definition dsps_fft2r.h:248
+
float * dsps_fft_w_table_fc32
+
uint8_t dsps_fft2r_initialized
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+

References data, dsps_bit_rev_fc32, dsps_fft2r_fc32, dsps_fft2r_initialized, dsps_fft_w_table_fc32, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and N.

+ +
+
+ +

◆ dsps_dct_f32_ref()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_dct_f32_ref (float * data,
int N,
float * result )
+
+ +

DCTs.

+

Direct DCT type II and Inverce DCT type III, unscaled These functions used as a reference for general purpose. These functions are not optimyzed! The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + +
[in]datainput/output array with size of N. An elements located: Re[0],Re[1], , ... Re[N-1]
[in]NSize of DCT transform. Size of data array must be N*2!!!
[out]resultoutput result array with size of N.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 21 of file dsps_dct_f32.c.

+
22{
+
23 float factor = M_PI / N;
+
24 for (size_t i = 0; i < N; i++) {
+
25 float sum = 0;
+
26 for (size_t j = 0; j < N; j++) {
+
27 sum += data[j] * cosf((j + 0.5) * i * factor);
+
28 }
+
29 result[i] = sum;
+
30 }
+
31 return ESP_OK;
+
32}
+
#define M_PI
Definition esp_err.h:26
+
+

References data, ESP_OK, M_PI, and N.

+ +
+
+ +

◆ dsps_dct_inv_f32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_dct_inv_f32 (float * data,
int N )
+
+ +

Inverce DCT of radix 2.

+

Inverce Discrete Cosine Transform type II of radix 2, unscaled Function is FFT based The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + +
[in,out]datainput/output array with size of N*2. An elements located: Re[0],Re[1], , ... Re[N-1], any data... up to N*2 result of DCT will be stored to this array from 0...N-1. Size of data array must be N*2!!!
[in]NSize of DCT transform. Size of data array must be N*2!!!
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 91 of file dsps_dct_f32.c.

+
92{
+
93 esp_err_t ret = ESP_OK;
+
94 if (dsps_fft2r_initialized == 0) {
+ +
96 }
+
97
+
98 float factor = M_PI / (N * 2);
+
99 data[0] *= 0.5;
+
100 for (int i = N - 1; i >= 0; i--) {
+
101 float temp = i * factor;
+
102 data[i * 2] = data[i] * cosf(temp);
+
103 data[i * 2 + 1] = data[i] * -sinf(temp);
+
104 }
+
105 ret = dsps_fft2r_fc32(data, N);
+
106 if (ret != ESP_OK) {
+
107 return ret;
+
108 }
+
109 ret = dsps_bit_rev_fc32(data, N);
+
110 if (ret != ESP_OK) {
+
111 return ret;
+
112 }
+
113 for (size_t i = 0; i < N / 2; i++) {
+
114 data[i * 2 + 1] = data[(N - 1 - i) * 2];
+
115 }
+
116
+
117 return ESP_OK;
+
118}
+
+

References data, dsps_bit_rev_fc32, dsps_fft2r_fc32, dsps_fft2r_initialized, ESP_ERR_DSP_REINITIALIZED, ESP_OK, M_PI, and N.

+ +
+
+ +

◆ dsps_dct_inverce_f32_ref()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_dct_inverce_f32_ref (float * data,
int N,
float * result )
+
+ +

Definition at line 34 of file dsps_dct_f32.c.

+
35{
+
36 float factor = M_PI / N;
+
37 for (size_t i = 0; i < N; i++) {
+
38 float sum = data[0] / 2;
+
39 for (size_t j = 0; j < N; j++) {
+
40 sum += data[j] * cosf(j * (i + 0.5) * factor);
+
41 }
+
42 result[i] = sum;
+
43 }
+
44 return ESP_OK;
+
45}
+
+

References data, ESP_OK, M_PI, and N.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__dct__f32_8c.js b/docs/html/dsps__dct__f32_8c.js new file mode 100644 index 0000000..8b3d078 --- /dev/null +++ b/docs/html/dsps__dct__f32_8c.js @@ -0,0 +1,7 @@ +var dsps__dct__f32_8c = +[ + [ "dsps_dct_f32", "dsps__dct__f32_8c.html#a8dd860b62b20c82af9b3623a33a33f14", null ], + [ "dsps_dct_f32_ref", "dsps__dct__f32_8c.html#a0c4903343751f59b0d3451d9cdf61971", null ], + [ "dsps_dct_inv_f32", "dsps__dct__f32_8c.html#ab4b7ce487de6bbf83ebd1d4b32a79834", null ], + [ "dsps_dct_inverce_f32_ref", "dsps__dct__f32_8c.html#af75556ca5c4b418d59e04009396e9c86", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__dct__f32_8c__incl.md5 b/docs/html/dsps__dct__f32_8c__incl.md5 new file mode 100644 index 0000000..12602fe --- /dev/null +++ b/docs/html/dsps__dct__f32_8c__incl.md5 @@ -0,0 +1 @@ +b7289ce81d6e744228eb3e39e83af838 \ No newline at end of file diff --git a/docs/html/dsps__dct__f32_8c__incl.svg b/docs/html/dsps__dct__f32_8c__incl.svg new file mode 100644 index 0000000..5898f87 --- /dev/null +++ b/docs/html/dsps__dct__f32_8c__incl.svg @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_dct_f32.c + + +Node1 + + +dsps_dct_f32.c + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +math.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_dct.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dsps_fft2r.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node5 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +dsps_fft_tables.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fft2r_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node16->Node13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__dct__f32_8c__incl_org.svg b/docs/html/dsps__dct__f32_8c__incl_org.svg new file mode 100644 index 0000000..bfaca6b --- /dev/null +++ b/docs/html/dsps__dct__f32_8c__incl_org.svg @@ -0,0 +1,318 @@ + + + + + + +dsps_dct_f32.c + + +Node1 + + +dsps_dct_f32.c + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +math.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_dct.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dsps_fft2r.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node5 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +dsps_fft_tables.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fft2r_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node16->Node13 + + + + + + + + diff --git a/docs/html/dsps__dct__f32_8c_source.html b/docs/html/dsps__dct__f32_8c_source.html new file mode 100644 index 0000000..9a5627d --- /dev/null +++ b/docs/html/dsps__dct__f32_8c_source.html @@ -0,0 +1,249 @@ + + + + + + + +ESP-IDF Firmware: dsps_dct_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dct_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsp_common.h"
+
16#include <math.h>
+
17
+
18#include "dsps_dct.h"
+
19#include "dsps_fft2r.h"
+
20
+
+
21esp_err_t dsps_dct_f32_ref(float *data, int N, float *result)
+
22{
+
23 float factor = M_PI / N;
+
24 for (size_t i = 0; i < N; i++) {
+
25 float sum = 0;
+
26 for (size_t j = 0; j < N; j++) {
+
27 sum += data[j] * cosf((j + 0.5) * i * factor);
+
28 }
+
29 result[i] = sum;
+
30 }
+
31 return ESP_OK;
+
32}
+
+
33
+
+
34esp_err_t dsps_dct_inverce_f32_ref(float *data, int N, float *result)
+
35{
+
36 float factor = M_PI / N;
+
37 for (size_t i = 0; i < N; i++) {
+
38 float sum = data[0] / 2;
+
39 for (size_t j = 0; j < N; j++) {
+
40 sum += data[j] * cosf(j * (i + 0.5) * factor);
+
41 }
+
42 result[i] = sum;
+
43 }
+
44 return ESP_OK;
+
45}
+
+
46
+
+ +
48{
+
49 esp_err_t ret = ESP_OK;
+
50 if (dsps_fft2r_initialized == 0) {
+ +
52 }
+
53
+
54 for (int i = 0; i < N / 2; i++) {
+
55 data[(N - 1 - i) * 2] = data[i * 2 + 1];
+
56 data[i * 2 + 1] = 0;
+
57 data[N + i * 2 + 1] = 0;
+
58 }
+
59
+
60 ret = dsps_fft2r_fc32(data, N);
+
61 if (ret != ESP_OK) {
+
62 return ret;
+
63 }
+
64
+
65 // // The follows code do the same as this one:
+
66 // //
+
67 // float factor = M_PI / (N * 2);
+
68 // ret = dsps_bit_rev_fc32(data, N);
+
69 // for (int i = 0; i < N; i++) {
+
70 // float temp = i * factor;
+
71 // data[i] = data[i*2] * cosf(temp) + data[i*2 + 1] * sinf(temp);
+
72 // }
+
73 int table_step = 2;
+
74 for (int i = 0; i < N; i++) {
+
75 float c = dsps_fft_w_table_fc32[i * 2 * table_step];
+
76 float s = dsps_fft_w_table_fc32[i * 2 * table_step + 1];
+
77 data[i * 2] = data[i * 2] * c;
+
78 data[i * 2 + 1] = data[i * 2 + 1] * s;
+
79 }
+
80 ret = dsps_bit_rev_fc32(data, N);
+
81 if (ret != ESP_OK) {
+
82 return ret;
+
83 }
+
84
+
85 for (int i = 0; i < N; i++) {
+
86 data[i] = data[i * 2] + data[i * 2 + 1];
+
87 }
+
88 return ESP_OK;
+
89}
+
+
90
+
+ +
92{
+
93 esp_err_t ret = ESP_OK;
+
94 if (dsps_fft2r_initialized == 0) {
+ +
96 }
+
97
+
98 float factor = M_PI / (N * 2);
+
99 data[0] *= 0.5;
+
100 for (int i = N - 1; i >= 0; i--) {
+
101 float temp = i * factor;
+
102 data[i * 2] = data[i] * cosf(temp);
+
103 data[i * 2 + 1] = data[i] * -sinf(temp);
+
104 }
+
105 ret = dsps_fft2r_fc32(data, N);
+
106 if (ret != ESP_OK) {
+
107 return ret;
+
108 }
+
109 ret = dsps_bit_rev_fc32(data, N);
+
110 if (ret != ESP_OK) {
+
111 return ret;
+
112 }
+
113 for (size_t i = 0; i < N / 2; i++) {
+
114 data[i * 2 + 1] = data[(N - 1 - i) * 2];
+
115 }
+
116
+
117 return ESP_OK;
+
118}
+
+ +
#define ESP_ERR_DSP_REINITIALIZED
+ +
esp_err_t dsps_dct_f32_ref(float *data, int N, float *result)
DCTs.
+
esp_err_t dsps_dct_f32(float *data, int N)
DCT of radix 2, unscaled.
+
esp_err_t dsps_dct_inv_f32(float *data, int N)
Inverce DCT of radix 2.
+
esp_err_t dsps_dct_inverce_f32_ref(float *data, int N, float *result)
+ +
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_fft2r_fc32
Definition dsps_fft2r.h:248
+
float * dsps_fft_w_table_fc32
+
uint8_t dsps_fft2r_initialized
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+
+
+ + + + diff --git a/docs/html/dsps__dctiv__f32_8c.html b/docs/html/dsps__dctiv__f32_8c.html new file mode 100644 index 0000000..e77b513 --- /dev/null +++ b/docs/html/dsps__dctiv__f32_8c.html @@ -0,0 +1,252 @@ + + + + + + + +ESP-IDF Firmware: dsps_dctiv_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dctiv_f32.c File Reference
+
+
+
#include "dsp_common.h"
+#include <math.h>
+#include "dsps_dct.h"
+#include "dsps_fft2r.h"
+
+Include dependency graph for dsps_dctiv_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_dctiv_f32 (float *data, int ndct)
 DCT of radix 2, type IV, unscaled.
+

Function Documentation

+ +

◆ dsps_dctiv_f32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_dctiv_f32 (float * data,
int N )
+
+ +

DCT of radix 2, type IV, unscaled.

+

Discrete Cosine Transform type IV of radix 2, unscaled Function is FFT based The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + +
[in,out]datainput/output array with size of N. An elements located: Re[0],Re[1], , ... Re[N-1] result of DST will be stored to this array from 0...N-1. Size of data array must be N
[in]NSize of DCT transform. Size of data array must be N
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 21 of file dsps_dctiv_f32.c.

+
22{
+
23 if (dsps_fft2r_initialized == 0) {
+ +
25 }
+
26
+
27 float factor = M_PI / (ndct * 2);
+
28 float in1, in2, in3, in4;
+
29 for (int i = 0; i < ndct / 4; i++) {
+
30 in1 = data[i * 2 + 0];
+
31 in2 = data[i * 2 + 1];
+
32 in3 = data[ndct - i * 2 - 1];
+
33 in4 = data[ndct - i * 2 - 2];
+
34
+
35 data[i * 2 + 0] = (
+
36 in1 * cos(factor * (i * 2 + 0))
+
37 + in3 * cos(factor * ((ndct - i * 2)))
+
38 );
+
39
+
40 data[i * 2 + 1] = (
+
41 -in1 * sin(factor * (i * 2))
+
42 + in3 * sin(factor * ((ndct - i * 2)))
+
43 );
+
44
+
45 data[ndct - i * 2 + 0 - 2] = (
+
46 in2 * cos(factor * (i * 2 + 1 + 0.5) )
+
47 + in4 * cos(factor * ((ndct - i * 2 - 1) - 0.5) )
+
48 );
+
49
+
50 data[ndct - i * 2 + 1 - 2] = (
+
51 in2 * sin(factor * (i * 2 + 1))
+
52 + in4 * sin(-factor * ((ndct - i * 2 - 1)) )
+
53 );
+
54
+
55 }
+
56 esp_err_t error = ESP_OK;
+
57 error = dsps_fft2r_fc32(data, ndct / 2);
+
58 if (error != ESP_OK) {
+
59 return error;
+
60 }
+
61 error = dsps_bit_rev_fc32(data, ndct / 2);
+
62 if (error != ESP_OK) {
+
63 return error;
+
64 }
+
65
+
66 for (int i = 0; i < ndct / 4; i++) {
+
67 in1 = data[2 * i + 0];
+
68 in2 = data[2 * i + 1];
+
69
+
70 in3 = data[ndct - 2 * i - 2];
+
71 in4 = data[ndct - 2 * i - 1];
+
72
+
73 data[i * 2 + 0] = (
+
74 in1 * cos(factor * (0 + i * 2))
+
75 + in2 * sin(factor * (0 + i * 2))
+
76 );
+
77
+
78 data[ndct - i * 2 - 1] = (
+
79 in1 * cos(factor * (ndct - i * 2))
+
80 - in2 * sin(factor * (ndct - i * 2))
+
81 );
+
82
+
83 data[i * 2 + 1] = (
+
84 in3 * cos(factor * (2 + i * 2))
+
85 - in4 * sin(factor * (2 + i * 2))
+
86 );
+
87
+
88 data[ndct - i * 2 - 2] = (
+
89 in3 * cos(factor * (ndct - i * 2 - 2) )
+
90 + in4 * sin(factor * (ndct - i * 2 - 2) )
+
91 );
+
92 }
+
93 return ESP_OK;
+
94}
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_fft2r_fc32
Definition dsps_fft2r.h:248
+
uint8_t dsps_fft2r_initialized
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References data, dsps_bit_rev_fc32, dsps_fft2r_fc32, dsps_fft2r_initialized, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and M_PI.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__dctiv__f32_8c.js b/docs/html/dsps__dctiv__f32_8c.js new file mode 100644 index 0000000..e12dbb3 --- /dev/null +++ b/docs/html/dsps__dctiv__f32_8c.js @@ -0,0 +1,4 @@ +var dsps__dctiv__f32_8c = +[ + [ "dsps_dctiv_f32", "dsps__dctiv__f32_8c.html#a33060e903d3c29b7d3fe359a3a756fa3", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__dctiv__f32_8c__incl.md5 b/docs/html/dsps__dctiv__f32_8c__incl.md5 new file mode 100644 index 0000000..3a2df1e --- /dev/null +++ b/docs/html/dsps__dctiv__f32_8c__incl.md5 @@ -0,0 +1 @@ +d7f91dcc9fd56ce93393fa9d612857f7 \ No newline at end of file diff --git a/docs/html/dsps__dctiv__f32_8c__incl.svg b/docs/html/dsps__dctiv__f32_8c__incl.svg new file mode 100644 index 0000000..29c6617 --- /dev/null +++ b/docs/html/dsps__dctiv__f32_8c__incl.svg @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_dctiv_f32.c + + +Node1 + + +dsps_dctiv_f32.c + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +math.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_dct.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dsps_fft2r.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node5 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +dsps_fft_tables.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fft2r_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node16->Node13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__dctiv__f32_8c__incl_org.svg b/docs/html/dsps__dctiv__f32_8c__incl_org.svg new file mode 100644 index 0000000..b3f58a3 --- /dev/null +++ b/docs/html/dsps__dctiv__f32_8c__incl_org.svg @@ -0,0 +1,318 @@ + + + + + + +dsps_dctiv_f32.c + + +Node1 + + +dsps_dctiv_f32.c + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +math.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_dct.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dsps_fft2r.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node5 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +dsps_fft_tables.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fft2r_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node16->Node13 + + + + + + + + diff --git a/docs/html/dsps__dctiv__f32_8c_source.html b/docs/html/dsps__dctiv__f32_8c_source.html new file mode 100644 index 0000000..040281d --- /dev/null +++ b/docs/html/dsps__dctiv__f32_8c_source.html @@ -0,0 +1,214 @@ + + + + + + + +ESP-IDF Firmware: dsps_dctiv_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dctiv_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsp_common.h"
+
16#include <math.h>
+
17
+
18#include "dsps_dct.h"
+
19#include "dsps_fft2r.h"
+
20
+
+
21esp_err_t dsps_dctiv_f32(float *data, int ndct)
+
22{
+
23 if (dsps_fft2r_initialized == 0) {
+ +
25 }
+
26
+
27 float factor = M_PI / (ndct * 2);
+
28 float in1, in2, in3, in4;
+
29 for (int i = 0; i < ndct / 4; i++) {
+
30 in1 = data[i * 2 + 0];
+
31 in2 = data[i * 2 + 1];
+
32 in3 = data[ndct - i * 2 - 1];
+
33 in4 = data[ndct - i * 2 - 2];
+
34
+
35 data[i * 2 + 0] = (
+
36 in1 * cos(factor * (i * 2 + 0))
+
37 + in3 * cos(factor * ((ndct - i * 2)))
+
38 );
+
39
+
40 data[i * 2 + 1] = (
+
41 -in1 * sin(factor * (i * 2))
+
42 + in3 * sin(factor * ((ndct - i * 2)))
+
43 );
+
44
+
45 data[ndct - i * 2 + 0 - 2] = (
+
46 in2 * cos(factor * (i * 2 + 1 + 0.5) )
+
47 + in4 * cos(factor * ((ndct - i * 2 - 1) - 0.5) )
+
48 );
+
49
+
50 data[ndct - i * 2 + 1 - 2] = (
+
51 in2 * sin(factor * (i * 2 + 1))
+
52 + in4 * sin(-factor * ((ndct - i * 2 - 1)) )
+
53 );
+
54
+
55 }
+
56 esp_err_t error = ESP_OK;
+
57 error = dsps_fft2r_fc32(data, ndct / 2);
+
58 if (error != ESP_OK) {
+
59 return error;
+
60 }
+
61 error = dsps_bit_rev_fc32(data, ndct / 2);
+
62 if (error != ESP_OK) {
+
63 return error;
+
64 }
+
65
+
66 for (int i = 0; i < ndct / 4; i++) {
+
67 in1 = data[2 * i + 0];
+
68 in2 = data[2 * i + 1];
+
69
+
70 in3 = data[ndct - 2 * i - 2];
+
71 in4 = data[ndct - 2 * i - 1];
+
72
+
73 data[i * 2 + 0] = (
+
74 in1 * cos(factor * (0 + i * 2))
+
75 + in2 * sin(factor * (0 + i * 2))
+
76 );
+
77
+
78 data[ndct - i * 2 - 1] = (
+
79 in1 * cos(factor * (ndct - i * 2))
+
80 - in2 * sin(factor * (ndct - i * 2))
+
81 );
+
82
+
83 data[i * 2 + 1] = (
+
84 in3 * cos(factor * (2 + i * 2))
+
85 - in4 * sin(factor * (2 + i * 2))
+
86 );
+
87
+
88 data[ndct - i * 2 - 2] = (
+
89 in3 * cos(factor * (ndct - i * 2 - 2) )
+
90 + in4 * sin(factor * (ndct - i * 2 - 2) )
+
91 );
+
92 }
+
93 return ESP_OK;
+
94}
+
+ +
#define ESP_ERR_DSP_REINITIALIZED
+ +
esp_err_t dsps_dctiv_f32(float *data, int ndct)
DCT of radix 2, type IV, unscaled.
+ +
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_fft2r_fc32
Definition dsps_fft2r.h:248
+
uint8_t dsps_fft2r_initialized
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/dsps__dotprod_8h.html b/docs/html/dsps__dotprod_8h.html new file mode 100644 index 0000000..8931a6a --- /dev/null +++ b/docs/html/dsps__dotprod_8h.html @@ -0,0 +1,655 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprod.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprod.h File Reference
+
+
+
#include "esp_log.h"
+#include "dsp_err.h"
+#include "dsps_dotprod_platform.h"
+
+Include dependency graph for dsps_dotprod.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Macros

#define dsps_dotprod_s16   dsps_dotprod_s16_ansi
#define dsps_dotprod_f32   dsps_dotprod_f32_ansi
#define dsps_dotprode_f32   dsps_dotprode_f32_ansi
+ + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_dotprod_s16_ansi (const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift)
 dot product of two 16 bit vectors Dot product calculation for two signed 16 bit arrays: *dest += (src1[i] * src2[i]) >> (15-shift); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
esp_err_t dsps_dotprod_s16_ae32 (const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift)
esp_err_t dsps_dotprod_s16_arp4 (const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift)
esp_err_t dsps_dotprod_f32_ansi (const float *src1, const float *src2, float *dest, int len)
 dot product of two float vectors Dot product calculation for two floating point arrays: *dest += (src1[i] * src2[i]); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
esp_err_t dsps_dotprod_f32_ae32 (const float *src1, const float *src2, float *dest, int len)
esp_err_t dsps_dotprod_f32_aes3 (const float *src1, const float *src2, float *dest, int len)
esp_err_t dsps_dotprod_f32_arp4 (const float *src1, const float *src2, float *dest, int len)
esp_err_t dsps_dotprode_f32_ansi (const float *src1, const float *src2, float *dest, int len, int step1, int step2)
 dot product of two float vectors with step Dot product calculation for two floating point arrays: *dest += (src1[i*step1] * src2[i*step2]); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
esp_err_t dsps_dotprode_f32_ae32 (const float *src1, const float *src2, float *dest, int len, int step1, int step2)
esp_err_t dsps_dotprode_f32_arp4 (const float *src1, const float *src2, float *dest, int len, int step1, int step2)
+

Macro Definition Documentation

+ +

◆ dsps_dotprod_f32

+ +
+
+ + + + +
#define dsps_dotprod_f32   dsps_dotprod_f32_ansi
+
+ +

Definition at line 124 of file dsps_dotprod.h.

+ +
+
+ +

◆ dsps_dotprod_s16

+ +
+
+ + + + +
#define dsps_dotprod_s16   dsps_dotprod_s16_ansi
+
+ +

Definition at line 123 of file dsps_dotprod.h.

+ +
+
+ +

◆ dsps_dotprode_f32

+ +
+
+ + + + +
#define dsps_dotprode_f32   dsps_dotprode_f32_ansi
+
+ +

Definition at line 125 of file dsps_dotprod.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_dotprod_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprod_f32_ae32 (const float * src1,
const float * src2,
float * dest,
int len )
+
+ +
+
+ +

◆ dsps_dotprod_f32_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprod_f32_aes3 (const float * src1,
const float * src2,
float * dest,
int len )
+
+ +
+
+ +

◆ dsps_dotprod_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprod_f32_ansi (const float * src1,
const float * src2,
float * dest,
int len )
+
+ +

dot product of two float vectors Dot product calculation for two floating point arrays: *dest += (src1[i] * src2[i]); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
[in]src1source array 1
[in]src2source array 2
destdestination pointer
[in]lenlength of input arrays
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_dotprod_f32_ansi.c.

+
18{
+
19 float acc = 0;
+
20 for (int i = 0 ; i < len ; i++) {
+
21 acc += src1[i] * src2[i];
+
22 }
+
23 *dest = acc;
+
24 return ESP_OK;
+
25}
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK.

+ +
+
+ +

◆ dsps_dotprod_f32_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprod_f32_arp4 (const float * src1,
const float * src2,
float * dest,
int len )
+
+ +
+
+ +

◆ dsps_dotprod_s16_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprod_s16_ae32 (const int16_t * src1,
const int16_t * src2,
int16_t * dest,
int len,
int8_t shift )
+
+ +
+
+ +

◆ dsps_dotprod_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprod_s16_ansi (const int16_t * src1,
const int16_t * src2,
int16_t * dest,
int len,
int8_t shift )
+
+ +

dot product of two 16 bit vectors Dot product calculation for two signed 16 bit arrays: *dest += (src1[i] * src2[i]) >> (15-shift); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + +
[in]src1source array 1
[in]src2source array 2
destdestination pointer
[in]lenlength of input arrays
[in]shiftshift of the result.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_dotprod_s16_ansi.c.

+
18{
+
19 // To make correct round operation we have to shift round value
+
20 long long acc = 0x7fff >> shift;
+
21
+
22 for (int i = 0 ; i < len ; i++) {
+
23 acc += (int32_t)src1[i] * (int32_t)src2[i];
+
24 }
+
25
+
26 int final_shift = shift - 15;
+
27 if (final_shift > 0) {
+
28 *dest = (acc << final_shift);
+
29 } else {
+
30 *dest = (acc >> (-final_shift));
+
31 }
+
32 return ESP_OK;
+
33}
+
+

References ESP_OK.

+ +
+
+ +

◆ dsps_dotprod_s16_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprod_s16_arp4 (const int16_t * src1,
const int16_t * src2,
int16_t * dest,
int len,
int8_t shift )
+
+ +
+
+ +

◆ dsps_dotprode_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprode_f32_ae32 (const float * src1,
const float * src2,
float * dest,
int len,
int step1,
int step2 )
+
+ +
+
+ +

◆ dsps_dotprode_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprode_f32_ansi (const float * src1,
const float * src2,
float * dest,
int len,
int step1,
int step2 )
+
+ +

dot product of two float vectors with step Dot product calculation for two floating point arrays: *dest += (src1[i*step1] * src2[i*step2]); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + +
[in]src1source array 1
[in]src2source array 2
destdestination pointer
[in]lenlength of input arrays
[in]step1step over elements in first array
[in]step2step over elements in second array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_dotprode_f32_ansi.c.

+
18{
+
19 float acc = 0;
+
20 for (int i = 0 ; i < len ; i++) {
+
21 acc += src1[i * step1] * src2[i * step2];
+
22 }
+
23 *dest = acc;
+
24 return ESP_OK;
+
25}
+
+

References ESP_OK.

+ +
+
+ +

◆ dsps_dotprode_f32_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprode_f32_arp4 (const float * src1,
const float * src2,
float * dest,
int len,
int step1,
int step2 )
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__dotprod_8h.js b/docs/html/dsps__dotprod_8h.js new file mode 100644 index 0000000..9ecf1a0 --- /dev/null +++ b/docs/html/dsps__dotprod_8h.js @@ -0,0 +1,16 @@ +var dsps__dotprod_8h = +[ + [ "dsps_dotprod_f32", "dsps__dotprod_8h.html#a16290fc23d0269619fb870c967f56428", null ], + [ "dsps_dotprod_s16", "dsps__dotprod_8h.html#a892ede846828ae9a1776177d56d98988", null ], + [ "dsps_dotprode_f32", "dsps__dotprod_8h.html#a1b1b6355d01b528fed29e45737309ecb", null ], + [ "dsps_dotprod_f32_ae32", "dsps__dotprod_8h.html#ad1b454e643d2244946871a2d966bcc71", null ], + [ "dsps_dotprod_f32_aes3", "dsps__dotprod_8h.html#a28828294f0aee8a346b06d04f37947f6", null ], + [ "dsps_dotprod_f32_ansi", "dsps__dotprod_8h.html#a2e73071c6ef125b2ac14d0ea13b1c52e", null ], + [ "dsps_dotprod_f32_arp4", "dsps__dotprod_8h.html#a019ccbefb25423e2671886cdaa9feb89", null ], + [ "dsps_dotprod_s16_ae32", "dsps__dotprod_8h.html#ac3c2d0012d2e707f53c5b32d43330058", null ], + [ "dsps_dotprod_s16_ansi", "dsps__dotprod_8h.html#a5a6faa1899ea49cade984589bfdac0b3", null ], + [ "dsps_dotprod_s16_arp4", "dsps__dotprod_8h.html#aa9e299df1495e96081d353842adb41f4", null ], + [ "dsps_dotprode_f32_ae32", "dsps__dotprod_8h.html#a38ec7d0198b9c85009b1a794a6418acb", null ], + [ "dsps_dotprode_f32_ansi", "dsps__dotprod_8h.html#ad4e4aa68cf3d6db1e8ed51f2bba0c043", null ], + [ "dsps_dotprode_f32_arp4", "dsps__dotprod_8h.html#afdf743dfa804faac198e889da388325e", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__dotprod_8h__dep__incl.md5 b/docs/html/dsps__dotprod_8h__dep__incl.md5 new file mode 100644 index 0000000..23f2654 --- /dev/null +++ b/docs/html/dsps__dotprod_8h__dep__incl.md5 @@ -0,0 +1 @@ +697edbc42b9f9c8f16265f4e8004ffa2 \ No newline at end of file diff --git a/docs/html/dsps__dotprod_8h__dep__incl.svg b/docs/html/dsps__dotprod_8h__dep__incl.svg new file mode 100644 index 0000000..1138ab7 --- /dev/null +++ b/docs/html/dsps__dotprod_8h__dep__incl.svg @@ -0,0 +1,806 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_dotprod.h + + +Node1 + + +dsps_dotprod.h + + + + + +Node2 + + +dspm_mult_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_mult_s16_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_dotprod_f32_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_dotprod_s16_ansi.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_dotprode_f32_ansi.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node7->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +3d_graphics_demo.cpp + + + + + +Node7->Node12 + + + + + + + + +Node13 + + +3d_graphics_demo.cpp + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +3d_kalman_demo.cpp + + + + + +Node7->Node14 + + + + + + + + +Node15 + + +3d_kalman_demo.cpp + + + + + +Node7->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node7->Node16 + + + + + + + + +Node17 + + +audio_amp_main.c + + + + + +Node7->Node17 + + + + + + + + +Node18 + + +audio_amp_main.c + + + + + +Node7->Node18 + + + + + + + + +Node19 + + +dsp_tests.h + + + + + +Node7->Node19 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node7->Node26 + + + + + + + + +Node28 + + +graphics_support.h + + + + + +Node7->Node28 + + + + + + + + +Node30 + + +graphics_support.h + + + + + +Node7->Node30 + + + + + + + + +Node32 + + +init_display.c + + + + + +Node7->Node32 + + + + + + + + +Node33 + + +init_display.c + + + + + +Node7->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node7->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +kalman_filter_demo.cpp + + + + + +Node7->Node36 + + + + + + + + +Node37 + + +kalman_filter_demo.cpp + + + + + +Node7->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +main.c + + + + + +Node7->Node39 + + + + + + + + +Node40 + + +main.c + + + + + +Node7->Node40 + + + + + + + + +Node20 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +dsps_fird_init_s16.c + + + + + +Node19->Node21 + + + + + + + + +Node22 + + +dsps_firmr_f32_ansi.c + + + + + +Node19->Node22 + + + + + + + + +Node23 + + +dsps_firmr_init_f32.c + + + + + +Node19->Node23 + + + + + + + + +Node24 + + +dsps_firmr_init_s16.c + + + + + +Node19->Node24 + + + + + + + + +Node25 + + +dsps_firmr_s16_ansi.c + + + + + +Node19->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + +Node29 + + +graphics_support.cpp + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +graphics_support.cpp + + + + + +Node30->Node31 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__dotprod_8h__dep__incl_org.svg b/docs/html/dsps__dotprod_8h__dep__incl_org.svg new file mode 100644 index 0000000..a35630f --- /dev/null +++ b/docs/html/dsps__dotprod_8h__dep__incl_org.svg @@ -0,0 +1,723 @@ + + + + + + +dsps_dotprod.h + + +Node1 + + +dsps_dotprod.h + + + + + +Node2 + + +dspm_mult_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_mult_s16_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_dotprod_f32_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_dotprod_s16_ansi.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_dotprode_f32_ansi.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node7->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +3d_graphics_demo.cpp + + + + + +Node7->Node12 + + + + + + + + +Node13 + + +3d_graphics_demo.cpp + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +3d_kalman_demo.cpp + + + + + +Node7->Node14 + + + + + + + + +Node15 + + +3d_kalman_demo.cpp + + + + + +Node7->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node7->Node16 + + + + + + + + +Node17 + + +audio_amp_main.c + + + + + +Node7->Node17 + + + + + + + + +Node18 + + +audio_amp_main.c + + + + + +Node7->Node18 + + + + + + + + +Node19 + + +dsp_tests.h + + + + + +Node7->Node19 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node7->Node26 + + + + + + + + +Node28 + + +graphics_support.h + + + + + +Node7->Node28 + + + + + + + + +Node30 + + +graphics_support.h + + + + + +Node7->Node30 + + + + + + + + +Node32 + + +init_display.c + + + + + +Node7->Node32 + + + + + + + + +Node33 + + +init_display.c + + + + + +Node7->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node7->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +kalman_filter_demo.cpp + + + + + +Node7->Node36 + + + + + + + + +Node37 + + +kalman_filter_demo.cpp + + + + + +Node7->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +main.c + + + + + +Node7->Node39 + + + + + + + + +Node40 + + +main.c + + + + + +Node7->Node40 + + + + + + + + +Node20 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +dsps_fird_init_s16.c + + + + + +Node19->Node21 + + + + + + + + +Node22 + + +dsps_firmr_f32_ansi.c + + + + + +Node19->Node22 + + + + + + + + +Node23 + + +dsps_firmr_init_f32.c + + + + + +Node19->Node23 + + + + + + + + +Node24 + + +dsps_firmr_init_s16.c + + + + + +Node19->Node24 + + + + + + + + +Node25 + + +dsps_firmr_s16_ansi.c + + + + + +Node19->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + +Node29 + + +graphics_support.cpp + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +graphics_support.cpp + + + + + +Node30->Node31 + + + + + + + + diff --git a/docs/html/dsps__dotprod_8h__incl.md5 b/docs/html/dsps__dotprod_8h__incl.md5 new file mode 100644 index 0000000..95034ba --- /dev/null +++ b/docs/html/dsps__dotprod_8h__incl.md5 @@ -0,0 +1 @@ +91d56cb4f5a4677b231a4825ce37cea2 \ No newline at end of file diff --git a/docs/html/dsps__dotprod_8h__incl.svg b/docs/html/dsps__dotprod_8h__incl.svg new file mode 100644 index 0000000..afef770 --- /dev/null +++ b/docs/html/dsps__dotprod_8h__incl.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + +dsps_dotprod.h + + +Node1 + + +dsps_dotprod.h + + + + + +Node2 + + +esp_log.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsp_err.h + + + + + +Node1->Node4 + + + + + + + + +Node8 + + +dsps_dotprod_platform.h + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +stdlib.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node4->Node7 + + + + + + + + +Node6->Node3 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__dotprod_8h__incl_org.svg b/docs/html/dsps__dotprod_8h__incl_org.svg new file mode 100644 index 0000000..5b8fcde --- /dev/null +++ b/docs/html/dsps__dotprod_8h__incl_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsps_dotprod.h + + +Node1 + + +dsps_dotprod.h + + + + + +Node2 + + +esp_log.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsp_err.h + + + + + +Node1->Node4 + + + + + + + + +Node8 + + +dsps_dotprod_platform.h + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +stdlib.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node4->Node7 + + + + + + + + +Node6->Node3 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__dotprod_8h_source.html b/docs/html/dsps__dotprod_8h_source.html new file mode 100644 index 0000000..4d1504e --- /dev/null +++ b/docs/html/dsps__dotprod_8h_source.html @@ -0,0 +1,197 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprod.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprod.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _DSPI_DOTPROD_H_
+
16#define _DSPI_DOTPROD_H_
+
17
+
18#include "esp_log.h"
+
19#include "dsp_err.h"
+
20
+ +
22
+
23#ifdef __cplusplus
+
24extern "C"
+
25{
+
26#endif
+
27// These functions calculates dotproduct of two vectors.
+
28
+
45esp_err_t dsps_dotprod_s16_ansi(const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift);
+
46esp_err_t dsps_dotprod_s16_ae32(const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift);
+
47esp_err_t dsps_dotprod_s16_arp4(const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift);
+
49
+
50
+
66esp_err_t dsps_dotprod_f32_ansi(const float *src1, const float *src2, float *dest, int len);
+
67esp_err_t dsps_dotprod_f32_ae32(const float *src1, const float *src2, float *dest, int len);
+
68esp_err_t dsps_dotprod_f32_aes3(const float *src1, const float *src2, float *dest, int len);
+
69esp_err_t dsps_dotprod_f32_arp4(const float *src1, const float *src2, float *dest, int len);
+
71
+
89esp_err_t dsps_dotprode_f32_ansi(const float *src1, const float *src2, float *dest, int len, int step1, int step2);
+
90esp_err_t dsps_dotprode_f32_ae32(const float *src1, const float *src2, float *dest, int len, int step1, int step2);
+
91esp_err_t dsps_dotprode_f32_arp4(const float *src1, const float *src2, float *dest, int len, int step1, int step2);
+
93
+
94#ifdef __cplusplus
+
95}
+
96#endif
+
97
+
98#if CONFIG_DSP_OPTIMIZED
+
99
+
100#if (dsps_dotprod_s16_ae32_enabled == 1)
+
101#define dsps_dotprod_s16 dsps_dotprod_s16_ae32
+
102#elif (dsps_dotprod_s16_arp4_enabled == 1)
+
103#define dsps_dotprod_s16 dsps_dotprod_s16_arp4
+
104#else
+
105#define dsps_dotprod_s16 dsps_dotprod_s16_ansi
+
106#endif // dsps_dotprod_s16_ae32_enabled
+
107
+
108#if (dsps_dotprod_f32_aes3_enabled == 1)
+
109#define dsps_dotprod_f32 dsps_dotprod_f32_aes3
+
110#define dsps_dotprode_f32 dsps_dotprode_f32_ae32
+
111#elif (dsps_dotprod_f32_arp4_enabled == 1)
+
112#define dsps_dotprod_f32 dsps_dotprod_f32_arp4
+
113#define dsps_dotprode_f32 dsps_dotprode_f32_arp4
+
114#elif (dotprod_f32_ae32_enabled == 1)
+
115#define dsps_dotprod_f32 dsps_dotprod_f32_ae32
+
116#define dsps_dotprode_f32 dsps_dotprode_f32_ae32
+
117#else
+
118#define dsps_dotprod_f32 dsps_dotprod_f32_ansi
+
119#define dsps_dotprode_f32 dsps_dotprode_f32_ansi
+
120#endif // dsps_dotprod_f32_ae32_enabled
+
121
+
122#else // CONFIG_DSP_OPTIMIZED
+
123#define dsps_dotprod_s16 dsps_dotprod_s16_ansi
+
124#define dsps_dotprod_f32 dsps_dotprod_f32_ansi
+
125#define dsps_dotprode_f32 dsps_dotprode_f32_ansi
+
126#endif // CONFIG_DSP_OPTIMIZED
+
127
+
128#endif // _DSPI_DOTPROD_H_
+ +
esp_err_t dsps_dotprod_f32_arp4(const float *src1, const float *src2, float *dest, int len)
+
esp_err_t dsps_dotprod_f32_aes3(const float *src1, const float *src2, float *dest, int len)
+
esp_err_t dsps_dotprod_f32_ansi(const float *src1, const float *src2, float *dest, int len)
dot product of two float vectors Dot product calculation for two floating point arrays: *dest += (src...
+
esp_err_t dsps_dotprode_f32_ae32(const float *src1, const float *src2, float *dest, int len, int step1, int step2)
+
esp_err_t dsps_dotprod_s16_ansi(const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift)
dot product of two 16 bit vectors Dot product calculation for two signed 16 bit arrays: *dest += (src...
+
esp_err_t dsps_dotprod_s16_arp4(const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift)
+
esp_err_t dsps_dotprod_s16_ae32(const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift)
+
esp_err_t dsps_dotprod_f32_ae32(const float *src1, const float *src2, float *dest, int len)
+
esp_err_t dsps_dotprode_f32_ansi(const float *src1, const float *src2, float *dest, int len, int step1, int step2)
dot product of two float vectors with step Dot product calculation for two floating point arrays: *de...
+
esp_err_t dsps_dotprode_f32_arp4(const float *src1, const float *src2, float *dest, int len, int step1, int step2)
+ +
int esp_err_t
Definition esp_err.h:21
+ +
+
+
+ + + + diff --git a/docs/html/dsps__dotprod__f32__ansi_8c.html b/docs/html/dsps__dotprod__f32__ansi_8c.html new file mode 100644 index 0000000..8638bc3 --- /dev/null +++ b/docs/html/dsps__dotprod__f32__ansi_8c.html @@ -0,0 +1,188 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprod_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprod_f32_ansi.c File Reference
+
+
+
#include "dsps_dotprod.h"
+
+Include dependency graph for dsps_dotprod_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_dotprod_f32_ansi (const float *src1, const float *src2, float *dest, int len)
 dot product of two float vectors Dot product calculation for two floating point arrays: *dest += (src1[i] * src2[i]); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
+

Function Documentation

+ +

◆ dsps_dotprod_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprod_f32_ansi (const float * src1,
const float * src2,
float * dest,
int len )
+
+ +

dot product of two float vectors Dot product calculation for two floating point arrays: *dest += (src1[i] * src2[i]); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
[in]src1source array 1
[in]src2source array 2
destdestination pointer
[in]lenlength of input arrays
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_dotprod_f32_ansi.c.

+
18{
+
19 float acc = 0;
+
20 for (int i = 0 ; i < len ; i++) {
+
21 acc += src1[i] * src2[i];
+
22 }
+
23 *dest = acc;
+
24 return ESP_OK;
+
25}
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__dotprod__f32__ansi_8c.js b/docs/html/dsps__dotprod__f32__ansi_8c.js new file mode 100644 index 0000000..a712bf3 --- /dev/null +++ b/docs/html/dsps__dotprod__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__dotprod__f32__ansi_8c = +[ + [ "dsps_dotprod_f32_ansi", "dsps__dotprod__f32__ansi_8c.html#a2e73071c6ef125b2ac14d0ea13b1c52e", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__dotprod__f32__ansi_8c__incl.md5 b/docs/html/dsps__dotprod__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..8025acd --- /dev/null +++ b/docs/html/dsps__dotprod__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +1f53eaa2043fe9a3993325883720317d \ No newline at end of file diff --git a/docs/html/dsps__dotprod__f32__ansi_8c__incl.svg b/docs/html/dsps__dotprod__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..01b1bb4 --- /dev/null +++ b/docs/html/dsps__dotprod__f32__ansi_8c__incl.svg @@ -0,0 +1,218 @@ + + + + + + + + + + + + +dsps_dotprod_f32_ansi.c + + +Node1 + + +dsps_dotprod_f32_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + + + + + + diff --git a/docs/html/dsps__dotprod__f32__ansi_8c__incl_org.svg b/docs/html/dsps__dotprod__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..f039427 --- /dev/null +++ b/docs/html/dsps__dotprod__f32__ansi_8c__incl_org.svg @@ -0,0 +1,192 @@ + + + + + + +dsps_dotprod_f32_ansi.c + + +Node1 + + +dsps_dotprod_f32_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + diff --git a/docs/html/dsps__dotprod__f32__ansi_8c_source.html b/docs/html/dsps__dotprod__f32__ansi_8c_source.html new file mode 100644 index 0000000..4dead56 --- /dev/null +++ b/docs/html/dsps__dotprod__f32__ansi_8c_source.html @@ -0,0 +1,137 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprod_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprod_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_dotprod.h"
+
16
+
+
17esp_err_t dsps_dotprod_f32_ansi(const float *src1, const float *src2, float *dest, int len)
+
18{
+
19 float acc = 0;
+
20 for (int i = 0 ; i < len ; i++) {
+
21 acc += src1[i] * src2[i];
+
22 }
+
23 *dest = acc;
+
24 return ESP_OK;
+
25}
+
+ +
esp_err_t dsps_dotprod_f32_ansi(const float *src1, const float *src2, float *dest, int len)
dot product of two float vectors Dot product calculation for two floating point arrays: *dest += (src...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__dotprod__platform_8h.html b/docs/html/dsps__dotprod__platform_8h.html new file mode 100644 index 0000000..94572d9 --- /dev/null +++ b/docs/html/dsps__dotprod__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprod_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprod_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_dotprod_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__dotprod__platform_8h__dep__incl.md5 b/docs/html/dsps__dotprod__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..6107cda --- /dev/null +++ b/docs/html/dsps__dotprod__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +1d07bc19060e214a7261ee578ccac96a \ No newline at end of file diff --git a/docs/html/dsps__dotprod__platform_8h__dep__incl.svg b/docs/html/dsps__dotprod__platform_8h__dep__incl.svg new file mode 100644 index 0000000..981721a --- /dev/null +++ b/docs/html/dsps__dotprod__platform_8h__dep__incl.svg @@ -0,0 +1,662 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_dotprod_platform.h + + +Node1 + + +dsps_dotprod_platform.h + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_mult_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm_mult_s16_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_dotprod_f32_ansi.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_dotprod_s16_ansi.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_dotprode_f32_ansi.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +esp_dsp.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node8->Node11 + + + + + + + + +Node12 + + +3d_graphics_demo.cpp + + + + + +Node8->Node12 + + + + + + + + +Node13 + + +3d_graphics_demo.cpp + + + + + +Node8->Node13 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +3d_kalman_demo.cpp + + + + + +Node8->Node15 + + + + + + + + +Node16 + + +3d_kalman_demo.cpp + + + + + +Node8->Node16 + + + + + + + + +Node17 + + +audio_amp_main.c + + + + + +Node8->Node17 + + + + + + + + +Node18 + + +audio_amp_main.c + + + + + +Node8->Node18 + + + + + + + + +Node19 + + +audio_amp_main.c + + + + + +Node8->Node19 + + + + + + + + +Node20 + + +dsp_tests.h + + + + + +Node8->Node20 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node8->Node27 + + + + + + + + +Node29 + + +graphics_support.h + + + + + +Node8->Node29 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node8->Node31 + + + + + + + + +Node33 + + +init_display.c + + + + + +Node8->Node33 + + + + + + + + +Node34 + + +init_display.c + + + + + +Node8->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node8->Node35 + + + + + + + + +Node36 + + +kalman_filter_demo.cpp + + + + + +Node8->Node36 + + + + + + + + +Node37 + + +kalman_filter_demo.cpp + + + + + +Node8->Node37 + + + + + + + + +Node38 + + +kalman_filter_demo.cpp + + + + + +Node8->Node38 + + + + + + + + +Node39 + + +main.c + + + + + +Node8->Node39 + + + + + + + + +Node40 + + +main.c + + + + + +Node8->Node40 + + + + + + + + +Node41 + + +main.c + + + + + +Node8->Node41 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__dotprod__platform_8h__dep__incl_org.svg b/docs/html/dsps__dotprod__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..8261027 --- /dev/null +++ b/docs/html/dsps__dotprod__platform_8h__dep__incl_org.svg @@ -0,0 +1,579 @@ + + + + + + +dsps_dotprod_platform.h + + +Node1 + + +dsps_dotprod_platform.h + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm_mult_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm_mult_s16_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_dotprod_f32_ansi.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_dotprod_s16_ansi.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_dotprode_f32_ansi.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +esp_dsp.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node8->Node11 + + + + + + + + +Node12 + + +3d_graphics_demo.cpp + + + + + +Node8->Node12 + + + + + + + + +Node13 + + +3d_graphics_demo.cpp + + + + + +Node8->Node13 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +3d_kalman_demo.cpp + + + + + +Node8->Node15 + + + + + + + + +Node16 + + +3d_kalman_demo.cpp + + + + + +Node8->Node16 + + + + + + + + +Node17 + + +audio_amp_main.c + + + + + +Node8->Node17 + + + + + + + + +Node18 + + +audio_amp_main.c + + + + + +Node8->Node18 + + + + + + + + +Node19 + + +audio_amp_main.c + + + + + +Node8->Node19 + + + + + + + + +Node20 + + +dsp_tests.h + + + + + +Node8->Node20 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node8->Node27 + + + + + + + + +Node29 + + +graphics_support.h + + + + + +Node8->Node29 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node8->Node31 + + + + + + + + +Node33 + + +init_display.c + + + + + +Node8->Node33 + + + + + + + + +Node34 + + +init_display.c + + + + + +Node8->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node8->Node35 + + + + + + + + +Node36 + + +kalman_filter_demo.cpp + + + + + +Node8->Node36 + + + + + + + + +Node37 + + +kalman_filter_demo.cpp + + + + + +Node8->Node37 + + + + + + + + +Node38 + + +kalman_filter_demo.cpp + + + + + +Node8->Node38 + + + + + + + + +Node39 + + +main.c + + + + + +Node8->Node39 + + + + + + + + +Node40 + + +main.c + + + + + +Node8->Node40 + + + + + + + + +Node41 + + +main.c + + + + + +Node8->Node41 + + + + + + + + diff --git a/docs/html/dsps__dotprod__platform_8h__incl.md5 b/docs/html/dsps__dotprod__platform_8h__incl.md5 new file mode 100644 index 0000000..b3602cc --- /dev/null +++ b/docs/html/dsps__dotprod__platform_8h__incl.md5 @@ -0,0 +1 @@ +c7ee56fb2a97c25da1ab0e3ddd062d94 \ No newline at end of file diff --git a/docs/html/dsps__dotprod__platform_8h__incl.svg b/docs/html/dsps__dotprod__platform_8h__incl.svg new file mode 100644 index 0000000..ce69392 --- /dev/null +++ b/docs/html/dsps__dotprod__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_dotprod_platform.h + + +Node1 + + +dsps_dotprod_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__dotprod__platform_8h__incl_org.svg b/docs/html/dsps__dotprod__platform_8h__incl_org.svg new file mode 100644 index 0000000..7519759 --- /dev/null +++ b/docs/html/dsps__dotprod__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_dotprod_platform.h + + +Node1 + + +dsps_dotprod_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__dotprod__platform_8h_source.html b/docs/html/dsps__dotprod__platform_8h_source.html new file mode 100644 index 0000000..eb80268 --- /dev/null +++ b/docs/html/dsps__dotprod__platform_8h_source.html @@ -0,0 +1,148 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprod_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprod_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_dotprod_platform_H_
+
2#define _dsps_dotprod_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dotprod_f32_ae32_enabled 1
+
14#define dotprode_f32_ae32_enabled 1
+
15
+
16#endif //
+
17
+
18#if ((XCHAL_HAVE_LOOPS == 1) && (XCHAL_HAVE_MAC16 == 1))
+
19
+
20#define dsps_dotprod_s16_ae32_enabled 1
+
21
+
22#endif //
+
23#endif // __XTENSA__
+
24
+
25
+
26#if CONFIG_IDF_TARGET_ESP32S3
+
27#define dsps_dotprod_s16_aes3_enabled 1
+
28#define dsps_dotprod_f32_aes3_enabled 1
+
29#endif
+
30
+
31#if CONFIG_IDF_TARGET_ESP32P4
+
32#ifdef CONFIG_DSP_OPTIMIZED
+
33#define dsps_dotprod_s16_arp4_enabled 1
+
34#define dsps_dotprod_f32_arp4_enabled 1
+
35#else
+
36#define dsps_dotprod_s16_arp4_enabled 0
+
37#define dsps_dotprod_f32_arp4_enabled 0
+
38#endif // CONFIG_DSP_OPTIMIZED
+
39#endif
+
40
+
41
+
42#endif // _dsps_dotprod_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__dotprod__s16__ansi_8c.html b/docs/html/dsps__dotprod__s16__ansi_8c.html new file mode 100644 index 0000000..e7a110a --- /dev/null +++ b/docs/html/dsps__dotprod__s16__ansi_8c.html @@ -0,0 +1,202 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprod_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprod_s16_ansi.c File Reference
+
+
+
#include "dsps_dotprod.h"
+
+Include dependency graph for dsps_dotprod_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_dotprod_s16_ansi (const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift)
 dot product of two 16 bit vectors Dot product calculation for two signed 16 bit arrays: *dest += (src1[i] * src2[i]) >> (15-shift); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
+

Function Documentation

+ +

◆ dsps_dotprod_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprod_s16_ansi (const int16_t * src1,
const int16_t * src2,
int16_t * dest,
int len,
int8_t shift )
+
+ +

dot product of two 16 bit vectors Dot product calculation for two signed 16 bit arrays: *dest += (src1[i] * src2[i]) >> (15-shift); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + +
[in]src1source array 1
[in]src2source array 2
destdestination pointer
[in]lenlength of input arrays
[in]shiftshift of the result.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_dotprod_s16_ansi.c.

+
18{
+
19 // To make correct round operation we have to shift round value
+
20 long long acc = 0x7fff >> shift;
+
21
+
22 for (int i = 0 ; i < len ; i++) {
+
23 acc += (int32_t)src1[i] * (int32_t)src2[i];
+
24 }
+
25
+
26 int final_shift = shift - 15;
+
27 if (final_shift > 0) {
+
28 *dest = (acc << final_shift);
+
29 } else {
+
30 *dest = (acc >> (-final_shift));
+
31 }
+
32 return ESP_OK;
+
33}
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__dotprod__s16__ansi_8c.js b/docs/html/dsps__dotprod__s16__ansi_8c.js new file mode 100644 index 0000000..4ad7b65 --- /dev/null +++ b/docs/html/dsps__dotprod__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__dotprod__s16__ansi_8c = +[ + [ "dsps_dotprod_s16_ansi", "dsps__dotprod__s16__ansi_8c.html#a5a6faa1899ea49cade984589bfdac0b3", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__dotprod__s16__ansi_8c__incl.md5 b/docs/html/dsps__dotprod__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..f28f71c --- /dev/null +++ b/docs/html/dsps__dotprod__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +fb07a692316c02055ca7068293160848 \ No newline at end of file diff --git a/docs/html/dsps__dotprod__s16__ansi_8c__incl.svg b/docs/html/dsps__dotprod__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..43420c3 --- /dev/null +++ b/docs/html/dsps__dotprod__s16__ansi_8c__incl.svg @@ -0,0 +1,218 @@ + + + + + + + + + + + + +dsps_dotprod_s16_ansi.c + + +Node1 + + +dsps_dotprod_s16_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + + + + + + diff --git a/docs/html/dsps__dotprod__s16__ansi_8c__incl_org.svg b/docs/html/dsps__dotprod__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..8bc064d --- /dev/null +++ b/docs/html/dsps__dotprod__s16__ansi_8c__incl_org.svg @@ -0,0 +1,192 @@ + + + + + + +dsps_dotprod_s16_ansi.c + + +Node1 + + +dsps_dotprod_s16_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + diff --git a/docs/html/dsps__dotprod__s16__ansi_8c_source.html b/docs/html/dsps__dotprod__s16__ansi_8c_source.html new file mode 100644 index 0000000..577b643 --- /dev/null +++ b/docs/html/dsps__dotprod__s16__ansi_8c_source.html @@ -0,0 +1,145 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprod_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprod_s16_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_dotprod.h"
+
16
+
+
17esp_err_t dsps_dotprod_s16_ansi(const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift)
+
18{
+
19 // To make correct round operation we have to shift round value
+
20 long long acc = 0x7fff >> shift;
+
21
+
22 for (int i = 0 ; i < len ; i++) {
+
23 acc += (int32_t)src1[i] * (int32_t)src2[i];
+
24 }
+
25
+
26 int final_shift = shift - 15;
+
27 if (final_shift > 0) {
+
28 *dest = (acc << final_shift);
+
29 } else {
+
30 *dest = (acc >> (-final_shift));
+
31 }
+
32 return ESP_OK;
+
33}
+
+ +
esp_err_t dsps_dotprod_s16_ansi(const int16_t *src1, const int16_t *src2, int16_t *dest, int len, int8_t shift)
dot product of two 16 bit vectors Dot product calculation for two signed 16 bit arrays: *dest += (src...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__dotprode__f32__ansi_8c.html b/docs/html/dsps__dotprode__f32__ansi_8c.html new file mode 100644 index 0000000..813e201 --- /dev/null +++ b/docs/html/dsps__dotprode__f32__ansi_8c.html @@ -0,0 +1,200 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprode_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprode_f32_ansi.c File Reference
+
+
+
#include "dsps_dotprod.h"
+
+Include dependency graph for dsps_dotprode_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_dotprode_f32_ansi (const float *src1, const float *src2, float *dest, int len, int step1, int step2)
 dot product of two float vectors with step Dot product calculation for two floating point arrays: *dest += (src1[i*step1] * src2[i*step2]); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
+

Function Documentation

+ +

◆ dsps_dotprode_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_dotprode_f32_ansi (const float * src1,
const float * src2,
float * dest,
int len,
int step1,
int step2 )
+
+ +

dot product of two float vectors with step Dot product calculation for two floating point arrays: *dest += (src1[i*step1] * src2[i*step2]); i= [0..N) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + + + +
[in]src1source array 1
[in]src2source array 2
destdestination pointer
[in]lenlength of input arrays
[in]step1step over elements in first array
[in]step2step over elements in second array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_dotprode_f32_ansi.c.

+
18{
+
19 float acc = 0;
+
20 for (int i = 0 ; i < len ; i++) {
+
21 acc += src1[i * step1] * src2[i * step2];
+
22 }
+
23 *dest = acc;
+
24 return ESP_OK;
+
25}
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__dotprode__f32__ansi_8c.js b/docs/html/dsps__dotprode__f32__ansi_8c.js new file mode 100644 index 0000000..796304b --- /dev/null +++ b/docs/html/dsps__dotprode__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__dotprode__f32__ansi_8c = +[ + [ "dsps_dotprode_f32_ansi", "dsps__dotprode__f32__ansi_8c.html#ad4e4aa68cf3d6db1e8ed51f2bba0c043", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__dotprode__f32__ansi_8c__incl.md5 b/docs/html/dsps__dotprode__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..3195ab6 --- /dev/null +++ b/docs/html/dsps__dotprode__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +4aea298138e685a7eb147b7db5aa3859 \ No newline at end of file diff --git a/docs/html/dsps__dotprode__f32__ansi_8c__incl.svg b/docs/html/dsps__dotprode__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..205abae --- /dev/null +++ b/docs/html/dsps__dotprode__f32__ansi_8c__incl.svg @@ -0,0 +1,218 @@ + + + + + + + + + + + + +dsps_dotprode_f32_ansi.c + + +Node1 + + +dsps_dotprode_f32_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + + + + + + diff --git a/docs/html/dsps__dotprode__f32__ansi_8c__incl_org.svg b/docs/html/dsps__dotprode__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..6fc0c8a --- /dev/null +++ b/docs/html/dsps__dotprode__f32__ansi_8c__incl_org.svg @@ -0,0 +1,192 @@ + + + + + + +dsps_dotprode_f32_ansi.c + + +Node1 + + +dsps_dotprode_f32_ansi.c + + + + + +Node2 + + +dsps_dotprod.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +dsps_dotprod_platform.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7->Node4 + + + + + + + + +Node10 + + +sdkconfig.h + + + + + +Node9->Node10 + + + + + + + + diff --git a/docs/html/dsps__dotprode__f32__ansi_8c_source.html b/docs/html/dsps__dotprode__f32__ansi_8c_source.html new file mode 100644 index 0000000..4ab392a --- /dev/null +++ b/docs/html/dsps__dotprode__f32__ansi_8c_source.html @@ -0,0 +1,137 @@ + + + + + + + +ESP-IDF Firmware: dsps_dotprode_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dotprode_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_dotprod.h"
+
16
+
+
17esp_err_t dsps_dotprode_f32_ansi(const float *src1, const float *src2, float *dest, int len, int step1, int step2)
+
18{
+
19 float acc = 0;
+
20 for (int i = 0 ; i < len ; i++) {
+
21 acc += src1[i * step1] * src2[i * step2];
+
22 }
+
23 *dest = acc;
+
24 return ESP_OK;
+
25}
+
+ +
esp_err_t dsps_dotprode_f32_ansi(const float *src1, const float *src2, float *dest, int len, int step1, int step2)
dot product of two float vectors with step Dot product calculation for two floating point arrays: *de...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__dstiv__f32_8c.html b/docs/html/dsps__dstiv__f32_8c.html new file mode 100644 index 0000000..7eb112b --- /dev/null +++ b/docs/html/dsps__dstiv__f32_8c.html @@ -0,0 +1,256 @@ + + + + + + + +ESP-IDF Firmware: dsps_dstiv_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dstiv_f32.c File Reference
+
+
+
#include "dsp_common.h"
+#include <math.h>
+#include "dsps_dct.h"
+#include "dsps_fft2r.h"
+
+Include dependency graph for dsps_dstiv_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_dstiv_f32 (float *data, int ndst)
 DST of radix 2, type IV, unscaled.
+

Function Documentation

+ +

◆ dsps_dstiv_f32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_dstiv_f32 (float * data,
int N )
+
+ +

DST of radix 2, type IV, unscaled.

+

Discrete Sine Transform type IV of radix 2, unscaled Function is FFT based The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + +
[in,out]datainput/output array with size of N*2. An elements located: Re[0],Re[1], , ... Re[N-1] result of DST will be stored to this array from 0...N-1. Size of data array must be N
[in]NSize of DST transform. Size of data array must be N
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 21 of file dsps_dstiv_f32.c.

+
22{
+
23 if (dsps_fft2r_initialized == 0) {
+ +
25 }
+
26
+
27 float in1, in2, in3, in4;
+
28 float factor = M_PI / (ndst);
+
29
+
30 for (int i = 0; i < ndst / 4; i++) {
+
31
+
32 in1 = data[2 * i + 0];
+
33 in2 = data[2 * i + 1];
+
34
+
35 in3 = data[ndst - 2 * i - 2];
+
36 in4 = data[ndst - 2 * i - 1];
+
37
+
38 data[i * 2 + 1] = (
+
39 in1 * cos(factor * (i + 0))
+
40 - in4 * sin(factor * ((ndst - i - 1)))
+
41 );
+
42
+
43 data[i * 2 + 0] = (
+
44 in1 * sin(factor * (i))
+
45 - in4 * cos(factor * ((ndst - i - 1)))
+
46 );
+
47
+
48 data[ndst - i * 2 - 2] = (
+
49 -in3 * cos(factor * (ndst - i - 1))
+
50 + in2 * sin(factor * (ndst - i - 1))
+
51 );
+
52
+
53 data[ndst - i * 2 - 1] = (
+
54 +in3 * sin(factor * (i + 1))
+
55 - in2 * cos(-factor * (i + 1))
+
56 );
+
57
+
58 }
+
59
+
60 esp_err_t error = ESP_OK;
+
61 error = dsps_fft2r_fc32(data, ndst / 2);
+
62 if (error != ESP_OK) {
+
63 return error;
+
64 }
+
65 error = dsps_bit_rev_fc32(data, ndst / 2);
+
66 if (error != ESP_OK) {
+
67 return error;
+
68 }
+
69
+
70 for (int i = 0; i < ndst / 4; i++) {
+
71 in1 = data[2 * i + 0];
+
72 in2 = data[2 * i + 1];
+
73
+
74 in3 = data[ndst - 2 * i - 2];
+
75 in4 = data[ndst - 2 * i - 1];
+
76
+
77 data[i * 2 + 0] = (
+
78 in1 * cos(factor * (0 + i))
+
79 + in2 * sin(factor * (0 + i))
+
80 );
+
81
+
82 data[ndst - i * 2 - 2 + 1] = (
+
83 -in1 * cos(factor * (ndst / 2 - i))
+
84 + in2 * sin(factor * (ndst / 2 - i))
+
85 );
+
86
+
87 data[i * 2 + 1] = (
+
88 -in3 * cos(factor * (1 + i))
+
89 + in4 * sin(factor * (1 + i))
+
90 );
+
91
+
92 data[ndst - i * 2 - 2 + 0] = (
+
93 +in3 * cos(factor * (ndst / 2 - i - 1))
+
94 + in4 * sin(factor * (ndst / 2 - i - 1))
+
95 );
+
96 }
+
97 return ESP_OK;
+
98}
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_fft2r_fc32
Definition dsps_fft2r.h:248
+
uint8_t dsps_fft2r_initialized
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References data, dsps_bit_rev_fc32, dsps_fft2r_fc32, dsps_fft2r_initialized, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and M_PI.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__dstiv__f32_8c.js b/docs/html/dsps__dstiv__f32_8c.js new file mode 100644 index 0000000..58ac286 --- /dev/null +++ b/docs/html/dsps__dstiv__f32_8c.js @@ -0,0 +1,4 @@ +var dsps__dstiv__f32_8c = +[ + [ "dsps_dstiv_f32", "dsps__dstiv__f32_8c.html#a6276bcb00562bb2f2fc18204264cc24c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__dstiv__f32_8c__incl.md5 b/docs/html/dsps__dstiv__f32_8c__incl.md5 new file mode 100644 index 0000000..a7377a0 --- /dev/null +++ b/docs/html/dsps__dstiv__f32_8c__incl.md5 @@ -0,0 +1 @@ +90ce427cb60020533c8a282e1e3a2f69 \ No newline at end of file diff --git a/docs/html/dsps__dstiv__f32_8c__incl.svg b/docs/html/dsps__dstiv__f32_8c__incl.svg new file mode 100644 index 0000000..f78af9f --- /dev/null +++ b/docs/html/dsps__dstiv__f32_8c__incl.svg @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_dstiv_f32.c + + +Node1 + + +dsps_dstiv_f32.c + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +math.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_dct.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dsps_fft2r.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node5 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +dsps_fft_tables.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fft2r_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node16->Node13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__dstiv__f32_8c__incl_org.svg b/docs/html/dsps__dstiv__f32_8c__incl_org.svg new file mode 100644 index 0000000..a70cd1f --- /dev/null +++ b/docs/html/dsps__dstiv__f32_8c__incl_org.svg @@ -0,0 +1,318 @@ + + + + + + +dsps_dstiv_f32.c + + +Node1 + + +dsps_dstiv_f32.c + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +math.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_dct.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dsps_fft2r.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +sdkconfig.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node5 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +dsps_fft_tables.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fft2r_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node16->Node13 + + + + + + + + diff --git a/docs/html/dsps__dstiv__f32_8c_source.html b/docs/html/dsps__dstiv__f32_8c_source.html new file mode 100644 index 0000000..e0bf541 --- /dev/null +++ b/docs/html/dsps__dstiv__f32_8c_source.html @@ -0,0 +1,218 @@ + + + + + + + +ESP-IDF Firmware: dsps_dstiv_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_dstiv_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsp_common.h"
+
16#include <math.h>
+
17
+
18#include "dsps_dct.h"
+
19#include "dsps_fft2r.h"
+
20
+
+
21esp_err_t dsps_dstiv_f32(float *data, int ndst)
+
22{
+
23 if (dsps_fft2r_initialized == 0) {
+ +
25 }
+
26
+
27 float in1, in2, in3, in4;
+
28 float factor = M_PI / (ndst);
+
29
+
30 for (int i = 0; i < ndst / 4; i++) {
+
31
+
32 in1 = data[2 * i + 0];
+
33 in2 = data[2 * i + 1];
+
34
+
35 in3 = data[ndst - 2 * i - 2];
+
36 in4 = data[ndst - 2 * i - 1];
+
37
+
38 data[i * 2 + 1] = (
+
39 in1 * cos(factor * (i + 0))
+
40 - in4 * sin(factor * ((ndst - i - 1)))
+
41 );
+
42
+
43 data[i * 2 + 0] = (
+
44 in1 * sin(factor * (i))
+
45 - in4 * cos(factor * ((ndst - i - 1)))
+
46 );
+
47
+
48 data[ndst - i * 2 - 2] = (
+
49 -in3 * cos(factor * (ndst - i - 1))
+
50 + in2 * sin(factor * (ndst - i - 1))
+
51 );
+
52
+
53 data[ndst - i * 2 - 1] = (
+
54 +in3 * sin(factor * (i + 1))
+
55 - in2 * cos(-factor * (i + 1))
+
56 );
+
57
+
58 }
+
59
+
60 esp_err_t error = ESP_OK;
+
61 error = dsps_fft2r_fc32(data, ndst / 2);
+
62 if (error != ESP_OK) {
+
63 return error;
+
64 }
+
65 error = dsps_bit_rev_fc32(data, ndst / 2);
+
66 if (error != ESP_OK) {
+
67 return error;
+
68 }
+
69
+
70 for (int i = 0; i < ndst / 4; i++) {
+
71 in1 = data[2 * i + 0];
+
72 in2 = data[2 * i + 1];
+
73
+
74 in3 = data[ndst - 2 * i - 2];
+
75 in4 = data[ndst - 2 * i - 1];
+
76
+
77 data[i * 2 + 0] = (
+
78 in1 * cos(factor * (0 + i))
+
79 + in2 * sin(factor * (0 + i))
+
80 );
+
81
+
82 data[ndst - i * 2 - 2 + 1] = (
+
83 -in1 * cos(factor * (ndst / 2 - i))
+
84 + in2 * sin(factor * (ndst / 2 - i))
+
85 );
+
86
+
87 data[i * 2 + 1] = (
+
88 -in3 * cos(factor * (1 + i))
+
89 + in4 * sin(factor * (1 + i))
+
90 );
+
91
+
92 data[ndst - i * 2 - 2 + 0] = (
+
93 +in3 * cos(factor * (ndst / 2 - i - 1))
+
94 + in4 * sin(factor * (ndst / 2 - i - 1))
+
95 );
+
96 }
+
97 return ESP_OK;
+
98}
+
+ +
#define ESP_ERR_DSP_REINITIALIZED
+ +
esp_err_t dsps_dstiv_f32(float *data, int ndst)
DST of radix 2, type IV, unscaled.
+ +
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_fft2r_fc32
Definition dsps_fft2r.h:248
+
uint8_t dsps_fft2r_initialized
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/dsps__fft2r_8h.html b/docs/html/dsps__fft2r_8h.html new file mode 100644 index 0000000..82cbf8b --- /dev/null +++ b/docs/html/dsps__fft2r_8h.html @@ -0,0 +1,2118 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r.h File Reference
+
+
+
#include "dsp_err.h"
+#include "sdkconfig.h"
+#include "dsps_fft_tables.h"
+#include "dsps_fft2r_platform.h"
+
+Include dependency graph for dsps_fft2r.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + +

+Macros

#define CONFIG_DSP_MAX_FFT_SIZE   4096
#define dsps_fft2r_fc32_ae32(data, N)
#define dsps_fft2r_fc32_aes3(data, N)
#define dsps_fft2r_fc32_arp4(data, N)
#define dsps_fft2r_sc16_ae32(data, N)
#define dsps_fft2r_sc16_aes3(data, N)
#define dsps_fft2r_sc16_arp4(data, N)
#define dsps_fft2r_fc32_ansi(data, N)
#define dsps_fft2r_sc16_ansi(data, N)
#define dsps_fft2r_fc32   dsps_fft2r_fc32_ansi
#define dsps_bit_rev_fc32   dsps_bit_rev_fc32_ansi
#define dsps_cplx2reC_fc32   dsps_cplx2reC_fc32_ansi
#define dsps_bit_rev_sc16   dsps_bit_rev_sc16_ansi
#define dsps_bit_rev_lookup_fc32   dsps_bit_rev_lookup_fc32_ansi
#define dsps_fft2r_sc16   dsps_fft2r_sc16_ansi
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_bit_rev_lookup_fc32_ansi (float *data, int reverse_size, uint16_t *reverse_tab)
esp_err_t dsps_bit_rev_lookup_fc32_ae32 (float *data, int reverse_size, uint16_t *reverse_tab)
esp_err_t dsps_bit_rev_lookup_fc32_aes3 (float *data, int reverse_size, uint16_t *reverse_tab)
esp_err_t dsps_cplx2real256_fc32_ansi (float *data)
esp_err_t dsps_gen_bitrev2r_table (int N, int step, char *name_ext)
esp_err_t dsps_fft2r_init_fc32 (float *fft_table_buff, int table_size)
 init fft tables
esp_err_t dsps_fft2r_init_sc16 (int16_t *fft_table_buff, int table_size)
void dsps_fft2r_deinit_fc32 (void)
 deinit fft tables
void dsps_fft2r_deinit_sc16 (void)
esp_err_t dsps_fft2r_fc32_ansi_ (float *data, int N, float *w)
 complex FFT of radix 2
esp_err_t dsps_fft2r_fc32_ae32_ (float *data, int N, float *w)
esp_err_t dsps_fft2r_fc32_aes3_ (float *data, int N, float *w)
esp_err_t dsps_fft2r_fc32_arp4_ (float *data, int N, float *w)
esp_err_t dsps_fft2r_sc16_ansi_ (int16_t *data, int N, int16_t *w)
esp_err_t dsps_fft2r_sc16_ae32_ (int16_t *data, int N, int16_t *w)
esp_err_t dsps_fft2r_sc16_aes3_ (int16_t *data, int N, int16_t *w)
esp_err_t dsps_fft2r_sc16_arp4_ (int16_t *data, int N, int16_t *w)
esp_err_t dsps_bit_rev_fc32_ansi (float *data, int N)
 bit reverse operation for the complex input array
esp_err_t dsps_bit_rev_sc16_ansi (int16_t *data, int N)
esp_err_t dsps_bit_rev2r_fc32 (float *data, int N)
esp_err_t dsps_gen_w_r2_fc32 (float *w, int N)
 Generate coefficients table for the FFT radix 2.
esp_err_t dsps_gen_w_r2_sc16 (int16_t *w, int N)
esp_err_t dsps_cplx2reC_fc32_ansi (float *data, int N)
 Convert complex array to two real arrays.
esp_err_t dsps_cplx2reC_sc16 (int16_t *data, int N)
esp_err_t dsps_cplx2real_sc16_ansi (int16_t *data, int N)
 Convert complex FFT result to real array.
+ + + + + + + +

+Variables

float * dsps_fft_w_table_fc32
int dsps_fft_w_table_size
uint8_t dsps_fft2r_initialized
int16_t * dsps_fft_w_table_sc16
int dsps_fft_w_table_sc16_size
uint8_t dsps_fft2r_sc16_initialized
+

Macro Definition Documentation

+ +

◆ CONFIG_DSP_MAX_FFT_SIZE

+ +
+
+ + + + +
#define CONFIG_DSP_MAX_FFT_SIZE   4096
+
+
+ +

◆ dsps_bit_rev_fc32

+ +
+
+ + + + +
#define dsps_bit_rev_fc32   dsps_bit_rev_fc32_ansi
+
+ +

Definition at line 249 of file dsps_fft2r.h.

+ +

Referenced by dsps_bit_rev2r_fc32(), dsps_dct_f32(), dsps_dct_inv_f32(), dsps_dctiv_f32(), and dsps_dstiv_f32().

+ +
+
+ +

◆ dsps_bit_rev_lookup_fc32

+ +
+
+ + + + +
#define dsps_bit_rev_lookup_fc32   dsps_bit_rev_lookup_fc32_ansi
+
+ +

Definition at line 252 of file dsps_fft2r.h.

+ +

Referenced by dsps_bit_rev2r_fc32(), and dsps_bit_rev4r_fc32().

+ +
+
+ +

◆ dsps_bit_rev_sc16

+ +
+
+ + + + +
#define dsps_bit_rev_sc16   dsps_bit_rev_sc16_ansi
+
+ +

Definition at line 251 of file dsps_fft2r.h.

+ +
+
+ +

◆ dsps_cplx2reC_fc32

+ +
+
+ + + + +
#define dsps_cplx2reC_fc32   dsps_cplx2reC_fc32_ansi
+
+ +

Definition at line 250 of file dsps_fft2r.h.

+ +
+
+ +

◆ dsps_fft2r_fc32

+ +
+
+ + + + +
#define dsps_fft2r_fc32   dsps_fft2r_fc32_ansi
+
+ +

Definition at line 248 of file dsps_fft2r.h.

+ +

Referenced by dsps_dct_f32(), dsps_dct_inv_f32(), dsps_dctiv_f32(), dsps_dstiv_f32(), and test_fft2r().

+ +
+
+ +

◆ dsps_fft2r_fc32_ae32

+ +
+
+ + + + + + + + + + + +
#define dsps_fft2r_fc32_ae32( data,
N )
+
+Value:
+
esp_err_t dsps_fft2r_fc32_ae32_(float *data, int N, float *w)
+
float * dsps_fft_w_table_fc32
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+

Definition at line 107 of file dsps_fft2r.h.

+ +
+
+ +

◆ dsps_fft2r_fc32_aes3

+ +
+
+ + + + + + + + + + + +
#define dsps_fft2r_fc32_aes3( data,
N )
+
+Value:
+
esp_err_t dsps_fft2r_fc32_aes3_(float *data, int N, float *w)
+
+

Definition at line 108 of file dsps_fft2r.h.

+ +
+
+ +

◆ dsps_fft2r_fc32_ansi

+ +
+
+ + + + + + + + + + + +
#define dsps_fft2r_fc32_ansi( data,
N )
+
+Value:
+
esp_err_t dsps_fft2r_fc32_ansi_(float *data, int N, float *w)
complex FFT of radix 2
+
+

Definition at line 114 of file dsps_fft2r.h.

+ +

Referenced by dsps_sfdr_f32(), and dsps_snr_f32().

+ +
+
+ +

◆ dsps_fft2r_fc32_arp4

+ +
+
+ + + + + + + + + + + +
#define dsps_fft2r_fc32_arp4( data,
N )
+
+Value:
+
esp_err_t dsps_fft2r_fc32_arp4_(float *data, int N, float *w)
+
+

Definition at line 109 of file dsps_fft2r.h.

+ +
+
+ +

◆ dsps_fft2r_sc16

+ +
+
+ + + + +
#define dsps_fft2r_sc16   dsps_fft2r_sc16_ansi
+
+ +

Definition at line 253 of file dsps_fft2r.h.

+ +
+
+ +

◆ dsps_fft2r_sc16_ae32

+ +
+
+ + + + + + + + + + + +
#define dsps_fft2r_sc16_ae32( data,
N )
+
+Value:
+
esp_err_t dsps_fft2r_sc16_ae32_(int16_t *data, int N, int16_t *w)
+
int16_t * dsps_fft_w_table_sc16
+
+

Definition at line 111 of file dsps_fft2r.h.

+ +

Referenced by microphone_read_task(), and microphone_read_task().

+ +
+
+ +

◆ dsps_fft2r_sc16_aes3

+ +
+
+ + + + + + + + + + + +
#define dsps_fft2r_sc16_aes3( data,
N )
+
+Value:
+
esp_err_t dsps_fft2r_sc16_aes3_(int16_t *data, int N, int16_t *w)
+
+

Definition at line 112 of file dsps_fft2r.h.

+ +
+
+ +

◆ dsps_fft2r_sc16_ansi

+ +
+
+ + + + + + + + + + + +
#define dsps_fft2r_sc16_ansi( data,
N )
+
+Value:
+
esp_err_t dsps_fft2r_sc16_ansi_(int16_t *data, int N, int16_t *sc_table)
+
+

Definition at line 115 of file dsps_fft2r.h.

+ +
+
+ +

◆ dsps_fft2r_sc16_arp4

+ +
+
+ + + + + + + + + + + +
#define dsps_fft2r_sc16_arp4( data,
N )
+
+Value:
+
esp_err_t dsps_fft2r_sc16_arp4_(int16_t *data, int N, int16_t *w)
+
+

Definition at line 113 of file dsps_fft2r.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_bit_rev2r_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev2r_fc32 (float * data,
int N )
+
+ +

Definition at line 303 of file dsps_fft2r_fc32_ansi.c.

+
304{
+
305 uint16_t *table;
+
306 uint16_t table_size;
+
307 switch (N) {
+
308 case 16:
+
309 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[0];
+
310 table_size = dsps_fft2r_rev_tables_fc32_size[0];
+
311 break;
+
312 case 32:
+
313 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[1];
+
314 table_size = dsps_fft2r_rev_tables_fc32_size[1];
+
315 break;
+
316 case 64:
+
317 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[2];
+
318 table_size = dsps_fft2r_rev_tables_fc32_size[2];
+
319 break;
+
320 case 128:
+
321 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[3];
+
322 table_size = dsps_fft2r_rev_tables_fc32_size[3];
+
323 break;
+
324 case 256:
+
325 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[4];
+
326 table_size = dsps_fft2r_rev_tables_fc32_size[4];
+
327 break;
+
328 case 512:
+
329 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[5];
+
330 table_size = dsps_fft2r_rev_tables_fc32_size[5];
+
331 break;
+
332 case 1024:
+
333 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[6];
+
334 table_size = dsps_fft2r_rev_tables_fc32_size[6];
+
335 break;
+
336 case 2048:
+
337 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[7];
+
338 table_size = dsps_fft2r_rev_tables_fc32_size[7];
+
339 break;
+
340 case 4096:
+
341 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[8];
+
342 table_size = dsps_fft2r_rev_tables_fc32_size[8];
+
343 break;
+
344
+
345 default:
+
346 return dsps_bit_rev_fc32(data, N);
+
347 break;
+
348 }
+
349 return dsps_bit_rev_lookup_fc32(data, table_size, table);
+
350}
+
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_bit_rev_lookup_fc32
Definition dsps_fft2r.h:252
+
const uint16_t dsps_fft2r_rev_tables_fc32_size[]
+
uint16_t * dsps_fft2r_rev_tables_fc32[]
+
+

References data, dsps_bit_rev_fc32, dsps_bit_rev_lookup_fc32, dsps_fft2r_rev_tables_fc32, dsps_fft2r_rev_tables_fc32_size, and N.

+ +
+
+ +

◆ dsps_bit_rev_fc32_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev_fc32_ansi (float * data,
int N )
+
+ +

bit reverse operation for the complex input array

+

Bit reverse operation for the complex input array The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]datainput/ complex array. An elements located: Re[0], Im[0], ... Re[N-1], Im[N-1] result of FFT will be stored to this array.
[in]NNumber of complex elements in input array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 172 of file dsps_fft2r_fc32_ansi.c.

+
173{
+
174 if (!dsp_is_power_of_two(N)) {
+ +
176 }
+
177
+
178 esp_err_t result = ESP_OK;
+
179
+
180 int j, k;
+
181 float r_temp, i_temp;
+
182 j = 0;
+
183 for (int i = 1; i < (N - 1); i++) {
+
184 k = N >> 1;
+
185 while (k <= j) {
+
186 j -= k;
+
187 k >>= 1;
+
188 }
+
189 j += k;
+
190 if (i < j) {
+
191 r_temp = data[j * 2];
+
192 data[j * 2] = data[i * 2];
+
193 data[i * 2] = r_temp;
+
194 i_temp = data[j * 2 + 1];
+
195 data[j * 2 + 1] = data[i * 2 + 1];
+
196 data[i * 2 + 1] = i_temp;
+
197 }
+
198 }
+
199 return result;
+
200}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
const int k
Definition test_mmult.c:18
+
+

References data, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, k, and N.

+ +

Referenced by dsps_fft2r_init_fc32(), dsps_sfdr_f32(), and dsps_snr_f32().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_bit_rev_lookup_fc32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_bit_rev_lookup_fc32_ae32 (float * data,
int reverse_size,
uint16_t * reverse_tab )
+
+ +

References data.

+ +
+
+ +

◆ dsps_bit_rev_lookup_fc32_aes3()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_bit_rev_lookup_fc32_aes3 (float * data,
int reverse_size,
uint16_t * reverse_tab )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_bit_rev_lookup_fc32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_bit_rev_lookup_fc32_ansi (float * data,
int reverse_size,
uint16_t * reverse_tab )
+
+ +

Definition at line 352 of file dsps_fft2r_fc32_ansi.c.

+
353{
+
354 float r_temp, i_temp;
+
355 for (int n = 0 ; n < reverse_size ; n++) {
+
356 uint16_t i = reverse_tab[n * 2 + 0] >> 2;
+
357 uint16_t j = reverse_tab[n * 2 + 1] >> 2;
+
358 r_temp = data[j];
+
359 data[j] = data[i];
+
360 data[i] = r_temp;
+
361 i_temp = data[j + 1];
+
362 data[j + 1] = data[i + 1];
+
363 data[i + 1] = i_temp;
+
364 }
+
365 return ESP_OK;
+
366}
+
const int n
Definition test_mmult.c:17
+
+

References data, ESP_OK, and n.

+ +
+
+ +

◆ dsps_bit_rev_sc16_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev_sc16_ansi (int16_t * data,
int N )
+
+ +

Definition at line 181 of file dsps_fft2r_sc16_ansi.c.

+
182{
+
183 if (!dsp_is_power_of_two(N)) {
+ +
185 }
+
186 esp_err_t result = ESP_OK;
+
187
+
188 int j, k;
+
189 uint32_t temp;
+
190 uint32_t *in_data = (uint32_t *)data;
+
191 j = 0;
+
192 for (int i = 1; i < (N - 1); i++) {
+
193 k = N >> 1;
+
194 while (k <= j) {
+
195 j -= k;
+
196 k >>= 1;
+
197 }
+
198 j += k;
+
199 if (i < j) {
+
200 temp = in_data[j];
+
201 in_data[j] = in_data[i];
+
202 in_data[i] = temp;
+
203 }
+
204 }
+
205 return result;
+
206}
+
+

References data, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, k, and N.

+ +

Referenced by dsps_fft2r_init_sc16(), microphone_read_task(), and microphone_read_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx2real256_fc32_ansi()

+ +
+
+ + + + + + + +
esp_err_t dsps_cplx2real256_fc32_ansi (float * data)
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_cplx2real_sc16_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx2real_sc16_ansi (int16_t * data,
int N )
+
+ +

Convert complex FFT result to real array.

+

Convert FFT result of complex FFT for resl input to real array. This function have to be used if FFT used to process real data. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]dataInput complex array and result of FFT2R. input has size of 2*N, because contains real and imaginary part. result will be stored to the same array. Input1: input[0..N-1], Input2: input[N..2*N-1]
[in]NNumber of complex elements in input array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 268 of file dsps_fft2r_sc16_ansi.c.

+
269{
+
270
+
271 int order = dsp_power_of_two(N);
+ +
273 sc16_t *result = (sc16_t *)data;
+
274 // Original formula...
+
275 // result[0].re = result[0].re + result[0].im;
+
276 // result[N].re = result[0].re - result[0].im;
+
277 // result[0].im = 0;
+
278 // result[N].im = 0;
+
279 // Optimized one:
+
280 int16_t tmp_re = result[0].re;
+
281 result[0].re = (tmp_re + result[0].im) >> 1;
+
282 result[0].im = (tmp_re - result[0].im) >> 1;
+
283
+
284 sc16_t f1k, f2k;
+
285 for (int k = 1; k <= N / 2 ; ++k ) {
+
286 sc16_t fpk = result[k];
+
287 sc16_t fpnk;
+
288 fpnk.re = result[N - k].re;
+
289 fpnk.im = result[N - k].im;
+
290 f1k.re = fpk.re + fpnk.re;
+
291 f1k.im = fpk.im - fpnk.im;
+
292 f2k.re = fpk.re - fpnk.re;
+
293 f2k.im = fpk.im + fpnk.im;
+
294
+
295 int table_index = reverse(k, N, order);
+
296
+
297 // float c = -dsps_fft_w_table_fc32[table_index*2+1];
+
298 // float s = -dsps_fft_w_table_fc32[table_index*2+0];
+
299 sc16_t w = table[table_index];
+
300
+
301 sc16_t tw;
+
302 {
+
303 int re = (w.re * f2k.im - w.im * f2k.re) >> 15;
+
304 int im = (+w.re * f2k.re + w.im * f2k.im) >> 15;
+
305 tw.re = re;
+
306 tw.im = im;
+
307 }
+
308
+
309 result[k].re = (f1k.re + tw.re) >> 2;
+
310 result[k].im = (f1k.im - tw.im) >> 2;
+
311 result[N - k].re = (f1k.re - tw.re) >> 2;
+
312 result[N - k].im = -(f1k.im + tw.im) >> 2;
+
313 }
+
314 return ESP_OK;
+
315}
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
union sc16_u sc16_t
+
unsigned short reverse(unsigned short x, unsigned short N, int order)
+
int16_t re
Definition dsp_types.h:10
+
int16_t im
Definition dsp_types.h:11
+
+

References data, dsp_power_of_two(), dsps_fft_w_table_sc16, ESP_OK, sc16_u::im, k, N, sc16_u::re, and reverse().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx2reC_fc32_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx2reC_fc32_ansi (float * data,
int N )
+
+ +

Convert complex array to two real arrays.

+

Convert complex array to two real arrays in case if input was two real arrays. This function have to be used if FFT used to process real data. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]dataInput complex array and result of FFT2R. input has size of 2*N, because contains real and imaginary part. result will be stored to the same array. Input1: input[0..N-1], Input2: input[N..2*N-1]
[in]NNumber of complex elements in input array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 221 of file dsps_fft2r_fc32_ansi.c.

+
222{
+
223 if (!dsp_is_power_of_two(N)) {
+ +
225 }
+
226 esp_err_t result = ESP_OK;
+
227
+
228 int i;
+
229 int n2 = N << 1;
+
230
+
231 float rkl = 0;
+
232 float rkh = 0;
+
233 float rnl = 0;
+
234 float rnh = 0;
+
235 float ikl = 0;
+
236 float ikh = 0;
+
237 float inl = 0;
+
238 float inh = 0;
+
239
+
240 for (i = 0; i < (N / 4); i++) {
+
241 rkl = data[i * 2 + 0 + 2];
+
242 ikl = data[i * 2 + 1 + 2];
+
243 rnl = data[n2 - i * 2 - 2];
+
244 inl = data[n2 - i * 2 - 1];
+
245
+
246 rkh = data[i * 2 + 0 + 2 + N];
+
247 ikh = data[i * 2 + 1 + 2 + N];
+
248 rnh = data[n2 - i * 2 - 2 - N];
+
249 inh = data[n2 - i * 2 - 1 - N];
+
250
+
251 data[i * 2 + 0 + 2] = rkl + rnl;
+
252 data[i * 2 + 1 + 2] = ikl - inl;
+
253
+
254 data[n2 - i * 2 - 1 - N] = inh - ikh;
+
255 data[n2 - i * 2 - 2 - N] = rkh + rnh;
+
256
+
257 data[i * 2 + 0 + 2 + N] = ikl + inl;
+
258 data[i * 2 + 1 + 2 + N] = rnl - rkl;
+
259
+
260 data[n2 - i * 2 - 1] = rkh - rnh;
+
261 data[n2 - i * 2 - 2] = ikh + inh;
+
262 }
+
263 data[N] = data[1];
+
264 data[1] = 0;
+
265 data[N + 1] = 0;
+
266
+
267 return result;
+
268}
+
+

References data, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, and N.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx2reC_sc16()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx2reC_sc16 (int16_t * data,
int N )
+
+ +

Definition at line 227 of file dsps_fft2r_sc16_ansi.c.

+
228{
+
229 if (!dsp_is_power_of_two(N)) {
+ +
231 }
+
232 esp_err_t result = ESP_OK;
+
233
+
234 int i;
+
235 int n2 = N << (1); // we will operate with int32 indexes
+
236 uint32_t *in_data = (uint32_t *)data;
+
237
+
238 sc16_t kl;
+
239 sc16_t kh;
+
240 sc16_t nl;
+
241 sc16_t nh;
+
242
+
243 for (i = 0; i < (N / 4); i++) {
+
244 kl.data = in_data[i + 1];
+
245 nl.data = in_data[N - i - 1];
+
246 kh.data = in_data[i + 1 + N / 2];
+
247 nh.data = in_data[N - i - 1 - N / 2];
+
248
+
249 data[i * 2 + 0 + 2] = kl.re + nl.re;
+
250 data[i * 2 + 1 + 2] = kl.im - nl.im;
+
251
+
252 data[n2 - i * 2 - 1 - N] = kh.re + nh.re;
+
253 data[n2 - i * 2 - 2 - N] = kh.im - nh.im;
+
254
+
255 data[i * 2 + 0 + 2 + N] = kl.im + nl.im;
+
256 data[i * 2 + 1 + 2 + N] = kl.re - nl.re;
+
257
+
258 data[n2 - i * 2 - 1] = kh.im + nh.im;
+
259 data[n2 - i * 2 - 2] = kh.re - nh.re;
+
260 }
+
261 data[N] = data[1];
+
262 data[1] = 0;
+
263 data[N + 1] = 0;
+
264
+
265 return result;
+
266}
+
uint32_t data
Definition dsp_types.h:13
+
+

References data, sc16_u::data, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, sc16_u::im, N, and sc16_u::re.

+ +

Referenced by microphone_read_task(), and microphone_read_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_deinit_fc32()

+ +
+
+ + + + + + + +
void dsps_fft2r_deinit_fc32 (void )
+
+ +

deinit fft tables

+

Free resources of Complex FFT. This function delete coefficients table if it was allocated by dsps_fft2r_init_fc32. The implementation use ANSI C and could be compiled and run on any platform

+ +

Definition at line 102 of file dsps_fft2r_fc32_ansi.c.

+
103{
+ +
105#if CONFIG_IDF_TARGET_ESP32S3
+
106 if (dsps_fft_w_table_fc32 != dsps_fft2r_w_table_fc32_1024) {
+ +
108 }
+
109#else
+ +
111#endif
+
112 }
+
113 if (dsps_fft2r_ram_rev_table != NULL) {
+ + +
116 }
+
117 // Re init bitrev table for next use
+ + + +
121}
+
void dsps_fft2r_rev_tables_init_fc32(void)
+
uint8_t dsps_fft2r_mem_allocated
+
uint16_t * dsps_fft2r_ram_rev_table
+
uint8_t dsps_fft2r_initialized
+
+

References dsps_fft2r_initialized, dsps_fft2r_mem_allocated, dsps_fft2r_ram_rev_table, dsps_fft2r_rev_tables_init_fc32(), and dsps_fft_w_table_fc32.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_deinit_sc16()

+ +
+
+ + + + + + + +
void dsps_fft2r_deinit_sc16 (void )
+
+ +

Definition at line 108 of file dsps_fft2r_sc16_ansi.c.

+
109{
+ + +
112 }
+ + +
115}
+
uint8_t dsps_fft2r_sc16_initialized
+
uint8_t dsps_fft2r_sc16_mem_allocated
+
+

References dsps_fft2r_sc16_initialized, dsps_fft2r_sc16_mem_allocated, and dsps_fft_w_table_sc16.

+ +
+
+ +

◆ dsps_fft2r_fc32_ae32_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_fc32_ae32_ (float * data,
int N,
float * w )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_fft2r_fc32_aes3_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_fc32_aes3_ (float * data,
int N,
float * w )
+
+ +

References data, and N.

+ +

Referenced by test_fft2r().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_fc32_ansi_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_fc32_ansi_ (float * data,
int N,
float * w )
+
+ +

complex FFT of radix 2

+

Complex FFT of radix 2 The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + +
[in,out]datainput/output complex array. An elements located: Re[0], Im[0], ... Re[N-1], Im[N-1] result of FFT will be stored to this array.
[in]NNumber of complex elements in input array
[in]wpointer to the sin/cos table
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 123 of file dsps_fft2r_fc32_ansi.c.

+
124{
+
125 if (!dsp_is_power_of_two(N)) {
+ +
127 }
+ + +
130 }
+
131
+
132 esp_err_t result = ESP_OK;
+
133
+
134 int ie, ia, m;
+
135 float re_temp, im_temp;
+
136 float c, s;
+
137 ie = 1;
+
138 for (int N2 = N / 2; N2 > 0; N2 >>= 1) {
+
139 ia = 0;
+
140 for (int j = 0; j < ie; j++) {
+
141 c = w[2 * j];
+
142 s = w[2 * j + 1];
+
143 for (int i = 0; i < N2; i++) {
+
144 m = ia + N2;
+
145 re_temp = c * data[2 * m] + s * data[2 * m + 1];
+
146 im_temp = c * data[2 * m + 1] - s * data[2 * m];
+
147 data[2 * m] = data[2 * ia] - re_temp;
+
148 data[2 * m + 1] = data[2 * ia + 1] - im_temp;
+
149 data[2 * ia] = data[2 * ia] + re_temp;
+
150 data[2 * ia + 1] = data[2 * ia + 1] + im_temp;
+
151 ia++;
+
152 }
+
153 ia += N2;
+
154 }
+
155 ie <<= 1;
+
156 }
+
157 return result;
+
158}
+
#define ESP_ERR_DSP_UNINITIALIZED
+
const int m
Definition test_mmult.c:16
+
+

References data, dsp_is_power_of_two(), dsps_fft2r_initialized, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, m, and N.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_fc32_arp4_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_fc32_arp4_ (float * data,
int N,
float * w )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_fft2r_init_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_fft2r_init_fc32 (float * fft_table_buff,
int table_size )
+
+ +

init fft tables

+

Initialization of Complex FFT. This function initialize coefficients table. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]fft_table_buffpointer to floating point buffer where sin/cos table will be stored if this parameter set to NULL, and table_size value is more then 0, then dsps_fft2r_init_fc32 will allocate buffer internally
[in]table_sizesize of the buffer in float words if fft_table_buff is NULL and table_size is not 0, buffer will be allocated internally. If table_size is 0, buffer will not be allocated.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_PARAM_OUTOFRANGE if table_size > CONFIG_DSP_MAX_FFT_SIZE
  • +
  • ESP_ERR_DSP_REINITIALIZED if buffer already allocated internally by other function
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 40 of file dsps_fft2r_fc32_ansi.c.

+
41{
+
42 esp_err_t result = ESP_OK;
+
43 if (dsps_fft2r_initialized != 0) {
+
44 return result;
+
45 }
+
46 if (table_size > CONFIG_DSP_MAX_FFT_SIZE) {
+ +
48 }
+
49 if (table_size == 0) {
+
50 return result;
+
51 }
+
52 if (fft_table_buff != NULL) {
+ + +
55 }
+
56 dsps_fft_w_table_fc32 = fft_table_buff;
+
57 dsps_fft_w_table_size = table_size;
+
58 } else {
+ +
60#if CONFIG_IDF_TARGET_ESP32S3
+
61 if (table_size <= 1024) {
+
62 dsps_fft_w_table_fc32 = dsps_fft2r_w_table_fc32_1024;
+
63 } else {
+
64 dsps_fft_w_table_fc32 = (float *)memalign(16, sizeof(float) * table_size);
+
65 }
+
66#else
+
67 dsps_fft_w_table_fc32 = (float *)malloc(table_size * sizeof(float));
+
68#endif
+
69 if (dsps_fft_w_table_fc32 == NULL) {
+ +
71 }
+
72 }
+
73 dsps_fft_w_table_size = table_size;
+ +
75
+
76 }
+
77
+
78 // FFT ram_rev table allocated
+
79 int pow = dsp_power_of_two(table_size);
+
80 if ((pow > 3) && (pow < 13)) {
+
81 dsps_fft2r_ram_rev_table = (uint16_t *)malloc(2 * dsps_fft2r_rev_tables_fc32_size[pow - 4] * sizeof(uint16_t));
+
82 if (dsps_fft2r_ram_rev_table == NULL) {
+ +
84 }
+
85 memcpy(dsps_fft2r_ram_rev_table, dsps_fft2r_rev_tables_fc32[pow - 4], 2 * dsps_fft2r_rev_tables_fc32_size[pow - 4] * sizeof(uint16_t));
+ +
87 }
+
88
+ +
90 if (result != ESP_OK) {
+
91 return result;
+
92 }
+ +
94 if (result != ESP_OK) {
+
95 return result;
+
96 }
+ +
98
+
99 return ESP_OK;
+
100}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_gen_w_r2_fc32(float *w, int N)
Generate coefficients table for the FFT radix 2.
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+
int dsps_fft_w_table_size
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsp_power_of_two(), dsps_bit_rev_fc32_ansi(), dsps_fft2r_initialized, dsps_fft2r_mem_allocated, dsps_fft2r_ram_rev_table, dsps_fft2r_rev_tables_fc32, dsps_fft2r_rev_tables_fc32_size, dsps_fft_w_table_fc32, dsps_fft_w_table_size, dsps_gen_w_r2_fc32(), ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and memalign.

+ +

Referenced by dsps_sfdr_f32(), dsps_snr_f32(), and test_fft2r().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_init_sc16()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_fft2r_init_sc16 (int16_t * fft_table_buff,
int table_size )
+
+ +

Definition at line 70 of file dsps_fft2r_sc16_ansi.c.

+
71{
+
72 esp_err_t result = ESP_OK;
+ +
74 return result;
+
75 }
+
76 if (table_size > CONFIG_DSP_MAX_FFT_SIZE) {
+ +
78 }
+
79 if (table_size == 0) {
+
80 return result;
+
81 }
+
82 if (fft_table_buff != NULL) {
+ + +
85 }
+
86 dsps_fft_w_table_sc16 = fft_table_buff;
+
87 dsps_fft_w_table_sc16_size = table_size;
+
88 } else {
+ +
90 dsps_fft_w_table_sc16 = (int16_t *)memalign(16, CONFIG_DSP_MAX_FFT_SIZE * sizeof(int16_t));
+
91 }
+ + +
94 }
+
95
+ +
97 if (result != ESP_OK) {
+
98 return result;
+
99 }
+ +
101 if (result != ESP_OK) {
+
102 return result;
+
103 }
+ +
105 return ESP_OK;
+
106}
+
esp_err_t dsps_bit_rev_sc16_ansi(int16_t *data, int N)
+
esp_err_t dsps_gen_w_r2_sc16(int16_t *w, int N)
+
int dsps_fft_w_table_sc16_size
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsps_bit_rev_sc16_ansi(), dsps_fft2r_sc16_initialized, dsps_fft2r_sc16_mem_allocated, dsps_fft_w_table_sc16, dsps_fft_w_table_sc16_size, dsps_gen_w_r2_sc16(), ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and memalign.

+ +

Referenced by microphone_read_task(), and microphone_read_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_sc16_ae32_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_sc16_ae32_ (int16_t * data,
int N,
int16_t * w )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_fft2r_sc16_aes3_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_sc16_aes3_ (int16_t * data,
int N,
int16_t * w )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_fft2r_sc16_ansi_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_sc16_ansi_ (int16_t * data,
int N,
int16_t * w )
+
+ +

Definition at line 117 of file dsps_fft2r_sc16_ansi.c.

+
118{
+
119 if (!dsp_is_power_of_two(N)) {
+ +
121 }
+ + +
124 }
+
125
+
126 esp_err_t result = ESP_OK;
+
127
+
128 uint32_t *w = (uint32_t *)sc_table;
+
129 uint32_t *in_data = (uint32_t *)data;
+
130
+
131 int ie, ia, m;
+
132 sc16_t cs;// c - re, s - im
+
133 sc16_t m_data;
+
134 sc16_t a_data;
+
135
+
136 ie = 1;
+
137 for (int N2 = N / 2; N2 > 0; N2 >>= 1) {
+
138 ia = 0;
+
139 for (int j = 0; j < ie; j++) {
+
140 cs.data = w[j];
+
141 //c = w[2 * j];
+
142 //s = w[2 * j + 1];
+
143 for (int i = 0; i < N2; i++) {
+
144 m = ia + N2;
+
145 m_data.data = in_data[m];
+
146 a_data.data = in_data[ia];
+
147 //data[2 * m] = data[2 * ia] - re_temp;
+
148 //data[2 * m + 1] = data[2 * ia + 1] - im_temp;
+
149 sc16_t m1;
+
150 m1.re = xtfixed_bf_1(a_data.re, cs.re, m_data.re, cs.im, m_data.im, 16);//(a_data.re - temp.re + shift_const) >> 1;
+
151 m1.im = xtfixed_bf_2(a_data.im, cs.re, m_data.im, cs.im, m_data.re, 16);//(a_data.im - temp.im + shift_const) >> 1;
+
152 in_data[m] = m1.data;
+
153
+
154 //data[2 * ia] = data[2 * ia] + re_temp;
+
155 //data[2 * ia + 1] = data[2 * ia + 1] + im_temp;
+
156 sc16_t m2;
+
157 m2.re = xtfixed_bf_3(a_data.re, cs.re, m_data.re, cs.im, m_data.im, 16);//(a_data.re + temp.re + shift_const) >> 1;
+
158 m2.im = xtfixed_bf_4(a_data.im, cs.re, m_data.im, cs.im, m_data.re, 16);//(a_data.im + temp.im + shift_const)>>1;
+
159 in_data[ia] = m2.data;
+
160 ia++;
+
161 }
+
162 ia += N2;
+
163 }
+
164 ie <<= 1;
+
165 }
+
166 return result;
+
167}
+
static int16_t xtfixed_bf_2(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
static int16_t xtfixed_bf_4(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
static int16_t xtfixed_bf_3(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
static int16_t xtfixed_bf_1(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
+

References data, sc16_u::data, dsp_is_power_of_two(), dsps_fft2r_sc16_initialized, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, sc16_u::im, m, N, sc16_u::re, xtfixed_bf_1(), xtfixed_bf_2(), xtfixed_bf_3(), and xtfixed_bf_4().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_sc16_arp4_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_sc16_arp4_ (int16_t * data,
int N,
int16_t * w )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_gen_bitrev2r_table()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_gen_bitrev2r_table (int N,
int step,
char * name_ext )
+
+ +

Definition at line 270 of file dsps_fft2r_fc32_ansi.c.

+
271{
+
272 if (!dsp_is_power_of_two(N)) {
+ +
274 }
+
275
+
276 int j, k;
+
277 j = 0;
+
278 int items_count = 0;
+
279 ESP_LOGD(TAG, "const uint16_t bitrev2r_table_%i_%s[] = { ", N, name_ext);
+
280 for (int i = 1; i < (N - 1); i++) {
+
281 k = N >> 1;
+
282 while (k <= j) {
+
283 j -= k;
+
284 k >>= 1;
+
285 }
+
286 j += k;
+
287 if (i < j) {
+
288 ESP_LOGD(TAG, "%i, %i, ", i * step, j * step);
+
289 items_count++;
+
290 if ((items_count % 8) == 0) {
+
291 ESP_LOGD(TAG, " ");
+
292 }
+
293 }
+
294 }
+
295 ESP_LOGD(TAG, "};");
+
296 ESP_LOGD(TAG, "const uint16_t bitrev2r_table_%i_%s_size = %i;\n", N, name_ext, items_count);
+
297
+
298 ESP_LOGD(TAG, "extern const uint16_t bitrev2r_table_%i_%s[];", N, name_ext);
+
299 ESP_LOGD(TAG, "extern const uint16_t bitrev2r_table_%i_%s_size;\n", N, name_ext);
+
300 return ESP_OK;
+
301}
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_LOGD, ESP_OK, k, N, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_gen_w_r2_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_gen_w_r2_fc32 (float * w,
int N )
+
+ +

Generate coefficients table for the FFT radix 2.

+

Generate coefficients table for the FFT radix 2. This function called inside init. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]wmemory location to store coefficients. By default coefficients will be stored to the dsps_fft_w_table_fc32. Maximum size of the FFT must be setup in menuconfig
[in]Nmaximum size of the FFT that will be used
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 202 of file dsps_fft2r_fc32_ansi.c.

+
203{
+
204 if (!dsp_is_power_of_two(N)) {
+ +
206 }
+
207
+
208 esp_err_t result = ESP_OK;
+
209
+
210 int i;
+
211 float e = M_PI * 2.0 / N;
+
212
+
213 for (i = 0; i < (N >> 1); i++) {
+
214 w[2 * i] = cosf(i * e);
+
215 w[2 * i + 1] = sinf(i * e);
+
216 }
+
217
+
218 return result;
+
219}
+
#define M_PI
Definition esp_err.h:26
+
+

References dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, M_PI, and N.

+ +

Referenced by dsps_fft2r_init_fc32().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_gen_w_r2_sc16()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_gen_w_r2_sc16 (int16_t * w,
int N )
+
+ +

Definition at line 208 of file dsps_fft2r_sc16_ansi.c.

+
209{
+
210 if (!dsp_is_power_of_two(N)) {
+ +
212 }
+
213
+
214 esp_err_t result = ESP_OK;
+
215
+
216 int i;
+
217 float e = M_PI * 2.0 / N;
+
218
+
219 for (i = 0; i < (N >> 1); i++) {
+
220 w[2 * i] = (int16_t)(INT16_MAX * cosf(i * e));
+
221 w[2 * i + 1] = (int16_t)(INT16_MAX * sinf(i * e));
+
222 }
+
223
+
224 return result;
+
225}
+
+

References dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, M_PI, and N.

+ +

Referenced by dsps_fft2r_init_sc16().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ dsps_fft2r_initialized

+ +
+
+ + + + + +
+ + + + +
uint8_t dsps_fft2r_initialized
+
+extern
+
+
+ +

◆ dsps_fft2r_sc16_initialized

+ +
+
+ + + + + +
+ + + + +
uint8_t dsps_fft2r_sc16_initialized
+
+extern
+
+ +

Definition at line 26 of file dsps_fft2r_sc16_ansi.c.

+ +

Referenced by dsps_fft2r_deinit_sc16(), dsps_fft2r_init_sc16(), and dsps_fft2r_sc16_ansi_().

+ +
+
+ +

◆ dsps_fft_w_table_fc32

+ +
+
+ + + + + +
+ + + + +
float* dsps_fft_w_table_fc32
+
+extern
+
+ +

Definition at line 27 of file dsps_fft2r_fc32_ansi.c.

+ +

Referenced by dsps_dct_f32(), dsps_fft2r_deinit_fc32(), dsps_fft2r_init_fc32(), and test_fft2r().

+ +
+
+ +

◆ dsps_fft_w_table_sc16

+ +
+
+ + + + + +
+ + + + +
int16_t* dsps_fft_w_table_sc16
+
+extern
+
+ +

Definition at line 24 of file dsps_fft2r_sc16_ansi.c.

+ +

Referenced by dsps_cplx2real_sc16_ansi(), dsps_fft2r_deinit_sc16(), and dsps_fft2r_init_sc16().

+ +
+
+ +

◆ dsps_fft_w_table_sc16_size

+ +
+
+ + + + + +
+ + + + +
int dsps_fft_w_table_sc16_size
+
+extern
+
+ +

Definition at line 25 of file dsps_fft2r_sc16_ansi.c.

+ +

Referenced by dsps_fft2r_init_sc16().

+ +
+
+ +

◆ dsps_fft_w_table_size

+ +
+
+ + + + + +
+ + + + +
int dsps_fft_w_table_size
+
+extern
+
+ +

Definition at line 28 of file dsps_fft2r_fc32_ansi.c.

+ +

Referenced by dsps_fft2r_init_fc32().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft2r_8h.js b/docs/html/dsps__fft2r_8h.js new file mode 100644 index 0000000..2462f03 --- /dev/null +++ b/docs/html/dsps__fft2r_8h.js @@ -0,0 +1,49 @@ +var dsps__fft2r_8h = +[ + [ "CONFIG_DSP_MAX_FFT_SIZE", "dsps__fft2r_8h.html#aacb5103f0e326154211904f9ab5f8b53", null ], + [ "dsps_bit_rev_fc32", "dsps__fft2r_8h.html#a336bd38bae2c9fc04f36a7d358f988c7", null ], + [ "dsps_bit_rev_lookup_fc32", "dsps__fft2r_8h.html#a86261ac60987220081a962c614d65b6b", null ], + [ "dsps_bit_rev_sc16", "dsps__fft2r_8h.html#ad56cbc99943fc860a1383b75a4388673", null ], + [ "dsps_cplx2reC_fc32", "dsps__fft2r_8h.html#a009fad4124cfe3e210c6a46521f3c79c", null ], + [ "dsps_fft2r_fc32", "dsps__fft2r_8h.html#a9f6646725574e927ff6ec6335d50c896", null ], + [ "dsps_fft2r_fc32_ae32", "dsps__fft2r_8h.html#a3d503dd98204a945a98887ae0a41c062", null ], + [ "dsps_fft2r_fc32_aes3", "dsps__fft2r_8h.html#acd87f8810a34db5d8c288b68a0168199", null ], + [ "dsps_fft2r_fc32_ansi", "dsps__fft2r_8h.html#a2a4bcec1eb69dd9b62183604fb18e5b2", null ], + [ "dsps_fft2r_fc32_arp4", "dsps__fft2r_8h.html#a82d20c74aa536714cbf39c4b415926c1", null ], + [ "dsps_fft2r_sc16", "dsps__fft2r_8h.html#aefa310cf327184759ff914350d5aa6c4", null ], + [ "dsps_fft2r_sc16_ae32", "dsps__fft2r_8h.html#a801a8a33ad997e77259ed5c083db35fa", null ], + [ "dsps_fft2r_sc16_aes3", "dsps__fft2r_8h.html#a7db2935c8c3f9b2142d47d0858a39843", null ], + [ "dsps_fft2r_sc16_ansi", "dsps__fft2r_8h.html#abf13f2d4436883ea2f588d5ed9026b4f", null ], + [ "dsps_fft2r_sc16_arp4", "dsps__fft2r_8h.html#a85e51559f39ef813750dadc4989650f8", null ], + [ "dsps_bit_rev2r_fc32", "dsps__fft2r_8h.html#ae32ad4da002ecb7a2d65332a63aec13a", null ], + [ "dsps_bit_rev_fc32_ansi", "dsps__fft2r_8h.html#af6eeaefef23180c3d2c319bfe402b558", null ], + [ "dsps_bit_rev_lookup_fc32_ae32", "dsps__fft2r_8h.html#ab4a6c87189d5c7b11cfa9191b4990e02", null ], + [ "dsps_bit_rev_lookup_fc32_aes3", "dsps__fft2r_8h.html#a950e32b6a751b48ea41d0087160bc368", null ], + [ "dsps_bit_rev_lookup_fc32_ansi", "dsps__fft2r_8h.html#adfc86d100d9819dd7d19e84a768494e7", null ], + [ "dsps_bit_rev_sc16_ansi", "dsps__fft2r_8h.html#a4f30eaf6ab6af9c67f262e11ef917361", null ], + [ "dsps_cplx2real256_fc32_ansi", "dsps__fft2r_8h.html#a16907689ca6da692be76df34db9ad190", null ], + [ "dsps_cplx2real_sc16_ansi", "dsps__fft2r_8h.html#ab8535a7b802e71380ae6da8c859288e2", null ], + [ "dsps_cplx2reC_fc32_ansi", "dsps__fft2r_8h.html#a53b5f7c6108a9752865753a01e84627a", null ], + [ "dsps_cplx2reC_sc16", "dsps__fft2r_8h.html#a9eedd9a59867bc7e1a967fb4a8200065", null ], + [ "dsps_fft2r_deinit_fc32", "dsps__fft2r_8h.html#a11174f3c8575159be82412f9f3ef8412", null ], + [ "dsps_fft2r_deinit_sc16", "dsps__fft2r_8h.html#ab1aaaa2c2f6767c888c339cc22a839ba", null ], + [ "dsps_fft2r_fc32_ae32_", "dsps__fft2r_8h.html#aa5f7751b39419886f9517986a5304d5b", null ], + [ "dsps_fft2r_fc32_aes3_", "dsps__fft2r_8h.html#a4998d68606bf7e1cd35b25197345a9b0", null ], + [ "dsps_fft2r_fc32_ansi_", "dsps__fft2r_8h.html#a377638f1f5bf15fb2798f51bbbf05e30", null ], + [ "dsps_fft2r_fc32_arp4_", "dsps__fft2r_8h.html#a1db7406a66eee7786887794d83ba5e13", null ], + [ "dsps_fft2r_init_fc32", "dsps__fft2r_8h.html#aa5f77f0db0301950603a20f9e67822aa", null ], + [ "dsps_fft2r_init_sc16", "dsps__fft2r_8h.html#a46efac911f6eeaa0e90b5ab0e98ac815", null ], + [ "dsps_fft2r_sc16_ae32_", "dsps__fft2r_8h.html#a8475a8124152527bc82ad2e53a1c91bb", null ], + [ "dsps_fft2r_sc16_aes3_", "dsps__fft2r_8h.html#ac65cb7cfc52dd207ae293bd34dbb38ef", null ], + [ "dsps_fft2r_sc16_ansi_", "dsps__fft2r_8h.html#a0100ecbb0541f77c5d784c2ff6128d2a", null ], + [ "dsps_fft2r_sc16_arp4_", "dsps__fft2r_8h.html#a3d9b561a32ec354cc5cfc1ec0f956ab2", null ], + [ "dsps_gen_bitrev2r_table", "dsps__fft2r_8h.html#a19aaad1963cbbdb238dacc2072203d31", null ], + [ "dsps_gen_w_r2_fc32", "dsps__fft2r_8h.html#a512cd6d2b04793b59881041e37e51738", null ], + [ "dsps_gen_w_r2_sc16", "dsps__fft2r_8h.html#a9b94ca984cb2a6935843f2efed9ad233", null ], + [ "dsps_fft2r_initialized", "dsps__fft2r_8h.html#ad3b1d1569f2faa693db19d1736b39ed9", null ], + [ "dsps_fft2r_sc16_initialized", "dsps__fft2r_8h.html#a5d978a0b10610e2c87b744f1dd817def", null ], + [ "dsps_fft_w_table_fc32", "dsps__fft2r_8h.html#a02b26c60c12eef61392746a71e39ba76", null ], + [ "dsps_fft_w_table_sc16", "dsps__fft2r_8h.html#a6c72b34db327e89cbf316bbb95af4123", null ], + [ "dsps_fft_w_table_sc16_size", "dsps__fft2r_8h.html#ae78dff2b66a92dc7ea88643a11a6463a", null ], + [ "dsps_fft_w_table_size", "dsps__fft2r_8h.html#af9c7f3192020be0a7cc450a70870afb9", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h__dep__incl.md5 b/docs/html/dsps__fft2r_8h__dep__incl.md5 new file mode 100644 index 0000000..5c54151 --- /dev/null +++ b/docs/html/dsps__fft2r_8h__dep__incl.md5 @@ -0,0 +1 @@ +a5837257d9f7d5f1807a1a937cd404b7 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h__dep__incl.svg b/docs/html/dsps__fft2r_8h__dep__incl.svg new file mode 100644 index 0000000..a2cc014 --- /dev/null +++ b/docs/html/dsps__fft2r_8h__dep__incl.svg @@ -0,0 +1,905 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft2r.h + + +Node1 + + +dsps_fft2r.h + + + + + +Node2 + + +dsps_dct_f32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_dctiv_f32.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_dstiv_f32.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dsps_sfdr_f32.cpp + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsps_snr_f32.cpp + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_dsp.h + + + + + +Node1->Node12 + + + + + + + + +Node45 + + +test_fft2r.c + + + + + +Node1->Node45 + + + + + + + + +Node13 + + +3d_graphics_demo.cpp + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node12->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node12->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node12->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node12->Node18 + + + + + + + + +Node19 + + +3d_kalman_demo.cpp + + + + + +Node12->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node12->Node20 + + + + + + + + +Node21 + + +audio_amp_main.c + + + + + +Node12->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node12->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node12->Node23 + + + + + + + + +Node24 + + +dsp_tests.h + + + + + +Node12->Node24 + + + + + + + + +Node30 + + +graphics_support.h + + + + + +Node12->Node30 + + + + + + + + +Node32 + + +graphics_support.h + + + + + +Node12->Node32 + + + + + + + + +Node34 + + +graphics_support.h + + + + + +Node12->Node34 + + + + + + + + +Node36 + + +init_display.c + + + + + +Node12->Node36 + + + + + + + + +Node37 + + +init_display.c + + + + + +Node12->Node37 + + + + + + + + +Node38 + + +kalman_filter_demo.cpp + + + + + +Node12->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node12->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node12->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node12->Node41 + + + + + + + + +Node42 + + +main.c + + + + + +Node12->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node12->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node12->Node44 + + + + + + + + +Node24->Node7 + + + + + + + + +Node25 + + +dsps_fird_init_s16.c + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +dsps_firmr_f32_ansi.c + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +dsps_firmr_init_f32.c + + + + + +Node24->Node27 + + + + + + + + +Node28 + + +dsps_firmr_init_s16.c + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +dsps_firmr_s16_ansi.c + + + + + +Node24->Node29 + + + + + + + + +Node31 + + +graphics_support.cpp + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +graphics_support.cpp + + + + + +Node32->Node33 + + + + + + + + +Node35 + + +graphics_support.cpp + + + + + +Node34->Node35 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h__dep__incl_org.svg b/docs/html/dsps__fft2r_8h__dep__incl_org.svg new file mode 100644 index 0000000..9808525 --- /dev/null +++ b/docs/html/dsps__fft2r_8h__dep__incl_org.svg @@ -0,0 +1,822 @@ + + + + + + +dsps_fft2r.h + + +Node1 + + +dsps_fft2r.h + + + + + +Node2 + + +dsps_dct_f32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_dctiv_f32.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_dstiv_f32.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dsps_sfdr_f32.cpp + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsps_snr_f32.cpp + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_dsp.h + + + + + +Node1->Node12 + + + + + + + + +Node45 + + +test_fft2r.c + + + + + +Node1->Node45 + + + + + + + + +Node13 + + +3d_graphics_demo.cpp + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node12->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node12->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node12->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node12->Node18 + + + + + + + + +Node19 + + +3d_kalman_demo.cpp + + + + + +Node12->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node12->Node20 + + + + + + + + +Node21 + + +audio_amp_main.c + + + + + +Node12->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node12->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node12->Node23 + + + + + + + + +Node24 + + +dsp_tests.h + + + + + +Node12->Node24 + + + + + + + + +Node30 + + +graphics_support.h + + + + + +Node12->Node30 + + + + + + + + +Node32 + + +graphics_support.h + + + + + +Node12->Node32 + + + + + + + + +Node34 + + +graphics_support.h + + + + + +Node12->Node34 + + + + + + + + +Node36 + + +init_display.c + + + + + +Node12->Node36 + + + + + + + + +Node37 + + +init_display.c + + + + + +Node12->Node37 + + + + + + + + +Node38 + + +kalman_filter_demo.cpp + + + + + +Node12->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node12->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node12->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node12->Node41 + + + + + + + + +Node42 + + +main.c + + + + + +Node12->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node12->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node12->Node44 + + + + + + + + +Node24->Node7 + + + + + + + + +Node25 + + +dsps_fird_init_s16.c + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +dsps_firmr_f32_ansi.c + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +dsps_firmr_init_f32.c + + + + + +Node24->Node27 + + + + + + + + +Node28 + + +dsps_firmr_init_s16.c + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +dsps_firmr_s16_ansi.c + + + + + +Node24->Node29 + + + + + + + + +Node31 + + +graphics_support.cpp + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +graphics_support.cpp + + + + + +Node32->Node33 + + + + + + + + +Node35 + + +graphics_support.cpp + + + + + +Node34->Node35 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h__incl.md5 b/docs/html/dsps__fft2r_8h__incl.md5 new file mode 100644 index 0000000..97d2017 --- /dev/null +++ b/docs/html/dsps__fft2r_8h__incl.md5 @@ -0,0 +1 @@ +cc7d264b3fd0afd07761d490fd0f918a \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h__incl.svg b/docs/html/dsps__fft2r_8h__incl.svg new file mode 100644 index 0000000..88e94fd --- /dev/null +++ b/docs/html/dsps__fft2r_8h__incl.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + +dsps_fft2r.h + + +Node1 + + +dsps_fft2r.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +sdkconfig.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_fft_tables.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_fft2r_platform.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node9->Node7 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h__incl_org.svg b/docs/html/dsps__fft2r_8h__incl_org.svg new file mode 100644 index 0000000..4784261 --- /dev/null +++ b/docs/html/dsps__fft2r_8h__incl_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsps_fft2r.h + + +Node1 + + +dsps_fft2r.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +sdkconfig.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_fft_tables.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_fft2r_platform.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node9->Node7 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph.md5 b/docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph.md5 new file mode 100644 index 0000000..7d67178 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph.md5 @@ -0,0 +1 @@ +f2290e1fd9dce8f286f7de53278c168b \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph.svg b/docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph.svg new file mode 100644 index 0000000..fbf67bf --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_fft2r_sc16_ansi_ + + +Node1 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +xtfixed_bf_1 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +xtfixed_bf_2 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xtfixed_bf_3 + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +xtfixed_bf_4 + + + + + +Node1->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph_org.svg new file mode 100644 index 0000000..8b196fe --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a0100ecbb0541f77c5d784c2ff6128d2a_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_fft2r_sc16_ansi_ + + +Node1 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +xtfixed_bf_1 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +xtfixed_bf_2 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xtfixed_bf_3 + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +xtfixed_bf_4 + + + + + +Node1->Node6 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph.md5 b/docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph.md5 new file mode 100644 index 0000000..bdccf29 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph.md5 @@ -0,0 +1 @@ +3c0dd025e8d6c7c9ef07aaf9a03e40fb \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph.svg b/docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph.svg new file mode 100644 index 0000000..8618181 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_fft2r_deinit_fc32 + + +Node1 + + +dsps_fft2r_deinit_fc32 + + + + + +Node2 + + +dsps_fft2r_rev_tables +_init_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph_org.svg new file mode 100644 index 0000000..e961f9b --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a11174f3c8575159be82412f9f3ef8412_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_fft2r_deinit_fc32 + + +Node1 + + +dsps_fft2r_deinit_fc32 + + + + + +Node2 + + +dsps_fft2r_rev_tables +_init_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph.md5 b/docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph.md5 new file mode 100644 index 0000000..50f46f0 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph.md5 @@ -0,0 +1 @@ +160ca4a1196698b630db7baa16bab180 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph.svg b/docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph.svg new file mode 100644 index 0000000..b720ff4 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_gen_bitrev2r_table + + +Node1 + + +dsps_gen_bitrev2r_table + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph_org.svg new file mode 100644 index 0000000..67959a0 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a19aaad1963cbbdb238dacc2072203d31_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_gen_bitrev2r_table + + +Node1 + + +dsps_gen_bitrev2r_table + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 b/docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 new file mode 100644 index 0000000..168a63e --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 @@ -0,0 +1 @@ +880ac6f314066777b02310d8e0048d1f \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.svg b/docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.svg new file mode 100644 index 0000000..9fc0a54 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft2r_fc32_ansi_ + + +Node1 + + +dsps_fft2r_fc32_ansi_ + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg new file mode 100644 index 0000000..b5eadb0 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a377638f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft2r_fc32_ansi_ + + +Node1 + + +dsps_fft2r_fc32_ansi_ + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 new file mode 100644 index 0000000..58f08d5 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 @@ -0,0 +1 @@ +13dc2d3d8c65871f855c0bee6833d507 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg new file mode 100644 index 0000000..49ee6da --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + +dsps_fft2r_init_sc16 + + +Node1 + + +dsps_fft2r_init_sc16 + + + + + +Node2 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_gen_w_r2_sc16 + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg new file mode 100644 index 0000000..00ac534 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg @@ -0,0 +1,84 @@ + + + + + + +dsps_fft2r_init_sc16 + + +Node1 + + +dsps_fft2r_init_sc16 + + + + + +Node2 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_gen_w_r2_sc16 + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 new file mode 100644 index 0000000..4c58c5a --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 @@ -0,0 +1 @@ +3574ab081b03d7d7afaa63dcb4bb90cd \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg new file mode 100644 index 0000000..d9e9653 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsps_fft2r_init_sc16 + + +Node1 + + +dsps_fft2r_init_sc16 + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg new file mode 100644 index 0000000..d83adf4 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsps_fft2r_init_sc16 + + +Node1 + + +dsps_fft2r_init_sc16 + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph.md5 b/docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph.md5 new file mode 100644 index 0000000..026f87b --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph.md5 @@ -0,0 +1 @@ +9c9109242baee98f05a8468bdc9d6346 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph.svg b/docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph.svg new file mode 100644 index 0000000..e0e0ce7 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_fft2r_fc32_aes3_ + + +Node1 + + +dsps_fft2r_fc32_aes3_ + + + + + +Node2 + + +test_fft2r + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph_org.svg b/docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph_org.svg new file mode 100644 index 0000000..79407cc --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a4998d68606bf7e1cd35b25197345a9b0_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_fft2r_fc32_aes3_ + + +Node1 + + +dsps_fft2r_fc32_aes3_ + + + + + +Node2 + + +test_fft2r + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 new file mode 100644 index 0000000..f3b8ae0 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 @@ -0,0 +1 @@ +75b77998b3e54adab1163496c3ee6431 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.svg b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.svg new file mode 100644 index 0000000..2ed71b9 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_bit_rev_sc16_ansi + + +Node1 + + +dsps_bit_rev_sc16_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph_org.svg new file mode 100644 index 0000000..64747d8 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_bit_rev_sc16_ansi + + +Node1 + + +dsps_bit_rev_sc16_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.md5 b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.md5 new file mode 100644 index 0000000..0e4e966 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.md5 @@ -0,0 +1 @@ +05d2ccfc19468fc7378e32b56c2ba4c0 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.svg b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.svg new file mode 100644 index 0000000..5ac5015 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_bit_rev_sc16_ansi + + +Node1 + + +dsps_bit_rev_sc16_ansi + + + + + +Node2 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node1->Node5 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph_org.svg b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph_org.svg new file mode 100644 index 0000000..384446a --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a4f30eaf6ab6af9c67f262e11ef917361_icgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_bit_rev_sc16_ansi + + +Node1 + + +dsps_bit_rev_sc16_ansi + + + + + +Node2 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node1->Node5 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph.md5 b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph.md5 new file mode 100644 index 0000000..997020b --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph.md5 @@ -0,0 +1 @@ +24b6a5ce2f5f9e2041b03eed446c0364 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph.svg b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph.svg new file mode 100644 index 0000000..505e0cf --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_gen_w_r2_fc32 + + +Node1 + + +dsps_gen_w_r2_fc32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph_org.svg new file mode 100644 index 0000000..a6d4064 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_gen_w_r2_fc32 + + +Node1 + + +dsps_gen_w_r2_fc32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph.md5 b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph.md5 new file mode 100644 index 0000000..f3953dc --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph.md5 @@ -0,0 +1 @@ +c9c3a562fba368b7633274c907ff1d1f \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph.svg b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph.svg new file mode 100644 index 0000000..a114e95 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_gen_w_r2_fc32 + + +Node1 + + +dsps_gen_w_r2_fc32 + + + + + +Node2 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_sfdr_f32 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_snr_f32 + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +test_fft2r + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +main + + + + + +Node5->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph_org.svg b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph_org.svg new file mode 100644 index 0000000..231c187 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a512cd6d2b04793b59881041e37e51738_icgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_gen_w_r2_fc32 + + +Node1 + + +dsps_gen_w_r2_fc32 + + + + + +Node2 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_sfdr_f32 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_snr_f32 + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +test_fft2r + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +main + + + + + +Node5->Node6 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph.md5 b/docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph.md5 new file mode 100644 index 0000000..401ddfb --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph.md5 @@ -0,0 +1 @@ +243aad58d2abfc4c211144162a137541 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph.svg b/docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph.svg new file mode 100644 index 0000000..0340deb --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx2reC_fc32_ansi + + +Node1 + + +dsps_cplx2reC_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph_org.svg new file mode 100644 index 0000000..d6ff654 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a53b5f7c6108a9752865753a01e84627a_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx2reC_fc32_ansi + + +Node1 + + +dsps_cplx2reC_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph.md5 b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph.md5 new file mode 100644 index 0000000..348b355 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph.md5 @@ -0,0 +1 @@ +db546e22897d203da64797f4fa74978b \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph.svg b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph.svg new file mode 100644 index 0000000..89782b5 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_gen_w_r2_sc16 + + +Node1 + + +dsps_gen_w_r2_sc16 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph_org.svg new file mode 100644 index 0000000..70ac5e0 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_gen_w_r2_sc16 + + +Node1 + + +dsps_gen_w_r2_sc16 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph.md5 b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph.md5 new file mode 100644 index 0000000..503aaeb --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph.md5 @@ -0,0 +1 @@ +5ef2e3ca33b50e61c7d81cc97ec3f05e \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph.svg b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph.svg new file mode 100644 index 0000000..d3e79b0 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_gen_w_r2_sc16 + + +Node1 + + +dsps_gen_w_r2_sc16 + + + + + +Node2 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph_org.svg b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph_org.svg new file mode 100644 index 0000000..a0e8abf --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9b94ca984cb2a6935843f2efed9ad233_icgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +dsps_gen_w_r2_sc16 + + +Node1 + + +dsps_gen_w_r2_sc16 + + + + + +Node2 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 new file mode 100644 index 0000000..2e8b762 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 @@ -0,0 +1 @@ +b92c558feab4bac6f0a98fee19e85355 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.svg b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.svg new file mode 100644 index 0000000..37460ec --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx2reC_sc16 + + +Node1 + + +dsps_cplx2reC_sc16 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph_org.svg b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph_org.svg new file mode 100644 index 0000000..5f9d19e --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx2reC_sc16 + + +Node1 + + +dsps_cplx2reC_sc16 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.md5 b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.md5 new file mode 100644 index 0000000..b91165d --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.md5 @@ -0,0 +1 @@ +d1199b975b1fddb64df367e65983b967 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.svg b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.svg new file mode 100644 index 0000000..2e9dcbc --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsps_cplx2reC_sc16 + + +Node1 + + +dsps_cplx2reC_sc16 + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph_org.svg b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph_org.svg new file mode 100644 index 0000000..d9040a2 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_a9eedd9a59867bc7e1a967fb4a8200065_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsps_cplx2reC_sc16 + + +Node1 + + +dsps_cplx2reC_sc16 + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph.md5 b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph.md5 new file mode 100644 index 0000000..ff20b8d --- /dev/null +++ b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph.md5 @@ -0,0 +1 @@ +deef6b533d054cb58552de1c502a82e6 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph.svg b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph.svg new file mode 100644 index 0000000..810ce78 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + +dsps_fft2r_init_fc32 + + +Node1 + + +dsps_fft2r_init_fc32 + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dsps_gen_w_r2_fc32 + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +dsp_is_power_of_two + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph_org.svg b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph_org.svg new file mode 100644 index 0000000..8235c2f --- /dev/null +++ b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_cgraph_org.svg @@ -0,0 +1,102 @@ + + + + + + +dsps_fft2r_init_fc32 + + +Node1 + + +dsps_fft2r_init_fc32 + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dsps_gen_w_r2_fc32 + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +dsp_is_power_of_two + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph.md5 b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph.md5 new file mode 100644 index 0000000..fd3d2d1 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph.md5 @@ -0,0 +1 @@ +c78e14cdc430faeeb23d74f2b54a492c \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph.svg b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph.svg new file mode 100644 index 0000000..f8b902c --- /dev/null +++ b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +dsps_fft2r_init_fc32 + + +Node1 + + +dsps_fft2r_init_fc32 + + + + + +Node2 + + +dsps_sfdr_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_snr_f32 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +test_fft2r + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +main + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph_org.svg b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph_org.svg new file mode 100644 index 0000000..f53bb6d --- /dev/null +++ b/docs/html/dsps__fft2r_8h_aa5f77f0db0301950603a20f9e67822aa_icgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +dsps_fft2r_init_fc32 + + +Node1 + + +dsps_fft2r_init_fc32 + + + + + +Node2 + + +dsps_sfdr_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_snr_f32 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +test_fft2r + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +main + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph.md5 b/docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph.md5 new file mode 100644 index 0000000..5052eeb --- /dev/null +++ b/docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph.md5 @@ -0,0 +1 @@ +a799a3df90612458045d673f7477b42d \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph.svg b/docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph.svg new file mode 100644 index 0000000..4ec85a3 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_cplx2real_sc16_ansi + + +Node1 + + +dsps_cplx2real_sc16_ansi + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reverse + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph_org.svg b/docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph_org.svg new file mode 100644 index 0000000..fd51233 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_ab8535a7b802e71380ae6da8c859288e2_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_cplx2real_sc16_ansi + + +Node1 + + +dsps_cplx2real_sc16_ansi + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reverse + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph.md5 b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph.md5 new file mode 100644 index 0000000..b18667b --- /dev/null +++ b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph.md5 @@ -0,0 +1 @@ +b0067c4ada7215a6d8a3a5c7b588e7be \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph.svg b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph.svg new file mode 100644 index 0000000..e8dc71a --- /dev/null +++ b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_bit_rev_fc32_ansi + + +Node1 + + +dsps_bit_rev_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph_org.svg b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph_org.svg new file mode 100644 index 0000000..bbcc3af --- /dev/null +++ b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_bit_rev_fc32_ansi + + +Node1 + + +dsps_bit_rev_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph.md5 b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph.md5 new file mode 100644 index 0000000..95b6a1c --- /dev/null +++ b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph.md5 @@ -0,0 +1 @@ +0fcf4dd5ec277288964f13117beb30a9 \ No newline at end of file diff --git a/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph.svg b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph.svg new file mode 100644 index 0000000..a4dba94 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +dsps_bit_rev_fc32_ansi + + +Node1 + + +dsps_bit_rev_fc32_ansi + + + + + +Node2 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_sfdr_f32 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_snr_f32 + + + + + +Node1->Node4 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +test_fft2r + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +main + + + + + +Node5->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph_org.svg b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph_org.svg new file mode 100644 index 0000000..2ef725a --- /dev/null +++ b/docs/html/dsps__fft2r_8h_af6eeaefef23180c3d2c319bfe402b558_icgraph_org.svg @@ -0,0 +1,129 @@ + + + + + + +dsps_bit_rev_fc32_ansi + + +Node1 + + +dsps_bit_rev_fc32_ansi + + + + + +Node2 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_sfdr_f32 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_snr_f32 + + + + + +Node1->Node4 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +test_fft2r + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +main + + + + + +Node5->Node6 + + + + + + + + diff --git a/docs/html/dsps__fft2r_8h_source.html b/docs/html/dsps__fft2r_8h_source.html new file mode 100644 index 0000000..28972a2 --- /dev/null +++ b/docs/html/dsps__fft2r_8h_source.html @@ -0,0 +1,281 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_fft2r_H_
+
16#define _dsps_fft2r_H_
+
17
+
18#include "dsp_err.h"
+
19#include "sdkconfig.h"
+
20#include "dsps_fft_tables.h"
+
21#include "dsps_fft2r_platform.h"
+
22
+
23#ifndef CONFIG_DSP_MAX_FFT_SIZE
+
24#define CONFIG_DSP_MAX_FFT_SIZE 4096
+
25#endif // CONFIG_DSP_MAX_FFT_SIZE
+
26
+
27#ifdef __cplusplus
+
28extern "C"
+
29{
+
30#endif
+
31
+
32extern float *dsps_fft_w_table_fc32;
+
33extern int dsps_fft_w_table_size;
+
34extern uint8_t dsps_fft2r_initialized;
+
35
+
36extern int16_t *dsps_fft_w_table_sc16;
+ +
38extern uint8_t dsps_fft2r_sc16_initialized;
+
39
+
40
+
61esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size);
+
62esp_err_t dsps_fft2r_init_sc16(int16_t *fft_table_buff, int table_size);
+
64
+
73void dsps_fft2r_deinit_fc32(void);
+
74void dsps_fft2r_deinit_sc16(void);
+
76
+
94esp_err_t dsps_fft2r_fc32_ansi_(float *data, int N, float *w);
+
95esp_err_t dsps_fft2r_fc32_ae32_(float *data, int N, float *w);
+
96esp_err_t dsps_fft2r_fc32_aes3_(float *data, int N, float *w);
+
97esp_err_t dsps_fft2r_fc32_arp4_(float *data, int N, float *w);
+
98
+
99esp_err_t dsps_fft2r_sc16_ansi_(int16_t *data, int N, int16_t *w);
+
100esp_err_t dsps_fft2r_sc16_ae32_(int16_t *data, int N, int16_t *w);
+
101esp_err_t dsps_fft2r_sc16_aes3_(int16_t *data, int N, int16_t *w);
+
102esp_err_t dsps_fft2r_sc16_arp4_(int16_t *data, int N, int16_t *w);
+
103
+
105// This is workaround because linker generates permanent error when assembler uses
+
106// direct access to the table pointer
+
107#define dsps_fft2r_fc32_ae32(data, N) dsps_fft2r_fc32_ae32_(data, N, dsps_fft_w_table_fc32)
+
108#define dsps_fft2r_fc32_aes3(data, N) dsps_fft2r_fc32_aes3_(data, N, dsps_fft_w_table_fc32)
+
109#define dsps_fft2r_fc32_arp4(data, N) dsps_fft2r_fc32_arp4_(data, N, dsps_fft_w_table_fc32)
+
110
+
111#define dsps_fft2r_sc16_ae32(data, N) dsps_fft2r_sc16_ae32_(data, N, dsps_fft_w_table_sc16)
+
112#define dsps_fft2r_sc16_aes3(data, N) dsps_fft2r_sc16_aes3_(data, N, dsps_fft_w_table_sc16)
+
113#define dsps_fft2r_sc16_arp4(data, N) dsps_fft2r_sc16_arp4_(data, N, dsps_fft_w_table_sc16)
+
114#define dsps_fft2r_fc32_ansi(data, N) dsps_fft2r_fc32_ansi_(data, N, dsps_fft_w_table_fc32)
+
115#define dsps_fft2r_sc16_ansi(data, N) dsps_fft2r_sc16_ansi_(data, N, dsps_fft_w_table_sc16)
+
116
+ + + +
136
+
137esp_err_t dsps_bit_rev_lookup_fc32_ansi(float *data, int reverse_size, uint16_t *reverse_tab);
+
138esp_err_t dsps_bit_rev_lookup_fc32_ae32(float *data, int reverse_size, uint16_t *reverse_tab);
+
139esp_err_t dsps_bit_rev_lookup_fc32_aes3(float *data, int reverse_size, uint16_t *reverse_tab);
+
140
+
157esp_err_t dsps_gen_w_r2_fc32(float *w, int N);
+
158esp_err_t dsps_gen_w_r2_sc16(int16_t *w, int N);
+
160
+ +
180esp_err_t dsps_cplx2reC_sc16(int16_t *data, int N);
+
182
+ + +
204
+
205esp_err_t dsps_gen_bitrev2r_table(int N, int step, char *name_ext);
+
206
+
207#ifdef __cplusplus
+
208}
+
209#endif
+
210
+
211#if CONFIG_DSP_OPTIMIZED
+
212#define dsps_bit_rev_fc32 dsps_bit_rev_fc32_ansi
+
213#define dsps_cplx2reC_fc32 dsps_cplx2reC_fc32_ansi
+
214
+
215#if (dsps_fft2r_fc32_aes3_enabled == 1)
+
216#define dsps_fft2r_fc32 dsps_fft2r_fc32_aes3
+
217#elif (dsps_fft2r_fc32_ae32_enabled == 1)
+
218#define dsps_fft2r_fc32 dsps_fft2r_fc32_ae32
+
219#elif (dsps_fft2r_fc32_arp4_enabled == 1)
+
220#define dsps_fft2r_fc32 dsps_fft2r_fc32_arp4
+
221#else
+
222#define dsps_fft2r_fc32 dsps_fft2r_fc32_ansi
+
223#endif
+
224
+
225#if (dsps_fft2r_sc16_aes3_enabled == 1)
+
226#define dsps_fft2r_sc16 dsps_fft2r_sc16_aes3
+
227#elif (dsps_fft2r_sc16_ae32_enabled == 1)
+
228#define dsps_fft2r_sc16 dsps_fft2r_sc16_ae32
+
229#elif (dsps_fft2r_sc16_arp4_enabled == 1)
+
230#define dsps_fft2r_sc16 dsps_fft2r_sc16_arp4
+
231#else
+
232#define dsps_fft2r_sc16 dsps_fft2r_sc16_ansi
+
233#endif
+
234
+
235#if (dsps_bit_rev_lookup_fc32_ae32_enabled == 1)
+
236#if (dsps_fft2r_fc32_aes3_enabled)
+
237#define dsps_bit_rev_lookup_fc32 dsps_bit_rev_lookup_fc32_aes3
+
238#else
+
239#define dsps_bit_rev_lookup_fc32 dsps_bit_rev_lookup_fc32_ae32
+
240#endif // dsps_fft2r_fc32_aes3_enabled
+
241#else
+
242#define dsps_bit_rev_lookup_fc32 dsps_bit_rev_lookup_fc32_ansi
+
243#endif
+
244
+
245
+
246#else // CONFIG_DSP_OPTIMIZED
+
247
+
248#define dsps_fft2r_fc32 dsps_fft2r_fc32_ansi
+
249#define dsps_bit_rev_fc32 dsps_bit_rev_fc32_ansi
+
250#define dsps_cplx2reC_fc32 dsps_cplx2reC_fc32_ansi
+
251#define dsps_bit_rev_sc16 dsps_bit_rev_sc16_ansi
+
252#define dsps_bit_rev_lookup_fc32 dsps_bit_rev_lookup_fc32_ansi
+
253#define dsps_fft2r_sc16 dsps_fft2r_sc16_ansi
+
254
+
255#endif // CONFIG_DSP_OPTIMIZED
+
256
+
257#endif // _dsps_fft2r_H_
+ +
esp_err_t dsps_fft2r_sc16_ansi_(int16_t *data, int N, int16_t *w)
+
void dsps_fft2r_deinit_fc32(void)
deinit fft tables
+
esp_err_t dsps_cplx2real256_fc32_ansi(float *data)
+
esp_err_t dsps_gen_bitrev2r_table(int N, int step, char *name_ext)
+
esp_err_t dsps_fft2r_fc32_arp4_(float *data, int N, float *w)
+
esp_err_t dsps_fft2r_fc32_ansi_(float *data, int N, float *w)
complex FFT of radix 2
+
esp_err_t dsps_fft2r_sc16_arp4_(int16_t *data, int N, int16_t *w)
+
esp_err_t dsps_fft2r_init_sc16(int16_t *fft_table_buff, int table_size)
+
esp_err_t dsps_fft2r_fc32_aes3_(float *data, int N, float *w)
+
esp_err_t dsps_bit_rev_sc16_ansi(int16_t *data, int N)
+
esp_err_t dsps_gen_w_r2_fc32(float *w, int N)
Generate coefficients table for the FFT radix 2.
+
esp_err_t dsps_cplx2reC_fc32_ansi(float *data, int N)
Convert complex array to two real arrays.
+
esp_err_t dsps_fft2r_sc16_ae32_(int16_t *data, int N, int16_t *w)
+
esp_err_t dsps_bit_rev_lookup_fc32_aes3(float *data, int reverse_size, uint16_t *reverse_tab)
+
esp_err_t dsps_gen_w_r2_sc16(int16_t *w, int N)
+
esp_err_t dsps_cplx2reC_sc16(int16_t *data, int N)
+
esp_err_t dsps_fft2r_fc32_ae32_(float *data, int N, float *w)
+
esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
init fft tables
+
void dsps_fft2r_deinit_sc16(void)
+
esp_err_t dsps_bit_rev_lookup_fc32_ae32(float *data, int reverse_size, uint16_t *reverse_tab)
+
esp_err_t dsps_cplx2real_sc16_ansi(int16_t *data, int N)
Convert complex FFT result to real array.
+
esp_err_t dsps_fft2r_sc16_aes3_(int16_t *data, int N, int16_t *w)
+
esp_err_t dsps_bit_rev_lookup_fc32_ansi(float *data, int reverse_size, uint16_t *reverse_tab)
+
esp_err_t dsps_bit_rev2r_fc32(float *data, int N)
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+
float * dsps_fft_w_table_fc32
+
uint8_t dsps_fft2r_initialized
+
int dsps_fft_w_table_size
+ +
uint8_t dsps_fft2r_sc16_initialized
+
int16_t * dsps_fft_w_table_sc16
+
int dsps_fft_w_table_sc16_size
+ +
int esp_err_t
Definition esp_err.h:21
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+
+
+ + + + diff --git a/docs/html/dsps__fft2r__bitrev__tables__fc32_8c.html b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c.html new file mode 100644 index 0000000..1f864db --- /dev/null +++ b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c.html @@ -0,0 +1,1142 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_bitrev_tables_fc32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_bitrev_tables_fc32.c File Reference
+
+
+
#include <stdint.h>
+#include "dsps_fft_tables.h"
+
+Include dependency graph for dsps_fft2r_bitrev_tables_fc32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

void dsps_fft2r_rev_tables_init_fc32 (void)
+ + + + + + + + + + + + + + + + + + + + + +

+Variables

const uint16_t bitrev2r_table_16_fc32 []
const uint16_t bitrev2r_table_32_fc32 []
const uint16_t bitrev2r_table_64_fc32 []
const uint16_t bitrev2r_table_128_fc32 []
const uint16_t bitrev2r_table_256_fc32 []
const uint16_t bitrev2r_table_512_fc32 []
const uint16_t bitrev2r_table_1024_fc32 []
const uint16_t bitrev2r_table_2048_fc32 []
const uint16_t bitrev2r_table_4096_fc32 []
uint16_t * dsps_fft2r_rev_tables_fc32 []
const uint16_t bitrev2r_table_16_fc32_size = 6
const uint16_t bitrev2r_table_32_fc32_size = 12
const uint16_t bitrev2r_table_64_fc32_size = 28
const uint16_t bitrev2r_table_128_fc32_size = 56
const uint16_t bitrev2r_table_256_fc32_size = 120
const uint16_t bitrev2r_table_512_fc32_size = 240
const uint16_t bitrev2r_table_1024_fc32_size = 496
const uint16_t bitrev2r_table_2048_fc32_size = 992
const uint16_t bitrev2r_table_4096_fc32_size = 2016
const uint16_t dsps_fft2r_rev_tables_fc32_size []
+

Function Documentation

+ +

◆ dsps_fft2r_rev_tables_init_fc32()

+ +
+
+ + + + + + + +
void dsps_fft2r_rev_tables_init_fc32 (void )
+
+ +

Definition at line 544 of file dsps_fft2r_bitrev_tables_fc32.c.

+
545{
+ + + + + + + + + +
555
+
556}
+
const uint16_t bitrev2r_table_16_fc32[]
+
const uint16_t bitrev2r_table_128_fc32[]
+
const uint16_t bitrev2r_table_1024_fc32[]
+
const uint16_t bitrev2r_table_512_fc32[]
+
const uint16_t bitrev2r_table_32_fc32[]
+
const uint16_t bitrev2r_table_4096_fc32[]
+
const uint16_t bitrev2r_table_64_fc32[]
+
uint16_t * dsps_fft2r_rev_tables_fc32[]
+
const uint16_t bitrev2r_table_256_fc32[]
+
const uint16_t bitrev2r_table_2048_fc32[]
+
+

References bitrev2r_table_1024_fc32, bitrev2r_table_128_fc32, bitrev2r_table_16_fc32, bitrev2r_table_2048_fc32, bitrev2r_table_256_fc32, bitrev2r_table_32_fc32, bitrev2r_table_4096_fc32, bitrev2r_table_512_fc32, bitrev2r_table_64_fc32, and dsps_fft2r_rev_tables_fc32.

+ +

Referenced by dsps_fft2r_deinit_fc32().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ bitrev2r_table_1024_fc32

+ +
+
+ + + + +
const uint16_t bitrev2r_table_1024_fc32[]
+
+ +

Definition at line 97 of file dsps_fft2r_bitrev_tables_fc32.c.

+
97 {
+
98 8, 4096, 16, 2048, 24, 6144, 32, 1024, 40, 5120, 48, 3072, 56, 7168, 64, 512,
+
99 72, 4608, 80, 2560, 88, 6656, 96, 1536, 104, 5632, 112, 3584, 120, 7680, 128, 256,
+
100 136, 4352, 144, 2304, 152, 6400, 160, 1280, 168, 5376, 176, 3328, 184, 7424, 192, 768,
+
101 200, 4864, 208, 2816, 216, 6912, 224, 1792, 232, 5888, 240, 3840, 248, 7936, 264, 4224,
+
102 272, 2176, 280, 6272, 288, 1152, 296, 5248, 304, 3200, 312, 7296, 320, 640, 328, 4736,
+
103 336, 2688, 344, 6784, 352, 1664, 360, 5760, 368, 3712, 376, 7808, 392, 4480, 400, 2432,
+
104 408, 6528, 416, 1408, 424, 5504, 432, 3456, 440, 7552, 448, 896, 456, 4992, 464, 2944,
+
105 472, 7040, 480, 1920, 488, 6016, 496, 3968, 504, 8064, 520, 4160, 528, 2112, 536, 6208,
+
106 544, 1088, 552, 5184, 560, 3136, 568, 7232, 584, 4672, 592, 2624, 600, 6720, 608, 1600,
+
107 616, 5696, 624, 3648, 632, 7744, 648, 4416, 656, 2368, 664, 6464, 672, 1344, 680, 5440,
+
108 688, 3392, 696, 7488, 704, 832, 712, 4928, 720, 2880, 728, 6976, 736, 1856, 744, 5952,
+
109 752, 3904, 760, 8000, 776, 4288, 784, 2240, 792, 6336, 800, 1216, 808, 5312, 816, 3264,
+
110 824, 7360, 840, 4800, 848, 2752, 856, 6848, 864, 1728, 872, 5824, 880, 3776, 888, 7872,
+
111 904, 4544, 912, 2496, 920, 6592, 928, 1472, 936, 5568, 944, 3520, 952, 7616, 968, 5056,
+
112 976, 3008, 984, 7104, 992, 1984, 1000, 6080, 1008, 4032, 1016, 8128, 1032, 4128, 1040, 2080,
+
113 1048, 6176, 1064, 5152, 1072, 3104, 1080, 7200, 1096, 4640, 1104, 2592, 1112, 6688, 1120, 1568,
+
114 1128, 5664, 1136, 3616, 1144, 7712, 1160, 4384, 1168, 2336, 1176, 6432, 1184, 1312, 1192, 5408,
+
115 1200, 3360, 1208, 7456, 1224, 4896, 1232, 2848, 1240, 6944, 1248, 1824, 1256, 5920, 1264, 3872,
+
116 1272, 7968, 1288, 4256, 1296, 2208, 1304, 6304, 1320, 5280, 1328, 3232, 1336, 7328, 1352, 4768,
+
117 1360, 2720, 1368, 6816, 1376, 1696, 1384, 5792, 1392, 3744, 1400, 7840, 1416, 4512, 1424, 2464,
+
118 1432, 6560, 1448, 5536, 1456, 3488, 1464, 7584, 1480, 5024, 1488, 2976, 1496, 7072, 1504, 1952,
+
119 1512, 6048, 1520, 4000, 1528, 8096, 1544, 4192, 1552, 2144, 1560, 6240, 1576, 5216, 1584, 3168,
+
120 1592, 7264, 1608, 4704, 1616, 2656, 1624, 6752, 1640, 5728, 1648, 3680, 1656, 7776, 1672, 4448,
+
121 1680, 2400, 1688, 6496, 1704, 5472, 1712, 3424, 1720, 7520, 1736, 4960, 1744, 2912, 1752, 7008,
+
122 1760, 1888, 1768, 5984, 1776, 3936, 1784, 8032, 1800, 4320, 1808, 2272, 1816, 6368, 1832, 5344,
+
123 1840, 3296, 1848, 7392, 1864, 4832, 1872, 2784, 1880, 6880, 1896, 5856, 1904, 3808, 1912, 7904,
+
124 1928, 4576, 1936, 2528, 1944, 6624, 1960, 5600, 1968, 3552, 1976, 7648, 1992, 5088, 2000, 3040,
+
125 2008, 7136, 2024, 6112, 2032, 4064, 2040, 8160, 2056, 4112, 2072, 6160, 2088, 5136, 2096, 3088,
+
126 2104, 7184, 2120, 4624, 2128, 2576, 2136, 6672, 2152, 5648, 2160, 3600, 2168, 7696, 2184, 4368,
+
127 2192, 2320, 2200, 6416, 2216, 5392, 2224, 3344, 2232, 7440, 2248, 4880, 2256, 2832, 2264, 6928,
+
128 2280, 5904, 2288, 3856, 2296, 7952, 2312, 4240, 2328, 6288, 2344, 5264, 2352, 3216, 2360, 7312,
+
129 2376, 4752, 2384, 2704, 2392, 6800, 2408, 5776, 2416, 3728, 2424, 7824, 2440, 4496, 2456, 6544,
+
130 2472, 5520, 2480, 3472, 2488, 7568, 2504, 5008, 2512, 2960, 2520, 7056, 2536, 6032, 2544, 3984,
+
131 2552, 8080, 2568, 4176, 2584, 6224, 2600, 5200, 2608, 3152, 2616, 7248, 2632, 4688, 2648, 6736,
+
132 2664, 5712, 2672, 3664, 2680, 7760, 2696, 4432, 2712, 6480, 2728, 5456, 2736, 3408, 2744, 7504,
+
133 2760, 4944, 2768, 2896, 2776, 6992, 2792, 5968, 2800, 3920, 2808, 8016, 2824, 4304, 2840, 6352,
+
134 2856, 5328, 2864, 3280, 2872, 7376, 2888, 4816, 2904, 6864, 2920, 5840, 2928, 3792, 2936, 7888,
+
135 2952, 4560, 2968, 6608, 2984, 5584, 2992, 3536, 3000, 7632, 3016, 5072, 3032, 7120, 3048, 6096,
+
136 3056, 4048, 3064, 8144, 3080, 4144, 3096, 6192, 3112, 5168, 3128, 7216, 3144, 4656, 3160, 6704,
+
137 3176, 5680, 3184, 3632, 3192, 7728, 3208, 4400, 3224, 6448, 3240, 5424, 3248, 3376, 3256, 7472,
+
138 3272, 4912, 3288, 6960, 3304, 5936, 3312, 3888, 3320, 7984, 3336, 4272, 3352, 6320, 3368, 5296,
+
139 3384, 7344, 3400, 4784, 3416, 6832, 3432, 5808, 3440, 3760, 3448, 7856, 3464, 4528, 3480, 6576,
+
140 3496, 5552, 3512, 7600, 3528, 5040, 3544, 7088, 3560, 6064, 3568, 4016, 3576, 8112, 3592, 4208,
+
141 3608, 6256, 3624, 5232, 3640, 7280, 3656, 4720, 3672, 6768, 3688, 5744, 3704, 7792, 3720, 4464,
+
142 3736, 6512, 3752, 5488, 3768, 7536, 3784, 4976, 3800, 7024, 3816, 6000, 3824, 3952, 3832, 8048,
+
143 3848, 4336, 3864, 6384, 3880, 5360, 3896, 7408, 3912, 4848, 3928, 6896, 3944, 5872, 3960, 7920,
+
144 3976, 4592, 3992, 6640, 4008, 5616, 4024, 7664, 4040, 5104, 4056, 7152, 4072, 6128, 4088, 8176,
+
145 4120, 6152, 4136, 5128, 4152, 7176, 4168, 4616, 4184, 6664, 4200, 5640, 4216, 7688, 4232, 4360,
+
146 4248, 6408, 4264, 5384, 4280, 7432, 4296, 4872, 4312, 6920, 4328, 5896, 4344, 7944, 4376, 6280,
+
147 4392, 5256, 4408, 7304, 4424, 4744, 4440, 6792, 4456, 5768, 4472, 7816, 4504, 6536, 4520, 5512,
+
148 4536, 7560, 4552, 5000, 4568, 7048, 4584, 6024, 4600, 8072, 4632, 6216, 4648, 5192, 4664, 7240,
+
149 4696, 6728, 4712, 5704, 4728, 7752, 4760, 6472, 4776, 5448, 4792, 7496, 4808, 4936, 4824, 6984,
+
150 4840, 5960, 4856, 8008, 4888, 6344, 4904, 5320, 4920, 7368, 4952, 6856, 4968, 5832, 4984, 7880,
+
151 5016, 6600, 5032, 5576, 5048, 7624, 5080, 7112, 5096, 6088, 5112, 8136, 5144, 6184, 5176, 7208,
+
152 5208, 6696, 5224, 5672, 5240, 7720, 5272, 6440, 5288, 5416, 5304, 7464, 5336, 6952, 5352, 5928,
+
153 5368, 7976, 5400, 6312, 5432, 7336, 5464, 6824, 5480, 5800, 5496, 7848, 5528, 6568, 5560, 7592,
+
154 5592, 7080, 5608, 6056, 5624, 8104, 5656, 6248, 5688, 7272, 5720, 6760, 5752, 7784, 5784, 6504,
+
155 5816, 7528, 5848, 7016, 5864, 5992, 5880, 8040, 5912, 6376, 5944, 7400, 5976, 6888, 6008, 7912,
+
156 6040, 6632, 6072, 7656, 6104, 7144, 6136, 8168, 6200, 7192, 6232, 6680, 6264, 7704, 6296, 6424,
+
157 6328, 7448, 6360, 6936, 6392, 7960, 6456, 7320, 6488, 6808, 6520, 7832, 6584, 7576, 6616, 7064,
+
158 6648, 8088, 6712, 7256, 6776, 7768, 6840, 7512, 6872, 7000, 6904, 8024, 6968, 7384, 7032, 7896,
+
159 7096, 7640, 7160, 8152, 7288, 7736, 7352, 7480, 7416, 7992, 7544, 7864, 7672, 8120, 7928, 8056,
+
160};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_1024_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev2r_table_1024_fc32_size = 496
+
+ +

Definition at line 576 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_128_fc32

+ +
+
+ + + + +
const uint16_t bitrev2r_table_128_fc32[]
+
+Initial value:
= {
+
8, 512, 16, 256, 24, 768, 32, 128, 40, 640, 48, 384, 56, 896, 72, 576,
+
80, 320, 88, 832, 96, 192, 104, 704, 112, 448, 120, 960, 136, 544, 144, 288,
+
152, 800, 168, 672, 176, 416, 184, 928, 200, 608, 208, 352, 216, 864, 232, 736,
+
240, 480, 248, 992, 264, 528, 280, 784, 296, 656, 304, 400, 312, 912, 328, 592,
+
344, 848, 360, 720, 368, 464, 376, 976, 392, 560, 408, 816, 424, 688, 440, 944,
+
456, 624, 472, 880, 488, 752, 504, 1008, 536, 776, 552, 648, 568, 904, 600, 840,
+
616, 712, 632, 968, 664, 808, 696, 936, 728, 872, 760, 1000, 824, 920, 888, 984,
+
}
+
+

Definition at line 36 of file dsps_fft2r_bitrev_tables_fc32.c.

+
36 {
+
37 8, 512, 16, 256, 24, 768, 32, 128, 40, 640, 48, 384, 56, 896, 72, 576,
+
38 80, 320, 88, 832, 96, 192, 104, 704, 112, 448, 120, 960, 136, 544, 144, 288,
+
39 152, 800, 168, 672, 176, 416, 184, 928, 200, 608, 208, 352, 216, 864, 232, 736,
+
40 240, 480, 248, 992, 264, 528, 280, 784, 296, 656, 304, 400, 312, 912, 328, 592,
+
41 344, 848, 360, 720, 368, 464, 376, 976, 392, 560, 408, 816, 424, 688, 440, 944,
+
42 456, 624, 472, 880, 488, 752, 504, 1008, 536, 776, 552, 648, 568, 904, 600, 840,
+
43 616, 712, 632, 968, 664, 808, 696, 936, 728, 872, 760, 1000, 824, 920, 888, 984,
+
44};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_128_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev2r_table_128_fc32_size = 56
+
+ +

Definition at line 573 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_16_fc32

+ +
+
+ + + + +
const uint16_t bitrev2r_table_16_fc32[]
+
+Initial value:
= {
+
8, 64, 16, 32, 24, 96, 40, 80, 56, 112, 88, 104,
+
}
+
+

Definition at line 20 of file dsps_fft2r_bitrev_tables_fc32.c.

+
20 {
+
21 8, 64, 16, 32, 24, 96, 40, 80, 56, 112, 88, 104,
+
22};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_16_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev2r_table_16_fc32_size = 6
+
+ +

Definition at line 570 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_2048_fc32

+ +
+
+ + + + +
const uint16_t bitrev2r_table_2048_fc32[]
+
+ +

Definition at line 162 of file dsps_fft2r_bitrev_tables_fc32.c.

+
162 {
+
163 8, 8192, 16, 4096, 24, 12288, 32, 2048, 40, 10240, 48, 6144, 56, 14336, 64, 1024,
+
164 72, 9216, 80, 5120, 88, 13312, 96, 3072, 104, 11264, 112, 7168, 120, 15360, 128, 512,
+
165 136, 8704, 144, 4608, 152, 12800, 160, 2560, 168, 10752, 176, 6656, 184, 14848, 192, 1536,
+
166 200, 9728, 208, 5632, 216, 13824, 224, 3584, 232, 11776, 240, 7680, 248, 15872, 264, 8448,
+
167 272, 4352, 280, 12544, 288, 2304, 296, 10496, 304, 6400, 312, 14592, 320, 1280, 328, 9472,
+
168 336, 5376, 344, 13568, 352, 3328, 360, 11520, 368, 7424, 376, 15616, 384, 768, 392, 8960,
+
169 400, 4864, 408, 13056, 416, 2816, 424, 11008, 432, 6912, 440, 15104, 448, 1792, 456, 9984,
+
170 464, 5888, 472, 14080, 480, 3840, 488, 12032, 496, 7936, 504, 16128, 520, 8320, 528, 4224,
+
171 536, 12416, 544, 2176, 552, 10368, 560, 6272, 568, 14464, 576, 1152, 584, 9344, 592, 5248,
+
172 600, 13440, 608, 3200, 616, 11392, 624, 7296, 632, 15488, 648, 8832, 656, 4736, 664, 12928,
+
173 672, 2688, 680, 10880, 688, 6784, 696, 14976, 704, 1664, 712, 9856, 720, 5760, 728, 13952,
+
174 736, 3712, 744, 11904, 752, 7808, 760, 16000, 776, 8576, 784, 4480, 792, 12672, 800, 2432,
+
175 808, 10624, 816, 6528, 824, 14720, 832, 1408, 840, 9600, 848, 5504, 856, 13696, 864, 3456,
+
176 872, 11648, 880, 7552, 888, 15744, 904, 9088, 912, 4992, 920, 13184, 928, 2944, 936, 11136,
+
177 944, 7040, 952, 15232, 960, 1920, 968, 10112, 976, 6016, 984, 14208, 992, 3968, 1000, 12160,
+
178 1008, 8064, 1016, 16256, 1032, 8256, 1040, 4160, 1048, 12352, 1056, 2112, 1064, 10304, 1072, 6208,
+
179 1080, 14400, 1096, 9280, 1104, 5184, 1112, 13376, 1120, 3136, 1128, 11328, 1136, 7232, 1144, 15424,
+
180 1160, 8768, 1168, 4672, 1176, 12864, 1184, 2624, 1192, 10816, 1200, 6720, 1208, 14912, 1216, 1600,
+
181 1224, 9792, 1232, 5696, 1240, 13888, 1248, 3648, 1256, 11840, 1264, 7744, 1272, 15936, 1288, 8512,
+
182 1296, 4416, 1304, 12608, 1312, 2368, 1320, 10560, 1328, 6464, 1336, 14656, 1352, 9536, 1360, 5440,
+
183 1368, 13632, 1376, 3392, 1384, 11584, 1392, 7488, 1400, 15680, 1416, 9024, 1424, 4928, 1432, 13120,
+
184 1440, 2880, 1448, 11072, 1456, 6976, 1464, 15168, 1472, 1856, 1480, 10048, 1488, 5952, 1496, 14144,
+
185 1504, 3904, 1512, 12096, 1520, 8000, 1528, 16192, 1544, 8384, 1552, 4288, 1560, 12480, 1568, 2240,
+
186 1576, 10432, 1584, 6336, 1592, 14528, 1608, 9408, 1616, 5312, 1624, 13504, 1632, 3264, 1640, 11456,
+
187 1648, 7360, 1656, 15552, 1672, 8896, 1680, 4800, 1688, 12992, 1696, 2752, 1704, 10944, 1712, 6848,
+
188 1720, 15040, 1736, 9920, 1744, 5824, 1752, 14016, 1760, 3776, 1768, 11968, 1776, 7872, 1784, 16064,
+
189 1800, 8640, 1808, 4544, 1816, 12736, 1824, 2496, 1832, 10688, 1840, 6592, 1848, 14784, 1864, 9664,
+
190 1872, 5568, 1880, 13760, 1888, 3520, 1896, 11712, 1904, 7616, 1912, 15808, 1928, 9152, 1936, 5056,
+
191 1944, 13248, 1952, 3008, 1960, 11200, 1968, 7104, 1976, 15296, 1992, 10176, 2000, 6080, 2008, 14272,
+
192 2016, 4032, 2024, 12224, 2032, 8128, 2040, 16320, 2056, 8224, 2064, 4128, 2072, 12320, 2088, 10272,
+
193 2096, 6176, 2104, 14368, 2120, 9248, 2128, 5152, 2136, 13344, 2144, 3104, 2152, 11296, 2160, 7200,
+
194 2168, 15392, 2184, 8736, 2192, 4640, 2200, 12832, 2208, 2592, 2216, 10784, 2224, 6688, 2232, 14880,
+
195 2248, 9760, 2256, 5664, 2264, 13856, 2272, 3616, 2280, 11808, 2288, 7712, 2296, 15904, 2312, 8480,
+
196 2320, 4384, 2328, 12576, 2344, 10528, 2352, 6432, 2360, 14624, 2376, 9504, 2384, 5408, 2392, 13600,
+
197 2400, 3360, 2408, 11552, 2416, 7456, 2424, 15648, 2440, 8992, 2448, 4896, 2456, 13088, 2464, 2848,
+
198 2472, 11040, 2480, 6944, 2488, 15136, 2504, 10016, 2512, 5920, 2520, 14112, 2528, 3872, 2536, 12064,
+
199 2544, 7968, 2552, 16160, 2568, 8352, 2576, 4256, 2584, 12448, 2600, 10400, 2608, 6304, 2616, 14496,
+
200 2632, 9376, 2640, 5280, 2648, 13472, 2656, 3232, 2664, 11424, 2672, 7328, 2680, 15520, 2696, 8864,
+
201 2704, 4768, 2712, 12960, 2728, 10912, 2736, 6816, 2744, 15008, 2760, 9888, 2768, 5792, 2776, 13984,
+
202 2784, 3744, 2792, 11936, 2800, 7840, 2808, 16032, 2824, 8608, 2832, 4512, 2840, 12704, 2856, 10656,
+
203 2864, 6560, 2872, 14752, 2888, 9632, 2896, 5536, 2904, 13728, 2912, 3488, 2920, 11680, 2928, 7584,
+
204 2936, 15776, 2952, 9120, 2960, 5024, 2968, 13216, 2984, 11168, 2992, 7072, 3000, 15264, 3016, 10144,
+
205 3024, 6048, 3032, 14240, 3040, 4000, 3048, 12192, 3056, 8096, 3064, 16288, 3080, 8288, 3088, 4192,
+
206 3096, 12384, 3112, 10336, 3120, 6240, 3128, 14432, 3144, 9312, 3152, 5216, 3160, 13408, 3176, 11360,
+
207 3184, 7264, 3192, 15456, 3208, 8800, 3216, 4704, 3224, 12896, 3240, 10848, 3248, 6752, 3256, 14944,
+
208 3272, 9824, 3280, 5728, 3288, 13920, 3296, 3680, 3304, 11872, 3312, 7776, 3320, 15968, 3336, 8544,
+
209 3344, 4448, 3352, 12640, 3368, 10592, 3376, 6496, 3384, 14688, 3400, 9568, 3408, 5472, 3416, 13664,
+
210 3432, 11616, 3440, 7520, 3448, 15712, 3464, 9056, 3472, 4960, 3480, 13152, 3496, 11104, 3504, 7008,
+
211 3512, 15200, 3528, 10080, 3536, 5984, 3544, 14176, 3552, 3936, 3560, 12128, 3568, 8032, 3576, 16224,
+
212 3592, 8416, 3600, 4320, 3608, 12512, 3624, 10464, 3632, 6368, 3640, 14560, 3656, 9440, 3664, 5344,
+
213 3672, 13536, 3688, 11488, 3696, 7392, 3704, 15584, 3720, 8928, 3728, 4832, 3736, 13024, 3752, 10976,
+
214 3760, 6880, 3768, 15072, 3784, 9952, 3792, 5856, 3800, 14048, 3816, 12000, 3824, 7904, 3832, 16096,
+
215 3848, 8672, 3856, 4576, 3864, 12768, 3880, 10720, 3888, 6624, 3896, 14816, 3912, 9696, 3920, 5600,
+
216 3928, 13792, 3944, 11744, 3952, 7648, 3960, 15840, 3976, 9184, 3984, 5088, 3992, 13280, 4008, 11232,
+
217 4016, 7136, 4024, 15328, 4040, 10208, 4048, 6112, 4056, 14304, 4072, 12256, 4080, 8160, 4088, 16352,
+
218 4104, 8208, 4120, 12304, 4136, 10256, 4144, 6160, 4152, 14352, 4168, 9232, 4176, 5136, 4184, 13328,
+
219 4200, 11280, 4208, 7184, 4216, 15376, 4232, 8720, 4240, 4624, 4248, 12816, 4264, 10768, 4272, 6672,
+
220 4280, 14864, 4296, 9744, 4304, 5648, 4312, 13840, 4328, 11792, 4336, 7696, 4344, 15888, 4360, 8464,
+
221 4376, 12560, 4392, 10512, 4400, 6416, 4408, 14608, 4424, 9488, 4432, 5392, 4440, 13584, 4456, 11536,
+
222 4464, 7440, 4472, 15632, 4488, 8976, 4496, 4880, 4504, 13072, 4520, 11024, 4528, 6928, 4536, 15120,
+
223 4552, 10000, 4560, 5904, 4568, 14096, 4584, 12048, 4592, 7952, 4600, 16144, 4616, 8336, 4632, 12432,
+
224 4648, 10384, 4656, 6288, 4664, 14480, 4680, 9360, 4688, 5264, 4696, 13456, 4712, 11408, 4720, 7312,
+
225 4728, 15504, 4744, 8848, 4760, 12944, 4776, 10896, 4784, 6800, 4792, 14992, 4808, 9872, 4816, 5776,
+
226 4824, 13968, 4840, 11920, 4848, 7824, 4856, 16016, 4872, 8592, 4888, 12688, 4904, 10640, 4912, 6544,
+
227 4920, 14736, 4936, 9616, 4944, 5520, 4952, 13712, 4968, 11664, 4976, 7568, 4984, 15760, 5000, 9104,
+
228 5016, 13200, 5032, 11152, 5040, 7056, 5048, 15248, 5064, 10128, 5072, 6032, 5080, 14224, 5096, 12176,
+
229 5104, 8080, 5112, 16272, 5128, 8272, 5144, 12368, 5160, 10320, 5168, 6224, 5176, 14416, 5192, 9296,
+
230 5208, 13392, 5224, 11344, 5232, 7248, 5240, 15440, 5256, 8784, 5272, 12880, 5288, 10832, 5296, 6736,
+
231 5304, 14928, 5320, 9808, 5328, 5712, 5336, 13904, 5352, 11856, 5360, 7760, 5368, 15952, 5384, 8528,
+
232 5400, 12624, 5416, 10576, 5424, 6480, 5432, 14672, 5448, 9552, 5464, 13648, 5480, 11600, 5488, 7504,
+
233 5496, 15696, 5512, 9040, 5528, 13136, 5544, 11088, 5552, 6992, 5560, 15184, 5576, 10064, 5584, 5968,
+
234 5592, 14160, 5608, 12112, 5616, 8016, 5624, 16208, 5640, 8400, 5656, 12496, 5672, 10448, 5680, 6352,
+
235 5688, 14544, 5704, 9424, 5720, 13520, 5736, 11472, 5744, 7376, 5752, 15568, 5768, 8912, 5784, 13008,
+
236 5800, 10960, 5808, 6864, 5816, 15056, 5832, 9936, 5848, 14032, 5864, 11984, 5872, 7888, 5880, 16080,
+
237 5896, 8656, 5912, 12752, 5928, 10704, 5936, 6608, 5944, 14800, 5960, 9680, 5976, 13776, 5992, 11728,
+
238 6000, 7632, 6008, 15824, 6024, 9168, 6040, 13264, 6056, 11216, 6064, 7120, 6072, 15312, 6088, 10192,
+
239 6104, 14288, 6120, 12240, 6128, 8144, 6136, 16336, 6152, 8240, 6168, 12336, 6184, 10288, 6200, 14384,
+
240 6216, 9264, 6232, 13360, 6248, 11312, 6256, 7216, 6264, 15408, 6280, 8752, 6296, 12848, 6312, 10800,
+
241 6320, 6704, 6328, 14896, 6344, 9776, 6360, 13872, 6376, 11824, 6384, 7728, 6392, 15920, 6408, 8496,
+
242 6424, 12592, 6440, 10544, 6456, 14640, 6472, 9520, 6488, 13616, 6504, 11568, 6512, 7472, 6520, 15664,
+
243 6536, 9008, 6552, 13104, 6568, 11056, 6576, 6960, 6584, 15152, 6600, 10032, 6616, 14128, 6632, 12080,
+
244 6640, 7984, 6648, 16176, 6664, 8368, 6680, 12464, 6696, 10416, 6712, 14512, 6728, 9392, 6744, 13488,
+
245 6760, 11440, 6768, 7344, 6776, 15536, 6792, 8880, 6808, 12976, 6824, 10928, 6840, 15024, 6856, 9904,
+
246 6872, 14000, 6888, 11952, 6896, 7856, 6904, 16048, 6920, 8624, 6936, 12720, 6952, 10672, 6968, 14768,
+
247 6984, 9648, 7000, 13744, 7016, 11696, 7024, 7600, 7032, 15792, 7048, 9136, 7064, 13232, 7080, 11184,
+
248 7096, 15280, 7112, 10160, 7128, 14256, 7144, 12208, 7152, 8112, 7160, 16304, 7176, 8304, 7192, 12400,
+
249 7208, 10352, 7224, 14448, 7240, 9328, 7256, 13424, 7272, 11376, 7288, 15472, 7304, 8816, 7320, 12912,
+
250 7336, 10864, 7352, 14960, 7368, 9840, 7384, 13936, 7400, 11888, 7408, 7792, 7416, 15984, 7432, 8560,
+
251 7448, 12656, 7464, 10608, 7480, 14704, 7496, 9584, 7512, 13680, 7528, 11632, 7544, 15728, 7560, 9072,
+
252 7576, 13168, 7592, 11120, 7608, 15216, 7624, 10096, 7640, 14192, 7656, 12144, 7664, 8048, 7672, 16240,
+
253 7688, 8432, 7704, 12528, 7720, 10480, 7736, 14576, 7752, 9456, 7768, 13552, 7784, 11504, 7800, 15600,
+
254 7816, 8944, 7832, 13040, 7848, 10992, 7864, 15088, 7880, 9968, 7896, 14064, 7912, 12016, 7928, 16112,
+
255 7944, 8688, 7960, 12784, 7976, 10736, 7992, 14832, 8008, 9712, 8024, 13808, 8040, 11760, 8056, 15856,
+
256 8072, 9200, 8088, 13296, 8104, 11248, 8120, 15344, 8136, 10224, 8152, 14320, 8168, 12272, 8184, 16368,
+
257 8216, 12296, 8232, 10248, 8248, 14344, 8264, 9224, 8280, 13320, 8296, 11272, 8312, 15368, 8328, 8712,
+
258 8344, 12808, 8360, 10760, 8376, 14856, 8392, 9736, 8408, 13832, 8424, 11784, 8440, 15880, 8472, 12552,
+
259 8488, 10504, 8504, 14600, 8520, 9480, 8536, 13576, 8552, 11528, 8568, 15624, 8584, 8968, 8600, 13064,
+
260 8616, 11016, 8632, 15112, 8648, 9992, 8664, 14088, 8680, 12040, 8696, 16136, 8728, 12424, 8744, 10376,
+
261 8760, 14472, 8776, 9352, 8792, 13448, 8808, 11400, 8824, 15496, 8856, 12936, 8872, 10888, 8888, 14984,
+
262 8904, 9864, 8920, 13960, 8936, 11912, 8952, 16008, 8984, 12680, 9000, 10632, 9016, 14728, 9032, 9608,
+
263 9048, 13704, 9064, 11656, 9080, 15752, 9112, 13192, 9128, 11144, 9144, 15240, 9160, 10120, 9176, 14216,
+
264 9192, 12168, 9208, 16264, 9240, 12360, 9256, 10312, 9272, 14408, 9304, 13384, 9320, 11336, 9336, 15432,
+
265 9368, 12872, 9384, 10824, 9400, 14920, 9416, 9800, 9432, 13896, 9448, 11848, 9464, 15944, 9496, 12616,
+
266 9512, 10568, 9528, 14664, 9560, 13640, 9576, 11592, 9592, 15688, 9624, 13128, 9640, 11080, 9656, 15176,
+
267 9672, 10056, 9688, 14152, 9704, 12104, 9720, 16200, 9752, 12488, 9768, 10440, 9784, 14536, 9816, 13512,
+
268 9832, 11464, 9848, 15560, 9880, 13000, 9896, 10952, 9912, 15048, 9944, 14024, 9960, 11976, 9976, 16072,
+
269 10008, 12744, 10024, 10696, 10040, 14792, 10072, 13768, 10088, 11720, 10104, 15816, 10136, 13256, 10152, 11208,
+
270 10168, 15304, 10200, 14280, 10216, 12232, 10232, 16328, 10264, 12328, 10296, 14376, 10328, 13352, 10344, 11304,
+
271 10360, 15400, 10392, 12840, 10408, 10792, 10424, 14888, 10456, 13864, 10472, 11816, 10488, 15912, 10520, 12584,
+
272 10552, 14632, 10584, 13608, 10600, 11560, 10616, 15656, 10648, 13096, 10664, 11048, 10680, 15144, 10712, 14120,
+
273 10728, 12072, 10744, 16168, 10776, 12456, 10808, 14504, 10840, 13480, 10856, 11432, 10872, 15528, 10904, 12968,
+
274 10936, 15016, 10968, 13992, 10984, 11944, 11000, 16040, 11032, 12712, 11064, 14760, 11096, 13736, 11112, 11688,
+
275 11128, 15784, 11160, 13224, 11192, 15272, 11224, 14248, 11240, 12200, 11256, 16296, 11288, 12392, 11320, 14440,
+
276 11352, 13416, 11384, 15464, 11416, 12904, 11448, 14952, 11480, 13928, 11496, 11880, 11512, 15976, 11544, 12648,
+
277 11576, 14696, 11608, 13672, 11640, 15720, 11672, 13160, 11704, 15208, 11736, 14184, 11752, 12136, 11768, 16232,
+
278 11800, 12520, 11832, 14568, 11864, 13544, 11896, 15592, 11928, 13032, 11960, 15080, 11992, 14056, 12024, 16104,
+
279 12056, 12776, 12088, 14824, 12120, 13800, 12152, 15848, 12184, 13288, 12216, 15336, 12248, 14312, 12280, 16360,
+
280 12344, 14360, 12376, 13336, 12408, 15384, 12440, 12824, 12472, 14872, 12504, 13848, 12536, 15896, 12600, 14616,
+
281 12632, 13592, 12664, 15640, 12696, 13080, 12728, 15128, 12760, 14104, 12792, 16152, 12856, 14488, 12888, 13464,
+
282 12920, 15512, 12984, 15000, 13016, 13976, 13048, 16024, 13112, 14744, 13144, 13720, 13176, 15768, 13240, 15256,
+
283 13272, 14232, 13304, 16280, 13368, 14424, 13432, 15448, 13496, 14936, 13528, 13912, 13560, 15960, 13624, 14680,
+
284 13688, 15704, 13752, 15192, 13784, 14168, 13816, 16216, 13880, 14552, 13944, 15576, 14008, 15064, 14072, 16088,
+
285 14136, 14808, 14200, 15832, 14264, 15320, 14328, 16344, 14456, 15416, 14520, 14904, 14584, 15928, 14712, 15672,
+
286 14776, 15160, 14840, 16184, 14968, 15544, 15096, 16056, 15224, 15800, 15352, 16312, 15608, 15992, 15864, 16248,
+
287};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_2048_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev2r_table_2048_fc32_size = 992
+
+ +

Definition at line 577 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_256_fc32

+ +
+
+ + + + +
const uint16_t bitrev2r_table_256_fc32[]
+
+Initial value:
= {
+
8, 1024, 16, 512, 24, 1536, 32, 256, 40, 1280, 48, 768, 56, 1792, 64, 128,
+
72, 1152, 80, 640, 88, 1664, 96, 384, 104, 1408, 112, 896, 120, 1920, 136, 1088,
+
144, 576, 152, 1600, 160, 320, 168, 1344, 176, 832, 184, 1856, 200, 1216, 208, 704,
+
216, 1728, 224, 448, 232, 1472, 240, 960, 248, 1984, 264, 1056, 272, 544, 280, 1568,
+
296, 1312, 304, 800, 312, 1824, 328, 1184, 336, 672, 344, 1696, 352, 416, 360, 1440,
+
368, 928, 376, 1952, 392, 1120, 400, 608, 408, 1632, 424, 1376, 432, 864, 440, 1888,
+
456, 1248, 464, 736, 472, 1760, 488, 1504, 496, 992, 504, 2016, 520, 1040, 536, 1552,
+
552, 1296, 560, 784, 568, 1808, 584, 1168, 592, 656, 600, 1680, 616, 1424, 624, 912,
+
632, 1936, 648, 1104, 664, 1616, 680, 1360, 688, 848, 696, 1872, 712, 1232, 728, 1744,
+
744, 1488, 752, 976, 760, 2000, 776, 1072, 792, 1584, 808, 1328, 824, 1840, 840, 1200,
+
856, 1712, 872, 1456, 880, 944, 888, 1968, 904, 1136, 920, 1648, 936, 1392, 952, 1904,
+
968, 1264, 984, 1776, 1000, 1520, 1016, 2032, 1048, 1544, 1064, 1288, 1080, 1800, 1096, 1160,
+
1112, 1672, 1128, 1416, 1144, 1928, 1176, 1608, 1192, 1352, 1208, 1864, 1240, 1736, 1256, 1480,
+
1272, 1992, 1304, 1576, 1336, 1832, 1368, 1704, 1384, 1448, 1400, 1960, 1432, 1640, 1464, 1896,
+
1496, 1768, 1528, 2024, 1592, 1816, 1624, 1688, 1656, 1944, 1720, 1880, 1784, 2008, 1912, 1976,
+
}
+
+

Definition at line 46 of file dsps_fft2r_bitrev_tables_fc32.c.

+
46 {
+
47 8, 1024, 16, 512, 24, 1536, 32, 256, 40, 1280, 48, 768, 56, 1792, 64, 128,
+
48 72, 1152, 80, 640, 88, 1664, 96, 384, 104, 1408, 112, 896, 120, 1920, 136, 1088,
+
49 144, 576, 152, 1600, 160, 320, 168, 1344, 176, 832, 184, 1856, 200, 1216, 208, 704,
+
50 216, 1728, 224, 448, 232, 1472, 240, 960, 248, 1984, 264, 1056, 272, 544, 280, 1568,
+
51 296, 1312, 304, 800, 312, 1824, 328, 1184, 336, 672, 344, 1696, 352, 416, 360, 1440,
+
52 368, 928, 376, 1952, 392, 1120, 400, 608, 408, 1632, 424, 1376, 432, 864, 440, 1888,
+
53 456, 1248, 464, 736, 472, 1760, 488, 1504, 496, 992, 504, 2016, 520, 1040, 536, 1552,
+
54 552, 1296, 560, 784, 568, 1808, 584, 1168, 592, 656, 600, 1680, 616, 1424, 624, 912,
+
55 632, 1936, 648, 1104, 664, 1616, 680, 1360, 688, 848, 696, 1872, 712, 1232, 728, 1744,
+
56 744, 1488, 752, 976, 760, 2000, 776, 1072, 792, 1584, 808, 1328, 824, 1840, 840, 1200,
+
57 856, 1712, 872, 1456, 880, 944, 888, 1968, 904, 1136, 920, 1648, 936, 1392, 952, 1904,
+
58 968, 1264, 984, 1776, 1000, 1520, 1016, 2032, 1048, 1544, 1064, 1288, 1080, 1800, 1096, 1160,
+
59 1112, 1672, 1128, 1416, 1144, 1928, 1176, 1608, 1192, 1352, 1208, 1864, 1240, 1736, 1256, 1480,
+
60 1272, 1992, 1304, 1576, 1336, 1832, 1368, 1704, 1384, 1448, 1400, 1960, 1432, 1640, 1464, 1896,
+
61 1496, 1768, 1528, 2024, 1592, 1816, 1624, 1688, 1656, 1944, 1720, 1880, 1784, 2008, 1912, 1976,
+
62};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_256_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev2r_table_256_fc32_size = 120
+
+ +

Definition at line 574 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_32_fc32

+ +
+
+ + + + +
const uint16_t bitrev2r_table_32_fc32[]
+
+Initial value:
= {
+
8, 128, 16, 64, 24, 192, 40, 160, 48, 96, 56, 224, 72, 144, 88, 208,
+
104, 176, 120, 240, 152, 200, 184, 232,
+
}
+
+

Definition at line 24 of file dsps_fft2r_bitrev_tables_fc32.c.

+
24 {
+
25 8, 128, 16, 64, 24, 192, 40, 160, 48, 96, 56, 224, 72, 144, 88, 208,
+
26 104, 176, 120, 240, 152, 200, 184, 232,
+
27};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_32_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev2r_table_32_fc32_size = 12
+
+ +

Definition at line 571 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_4096_fc32

+ +
+
+ + + + +
const uint16_t bitrev2r_table_4096_fc32[]
+
+ +

Definition at line 289 of file dsps_fft2r_bitrev_tables_fc32.c.

+
289 {
+
290 8, 16384, 16, 8192, 24, 24576, 32, 4096, 40, 20480, 48, 12288, 56, 28672, 64, 2048,
+
291 72, 18432, 80, 10240, 88, 26624, 96, 6144, 104, 22528, 112, 14336, 120, 30720, 128, 1024,
+
292 136, 17408, 144, 9216, 152, 25600, 160, 5120, 168, 21504, 176, 13312, 184, 29696, 192, 3072,
+
293 200, 19456, 208, 11264, 216, 27648, 224, 7168, 232, 23552, 240, 15360, 248, 31744, 256, 512,
+
294 264, 16896, 272, 8704, 280, 25088, 288, 4608, 296, 20992, 304, 12800, 312, 29184, 320, 2560,
+
295 328, 18944, 336, 10752, 344, 27136, 352, 6656, 360, 23040, 368, 14848, 376, 31232, 384, 1536,
+
296 392, 17920, 400, 9728, 408, 26112, 416, 5632, 424, 22016, 432, 13824, 440, 30208, 448, 3584,
+
297 456, 19968, 464, 11776, 472, 28160, 480, 7680, 488, 24064, 496, 15872, 504, 32256, 520, 16640,
+
298 528, 8448, 536, 24832, 544, 4352, 552, 20736, 560, 12544, 568, 28928, 576, 2304, 584, 18688,
+
299 592, 10496, 600, 26880, 608, 6400, 616, 22784, 624, 14592, 632, 30976, 640, 1280, 648, 17664,
+
300 656, 9472, 664, 25856, 672, 5376, 680, 21760, 688, 13568, 696, 29952, 704, 3328, 712, 19712,
+
301 720, 11520, 728, 27904, 736, 7424, 744, 23808, 752, 15616, 760, 32000, 776, 17152, 784, 8960,
+
302 792, 25344, 800, 4864, 808, 21248, 816, 13056, 824, 29440, 832, 2816, 840, 19200, 848, 11008,
+
303 856, 27392, 864, 6912, 872, 23296, 880, 15104, 888, 31488, 896, 1792, 904, 18176, 912, 9984,
+
304 920, 26368, 928, 5888, 936, 22272, 944, 14080, 952, 30464, 960, 3840, 968, 20224, 976, 12032,
+
305 984, 28416, 992, 7936, 1000, 24320, 1008, 16128, 1016, 32512, 1032, 16512, 1040, 8320, 1048, 24704,
+
306 1056, 4224, 1064, 20608, 1072, 12416, 1080, 28800, 1088, 2176, 1096, 18560, 1104, 10368, 1112, 26752,
+
307 1120, 6272, 1128, 22656, 1136, 14464, 1144, 30848, 1160, 17536, 1168, 9344, 1176, 25728, 1184, 5248,
+
308 1192, 21632, 1200, 13440, 1208, 29824, 1216, 3200, 1224, 19584, 1232, 11392, 1240, 27776, 1248, 7296,
+
309 1256, 23680, 1264, 15488, 1272, 31872, 1288, 17024, 1296, 8832, 1304, 25216, 1312, 4736, 1320, 21120,
+
310 1328, 12928, 1336, 29312, 1344, 2688, 1352, 19072, 1360, 10880, 1368, 27264, 1376, 6784, 1384, 23168,
+
311 1392, 14976, 1400, 31360, 1408, 1664, 1416, 18048, 1424, 9856, 1432, 26240, 1440, 5760, 1448, 22144,
+
312 1456, 13952, 1464, 30336, 1472, 3712, 1480, 20096, 1488, 11904, 1496, 28288, 1504, 7808, 1512, 24192,
+
313 1520, 16000, 1528, 32384, 1544, 16768, 1552, 8576, 1560, 24960, 1568, 4480, 1576, 20864, 1584, 12672,
+
314 1592, 29056, 1600, 2432, 1608, 18816, 1616, 10624, 1624, 27008, 1632, 6528, 1640, 22912, 1648, 14720,
+
315 1656, 31104, 1672, 17792, 1680, 9600, 1688, 25984, 1696, 5504, 1704, 21888, 1712, 13696, 1720, 30080,
+
316 1728, 3456, 1736, 19840, 1744, 11648, 1752, 28032, 1760, 7552, 1768, 23936, 1776, 15744, 1784, 32128,
+
317 1800, 17280, 1808, 9088, 1816, 25472, 1824, 4992, 1832, 21376, 1840, 13184, 1848, 29568, 1856, 2944,
+
318 1864, 19328, 1872, 11136, 1880, 27520, 1888, 7040, 1896, 23424, 1904, 15232, 1912, 31616, 1928, 18304,
+
319 1936, 10112, 1944, 26496, 1952, 6016, 1960, 22400, 1968, 14208, 1976, 30592, 1984, 3968, 1992, 20352,
+
320 2000, 12160, 2008, 28544, 2016, 8064, 2024, 24448, 2032, 16256, 2040, 32640, 2056, 16448, 2064, 8256,
+
321 2072, 24640, 2080, 4160, 2088, 20544, 2096, 12352, 2104, 28736, 2120, 18496, 2128, 10304, 2136, 26688,
+
322 2144, 6208, 2152, 22592, 2160, 14400, 2168, 30784, 2184, 17472, 2192, 9280, 2200, 25664, 2208, 5184,
+
323 2216, 21568, 2224, 13376, 2232, 29760, 2240, 3136, 2248, 19520, 2256, 11328, 2264, 27712, 2272, 7232,
+
324 2280, 23616, 2288, 15424, 2296, 31808, 2312, 16960, 2320, 8768, 2328, 25152, 2336, 4672, 2344, 21056,
+
325 2352, 12864, 2360, 29248, 2368, 2624, 2376, 19008, 2384, 10816, 2392, 27200, 2400, 6720, 2408, 23104,
+
326 2416, 14912, 2424, 31296, 2440, 17984, 2448, 9792, 2456, 26176, 2464, 5696, 2472, 22080, 2480, 13888,
+
327 2488, 30272, 2496, 3648, 2504, 20032, 2512, 11840, 2520, 28224, 2528, 7744, 2536, 24128, 2544, 15936,
+
328 2552, 32320, 2568, 16704, 2576, 8512, 2584, 24896, 2592, 4416, 2600, 20800, 2608, 12608, 2616, 28992,
+
329 2632, 18752, 2640, 10560, 2648, 26944, 2656, 6464, 2664, 22848, 2672, 14656, 2680, 31040, 2696, 17728,
+
330 2704, 9536, 2712, 25920, 2720, 5440, 2728, 21824, 2736, 13632, 2744, 30016, 2752, 3392, 2760, 19776,
+
331 2768, 11584, 2776, 27968, 2784, 7488, 2792, 23872, 2800, 15680, 2808, 32064, 2824, 17216, 2832, 9024,
+
332 2840, 25408, 2848, 4928, 2856, 21312, 2864, 13120, 2872, 29504, 2888, 19264, 2896, 11072, 2904, 27456,
+
333 2912, 6976, 2920, 23360, 2928, 15168, 2936, 31552, 2952, 18240, 2960, 10048, 2968, 26432, 2976, 5952,
+
334 2984, 22336, 2992, 14144, 3000, 30528, 3008, 3904, 3016, 20288, 3024, 12096, 3032, 28480, 3040, 8000,
+
335 3048, 24384, 3056, 16192, 3064, 32576, 3080, 16576, 3088, 8384, 3096, 24768, 3104, 4288, 3112, 20672,
+
336 3120, 12480, 3128, 28864, 3144, 18624, 3152, 10432, 3160, 26816, 3168, 6336, 3176, 22720, 3184, 14528,
+
337 3192, 30912, 3208, 17600, 3216, 9408, 3224, 25792, 3232, 5312, 3240, 21696, 3248, 13504, 3256, 29888,
+
338 3272, 19648, 3280, 11456, 3288, 27840, 3296, 7360, 3304, 23744, 3312, 15552, 3320, 31936, 3336, 17088,
+
339 3344, 8896, 3352, 25280, 3360, 4800, 3368, 21184, 3376, 12992, 3384, 29376, 3400, 19136, 3408, 10944,
+
340 3416, 27328, 3424, 6848, 3432, 23232, 3440, 15040, 3448, 31424, 3464, 18112, 3472, 9920, 3480, 26304,
+
341 3488, 5824, 3496, 22208, 3504, 14016, 3512, 30400, 3520, 3776, 3528, 20160, 3536, 11968, 3544, 28352,
+
342 3552, 7872, 3560, 24256, 3568, 16064, 3576, 32448, 3592, 16832, 3600, 8640, 3608, 25024, 3616, 4544,
+
343 3624, 20928, 3632, 12736, 3640, 29120, 3656, 18880, 3664, 10688, 3672, 27072, 3680, 6592, 3688, 22976,
+
344 3696, 14784, 3704, 31168, 3720, 17856, 3728, 9664, 3736, 26048, 3744, 5568, 3752, 21952, 3760, 13760,
+
345 3768, 30144, 3784, 19904, 3792, 11712, 3800, 28096, 3808, 7616, 3816, 24000, 3824, 15808, 3832, 32192,
+
346 3848, 17344, 3856, 9152, 3864, 25536, 3872, 5056, 3880, 21440, 3888, 13248, 3896, 29632, 3912, 19392,
+
347 3920, 11200, 3928, 27584, 3936, 7104, 3944, 23488, 3952, 15296, 3960, 31680, 3976, 18368, 3984, 10176,
+
348 3992, 26560, 4000, 6080, 4008, 22464, 4016, 14272, 4024, 30656, 4040, 20416, 4048, 12224, 4056, 28608,
+
349 4064, 8128, 4072, 24512, 4080, 16320, 4088, 32704, 4104, 16416, 4112, 8224, 4120, 24608, 4136, 20512,
+
350 4144, 12320, 4152, 28704, 4168, 18464, 4176, 10272, 4184, 26656, 4192, 6176, 4200, 22560, 4208, 14368,
+
351 4216, 30752, 4232, 17440, 4240, 9248, 4248, 25632, 4256, 5152, 4264, 21536, 4272, 13344, 4280, 29728,
+
352 4296, 19488, 4304, 11296, 4312, 27680, 4320, 7200, 4328, 23584, 4336, 15392, 4344, 31776, 4360, 16928,
+
353 4368, 8736, 4376, 25120, 4384, 4640, 4392, 21024, 4400, 12832, 4408, 29216, 4424, 18976, 4432, 10784,
+
354 4440, 27168, 4448, 6688, 4456, 23072, 4464, 14880, 4472, 31264, 4488, 17952, 4496, 9760, 4504, 26144,
+
355 4512, 5664, 4520, 22048, 4528, 13856, 4536, 30240, 4552, 20000, 4560, 11808, 4568, 28192, 4576, 7712,
+
356 4584, 24096, 4592, 15904, 4600, 32288, 4616, 16672, 4624, 8480, 4632, 24864, 4648, 20768, 4656, 12576,
+
357 4664, 28960, 4680, 18720, 4688, 10528, 4696, 26912, 4704, 6432, 4712, 22816, 4720, 14624, 4728, 31008,
+
358 4744, 17696, 4752, 9504, 4760, 25888, 4768, 5408, 4776, 21792, 4784, 13600, 4792, 29984, 4808, 19744,
+
359 4816, 11552, 4824, 27936, 4832, 7456, 4840, 23840, 4848, 15648, 4856, 32032, 4872, 17184, 4880, 8992,
+
360 4888, 25376, 4904, 21280, 4912, 13088, 4920, 29472, 4936, 19232, 4944, 11040, 4952, 27424, 4960, 6944,
+
361 4968, 23328, 4976, 15136, 4984, 31520, 5000, 18208, 5008, 10016, 5016, 26400, 5024, 5920, 5032, 22304,
+
362 5040, 14112, 5048, 30496, 5064, 20256, 5072, 12064, 5080, 28448, 5088, 7968, 5096, 24352, 5104, 16160,
+
363 5112, 32544, 5128, 16544, 5136, 8352, 5144, 24736, 5160, 20640, 5168, 12448, 5176, 28832, 5192, 18592,
+
364 5200, 10400, 5208, 26784, 5216, 6304, 5224, 22688, 5232, 14496, 5240, 30880, 5256, 17568, 5264, 9376,
+
365 5272, 25760, 5288, 21664, 5296, 13472, 5304, 29856, 5320, 19616, 5328, 11424, 5336, 27808, 5344, 7328,
+
366 5352, 23712, 5360, 15520, 5368, 31904, 5384, 17056, 5392, 8864, 5400, 25248, 5416, 21152, 5424, 12960,
+
367 5432, 29344, 5448, 19104, 5456, 10912, 5464, 27296, 5472, 6816, 5480, 23200, 5488, 15008, 5496, 31392,
+
368 5512, 18080, 5520, 9888, 5528, 26272, 5536, 5792, 5544, 22176, 5552, 13984, 5560, 30368, 5576, 20128,
+
369 5584, 11936, 5592, 28320, 5600, 7840, 5608, 24224, 5616, 16032, 5624, 32416, 5640, 16800, 5648, 8608,
+
370 5656, 24992, 5672, 20896, 5680, 12704, 5688, 29088, 5704, 18848, 5712, 10656, 5720, 27040, 5728, 6560,
+
371 5736, 22944, 5744, 14752, 5752, 31136, 5768, 17824, 5776, 9632, 5784, 26016, 5800, 21920, 5808, 13728,
+
372 5816, 30112, 5832, 19872, 5840, 11680, 5848, 28064, 5856, 7584, 5864, 23968, 5872, 15776, 5880, 32160,
+
373 5896, 17312, 5904, 9120, 5912, 25504, 5928, 21408, 5936, 13216, 5944, 29600, 5960, 19360, 5968, 11168,
+
374 5976, 27552, 5984, 7072, 5992, 23456, 6000, 15264, 6008, 31648, 6024, 18336, 6032, 10144, 6040, 26528,
+
375 6056, 22432, 6064, 14240, 6072, 30624, 6088, 20384, 6096, 12192, 6104, 28576, 6112, 8096, 6120, 24480,
+
376 6128, 16288, 6136, 32672, 6152, 16480, 6160, 8288, 6168, 24672, 6184, 20576, 6192, 12384, 6200, 28768,
+
377 6216, 18528, 6224, 10336, 6232, 26720, 6248, 22624, 6256, 14432, 6264, 30816, 6280, 17504, 6288, 9312,
+
378 6296, 25696, 6312, 21600, 6320, 13408, 6328, 29792, 6344, 19552, 6352, 11360, 6360, 27744, 6368, 7264,
+
379 6376, 23648, 6384, 15456, 6392, 31840, 6408, 16992, 6416, 8800, 6424, 25184, 6440, 21088, 6448, 12896,
+
380 6456, 29280, 6472, 19040, 6480, 10848, 6488, 27232, 6496, 6752, 6504, 23136, 6512, 14944, 6520, 31328,
+
381 6536, 18016, 6544, 9824, 6552, 26208, 6568, 22112, 6576, 13920, 6584, 30304, 6600, 20064, 6608, 11872,
+
382 6616, 28256, 6624, 7776, 6632, 24160, 6640, 15968, 6648, 32352, 6664, 16736, 6672, 8544, 6680, 24928,
+
383 6696, 20832, 6704, 12640, 6712, 29024, 6728, 18784, 6736, 10592, 6744, 26976, 6760, 22880, 6768, 14688,
+
384 6776, 31072, 6792, 17760, 6800, 9568, 6808, 25952, 6824, 21856, 6832, 13664, 6840, 30048, 6856, 19808,
+
385 6864, 11616, 6872, 28000, 6880, 7520, 6888, 23904, 6896, 15712, 6904, 32096, 6920, 17248, 6928, 9056,
+
386 6936, 25440, 6952, 21344, 6960, 13152, 6968, 29536, 6984, 19296, 6992, 11104, 7000, 27488, 7016, 23392,
+
387 7024, 15200, 7032, 31584, 7048, 18272, 7056, 10080, 7064, 26464, 7080, 22368, 7088, 14176, 7096, 30560,
+
388 7112, 20320, 7120, 12128, 7128, 28512, 7136, 8032, 7144, 24416, 7152, 16224, 7160, 32608, 7176, 16608,
+
389 7184, 8416, 7192, 24800, 7208, 20704, 7216, 12512, 7224, 28896, 7240, 18656, 7248, 10464, 7256, 26848,
+
390 7272, 22752, 7280, 14560, 7288, 30944, 7304, 17632, 7312, 9440, 7320, 25824, 7336, 21728, 7344, 13536,
+
391 7352, 29920, 7368, 19680, 7376, 11488, 7384, 27872, 7400, 23776, 7408, 15584, 7416, 31968, 7432, 17120,
+
392 7440, 8928, 7448, 25312, 7464, 21216, 7472, 13024, 7480, 29408, 7496, 19168, 7504, 10976, 7512, 27360,
+
393 7528, 23264, 7536, 15072, 7544, 31456, 7560, 18144, 7568, 9952, 7576, 26336, 7592, 22240, 7600, 14048,
+
394 7608, 30432, 7624, 20192, 7632, 12000, 7640, 28384, 7648, 7904, 7656, 24288, 7664, 16096, 7672, 32480,
+
395 7688, 16864, 7696, 8672, 7704, 25056, 7720, 20960, 7728, 12768, 7736, 29152, 7752, 18912, 7760, 10720,
+
396 7768, 27104, 7784, 23008, 7792, 14816, 7800, 31200, 7816, 17888, 7824, 9696, 7832, 26080, 7848, 21984,
+
397 7856, 13792, 7864, 30176, 7880, 19936, 7888, 11744, 7896, 28128, 7912, 24032, 7920, 15840, 7928, 32224,
+
398 7944, 17376, 7952, 9184, 7960, 25568, 7976, 21472, 7984, 13280, 7992, 29664, 8008, 19424, 8016, 11232,
+
399 8024, 27616, 8040, 23520, 8048, 15328, 8056, 31712, 8072, 18400, 8080, 10208, 8088, 26592, 8104, 22496,
+
400 8112, 14304, 8120, 30688, 8136, 20448, 8144, 12256, 8152, 28640, 8168, 24544, 8176, 16352, 8184, 32736,
+
401 8200, 16400, 8216, 24592, 8232, 20496, 8240, 12304, 8248, 28688, 8264, 18448, 8272, 10256, 8280, 26640,
+
402 8296, 22544, 8304, 14352, 8312, 30736, 8328, 17424, 8336, 9232, 8344, 25616, 8360, 21520, 8368, 13328,
+
403 8376, 29712, 8392, 19472, 8400, 11280, 8408, 27664, 8424, 23568, 8432, 15376, 8440, 31760, 8456, 16912,
+
404 8464, 8720, 8472, 25104, 8488, 21008, 8496, 12816, 8504, 29200, 8520, 18960, 8528, 10768, 8536, 27152,
+
405 8552, 23056, 8560, 14864, 8568, 31248, 8584, 17936, 8592, 9744, 8600, 26128, 8616, 22032, 8624, 13840,
+
406 8632, 30224, 8648, 19984, 8656, 11792, 8664, 28176, 8680, 24080, 8688, 15888, 8696, 32272, 8712, 16656,
+
407 8728, 24848, 8744, 20752, 8752, 12560, 8760, 28944, 8776, 18704, 8784, 10512, 8792, 26896, 8808, 22800,
+
408 8816, 14608, 8824, 30992, 8840, 17680, 8848, 9488, 8856, 25872, 8872, 21776, 8880, 13584, 8888, 29968,
+
409 8904, 19728, 8912, 11536, 8920, 27920, 8936, 23824, 8944, 15632, 8952, 32016, 8968, 17168, 8984, 25360,
+
410 9000, 21264, 9008, 13072, 9016, 29456, 9032, 19216, 9040, 11024, 9048, 27408, 9064, 23312, 9072, 15120,
+
411 9080, 31504, 9096, 18192, 9104, 10000, 9112, 26384, 9128, 22288, 9136, 14096, 9144, 30480, 9160, 20240,
+
412 9168, 12048, 9176, 28432, 9192, 24336, 9200, 16144, 9208, 32528, 9224, 16528, 9240, 24720, 9256, 20624,
+
413 9264, 12432, 9272, 28816, 9288, 18576, 9296, 10384, 9304, 26768, 9320, 22672, 9328, 14480, 9336, 30864,
+
414 9352, 17552, 9368, 25744, 9384, 21648, 9392, 13456, 9400, 29840, 9416, 19600, 9424, 11408, 9432, 27792,
+
415 9448, 23696, 9456, 15504, 9464, 31888, 9480, 17040, 9496, 25232, 9512, 21136, 9520, 12944, 9528, 29328,
+
416 9544, 19088, 9552, 10896, 9560, 27280, 9576, 23184, 9584, 14992, 9592, 31376, 9608, 18064, 9616, 9872,
+
417 9624, 26256, 9640, 22160, 9648, 13968, 9656, 30352, 9672, 20112, 9680, 11920, 9688, 28304, 9704, 24208,
+
418 9712, 16016, 9720, 32400, 9736, 16784, 9752, 24976, 9768, 20880, 9776, 12688, 9784, 29072, 9800, 18832,
+
419 9808, 10640, 9816, 27024, 9832, 22928, 9840, 14736, 9848, 31120, 9864, 17808, 9880, 26000, 9896, 21904,
+
420 9904, 13712, 9912, 30096, 9928, 19856, 9936, 11664, 9944, 28048, 9960, 23952, 9968, 15760, 9976, 32144,
+
421 9992, 17296, 10008, 25488, 10024, 21392, 10032, 13200, 10040, 29584, 10056, 19344, 10064, 11152, 10072, 27536,
+
422 10088, 23440, 10096, 15248, 10104, 31632, 10120, 18320, 10136, 26512, 10152, 22416, 10160, 14224, 10168, 30608,
+
423 10184, 20368, 10192, 12176, 10200, 28560, 10216, 24464, 10224, 16272, 10232, 32656, 10248, 16464, 10264, 24656,
+
424 10280, 20560, 10288, 12368, 10296, 28752, 10312, 18512, 10328, 26704, 10344, 22608, 10352, 14416, 10360, 30800,
+
425 10376, 17488, 10392, 25680, 10408, 21584, 10416, 13392, 10424, 29776, 10440, 19536, 10448, 11344, 10456, 27728,
+
426 10472, 23632, 10480, 15440, 10488, 31824, 10504, 16976, 10520, 25168, 10536, 21072, 10544, 12880, 10552, 29264,
+
427 10568, 19024, 10576, 10832, 10584, 27216, 10600, 23120, 10608, 14928, 10616, 31312, 10632, 18000, 10648, 26192,
+
428 10664, 22096, 10672, 13904, 10680, 30288, 10696, 20048, 10704, 11856, 10712, 28240, 10728, 24144, 10736, 15952,
+
429 10744, 32336, 10760, 16720, 10776, 24912, 10792, 20816, 10800, 12624, 10808, 29008, 10824, 18768, 10840, 26960,
+
430 10856, 22864, 10864, 14672, 10872, 31056, 10888, 17744, 10904, 25936, 10920, 21840, 10928, 13648, 10936, 30032,
+
431 10952, 19792, 10960, 11600, 10968, 27984, 10984, 23888, 10992, 15696, 11000, 32080, 11016, 17232, 11032, 25424,
+
432 11048, 21328, 11056, 13136, 11064, 29520, 11080, 19280, 11096, 27472, 11112, 23376, 11120, 15184, 11128, 31568,
+
433 11144, 18256, 11160, 26448, 11176, 22352, 11184, 14160, 11192, 30544, 11208, 20304, 11216, 12112, 11224, 28496,
+
434 11240, 24400, 11248, 16208, 11256, 32592, 11272, 16592, 11288, 24784, 11304, 20688, 11312, 12496, 11320, 28880,
+
435 11336, 18640, 11352, 26832, 11368, 22736, 11376, 14544, 11384, 30928, 11400, 17616, 11416, 25808, 11432, 21712,
+
436 11440, 13520, 11448, 29904, 11464, 19664, 11480, 27856, 11496, 23760, 11504, 15568, 11512, 31952, 11528, 17104,
+
437 11544, 25296, 11560, 21200, 11568, 13008, 11576, 29392, 11592, 19152, 11608, 27344, 11624, 23248, 11632, 15056,
+
438 11640, 31440, 11656, 18128, 11672, 26320, 11688, 22224, 11696, 14032, 11704, 30416, 11720, 20176, 11728, 11984,
+
439 11736, 28368, 11752, 24272, 11760, 16080, 11768, 32464, 11784, 16848, 11800, 25040, 11816, 20944, 11824, 12752,
+
440 11832, 29136, 11848, 18896, 11864, 27088, 11880, 22992, 11888, 14800, 11896, 31184, 11912, 17872, 11928, 26064,
+
441 11944, 21968, 11952, 13776, 11960, 30160, 11976, 19920, 11992, 28112, 12008, 24016, 12016, 15824, 12024, 32208,
+
442 12040, 17360, 12056, 25552, 12072, 21456, 12080, 13264, 12088, 29648, 12104, 19408, 12120, 27600, 12136, 23504,
+
443 12144, 15312, 12152, 31696, 12168, 18384, 12184, 26576, 12200, 22480, 12208, 14288, 12216, 30672, 12232, 20432,
+
444 12248, 28624, 12264, 24528, 12272, 16336, 12280, 32720, 12296, 16432, 12312, 24624, 12328, 20528, 12344, 28720,
+
445 12360, 18480, 12376, 26672, 12392, 22576, 12400, 14384, 12408, 30768, 12424, 17456, 12440, 25648, 12456, 21552,
+
446 12464, 13360, 12472, 29744, 12488, 19504, 12504, 27696, 12520, 23600, 12528, 15408, 12536, 31792, 12552, 16944,
+
447 12568, 25136, 12584, 21040, 12592, 12848, 12600, 29232, 12616, 18992, 12632, 27184, 12648, 23088, 12656, 14896,
+
448 12664, 31280, 12680, 17968, 12696, 26160, 12712, 22064, 12720, 13872, 12728, 30256, 12744, 20016, 12760, 28208,
+
449 12776, 24112, 12784, 15920, 12792, 32304, 12808, 16688, 12824, 24880, 12840, 20784, 12856, 28976, 12872, 18736,
+
450 12888, 26928, 12904, 22832, 12912, 14640, 12920, 31024, 12936, 17712, 12952, 25904, 12968, 21808, 12976, 13616,
+
451 12984, 30000, 13000, 19760, 13016, 27952, 13032, 23856, 13040, 15664, 13048, 32048, 13064, 17200, 13080, 25392,
+
452 13096, 21296, 13112, 29488, 13128, 19248, 13144, 27440, 13160, 23344, 13168, 15152, 13176, 31536, 13192, 18224,
+
453 13208, 26416, 13224, 22320, 13232, 14128, 13240, 30512, 13256, 20272, 13272, 28464, 13288, 24368, 13296, 16176,
+
454 13304, 32560, 13320, 16560, 13336, 24752, 13352, 20656, 13368, 28848, 13384, 18608, 13400, 26800, 13416, 22704,
+
455 13424, 14512, 13432, 30896, 13448, 17584, 13464, 25776, 13480, 21680, 13496, 29872, 13512, 19632, 13528, 27824,
+
456 13544, 23728, 13552, 15536, 13560, 31920, 13576, 17072, 13592, 25264, 13608, 21168, 13624, 29360, 13640, 19120,
+
457 13656, 27312, 13672, 23216, 13680, 15024, 13688, 31408, 13704, 18096, 13720, 26288, 13736, 22192, 13744, 14000,
+
458 13752, 30384, 13768, 20144, 13784, 28336, 13800, 24240, 13808, 16048, 13816, 32432, 13832, 16816, 13848, 25008,
+
459 13864, 20912, 13880, 29104, 13896, 18864, 13912, 27056, 13928, 22960, 13936, 14768, 13944, 31152, 13960, 17840,
+
460 13976, 26032, 13992, 21936, 14008, 30128, 14024, 19888, 14040, 28080, 14056, 23984, 14064, 15792, 14072, 32176,
+
461 14088, 17328, 14104, 25520, 14120, 21424, 14136, 29616, 14152, 19376, 14168, 27568, 14184, 23472, 14192, 15280,
+
462 14200, 31664, 14216, 18352, 14232, 26544, 14248, 22448, 14264, 30640, 14280, 20400, 14296, 28592, 14312, 24496,
+
463 14320, 16304, 14328, 32688, 14344, 16496, 14360, 24688, 14376, 20592, 14392, 28784, 14408, 18544, 14424, 26736,
+
464 14440, 22640, 14456, 30832, 14472, 17520, 14488, 25712, 14504, 21616, 14520, 29808, 14536, 19568, 14552, 27760,
+
465 14568, 23664, 14576, 15472, 14584, 31856, 14600, 17008, 14616, 25200, 14632, 21104, 14648, 29296, 14664, 19056,
+
466 14680, 27248, 14696, 23152, 14704, 14960, 14712, 31344, 14728, 18032, 14744, 26224, 14760, 22128, 14776, 30320,
+
467 14792, 20080, 14808, 28272, 14824, 24176, 14832, 15984, 14840, 32368, 14856, 16752, 14872, 24944, 14888, 20848,
+
468 14904, 29040, 14920, 18800, 14936, 26992, 14952, 22896, 14968, 31088, 14984, 17776, 15000, 25968, 15016, 21872,
+
469 15032, 30064, 15048, 19824, 15064, 28016, 15080, 23920, 15088, 15728, 15096, 32112, 15112, 17264, 15128, 25456,
+
470 15144, 21360, 15160, 29552, 15176, 19312, 15192, 27504, 15208, 23408, 15224, 31600, 15240, 18288, 15256, 26480,
+
471 15272, 22384, 15288, 30576, 15304, 20336, 15320, 28528, 15336, 24432, 15344, 16240, 15352, 32624, 15368, 16624,
+
472 15384, 24816, 15400, 20720, 15416, 28912, 15432, 18672, 15448, 26864, 15464, 22768, 15480, 30960, 15496, 17648,
+
473 15512, 25840, 15528, 21744, 15544, 29936, 15560, 19696, 15576, 27888, 15592, 23792, 15608, 31984, 15624, 17136,
+
474 15640, 25328, 15656, 21232, 15672, 29424, 15688, 19184, 15704, 27376, 15720, 23280, 15736, 31472, 15752, 18160,
+
475 15768, 26352, 15784, 22256, 15800, 30448, 15816, 20208, 15832, 28400, 15848, 24304, 15856, 16112, 15864, 32496,
+
476 15880, 16880, 15896, 25072, 15912, 20976, 15928, 29168, 15944, 18928, 15960, 27120, 15976, 23024, 15992, 31216,
+
477 16008, 17904, 16024, 26096, 16040, 22000, 16056, 30192, 16072, 19952, 16088, 28144, 16104, 24048, 16120, 32240,
+
478 16136, 17392, 16152, 25584, 16168, 21488, 16184, 29680, 16200, 19440, 16216, 27632, 16232, 23536, 16248, 31728,
+
479 16264, 18416, 16280, 26608, 16296, 22512, 16312, 30704, 16328, 20464, 16344, 28656, 16360, 24560, 16376, 32752,
+
480 16408, 24584, 16424, 20488, 16440, 28680, 16456, 18440, 16472, 26632, 16488, 22536, 16504, 30728, 16520, 17416,
+
481 16536, 25608, 16552, 21512, 16568, 29704, 16584, 19464, 16600, 27656, 16616, 23560, 16632, 31752, 16648, 16904,
+
482 16664, 25096, 16680, 21000, 16696, 29192, 16712, 18952, 16728, 27144, 16744, 23048, 16760, 31240, 16776, 17928,
+
483 16792, 26120, 16808, 22024, 16824, 30216, 16840, 19976, 16856, 28168, 16872, 24072, 16888, 32264, 16920, 24840,
+
484 16936, 20744, 16952, 28936, 16968, 18696, 16984, 26888, 17000, 22792, 17016, 30984, 17032, 17672, 17048, 25864,
+
485 17064, 21768, 17080, 29960, 17096, 19720, 17112, 27912, 17128, 23816, 17144, 32008, 17176, 25352, 17192, 21256,
+
486 17208, 29448, 17224, 19208, 17240, 27400, 17256, 23304, 17272, 31496, 17288, 18184, 17304, 26376, 17320, 22280,
+
487 17336, 30472, 17352, 20232, 17368, 28424, 17384, 24328, 17400, 32520, 17432, 24712, 17448, 20616, 17464, 28808,
+
488 17480, 18568, 17496, 26760, 17512, 22664, 17528, 30856, 17560, 25736, 17576, 21640, 17592, 29832, 17608, 19592,
+
489 17624, 27784, 17640, 23688, 17656, 31880, 17688, 25224, 17704, 21128, 17720, 29320, 17736, 19080, 17752, 27272,
+
490 17768, 23176, 17784, 31368, 17800, 18056, 17816, 26248, 17832, 22152, 17848, 30344, 17864, 20104, 17880, 28296,
+
491 17896, 24200, 17912, 32392, 17944, 24968, 17960, 20872, 17976, 29064, 17992, 18824, 18008, 27016, 18024, 22920,
+
492 18040, 31112, 18072, 25992, 18088, 21896, 18104, 30088, 18120, 19848, 18136, 28040, 18152, 23944, 18168, 32136,
+
493 18200, 25480, 18216, 21384, 18232, 29576, 18248, 19336, 18264, 27528, 18280, 23432, 18296, 31624, 18328, 26504,
+
494 18344, 22408, 18360, 30600, 18376, 20360, 18392, 28552, 18408, 24456, 18424, 32648, 18456, 24648, 18472, 20552,
+
495 18488, 28744, 18520, 26696, 18536, 22600, 18552, 30792, 18584, 25672, 18600, 21576, 18616, 29768, 18632, 19528,
+
496 18648, 27720, 18664, 23624, 18680, 31816, 18712, 25160, 18728, 21064, 18744, 29256, 18760, 19016, 18776, 27208,
+
497 18792, 23112, 18808, 31304, 18840, 26184, 18856, 22088, 18872, 30280, 18888, 20040, 18904, 28232, 18920, 24136,
+
498 18936, 32328, 18968, 24904, 18984, 20808, 19000, 29000, 19032, 26952, 19048, 22856, 19064, 31048, 19096, 25928,
+
499 19112, 21832, 19128, 30024, 19144, 19784, 19160, 27976, 19176, 23880, 19192, 32072, 19224, 25416, 19240, 21320,
+
500 19256, 29512, 19288, 27464, 19304, 23368, 19320, 31560, 19352, 26440, 19368, 22344, 19384, 30536, 19400, 20296,
+
501 19416, 28488, 19432, 24392, 19448, 32584, 19480, 24776, 19496, 20680, 19512, 28872, 19544, 26824, 19560, 22728,
+
502 19576, 30920, 19608, 25800, 19624, 21704, 19640, 29896, 19672, 27848, 19688, 23752, 19704, 31944, 19736, 25288,
+
503 19752, 21192, 19768, 29384, 19800, 27336, 19816, 23240, 19832, 31432, 19864, 26312, 19880, 22216, 19896, 30408,
+
504 19912, 20168, 19928, 28360, 19944, 24264, 19960, 32456, 19992, 25032, 20008, 20936, 20024, 29128, 20056, 27080,
+
505 20072, 22984, 20088, 31176, 20120, 26056, 20136, 21960, 20152, 30152, 20184, 28104, 20200, 24008, 20216, 32200,
+
506 20248, 25544, 20264, 21448, 20280, 29640, 20312, 27592, 20328, 23496, 20344, 31688, 20376, 26568, 20392, 22472,
+
507 20408, 30664, 20440, 28616, 20456, 24520, 20472, 32712, 20504, 24616, 20536, 28712, 20568, 26664, 20584, 22568,
+
508 20600, 30760, 20632, 25640, 20648, 21544, 20664, 29736, 20696, 27688, 20712, 23592, 20728, 31784, 20760, 25128,
+
509 20776, 21032, 20792, 29224, 20824, 27176, 20840, 23080, 20856, 31272, 20888, 26152, 20904, 22056, 20920, 30248,
+
510 20952, 28200, 20968, 24104, 20984, 32296, 21016, 24872, 21048, 28968, 21080, 26920, 21096, 22824, 21112, 31016,
+
511 21144, 25896, 21160, 21800, 21176, 29992, 21208, 27944, 21224, 23848, 21240, 32040, 21272, 25384, 21304, 29480,
+
512 21336, 27432, 21352, 23336, 21368, 31528, 21400, 26408, 21416, 22312, 21432, 30504, 21464, 28456, 21480, 24360,
+
513 21496, 32552, 21528, 24744, 21560, 28840, 21592, 26792, 21608, 22696, 21624, 30888, 21656, 25768, 21688, 29864,
+
514 21720, 27816, 21736, 23720, 21752, 31912, 21784, 25256, 21816, 29352, 21848, 27304, 21864, 23208, 21880, 31400,
+
515 21912, 26280, 21928, 22184, 21944, 30376, 21976, 28328, 21992, 24232, 22008, 32424, 22040, 25000, 22072, 29096,
+
516 22104, 27048, 22120, 22952, 22136, 31144, 22168, 26024, 22200, 30120, 22232, 28072, 22248, 23976, 22264, 32168,
+
517 22296, 25512, 22328, 29608, 22360, 27560, 22376, 23464, 22392, 31656, 22424, 26536, 22456, 30632, 22488, 28584,
+
518 22504, 24488, 22520, 32680, 22552, 24680, 22584, 28776, 22616, 26728, 22648, 30824, 22680, 25704, 22712, 29800,
+
519 22744, 27752, 22760, 23656, 22776, 31848, 22808, 25192, 22840, 29288, 22872, 27240, 22888, 23144, 22904, 31336,
+
520 22936, 26216, 22968, 30312, 23000, 28264, 23016, 24168, 23032, 32360, 23064, 24936, 23096, 29032, 23128, 26984,
+
521 23160, 31080, 23192, 25960, 23224, 30056, 23256, 28008, 23272, 23912, 23288, 32104, 23320, 25448, 23352, 29544,
+
522 23384, 27496, 23416, 31592, 23448, 26472, 23480, 30568, 23512, 28520, 23528, 24424, 23544, 32616, 23576, 24808,
+
523 23608, 28904, 23640, 26856, 23672, 30952, 23704, 25832, 23736, 29928, 23768, 27880, 23800, 31976, 23832, 25320,
+
524 23864, 29416, 23896, 27368, 23928, 31464, 23960, 26344, 23992, 30440, 24024, 28392, 24040, 24296, 24056, 32488,
+
525 24088, 25064, 24120, 29160, 24152, 27112, 24184, 31208, 24216, 26088, 24248, 30184, 24280, 28136, 24312, 32232,
+
526 24344, 25576, 24376, 29672, 24408, 27624, 24440, 31720, 24472, 26600, 24504, 30696, 24536, 28648, 24568, 32744,
+
527 24632, 28696, 24664, 26648, 24696, 30744, 24728, 25624, 24760, 29720, 24792, 27672, 24824, 31768, 24856, 25112,
+
528 24888, 29208, 24920, 27160, 24952, 31256, 24984, 26136, 25016, 30232, 25048, 28184, 25080, 32280, 25144, 28952,
+
529 25176, 26904, 25208, 31000, 25240, 25880, 25272, 29976, 25304, 27928, 25336, 32024, 25400, 29464, 25432, 27416,
+
530 25464, 31512, 25496, 26392, 25528, 30488, 25560, 28440, 25592, 32536, 25656, 28824, 25688, 26776, 25720, 30872,
+
531 25784, 29848, 25816, 27800, 25848, 31896, 25912, 29336, 25944, 27288, 25976, 31384, 26008, 26264, 26040, 30360,
+
532 26072, 28312, 26104, 32408, 26168, 29080, 26200, 27032, 26232, 31128, 26296, 30104, 26328, 28056, 26360, 32152,
+
533 26424, 29592, 26456, 27544, 26488, 31640, 26552, 30616, 26584, 28568, 26616, 32664, 26680, 28760, 26744, 30808,
+
534 26808, 29784, 26840, 27736, 26872, 31832, 26936, 29272, 26968, 27224, 27000, 31320, 27064, 30296, 27096, 28248,
+
535 27128, 32344, 27192, 29016, 27256, 31064, 27320, 30040, 27352, 27992, 27384, 32088, 27448, 29528, 27512, 31576,
+
536 27576, 30552, 27608, 28504, 27640, 32600, 27704, 28888, 27768, 30936, 27832, 29912, 27896, 31960, 27960, 29400,
+
537 28024, 31448, 28088, 30424, 28120, 28376, 28152, 32472, 28216, 29144, 28280, 31192, 28344, 30168, 28408, 32216,
+
538 28472, 29656, 28536, 31704, 28600, 30680, 28664, 32728, 28792, 30776, 28856, 29752, 28920, 31800, 28984, 29240,
+
539 29048, 31288, 29112, 30264, 29176, 32312, 29304, 31032, 29368, 30008, 29432, 32056, 29560, 31544, 29624, 30520,
+
540 29688, 32568, 29816, 30904, 29944, 31928, 30072, 31416, 30136, 30392, 30200, 32440, 30328, 31160, 30456, 32184,
+
541 30584, 31672, 30712, 32696, 30968, 31864, 31096, 31352, 31224, 32376, 31480, 32120, 31736, 32632, 32248, 32504,
+
542};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_4096_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev2r_table_4096_fc32_size = 2016
+
+ +

Definition at line 578 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_512_fc32

+ +
+
+ + + + +
const uint16_t bitrev2r_table_512_fc32[]
+
+ +

Definition at line 64 of file dsps_fft2r_bitrev_tables_fc32.c.

+
64 {
+
65 8, 2048, 16, 1024, 24, 3072, 32, 512, 40, 2560, 48, 1536, 56, 3584, 64, 256,
+
66 72, 2304, 80, 1280, 88, 3328, 96, 768, 104, 2816, 112, 1792, 120, 3840, 136, 2176,
+
67 144, 1152, 152, 3200, 160, 640, 168, 2688, 176, 1664, 184, 3712, 192, 384, 200, 2432,
+
68 208, 1408, 216, 3456, 224, 896, 232, 2944, 240, 1920, 248, 3968, 264, 2112, 272, 1088,
+
69 280, 3136, 288, 576, 296, 2624, 304, 1600, 312, 3648, 328, 2368, 336, 1344, 344, 3392,
+
70 352, 832, 360, 2880, 368, 1856, 376, 3904, 392, 2240, 400, 1216, 408, 3264, 416, 704,
+
71 424, 2752, 432, 1728, 440, 3776, 456, 2496, 464, 1472, 472, 3520, 480, 960, 488, 3008,
+
72 496, 1984, 504, 4032, 520, 2080, 528, 1056, 536, 3104, 552, 2592, 560, 1568, 568, 3616,
+
73 584, 2336, 592, 1312, 600, 3360, 608, 800, 616, 2848, 624, 1824, 632, 3872, 648, 2208,
+
74 656, 1184, 664, 3232, 680, 2720, 688, 1696, 696, 3744, 712, 2464, 720, 1440, 728, 3488,
+
75 736, 928, 744, 2976, 752, 1952, 760, 4000, 776, 2144, 784, 1120, 792, 3168, 808, 2656,
+
76 816, 1632, 824, 3680, 840, 2400, 848, 1376, 856, 3424, 872, 2912, 880, 1888, 888, 3936,
+
77 904, 2272, 912, 1248, 920, 3296, 936, 2784, 944, 1760, 952, 3808, 968, 2528, 976, 1504,
+
78 984, 3552, 1000, 3040, 1008, 2016, 1016, 4064, 1032, 2064, 1048, 3088, 1064, 2576, 1072, 1552,
+
79 1080, 3600, 1096, 2320, 1104, 1296, 1112, 3344, 1128, 2832, 1136, 1808, 1144, 3856, 1160, 2192,
+
80 1176, 3216, 1192, 2704, 1200, 1680, 1208, 3728, 1224, 2448, 1232, 1424, 1240, 3472, 1256, 2960,
+
81 1264, 1936, 1272, 3984, 1288, 2128, 1304, 3152, 1320, 2640, 1328, 1616, 1336, 3664, 1352, 2384,
+
82 1368, 3408, 1384, 2896, 1392, 1872, 1400, 3920, 1416, 2256, 1432, 3280, 1448, 2768, 1456, 1744,
+
83 1464, 3792, 1480, 2512, 1496, 3536, 1512, 3024, 1520, 2000, 1528, 4048, 1544, 2096, 1560, 3120,
+
84 1576, 2608, 1592, 3632, 1608, 2352, 1624, 3376, 1640, 2864, 1648, 1840, 1656, 3888, 1672, 2224,
+
85 1688, 3248, 1704, 2736, 1720, 3760, 1736, 2480, 1752, 3504, 1768, 2992, 1776, 1968, 1784, 4016,
+
86 1800, 2160, 1816, 3184, 1832, 2672, 1848, 3696, 1864, 2416, 1880, 3440, 1896, 2928, 1912, 3952,
+
87 1928, 2288, 1944, 3312, 1960, 2800, 1976, 3824, 1992, 2544, 2008, 3568, 2024, 3056, 2040, 4080,
+
88 2072, 3080, 2088, 2568, 2104, 3592, 2120, 2312, 2136, 3336, 2152, 2824, 2168, 3848, 2200, 3208,
+
89 2216, 2696, 2232, 3720, 2248, 2440, 2264, 3464, 2280, 2952, 2296, 3976, 2328, 3144, 2344, 2632,
+
90 2360, 3656, 2392, 3400, 2408, 2888, 2424, 3912, 2456, 3272, 2472, 2760, 2488, 3784, 2520, 3528,
+
91 2536, 3016, 2552, 4040, 2584, 3112, 2616, 3624, 2648, 3368, 2664, 2856, 2680, 3880, 2712, 3240,
+
92 2744, 3752, 2776, 3496, 2792, 2984, 2808, 4008, 2840, 3176, 2872, 3688, 2904, 3432, 2936, 3944,
+
93 2968, 3304, 3000, 3816, 3032, 3560, 3064, 4072, 3128, 3608, 3160, 3352, 3192, 3864, 3256, 3736,
+
94 3288, 3480, 3320, 3992, 3384, 3672, 3448, 3928, 3512, 3800, 3576, 4056, 3704, 3896, 3832, 4024,
+
95};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_512_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev2r_table_512_fc32_size = 240
+
+ +

Definition at line 575 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_64_fc32

+ +
+
+ + + + +
const uint16_t bitrev2r_table_64_fc32[]
+
+Initial value:
= {
+
8, 256, 16, 128, 24, 384, 32, 64, 40, 320, 48, 192, 56, 448, 72, 288,
+
80, 160, 88, 416, 104, 352, 112, 224, 120, 480, 136, 272, 152, 400, 168, 336,
+
176, 208, 184, 464, 200, 304, 216, 432, 232, 368, 248, 496, 280, 392, 296, 328,
+
312, 456, 344, 424, 376, 488, 440, 472,
+
}
+
+

Definition at line 29 of file dsps_fft2r_bitrev_tables_fc32.c.

+
29 {
+
30 8, 256, 16, 128, 24, 384, 32, 64, 40, 320, 48, 192, 56, 448, 72, 288,
+
31 80, 160, 88, 416, 104, 352, 112, 224, 120, 480, 136, 272, 152, 400, 168, 336,
+
32 176, 208, 184, 464, 200, 304, 216, 432, 232, 368, 248, 496, 280, 392, 296, 328,
+
33 312, 456, 344, 424, 376, 488, 440, 472,
+
34};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_64_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev2r_table_64_fc32_size = 28
+
+ +

Definition at line 572 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ dsps_fft2r_rev_tables_fc32

+ +
+
+ + + + +
uint16_t* dsps_fft2r_rev_tables_fc32[]
+
+Initial value:
= {
+ + + + + + + + + +
}
+
+

Definition at line 558 of file dsps_fft2r_bitrev_tables_fc32.c.

+
558 {
+
559 (uint16_t *)bitrev2r_table_16_fc32,
+
560 (uint16_t *)bitrev2r_table_32_fc32,
+
561 (uint16_t *)bitrev2r_table_64_fc32,
+
562 (uint16_t *)bitrev2r_table_128_fc32,
+
563 (uint16_t *)bitrev2r_table_256_fc32,
+
564 (uint16_t *)bitrev2r_table_512_fc32,
+
565 (uint16_t *)bitrev2r_table_1024_fc32,
+
566 (uint16_t *)bitrev2r_table_2048_fc32,
+
567 (uint16_t *)bitrev2r_table_4096_fc32,
+
568};
+
+

Referenced by dsps_bit_rev2r_fc32(), dsps_fft2r_init_fc32(), and dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ dsps_fft2r_rev_tables_fc32_size

+ +
+
+ + + + +
const uint16_t dsps_fft2r_rev_tables_fc32_size[]
+
+Initial value:
= {
+
(const uint16_t)6,
+
(const uint16_t)12,
+
(const uint16_t)28,
+
(const uint16_t)56,
+
(const uint16_t)120,
+
(const uint16_t)240,
+
(const uint16_t)496,
+
(const uint16_t)992,
+
(const uint16_t)2016,
+
}
+
+

Definition at line 580 of file dsps_fft2r_bitrev_tables_fc32.c.

+
580 {
+
581 (const uint16_t)6, // bitrev2r_table_16_fc32_size,
+
582 (const uint16_t)12, // bitrev2r_table_32_fc32_size,
+
583 (const uint16_t)28, // bitrev2r_table_64_fc32_size,
+
584 (const uint16_t)56, // bitrev2r_table_128_fc32_size,
+
585 (const uint16_t)120, // bitrev2r_table_256_fc32_size,
+
586 (const uint16_t)240, // bitrev2r_table_512_fc32_size,
+
587 (const uint16_t)496, // bitrev2r_table_1024_fc32_size,
+
588 (const uint16_t)992, // bitrev2r_table_2048_fc32_size,
+
589 (const uint16_t)2016,// bitrev2r_table_4096_fc32_size,
+
590};
+
+

Referenced by dsps_bit_rev2r_fc32(), and dsps_fft2r_init_fc32().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft2r__bitrev__tables__fc32_8c.js b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c.js new file mode 100644 index 0000000..886e351 --- /dev/null +++ b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c.js @@ -0,0 +1,24 @@ +var dsps__fft2r__bitrev__tables__fc32_8c = +[ + [ "dsps_fft2r_rev_tables_init_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#abaa77616d9eb4819fe7cd9bfbf253cfc", null ], + [ "bitrev2r_table_1024_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#a1bc3f64f1f95b0c9f85a82be691b67a6", null ], + [ "bitrev2r_table_1024_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#a88902816592ecc06fc9378dfa031069b", null ], + [ "bitrev2r_table_128_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#a19f1b60cd1ae61e5d8212e42c04f382d", null ], + [ "bitrev2r_table_128_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#a8b7b857f88dc74e87265c991ff45d687", null ], + [ "bitrev2r_table_16_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#a06bf69e8a30aeb66124c2c323a6d38b7", null ], + [ "bitrev2r_table_16_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#aabe1c7e6b302b02d5dc6f38c08d7f222", null ], + [ "bitrev2r_table_2048_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#abfbe4da4ea39c8cfa3610a5a13ded8a0", null ], + [ "bitrev2r_table_2048_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#aba2d7bd2b2f9ec59d9b0b59ebaf47d52", null ], + [ "bitrev2r_table_256_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#a85f8e1aa8da9213ce0f2f44624bc887d", null ], + [ "bitrev2r_table_256_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#a73ab7b3252c4261cba225f30a4ae174d", null ], + [ "bitrev2r_table_32_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#a45b7b6621ce68fbb95de0d10d88e02ec", null ], + [ "bitrev2r_table_32_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#acaf4f8ccc865e4460f1039dd9fdaceb6", null ], + [ "bitrev2r_table_4096_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#a5311f694a31d7367b78df5462033a4b3", null ], + [ "bitrev2r_table_4096_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#a30977ed28f4bfa0907302f782452c6d2", null ], + [ "bitrev2r_table_512_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#a3b8b2f3eb9492e89998509be787c23c6", null ], + [ "bitrev2r_table_512_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#a129d8201f9973c8cb8d754e99e4dff88", null ], + [ "bitrev2r_table_64_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#a6fa23c5a0857ca97e9016dda4253ce3f", null ], + [ "bitrev2r_table_64_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#a521f81c3335b8303787f82b48d2f6334", null ], + [ "dsps_fft2r_rev_tables_fc32", "dsps__fft2r__bitrev__tables__fc32_8c.html#a82c1cb0c45b191f0ee8a5263c1d534de", null ], + [ "dsps_fft2r_rev_tables_fc32_size", "dsps__fft2r__bitrev__tables__fc32_8c.html#a385ba10c447824389480b8c97b835109", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl.md5 b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl.md5 new file mode 100644 index 0000000..6afa89b --- /dev/null +++ b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl.md5 @@ -0,0 +1 @@ +2a50ebeaec164b112d15e9286e2ee09a \ No newline at end of file diff --git a/docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl.svg b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl.svg new file mode 100644 index 0000000..d18b8fb --- /dev/null +++ b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +dsps_fft2r_bitrev_tables_fc32.c + + +Node1 + + +dsps_fft2r_bitrev_tables +_fc32.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft_tables.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl_org.svg b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl_org.svg new file mode 100644 index 0000000..1357812 --- /dev/null +++ b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c__incl_org.svg @@ -0,0 +1,58 @@ + + + + + + +dsps_fft2r_bitrev_tables_fc32.c + + +Node1 + + +dsps_fft2r_bitrev_tables +_fc32.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft_tables.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 new file mode 100644 index 0000000..7da4763 --- /dev/null +++ b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 @@ -0,0 +1 @@ +fca368992d7d8bfda0ed73e02ac0fd54 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg new file mode 100644 index 0000000..4f830a3 --- /dev/null +++ b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_fft2r_rev_tables_init_fc32 + + +Node1 + + +dsps_fft2r_rev_tables +_init_fc32 + + + + + +Node2 + + +dsps_fft2r_deinit_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg new file mode 100644 index 0000000..f64d3d6 --- /dev/null +++ b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_fft2r_rev_tables_init_fc32 + + +Node1 + + +dsps_fft2r_rev_tables +_init_fc32 + + + + + +Node2 + + +dsps_fft2r_deinit_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_source.html b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_source.html new file mode 100644 index 0000000..3daf2a7 --- /dev/null +++ b/docs/html/dsps__fft2r__bitrev__tables__fc32_8c_source.html @@ -0,0 +1,742 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_bitrev_tables_fc32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_bitrev_tables_fc32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#include <stdint.h>
+
17#include "dsps_fft_tables.h"
+
18
+
19
+
+
20const uint16_t bitrev2r_table_16_fc32[] = {
+
21 8, 64, 16, 32, 24, 96, 40, 80, 56, 112, 88, 104,
+
22};
+
+
23
+
+
24const uint16_t bitrev2r_table_32_fc32[] = {
+
25 8, 128, 16, 64, 24, 192, 40, 160, 48, 96, 56, 224, 72, 144, 88, 208,
+
26 104, 176, 120, 240, 152, 200, 184, 232,
+
27};
+
+
28
+
+
29const uint16_t bitrev2r_table_64_fc32[] = {
+
30 8, 256, 16, 128, 24, 384, 32, 64, 40, 320, 48, 192, 56, 448, 72, 288,
+
31 80, 160, 88, 416, 104, 352, 112, 224, 120, 480, 136, 272, 152, 400, 168, 336,
+
32 176, 208, 184, 464, 200, 304, 216, 432, 232, 368, 248, 496, 280, 392, 296, 328,
+
33 312, 456, 344, 424, 376, 488, 440, 472,
+
34};
+
+
35
+
+
36const uint16_t bitrev2r_table_128_fc32[] = {
+
37 8, 512, 16, 256, 24, 768, 32, 128, 40, 640, 48, 384, 56, 896, 72, 576,
+
38 80, 320, 88, 832, 96, 192, 104, 704, 112, 448, 120, 960, 136, 544, 144, 288,
+
39 152, 800, 168, 672, 176, 416, 184, 928, 200, 608, 208, 352, 216, 864, 232, 736,
+
40 240, 480, 248, 992, 264, 528, 280, 784, 296, 656, 304, 400, 312, 912, 328, 592,
+
41 344, 848, 360, 720, 368, 464, 376, 976, 392, 560, 408, 816, 424, 688, 440, 944,
+
42 456, 624, 472, 880, 488, 752, 504, 1008, 536, 776, 552, 648, 568, 904, 600, 840,
+
43 616, 712, 632, 968, 664, 808, 696, 936, 728, 872, 760, 1000, 824, 920, 888, 984,
+
44};
+
+
45
+
+
46const uint16_t bitrev2r_table_256_fc32[] = {
+
47 8, 1024, 16, 512, 24, 1536, 32, 256, 40, 1280, 48, 768, 56, 1792, 64, 128,
+
48 72, 1152, 80, 640, 88, 1664, 96, 384, 104, 1408, 112, 896, 120, 1920, 136, 1088,
+
49 144, 576, 152, 1600, 160, 320, 168, 1344, 176, 832, 184, 1856, 200, 1216, 208, 704,
+
50 216, 1728, 224, 448, 232, 1472, 240, 960, 248, 1984, 264, 1056, 272, 544, 280, 1568,
+
51 296, 1312, 304, 800, 312, 1824, 328, 1184, 336, 672, 344, 1696, 352, 416, 360, 1440,
+
52 368, 928, 376, 1952, 392, 1120, 400, 608, 408, 1632, 424, 1376, 432, 864, 440, 1888,
+
53 456, 1248, 464, 736, 472, 1760, 488, 1504, 496, 992, 504, 2016, 520, 1040, 536, 1552,
+
54 552, 1296, 560, 784, 568, 1808, 584, 1168, 592, 656, 600, 1680, 616, 1424, 624, 912,
+
55 632, 1936, 648, 1104, 664, 1616, 680, 1360, 688, 848, 696, 1872, 712, 1232, 728, 1744,
+
56 744, 1488, 752, 976, 760, 2000, 776, 1072, 792, 1584, 808, 1328, 824, 1840, 840, 1200,
+
57 856, 1712, 872, 1456, 880, 944, 888, 1968, 904, 1136, 920, 1648, 936, 1392, 952, 1904,
+
58 968, 1264, 984, 1776, 1000, 1520, 1016, 2032, 1048, 1544, 1064, 1288, 1080, 1800, 1096, 1160,
+
59 1112, 1672, 1128, 1416, 1144, 1928, 1176, 1608, 1192, 1352, 1208, 1864, 1240, 1736, 1256, 1480,
+
60 1272, 1992, 1304, 1576, 1336, 1832, 1368, 1704, 1384, 1448, 1400, 1960, 1432, 1640, 1464, 1896,
+
61 1496, 1768, 1528, 2024, 1592, 1816, 1624, 1688, 1656, 1944, 1720, 1880, 1784, 2008, 1912, 1976,
+
62};
+
+
63
+
+
64const uint16_t bitrev2r_table_512_fc32[] = {
+
65 8, 2048, 16, 1024, 24, 3072, 32, 512, 40, 2560, 48, 1536, 56, 3584, 64, 256,
+
66 72, 2304, 80, 1280, 88, 3328, 96, 768, 104, 2816, 112, 1792, 120, 3840, 136, 2176,
+
67 144, 1152, 152, 3200, 160, 640, 168, 2688, 176, 1664, 184, 3712, 192, 384, 200, 2432,
+
68 208, 1408, 216, 3456, 224, 896, 232, 2944, 240, 1920, 248, 3968, 264, 2112, 272, 1088,
+
69 280, 3136, 288, 576, 296, 2624, 304, 1600, 312, 3648, 328, 2368, 336, 1344, 344, 3392,
+
70 352, 832, 360, 2880, 368, 1856, 376, 3904, 392, 2240, 400, 1216, 408, 3264, 416, 704,
+
71 424, 2752, 432, 1728, 440, 3776, 456, 2496, 464, 1472, 472, 3520, 480, 960, 488, 3008,
+
72 496, 1984, 504, 4032, 520, 2080, 528, 1056, 536, 3104, 552, 2592, 560, 1568, 568, 3616,
+
73 584, 2336, 592, 1312, 600, 3360, 608, 800, 616, 2848, 624, 1824, 632, 3872, 648, 2208,
+
74 656, 1184, 664, 3232, 680, 2720, 688, 1696, 696, 3744, 712, 2464, 720, 1440, 728, 3488,
+
75 736, 928, 744, 2976, 752, 1952, 760, 4000, 776, 2144, 784, 1120, 792, 3168, 808, 2656,
+
76 816, 1632, 824, 3680, 840, 2400, 848, 1376, 856, 3424, 872, 2912, 880, 1888, 888, 3936,
+
77 904, 2272, 912, 1248, 920, 3296, 936, 2784, 944, 1760, 952, 3808, 968, 2528, 976, 1504,
+
78 984, 3552, 1000, 3040, 1008, 2016, 1016, 4064, 1032, 2064, 1048, 3088, 1064, 2576, 1072, 1552,
+
79 1080, 3600, 1096, 2320, 1104, 1296, 1112, 3344, 1128, 2832, 1136, 1808, 1144, 3856, 1160, 2192,
+
80 1176, 3216, 1192, 2704, 1200, 1680, 1208, 3728, 1224, 2448, 1232, 1424, 1240, 3472, 1256, 2960,
+
81 1264, 1936, 1272, 3984, 1288, 2128, 1304, 3152, 1320, 2640, 1328, 1616, 1336, 3664, 1352, 2384,
+
82 1368, 3408, 1384, 2896, 1392, 1872, 1400, 3920, 1416, 2256, 1432, 3280, 1448, 2768, 1456, 1744,
+
83 1464, 3792, 1480, 2512, 1496, 3536, 1512, 3024, 1520, 2000, 1528, 4048, 1544, 2096, 1560, 3120,
+
84 1576, 2608, 1592, 3632, 1608, 2352, 1624, 3376, 1640, 2864, 1648, 1840, 1656, 3888, 1672, 2224,
+
85 1688, 3248, 1704, 2736, 1720, 3760, 1736, 2480, 1752, 3504, 1768, 2992, 1776, 1968, 1784, 4016,
+
86 1800, 2160, 1816, 3184, 1832, 2672, 1848, 3696, 1864, 2416, 1880, 3440, 1896, 2928, 1912, 3952,
+
87 1928, 2288, 1944, 3312, 1960, 2800, 1976, 3824, 1992, 2544, 2008, 3568, 2024, 3056, 2040, 4080,
+
88 2072, 3080, 2088, 2568, 2104, 3592, 2120, 2312, 2136, 3336, 2152, 2824, 2168, 3848, 2200, 3208,
+
89 2216, 2696, 2232, 3720, 2248, 2440, 2264, 3464, 2280, 2952, 2296, 3976, 2328, 3144, 2344, 2632,
+
90 2360, 3656, 2392, 3400, 2408, 2888, 2424, 3912, 2456, 3272, 2472, 2760, 2488, 3784, 2520, 3528,
+
91 2536, 3016, 2552, 4040, 2584, 3112, 2616, 3624, 2648, 3368, 2664, 2856, 2680, 3880, 2712, 3240,
+
92 2744, 3752, 2776, 3496, 2792, 2984, 2808, 4008, 2840, 3176, 2872, 3688, 2904, 3432, 2936, 3944,
+
93 2968, 3304, 3000, 3816, 3032, 3560, 3064, 4072, 3128, 3608, 3160, 3352, 3192, 3864, 3256, 3736,
+
94 3288, 3480, 3320, 3992, 3384, 3672, 3448, 3928, 3512, 3800, 3576, 4056, 3704, 3896, 3832, 4024,
+
95};
+
+
96
+
+
97const uint16_t bitrev2r_table_1024_fc32[] = {
+
98 8, 4096, 16, 2048, 24, 6144, 32, 1024, 40, 5120, 48, 3072, 56, 7168, 64, 512,
+
99 72, 4608, 80, 2560, 88, 6656, 96, 1536, 104, 5632, 112, 3584, 120, 7680, 128, 256,
+
100 136, 4352, 144, 2304, 152, 6400, 160, 1280, 168, 5376, 176, 3328, 184, 7424, 192, 768,
+
101 200, 4864, 208, 2816, 216, 6912, 224, 1792, 232, 5888, 240, 3840, 248, 7936, 264, 4224,
+
102 272, 2176, 280, 6272, 288, 1152, 296, 5248, 304, 3200, 312, 7296, 320, 640, 328, 4736,
+
103 336, 2688, 344, 6784, 352, 1664, 360, 5760, 368, 3712, 376, 7808, 392, 4480, 400, 2432,
+
104 408, 6528, 416, 1408, 424, 5504, 432, 3456, 440, 7552, 448, 896, 456, 4992, 464, 2944,
+
105 472, 7040, 480, 1920, 488, 6016, 496, 3968, 504, 8064, 520, 4160, 528, 2112, 536, 6208,
+
106 544, 1088, 552, 5184, 560, 3136, 568, 7232, 584, 4672, 592, 2624, 600, 6720, 608, 1600,
+
107 616, 5696, 624, 3648, 632, 7744, 648, 4416, 656, 2368, 664, 6464, 672, 1344, 680, 5440,
+
108 688, 3392, 696, 7488, 704, 832, 712, 4928, 720, 2880, 728, 6976, 736, 1856, 744, 5952,
+
109 752, 3904, 760, 8000, 776, 4288, 784, 2240, 792, 6336, 800, 1216, 808, 5312, 816, 3264,
+
110 824, 7360, 840, 4800, 848, 2752, 856, 6848, 864, 1728, 872, 5824, 880, 3776, 888, 7872,
+
111 904, 4544, 912, 2496, 920, 6592, 928, 1472, 936, 5568, 944, 3520, 952, 7616, 968, 5056,
+
112 976, 3008, 984, 7104, 992, 1984, 1000, 6080, 1008, 4032, 1016, 8128, 1032, 4128, 1040, 2080,
+
113 1048, 6176, 1064, 5152, 1072, 3104, 1080, 7200, 1096, 4640, 1104, 2592, 1112, 6688, 1120, 1568,
+
114 1128, 5664, 1136, 3616, 1144, 7712, 1160, 4384, 1168, 2336, 1176, 6432, 1184, 1312, 1192, 5408,
+
115 1200, 3360, 1208, 7456, 1224, 4896, 1232, 2848, 1240, 6944, 1248, 1824, 1256, 5920, 1264, 3872,
+
116 1272, 7968, 1288, 4256, 1296, 2208, 1304, 6304, 1320, 5280, 1328, 3232, 1336, 7328, 1352, 4768,
+
117 1360, 2720, 1368, 6816, 1376, 1696, 1384, 5792, 1392, 3744, 1400, 7840, 1416, 4512, 1424, 2464,
+
118 1432, 6560, 1448, 5536, 1456, 3488, 1464, 7584, 1480, 5024, 1488, 2976, 1496, 7072, 1504, 1952,
+
119 1512, 6048, 1520, 4000, 1528, 8096, 1544, 4192, 1552, 2144, 1560, 6240, 1576, 5216, 1584, 3168,
+
120 1592, 7264, 1608, 4704, 1616, 2656, 1624, 6752, 1640, 5728, 1648, 3680, 1656, 7776, 1672, 4448,
+
121 1680, 2400, 1688, 6496, 1704, 5472, 1712, 3424, 1720, 7520, 1736, 4960, 1744, 2912, 1752, 7008,
+
122 1760, 1888, 1768, 5984, 1776, 3936, 1784, 8032, 1800, 4320, 1808, 2272, 1816, 6368, 1832, 5344,
+
123 1840, 3296, 1848, 7392, 1864, 4832, 1872, 2784, 1880, 6880, 1896, 5856, 1904, 3808, 1912, 7904,
+
124 1928, 4576, 1936, 2528, 1944, 6624, 1960, 5600, 1968, 3552, 1976, 7648, 1992, 5088, 2000, 3040,
+
125 2008, 7136, 2024, 6112, 2032, 4064, 2040, 8160, 2056, 4112, 2072, 6160, 2088, 5136, 2096, 3088,
+
126 2104, 7184, 2120, 4624, 2128, 2576, 2136, 6672, 2152, 5648, 2160, 3600, 2168, 7696, 2184, 4368,
+
127 2192, 2320, 2200, 6416, 2216, 5392, 2224, 3344, 2232, 7440, 2248, 4880, 2256, 2832, 2264, 6928,
+
128 2280, 5904, 2288, 3856, 2296, 7952, 2312, 4240, 2328, 6288, 2344, 5264, 2352, 3216, 2360, 7312,
+
129 2376, 4752, 2384, 2704, 2392, 6800, 2408, 5776, 2416, 3728, 2424, 7824, 2440, 4496, 2456, 6544,
+
130 2472, 5520, 2480, 3472, 2488, 7568, 2504, 5008, 2512, 2960, 2520, 7056, 2536, 6032, 2544, 3984,
+
131 2552, 8080, 2568, 4176, 2584, 6224, 2600, 5200, 2608, 3152, 2616, 7248, 2632, 4688, 2648, 6736,
+
132 2664, 5712, 2672, 3664, 2680, 7760, 2696, 4432, 2712, 6480, 2728, 5456, 2736, 3408, 2744, 7504,
+
133 2760, 4944, 2768, 2896, 2776, 6992, 2792, 5968, 2800, 3920, 2808, 8016, 2824, 4304, 2840, 6352,
+
134 2856, 5328, 2864, 3280, 2872, 7376, 2888, 4816, 2904, 6864, 2920, 5840, 2928, 3792, 2936, 7888,
+
135 2952, 4560, 2968, 6608, 2984, 5584, 2992, 3536, 3000, 7632, 3016, 5072, 3032, 7120, 3048, 6096,
+
136 3056, 4048, 3064, 8144, 3080, 4144, 3096, 6192, 3112, 5168, 3128, 7216, 3144, 4656, 3160, 6704,
+
137 3176, 5680, 3184, 3632, 3192, 7728, 3208, 4400, 3224, 6448, 3240, 5424, 3248, 3376, 3256, 7472,
+
138 3272, 4912, 3288, 6960, 3304, 5936, 3312, 3888, 3320, 7984, 3336, 4272, 3352, 6320, 3368, 5296,
+
139 3384, 7344, 3400, 4784, 3416, 6832, 3432, 5808, 3440, 3760, 3448, 7856, 3464, 4528, 3480, 6576,
+
140 3496, 5552, 3512, 7600, 3528, 5040, 3544, 7088, 3560, 6064, 3568, 4016, 3576, 8112, 3592, 4208,
+
141 3608, 6256, 3624, 5232, 3640, 7280, 3656, 4720, 3672, 6768, 3688, 5744, 3704, 7792, 3720, 4464,
+
142 3736, 6512, 3752, 5488, 3768, 7536, 3784, 4976, 3800, 7024, 3816, 6000, 3824, 3952, 3832, 8048,
+
143 3848, 4336, 3864, 6384, 3880, 5360, 3896, 7408, 3912, 4848, 3928, 6896, 3944, 5872, 3960, 7920,
+
144 3976, 4592, 3992, 6640, 4008, 5616, 4024, 7664, 4040, 5104, 4056, 7152, 4072, 6128, 4088, 8176,
+
145 4120, 6152, 4136, 5128, 4152, 7176, 4168, 4616, 4184, 6664, 4200, 5640, 4216, 7688, 4232, 4360,
+
146 4248, 6408, 4264, 5384, 4280, 7432, 4296, 4872, 4312, 6920, 4328, 5896, 4344, 7944, 4376, 6280,
+
147 4392, 5256, 4408, 7304, 4424, 4744, 4440, 6792, 4456, 5768, 4472, 7816, 4504, 6536, 4520, 5512,
+
148 4536, 7560, 4552, 5000, 4568, 7048, 4584, 6024, 4600, 8072, 4632, 6216, 4648, 5192, 4664, 7240,
+
149 4696, 6728, 4712, 5704, 4728, 7752, 4760, 6472, 4776, 5448, 4792, 7496, 4808, 4936, 4824, 6984,
+
150 4840, 5960, 4856, 8008, 4888, 6344, 4904, 5320, 4920, 7368, 4952, 6856, 4968, 5832, 4984, 7880,
+
151 5016, 6600, 5032, 5576, 5048, 7624, 5080, 7112, 5096, 6088, 5112, 8136, 5144, 6184, 5176, 7208,
+
152 5208, 6696, 5224, 5672, 5240, 7720, 5272, 6440, 5288, 5416, 5304, 7464, 5336, 6952, 5352, 5928,
+
153 5368, 7976, 5400, 6312, 5432, 7336, 5464, 6824, 5480, 5800, 5496, 7848, 5528, 6568, 5560, 7592,
+
154 5592, 7080, 5608, 6056, 5624, 8104, 5656, 6248, 5688, 7272, 5720, 6760, 5752, 7784, 5784, 6504,
+
155 5816, 7528, 5848, 7016, 5864, 5992, 5880, 8040, 5912, 6376, 5944, 7400, 5976, 6888, 6008, 7912,
+
156 6040, 6632, 6072, 7656, 6104, 7144, 6136, 8168, 6200, 7192, 6232, 6680, 6264, 7704, 6296, 6424,
+
157 6328, 7448, 6360, 6936, 6392, 7960, 6456, 7320, 6488, 6808, 6520, 7832, 6584, 7576, 6616, 7064,
+
158 6648, 8088, 6712, 7256, 6776, 7768, 6840, 7512, 6872, 7000, 6904, 8024, 6968, 7384, 7032, 7896,
+
159 7096, 7640, 7160, 8152, 7288, 7736, 7352, 7480, 7416, 7992, 7544, 7864, 7672, 8120, 7928, 8056,
+
160};
+
+
161
+
+
162const uint16_t bitrev2r_table_2048_fc32[] = {
+
163 8, 8192, 16, 4096, 24, 12288, 32, 2048, 40, 10240, 48, 6144, 56, 14336, 64, 1024,
+
164 72, 9216, 80, 5120, 88, 13312, 96, 3072, 104, 11264, 112, 7168, 120, 15360, 128, 512,
+
165 136, 8704, 144, 4608, 152, 12800, 160, 2560, 168, 10752, 176, 6656, 184, 14848, 192, 1536,
+
166 200, 9728, 208, 5632, 216, 13824, 224, 3584, 232, 11776, 240, 7680, 248, 15872, 264, 8448,
+
167 272, 4352, 280, 12544, 288, 2304, 296, 10496, 304, 6400, 312, 14592, 320, 1280, 328, 9472,
+
168 336, 5376, 344, 13568, 352, 3328, 360, 11520, 368, 7424, 376, 15616, 384, 768, 392, 8960,
+
169 400, 4864, 408, 13056, 416, 2816, 424, 11008, 432, 6912, 440, 15104, 448, 1792, 456, 9984,
+
170 464, 5888, 472, 14080, 480, 3840, 488, 12032, 496, 7936, 504, 16128, 520, 8320, 528, 4224,
+
171 536, 12416, 544, 2176, 552, 10368, 560, 6272, 568, 14464, 576, 1152, 584, 9344, 592, 5248,
+
172 600, 13440, 608, 3200, 616, 11392, 624, 7296, 632, 15488, 648, 8832, 656, 4736, 664, 12928,
+
173 672, 2688, 680, 10880, 688, 6784, 696, 14976, 704, 1664, 712, 9856, 720, 5760, 728, 13952,
+
174 736, 3712, 744, 11904, 752, 7808, 760, 16000, 776, 8576, 784, 4480, 792, 12672, 800, 2432,
+
175 808, 10624, 816, 6528, 824, 14720, 832, 1408, 840, 9600, 848, 5504, 856, 13696, 864, 3456,
+
176 872, 11648, 880, 7552, 888, 15744, 904, 9088, 912, 4992, 920, 13184, 928, 2944, 936, 11136,
+
177 944, 7040, 952, 15232, 960, 1920, 968, 10112, 976, 6016, 984, 14208, 992, 3968, 1000, 12160,
+
178 1008, 8064, 1016, 16256, 1032, 8256, 1040, 4160, 1048, 12352, 1056, 2112, 1064, 10304, 1072, 6208,
+
179 1080, 14400, 1096, 9280, 1104, 5184, 1112, 13376, 1120, 3136, 1128, 11328, 1136, 7232, 1144, 15424,
+
180 1160, 8768, 1168, 4672, 1176, 12864, 1184, 2624, 1192, 10816, 1200, 6720, 1208, 14912, 1216, 1600,
+
181 1224, 9792, 1232, 5696, 1240, 13888, 1248, 3648, 1256, 11840, 1264, 7744, 1272, 15936, 1288, 8512,
+
182 1296, 4416, 1304, 12608, 1312, 2368, 1320, 10560, 1328, 6464, 1336, 14656, 1352, 9536, 1360, 5440,
+
183 1368, 13632, 1376, 3392, 1384, 11584, 1392, 7488, 1400, 15680, 1416, 9024, 1424, 4928, 1432, 13120,
+
184 1440, 2880, 1448, 11072, 1456, 6976, 1464, 15168, 1472, 1856, 1480, 10048, 1488, 5952, 1496, 14144,
+
185 1504, 3904, 1512, 12096, 1520, 8000, 1528, 16192, 1544, 8384, 1552, 4288, 1560, 12480, 1568, 2240,
+
186 1576, 10432, 1584, 6336, 1592, 14528, 1608, 9408, 1616, 5312, 1624, 13504, 1632, 3264, 1640, 11456,
+
187 1648, 7360, 1656, 15552, 1672, 8896, 1680, 4800, 1688, 12992, 1696, 2752, 1704, 10944, 1712, 6848,
+
188 1720, 15040, 1736, 9920, 1744, 5824, 1752, 14016, 1760, 3776, 1768, 11968, 1776, 7872, 1784, 16064,
+
189 1800, 8640, 1808, 4544, 1816, 12736, 1824, 2496, 1832, 10688, 1840, 6592, 1848, 14784, 1864, 9664,
+
190 1872, 5568, 1880, 13760, 1888, 3520, 1896, 11712, 1904, 7616, 1912, 15808, 1928, 9152, 1936, 5056,
+
191 1944, 13248, 1952, 3008, 1960, 11200, 1968, 7104, 1976, 15296, 1992, 10176, 2000, 6080, 2008, 14272,
+
192 2016, 4032, 2024, 12224, 2032, 8128, 2040, 16320, 2056, 8224, 2064, 4128, 2072, 12320, 2088, 10272,
+
193 2096, 6176, 2104, 14368, 2120, 9248, 2128, 5152, 2136, 13344, 2144, 3104, 2152, 11296, 2160, 7200,
+
194 2168, 15392, 2184, 8736, 2192, 4640, 2200, 12832, 2208, 2592, 2216, 10784, 2224, 6688, 2232, 14880,
+
195 2248, 9760, 2256, 5664, 2264, 13856, 2272, 3616, 2280, 11808, 2288, 7712, 2296, 15904, 2312, 8480,
+
196 2320, 4384, 2328, 12576, 2344, 10528, 2352, 6432, 2360, 14624, 2376, 9504, 2384, 5408, 2392, 13600,
+
197 2400, 3360, 2408, 11552, 2416, 7456, 2424, 15648, 2440, 8992, 2448, 4896, 2456, 13088, 2464, 2848,
+
198 2472, 11040, 2480, 6944, 2488, 15136, 2504, 10016, 2512, 5920, 2520, 14112, 2528, 3872, 2536, 12064,
+
199 2544, 7968, 2552, 16160, 2568, 8352, 2576, 4256, 2584, 12448, 2600, 10400, 2608, 6304, 2616, 14496,
+
200 2632, 9376, 2640, 5280, 2648, 13472, 2656, 3232, 2664, 11424, 2672, 7328, 2680, 15520, 2696, 8864,
+
201 2704, 4768, 2712, 12960, 2728, 10912, 2736, 6816, 2744, 15008, 2760, 9888, 2768, 5792, 2776, 13984,
+
202 2784, 3744, 2792, 11936, 2800, 7840, 2808, 16032, 2824, 8608, 2832, 4512, 2840, 12704, 2856, 10656,
+
203 2864, 6560, 2872, 14752, 2888, 9632, 2896, 5536, 2904, 13728, 2912, 3488, 2920, 11680, 2928, 7584,
+
204 2936, 15776, 2952, 9120, 2960, 5024, 2968, 13216, 2984, 11168, 2992, 7072, 3000, 15264, 3016, 10144,
+
205 3024, 6048, 3032, 14240, 3040, 4000, 3048, 12192, 3056, 8096, 3064, 16288, 3080, 8288, 3088, 4192,
+
206 3096, 12384, 3112, 10336, 3120, 6240, 3128, 14432, 3144, 9312, 3152, 5216, 3160, 13408, 3176, 11360,
+
207 3184, 7264, 3192, 15456, 3208, 8800, 3216, 4704, 3224, 12896, 3240, 10848, 3248, 6752, 3256, 14944,
+
208 3272, 9824, 3280, 5728, 3288, 13920, 3296, 3680, 3304, 11872, 3312, 7776, 3320, 15968, 3336, 8544,
+
209 3344, 4448, 3352, 12640, 3368, 10592, 3376, 6496, 3384, 14688, 3400, 9568, 3408, 5472, 3416, 13664,
+
210 3432, 11616, 3440, 7520, 3448, 15712, 3464, 9056, 3472, 4960, 3480, 13152, 3496, 11104, 3504, 7008,
+
211 3512, 15200, 3528, 10080, 3536, 5984, 3544, 14176, 3552, 3936, 3560, 12128, 3568, 8032, 3576, 16224,
+
212 3592, 8416, 3600, 4320, 3608, 12512, 3624, 10464, 3632, 6368, 3640, 14560, 3656, 9440, 3664, 5344,
+
213 3672, 13536, 3688, 11488, 3696, 7392, 3704, 15584, 3720, 8928, 3728, 4832, 3736, 13024, 3752, 10976,
+
214 3760, 6880, 3768, 15072, 3784, 9952, 3792, 5856, 3800, 14048, 3816, 12000, 3824, 7904, 3832, 16096,
+
215 3848, 8672, 3856, 4576, 3864, 12768, 3880, 10720, 3888, 6624, 3896, 14816, 3912, 9696, 3920, 5600,
+
216 3928, 13792, 3944, 11744, 3952, 7648, 3960, 15840, 3976, 9184, 3984, 5088, 3992, 13280, 4008, 11232,
+
217 4016, 7136, 4024, 15328, 4040, 10208, 4048, 6112, 4056, 14304, 4072, 12256, 4080, 8160, 4088, 16352,
+
218 4104, 8208, 4120, 12304, 4136, 10256, 4144, 6160, 4152, 14352, 4168, 9232, 4176, 5136, 4184, 13328,
+
219 4200, 11280, 4208, 7184, 4216, 15376, 4232, 8720, 4240, 4624, 4248, 12816, 4264, 10768, 4272, 6672,
+
220 4280, 14864, 4296, 9744, 4304, 5648, 4312, 13840, 4328, 11792, 4336, 7696, 4344, 15888, 4360, 8464,
+
221 4376, 12560, 4392, 10512, 4400, 6416, 4408, 14608, 4424, 9488, 4432, 5392, 4440, 13584, 4456, 11536,
+
222 4464, 7440, 4472, 15632, 4488, 8976, 4496, 4880, 4504, 13072, 4520, 11024, 4528, 6928, 4536, 15120,
+
223 4552, 10000, 4560, 5904, 4568, 14096, 4584, 12048, 4592, 7952, 4600, 16144, 4616, 8336, 4632, 12432,
+
224 4648, 10384, 4656, 6288, 4664, 14480, 4680, 9360, 4688, 5264, 4696, 13456, 4712, 11408, 4720, 7312,
+
225 4728, 15504, 4744, 8848, 4760, 12944, 4776, 10896, 4784, 6800, 4792, 14992, 4808, 9872, 4816, 5776,
+
226 4824, 13968, 4840, 11920, 4848, 7824, 4856, 16016, 4872, 8592, 4888, 12688, 4904, 10640, 4912, 6544,
+
227 4920, 14736, 4936, 9616, 4944, 5520, 4952, 13712, 4968, 11664, 4976, 7568, 4984, 15760, 5000, 9104,
+
228 5016, 13200, 5032, 11152, 5040, 7056, 5048, 15248, 5064, 10128, 5072, 6032, 5080, 14224, 5096, 12176,
+
229 5104, 8080, 5112, 16272, 5128, 8272, 5144, 12368, 5160, 10320, 5168, 6224, 5176, 14416, 5192, 9296,
+
230 5208, 13392, 5224, 11344, 5232, 7248, 5240, 15440, 5256, 8784, 5272, 12880, 5288, 10832, 5296, 6736,
+
231 5304, 14928, 5320, 9808, 5328, 5712, 5336, 13904, 5352, 11856, 5360, 7760, 5368, 15952, 5384, 8528,
+
232 5400, 12624, 5416, 10576, 5424, 6480, 5432, 14672, 5448, 9552, 5464, 13648, 5480, 11600, 5488, 7504,
+
233 5496, 15696, 5512, 9040, 5528, 13136, 5544, 11088, 5552, 6992, 5560, 15184, 5576, 10064, 5584, 5968,
+
234 5592, 14160, 5608, 12112, 5616, 8016, 5624, 16208, 5640, 8400, 5656, 12496, 5672, 10448, 5680, 6352,
+
235 5688, 14544, 5704, 9424, 5720, 13520, 5736, 11472, 5744, 7376, 5752, 15568, 5768, 8912, 5784, 13008,
+
236 5800, 10960, 5808, 6864, 5816, 15056, 5832, 9936, 5848, 14032, 5864, 11984, 5872, 7888, 5880, 16080,
+
237 5896, 8656, 5912, 12752, 5928, 10704, 5936, 6608, 5944, 14800, 5960, 9680, 5976, 13776, 5992, 11728,
+
238 6000, 7632, 6008, 15824, 6024, 9168, 6040, 13264, 6056, 11216, 6064, 7120, 6072, 15312, 6088, 10192,
+
239 6104, 14288, 6120, 12240, 6128, 8144, 6136, 16336, 6152, 8240, 6168, 12336, 6184, 10288, 6200, 14384,
+
240 6216, 9264, 6232, 13360, 6248, 11312, 6256, 7216, 6264, 15408, 6280, 8752, 6296, 12848, 6312, 10800,
+
241 6320, 6704, 6328, 14896, 6344, 9776, 6360, 13872, 6376, 11824, 6384, 7728, 6392, 15920, 6408, 8496,
+
242 6424, 12592, 6440, 10544, 6456, 14640, 6472, 9520, 6488, 13616, 6504, 11568, 6512, 7472, 6520, 15664,
+
243 6536, 9008, 6552, 13104, 6568, 11056, 6576, 6960, 6584, 15152, 6600, 10032, 6616, 14128, 6632, 12080,
+
244 6640, 7984, 6648, 16176, 6664, 8368, 6680, 12464, 6696, 10416, 6712, 14512, 6728, 9392, 6744, 13488,
+
245 6760, 11440, 6768, 7344, 6776, 15536, 6792, 8880, 6808, 12976, 6824, 10928, 6840, 15024, 6856, 9904,
+
246 6872, 14000, 6888, 11952, 6896, 7856, 6904, 16048, 6920, 8624, 6936, 12720, 6952, 10672, 6968, 14768,
+
247 6984, 9648, 7000, 13744, 7016, 11696, 7024, 7600, 7032, 15792, 7048, 9136, 7064, 13232, 7080, 11184,
+
248 7096, 15280, 7112, 10160, 7128, 14256, 7144, 12208, 7152, 8112, 7160, 16304, 7176, 8304, 7192, 12400,
+
249 7208, 10352, 7224, 14448, 7240, 9328, 7256, 13424, 7272, 11376, 7288, 15472, 7304, 8816, 7320, 12912,
+
250 7336, 10864, 7352, 14960, 7368, 9840, 7384, 13936, 7400, 11888, 7408, 7792, 7416, 15984, 7432, 8560,
+
251 7448, 12656, 7464, 10608, 7480, 14704, 7496, 9584, 7512, 13680, 7528, 11632, 7544, 15728, 7560, 9072,
+
252 7576, 13168, 7592, 11120, 7608, 15216, 7624, 10096, 7640, 14192, 7656, 12144, 7664, 8048, 7672, 16240,
+
253 7688, 8432, 7704, 12528, 7720, 10480, 7736, 14576, 7752, 9456, 7768, 13552, 7784, 11504, 7800, 15600,
+
254 7816, 8944, 7832, 13040, 7848, 10992, 7864, 15088, 7880, 9968, 7896, 14064, 7912, 12016, 7928, 16112,
+
255 7944, 8688, 7960, 12784, 7976, 10736, 7992, 14832, 8008, 9712, 8024, 13808, 8040, 11760, 8056, 15856,
+
256 8072, 9200, 8088, 13296, 8104, 11248, 8120, 15344, 8136, 10224, 8152, 14320, 8168, 12272, 8184, 16368,
+
257 8216, 12296, 8232, 10248, 8248, 14344, 8264, 9224, 8280, 13320, 8296, 11272, 8312, 15368, 8328, 8712,
+
258 8344, 12808, 8360, 10760, 8376, 14856, 8392, 9736, 8408, 13832, 8424, 11784, 8440, 15880, 8472, 12552,
+
259 8488, 10504, 8504, 14600, 8520, 9480, 8536, 13576, 8552, 11528, 8568, 15624, 8584, 8968, 8600, 13064,
+
260 8616, 11016, 8632, 15112, 8648, 9992, 8664, 14088, 8680, 12040, 8696, 16136, 8728, 12424, 8744, 10376,
+
261 8760, 14472, 8776, 9352, 8792, 13448, 8808, 11400, 8824, 15496, 8856, 12936, 8872, 10888, 8888, 14984,
+
262 8904, 9864, 8920, 13960, 8936, 11912, 8952, 16008, 8984, 12680, 9000, 10632, 9016, 14728, 9032, 9608,
+
263 9048, 13704, 9064, 11656, 9080, 15752, 9112, 13192, 9128, 11144, 9144, 15240, 9160, 10120, 9176, 14216,
+
264 9192, 12168, 9208, 16264, 9240, 12360, 9256, 10312, 9272, 14408, 9304, 13384, 9320, 11336, 9336, 15432,
+
265 9368, 12872, 9384, 10824, 9400, 14920, 9416, 9800, 9432, 13896, 9448, 11848, 9464, 15944, 9496, 12616,
+
266 9512, 10568, 9528, 14664, 9560, 13640, 9576, 11592, 9592, 15688, 9624, 13128, 9640, 11080, 9656, 15176,
+
267 9672, 10056, 9688, 14152, 9704, 12104, 9720, 16200, 9752, 12488, 9768, 10440, 9784, 14536, 9816, 13512,
+
268 9832, 11464, 9848, 15560, 9880, 13000, 9896, 10952, 9912, 15048, 9944, 14024, 9960, 11976, 9976, 16072,
+
269 10008, 12744, 10024, 10696, 10040, 14792, 10072, 13768, 10088, 11720, 10104, 15816, 10136, 13256, 10152, 11208,
+
270 10168, 15304, 10200, 14280, 10216, 12232, 10232, 16328, 10264, 12328, 10296, 14376, 10328, 13352, 10344, 11304,
+
271 10360, 15400, 10392, 12840, 10408, 10792, 10424, 14888, 10456, 13864, 10472, 11816, 10488, 15912, 10520, 12584,
+
272 10552, 14632, 10584, 13608, 10600, 11560, 10616, 15656, 10648, 13096, 10664, 11048, 10680, 15144, 10712, 14120,
+
273 10728, 12072, 10744, 16168, 10776, 12456, 10808, 14504, 10840, 13480, 10856, 11432, 10872, 15528, 10904, 12968,
+
274 10936, 15016, 10968, 13992, 10984, 11944, 11000, 16040, 11032, 12712, 11064, 14760, 11096, 13736, 11112, 11688,
+
275 11128, 15784, 11160, 13224, 11192, 15272, 11224, 14248, 11240, 12200, 11256, 16296, 11288, 12392, 11320, 14440,
+
276 11352, 13416, 11384, 15464, 11416, 12904, 11448, 14952, 11480, 13928, 11496, 11880, 11512, 15976, 11544, 12648,
+
277 11576, 14696, 11608, 13672, 11640, 15720, 11672, 13160, 11704, 15208, 11736, 14184, 11752, 12136, 11768, 16232,
+
278 11800, 12520, 11832, 14568, 11864, 13544, 11896, 15592, 11928, 13032, 11960, 15080, 11992, 14056, 12024, 16104,
+
279 12056, 12776, 12088, 14824, 12120, 13800, 12152, 15848, 12184, 13288, 12216, 15336, 12248, 14312, 12280, 16360,
+
280 12344, 14360, 12376, 13336, 12408, 15384, 12440, 12824, 12472, 14872, 12504, 13848, 12536, 15896, 12600, 14616,
+
281 12632, 13592, 12664, 15640, 12696, 13080, 12728, 15128, 12760, 14104, 12792, 16152, 12856, 14488, 12888, 13464,
+
282 12920, 15512, 12984, 15000, 13016, 13976, 13048, 16024, 13112, 14744, 13144, 13720, 13176, 15768, 13240, 15256,
+
283 13272, 14232, 13304, 16280, 13368, 14424, 13432, 15448, 13496, 14936, 13528, 13912, 13560, 15960, 13624, 14680,
+
284 13688, 15704, 13752, 15192, 13784, 14168, 13816, 16216, 13880, 14552, 13944, 15576, 14008, 15064, 14072, 16088,
+
285 14136, 14808, 14200, 15832, 14264, 15320, 14328, 16344, 14456, 15416, 14520, 14904, 14584, 15928, 14712, 15672,
+
286 14776, 15160, 14840, 16184, 14968, 15544, 15096, 16056, 15224, 15800, 15352, 16312, 15608, 15992, 15864, 16248,
+
287};
+
+
288
+
+
289const uint16_t bitrev2r_table_4096_fc32[] = {
+
290 8, 16384, 16, 8192, 24, 24576, 32, 4096, 40, 20480, 48, 12288, 56, 28672, 64, 2048,
+
291 72, 18432, 80, 10240, 88, 26624, 96, 6144, 104, 22528, 112, 14336, 120, 30720, 128, 1024,
+
292 136, 17408, 144, 9216, 152, 25600, 160, 5120, 168, 21504, 176, 13312, 184, 29696, 192, 3072,
+
293 200, 19456, 208, 11264, 216, 27648, 224, 7168, 232, 23552, 240, 15360, 248, 31744, 256, 512,
+
294 264, 16896, 272, 8704, 280, 25088, 288, 4608, 296, 20992, 304, 12800, 312, 29184, 320, 2560,
+
295 328, 18944, 336, 10752, 344, 27136, 352, 6656, 360, 23040, 368, 14848, 376, 31232, 384, 1536,
+
296 392, 17920, 400, 9728, 408, 26112, 416, 5632, 424, 22016, 432, 13824, 440, 30208, 448, 3584,
+
297 456, 19968, 464, 11776, 472, 28160, 480, 7680, 488, 24064, 496, 15872, 504, 32256, 520, 16640,
+
298 528, 8448, 536, 24832, 544, 4352, 552, 20736, 560, 12544, 568, 28928, 576, 2304, 584, 18688,
+
299 592, 10496, 600, 26880, 608, 6400, 616, 22784, 624, 14592, 632, 30976, 640, 1280, 648, 17664,
+
300 656, 9472, 664, 25856, 672, 5376, 680, 21760, 688, 13568, 696, 29952, 704, 3328, 712, 19712,
+
301 720, 11520, 728, 27904, 736, 7424, 744, 23808, 752, 15616, 760, 32000, 776, 17152, 784, 8960,
+
302 792, 25344, 800, 4864, 808, 21248, 816, 13056, 824, 29440, 832, 2816, 840, 19200, 848, 11008,
+
303 856, 27392, 864, 6912, 872, 23296, 880, 15104, 888, 31488, 896, 1792, 904, 18176, 912, 9984,
+
304 920, 26368, 928, 5888, 936, 22272, 944, 14080, 952, 30464, 960, 3840, 968, 20224, 976, 12032,
+
305 984, 28416, 992, 7936, 1000, 24320, 1008, 16128, 1016, 32512, 1032, 16512, 1040, 8320, 1048, 24704,
+
306 1056, 4224, 1064, 20608, 1072, 12416, 1080, 28800, 1088, 2176, 1096, 18560, 1104, 10368, 1112, 26752,
+
307 1120, 6272, 1128, 22656, 1136, 14464, 1144, 30848, 1160, 17536, 1168, 9344, 1176, 25728, 1184, 5248,
+
308 1192, 21632, 1200, 13440, 1208, 29824, 1216, 3200, 1224, 19584, 1232, 11392, 1240, 27776, 1248, 7296,
+
309 1256, 23680, 1264, 15488, 1272, 31872, 1288, 17024, 1296, 8832, 1304, 25216, 1312, 4736, 1320, 21120,
+
310 1328, 12928, 1336, 29312, 1344, 2688, 1352, 19072, 1360, 10880, 1368, 27264, 1376, 6784, 1384, 23168,
+
311 1392, 14976, 1400, 31360, 1408, 1664, 1416, 18048, 1424, 9856, 1432, 26240, 1440, 5760, 1448, 22144,
+
312 1456, 13952, 1464, 30336, 1472, 3712, 1480, 20096, 1488, 11904, 1496, 28288, 1504, 7808, 1512, 24192,
+
313 1520, 16000, 1528, 32384, 1544, 16768, 1552, 8576, 1560, 24960, 1568, 4480, 1576, 20864, 1584, 12672,
+
314 1592, 29056, 1600, 2432, 1608, 18816, 1616, 10624, 1624, 27008, 1632, 6528, 1640, 22912, 1648, 14720,
+
315 1656, 31104, 1672, 17792, 1680, 9600, 1688, 25984, 1696, 5504, 1704, 21888, 1712, 13696, 1720, 30080,
+
316 1728, 3456, 1736, 19840, 1744, 11648, 1752, 28032, 1760, 7552, 1768, 23936, 1776, 15744, 1784, 32128,
+
317 1800, 17280, 1808, 9088, 1816, 25472, 1824, 4992, 1832, 21376, 1840, 13184, 1848, 29568, 1856, 2944,
+
318 1864, 19328, 1872, 11136, 1880, 27520, 1888, 7040, 1896, 23424, 1904, 15232, 1912, 31616, 1928, 18304,
+
319 1936, 10112, 1944, 26496, 1952, 6016, 1960, 22400, 1968, 14208, 1976, 30592, 1984, 3968, 1992, 20352,
+
320 2000, 12160, 2008, 28544, 2016, 8064, 2024, 24448, 2032, 16256, 2040, 32640, 2056, 16448, 2064, 8256,
+
321 2072, 24640, 2080, 4160, 2088, 20544, 2096, 12352, 2104, 28736, 2120, 18496, 2128, 10304, 2136, 26688,
+
322 2144, 6208, 2152, 22592, 2160, 14400, 2168, 30784, 2184, 17472, 2192, 9280, 2200, 25664, 2208, 5184,
+
323 2216, 21568, 2224, 13376, 2232, 29760, 2240, 3136, 2248, 19520, 2256, 11328, 2264, 27712, 2272, 7232,
+
324 2280, 23616, 2288, 15424, 2296, 31808, 2312, 16960, 2320, 8768, 2328, 25152, 2336, 4672, 2344, 21056,
+
325 2352, 12864, 2360, 29248, 2368, 2624, 2376, 19008, 2384, 10816, 2392, 27200, 2400, 6720, 2408, 23104,
+
326 2416, 14912, 2424, 31296, 2440, 17984, 2448, 9792, 2456, 26176, 2464, 5696, 2472, 22080, 2480, 13888,
+
327 2488, 30272, 2496, 3648, 2504, 20032, 2512, 11840, 2520, 28224, 2528, 7744, 2536, 24128, 2544, 15936,
+
328 2552, 32320, 2568, 16704, 2576, 8512, 2584, 24896, 2592, 4416, 2600, 20800, 2608, 12608, 2616, 28992,
+
329 2632, 18752, 2640, 10560, 2648, 26944, 2656, 6464, 2664, 22848, 2672, 14656, 2680, 31040, 2696, 17728,
+
330 2704, 9536, 2712, 25920, 2720, 5440, 2728, 21824, 2736, 13632, 2744, 30016, 2752, 3392, 2760, 19776,
+
331 2768, 11584, 2776, 27968, 2784, 7488, 2792, 23872, 2800, 15680, 2808, 32064, 2824, 17216, 2832, 9024,
+
332 2840, 25408, 2848, 4928, 2856, 21312, 2864, 13120, 2872, 29504, 2888, 19264, 2896, 11072, 2904, 27456,
+
333 2912, 6976, 2920, 23360, 2928, 15168, 2936, 31552, 2952, 18240, 2960, 10048, 2968, 26432, 2976, 5952,
+
334 2984, 22336, 2992, 14144, 3000, 30528, 3008, 3904, 3016, 20288, 3024, 12096, 3032, 28480, 3040, 8000,
+
335 3048, 24384, 3056, 16192, 3064, 32576, 3080, 16576, 3088, 8384, 3096, 24768, 3104, 4288, 3112, 20672,
+
336 3120, 12480, 3128, 28864, 3144, 18624, 3152, 10432, 3160, 26816, 3168, 6336, 3176, 22720, 3184, 14528,
+
337 3192, 30912, 3208, 17600, 3216, 9408, 3224, 25792, 3232, 5312, 3240, 21696, 3248, 13504, 3256, 29888,
+
338 3272, 19648, 3280, 11456, 3288, 27840, 3296, 7360, 3304, 23744, 3312, 15552, 3320, 31936, 3336, 17088,
+
339 3344, 8896, 3352, 25280, 3360, 4800, 3368, 21184, 3376, 12992, 3384, 29376, 3400, 19136, 3408, 10944,
+
340 3416, 27328, 3424, 6848, 3432, 23232, 3440, 15040, 3448, 31424, 3464, 18112, 3472, 9920, 3480, 26304,
+
341 3488, 5824, 3496, 22208, 3504, 14016, 3512, 30400, 3520, 3776, 3528, 20160, 3536, 11968, 3544, 28352,
+
342 3552, 7872, 3560, 24256, 3568, 16064, 3576, 32448, 3592, 16832, 3600, 8640, 3608, 25024, 3616, 4544,
+
343 3624, 20928, 3632, 12736, 3640, 29120, 3656, 18880, 3664, 10688, 3672, 27072, 3680, 6592, 3688, 22976,
+
344 3696, 14784, 3704, 31168, 3720, 17856, 3728, 9664, 3736, 26048, 3744, 5568, 3752, 21952, 3760, 13760,
+
345 3768, 30144, 3784, 19904, 3792, 11712, 3800, 28096, 3808, 7616, 3816, 24000, 3824, 15808, 3832, 32192,
+
346 3848, 17344, 3856, 9152, 3864, 25536, 3872, 5056, 3880, 21440, 3888, 13248, 3896, 29632, 3912, 19392,
+
347 3920, 11200, 3928, 27584, 3936, 7104, 3944, 23488, 3952, 15296, 3960, 31680, 3976, 18368, 3984, 10176,
+
348 3992, 26560, 4000, 6080, 4008, 22464, 4016, 14272, 4024, 30656, 4040, 20416, 4048, 12224, 4056, 28608,
+
349 4064, 8128, 4072, 24512, 4080, 16320, 4088, 32704, 4104, 16416, 4112, 8224, 4120, 24608, 4136, 20512,
+
350 4144, 12320, 4152, 28704, 4168, 18464, 4176, 10272, 4184, 26656, 4192, 6176, 4200, 22560, 4208, 14368,
+
351 4216, 30752, 4232, 17440, 4240, 9248, 4248, 25632, 4256, 5152, 4264, 21536, 4272, 13344, 4280, 29728,
+
352 4296, 19488, 4304, 11296, 4312, 27680, 4320, 7200, 4328, 23584, 4336, 15392, 4344, 31776, 4360, 16928,
+
353 4368, 8736, 4376, 25120, 4384, 4640, 4392, 21024, 4400, 12832, 4408, 29216, 4424, 18976, 4432, 10784,
+
354 4440, 27168, 4448, 6688, 4456, 23072, 4464, 14880, 4472, 31264, 4488, 17952, 4496, 9760, 4504, 26144,
+
355 4512, 5664, 4520, 22048, 4528, 13856, 4536, 30240, 4552, 20000, 4560, 11808, 4568, 28192, 4576, 7712,
+
356 4584, 24096, 4592, 15904, 4600, 32288, 4616, 16672, 4624, 8480, 4632, 24864, 4648, 20768, 4656, 12576,
+
357 4664, 28960, 4680, 18720, 4688, 10528, 4696, 26912, 4704, 6432, 4712, 22816, 4720, 14624, 4728, 31008,
+
358 4744, 17696, 4752, 9504, 4760, 25888, 4768, 5408, 4776, 21792, 4784, 13600, 4792, 29984, 4808, 19744,
+
359 4816, 11552, 4824, 27936, 4832, 7456, 4840, 23840, 4848, 15648, 4856, 32032, 4872, 17184, 4880, 8992,
+
360 4888, 25376, 4904, 21280, 4912, 13088, 4920, 29472, 4936, 19232, 4944, 11040, 4952, 27424, 4960, 6944,
+
361 4968, 23328, 4976, 15136, 4984, 31520, 5000, 18208, 5008, 10016, 5016, 26400, 5024, 5920, 5032, 22304,
+
362 5040, 14112, 5048, 30496, 5064, 20256, 5072, 12064, 5080, 28448, 5088, 7968, 5096, 24352, 5104, 16160,
+
363 5112, 32544, 5128, 16544, 5136, 8352, 5144, 24736, 5160, 20640, 5168, 12448, 5176, 28832, 5192, 18592,
+
364 5200, 10400, 5208, 26784, 5216, 6304, 5224, 22688, 5232, 14496, 5240, 30880, 5256, 17568, 5264, 9376,
+
365 5272, 25760, 5288, 21664, 5296, 13472, 5304, 29856, 5320, 19616, 5328, 11424, 5336, 27808, 5344, 7328,
+
366 5352, 23712, 5360, 15520, 5368, 31904, 5384, 17056, 5392, 8864, 5400, 25248, 5416, 21152, 5424, 12960,
+
367 5432, 29344, 5448, 19104, 5456, 10912, 5464, 27296, 5472, 6816, 5480, 23200, 5488, 15008, 5496, 31392,
+
368 5512, 18080, 5520, 9888, 5528, 26272, 5536, 5792, 5544, 22176, 5552, 13984, 5560, 30368, 5576, 20128,
+
369 5584, 11936, 5592, 28320, 5600, 7840, 5608, 24224, 5616, 16032, 5624, 32416, 5640, 16800, 5648, 8608,
+
370 5656, 24992, 5672, 20896, 5680, 12704, 5688, 29088, 5704, 18848, 5712, 10656, 5720, 27040, 5728, 6560,
+
371 5736, 22944, 5744, 14752, 5752, 31136, 5768, 17824, 5776, 9632, 5784, 26016, 5800, 21920, 5808, 13728,
+
372 5816, 30112, 5832, 19872, 5840, 11680, 5848, 28064, 5856, 7584, 5864, 23968, 5872, 15776, 5880, 32160,
+
373 5896, 17312, 5904, 9120, 5912, 25504, 5928, 21408, 5936, 13216, 5944, 29600, 5960, 19360, 5968, 11168,
+
374 5976, 27552, 5984, 7072, 5992, 23456, 6000, 15264, 6008, 31648, 6024, 18336, 6032, 10144, 6040, 26528,
+
375 6056, 22432, 6064, 14240, 6072, 30624, 6088, 20384, 6096, 12192, 6104, 28576, 6112, 8096, 6120, 24480,
+
376 6128, 16288, 6136, 32672, 6152, 16480, 6160, 8288, 6168, 24672, 6184, 20576, 6192, 12384, 6200, 28768,
+
377 6216, 18528, 6224, 10336, 6232, 26720, 6248, 22624, 6256, 14432, 6264, 30816, 6280, 17504, 6288, 9312,
+
378 6296, 25696, 6312, 21600, 6320, 13408, 6328, 29792, 6344, 19552, 6352, 11360, 6360, 27744, 6368, 7264,
+
379 6376, 23648, 6384, 15456, 6392, 31840, 6408, 16992, 6416, 8800, 6424, 25184, 6440, 21088, 6448, 12896,
+
380 6456, 29280, 6472, 19040, 6480, 10848, 6488, 27232, 6496, 6752, 6504, 23136, 6512, 14944, 6520, 31328,
+
381 6536, 18016, 6544, 9824, 6552, 26208, 6568, 22112, 6576, 13920, 6584, 30304, 6600, 20064, 6608, 11872,
+
382 6616, 28256, 6624, 7776, 6632, 24160, 6640, 15968, 6648, 32352, 6664, 16736, 6672, 8544, 6680, 24928,
+
383 6696, 20832, 6704, 12640, 6712, 29024, 6728, 18784, 6736, 10592, 6744, 26976, 6760, 22880, 6768, 14688,
+
384 6776, 31072, 6792, 17760, 6800, 9568, 6808, 25952, 6824, 21856, 6832, 13664, 6840, 30048, 6856, 19808,
+
385 6864, 11616, 6872, 28000, 6880, 7520, 6888, 23904, 6896, 15712, 6904, 32096, 6920, 17248, 6928, 9056,
+
386 6936, 25440, 6952, 21344, 6960, 13152, 6968, 29536, 6984, 19296, 6992, 11104, 7000, 27488, 7016, 23392,
+
387 7024, 15200, 7032, 31584, 7048, 18272, 7056, 10080, 7064, 26464, 7080, 22368, 7088, 14176, 7096, 30560,
+
388 7112, 20320, 7120, 12128, 7128, 28512, 7136, 8032, 7144, 24416, 7152, 16224, 7160, 32608, 7176, 16608,
+
389 7184, 8416, 7192, 24800, 7208, 20704, 7216, 12512, 7224, 28896, 7240, 18656, 7248, 10464, 7256, 26848,
+
390 7272, 22752, 7280, 14560, 7288, 30944, 7304, 17632, 7312, 9440, 7320, 25824, 7336, 21728, 7344, 13536,
+
391 7352, 29920, 7368, 19680, 7376, 11488, 7384, 27872, 7400, 23776, 7408, 15584, 7416, 31968, 7432, 17120,
+
392 7440, 8928, 7448, 25312, 7464, 21216, 7472, 13024, 7480, 29408, 7496, 19168, 7504, 10976, 7512, 27360,
+
393 7528, 23264, 7536, 15072, 7544, 31456, 7560, 18144, 7568, 9952, 7576, 26336, 7592, 22240, 7600, 14048,
+
394 7608, 30432, 7624, 20192, 7632, 12000, 7640, 28384, 7648, 7904, 7656, 24288, 7664, 16096, 7672, 32480,
+
395 7688, 16864, 7696, 8672, 7704, 25056, 7720, 20960, 7728, 12768, 7736, 29152, 7752, 18912, 7760, 10720,
+
396 7768, 27104, 7784, 23008, 7792, 14816, 7800, 31200, 7816, 17888, 7824, 9696, 7832, 26080, 7848, 21984,
+
397 7856, 13792, 7864, 30176, 7880, 19936, 7888, 11744, 7896, 28128, 7912, 24032, 7920, 15840, 7928, 32224,
+
398 7944, 17376, 7952, 9184, 7960, 25568, 7976, 21472, 7984, 13280, 7992, 29664, 8008, 19424, 8016, 11232,
+
399 8024, 27616, 8040, 23520, 8048, 15328, 8056, 31712, 8072, 18400, 8080, 10208, 8088, 26592, 8104, 22496,
+
400 8112, 14304, 8120, 30688, 8136, 20448, 8144, 12256, 8152, 28640, 8168, 24544, 8176, 16352, 8184, 32736,
+
401 8200, 16400, 8216, 24592, 8232, 20496, 8240, 12304, 8248, 28688, 8264, 18448, 8272, 10256, 8280, 26640,
+
402 8296, 22544, 8304, 14352, 8312, 30736, 8328, 17424, 8336, 9232, 8344, 25616, 8360, 21520, 8368, 13328,
+
403 8376, 29712, 8392, 19472, 8400, 11280, 8408, 27664, 8424, 23568, 8432, 15376, 8440, 31760, 8456, 16912,
+
404 8464, 8720, 8472, 25104, 8488, 21008, 8496, 12816, 8504, 29200, 8520, 18960, 8528, 10768, 8536, 27152,
+
405 8552, 23056, 8560, 14864, 8568, 31248, 8584, 17936, 8592, 9744, 8600, 26128, 8616, 22032, 8624, 13840,
+
406 8632, 30224, 8648, 19984, 8656, 11792, 8664, 28176, 8680, 24080, 8688, 15888, 8696, 32272, 8712, 16656,
+
407 8728, 24848, 8744, 20752, 8752, 12560, 8760, 28944, 8776, 18704, 8784, 10512, 8792, 26896, 8808, 22800,
+
408 8816, 14608, 8824, 30992, 8840, 17680, 8848, 9488, 8856, 25872, 8872, 21776, 8880, 13584, 8888, 29968,
+
409 8904, 19728, 8912, 11536, 8920, 27920, 8936, 23824, 8944, 15632, 8952, 32016, 8968, 17168, 8984, 25360,
+
410 9000, 21264, 9008, 13072, 9016, 29456, 9032, 19216, 9040, 11024, 9048, 27408, 9064, 23312, 9072, 15120,
+
411 9080, 31504, 9096, 18192, 9104, 10000, 9112, 26384, 9128, 22288, 9136, 14096, 9144, 30480, 9160, 20240,
+
412 9168, 12048, 9176, 28432, 9192, 24336, 9200, 16144, 9208, 32528, 9224, 16528, 9240, 24720, 9256, 20624,
+
413 9264, 12432, 9272, 28816, 9288, 18576, 9296, 10384, 9304, 26768, 9320, 22672, 9328, 14480, 9336, 30864,
+
414 9352, 17552, 9368, 25744, 9384, 21648, 9392, 13456, 9400, 29840, 9416, 19600, 9424, 11408, 9432, 27792,
+
415 9448, 23696, 9456, 15504, 9464, 31888, 9480, 17040, 9496, 25232, 9512, 21136, 9520, 12944, 9528, 29328,
+
416 9544, 19088, 9552, 10896, 9560, 27280, 9576, 23184, 9584, 14992, 9592, 31376, 9608, 18064, 9616, 9872,
+
417 9624, 26256, 9640, 22160, 9648, 13968, 9656, 30352, 9672, 20112, 9680, 11920, 9688, 28304, 9704, 24208,
+
418 9712, 16016, 9720, 32400, 9736, 16784, 9752, 24976, 9768, 20880, 9776, 12688, 9784, 29072, 9800, 18832,
+
419 9808, 10640, 9816, 27024, 9832, 22928, 9840, 14736, 9848, 31120, 9864, 17808, 9880, 26000, 9896, 21904,
+
420 9904, 13712, 9912, 30096, 9928, 19856, 9936, 11664, 9944, 28048, 9960, 23952, 9968, 15760, 9976, 32144,
+
421 9992, 17296, 10008, 25488, 10024, 21392, 10032, 13200, 10040, 29584, 10056, 19344, 10064, 11152, 10072, 27536,
+
422 10088, 23440, 10096, 15248, 10104, 31632, 10120, 18320, 10136, 26512, 10152, 22416, 10160, 14224, 10168, 30608,
+
423 10184, 20368, 10192, 12176, 10200, 28560, 10216, 24464, 10224, 16272, 10232, 32656, 10248, 16464, 10264, 24656,
+
424 10280, 20560, 10288, 12368, 10296, 28752, 10312, 18512, 10328, 26704, 10344, 22608, 10352, 14416, 10360, 30800,
+
425 10376, 17488, 10392, 25680, 10408, 21584, 10416, 13392, 10424, 29776, 10440, 19536, 10448, 11344, 10456, 27728,
+
426 10472, 23632, 10480, 15440, 10488, 31824, 10504, 16976, 10520, 25168, 10536, 21072, 10544, 12880, 10552, 29264,
+
427 10568, 19024, 10576, 10832, 10584, 27216, 10600, 23120, 10608, 14928, 10616, 31312, 10632, 18000, 10648, 26192,
+
428 10664, 22096, 10672, 13904, 10680, 30288, 10696, 20048, 10704, 11856, 10712, 28240, 10728, 24144, 10736, 15952,
+
429 10744, 32336, 10760, 16720, 10776, 24912, 10792, 20816, 10800, 12624, 10808, 29008, 10824, 18768, 10840, 26960,
+
430 10856, 22864, 10864, 14672, 10872, 31056, 10888, 17744, 10904, 25936, 10920, 21840, 10928, 13648, 10936, 30032,
+
431 10952, 19792, 10960, 11600, 10968, 27984, 10984, 23888, 10992, 15696, 11000, 32080, 11016, 17232, 11032, 25424,
+
432 11048, 21328, 11056, 13136, 11064, 29520, 11080, 19280, 11096, 27472, 11112, 23376, 11120, 15184, 11128, 31568,
+
433 11144, 18256, 11160, 26448, 11176, 22352, 11184, 14160, 11192, 30544, 11208, 20304, 11216, 12112, 11224, 28496,
+
434 11240, 24400, 11248, 16208, 11256, 32592, 11272, 16592, 11288, 24784, 11304, 20688, 11312, 12496, 11320, 28880,
+
435 11336, 18640, 11352, 26832, 11368, 22736, 11376, 14544, 11384, 30928, 11400, 17616, 11416, 25808, 11432, 21712,
+
436 11440, 13520, 11448, 29904, 11464, 19664, 11480, 27856, 11496, 23760, 11504, 15568, 11512, 31952, 11528, 17104,
+
437 11544, 25296, 11560, 21200, 11568, 13008, 11576, 29392, 11592, 19152, 11608, 27344, 11624, 23248, 11632, 15056,
+
438 11640, 31440, 11656, 18128, 11672, 26320, 11688, 22224, 11696, 14032, 11704, 30416, 11720, 20176, 11728, 11984,
+
439 11736, 28368, 11752, 24272, 11760, 16080, 11768, 32464, 11784, 16848, 11800, 25040, 11816, 20944, 11824, 12752,
+
440 11832, 29136, 11848, 18896, 11864, 27088, 11880, 22992, 11888, 14800, 11896, 31184, 11912, 17872, 11928, 26064,
+
441 11944, 21968, 11952, 13776, 11960, 30160, 11976, 19920, 11992, 28112, 12008, 24016, 12016, 15824, 12024, 32208,
+
442 12040, 17360, 12056, 25552, 12072, 21456, 12080, 13264, 12088, 29648, 12104, 19408, 12120, 27600, 12136, 23504,
+
443 12144, 15312, 12152, 31696, 12168, 18384, 12184, 26576, 12200, 22480, 12208, 14288, 12216, 30672, 12232, 20432,
+
444 12248, 28624, 12264, 24528, 12272, 16336, 12280, 32720, 12296, 16432, 12312, 24624, 12328, 20528, 12344, 28720,
+
445 12360, 18480, 12376, 26672, 12392, 22576, 12400, 14384, 12408, 30768, 12424, 17456, 12440, 25648, 12456, 21552,
+
446 12464, 13360, 12472, 29744, 12488, 19504, 12504, 27696, 12520, 23600, 12528, 15408, 12536, 31792, 12552, 16944,
+
447 12568, 25136, 12584, 21040, 12592, 12848, 12600, 29232, 12616, 18992, 12632, 27184, 12648, 23088, 12656, 14896,
+
448 12664, 31280, 12680, 17968, 12696, 26160, 12712, 22064, 12720, 13872, 12728, 30256, 12744, 20016, 12760, 28208,
+
449 12776, 24112, 12784, 15920, 12792, 32304, 12808, 16688, 12824, 24880, 12840, 20784, 12856, 28976, 12872, 18736,
+
450 12888, 26928, 12904, 22832, 12912, 14640, 12920, 31024, 12936, 17712, 12952, 25904, 12968, 21808, 12976, 13616,
+
451 12984, 30000, 13000, 19760, 13016, 27952, 13032, 23856, 13040, 15664, 13048, 32048, 13064, 17200, 13080, 25392,
+
452 13096, 21296, 13112, 29488, 13128, 19248, 13144, 27440, 13160, 23344, 13168, 15152, 13176, 31536, 13192, 18224,
+
453 13208, 26416, 13224, 22320, 13232, 14128, 13240, 30512, 13256, 20272, 13272, 28464, 13288, 24368, 13296, 16176,
+
454 13304, 32560, 13320, 16560, 13336, 24752, 13352, 20656, 13368, 28848, 13384, 18608, 13400, 26800, 13416, 22704,
+
455 13424, 14512, 13432, 30896, 13448, 17584, 13464, 25776, 13480, 21680, 13496, 29872, 13512, 19632, 13528, 27824,
+
456 13544, 23728, 13552, 15536, 13560, 31920, 13576, 17072, 13592, 25264, 13608, 21168, 13624, 29360, 13640, 19120,
+
457 13656, 27312, 13672, 23216, 13680, 15024, 13688, 31408, 13704, 18096, 13720, 26288, 13736, 22192, 13744, 14000,
+
458 13752, 30384, 13768, 20144, 13784, 28336, 13800, 24240, 13808, 16048, 13816, 32432, 13832, 16816, 13848, 25008,
+
459 13864, 20912, 13880, 29104, 13896, 18864, 13912, 27056, 13928, 22960, 13936, 14768, 13944, 31152, 13960, 17840,
+
460 13976, 26032, 13992, 21936, 14008, 30128, 14024, 19888, 14040, 28080, 14056, 23984, 14064, 15792, 14072, 32176,
+
461 14088, 17328, 14104, 25520, 14120, 21424, 14136, 29616, 14152, 19376, 14168, 27568, 14184, 23472, 14192, 15280,
+
462 14200, 31664, 14216, 18352, 14232, 26544, 14248, 22448, 14264, 30640, 14280, 20400, 14296, 28592, 14312, 24496,
+
463 14320, 16304, 14328, 32688, 14344, 16496, 14360, 24688, 14376, 20592, 14392, 28784, 14408, 18544, 14424, 26736,
+
464 14440, 22640, 14456, 30832, 14472, 17520, 14488, 25712, 14504, 21616, 14520, 29808, 14536, 19568, 14552, 27760,
+
465 14568, 23664, 14576, 15472, 14584, 31856, 14600, 17008, 14616, 25200, 14632, 21104, 14648, 29296, 14664, 19056,
+
466 14680, 27248, 14696, 23152, 14704, 14960, 14712, 31344, 14728, 18032, 14744, 26224, 14760, 22128, 14776, 30320,
+
467 14792, 20080, 14808, 28272, 14824, 24176, 14832, 15984, 14840, 32368, 14856, 16752, 14872, 24944, 14888, 20848,
+
468 14904, 29040, 14920, 18800, 14936, 26992, 14952, 22896, 14968, 31088, 14984, 17776, 15000, 25968, 15016, 21872,
+
469 15032, 30064, 15048, 19824, 15064, 28016, 15080, 23920, 15088, 15728, 15096, 32112, 15112, 17264, 15128, 25456,
+
470 15144, 21360, 15160, 29552, 15176, 19312, 15192, 27504, 15208, 23408, 15224, 31600, 15240, 18288, 15256, 26480,
+
471 15272, 22384, 15288, 30576, 15304, 20336, 15320, 28528, 15336, 24432, 15344, 16240, 15352, 32624, 15368, 16624,
+
472 15384, 24816, 15400, 20720, 15416, 28912, 15432, 18672, 15448, 26864, 15464, 22768, 15480, 30960, 15496, 17648,
+
473 15512, 25840, 15528, 21744, 15544, 29936, 15560, 19696, 15576, 27888, 15592, 23792, 15608, 31984, 15624, 17136,
+
474 15640, 25328, 15656, 21232, 15672, 29424, 15688, 19184, 15704, 27376, 15720, 23280, 15736, 31472, 15752, 18160,
+
475 15768, 26352, 15784, 22256, 15800, 30448, 15816, 20208, 15832, 28400, 15848, 24304, 15856, 16112, 15864, 32496,
+
476 15880, 16880, 15896, 25072, 15912, 20976, 15928, 29168, 15944, 18928, 15960, 27120, 15976, 23024, 15992, 31216,
+
477 16008, 17904, 16024, 26096, 16040, 22000, 16056, 30192, 16072, 19952, 16088, 28144, 16104, 24048, 16120, 32240,
+
478 16136, 17392, 16152, 25584, 16168, 21488, 16184, 29680, 16200, 19440, 16216, 27632, 16232, 23536, 16248, 31728,
+
479 16264, 18416, 16280, 26608, 16296, 22512, 16312, 30704, 16328, 20464, 16344, 28656, 16360, 24560, 16376, 32752,
+
480 16408, 24584, 16424, 20488, 16440, 28680, 16456, 18440, 16472, 26632, 16488, 22536, 16504, 30728, 16520, 17416,
+
481 16536, 25608, 16552, 21512, 16568, 29704, 16584, 19464, 16600, 27656, 16616, 23560, 16632, 31752, 16648, 16904,
+
482 16664, 25096, 16680, 21000, 16696, 29192, 16712, 18952, 16728, 27144, 16744, 23048, 16760, 31240, 16776, 17928,
+
483 16792, 26120, 16808, 22024, 16824, 30216, 16840, 19976, 16856, 28168, 16872, 24072, 16888, 32264, 16920, 24840,
+
484 16936, 20744, 16952, 28936, 16968, 18696, 16984, 26888, 17000, 22792, 17016, 30984, 17032, 17672, 17048, 25864,
+
485 17064, 21768, 17080, 29960, 17096, 19720, 17112, 27912, 17128, 23816, 17144, 32008, 17176, 25352, 17192, 21256,
+
486 17208, 29448, 17224, 19208, 17240, 27400, 17256, 23304, 17272, 31496, 17288, 18184, 17304, 26376, 17320, 22280,
+
487 17336, 30472, 17352, 20232, 17368, 28424, 17384, 24328, 17400, 32520, 17432, 24712, 17448, 20616, 17464, 28808,
+
488 17480, 18568, 17496, 26760, 17512, 22664, 17528, 30856, 17560, 25736, 17576, 21640, 17592, 29832, 17608, 19592,
+
489 17624, 27784, 17640, 23688, 17656, 31880, 17688, 25224, 17704, 21128, 17720, 29320, 17736, 19080, 17752, 27272,
+
490 17768, 23176, 17784, 31368, 17800, 18056, 17816, 26248, 17832, 22152, 17848, 30344, 17864, 20104, 17880, 28296,
+
491 17896, 24200, 17912, 32392, 17944, 24968, 17960, 20872, 17976, 29064, 17992, 18824, 18008, 27016, 18024, 22920,
+
492 18040, 31112, 18072, 25992, 18088, 21896, 18104, 30088, 18120, 19848, 18136, 28040, 18152, 23944, 18168, 32136,
+
493 18200, 25480, 18216, 21384, 18232, 29576, 18248, 19336, 18264, 27528, 18280, 23432, 18296, 31624, 18328, 26504,
+
494 18344, 22408, 18360, 30600, 18376, 20360, 18392, 28552, 18408, 24456, 18424, 32648, 18456, 24648, 18472, 20552,
+
495 18488, 28744, 18520, 26696, 18536, 22600, 18552, 30792, 18584, 25672, 18600, 21576, 18616, 29768, 18632, 19528,
+
496 18648, 27720, 18664, 23624, 18680, 31816, 18712, 25160, 18728, 21064, 18744, 29256, 18760, 19016, 18776, 27208,
+
497 18792, 23112, 18808, 31304, 18840, 26184, 18856, 22088, 18872, 30280, 18888, 20040, 18904, 28232, 18920, 24136,
+
498 18936, 32328, 18968, 24904, 18984, 20808, 19000, 29000, 19032, 26952, 19048, 22856, 19064, 31048, 19096, 25928,
+
499 19112, 21832, 19128, 30024, 19144, 19784, 19160, 27976, 19176, 23880, 19192, 32072, 19224, 25416, 19240, 21320,
+
500 19256, 29512, 19288, 27464, 19304, 23368, 19320, 31560, 19352, 26440, 19368, 22344, 19384, 30536, 19400, 20296,
+
501 19416, 28488, 19432, 24392, 19448, 32584, 19480, 24776, 19496, 20680, 19512, 28872, 19544, 26824, 19560, 22728,
+
502 19576, 30920, 19608, 25800, 19624, 21704, 19640, 29896, 19672, 27848, 19688, 23752, 19704, 31944, 19736, 25288,
+
503 19752, 21192, 19768, 29384, 19800, 27336, 19816, 23240, 19832, 31432, 19864, 26312, 19880, 22216, 19896, 30408,
+
504 19912, 20168, 19928, 28360, 19944, 24264, 19960, 32456, 19992, 25032, 20008, 20936, 20024, 29128, 20056, 27080,
+
505 20072, 22984, 20088, 31176, 20120, 26056, 20136, 21960, 20152, 30152, 20184, 28104, 20200, 24008, 20216, 32200,
+
506 20248, 25544, 20264, 21448, 20280, 29640, 20312, 27592, 20328, 23496, 20344, 31688, 20376, 26568, 20392, 22472,
+
507 20408, 30664, 20440, 28616, 20456, 24520, 20472, 32712, 20504, 24616, 20536, 28712, 20568, 26664, 20584, 22568,
+
508 20600, 30760, 20632, 25640, 20648, 21544, 20664, 29736, 20696, 27688, 20712, 23592, 20728, 31784, 20760, 25128,
+
509 20776, 21032, 20792, 29224, 20824, 27176, 20840, 23080, 20856, 31272, 20888, 26152, 20904, 22056, 20920, 30248,
+
510 20952, 28200, 20968, 24104, 20984, 32296, 21016, 24872, 21048, 28968, 21080, 26920, 21096, 22824, 21112, 31016,
+
511 21144, 25896, 21160, 21800, 21176, 29992, 21208, 27944, 21224, 23848, 21240, 32040, 21272, 25384, 21304, 29480,
+
512 21336, 27432, 21352, 23336, 21368, 31528, 21400, 26408, 21416, 22312, 21432, 30504, 21464, 28456, 21480, 24360,
+
513 21496, 32552, 21528, 24744, 21560, 28840, 21592, 26792, 21608, 22696, 21624, 30888, 21656, 25768, 21688, 29864,
+
514 21720, 27816, 21736, 23720, 21752, 31912, 21784, 25256, 21816, 29352, 21848, 27304, 21864, 23208, 21880, 31400,
+
515 21912, 26280, 21928, 22184, 21944, 30376, 21976, 28328, 21992, 24232, 22008, 32424, 22040, 25000, 22072, 29096,
+
516 22104, 27048, 22120, 22952, 22136, 31144, 22168, 26024, 22200, 30120, 22232, 28072, 22248, 23976, 22264, 32168,
+
517 22296, 25512, 22328, 29608, 22360, 27560, 22376, 23464, 22392, 31656, 22424, 26536, 22456, 30632, 22488, 28584,
+
518 22504, 24488, 22520, 32680, 22552, 24680, 22584, 28776, 22616, 26728, 22648, 30824, 22680, 25704, 22712, 29800,
+
519 22744, 27752, 22760, 23656, 22776, 31848, 22808, 25192, 22840, 29288, 22872, 27240, 22888, 23144, 22904, 31336,
+
520 22936, 26216, 22968, 30312, 23000, 28264, 23016, 24168, 23032, 32360, 23064, 24936, 23096, 29032, 23128, 26984,
+
521 23160, 31080, 23192, 25960, 23224, 30056, 23256, 28008, 23272, 23912, 23288, 32104, 23320, 25448, 23352, 29544,
+
522 23384, 27496, 23416, 31592, 23448, 26472, 23480, 30568, 23512, 28520, 23528, 24424, 23544, 32616, 23576, 24808,
+
523 23608, 28904, 23640, 26856, 23672, 30952, 23704, 25832, 23736, 29928, 23768, 27880, 23800, 31976, 23832, 25320,
+
524 23864, 29416, 23896, 27368, 23928, 31464, 23960, 26344, 23992, 30440, 24024, 28392, 24040, 24296, 24056, 32488,
+
525 24088, 25064, 24120, 29160, 24152, 27112, 24184, 31208, 24216, 26088, 24248, 30184, 24280, 28136, 24312, 32232,
+
526 24344, 25576, 24376, 29672, 24408, 27624, 24440, 31720, 24472, 26600, 24504, 30696, 24536, 28648, 24568, 32744,
+
527 24632, 28696, 24664, 26648, 24696, 30744, 24728, 25624, 24760, 29720, 24792, 27672, 24824, 31768, 24856, 25112,
+
528 24888, 29208, 24920, 27160, 24952, 31256, 24984, 26136, 25016, 30232, 25048, 28184, 25080, 32280, 25144, 28952,
+
529 25176, 26904, 25208, 31000, 25240, 25880, 25272, 29976, 25304, 27928, 25336, 32024, 25400, 29464, 25432, 27416,
+
530 25464, 31512, 25496, 26392, 25528, 30488, 25560, 28440, 25592, 32536, 25656, 28824, 25688, 26776, 25720, 30872,
+
531 25784, 29848, 25816, 27800, 25848, 31896, 25912, 29336, 25944, 27288, 25976, 31384, 26008, 26264, 26040, 30360,
+
532 26072, 28312, 26104, 32408, 26168, 29080, 26200, 27032, 26232, 31128, 26296, 30104, 26328, 28056, 26360, 32152,
+
533 26424, 29592, 26456, 27544, 26488, 31640, 26552, 30616, 26584, 28568, 26616, 32664, 26680, 28760, 26744, 30808,
+
534 26808, 29784, 26840, 27736, 26872, 31832, 26936, 29272, 26968, 27224, 27000, 31320, 27064, 30296, 27096, 28248,
+
535 27128, 32344, 27192, 29016, 27256, 31064, 27320, 30040, 27352, 27992, 27384, 32088, 27448, 29528, 27512, 31576,
+
536 27576, 30552, 27608, 28504, 27640, 32600, 27704, 28888, 27768, 30936, 27832, 29912, 27896, 31960, 27960, 29400,
+
537 28024, 31448, 28088, 30424, 28120, 28376, 28152, 32472, 28216, 29144, 28280, 31192, 28344, 30168, 28408, 32216,
+
538 28472, 29656, 28536, 31704, 28600, 30680, 28664, 32728, 28792, 30776, 28856, 29752, 28920, 31800, 28984, 29240,
+
539 29048, 31288, 29112, 30264, 29176, 32312, 29304, 31032, 29368, 30008, 29432, 32056, 29560, 31544, 29624, 30520,
+
540 29688, 32568, 29816, 30904, 29944, 31928, 30072, 31416, 30136, 30392, 30200, 32440, 30328, 31160, 30456, 32184,
+
541 30584, 31672, 30712, 32696, 30968, 31864, 31096, 31352, 31224, 32376, 31480, 32120, 31736, 32632, 32248, 32504,
+
542};
+
+
543
+ +
557
+
+ +
559 (uint16_t *)bitrev2r_table_16_fc32,
+
560 (uint16_t *)bitrev2r_table_32_fc32,
+
561 (uint16_t *)bitrev2r_table_64_fc32,
+
562 (uint16_t *)bitrev2r_table_128_fc32,
+
563 (uint16_t *)bitrev2r_table_256_fc32,
+
564 (uint16_t *)bitrev2r_table_512_fc32,
+
565 (uint16_t *)bitrev2r_table_1024_fc32,
+
566 (uint16_t *)bitrev2r_table_2048_fc32,
+
567 (uint16_t *)bitrev2r_table_4096_fc32,
+
568};
+
+
569
+ +
571const uint16_t bitrev2r_table_32_fc32_size = 12;
+
572const uint16_t bitrev2r_table_64_fc32_size = 28;
+ +
574const uint16_t bitrev2r_table_256_fc32_size = 120;
+
575const uint16_t bitrev2r_table_512_fc32_size = 240;
+
576const uint16_t bitrev2r_table_1024_fc32_size = 496;
+
577const uint16_t bitrev2r_table_2048_fc32_size = 992;
+
578const uint16_t bitrev2r_table_4096_fc32_size = 2016;
+
579
+
+ +
581 (const uint16_t)6, // bitrev2r_table_16_fc32_size,
+
582 (const uint16_t)12, // bitrev2r_table_32_fc32_size,
+
583 (const uint16_t)28, // bitrev2r_table_64_fc32_size,
+
584 (const uint16_t)56, // bitrev2r_table_128_fc32_size,
+
585 (const uint16_t)120, // bitrev2r_table_256_fc32_size,
+
586 (const uint16_t)240, // bitrev2r_table_512_fc32_size,
+
587 (const uint16_t)496, // bitrev2r_table_1024_fc32_size,
+
588 (const uint16_t)992, // bitrev2r_table_2048_fc32_size,
+
589 (const uint16_t)2016,// bitrev2r_table_4096_fc32_size,
+
590};
+
+
const uint16_t bitrev2r_table_16_fc32[]
+
const uint16_t bitrev2r_table_512_fc32_size
+
const uint16_t bitrev2r_table_128_fc32[]
+
const uint16_t bitrev2r_table_1024_fc32[]
+
const uint16_t bitrev2r_table_4096_fc32_size
+
const uint16_t dsps_fft2r_rev_tables_fc32_size[]
+
const uint16_t bitrev2r_table_512_fc32[]
+
const uint16_t bitrev2r_table_32_fc32[]
+
const uint16_t bitrev2r_table_64_fc32_size
+
const uint16_t bitrev2r_table_4096_fc32[]
+
const uint16_t bitrev2r_table_64_fc32[]
+
const uint16_t bitrev2r_table_256_fc32_size
+
uint16_t * dsps_fft2r_rev_tables_fc32[]
+
const uint16_t bitrev2r_table_256_fc32[]
+
const uint16_t bitrev2r_table_1024_fc32_size
+
const uint16_t bitrev2r_table_128_fc32_size
+
const uint16_t bitrev2r_table_16_fc32_size
+
const uint16_t bitrev2r_table_2048_fc32_size
+
void dsps_fft2r_rev_tables_init_fc32(void)
+
const uint16_t bitrev2r_table_2048_fc32[]
+
const uint16_t bitrev2r_table_32_fc32_size
+ +
+
+
+ + + + diff --git a/docs/html/dsps__fft2r__fc32__ae32_8c.html b/docs/html/dsps__fft2r__fc32__ae32_8c.html new file mode 100644 index 0000000..9068793 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ae32_8c.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_fc32_ae32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_fc32_ae32.c File Reference
+
+
+
#include "dsps_fft2r.h"
+#include "dsp_common.h"
+#include "dsp_types.h"
+#include <math.h>
+#include "esp_attr.h"
+#include "dsps_fft2r_platform.h"
+
+Include dependency graph for dsps_fft2r_fc32_ae32.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft2r__fc32__ae32_8c__incl.md5 b/docs/html/dsps__fft2r__fc32__ae32_8c__incl.md5 new file mode 100644 index 0000000..7ab8023 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ae32_8c__incl.md5 @@ -0,0 +1 @@ +c09260ad89a79e7066eda75db2d1afea \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ae32_8c__incl.svg b/docs/html/dsps__fft2r__fc32__ae32_8c__incl.svg new file mode 100644 index 0000000..cd53ec7 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ae32_8c__incl.svg @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft2r_fc32_ae32.c + + +Node1 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node1->Node11 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node1->Node15 + + + + + + + + +Node17 + + +math.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_attr.h + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +stdbool.h + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node11->Node14 + + + + + + + + +Node15->Node4 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ae32_8c__incl_org.svg b/docs/html/dsps__fft2r__fc32__ae32_8c__incl_org.svg new file mode 100644 index 0000000..3170bc6 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ae32_8c__incl_org.svg @@ -0,0 +1,363 @@ + + + + + + +dsps_fft2r_fc32_ae32.c + + +Node1 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node1->Node11 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node1->Node15 + + + + + + + + +Node17 + + +math.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_attr.h + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +stdbool.h + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node11->Node14 + + + + + + + + +Node15->Node4 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ae32_8c_source.html b/docs/html/dsps__fft2r__fc32__ae32_8c_source.html new file mode 100644 index 0000000..23fdbee --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ae32_8c_source.html @@ -0,0 +1,178 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_fc32_ae32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_fc32_ae32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_fft2r.h"
+
16#include "dsp_common.h"
+
17#include "dsp_types.h"
+
18#include <math.h>
+
19#include "esp_attr.h"
+
20#include "dsps_fft2r_platform.h"
+
21
+
22#if (dsps_bit_rev_lookup_fc32_ae32_enabled == 1)
+
23
+
24esp_err_t dsps_bit_rev_lookup_fc32_ae32(float *data, int reverse_size, uint16_t *reverse_tab)
+
25{
+
26 int idx_0, idx_1;
+
27 int idx_2, idx_3;
+
28
+
29 float *data_i;
+
30
+
31 asm volatile ("addi %0, %1, 4" : "=a" (data_i) : "a" (data));
+
32 asm volatile ("srli %0, %0, 1" : "+a" (reverse_size));
+
33 asm volatile ("loopnez %0, __loop_end_radix2_reorder_lookup_table" :: "a" (reverse_size));
+
34 asm volatile ("l16ui %0, %1, 0" : "=a" (idx_0) : "a" (reverse_tab)); //idx_0 = *(reverse_tab + 0); ///idx_0 = reverse_tab[i * 2 + 0];
+
35 asm volatile ("l16ui %0, %1, 2" : "=a" (idx_1) : "a" (reverse_tab)); //idx_1 = *(reverse_tab + 1); ///idx_1 = reverse_tab[i * 2 + 1];
+
36 asm volatile ("l16ui %0, %1, 4" : "=a" (idx_2) : "a" (reverse_tab)); //idx_2 = *(reverse_tab + 2); ///idx_2 = reverse_tab[i * 2 + 2];
+
37 asm volatile ("l16ui %0, %1, 6" : "=a" (idx_3) : "a" (reverse_tab)); //idx_3 = *(reverse_tab + 3); ///idx_3 = reverse_tab[i * 2 + 3];
+
38 asm volatile ("addi %0, %0, 8" : "+a" (reverse_tab)); // reverse_tab += 4;
+
39
+
40 asm volatile ("lsx f0, %0, %1" :: "a" (data), "a" (idx_0)); // f0 = *(data + idx_0); //f0 = data[idx_0 + 0];
+
41 asm volatile ("lsx f2, %0, %1" :: "a" (data_i), "a" (idx_0)); // f2 = *(data_i + idx_0); //f2 = data[idx_0 + 1];
+
42 asm volatile ("lsx f1, %0, %1" :: "a" (data), "a" (idx_1)); //f1 = *(data + idx_1); //f1 = data[idx_1 + 0];
+
43 asm volatile ("lsx f3, %0, %1" :: "a" (data_i), "a" (idx_1)); //f3 = *(data_i + idx_1); //f3 = data[idx_1 + 1];
+
44
+
45 asm volatile ("ssx f0, %0, %1" :: "a" (data), "a" (idx_1)); //*(data + idx_1) = f0; //data[idx_1 + 0] = f0;
+
46 asm volatile ("ssx f2, %0, %1" :: "a" (data_i), "a" (idx_1)); //*(data_i + idx_1) = f2; //data[idx_1 + 1] = f2;
+
47 asm volatile ("ssx f1, %0, %1" :: "a" (data), "a" (idx_0)); //*(data + idx_0) = f1; //data[idx_0 + 0] = f1;
+
48 asm volatile ("ssx f3, %0, %1" :: "a" (data_i), "a" (idx_0)); //*(data_i + idx_0) = f3;//data[idx_0 + 1] = f3;
+
49
+
50 asm volatile ("lsx f0, %0, %1" :: "a" (data), "a" (idx_2)); // f0 = *(data + idx_2); //f0 = data[idx_2 + 0];
+
51 asm volatile ("lsx f2, %0, %1" :: "a" (data_i), "a" (idx_2)); // f2 = *(data_i + idx_2); //f2 = data[idx_2 + 1];
+
52 asm volatile ("lsx f1, %0, %1" :: "a" (data), "a" (idx_3)); //f1 = *(data + idx_3); //f1 = data[idx_3 + 0];
+
53 asm volatile ("lsx f3, %0, %1" :: "a" (data_i), "a" (idx_3)); //f3 = *(data_i + idx_3); //f3 = data[idx_3 + 1];
+
54
+
55 asm volatile ("ssx f0, %0, %1" :: "a" (data), "a" (idx_3)); //*(data + idx_3) = f0; //data[idx_3 + 0] = f0;
+
56 asm volatile ("ssx f2, %0, %1" :: "a" (data_i), "a" (idx_3)); //*(data_i + idx_3) = f2; //data[idx_3 + 1] = f2;
+
57 asm volatile ("ssx f1, %0, %1" :: "a" (data), "a" (idx_2)); //*(data + idx_2) = f1; //data[idx_2 + 0] = f1;
+
58 asm volatile ("ssx f3, %0, %1" :: "a" (data_i), "a" (idx_2)); //*(data_i + idx_2) = f3; //data[idx_2 + 1] = f3;
+
59 //}
+
60 asm volatile("__loop_end_radix2_reorder_lookup_table: nop");
+
61 return ESP_OK;
+
62}
+
63#endif // dsps_bit_rev_lookup_fc32_ae32_enabled
+ + + +
esp_err_t dsps_bit_rev_lookup_fc32_ae32(float *data, int reverse_size, uint16_t *reverse_tab)
+ + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c.html b/docs/html/dsps__fft2r__fc32__ansi_8c.html new file mode 100644 index 0000000..bcffe0c --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c.html @@ -0,0 +1,1021 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_fc32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_fc32_ansi.c File Reference
+
+
+
#include "dsps_fft2r.h"
+#include "dsp_common.h"
+#include "dsp_types.h"
+#include <math.h>
+#include "esp_attr.h"
+#include "esp_log.h"
+#include <string.h>
+#include <malloc.h>
+
+Include dependency graph for dsps_fft2r_fc32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

unsigned short reverse (unsigned short x, unsigned short N, int order)
esp_err_t dsps_fft2r_init_fc32 (float *fft_table_buff, int table_size)
 init fft tables
void dsps_fft2r_deinit_fc32 ()
 deinit fft tables
esp_err_t dsps_fft2r_fc32_ansi_ (float *data, int N, float *w)
 complex FFT of radix 2
esp_err_t dsps_bit_rev_fc32_ansi (float *data, int N)
 bit reverse operation for the complex input array
esp_err_t dsps_gen_w_r2_fc32 (float *w, int N)
 Generate coefficients table for the FFT radix 2.
esp_err_t dsps_cplx2reC_fc32_ansi (float *data, int N)
 Convert complex array to two real arrays.
esp_err_t dsps_gen_bitrev2r_table (int N, int step, char *name_ext)
esp_err_t dsps_bit_rev2r_fc32 (float *data, int N)
esp_err_t dsps_bit_rev_lookup_fc32_ansi (float *data, int reverse_size, uint16_t *reverse_tab)
+ + + + + + + +

+Variables

static const char * TAG = "fftr2_ansi"
float * dsps_fft_w_table_fc32
int dsps_fft_w_table_size
uint8_t dsps_fft2r_initialized = 0
uint8_t dsps_fft2r_mem_allocated = 0
uint16_t * dsps_fft2r_ram_rev_table = NULL
+

Function Documentation

+ +

◆ dsps_bit_rev2r_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev2r_fc32 (float * data,
int N )
+
+ +

Definition at line 303 of file dsps_fft2r_fc32_ansi.c.

+
304{
+
305 uint16_t *table;
+
306 uint16_t table_size;
+
307 switch (N) {
+
308 case 16:
+
309 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[0];
+
310 table_size = dsps_fft2r_rev_tables_fc32_size[0];
+
311 break;
+
312 case 32:
+
313 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[1];
+
314 table_size = dsps_fft2r_rev_tables_fc32_size[1];
+
315 break;
+
316 case 64:
+
317 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[2];
+
318 table_size = dsps_fft2r_rev_tables_fc32_size[2];
+
319 break;
+
320 case 128:
+
321 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[3];
+
322 table_size = dsps_fft2r_rev_tables_fc32_size[3];
+
323 break;
+
324 case 256:
+
325 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[4];
+
326 table_size = dsps_fft2r_rev_tables_fc32_size[4];
+
327 break;
+
328 case 512:
+
329 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[5];
+
330 table_size = dsps_fft2r_rev_tables_fc32_size[5];
+
331 break;
+
332 case 1024:
+
333 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[6];
+
334 table_size = dsps_fft2r_rev_tables_fc32_size[6];
+
335 break;
+
336 case 2048:
+
337 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[7];
+
338 table_size = dsps_fft2r_rev_tables_fc32_size[7];
+
339 break;
+
340 case 4096:
+
341 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[8];
+
342 table_size = dsps_fft2r_rev_tables_fc32_size[8];
+
343 break;
+
344
+
345 default:
+
346 return dsps_bit_rev_fc32(data, N);
+
347 break;
+
348 }
+
349 return dsps_bit_rev_lookup_fc32(data, table_size, table);
+
350}
+
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_bit_rev_lookup_fc32
Definition dsps_fft2r.h:252
+
const uint16_t dsps_fft2r_rev_tables_fc32_size[]
+
uint16_t * dsps_fft2r_rev_tables_fc32[]
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+

References data, dsps_bit_rev_fc32, dsps_bit_rev_lookup_fc32, dsps_fft2r_rev_tables_fc32, dsps_fft2r_rev_tables_fc32_size, and N.

+ +
+
+ +

◆ dsps_bit_rev_fc32_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev_fc32_ansi (float * data,
int N )
+
+ +

bit reverse operation for the complex input array

+

Bit reverse operation for the complex input array The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]datainput/ complex array. An elements located: Re[0], Im[0], ... Re[N-1], Im[N-1] result of FFT will be stored to this array.
[in]NNumber of complex elements in input array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 172 of file dsps_fft2r_fc32_ansi.c.

+
173{
+
174 if (!dsp_is_power_of_two(N)) {
+ +
176 }
+
177
+
178 esp_err_t result = ESP_OK;
+
179
+
180 int j, k;
+
181 float r_temp, i_temp;
+
182 j = 0;
+
183 for (int i = 1; i < (N - 1); i++) {
+
184 k = N >> 1;
+
185 while (k <= j) {
+
186 j -= k;
+
187 k >>= 1;
+
188 }
+
189 j += k;
+
190 if (i < j) {
+
191 r_temp = data[j * 2];
+
192 data[j * 2] = data[i * 2];
+
193 data[i * 2] = r_temp;
+
194 i_temp = data[j * 2 + 1];
+
195 data[j * 2 + 1] = data[i * 2 + 1];
+
196 data[i * 2 + 1] = i_temp;
+
197 }
+
198 }
+
199 return result;
+
200}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
const int k
Definition test_mmult.c:18
+
+

References data, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, k, and N.

+ +

Referenced by dsps_fft2r_init_fc32(), dsps_sfdr_f32(), and dsps_snr_f32().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_bit_rev_lookup_fc32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_bit_rev_lookup_fc32_ansi (float * data,
int reverse_size,
uint16_t * reverse_tab )
+
+ +

Definition at line 352 of file dsps_fft2r_fc32_ansi.c.

+
353{
+
354 float r_temp, i_temp;
+
355 for (int n = 0 ; n < reverse_size ; n++) {
+
356 uint16_t i = reverse_tab[n * 2 + 0] >> 2;
+
357 uint16_t j = reverse_tab[n * 2 + 1] >> 2;
+
358 r_temp = data[j];
+
359 data[j] = data[i];
+
360 data[i] = r_temp;
+
361 i_temp = data[j + 1];
+
362 data[j + 1] = data[i + 1];
+
363 data[i + 1] = i_temp;
+
364 }
+
365 return ESP_OK;
+
366}
+
const int n
Definition test_mmult.c:17
+
+

References data, ESP_OK, and n.

+ +
+
+ +

◆ dsps_cplx2reC_fc32_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx2reC_fc32_ansi (float * data,
int N )
+
+ +

Convert complex array to two real arrays.

+

Convert complex array to two real arrays in case if input was two real arrays. This function have to be used if FFT used to process real data. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]dataInput complex array and result of FFT2R. input has size of 2*N, because contains real and imaginary part. result will be stored to the same array. Input1: input[0..N-1], Input2: input[N..2*N-1]
[in]NNumber of complex elements in input array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 221 of file dsps_fft2r_fc32_ansi.c.

+
222{
+
223 if (!dsp_is_power_of_two(N)) {
+ +
225 }
+
226 esp_err_t result = ESP_OK;
+
227
+
228 int i;
+
229 int n2 = N << 1;
+
230
+
231 float rkl = 0;
+
232 float rkh = 0;
+
233 float rnl = 0;
+
234 float rnh = 0;
+
235 float ikl = 0;
+
236 float ikh = 0;
+
237 float inl = 0;
+
238 float inh = 0;
+
239
+
240 for (i = 0; i < (N / 4); i++) {
+
241 rkl = data[i * 2 + 0 + 2];
+
242 ikl = data[i * 2 + 1 + 2];
+
243 rnl = data[n2 - i * 2 - 2];
+
244 inl = data[n2 - i * 2 - 1];
+
245
+
246 rkh = data[i * 2 + 0 + 2 + N];
+
247 ikh = data[i * 2 + 1 + 2 + N];
+
248 rnh = data[n2 - i * 2 - 2 - N];
+
249 inh = data[n2 - i * 2 - 1 - N];
+
250
+
251 data[i * 2 + 0 + 2] = rkl + rnl;
+
252 data[i * 2 + 1 + 2] = ikl - inl;
+
253
+
254 data[n2 - i * 2 - 1 - N] = inh - ikh;
+
255 data[n2 - i * 2 - 2 - N] = rkh + rnh;
+
256
+
257 data[i * 2 + 0 + 2 + N] = ikl + inl;
+
258 data[i * 2 + 1 + 2 + N] = rnl - rkl;
+
259
+
260 data[n2 - i * 2 - 1] = rkh - rnh;
+
261 data[n2 - i * 2 - 2] = ikh + inh;
+
262 }
+
263 data[N] = data[1];
+
264 data[1] = 0;
+
265 data[N + 1] = 0;
+
266
+
267 return result;
+
268}
+
+

References data, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, and N.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_deinit_fc32()

+ +
+
+ + + + + + + +
void dsps_fft2r_deinit_fc32 (void )
+
+ +

deinit fft tables

+

Free resources of Complex FFT. This function delete coefficients table if it was allocated by dsps_fft2r_init_fc32. The implementation use ANSI C and could be compiled and run on any platform

+ +

Definition at line 102 of file dsps_fft2r_fc32_ansi.c.

+
103{
+ +
105#if CONFIG_IDF_TARGET_ESP32S3
+
106 if (dsps_fft_w_table_fc32 != dsps_fft2r_w_table_fc32_1024) {
+ +
108 }
+
109#else
+ +
111#endif
+
112 }
+
113 if (dsps_fft2r_ram_rev_table != NULL) {
+ + +
116 }
+
117 // Re init bitrev table for next use
+ + + +
121}
+
void dsps_fft2r_rev_tables_init_fc32(void)
+
float * dsps_fft_w_table_fc32
+
uint8_t dsps_fft2r_mem_allocated
+
uint16_t * dsps_fft2r_ram_rev_table
+
uint8_t dsps_fft2r_initialized
+
+

References dsps_fft2r_initialized, dsps_fft2r_mem_allocated, dsps_fft2r_ram_rev_table, dsps_fft2r_rev_tables_init_fc32(), and dsps_fft_w_table_fc32.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_fc32_ansi_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_fc32_ansi_ (float * data,
int N,
float * w )
+
+ +

complex FFT of radix 2

+

Complex FFT of radix 2 The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + +
[in,out]datainput/output complex array. An elements located: Re[0], Im[0], ... Re[N-1], Im[N-1] result of FFT will be stored to this array.
[in]NNumber of complex elements in input array
[in]wpointer to the sin/cos table
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 123 of file dsps_fft2r_fc32_ansi.c.

+
124{
+
125 if (!dsp_is_power_of_two(N)) {
+ +
127 }
+ + +
130 }
+
131
+
132 esp_err_t result = ESP_OK;
+
133
+
134 int ie, ia, m;
+
135 float re_temp, im_temp;
+
136 float c, s;
+
137 ie = 1;
+
138 for (int N2 = N / 2; N2 > 0; N2 >>= 1) {
+
139 ia = 0;
+
140 for (int j = 0; j < ie; j++) {
+
141 c = w[2 * j];
+
142 s = w[2 * j + 1];
+
143 for (int i = 0; i < N2; i++) {
+
144 m = ia + N2;
+
145 re_temp = c * data[2 * m] + s * data[2 * m + 1];
+
146 im_temp = c * data[2 * m + 1] - s * data[2 * m];
+
147 data[2 * m] = data[2 * ia] - re_temp;
+
148 data[2 * m + 1] = data[2 * ia + 1] - im_temp;
+
149 data[2 * ia] = data[2 * ia] + re_temp;
+
150 data[2 * ia + 1] = data[2 * ia + 1] + im_temp;
+
151 ia++;
+
152 }
+
153 ia += N2;
+
154 }
+
155 ie <<= 1;
+
156 }
+
157 return result;
+
158}
+
#define ESP_ERR_DSP_UNINITIALIZED
+
const int m
Definition test_mmult.c:16
+
+

References data, dsp_is_power_of_two(), dsps_fft2r_initialized, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, m, and N.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_init_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_fft2r_init_fc32 (float * fft_table_buff,
int table_size )
+
+ +

init fft tables

+

Initialization of Complex FFT. This function initialize coefficients table. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]fft_table_buffpointer to floating point buffer where sin/cos table will be stored if this parameter set to NULL, and table_size value is more then 0, then dsps_fft2r_init_fc32 will allocate buffer internally
[in]table_sizesize of the buffer in float words if fft_table_buff is NULL and table_size is not 0, buffer will be allocated internally. If table_size is 0, buffer will not be allocated.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_PARAM_OUTOFRANGE if table_size > CONFIG_DSP_MAX_FFT_SIZE
  • +
  • ESP_ERR_DSP_REINITIALIZED if buffer already allocated internally by other function
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 40 of file dsps_fft2r_fc32_ansi.c.

+
41{
+
42 esp_err_t result = ESP_OK;
+
43 if (dsps_fft2r_initialized != 0) {
+
44 return result;
+
45 }
+
46 if (table_size > CONFIG_DSP_MAX_FFT_SIZE) {
+ +
48 }
+
49 if (table_size == 0) {
+
50 return result;
+
51 }
+
52 if (fft_table_buff != NULL) {
+ + +
55 }
+
56 dsps_fft_w_table_fc32 = fft_table_buff;
+
57 dsps_fft_w_table_size = table_size;
+
58 } else {
+ +
60#if CONFIG_IDF_TARGET_ESP32S3
+
61 if (table_size <= 1024) {
+
62 dsps_fft_w_table_fc32 = dsps_fft2r_w_table_fc32_1024;
+
63 } else {
+
64 dsps_fft_w_table_fc32 = (float *)memalign(16, sizeof(float) * table_size);
+
65 }
+
66#else
+
67 dsps_fft_w_table_fc32 = (float *)malloc(table_size * sizeof(float));
+
68#endif
+
69 if (dsps_fft_w_table_fc32 == NULL) {
+ +
71 }
+
72 }
+
73 dsps_fft_w_table_size = table_size;
+ +
75
+
76 }
+
77
+
78 // FFT ram_rev table allocated
+
79 int pow = dsp_power_of_two(table_size);
+
80 if ((pow > 3) && (pow < 13)) {
+
81 dsps_fft2r_ram_rev_table = (uint16_t *)malloc(2 * dsps_fft2r_rev_tables_fc32_size[pow - 4] * sizeof(uint16_t));
+
82 if (dsps_fft2r_ram_rev_table == NULL) {
+ +
84 }
+
85 memcpy(dsps_fft2r_ram_rev_table, dsps_fft2r_rev_tables_fc32[pow - 4], 2 * dsps_fft2r_rev_tables_fc32_size[pow - 4] * sizeof(uint16_t));
+ +
87 }
+
88
+ +
90 if (result != ESP_OK) {
+
91 return result;
+
92 }
+ +
94 if (result != ESP_OK) {
+
95 return result;
+
96 }
+ +
98
+
99 return ESP_OK;
+
100}
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_gen_w_r2_fc32(float *w, int N)
Generate coefficients table for the FFT radix 2.
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+
int dsps_fft_w_table_size
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsp_power_of_two(), dsps_bit_rev_fc32_ansi(), dsps_fft2r_initialized, dsps_fft2r_mem_allocated, dsps_fft2r_ram_rev_table, dsps_fft2r_rev_tables_fc32, dsps_fft2r_rev_tables_fc32_size, dsps_fft_w_table_fc32, dsps_fft_w_table_size, dsps_gen_w_r2_fc32(), ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and memalign.

+ +

Referenced by dsps_sfdr_f32(), dsps_snr_f32(), and test_fft2r().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_gen_bitrev2r_table()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_gen_bitrev2r_table (int N,
int step,
char * name_ext )
+
+ +

Definition at line 270 of file dsps_fft2r_fc32_ansi.c.

+
271{
+
272 if (!dsp_is_power_of_two(N)) {
+ +
274 }
+
275
+
276 int j, k;
+
277 j = 0;
+
278 int items_count = 0;
+
279 ESP_LOGD(TAG, "const uint16_t bitrev2r_table_%i_%s[] = { ", N, name_ext);
+
280 for (int i = 1; i < (N - 1); i++) {
+
281 k = N >> 1;
+
282 while (k <= j) {
+
283 j -= k;
+
284 k >>= 1;
+
285 }
+
286 j += k;
+
287 if (i < j) {
+
288 ESP_LOGD(TAG, "%i, %i, ", i * step, j * step);
+
289 items_count++;
+
290 if ((items_count % 8) == 0) {
+
291 ESP_LOGD(TAG, " ");
+
292 }
+
293 }
+
294 }
+
295 ESP_LOGD(TAG, "};");
+
296 ESP_LOGD(TAG, "const uint16_t bitrev2r_table_%i_%s_size = %i;\n", N, name_ext, items_count);
+
297
+
298 ESP_LOGD(TAG, "extern const uint16_t bitrev2r_table_%i_%s[];", N, name_ext);
+
299 ESP_LOGD(TAG, "extern const uint16_t bitrev2r_table_%i_%s_size;\n", N, name_ext);
+
300 return ESP_OK;
+
301}
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_LOGD, ESP_OK, k, N, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_gen_w_r2_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_gen_w_r2_fc32 (float * w,
int N )
+
+ +

Generate coefficients table for the FFT radix 2.

+

Generate coefficients table for the FFT radix 2. This function called inside init. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]wmemory location to store coefficients. By default coefficients will be stored to the dsps_fft_w_table_fc32. Maximum size of the FFT must be setup in menuconfig
[in]Nmaximum size of the FFT that will be used
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 202 of file dsps_fft2r_fc32_ansi.c.

+
203{
+
204 if (!dsp_is_power_of_two(N)) {
+ +
206 }
+
207
+
208 esp_err_t result = ESP_OK;
+
209
+
210 int i;
+
211 float e = M_PI * 2.0 / N;
+
212
+
213 for (i = 0; i < (N >> 1); i++) {
+
214 w[2 * i] = cosf(i * e);
+
215 w[2 * i + 1] = sinf(i * e);
+
216 }
+
217
+
218 return result;
+
219}
+
#define M_PI
Definition esp_err.h:26
+
+

References dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, M_PI, and N.

+ +

Referenced by dsps_fft2r_init_fc32().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ reverse()

+ +
+
+ + + + + + + + + + + + + + + + +
unsigned short reverse (unsigned short x,
unsigned short N,
int order )
+
+ +

Definition at line 161 of file dsps_fft2r_fc32_ansi.c.

+
162{
+
163 unsigned short b = x;
+
164
+
165 b = (b & 0xff00) >> 8 | (b & 0x00fF) << 8;
+
166 b = (b & 0xf0F0) >> 4 | (b & 0x0f0F) << 4;
+
167 b = (b & 0xCCCC) >> 2 | (b & 0x3333) << 2;
+
168 b = (b & 0xAAAA) >> 1 | (b & 0x5555) << 1;
+
169 return b >> (16 - order);
+
170}
+
float x[1024]
Definition test_fir.c:10
+
+

References N, and x.

+ +

Referenced by dsps_cplx2real_sc16_ansi().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ dsps_fft2r_initialized

+ +
+
+ + + + +
uint8_t dsps_fft2r_initialized = 0
+
+
+ +

◆ dsps_fft2r_mem_allocated

+ +
+
+ + + + +
uint8_t dsps_fft2r_mem_allocated = 0
+
+ +

Definition at line 30 of file dsps_fft2r_fc32_ansi.c.

+ +

Referenced by dsps_fft2r_deinit_fc32(), and dsps_fft2r_init_fc32().

+ +
+
+ +

◆ dsps_fft2r_ram_rev_table

+ +
+
+ + + + +
uint16_t* dsps_fft2r_ram_rev_table = NULL
+
+ +

Definition at line 32 of file dsps_fft2r_fc32_ansi.c.

+ +

Referenced by dsps_fft2r_deinit_fc32(), and dsps_fft2r_init_fc32().

+ +
+
+ +

◆ dsps_fft_w_table_fc32

+ +
+
+ + + + +
float* dsps_fft_w_table_fc32
+
+ +

Definition at line 27 of file dsps_fft2r_fc32_ansi.c.

+ +

Referenced by dsps_dct_f32(), dsps_fft2r_deinit_fc32(), dsps_fft2r_init_fc32(), and test_fft2r().

+ +
+
+ +

◆ dsps_fft_w_table_size

+ +
+
+ + + + +
int dsps_fft_w_table_size
+
+ +

Definition at line 28 of file dsps_fft2r_fc32_ansi.c.

+ +

Referenced by dsps_fft2r_init_fc32().

+ +
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "fftr2_ansi"
+
+static
+
+ +

Definition at line 25 of file dsps_fft2r_fc32_ansi.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c.js b/docs/html/dsps__fft2r__fc32__ansi_8c.js new file mode 100644 index 0000000..cf32789 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c.js @@ -0,0 +1,19 @@ +var dsps__fft2r__fc32__ansi_8c = +[ + [ "dsps_bit_rev2r_fc32", "dsps__fft2r__fc32__ansi_8c.html#ae32ad4da002ecb7a2d65332a63aec13a", null ], + [ "dsps_bit_rev_fc32_ansi", "dsps__fft2r__fc32__ansi_8c.html#af6eeaefef23180c3d2c319bfe402b558", null ], + [ "dsps_bit_rev_lookup_fc32_ansi", "dsps__fft2r__fc32__ansi_8c.html#adfc86d100d9819dd7d19e84a768494e7", null ], + [ "dsps_cplx2reC_fc32_ansi", "dsps__fft2r__fc32__ansi_8c.html#a53b5f7c6108a9752865753a01e84627a", null ], + [ "dsps_fft2r_deinit_fc32", "dsps__fft2r__fc32__ansi_8c.html#a4be1c3a89315e4f5c54a0868240815bc", null ], + [ "dsps_fft2r_fc32_ansi_", "dsps__fft2r__fc32__ansi_8c.html#a377638f1f5bf15fb2798f51bbbf05e30", null ], + [ "dsps_fft2r_init_fc32", "dsps__fft2r__fc32__ansi_8c.html#aa5f77f0db0301950603a20f9e67822aa", null ], + [ "dsps_gen_bitrev2r_table", "dsps__fft2r__fc32__ansi_8c.html#a19aaad1963cbbdb238dacc2072203d31", null ], + [ "dsps_gen_w_r2_fc32", "dsps__fft2r__fc32__ansi_8c.html#a512cd6d2b04793b59881041e37e51738", null ], + [ "reverse", "dsps__fft2r__fc32__ansi_8c.html#a9e5b644e23feecb94b24428862edcc15", null ], + [ "dsps_fft2r_initialized", "dsps__fft2r__fc32__ansi_8c.html#ad3b1d1569f2faa693db19d1736b39ed9", null ], + [ "dsps_fft2r_mem_allocated", "dsps__fft2r__fc32__ansi_8c.html#a1b1bde300dfb009d3807eb3e5f1081fd", null ], + [ "dsps_fft2r_ram_rev_table", "dsps__fft2r__fc32__ansi_8c.html#a5fd497a2bc9fb86bfc8408b529b611e0", null ], + [ "dsps_fft_w_table_fc32", "dsps__fft2r__fc32__ansi_8c.html#a02b26c60c12eef61392746a71e39ba76", null ], + [ "dsps_fft_w_table_size", "dsps__fft2r__fc32__ansi_8c.html#af9c7f3192020be0a7cc450a70870afb9", null ], + [ "TAG", "dsps__fft2r__fc32__ansi_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c__incl.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c__incl.md5 new file mode 100644 index 0000000..ec13597 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +f8c147a7e51661445739d94a95e1884e \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c__incl.svg b/docs/html/dsps__fft2r__fc32__ansi_8c__incl.svg new file mode 100644 index 0000000..2af2209 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c__incl.svg @@ -0,0 +1,518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft2r_fc32_ansi.c + + +Node1 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node1->Node11 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node1->Node15 + + + + + + + + +Node17 + + +math.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_attr.h + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +esp_log.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +string.h + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +malloc.h + + + + + +Node1->Node21 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +stdbool.h + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node11->Node14 + + + + + + + + +Node15->Node4 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + +Node19->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c__incl_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..4e19ca8 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c__incl_org.svg @@ -0,0 +1,435 @@ + + + + + + +dsps_fft2r_fc32_ansi.c + + +Node1 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node1->Node11 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node1->Node15 + + + + + + + + +Node17 + + +math.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_attr.h + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +esp_log.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +string.h + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +malloc.h + + + + + +Node1->Node21 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +stdbool.h + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node11->Node14 + + + + + + + + +Node15->Node4 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + +Node19->Node6 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph.md5 new file mode 100644 index 0000000..50f46f0 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph.md5 @@ -0,0 +1 @@ +160ca4a1196698b630db7baa16bab180 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph.svg new file mode 100644 index 0000000..b720ff4 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_gen_bitrev2r_table + + +Node1 + + +dsps_gen_bitrev2r_table + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph_org.svg new file mode 100644 index 0000000..67959a0 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a19aaad1963cbbdb238dacc2072203d31_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_gen_bitrev2r_table + + +Node1 + + +dsps_gen_bitrev2r_table + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 new file mode 100644 index 0000000..168a63e --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.md5 @@ -0,0 +1 @@ +880ac6f314066777b02310d8e0048d1f \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.svg new file mode 100644 index 0000000..9fc0a54 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft2r_fc32_ansi_ + + +Node1 + + +dsps_fft2r_fc32_ansi_ + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg new file mode 100644 index 0000000..b5eadb0 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a377638f1f5bf15fb2798f51bbbf05e30_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft2r_fc32_ansi_ + + +Node1 + + +dsps_fft2r_fc32_ansi_ + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph.md5 new file mode 100644 index 0000000..bdccf29 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph.md5 @@ -0,0 +1 @@ +3c0dd025e8d6c7c9ef07aaf9a03e40fb \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph.svg new file mode 100644 index 0000000..8618181 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_fft2r_deinit_fc32 + + +Node1 + + +dsps_fft2r_deinit_fc32 + + + + + +Node2 + + +dsps_fft2r_rev_tables +_init_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph_org.svg new file mode 100644 index 0000000..e961f9b --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a4be1c3a89315e4f5c54a0868240815bc_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_fft2r_deinit_fc32 + + +Node1 + + +dsps_fft2r_deinit_fc32 + + + + + +Node2 + + +dsps_fft2r_rev_tables +_init_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph.md5 new file mode 100644 index 0000000..997020b --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph.md5 @@ -0,0 +1 @@ +24b6a5ce2f5f9e2041b03eed446c0364 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph.svg new file mode 100644 index 0000000..505e0cf --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_gen_w_r2_fc32 + + +Node1 + + +dsps_gen_w_r2_fc32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph_org.svg new file mode 100644 index 0000000..a6d4064 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_gen_w_r2_fc32 + + +Node1 + + +dsps_gen_w_r2_fc32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph.md5 new file mode 100644 index 0000000..f3953dc --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph.md5 @@ -0,0 +1 @@ +c9c3a562fba368b7633274c907ff1d1f \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph.svg new file mode 100644 index 0000000..a114e95 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_gen_w_r2_fc32 + + +Node1 + + +dsps_gen_w_r2_fc32 + + + + + +Node2 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_sfdr_f32 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_snr_f32 + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +test_fft2r + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +main + + + + + +Node5->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph_org.svg new file mode 100644 index 0000000..231c187 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a512cd6d2b04793b59881041e37e51738_icgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_gen_w_r2_fc32 + + +Node1 + + +dsps_gen_w_r2_fc32 + + + + + +Node2 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_sfdr_f32 + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_snr_f32 + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +test_fft2r + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +main + + + + + +Node5->Node6 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph.md5 new file mode 100644 index 0000000..401ddfb --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph.md5 @@ -0,0 +1 @@ +243aad58d2abfc4c211144162a137541 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph.svg new file mode 100644 index 0000000..0340deb --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx2reC_fc32_ansi + + +Node1 + + +dsps_cplx2reC_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph_org.svg new file mode 100644 index 0000000..d6ff654 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a53b5f7c6108a9752865753a01e84627a_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx2reC_fc32_ansi + + +Node1 + + +dsps_cplx2reC_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.md5 new file mode 100644 index 0000000..5c9768e --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.md5 @@ -0,0 +1 @@ +cac12c771e0a0f354155c49b58c70d2b \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.svg new file mode 100644 index 0000000..6b98d4e --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +reverse + + +Node1 + + +reverse + + + + + +Node2 + + +dsps_cplx2real_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph_org.svg new file mode 100644 index 0000000..c99a509 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +reverse + + +Node1 + + +reverse + + + + + +Node2 + + +dsps_cplx2real_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph.md5 new file mode 100644 index 0000000..ff20b8d --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph.md5 @@ -0,0 +1 @@ +deef6b533d054cb58552de1c502a82e6 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph.svg new file mode 100644 index 0000000..810ce78 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + +dsps_fft2r_init_fc32 + + +Node1 + + +dsps_fft2r_init_fc32 + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dsps_gen_w_r2_fc32 + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +dsp_is_power_of_two + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph_org.svg new file mode 100644 index 0000000..8235c2f --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_cgraph_org.svg @@ -0,0 +1,102 @@ + + + + + + +dsps_fft2r_init_fc32 + + +Node1 + + +dsps_fft2r_init_fc32 + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +dsps_gen_w_r2_fc32 + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +dsp_is_power_of_two + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph.md5 new file mode 100644 index 0000000..fd3d2d1 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph.md5 @@ -0,0 +1 @@ +c78e14cdc430faeeb23d74f2b54a492c \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph.svg new file mode 100644 index 0000000..f8b902c --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +dsps_fft2r_init_fc32 + + +Node1 + + +dsps_fft2r_init_fc32 + + + + + +Node2 + + +dsps_sfdr_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_snr_f32 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +test_fft2r + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +main + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph_org.svg new file mode 100644 index 0000000..f53bb6d --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_aa5f77f0db0301950603a20f9e67822aa_icgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +dsps_fft2r_init_fc32 + + +Node1 + + +dsps_fft2r_init_fc32 + + + + + +Node2 + + +dsps_sfdr_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_snr_f32 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +test_fft2r + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +main + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph.md5 new file mode 100644 index 0000000..b18667b --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph.md5 @@ -0,0 +1 @@ +b0067c4ada7215a6d8a3a5c7b588e7be \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph.svg new file mode 100644 index 0000000..e8dc71a --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_bit_rev_fc32_ansi + + +Node1 + + +dsps_bit_rev_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph_org.svg new file mode 100644 index 0000000..bbcc3af --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_bit_rev_fc32_ansi + + +Node1 + + +dsps_bit_rev_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph.md5 b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph.md5 new file mode 100644 index 0000000..95b6a1c --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph.md5 @@ -0,0 +1 @@ +0fcf4dd5ec277288964f13117beb30a9 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph.svg new file mode 100644 index 0000000..a4dba94 --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +dsps_bit_rev_fc32_ansi + + +Node1 + + +dsps_bit_rev_fc32_ansi + + + + + +Node2 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_sfdr_f32 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_snr_f32 + + + + + +Node1->Node4 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +test_fft2r + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +main + + + + + +Node5->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph_org.svg b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph_org.svg new file mode 100644 index 0000000..2ef725a --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_af6eeaefef23180c3d2c319bfe402b558_icgraph_org.svg @@ -0,0 +1,129 @@ + + + + + + +dsps_bit_rev_fc32_ansi + + +Node1 + + +dsps_bit_rev_fc32_ansi + + + + + +Node2 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_sfdr_f32 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_snr_f32 + + + + + +Node1->Node4 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +test_fft2r + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +main + + + + + +Node5->Node6 + + + + + + + + diff --git a/docs/html/dsps__fft2r__fc32__ansi_8c_source.html b/docs/html/dsps__fft2r__fc32__ansi_8c_source.html new file mode 100644 index 0000000..50f08be --- /dev/null +++ b/docs/html/dsps__fft2r__fc32__ansi_8c_source.html @@ -0,0 +1,536 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_fc32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_fc32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_fft2r.h"
+
16#include "dsp_common.h"
+
17#include "dsp_types.h"
+
18#include <math.h>
+
19#include "esp_attr.h"
+
20#include "esp_log.h"
+
21#include <string.h>
+
22#include <malloc.h>
+
23
+
24
+
25static const char *TAG = "fftr2_ansi";
+
26
+ + + + +
31
+
32uint16_t *dsps_fft2r_ram_rev_table = NULL;
+
33
+
34#ifdef CONFIG_IDF_TARGET_ESP32S3
+
35extern float *dsps_fft2r_w_table_fc32_1024;
+
36#endif // CONFIG_IDF_TARGET_ESP32S3
+
37
+
38unsigned short reverse(unsigned short x, unsigned short N, int order);
+
39
+
+
40esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
+
41{
+
42 esp_err_t result = ESP_OK;
+
43 if (dsps_fft2r_initialized != 0) {
+
44 return result;
+
45 }
+
46 if (table_size > CONFIG_DSP_MAX_FFT_SIZE) {
+ +
48 }
+
49 if (table_size == 0) {
+
50 return result;
+
51 }
+
52 if (fft_table_buff != NULL) {
+ + +
55 }
+
56 dsps_fft_w_table_fc32 = fft_table_buff;
+
57 dsps_fft_w_table_size = table_size;
+
58 } else {
+ +
60#if CONFIG_IDF_TARGET_ESP32S3
+
61 if (table_size <= 1024) {
+
62 dsps_fft_w_table_fc32 = dsps_fft2r_w_table_fc32_1024;
+
63 } else {
+
64 dsps_fft_w_table_fc32 = (float *)memalign(16, sizeof(float) * table_size);
+
65 }
+
66#else
+
67 dsps_fft_w_table_fc32 = (float *)malloc(table_size * sizeof(float));
+
68#endif
+
69 if (dsps_fft_w_table_fc32 == NULL) {
+ +
71 }
+
72 }
+
73 dsps_fft_w_table_size = table_size;
+ +
75
+
76 }
+
77
+
78 // FFT ram_rev table allocated
+
79 int pow = dsp_power_of_two(table_size);
+
80 if ((pow > 3) && (pow < 13)) {
+
81 dsps_fft2r_ram_rev_table = (uint16_t *)malloc(2 * dsps_fft2r_rev_tables_fc32_size[pow - 4] * sizeof(uint16_t));
+
82 if (dsps_fft2r_ram_rev_table == NULL) {
+ +
84 }
+
85 memcpy(dsps_fft2r_ram_rev_table, dsps_fft2r_rev_tables_fc32[pow - 4], 2 * dsps_fft2r_rev_tables_fc32_size[pow - 4] * sizeof(uint16_t));
+ +
87 }
+
88
+ +
90 if (result != ESP_OK) {
+
91 return result;
+
92 }
+ +
94 if (result != ESP_OK) {
+
95 return result;
+
96 }
+ +
98
+
99 return ESP_OK;
+
100}
+
+
101
+
+ +
103{
+ +
105#if CONFIG_IDF_TARGET_ESP32S3
+
106 if (dsps_fft_w_table_fc32 != dsps_fft2r_w_table_fc32_1024) {
+ +
108 }
+
109#else
+ +
111#endif
+
112 }
+
113 if (dsps_fft2r_ram_rev_table != NULL) {
+ + +
116 }
+
117 // Re init bitrev table for next use
+ + + +
121}
+
+
122
+
+
123esp_err_t dsps_fft2r_fc32_ansi_(float *data, int N, float *w)
+
124{
+
125 if (!dsp_is_power_of_two(N)) {
+ +
127 }
+ + +
130 }
+
131
+
132 esp_err_t result = ESP_OK;
+
133
+
134 int ie, ia, m;
+
135 float re_temp, im_temp;
+
136 float c, s;
+
137 ie = 1;
+
138 for (int N2 = N / 2; N2 > 0; N2 >>= 1) {
+
139 ia = 0;
+
140 for (int j = 0; j < ie; j++) {
+
141 c = w[2 * j];
+
142 s = w[2 * j + 1];
+
143 for (int i = 0; i < N2; i++) {
+
144 m = ia + N2;
+
145 re_temp = c * data[2 * m] + s * data[2 * m + 1];
+
146 im_temp = c * data[2 * m + 1] - s * data[2 * m];
+
147 data[2 * m] = data[2 * ia] - re_temp;
+
148 data[2 * m + 1] = data[2 * ia + 1] - im_temp;
+
149 data[2 * ia] = data[2 * ia] + re_temp;
+
150 data[2 * ia + 1] = data[2 * ia + 1] + im_temp;
+
151 ia++;
+
152 }
+
153 ia += N2;
+
154 }
+
155 ie <<= 1;
+
156 }
+
157 return result;
+
158}
+
+
159
+
160
+
+
161unsigned short reverse(unsigned short x, unsigned short N, int order)
+
162{
+
163 unsigned short b = x;
+
164
+
165 b = (b & 0xff00) >> 8 | (b & 0x00fF) << 8;
+
166 b = (b & 0xf0F0) >> 4 | (b & 0x0f0F) << 4;
+
167 b = (b & 0xCCCC) >> 2 | (b & 0x3333) << 2;
+
168 b = (b & 0xAAAA) >> 1 | (b & 0x5555) << 1;
+
169 return b >> (16 - order);
+
170}
+
+
171
+
+ +
173{
+
174 if (!dsp_is_power_of_two(N)) {
+ +
176 }
+
177
+
178 esp_err_t result = ESP_OK;
+
179
+
180 int j, k;
+
181 float r_temp, i_temp;
+
182 j = 0;
+
183 for (int i = 1; i < (N - 1); i++) {
+
184 k = N >> 1;
+
185 while (k <= j) {
+
186 j -= k;
+
187 k >>= 1;
+
188 }
+
189 j += k;
+
190 if (i < j) {
+
191 r_temp = data[j * 2];
+
192 data[j * 2] = data[i * 2];
+
193 data[i * 2] = r_temp;
+
194 i_temp = data[j * 2 + 1];
+
195 data[j * 2 + 1] = data[i * 2 + 1];
+
196 data[i * 2 + 1] = i_temp;
+
197 }
+
198 }
+
199 return result;
+
200}
+
+
201
+
+ +
203{
+
204 if (!dsp_is_power_of_two(N)) {
+ +
206 }
+
207
+
208 esp_err_t result = ESP_OK;
+
209
+
210 int i;
+
211 float e = M_PI * 2.0 / N;
+
212
+
213 for (i = 0; i < (N >> 1); i++) {
+
214 w[2 * i] = cosf(i * e);
+
215 w[2 * i + 1] = sinf(i * e);
+
216 }
+
217
+
218 return result;
+
219}
+
+
220
+
+ +
222{
+
223 if (!dsp_is_power_of_two(N)) {
+ +
225 }
+
226 esp_err_t result = ESP_OK;
+
227
+
228 int i;
+
229 int n2 = N << 1;
+
230
+
231 float rkl = 0;
+
232 float rkh = 0;
+
233 float rnl = 0;
+
234 float rnh = 0;
+
235 float ikl = 0;
+
236 float ikh = 0;
+
237 float inl = 0;
+
238 float inh = 0;
+
239
+
240 for (i = 0; i < (N / 4); i++) {
+
241 rkl = data[i * 2 + 0 + 2];
+
242 ikl = data[i * 2 + 1 + 2];
+
243 rnl = data[n2 - i * 2 - 2];
+
244 inl = data[n2 - i * 2 - 1];
+
245
+
246 rkh = data[i * 2 + 0 + 2 + N];
+
247 ikh = data[i * 2 + 1 + 2 + N];
+
248 rnh = data[n2 - i * 2 - 2 - N];
+
249 inh = data[n2 - i * 2 - 1 - N];
+
250
+
251 data[i * 2 + 0 + 2] = rkl + rnl;
+
252 data[i * 2 + 1 + 2] = ikl - inl;
+
253
+
254 data[n2 - i * 2 - 1 - N] = inh - ikh;
+
255 data[n2 - i * 2 - 2 - N] = rkh + rnh;
+
256
+
257 data[i * 2 + 0 + 2 + N] = ikl + inl;
+
258 data[i * 2 + 1 + 2 + N] = rnl - rkl;
+
259
+
260 data[n2 - i * 2 - 1] = rkh - rnh;
+
261 data[n2 - i * 2 - 2] = ikh + inh;
+
262 }
+
263 data[N] = data[1];
+
264 data[1] = 0;
+
265 data[N + 1] = 0;
+
266
+
267 return result;
+
268}
+
+
269
+
+
270esp_err_t dsps_gen_bitrev2r_table(int N, int step, char *name_ext)
+
271{
+
272 if (!dsp_is_power_of_two(N)) {
+ +
274 }
+
275
+
276 int j, k;
+
277 j = 0;
+
278 int items_count = 0;
+
279 ESP_LOGD(TAG, "const uint16_t bitrev2r_table_%i_%s[] = { ", N, name_ext);
+
280 for (int i = 1; i < (N - 1); i++) {
+
281 k = N >> 1;
+
282 while (k <= j) {
+
283 j -= k;
+
284 k >>= 1;
+
285 }
+
286 j += k;
+
287 if (i < j) {
+
288 ESP_LOGD(TAG, "%i, %i, ", i * step, j * step);
+
289 items_count++;
+
290 if ((items_count % 8) == 0) {
+
291 ESP_LOGD(TAG, " ");
+
292 }
+
293 }
+
294 }
+
295 ESP_LOGD(TAG, "};");
+
296 ESP_LOGD(TAG, "const uint16_t bitrev2r_table_%i_%s_size = %i;\n", N, name_ext, items_count);
+
297
+
298 ESP_LOGD(TAG, "extern const uint16_t bitrev2r_table_%i_%s[];", N, name_ext);
+
299 ESP_LOGD(TAG, "extern const uint16_t bitrev2r_table_%i_%s_size;\n", N, name_ext);
+
300 return ESP_OK;
+
301}
+
+
302
+
+ +
304{
+
305 uint16_t *table;
+
306 uint16_t table_size;
+
307 switch (N) {
+
308 case 16:
+
309 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[0];
+
310 table_size = dsps_fft2r_rev_tables_fc32_size[0];
+
311 break;
+
312 case 32:
+
313 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[1];
+
314 table_size = dsps_fft2r_rev_tables_fc32_size[1];
+
315 break;
+
316 case 64:
+
317 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[2];
+
318 table_size = dsps_fft2r_rev_tables_fc32_size[2];
+
319 break;
+
320 case 128:
+
321 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[3];
+
322 table_size = dsps_fft2r_rev_tables_fc32_size[3];
+
323 break;
+
324 case 256:
+
325 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[4];
+
326 table_size = dsps_fft2r_rev_tables_fc32_size[4];
+
327 break;
+
328 case 512:
+
329 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[5];
+
330 table_size = dsps_fft2r_rev_tables_fc32_size[5];
+
331 break;
+
332 case 1024:
+
333 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[6];
+
334 table_size = dsps_fft2r_rev_tables_fc32_size[6];
+
335 break;
+
336 case 2048:
+
337 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[7];
+
338 table_size = dsps_fft2r_rev_tables_fc32_size[7];
+
339 break;
+
340 case 4096:
+
341 table = (uint16_t *)dsps_fft2r_rev_tables_fc32[8];
+
342 table_size = dsps_fft2r_rev_tables_fc32_size[8];
+
343 break;
+
344
+
345 default:
+
346 return dsps_bit_rev_fc32(data, N);
+
347 break;
+
348 }
+
349 return dsps_bit_rev_lookup_fc32(data, table_size, table);
+
350}
+
+
351
+
+
352esp_err_t dsps_bit_rev_lookup_fc32_ansi(float *data, int reverse_size, uint16_t *reverse_tab)
+
353{
+
354 float r_temp, i_temp;
+
355 for (int n = 0 ; n < reverse_size ; n++) {
+
356 uint16_t i = reverse_tab[n * 2 + 0] >> 2;
+
357 uint16_t j = reverse_tab[n * 2 + 1] >> 2;
+
358 r_temp = data[j];
+
359 data[j] = data[i];
+
360 data[i] = r_temp;
+
361 i_temp = data[j + 1];
+
362 data[j + 1] = data[i + 1];
+
363 data[i + 1] = i_temp;
+
364 }
+
365 return ESP_OK;
+
366}
+
+ +
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_UNINITIALIZED
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+ + +
#define dsps_bit_rev_fc32
Definition dsps_fft2r.h:249
+
#define dsps_bit_rev_lookup_fc32
Definition dsps_fft2r.h:252
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
const uint16_t dsps_fft2r_rev_tables_fc32_size[]
+
uint16_t * dsps_fft2r_rev_tables_fc32[]
+
void dsps_fft2r_rev_tables_init_fc32(void)
+
float * dsps_fft_w_table_fc32
+
esp_err_t dsps_gen_bitrev2r_table(int N, int step, char *name_ext)
+
uint8_t dsps_fft2r_mem_allocated
+
esp_err_t dsps_fft2r_fc32_ansi_(float *data, int N, float *w)
complex FFT of radix 2
+
void dsps_fft2r_deinit_fc32()
deinit fft tables
+
esp_err_t dsps_gen_w_r2_fc32(float *w, int N)
Generate coefficients table for the FFT radix 2.
+
esp_err_t dsps_cplx2reC_fc32_ansi(float *data, int N)
Convert complex array to two real arrays.
+
uint16_t * dsps_fft2r_ram_rev_table
+
unsigned short reverse(unsigned short x, unsigned short N, int order)
+
esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
init fft tables
+
uint8_t dsps_fft2r_initialized
+
esp_err_t dsps_bit_rev_lookup_fc32_ansi(float *data, int reverse_size, uint16_t *reverse_tab)
+
esp_err_t dsps_bit_rev2r_fc32(float *data, int N)
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+
int dsps_fft_w_table_size
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+ +
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
static float data[128 *2]
Definition test_fft2r.c:34
+
float x[1024]
Definition test_fir.c:10
+
#define N
Definition test_mmult.c:13
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/dsps__fft2r__platform_8h.html b/docs/html/dsps__fft2r__platform_8h.html new file mode 100644 index 0000000..d98b6a6 --- /dev/null +++ b/docs/html/dsps__fft2r__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_fft2r_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft2r__platform_8h__dep__incl.md5 b/docs/html/dsps__fft2r__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..3fd2bd3 --- /dev/null +++ b/docs/html/dsps__fft2r__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +41755618d4e9f10e5c603ff20501427c \ No newline at end of file diff --git a/docs/html/dsps__fft2r__platform_8h__dep__incl.svg b/docs/html/dsps__fft2r__platform_8h__dep__incl.svg new file mode 100644 index 0000000..8694e43 --- /dev/null +++ b/docs/html/dsps__fft2r__platform_8h__dep__incl.svg @@ -0,0 +1,788 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft2r_platform.h + + +Node1 + + +dsps_fft2r_platform.h + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dsps_dct_f32.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_dctiv_f32.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_dstiv_f32.c + + + + + +Node2->Node5 + + + + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dsps_sfdr_f32.cpp + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dsps_snr_f32.cpp + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +esp_dsp.h + + + + + +Node2->Node13 + + + + + + + + +Node46 + + +test_fft2r.c + + + + + +Node2->Node46 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +3d_graphics_demo.cpp + + + + + +Node13->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +3d_kalman_demo.cpp + + + + + +Node13->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node13->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node13->Node23 + + + + + + + + +Node24 + + +audio_amp_main.c + + + + + +Node13->Node24 + + + + + + + + +Node25 + + +dsp_tests.h + + + + + +Node13->Node25 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node13->Node31 + + + + + + + + +Node33 + + +graphics_support.h + + + + + +Node13->Node33 + + + + + + + + +Node35 + + +graphics_support.h + + + + + +Node13->Node35 + + + + + + + + +Node37 + + +init_display.c + + + + + +Node13->Node37 + + + + + + + + +Node38 + + +init_display.c + + + + + +Node13->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node13->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node13->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node13->Node41 + + + + + + + + +Node42 + + +kalman_filter_demo.cpp + + + + + +Node13->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node13->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node13->Node44 + + + + + + + + +Node45 + + +main.c + + + + + +Node13->Node45 + + + + + + + + +Node25->Node8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__platform_8h__dep__incl_org.svg b/docs/html/dsps__fft2r__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..2007592 --- /dev/null +++ b/docs/html/dsps__fft2r__platform_8h__dep__incl_org.svg @@ -0,0 +1,705 @@ + + + + + + +dsps_fft2r_platform.h + + +Node1 + + +dsps_fft2r_platform.h + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dsps_dct_f32.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_dctiv_f32.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_dstiv_f32.c + + + + + +Node2->Node5 + + + + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dsps_sfdr_f32.cpp + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dsps_snr_f32.cpp + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +esp_dsp.h + + + + + +Node2->Node13 + + + + + + + + +Node46 + + +test_fft2r.c + + + + + +Node2->Node46 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +3d_graphics_demo.cpp + + + + + +Node13->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +3d_kalman_demo.cpp + + + + + +Node13->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node13->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node13->Node23 + + + + + + + + +Node24 + + +audio_amp_main.c + + + + + +Node13->Node24 + + + + + + + + +Node25 + + +dsp_tests.h + + + + + +Node13->Node25 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node13->Node31 + + + + + + + + +Node33 + + +graphics_support.h + + + + + +Node13->Node33 + + + + + + + + +Node35 + + +graphics_support.h + + + + + +Node13->Node35 + + + + + + + + +Node37 + + +init_display.c + + + + + +Node13->Node37 + + + + + + + + +Node38 + + +init_display.c + + + + + +Node13->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node13->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node13->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node13->Node41 + + + + + + + + +Node42 + + +kalman_filter_demo.cpp + + + + + +Node13->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node13->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node13->Node44 + + + + + + + + +Node45 + + +main.c + + + + + +Node13->Node45 + + + + + + + + +Node25->Node8 + + + + + + + + diff --git a/docs/html/dsps__fft2r__platform_8h__incl.md5 b/docs/html/dsps__fft2r__platform_8h__incl.md5 new file mode 100644 index 0000000..cbd8869 --- /dev/null +++ b/docs/html/dsps__fft2r__platform_8h__incl.md5 @@ -0,0 +1 @@ +10ed4dc73245ca7c462ebf4f710415fd \ No newline at end of file diff --git a/docs/html/dsps__fft2r__platform_8h__incl.svg b/docs/html/dsps__fft2r__platform_8h__incl.svg new file mode 100644 index 0000000..b693485 --- /dev/null +++ b/docs/html/dsps__fft2r__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft2r_platform.h + + +Node1 + + +dsps_fft2r_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__platform_8h__incl_org.svg b/docs/html/dsps__fft2r__platform_8h__incl_org.svg new file mode 100644 index 0000000..891c694 --- /dev/null +++ b/docs/html/dsps__fft2r__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft2r_platform.h + + +Node1 + + +dsps_fft2r_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__platform_8h_source.html b/docs/html/dsps__fft2r__platform_8h_source.html new file mode 100644 index 0000000..6125949 --- /dev/null +++ b/docs/html/dsps__fft2r__platform_8h_source.html @@ -0,0 +1,150 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_fft2r_platform_H_
+
2#define _dsps_fft2r_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dsps_fft2r_fc32_ae32_enabled 1
+
14
+
15#endif //
+
16
+
17#if ((XCHAL_HAVE_LOOPS == 1) && (XCHAL_HAVE_MAC16 == 1))
+
18
+
19#define dsps_fft2r_sc16_ae32_enabled 1
+
20
+
21#endif //
+
22
+
23#if (XCHAL_HAVE_LOOPS == 1)
+
24
+
25#define dsps_bit_rev_lookup_fc32_ae32_enabled 1
+
26
+
27#endif //
+
28#endif // __XTENSA__
+
29
+
30#if CONFIG_IDF_TARGET_ESP32S3
+
31#define dsps_fft2r_fc32_aes3_enabled 1
+
32#define dsps_fft2r_sc16_aes3_enabled 1
+
33#endif
+
34#if CONFIG_IDF_TARGET_ESP32P4
+
35#ifdef CONFIG_DSP_OPTIMIZED
+
36#define dsps_fft2r_fc32_arp4_enabled 1
+
37#define dsps_fft2r_sc16_arp4_enabled 1
+
38#else
+
39#define dsps_fft2r_fc32_arp4_enabled 0
+
40#define dsps_fft2r_sc16_arp4_enabled 0
+
41#endif // CONFIG_DSP_OPTIMIZED
+
42#endif
+
43
+
44#endif // _dsps_fft2r_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c.html b/docs/html/dsps__fft2r__sc16__ansi_8c.html new file mode 100644 index 0000000..a23963a --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c.html @@ -0,0 +1,1144 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_sc16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_sc16_ansi.c File Reference
+
+
+
#include "dsps_fft2r.h"
+#include "dsp_common.h"
+#include "dsp_types.h"
+#include <math.h>
+#include "esp_attr.h"
+#include <malloc.h>
+#include "dsp_tests.h"
+
+Include dependency graph for dsps_fft2r_sc16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + +

+Functions

unsigned short reverse (unsigned short x, unsigned short N, int order)
static int16_t xtfixed_bf_1 (int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
static int16_t xtfixed_bf_2 (int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
static int16_t xtfixed_bf_3 (int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
static int16_t xtfixed_bf_4 (int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
esp_err_t dsps_fft2r_init_sc16 (int16_t *fft_table_buff, int table_size)
void dsps_fft2r_deinit_sc16 ()
esp_err_t dsps_fft2r_sc16_ansi_ (int16_t *data, int N, int16_t *sc_table)
static unsigned short reverse_sc16 (unsigned short x, unsigned short N, int order)
esp_err_t dsps_bit_rev_sc16_ansi (int16_t *data, int N)
esp_err_t dsps_gen_w_r2_sc16 (int16_t *w, int N)
esp_err_t dsps_cplx2reC_sc16 (int16_t *data, int N)
esp_err_t dsps_cplx2real_sc16_ansi (int16_t *data, int N)
 Convert complex FFT result to real array.
+ + + + + + + +

+Variables

int16_t * dsps_fft_w_table_sc16
int dsps_fft_w_table_sc16_size
uint8_t dsps_fft2r_sc16_initialized = 0
uint8_t dsps_fft2r_sc16_mem_allocated = 0
static const int add_rount_mult = 0x7fff
static const int mult_shift_const = 0x7fff
+

Function Documentation

+ +

◆ dsps_bit_rev_sc16_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev_sc16_ansi (int16_t * data,
int N )
+
+ +

Definition at line 181 of file dsps_fft2r_sc16_ansi.c.

+
182{
+
183 if (!dsp_is_power_of_two(N)) {
+ +
185 }
+
186 esp_err_t result = ESP_OK;
+
187
+
188 int j, k;
+
189 uint32_t temp;
+
190 uint32_t *in_data = (uint32_t *)data;
+
191 j = 0;
+
192 for (int i = 1; i < (N - 1); i++) {
+
193 k = N >> 1;
+
194 while (k <= j) {
+
195 j -= k;
+
196 k >>= 1;
+
197 }
+
198 j += k;
+
199 if (i < j) {
+
200 temp = in_data[j];
+
201 in_data[j] = in_data[i];
+
202 in_data[i] = temp;
+
203 }
+
204 }
+
205 return result;
+
206}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
const int k
Definition test_mmult.c:18
+
+

References data, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, k, and N.

+ +

Referenced by dsps_fft2r_init_sc16(), microphone_read_task(), and microphone_read_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx2real_sc16_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx2real_sc16_ansi (int16_t * data,
int N )
+
+ +

Convert complex FFT result to real array.

+

Convert FFT result of complex FFT for resl input to real array. This function have to be used if FFT used to process real data. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]dataInput complex array and result of FFT2R. input has size of 2*N, because contains real and imaginary part. result will be stored to the same array. Input1: input[0..N-1], Input2: input[N..2*N-1]
[in]NNumber of complex elements in input array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 268 of file dsps_fft2r_sc16_ansi.c.

+
269{
+
270
+
271 int order = dsp_power_of_two(N);
+ +
273 sc16_t *result = (sc16_t *)data;
+
274 // Original formula...
+
275 // result[0].re = result[0].re + result[0].im;
+
276 // result[N].re = result[0].re - result[0].im;
+
277 // result[0].im = 0;
+
278 // result[N].im = 0;
+
279 // Optimized one:
+
280 int16_t tmp_re = result[0].re;
+
281 result[0].re = (tmp_re + result[0].im) >> 1;
+
282 result[0].im = (tmp_re - result[0].im) >> 1;
+
283
+
284 sc16_t f1k, f2k;
+
285 for (int k = 1; k <= N / 2 ; ++k ) {
+
286 sc16_t fpk = result[k];
+
287 sc16_t fpnk;
+
288 fpnk.re = result[N - k].re;
+
289 fpnk.im = result[N - k].im;
+
290 f1k.re = fpk.re + fpnk.re;
+
291 f1k.im = fpk.im - fpnk.im;
+
292 f2k.re = fpk.re - fpnk.re;
+
293 f2k.im = fpk.im + fpnk.im;
+
294
+
295 int table_index = reverse(k, N, order);
+
296
+
297 // float c = -dsps_fft_w_table_fc32[table_index*2+1];
+
298 // float s = -dsps_fft_w_table_fc32[table_index*2+0];
+
299 sc16_t w = table[table_index];
+
300
+
301 sc16_t tw;
+
302 {
+
303 int re = (w.re * f2k.im - w.im * f2k.re) >> 15;
+
304 int im = (+w.re * f2k.re + w.im * f2k.im) >> 15;
+
305 tw.re = re;
+
306 tw.im = im;
+
307 }
+
308
+
309 result[k].re = (f1k.re + tw.re) >> 2;
+
310 result[k].im = (f1k.im - tw.im) >> 2;
+
311 result[N - k].re = (f1k.re - tw.re) >> 2;
+
312 result[N - k].im = -(f1k.im + tw.im) >> 2;
+
313 }
+
314 return ESP_OK;
+
315}
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
union sc16_u sc16_t
+
int16_t * dsps_fft_w_table_sc16
+
unsigned short reverse(unsigned short x, unsigned short N, int order)
+
int16_t re
Definition dsp_types.h:10
+
int16_t im
Definition dsp_types.h:11
+
+

References data, dsp_power_of_two(), dsps_fft_w_table_sc16, ESP_OK, sc16_u::im, k, N, sc16_u::re, and reverse().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx2reC_sc16()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_cplx2reC_sc16 (int16_t * data,
int N )
+
+ +

Definition at line 227 of file dsps_fft2r_sc16_ansi.c.

+
228{
+
229 if (!dsp_is_power_of_two(N)) {
+ +
231 }
+
232 esp_err_t result = ESP_OK;
+
233
+
234 int i;
+
235 int n2 = N << (1); // we will operate with int32 indexes
+
236 uint32_t *in_data = (uint32_t *)data;
+
237
+
238 sc16_t kl;
+
239 sc16_t kh;
+
240 sc16_t nl;
+
241 sc16_t nh;
+
242
+
243 for (i = 0; i < (N / 4); i++) {
+
244 kl.data = in_data[i + 1];
+
245 nl.data = in_data[N - i - 1];
+
246 kh.data = in_data[i + 1 + N / 2];
+
247 nh.data = in_data[N - i - 1 - N / 2];
+
248
+
249 data[i * 2 + 0 + 2] = kl.re + nl.re;
+
250 data[i * 2 + 1 + 2] = kl.im - nl.im;
+
251
+
252 data[n2 - i * 2 - 1 - N] = kh.re + nh.re;
+
253 data[n2 - i * 2 - 2 - N] = kh.im - nh.im;
+
254
+
255 data[i * 2 + 0 + 2 + N] = kl.im + nl.im;
+
256 data[i * 2 + 1 + 2 + N] = kl.re - nl.re;
+
257
+
258 data[n2 - i * 2 - 1] = kh.im + nh.im;
+
259 data[n2 - i * 2 - 2] = kh.re - nh.re;
+
260 }
+
261 data[N] = data[1];
+
262 data[1] = 0;
+
263 data[N + 1] = 0;
+
264
+
265 return result;
+
266}
+
uint32_t data
Definition dsp_types.h:13
+
+

References data, sc16_u::data, dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, sc16_u::im, N, and sc16_u::re.

+ +

Referenced by microphone_read_task(), and microphone_read_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_deinit_sc16()

+ +
+
+ + + + + + + +
void dsps_fft2r_deinit_sc16 (void )
+
+ +

Definition at line 108 of file dsps_fft2r_sc16_ansi.c.

+
109{
+ + +
112 }
+ + +
115}
+
uint8_t dsps_fft2r_sc16_initialized
+
uint8_t dsps_fft2r_sc16_mem_allocated
+
+

References dsps_fft2r_sc16_initialized, dsps_fft2r_sc16_mem_allocated, and dsps_fft_w_table_sc16.

+ +
+
+ +

◆ dsps_fft2r_init_sc16()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_fft2r_init_sc16 (int16_t * fft_table_buff,
int table_size )
+
+ +

Definition at line 70 of file dsps_fft2r_sc16_ansi.c.

+
71{
+
72 esp_err_t result = ESP_OK;
+ +
74 return result;
+
75 }
+
76 if (table_size > CONFIG_DSP_MAX_FFT_SIZE) {
+ +
78 }
+
79 if (table_size == 0) {
+
80 return result;
+
81 }
+
82 if (fft_table_buff != NULL) {
+ + +
85 }
+
86 dsps_fft_w_table_sc16 = fft_table_buff;
+
87 dsps_fft_w_table_sc16_size = table_size;
+
88 } else {
+ +
90 dsps_fft_w_table_sc16 = (int16_t *)memalign(16, CONFIG_DSP_MAX_FFT_SIZE * sizeof(int16_t));
+
91 }
+ + +
94 }
+
95
+ +
97 if (result != ESP_OK) {
+
98 return result;
+
99 }
+ +
101 if (result != ESP_OK) {
+
102 return result;
+
103 }
+ +
105 return ESP_OK;
+
106}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_bit_rev_sc16_ansi(int16_t *data, int N)
+
esp_err_t dsps_gen_w_r2_sc16(int16_t *w, int N)
+
int dsps_fft_w_table_sc16_size
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsps_bit_rev_sc16_ansi(), dsps_fft2r_sc16_initialized, dsps_fft2r_sc16_mem_allocated, dsps_fft_w_table_sc16, dsps_fft_w_table_sc16_size, dsps_gen_w_r2_sc16(), ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and memalign.

+ +

Referenced by microphone_read_task(), and microphone_read_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft2r_sc16_ansi_()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_fft2r_sc16_ansi_ (int16_t * data,
int N,
int16_t * sc_table )
+
+ +

Definition at line 117 of file dsps_fft2r_sc16_ansi.c.

+
118{
+
119 if (!dsp_is_power_of_two(N)) {
+ +
121 }
+ + +
124 }
+
125
+
126 esp_err_t result = ESP_OK;
+
127
+
128 uint32_t *w = (uint32_t *)sc_table;
+
129 uint32_t *in_data = (uint32_t *)data;
+
130
+
131 int ie, ia, m;
+
132 sc16_t cs;// c - re, s - im
+
133 sc16_t m_data;
+
134 sc16_t a_data;
+
135
+
136 ie = 1;
+
137 for (int N2 = N / 2; N2 > 0; N2 >>= 1) {
+
138 ia = 0;
+
139 for (int j = 0; j < ie; j++) {
+
140 cs.data = w[j];
+
141 //c = w[2 * j];
+
142 //s = w[2 * j + 1];
+
143 for (int i = 0; i < N2; i++) {
+
144 m = ia + N2;
+
145 m_data.data = in_data[m];
+
146 a_data.data = in_data[ia];
+
147 //data[2 * m] = data[2 * ia] - re_temp;
+
148 //data[2 * m + 1] = data[2 * ia + 1] - im_temp;
+
149 sc16_t m1;
+
150 m1.re = xtfixed_bf_1(a_data.re, cs.re, m_data.re, cs.im, m_data.im, 16);//(a_data.re - temp.re + shift_const) >> 1;
+
151 m1.im = xtfixed_bf_2(a_data.im, cs.re, m_data.im, cs.im, m_data.re, 16);//(a_data.im - temp.im + shift_const) >> 1;
+
152 in_data[m] = m1.data;
+
153
+
154 //data[2 * ia] = data[2 * ia] + re_temp;
+
155 //data[2 * ia + 1] = data[2 * ia + 1] + im_temp;
+
156 sc16_t m2;
+
157 m2.re = xtfixed_bf_3(a_data.re, cs.re, m_data.re, cs.im, m_data.im, 16);//(a_data.re + temp.re + shift_const) >> 1;
+
158 m2.im = xtfixed_bf_4(a_data.im, cs.re, m_data.im, cs.im, m_data.re, 16);//(a_data.im + temp.im + shift_const)>>1;
+
159 in_data[ia] = m2.data;
+
160 ia++;
+
161 }
+
162 ia += N2;
+
163 }
+
164 ie <<= 1;
+
165 }
+
166 return result;
+
167}
+
#define ESP_ERR_DSP_UNINITIALIZED
+
static int16_t xtfixed_bf_2(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
static int16_t xtfixed_bf_4(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
static int16_t xtfixed_bf_3(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
static int16_t xtfixed_bf_1(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
const int m
Definition test_mmult.c:16
+
+

References data, sc16_u::data, dsp_is_power_of_two(), dsps_fft2r_sc16_initialized, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, sc16_u::im, m, N, sc16_u::re, xtfixed_bf_1(), xtfixed_bf_2(), xtfixed_bf_3(), and xtfixed_bf_4().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_gen_w_r2_sc16()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_gen_w_r2_sc16 (int16_t * w,
int N )
+
+ +

Definition at line 208 of file dsps_fft2r_sc16_ansi.c.

+
209{
+
210 if (!dsp_is_power_of_two(N)) {
+ +
212 }
+
213
+
214 esp_err_t result = ESP_OK;
+
215
+
216 int i;
+
217 float e = M_PI * 2.0 / N;
+
218
+
219 for (i = 0; i < (N >> 1); i++) {
+
220 w[2 * i] = (int16_t)(INT16_MAX * cosf(i * e));
+
221 w[2 * i + 1] = (int16_t)(INT16_MAX * sinf(i * e));
+
222 }
+
223
+
224 return result;
+
225}
+
#define M_PI
Definition esp_err.h:26
+
+

References dsp_is_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, M_PI, and N.

+ +

Referenced by dsps_fft2r_init_sc16().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ reverse()

+ +
+
+ + + + + + + + + + + + + + + + +
unsigned short reverse (unsigned short x,
unsigned short N,
int order )
+
+ +

Definition at line 161 of file dsps_fft2r_fc32_ansi.c.

+
162{
+
163 unsigned short b = x;
+
164
+
165 b = (b & 0xff00) >> 8 | (b & 0x00fF) << 8;
+
166 b = (b & 0xf0F0) >> 4 | (b & 0x0f0F) << 4;
+
167 b = (b & 0xCCCC) >> 2 | (b & 0x3333) << 2;
+
168 b = (b & 0xAAAA) >> 1 | (b & 0x5555) << 1;
+
169 return b >> (16 - order);
+
170}
+
float x[1024]
Definition test_fir.c:10
+
+

References N, and x.

+ +

Referenced by dsps_cplx2real_sc16_ansi().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ reverse_sc16()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
unsigned short reverse_sc16 (unsigned short x,
unsigned short N,
int order )
+
+inlinestatic
+
+ +

Definition at line 170 of file dsps_fft2r_sc16_ansi.c.

+
171{
+
172 unsigned short b = x;
+
173
+
174 b = (b & 0xff00) >> 8 | (b & 0x00fF) << 8;
+
175 b = (b & 0xf0F0) >> 4 | (b & 0x0f0F) << 4;
+
176 b = (b & 0xCCCC) >> 2 | (b & 0x3333) << 2;
+
177 b = (b & 0xAAAA) >> 1 | (b & 0x5555) << 1;
+
178 return b >> (16 - order);
+
179}
+
+

References N, and x.

+ +
+
+ +

◆ xtfixed_bf_1()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int16_t xtfixed_bf_1 (int16_t a0,
int16_t a1,
int16_t a2,
int16_t a3,
int16_t a4,
int result_shift )
+
+inlinestatic
+
+ +

Definition at line 34 of file dsps_fft2r_sc16_ansi.c.

+
35{
+
36 int result = a0 * mult_shift_const;
+
37 result -= (int32_t)a1 * (int32_t)a2 + (int32_t)a3 * (int32_t)a4;
+
38 result += add_rount_mult;
+
39 result = result >> result_shift;
+
40 return (int16_t)result;
+
41}
+
static const int add_rount_mult
+
static const int mult_shift_const
+
+

References add_rount_mult, and mult_shift_const.

+ +

Referenced by dsps_fft2r_sc16_ansi_().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ xtfixed_bf_2()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int16_t xtfixed_bf_2 (int16_t a0,
int16_t a1,
int16_t a2,
int16_t a3,
int16_t a4,
int result_shift )
+
+inlinestatic
+
+ +

Definition at line 43 of file dsps_fft2r_sc16_ansi.c.

+
44{
+
45 int result = a0 * mult_shift_const;
+
46 result -= ((int32_t)a1 * (int32_t)a2 - (int32_t)a3 * (int32_t)a4);
+
47 result += add_rount_mult;
+
48 result = result >> result_shift;
+
49 return (int16_t)result;
+
50}
+
+

References add_rount_mult, and mult_shift_const.

+ +

Referenced by dsps_fft2r_sc16_ansi_().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ xtfixed_bf_3()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int16_t xtfixed_bf_3 (int16_t a0,
int16_t a1,
int16_t a2,
int16_t a3,
int16_t a4,
int result_shift )
+
+inlinestatic
+
+ +

Definition at line 52 of file dsps_fft2r_sc16_ansi.c.

+
53{
+
54 int result = a0 * mult_shift_const;
+
55 result += (int32_t)a1 * (int32_t)a2 + (int32_t)a3 * (int32_t)a4;
+
56 result += add_rount_mult;
+
57 result = result >> result_shift;
+
58 return (int16_t)result;
+
59}
+
+

References add_rount_mult, and mult_shift_const.

+ +

Referenced by dsps_fft2r_sc16_ansi_().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ xtfixed_bf_4()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int16_t xtfixed_bf_4 (int16_t a0,
int16_t a1,
int16_t a2,
int16_t a3,
int16_t a4,
int result_shift )
+
+inlinestatic
+
+ +

Definition at line 61 of file dsps_fft2r_sc16_ansi.c.

+
62{
+
63 int result = a0 * mult_shift_const;
+
64 result += (int32_t)a1 * (int32_t)a2 - (int32_t)a3 * (int32_t)a4;
+
65 result += add_rount_mult;
+
66 result = result >> result_shift;
+
67 return (int16_t)result;
+
68}
+
+

References add_rount_mult, and mult_shift_const.

+ +

Referenced by dsps_fft2r_sc16_ansi_().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ add_rount_mult

+ +
+
+ + + + + +
+ + + + +
const int add_rount_mult = 0x7fff
+
+static
+
+ +

Definition at line 31 of file dsps_fft2r_sc16_ansi.c.

+ +

Referenced by xtfixed_bf_1(), xtfixed_bf_2(), xtfixed_bf_3(), and xtfixed_bf_4().

+ +
+
+ +

◆ dsps_fft2r_sc16_initialized

+ +
+
+ + + + +
uint8_t dsps_fft2r_sc16_initialized = 0
+
+ +

Definition at line 26 of file dsps_fft2r_sc16_ansi.c.

+ +

Referenced by dsps_fft2r_deinit_sc16(), dsps_fft2r_init_sc16(), and dsps_fft2r_sc16_ansi_().

+ +
+
+ +

◆ dsps_fft2r_sc16_mem_allocated

+ +
+
+ + + + +
uint8_t dsps_fft2r_sc16_mem_allocated = 0
+
+ +

Definition at line 27 of file dsps_fft2r_sc16_ansi.c.

+ +

Referenced by dsps_fft2r_deinit_sc16(), and dsps_fft2r_init_sc16().

+ +
+
+ +

◆ dsps_fft_w_table_sc16

+ +
+
+ + + + +
int16_t* dsps_fft_w_table_sc16
+
+ +

Definition at line 24 of file dsps_fft2r_sc16_ansi.c.

+ +

Referenced by dsps_cplx2real_sc16_ansi(), dsps_fft2r_deinit_sc16(), and dsps_fft2r_init_sc16().

+ +
+
+ +

◆ dsps_fft_w_table_sc16_size

+ +
+
+ + + + +
int dsps_fft_w_table_sc16_size
+
+ +

Definition at line 25 of file dsps_fft2r_sc16_ansi.c.

+ +

Referenced by dsps_fft2r_init_sc16().

+ +
+
+ +

◆ mult_shift_const

+ +
+
+ + + + + +
+ + + + +
const int mult_shift_const = 0x7fff
+
+static
+
+ +

Definition at line 32 of file dsps_fft2r_sc16_ansi.c.

+ +

Referenced by xtfixed_bf_1(), xtfixed_bf_2(), xtfixed_bf_3(), and xtfixed_bf_4().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c.js b/docs/html/dsps__fft2r__sc16__ansi_8c.js new file mode 100644 index 0000000..0ecb466 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c.js @@ -0,0 +1,22 @@ +var dsps__fft2r__sc16__ansi_8c = +[ + [ "dsps_bit_rev_sc16_ansi", "dsps__fft2r__sc16__ansi_8c.html#a4f30eaf6ab6af9c67f262e11ef917361", null ], + [ "dsps_cplx2real_sc16_ansi", "dsps__fft2r__sc16__ansi_8c.html#ab8535a7b802e71380ae6da8c859288e2", null ], + [ "dsps_cplx2reC_sc16", "dsps__fft2r__sc16__ansi_8c.html#a9eedd9a59867bc7e1a967fb4a8200065", null ], + [ "dsps_fft2r_deinit_sc16", "dsps__fft2r__sc16__ansi_8c.html#a7996bd1471d803641203ec0f185809a7", null ], + [ "dsps_fft2r_init_sc16", "dsps__fft2r__sc16__ansi_8c.html#a46efac911f6eeaa0e90b5ab0e98ac815", null ], + [ "dsps_fft2r_sc16_ansi_", "dsps__fft2r__sc16__ansi_8c.html#ad32b5684903bc5e41a4fa45f05f8d2e5", null ], + [ "dsps_gen_w_r2_sc16", "dsps__fft2r__sc16__ansi_8c.html#a9b94ca984cb2a6935843f2efed9ad233", null ], + [ "reverse", "dsps__fft2r__sc16__ansi_8c.html#a9e5b644e23feecb94b24428862edcc15", null ], + [ "reverse_sc16", "dsps__fft2r__sc16__ansi_8c.html#a508869278e3572707d4b474f35fa9070", null ], + [ "xtfixed_bf_1", "dsps__fft2r__sc16__ansi_8c.html#ac91c55de4ce9256978db7f5a7458934d", null ], + [ "xtfixed_bf_2", "dsps__fft2r__sc16__ansi_8c.html#a61175e204ea9cc4392f63531f62e725e", null ], + [ "xtfixed_bf_3", "dsps__fft2r__sc16__ansi_8c.html#ab039200a07f9f0929f7d8b0bd2d1da07", null ], + [ "xtfixed_bf_4", "dsps__fft2r__sc16__ansi_8c.html#a9ca1fe0618df8608d34c3a1d7b8decca", null ], + [ "add_rount_mult", "dsps__fft2r__sc16__ansi_8c.html#a4906eb326a7d81be59fcc43aaac9b7e6", null ], + [ "dsps_fft2r_sc16_initialized", "dsps__fft2r__sc16__ansi_8c.html#a5d978a0b10610e2c87b744f1dd817def", null ], + [ "dsps_fft2r_sc16_mem_allocated", "dsps__fft2r__sc16__ansi_8c.html#a9069290b4edb90e93582de0c291be3e0", null ], + [ "dsps_fft_w_table_sc16", "dsps__fft2r__sc16__ansi_8c.html#a6c72b34db327e89cbf316bbb95af4123", null ], + [ "dsps_fft_w_table_sc16_size", "dsps__fft2r__sc16__ansi_8c.html#ae78dff2b66a92dc7ea88643a11a6463a", null ], + [ "mult_shift_const", "dsps__fft2r__sc16__ansi_8c.html#aee0b421f9168f4dad568953dca0455ef", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c__incl.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c__incl.md5 new file mode 100644 index 0000000..934f81c --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +953fee792255fe00b4c3654decb930a8 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c__incl.svg b/docs/html/dsps__fft2r__sc16__ansi_8c__incl.svg new file mode 100644 index 0000000..c41e439 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c__incl.svg @@ -0,0 +1,1130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft2r_sc16_ansi.c + + +Node1 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node1->Node11 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node1->Node15 + + + + + + + + +Node17 + + +math.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_attr.h + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +malloc.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +dsp_tests.h + + + + + +Node1->Node20 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +stdbool.h + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node11->Node14 + + + + + + + + +Node15->Node4 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + +Node20->Node6 + + + + + + + + +Node20->Node13 + + + + + + + + +Node21 + + +esp_dsp.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node2 + + + + + + + + +Node21->Node11 + + + + + + + + +Node21->Node15 + + + + + + + + +Node22 + + +dsps_dotprod.h + + + + + +Node21->Node22 + + + + + + + + +Node25 + + +dsps_math.h + + + + + +Node21->Node25 + + + + + + + + +Node37 + + +dsps_fir.h + + + + + +Node21->Node37 + + + + + + + + +Node39 + + +dsps_resampler.h + + + + + +Node21->Node39 + + + + + + + + +Node40 + + +dsps_biquad.h + + + + + +Node21->Node40 + + + + + + + + +Node42 + + +dsps_biquad_gen.h + + + + + +Node21->Node42 + + + + + + + + +Node43 + + +dsps_wind.h + + + + + +Node21->Node43 + + + + + + + + +Node50 + + +dsps_conv.h + + + + + +Node21->Node50 + + + + + + + + +Node52 + + +dsps_corr.h + + + + + +Node21->Node52 + + + + + + + + +Node53 + + +dsps_d_gen.h + + + + + +Node21->Node53 + + + + + + + + +Node54 + + +dsps_h_gen.h + + + + + +Node21->Node54 + + + + + + + + +Node55 + + +dsps_tone_gen.h + + + + + +Node21->Node55 + + + + + + + + +Node56 + + +dsps_snr.h + + + + + +Node21->Node56 + + + + + + + + +Node57 + + +dsps_sfdr.h + + + + + +Node21->Node57 + + + + + + + + +Node58 + + +dsps_fft4r.h + + + + + +Node21->Node58 + + + + + + + + +Node60 + + +dsps_dct.h + + + + + +Node21->Node60 + + + + + + + + +Node61 + + +dspm_matrix.h + + + + + +Node21->Node61 + + + + + + + + +Node72 + + +dsps_view.h + + + + + +Node21->Node72 + + + + + + + + +Node73 + + +dspi_dotprod.h + + + + + +Node21->Node73 + + + + + + + + +Node75 + + +dspi_conv.h + + + + + +Node21->Node75 + + + + + + + + +Node22->Node3 + + + + + + + + +Node37->Node3 + + + + + + + + +Node37->Node11 + + + + + + + + +Node39->Node3 + + + + + + + + +Node39->Node37 + + + + + + + + +Node40->Node3 + + + + + + + + +Node42->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node54->Node3 + + + + + + + + +Node55->Node3 + + + + + + + + +Node56->Node3 + + + + + + + + +Node57->Node3 + + + + + + + + +Node58->Node3 + + + + + + + + +Node58->Node8 + + + + + + + + +Node58->Node9 + + + + + + + + +Node60->Node3 + + + + + + + + +Node60->Node8 + + + + + + + + +Node72->Node3 + + + + + + + + +Node73->Node3 + + + + + + + + +Node73->Node15 + + + + + + + + +Node75->Node3 + + + + + + + + +Node75->Node15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c__incl_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..e2505c6 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c__incl_org.svg @@ -0,0 +1,1047 @@ + + + + + + +dsps_fft2r_sc16_ansi.c + + +Node1 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node1->Node11 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node1->Node15 + + + + + + + + +Node17 + + +math.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_attr.h + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +malloc.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +dsp_tests.h + + + + + +Node1->Node20 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +stdbool.h + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node11->Node14 + + + + + + + + +Node15->Node4 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + +Node20->Node6 + + + + + + + + +Node20->Node13 + + + + + + + + +Node21 + + +esp_dsp.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node2 + + + + + + + + +Node21->Node11 + + + + + + + + +Node21->Node15 + + + + + + + + +Node22 + + +dsps_dotprod.h + + + + + +Node21->Node22 + + + + + + + + +Node25 + + +dsps_math.h + + + + + +Node21->Node25 + + + + + + + + +Node37 + + +dsps_fir.h + + + + + +Node21->Node37 + + + + + + + + +Node39 + + +dsps_resampler.h + + + + + +Node21->Node39 + + + + + + + + +Node40 + + +dsps_biquad.h + + + + + +Node21->Node40 + + + + + + + + +Node42 + + +dsps_biquad_gen.h + + + + + +Node21->Node42 + + + + + + + + +Node43 + + +dsps_wind.h + + + + + +Node21->Node43 + + + + + + + + +Node50 + + +dsps_conv.h + + + + + +Node21->Node50 + + + + + + + + +Node52 + + +dsps_corr.h + + + + + +Node21->Node52 + + + + + + + + +Node53 + + +dsps_d_gen.h + + + + + +Node21->Node53 + + + + + + + + +Node54 + + +dsps_h_gen.h + + + + + +Node21->Node54 + + + + + + + + +Node55 + + +dsps_tone_gen.h + + + + + +Node21->Node55 + + + + + + + + +Node56 + + +dsps_snr.h + + + + + +Node21->Node56 + + + + + + + + +Node57 + + +dsps_sfdr.h + + + + + +Node21->Node57 + + + + + + + + +Node58 + + +dsps_fft4r.h + + + + + +Node21->Node58 + + + + + + + + +Node60 + + +dsps_dct.h + + + + + +Node21->Node60 + + + + + + + + +Node61 + + +dspm_matrix.h + + + + + +Node21->Node61 + + + + + + + + +Node72 + + +dsps_view.h + + + + + +Node21->Node72 + + + + + + + + +Node73 + + +dspi_dotprod.h + + + + + +Node21->Node73 + + + + + + + + +Node75 + + +dspi_conv.h + + + + + +Node21->Node75 + + + + + + + + +Node22->Node3 + + + + + + + + +Node37->Node3 + + + + + + + + +Node37->Node11 + + + + + + + + +Node39->Node3 + + + + + + + + +Node39->Node37 + + + + + + + + +Node40->Node3 + + + + + + + + +Node42->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node54->Node3 + + + + + + + + +Node55->Node3 + + + + + + + + +Node56->Node3 + + + + + + + + +Node57->Node3 + + + + + + + + +Node58->Node3 + + + + + + + + +Node58->Node8 + + + + + + + + +Node58->Node9 + + + + + + + + +Node60->Node3 + + + + + + + + +Node60->Node8 + + + + + + + + +Node72->Node3 + + + + + + + + +Node73->Node3 + + + + + + + + +Node73->Node15 + + + + + + + + +Node75->Node3 + + + + + + + + +Node75->Node15 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 new file mode 100644 index 0000000..58f08d5 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.md5 @@ -0,0 +1 @@ +13dc2d3d8c65871f855c0bee6833d507 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg new file mode 100644 index 0000000..49ee6da --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + +dsps_fft2r_init_sc16 + + +Node1 + + +dsps_fft2r_init_sc16 + + + + + +Node2 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_gen_w_r2_sc16 + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg new file mode 100644 index 0000000..00ac534 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_cgraph_org.svg @@ -0,0 +1,84 @@ + + + + + + +dsps_fft2r_init_sc16 + + +Node1 + + +dsps_fft2r_init_sc16 + + + + + +Node2 + + +dsps_bit_rev_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dsps_gen_w_r2_sc16 + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 new file mode 100644 index 0000000..4c58c5a --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.md5 @@ -0,0 +1 @@ +3574ab081b03d7d7afaa63dcb4bb90cd \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg new file mode 100644 index 0000000..d9e9653 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsps_fft2r_init_sc16 + + +Node1 + + +dsps_fft2r_init_sc16 + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg new file mode 100644 index 0000000..d83adf4 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a46efac911f6eeaa0e90b5ab0e98ac815_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsps_fft2r_init_sc16 + + +Node1 + + +dsps_fft2r_init_sc16 + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 new file mode 100644 index 0000000..f3b8ae0 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.md5 @@ -0,0 +1 @@ +75b77998b3e54adab1163496c3ee6431 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.svg new file mode 100644 index 0000000..2ed71b9 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_bit_rev_sc16_ansi + + +Node1 + + +dsps_bit_rev_sc16_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph_org.svg new file mode 100644 index 0000000..64747d8 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_bit_rev_sc16_ansi + + +Node1 + + +dsps_bit_rev_sc16_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.md5 new file mode 100644 index 0000000..0e4e966 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.md5 @@ -0,0 +1 @@ +05d2ccfc19468fc7378e32b56c2ba4c0 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.svg new file mode 100644 index 0000000..db690ec --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_bit_rev_sc16_ansi + + +Node1 + + +dsps_bit_rev_sc16_ansi + + + + + +Node2 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node1->Node5 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph_org.svg new file mode 100644 index 0000000..384446a --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a4f30eaf6ab6af9c67f262e11ef917361_icgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_bit_rev_sc16_ansi + + +Node1 + + +dsps_bit_rev_sc16_ansi + + + + + +Node2 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node1->Node5 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph.md5 new file mode 100644 index 0000000..2037a71 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph.md5 @@ -0,0 +1 @@ +b4ca5d02aff8761bf09c912091784a56 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph.svg new file mode 100644 index 0000000..37cbc02 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +xtfixed_bf_2 + + +Node1 + + +xtfixed_bf_2 + + + + + +Node2 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph_org.svg new file mode 100644 index 0000000..cb409ba --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a61175e204ea9cc4392f63531f62e725e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +xtfixed_bf_2 + + +Node1 + + +xtfixed_bf_2 + + + + + +Node2 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph.md5 new file mode 100644 index 0000000..348b355 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph.md5 @@ -0,0 +1 @@ +db546e22897d203da64797f4fa74978b \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph.svg new file mode 100644 index 0000000..89782b5 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_gen_w_r2_sc16 + + +Node1 + + +dsps_gen_w_r2_sc16 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph_org.svg new file mode 100644 index 0000000..70ac5e0 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_gen_w_r2_sc16 + + +Node1 + + +dsps_gen_w_r2_sc16 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph.md5 new file mode 100644 index 0000000..503aaeb --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph.md5 @@ -0,0 +1 @@ +5ef2e3ca33b50e61c7d81cc97ec3f05e \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph.svg new file mode 100644 index 0000000..0bd8e20 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_gen_w_r2_sc16 + + +Node1 + + +dsps_gen_w_r2_sc16 + + + + + +Node2 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph_org.svg new file mode 100644 index 0000000..a0e8abf --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9b94ca984cb2a6935843f2efed9ad233_icgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +dsps_gen_w_r2_sc16 + + +Node1 + + +dsps_gen_w_r2_sc16 + + + + + +Node2 + + +dsps_fft2r_init_sc16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph.md5 new file mode 100644 index 0000000..0fe8870 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph.md5 @@ -0,0 +1 @@ +2f88e07f89638fde0895f63b3f68e88e \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph.svg new file mode 100644 index 0000000..53a432c --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +xtfixed_bf_4 + + +Node1 + + +xtfixed_bf_4 + + + + + +Node2 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph_org.svg new file mode 100644 index 0000000..3280c5c --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9ca1fe0618df8608d34c3a1d7b8decca_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +xtfixed_bf_4 + + +Node1 + + +xtfixed_bf_4 + + + + + +Node2 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.md5 new file mode 100644 index 0000000..5c9768e --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.md5 @@ -0,0 +1 @@ +cac12c771e0a0f354155c49b58c70d2b \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.svg new file mode 100644 index 0000000..6b98d4e --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +reverse + + +Node1 + + +reverse + + + + + +Node2 + + +dsps_cplx2real_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph_org.svg new file mode 100644 index 0000000..c99a509 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9e5b644e23feecb94b24428862edcc15_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +reverse + + +Node1 + + +reverse + + + + + +Node2 + + +dsps_cplx2real_sc16_ansi + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 new file mode 100644 index 0000000..2e8b762 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.md5 @@ -0,0 +1 @@ +b92c558feab4bac6f0a98fee19e85355 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.svg new file mode 100644 index 0000000..37460ec --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_cplx2reC_sc16 + + +Node1 + + +dsps_cplx2reC_sc16 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph_org.svg new file mode 100644 index 0000000..5f9d19e --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_cplx2reC_sc16 + + +Node1 + + +dsps_cplx2reC_sc16 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.md5 new file mode 100644 index 0000000..b91165d --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.md5 @@ -0,0 +1 @@ +d1199b975b1fddb64df367e65983b967 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.svg new file mode 100644 index 0000000..2e9dcbc --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsps_cplx2reC_sc16 + + +Node1 + + +dsps_cplx2reC_sc16 + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph_org.svg new file mode 100644 index 0000000..d9040a2 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_a9eedd9a59867bc7e1a967fb4a8200065_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsps_cplx2reC_sc16 + + +Node1 + + +dsps_cplx2reC_sc16 + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph.md5 new file mode 100644 index 0000000..3eb0c76 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph.md5 @@ -0,0 +1 @@ +11d33dd3f7b9f95532950a5bb7691850 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph.svg new file mode 100644 index 0000000..ddaa972 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +xtfixed_bf_3 + + +Node1 + + +xtfixed_bf_3 + + + + + +Node2 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph_org.svg new file mode 100644 index 0000000..5c3338a --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ab039200a07f9f0929f7d8b0bd2d1da07_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +xtfixed_bf_3 + + +Node1 + + +xtfixed_bf_3 + + + + + +Node2 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph.md5 new file mode 100644 index 0000000..5052eeb --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph.md5 @@ -0,0 +1 @@ +a799a3df90612458045d673f7477b42d \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph.svg new file mode 100644 index 0000000..4ec85a3 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_cplx2real_sc16_ansi + + +Node1 + + +dsps_cplx2real_sc16_ansi + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reverse + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph_org.svg new file mode 100644 index 0000000..fd51233 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ab8535a7b802e71380ae6da8c859288e2_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_cplx2real_sc16_ansi + + +Node1 + + +dsps_cplx2real_sc16_ansi + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reverse + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph.md5 new file mode 100644 index 0000000..67191a2 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph.md5 @@ -0,0 +1 @@ +35dd38ed87b2c171c3eeaea830864ab7 \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph.svg new file mode 100644 index 0000000..2488559 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +xtfixed_bf_1 + + +Node1 + + +xtfixed_bf_1 + + + + + +Node2 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph_org.svg new file mode 100644 index 0000000..2b52d41 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ac91c55de4ce9256978db7f5a7458934d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +xtfixed_bf_1 + + +Node1 + + +xtfixed_bf_1 + + + + + +Node2 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph.md5 b/docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph.md5 new file mode 100644 index 0000000..7d67178 --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph.md5 @@ -0,0 +1 @@ +f2290e1fd9dce8f286f7de53278c168b \ No newline at end of file diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph.svg new file mode 100644 index 0000000..fbf67bf --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_fft2r_sc16_ansi_ + + +Node1 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +xtfixed_bf_1 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +xtfixed_bf_2 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xtfixed_bf_3 + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +xtfixed_bf_4 + + + + + +Node1->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph_org.svg b/docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph_org.svg new file mode 100644 index 0000000..8b196fe --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_ad32b5684903bc5e41a4fa45f05f8d2e5_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_fft2r_sc16_ansi_ + + +Node1 + + +dsps_fft2r_sc16_ansi_ + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +xtfixed_bf_1 + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +xtfixed_bf_2 + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +xtfixed_bf_3 + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +xtfixed_bf_4 + + + + + +Node1->Node6 + + + + + + + + diff --git a/docs/html/dsps__fft2r__sc16__ansi_8c_source.html b/docs/html/dsps__fft2r__sc16__ansi_8c_source.html new file mode 100644 index 0000000..2e6c11c --- /dev/null +++ b/docs/html/dsps__fft2r__sc16__ansi_8c_source.html @@ -0,0 +1,489 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft2r_sc16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft2r_sc16_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_fft2r.h"
+
16#include "dsp_common.h"
+
17#include "dsp_types.h"
+
18#include <math.h>
+
19#include "esp_attr.h"
+
20#include <malloc.h>
+
21#include "dsp_tests.h"
+
22
+
23
+ + + + +
28
+
29unsigned short reverse(unsigned short x, unsigned short N, int order);
+
30
+
31static const int add_rount_mult = 0x7fff;
+
32static const int mult_shift_const = 0x7fff; // Used to shift data << 15
+
33
+
+
34static inline int16_t xtfixed_bf_1(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
35{
+
36 int result = a0 * mult_shift_const;
+
37 result -= (int32_t)a1 * (int32_t)a2 + (int32_t)a3 * (int32_t)a4;
+
38 result += add_rount_mult;
+
39 result = result >> result_shift;
+
40 return (int16_t)result;
+
41}
+
+
42
+
+
43static inline int16_t xtfixed_bf_2(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
44{
+
45 int result = a0 * mult_shift_const;
+
46 result -= ((int32_t)a1 * (int32_t)a2 - (int32_t)a3 * (int32_t)a4);
+
47 result += add_rount_mult;
+
48 result = result >> result_shift;
+
49 return (int16_t)result;
+
50}
+
+
51
+
+
52static inline int16_t xtfixed_bf_3(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
53{
+
54 int result = a0 * mult_shift_const;
+
55 result += (int32_t)a1 * (int32_t)a2 + (int32_t)a3 * (int32_t)a4;
+
56 result += add_rount_mult;
+
57 result = result >> result_shift;
+
58 return (int16_t)result;
+
59}
+
+
60
+
+
61static inline int16_t xtfixed_bf_4(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
62{
+
63 int result = a0 * mult_shift_const;
+
64 result += (int32_t)a1 * (int32_t)a2 - (int32_t)a3 * (int32_t)a4;
+
65 result += add_rount_mult;
+
66 result = result >> result_shift;
+
67 return (int16_t)result;
+
68}
+
+
69
+
+
70esp_err_t dsps_fft2r_init_sc16(int16_t *fft_table_buff, int table_size)
+
71{
+
72 esp_err_t result = ESP_OK;
+ +
74 return result;
+
75 }
+
76 if (table_size > CONFIG_DSP_MAX_FFT_SIZE) {
+ +
78 }
+
79 if (table_size == 0) {
+
80 return result;
+
81 }
+
82 if (fft_table_buff != NULL) {
+ + +
85 }
+
86 dsps_fft_w_table_sc16 = fft_table_buff;
+
87 dsps_fft_w_table_sc16_size = table_size;
+
88 } else {
+ +
90 dsps_fft_w_table_sc16 = (int16_t *)memalign(16, CONFIG_DSP_MAX_FFT_SIZE * sizeof(int16_t));
+
91 }
+ + +
94 }
+
95
+ +
97 if (result != ESP_OK) {
+
98 return result;
+
99 }
+ +
101 if (result != ESP_OK) {
+
102 return result;
+
103 }
+ +
105 return ESP_OK;
+
106}
+
+
107
+ +
116
+
+
117esp_err_t dsps_fft2r_sc16_ansi_(int16_t *data, int N, int16_t *sc_table)
+
118{
+
119 if (!dsp_is_power_of_two(N)) {
+ +
121 }
+ + +
124 }
+
125
+
126 esp_err_t result = ESP_OK;
+
127
+
128 uint32_t *w = (uint32_t *)sc_table;
+
129 uint32_t *in_data = (uint32_t *)data;
+
130
+
131 int ie, ia, m;
+
132 sc16_t cs;// c - re, s - im
+
133 sc16_t m_data;
+
134 sc16_t a_data;
+
135
+
136 ie = 1;
+
137 for (int N2 = N / 2; N2 > 0; N2 >>= 1) {
+
138 ia = 0;
+
139 for (int j = 0; j < ie; j++) {
+
140 cs.data = w[j];
+
141 //c = w[2 * j];
+
142 //s = w[2 * j + 1];
+
143 for (int i = 0; i < N2; i++) {
+
144 m = ia + N2;
+
145 m_data.data = in_data[m];
+
146 a_data.data = in_data[ia];
+
147 //data[2 * m] = data[2 * ia] - re_temp;
+
148 //data[2 * m + 1] = data[2 * ia + 1] - im_temp;
+
149 sc16_t m1;
+
150 m1.re = xtfixed_bf_1(a_data.re, cs.re, m_data.re, cs.im, m_data.im, 16);//(a_data.re - temp.re + shift_const) >> 1;
+
151 m1.im = xtfixed_bf_2(a_data.im, cs.re, m_data.im, cs.im, m_data.re, 16);//(a_data.im - temp.im + shift_const) >> 1;
+
152 in_data[m] = m1.data;
+
153
+
154 //data[2 * ia] = data[2 * ia] + re_temp;
+
155 //data[2 * ia + 1] = data[2 * ia + 1] + im_temp;
+
156 sc16_t m2;
+
157 m2.re = xtfixed_bf_3(a_data.re, cs.re, m_data.re, cs.im, m_data.im, 16);//(a_data.re + temp.re + shift_const) >> 1;
+
158 m2.im = xtfixed_bf_4(a_data.im, cs.re, m_data.im, cs.im, m_data.re, 16);//(a_data.im + temp.im + shift_const)>>1;
+
159 in_data[ia] = m2.data;
+
160 ia++;
+
161 }
+
162 ia += N2;
+
163 }
+
164 ie <<= 1;
+
165 }
+
166 return result;
+
167}
+
+
168
+
169
+
+
170static inline unsigned short reverse_sc16(unsigned short x, unsigned short N, int order)
+
171{
+
172 unsigned short b = x;
+
173
+
174 b = (b & 0xff00) >> 8 | (b & 0x00fF) << 8;
+
175 b = (b & 0xf0F0) >> 4 | (b & 0x0f0F) << 4;
+
176 b = (b & 0xCCCC) >> 2 | (b & 0x3333) << 2;
+
177 b = (b & 0xAAAA) >> 1 | (b & 0x5555) << 1;
+
178 return b >> (16 - order);
+
179}
+
+
180
+
+ +
182{
+
183 if (!dsp_is_power_of_two(N)) {
+ +
185 }
+
186 esp_err_t result = ESP_OK;
+
187
+
188 int j, k;
+
189 uint32_t temp;
+
190 uint32_t *in_data = (uint32_t *)data;
+
191 j = 0;
+
192 for (int i = 1; i < (N - 1); i++) {
+
193 k = N >> 1;
+
194 while (k <= j) {
+
195 j -= k;
+
196 k >>= 1;
+
197 }
+
198 j += k;
+
199 if (i < j) {
+
200 temp = in_data[j];
+
201 in_data[j] = in_data[i];
+
202 in_data[i] = temp;
+
203 }
+
204 }
+
205 return result;
+
206}
+
+
207
+
+ +
209{
+
210 if (!dsp_is_power_of_two(N)) {
+ +
212 }
+
213
+
214 esp_err_t result = ESP_OK;
+
215
+
216 int i;
+
217 float e = M_PI * 2.0 / N;
+
218
+
219 for (i = 0; i < (N >> 1); i++) {
+
220 w[2 * i] = (int16_t)(INT16_MAX * cosf(i * e));
+
221 w[2 * i + 1] = (int16_t)(INT16_MAX * sinf(i * e));
+
222 }
+
223
+
224 return result;
+
225}
+
+
226
+
+ +
228{
+
229 if (!dsp_is_power_of_two(N)) {
+ +
231 }
+
232 esp_err_t result = ESP_OK;
+
233
+
234 int i;
+
235 int n2 = N << (1); // we will operate with int32 indexes
+
236 uint32_t *in_data = (uint32_t *)data;
+
237
+
238 sc16_t kl;
+
239 sc16_t kh;
+
240 sc16_t nl;
+
241 sc16_t nh;
+
242
+
243 for (i = 0; i < (N / 4); i++) {
+
244 kl.data = in_data[i + 1];
+
245 nl.data = in_data[N - i - 1];
+
246 kh.data = in_data[i + 1 + N / 2];
+
247 nh.data = in_data[N - i - 1 - N / 2];
+
248
+
249 data[i * 2 + 0 + 2] = kl.re + nl.re;
+
250 data[i * 2 + 1 + 2] = kl.im - nl.im;
+
251
+
252 data[n2 - i * 2 - 1 - N] = kh.re + nh.re;
+
253 data[n2 - i * 2 - 2 - N] = kh.im - nh.im;
+
254
+
255 data[i * 2 + 0 + 2 + N] = kl.im + nl.im;
+
256 data[i * 2 + 1 + 2 + N] = kl.re - nl.re;
+
257
+
258 data[n2 - i * 2 - 1] = kh.im + nh.im;
+
259 data[n2 - i * 2 - 2] = kh.re - nh.re;
+
260 }
+
261 data[N] = data[1];
+
262 data[1] = 0;
+
263 data[N + 1] = 0;
+
264
+
265 return result;
+
266}
+
+
267
+
+ +
269{
+
270
+
271 int order = dsp_power_of_two(N);
+ +
273 sc16_t *result = (sc16_t *)data;
+
274 // Original formula...
+
275 // result[0].re = result[0].re + result[0].im;
+
276 // result[N].re = result[0].re - result[0].im;
+
277 // result[0].im = 0;
+
278 // result[N].im = 0;
+
279 // Optimized one:
+
280 int16_t tmp_re = result[0].re;
+
281 result[0].re = (tmp_re + result[0].im) >> 1;
+
282 result[0].im = (tmp_re - result[0].im) >> 1;
+
283
+
284 sc16_t f1k, f2k;
+
285 for (int k = 1; k <= N / 2 ; ++k ) {
+
286 sc16_t fpk = result[k];
+
287 sc16_t fpnk;
+
288 fpnk.re = result[N - k].re;
+
289 fpnk.im = result[N - k].im;
+
290 f1k.re = fpk.re + fpnk.re;
+
291 f1k.im = fpk.im - fpnk.im;
+
292 f2k.re = fpk.re - fpnk.re;
+
293 f2k.im = fpk.im + fpnk.im;
+
294
+
295 int table_index = reverse(k, N, order);
+
296
+
297 // float c = -dsps_fft_w_table_fc32[table_index*2+1];
+
298 // float s = -dsps_fft_w_table_fc32[table_index*2+0];
+
299 sc16_t w = table[table_index];
+
300
+
301 sc16_t tw;
+
302 {
+
303 int re = (w.re * f2k.im - w.im * f2k.re) >> 15;
+
304 int im = (+w.re * f2k.re + w.im * f2k.im) >> 15;
+
305 tw.re = re;
+
306 tw.im = im;
+
307 }
+
308
+
309 result[k].re = (f1k.re + tw.re) >> 2;
+
310 result[k].im = (f1k.im - tw.im) >> 2;
+
311 result[N - k].re = (f1k.re - tw.re) >> 2;
+
312 result[N - k].im = -(f1k.im + tw.im) >> 2;
+
313 }
+
314 return ESP_OK;
+
315}
+
+ +
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_UNINITIALIZED
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_REINITIALIZED
+ +
#define memalign(align_, size_)
Definition dsp_tests.h:35
+ +
union sc16_u sc16_t
+ +
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_sc16(int16_t *fft_table_buff, int table_size)
+
static const int add_rount_mult
+
esp_err_t dsps_bit_rev_sc16_ansi(int16_t *data, int N)
+
static unsigned short reverse_sc16(unsigned short x, unsigned short N, int order)
+
uint8_t dsps_fft2r_sc16_initialized
+
static int16_t xtfixed_bf_2(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
int16_t * dsps_fft_w_table_sc16
+
void dsps_fft2r_deinit_sc16()
+
uint8_t dsps_fft2r_sc16_mem_allocated
+
esp_err_t dsps_gen_w_r2_sc16(int16_t *w, int N)
+
static int16_t xtfixed_bf_4(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
unsigned short reverse(unsigned short x, unsigned short N, int order)
+
esp_err_t dsps_cplx2reC_sc16(int16_t *data, int N)
+
static int16_t xtfixed_bf_3(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
esp_err_t dsps_cplx2real_sc16_ansi(int16_t *data, int N)
Convert complex FFT result to real array.
+
static int16_t xtfixed_bf_1(int16_t a0, int16_t a1, int16_t a2, int16_t a3, int16_t a4, int result_shift)
+
esp_err_t dsps_fft2r_sc16_ansi_(int16_t *data, int N, int16_t *sc_table)
+
int dsps_fft_w_table_sc16_size
+
static const int mult_shift_const
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
static float data[128 *2]
Definition test_fft2r.c:34
+
float x[1024]
Definition test_fir.c:10
+
#define N
Definition test_mmult.c:13
+
const int m
Definition test_mmult.c:16
+
const int k
Definition test_mmult.c:18
+
int16_t re
Definition dsp_types.h:10
+
uint32_t data
Definition dsp_types.h:13
+
int16_t im
Definition dsp_types.h:11
+
+
+
+ + + + diff --git a/docs/html/dsps__fft4r_8h.html b/docs/html/dsps__fft4r_8h.html new file mode 100644 index 0000000..965a3cb --- /dev/null +++ b/docs/html/dsps__fft4r_8h.html @@ -0,0 +1,1347 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r.h File Reference
+
+
+
#include "dsp_err.h"
+#include "sdkconfig.h"
+#include "dsps_fft_tables.h"
+#include "dsps_fft4r_platform.h"
+
+Include dependency graph for dsps_fft4r.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + +

+Macros

#define dsps_fft4r_fc32_ansi(data, N)
#define dsps_fft4r_fc32_ae32(data, N)
#define dsps_fft4r_fc32_aes3(data, N)
#define dsps_fft4r_fc32_arp4(data, N)
#define dsps_cplx2real_fc32_ansi(data, N)
#define dsps_cplx2real_fc32_ae32(data, N)
#define dsps_fft4r_fc32   dsps_fft4r_fc32_ansi
#define dsps_fft4r_sc16   dsps_fft4r_sc16_ansi
#define dsps_bit_rev4r_fc32   dsps_bit_rev4r_fc32
#define dsps_cplx2real_fc32   dsps_cplx2real_fc32_ansi
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_gen_bitrev4r_table (int N, int step, char *name_ext)
esp_err_t dsps_fft4r_init_fc32 (float *fft_table_buff, int max_fft_size)
 init fft tables
void dsps_fft4r_deinit_fc32 (void)
 deinit fft tables
esp_err_t dsps_fft4r_fc32_ansi_ (float *data, int N, float *table, int table_size)
 complex FFT of radix 4
esp_err_t dsps_fft4r_fc32_ae32_ (float *data, int N, float *table, int table_size)
esp_err_t dsps_fft4r_fc32_aes3_ (float *data, int N, float *table, int table_size)
esp_err_t dsps_fft4r_fc32_arp4_ (float *data, int N, float *table, int table_size)
esp_err_t dsps_bit_rev4r_fc32 (float *data, int N)
 bit reverse operation for the complex input array radix-4
esp_err_t dsps_bit_rev4r_fc32_ae32 (float *data, int N)
esp_err_t dsps_bit_rev4r_direct_fc32_ansi (float *data, int N)
esp_err_t dsps_bit_rev4r_sc16_ansi (int16_t *data, int N)
esp_err_t dsps_cplx2real_fc32_ansi_ (float *data, int N, float *table, int table_size)
 Convert FFT result to complex array for real input data.
esp_err_t dsps_cplx2real_fc32_ae32_ (float *data, int N, float *table, int table_size)
+ + + + + + + +

+Variables

float * dsps_fft4r_w_table_fc32
int dsps_fft4r_w_table_size
uint8_t dsps_fft4r_initialized
int16_t * dsps_fft4r_w_table_sc16
int dsps_fft4r_w_table_sc16_size
uint8_t dsps_fft4r_sc16_initialized
+

Macro Definition Documentation

+ +

◆ dsps_bit_rev4r_fc32

+ +
+
+ + + + +
#define dsps_bit_rev4r_fc32   dsps_bit_rev4r_fc32
+
+ +

Definition at line 184 of file dsps_fft4r.h.

+ +

Referenced by perform_fft().

+ +
+
+ +

◆ dsps_cplx2real_fc32

+ +
+
+ + + + +
#define dsps_cplx2real_fc32   dsps_cplx2real_fc32_ansi
+
+ +

Definition at line 185 of file dsps_fft4r.h.

+ +

Referenced by perform_fft().

+ +
+
+ +

◆ dsps_cplx2real_fc32_ae32

+ +
+
+ + + + + + + + + + + +
#define dsps_cplx2real_fc32_ae32( data,
N )
+
+Value:
+
esp_err_t dsps_cplx2real_fc32_ae32_(float *data, int N, float *table, int table_size)
+
int dsps_fft4r_w_table_size
+
float * dsps_fft4r_w_table_fc32
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+

Definition at line 150 of file dsps_fft4r.h.

+ +
+
+ +

◆ dsps_cplx2real_fc32_ansi

+ +
+
+ + + + + + + + + + + +
#define dsps_cplx2real_fc32_ansi( data,
N )
+
+Value:
+
esp_err_t dsps_cplx2real_fc32_ansi_(float *data, int N, float *table, int table_size)
Convert FFT result to complex array for real input data.
+
+

Definition at line 149 of file dsps_fft4r.h.

+ +
+
+ +

◆ dsps_fft4r_fc32

+ +
+
+ + + + +
#define dsps_fft4r_fc32   dsps_fft4r_fc32_ansi
+
+ +

Definition at line 182 of file dsps_fft4r.h.

+ +

Referenced by perform_fft().

+ +
+
+ +

◆ dsps_fft4r_fc32_ae32

+ +
+
+ + + + + + + + + + + +
#define dsps_fft4r_fc32_ae32( data,
N )
+
+Value:
+
esp_err_t dsps_fft4r_fc32_ae32_(float *data, int N, float *table, int table_size)
+
+

Definition at line 98 of file dsps_fft4r.h.

+ +
+
+ +

◆ dsps_fft4r_fc32_aes3

+ +
+
+ + + + + + + + + + + +
#define dsps_fft4r_fc32_aes3( data,
N )
+
+Value:
+
esp_err_t dsps_fft4r_fc32_aes3_(float *data, int N, float *table, int table_size)
+
+

Definition at line 99 of file dsps_fft4r.h.

+ +
+
+ +

◆ dsps_fft4r_fc32_ansi

+ +
+
+ + + + + + + + + + + +
#define dsps_fft4r_fc32_ansi( data,
N )
+
+Value:
+
esp_err_t dsps_fft4r_fc32_ansi_(float *data, int length, float *table, int table_size)
complex FFT of radix 4
+
+

Definition at line 97 of file dsps_fft4r.h.

+ +
+
+ +

◆ dsps_fft4r_fc32_arp4

+ +
+
+ + + + + + + + + + + +
#define dsps_fft4r_fc32_arp4( data,
N )
+
+Value:
+
esp_err_t dsps_fft4r_fc32_arp4_(float *data, int N, float *table, int table_size)
+
+

Definition at line 100 of file dsps_fft4r.h.

+ +
+
+ +

◆ dsps_fft4r_sc16

+ +
+
+ + + + +
#define dsps_fft4r_sc16   dsps_fft4r_sc16_ansi
+
+ +

Definition at line 183 of file dsps_fft4r.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_bit_rev4r_direct_fc32_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev4r_direct_fc32_ansi (float * data,
int N )
+
+ +

Definition at line 101 of file dsps_fft4r_fc32_ansi.c.

+
102{
+
103 if (!dsp_is_power_of_two(N)) {
+ +
105 }
+
106 if (0 == dsps_fft4r_initialized) {
+ +
108 }
+
109 esp_err_t result = ESP_OK;
+
110 int log2N = dsp_power_of_two(N);
+
111 int log4N = log2N >> 1;
+
112 if ((log2N & 0x01) != 0) {
+ +
114 }
+
115 float r_temp, i_temp;
+
116 for (int i = 0; i < N; i++) {
+
117 int cnt;
+
118 int xx;
+
119 int bits2;
+
120 xx = 0;
+
121 cnt = log4N;
+
122 int j = i;
+
123 while (cnt > 0) {
+
124 bits2 = j & 0x3;
+
125 xx = (xx << 2) + bits2;
+
126 j = j >> 2;
+
127 cnt--;
+
128 }
+
129 if (i < xx) {
+
130 r_temp = data[i * 2 + 0];
+
131 i_temp = data[i * 2 + 1];
+
132 data[i * 2 + 0] = data[xx * 2 + 0];
+
133 data[i * 2 + 1] = data[xx * 2 + 1];
+
134 data[xx * 2 + 0] = r_temp;
+
135 data[xx * 2 + 1] = i_temp;
+
136 }
+
137 }
+
138 return result;
+
139}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
#define ESP_ERR_DSP_UNINITIALIZED
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
uint8_t dsps_fft4r_initialized
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+

References data, dsp_is_power_of_two(), dsp_power_of_two(), dsps_fft4r_initialized, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, and N.

+ +

Referenced by dsps_bit_rev4r_fc32().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_bit_rev4r_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev4r_fc32 (float * data,
int N )
+
+ +

bit reverse operation for the complex input array radix-4

+

Bit reverse operation for the complex input array The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]datainput/ complex array. An elements located: Re[0], Im[0], ... Re[N-1], Im[N-1] result of FFT will be stored to this array.
[in]NNumber of complex elements in input array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 299 of file dsps_fft4r_fc32_ansi.c.

+
300{
+
301 uint16_t *table;
+
302 uint16_t table_size;
+
303 switch (N) {
+
304 case 16:
+
305 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[0];
+
306 table_size = dsps_fft4r_rev_tables_fc32_size[0];
+
307 break;
+
308 case 64:
+
309 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[1];
+
310 table_size = dsps_fft4r_rev_tables_fc32_size[1];
+
311 break;
+
312 case 256:
+
313 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[2];
+
314 table_size = dsps_fft4r_rev_tables_fc32_size[2];
+
315 break;
+
316 case 1024:
+
317 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[3];
+
318 table_size = dsps_fft4r_rev_tables_fc32_size[3];
+
319 break;
+
320 case 4096:
+
321 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[4];
+
322 table_size = dsps_fft4r_rev_tables_fc32_size[4];
+
323 break;
+
324
+
325 default:
+ +
327 break;
+
328 }
+
329
+
330 return dsps_bit_rev_lookup_fc32(data, table_size, table);
+
331}
+
#define dsps_bit_rev_lookup_fc32
Definition dsps_fft2r.h:252
+
uint16_t * dsps_fft4r_rev_tables_fc32[]
+
const uint16_t dsps_fft4r_rev_tables_fc32_size[]
+
esp_err_t dsps_bit_rev4r_direct_fc32_ansi(float *data, int N)
+
+

References data, dsps_bit_rev4r_direct_fc32_ansi(), dsps_bit_rev_lookup_fc32, dsps_fft4r_rev_tables_fc32, dsps_fft4r_rev_tables_fc32_size, and N.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_bit_rev4r_fc32_ae32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev4r_fc32_ae32 (float * data,
int N )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_bit_rev4r_sc16_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev4r_sc16_ansi (int16_t * data,
int N )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_cplx2real_fc32_ae32_()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx2real_fc32_ae32_ (float * data,
int N,
float * table,
int table_size )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_cplx2real_fc32_ansi_()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx2real_fc32_ansi_ (float * data,
int N,
float * table,
int table_size )
+
+ +

Convert FFT result to complex array for real input data.

+

Convert FFT result of complex FFT for real input to complex output. This function have to be used if FFT used to process real data. This function use tabels inside and can be used only it dsps_fft4r_init_fc32(...) was called and FFT4 was initialized. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
[in,out]dataInput complex array and result of FFT2R/FFT4R. input has size of 2*N, because contains real and imaginary part. result will be stored to the same array. Input1: input[0..N-1] if the result is complex Re[0], Im[0]....Re[N-1], Im[N-1], and input[0...2*n-1] if result is real re[0], re[1],...,re[2*N-1].
[in]NNumber of complex elements in input array
[in]tablepointer to sin/cos table
[in]table_sizesize of the sin/cos table
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 218 of file dsps_fft4r_fc32_ansi.c.

+
219{
+
220 if (0 == dsps_fft4r_initialized) {
+ +
222 }
+
223 int wind_step = table_size / (N);
+
224 fc32_t *result = (fc32_t *)data;
+
225 // Original formula...
+
226 // result[0].re = result[0].re + result[0].im;
+
227 // result[N].re = result[0].re - result[0].im;
+
228 // result[0].im = 0;
+
229 // result[N].im = 0;
+
230 // Optimized one:
+
231 float tmp_re = result[0].re;
+
232 result[0].re = tmp_re + result[0].im;
+
233 result[0].im = tmp_re - result[0].im;
+
234
+
235 fc32_t f1k, f2k;
+
236 for (int k = 1; k <= N / 2 ; k++ ) {
+
237 fc32_t fpk = result[k];
+
238 fc32_t fpnk = result[N - k];
+
239 f1k.re = fpk.re + fpnk.re;
+
240 f1k.im = fpk.im - fpnk.im;
+
241 f2k.re = fpk.re - fpnk.re;
+
242 f2k.im = fpk.im + fpnk.im;
+
243
+
244 float c = -table[k * wind_step + 1];
+
245 float s = -table[k * wind_step + 0];
+
246 fc32_t tw;
+
247 tw.re = c * f2k.re - s * f2k.im;
+
248 tw.im = s * f2k.re + c * f2k.im;
+
249
+
250 result[k].re = 0.5 * (f1k.re + tw.re);
+
251 result[k].im = 0.5 * (f1k.im + tw.im);
+
252 result[N - k].re = 0.5 * (f1k.re - tw.re);
+
253 result[N - k].im = 0.5 * (tw.im - f1k.im);
+
254 }
+
255 return ESP_OK;
+
256}
+
union fc32_u fc32_t
+
const int k
Definition test_mmult.c:18
+
float re
Definition dsp_types.h:18
+
float im
Definition dsp_types.h:19
+
+

References data, dsps_fft4r_initialized, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, fc32_u::im, k, N, and fc32_u::re.

+ +
+
+ +

◆ dsps_fft4r_deinit_fc32()

+ +
+
+ + + + + + + +
void dsps_fft4r_deinit_fc32 (void )
+
+ +

deinit fft tables

+

Free resources of Complex FFT Radix-4. This function delete coefficients table if it was allocated by dsps_fft4r_init_fc32. The implementation use ANSI C and could be compiled and run on any platform

+ +

Definition at line 85 of file dsps_fft4r_fc32_ansi.c.

+
86{
+ + +
89 }
+
90 if (dsps_fft4r_ram_rev_table != NULL) {
+ + +
93 }
+
94 // Re init bitrev table for next use
+ +
96
+ + +
99}
+
void dsps_fft4r_rev_tables_init_fc32(void)
+
uint16_t * dsps_fft4r_ram_rev_table
+
uint8_t dsps_fft4r_mem_allocated
+
+

References dsps_fft4r_initialized, dsps_fft4r_mem_allocated, dsps_fft4r_ram_rev_table, dsps_fft4r_rev_tables_init_fc32(), and dsps_fft4r_w_table_fc32.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft4r_fc32_ae32_()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fft4r_fc32_ae32_ (float * data,
int N,
float * table,
int table_size )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_fft4r_fc32_aes3_()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fft4r_fc32_aes3_ (float * data,
int N,
float * table,
int table_size )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_fft4r_fc32_ansi_()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fft4r_fc32_ansi_ (float * data,
int N,
float * table,
int table_size )
+
+ +

complex FFT of radix 4

+

Complex FFT of radix 4 The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
[in,out]datainput/output complex array. An elements located: Re[0], Im[0], ... Re[N-1], Im[N-1] result of FFT will be stored to this array.
[in]NNumber of complex elements in input array
[in]tablepointer to sin/cos table
[in]table_sizesize of the sin/cos table
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+

radix 4

+ +

Definition at line 141 of file dsps_fft4r_fc32_ansi.c.

+
142{
+
143 if (0 == dsps_fft4r_initialized) {
+ +
145 }
+
146
+
147 fc32_t bfly[4];
+
148 int log2N = dsp_power_of_two(length);
+
149 int log4N = log2N >> 1;
+
150 if ((log2N & 0x01) != 0) {
+ +
152 }
+
153
+
154 int m = 2;
+
155 int wind_step = table_size / length;
+
156 while (1) {
+
157 if (log4N == 0) {
+
158 break;
+
159 }
+
160 length = length >> 2;
+
161 for (int j = 0; j < m; j += 2) { // j: which FFT of this step
+
162 int start_index = j * (length << 1); // n: n-point FFT
+
163
+
164 fc32_t *ptrc0 = (fc32_t *)data + start_index;
+
165 fc32_t *ptrc1 = ptrc0 + length;
+
166 fc32_t *ptrc2 = ptrc1 + length;
+
167 fc32_t *ptrc3 = ptrc2 + length;
+
168
+
169 fc32_t *winc0 = (fc32_t *)table;
+
170 fc32_t *winc1 = winc0;
+
171 fc32_t *winc2 = winc0;
+
172
+
173 for (int k = 0; k < length; k++) {
+
174 fc32_t in0 = *ptrc0;
+
175 fc32_t in2 = *ptrc2;
+
176 fc32_t in1 = *ptrc1;
+
177 fc32_t in3 = *ptrc3;
+
178
+
179 bfly[0].re = in0.re + in2.re + in1.re + in3.re;
+
180 bfly[0].im = in0.im + in2.im + in1.im + in3.im;
+
181
+
182 bfly[1].re = in0.re - in2.re + in1.im - in3.im;
+
183 bfly[1].im = in0.im - in2.im - in1.re + in3.re;
+
184
+
185 bfly[2].re = in0.re + in2.re - in1.re - in3.re;
+
186 bfly[2].im = in0.im + in2.im - in1.im - in3.im;
+
187
+
188 bfly[3].re = in0.re - in2.re - in1.im + in3.im;
+
189 bfly[3].im = in0.im - in2.im + in1.re - in3.re;
+
190
+
191
+
192
+
193 *ptrc0 = bfly[0];
+
194 ptrc1->re = bfly[1].re * winc0->re + bfly[1].im * winc0->im;
+
195 ptrc1->im = bfly[1].im * winc0->re - bfly[1].re * winc0->im;
+
196 ptrc2->re = bfly[2].re * winc1->re + bfly[2].im * winc1->im;
+
197 ptrc2->im = bfly[2].im * winc1->re - bfly[2].re * winc1->im;
+
198 ptrc3->re = bfly[3].re * winc2->re + bfly[3].im * winc2->im;
+
199 ptrc3->im = bfly[3].im * winc2->re - bfly[3].re * winc2->im;
+
200
+
201 winc0 += 1 * wind_step;
+
202 winc1 += 2 * wind_step;
+
203 winc2 += 3 * wind_step;
+
204
+
205 ptrc0++;
+
206 ptrc1++;
+
207 ptrc2++;
+
208 ptrc3++;
+
209 }
+
210 }
+
211 m = m << 2;
+
212 wind_step = wind_step << 2;
+
213 log4N--;
+
214 }
+
215 return ESP_OK;
+
216}
+
const int m
Definition test_mmult.c:16
+
+

References data, dsp_power_of_two(), dsps_fft4r_initialized, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, fc32_u::im, k, m, and fc32_u::re.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft4r_fc32_arp4_()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fft4r_fc32_arp4_ (float * data,
int N,
float * table,
int table_size )
+
+ +

References data, and N.

+ +
+
+ +

◆ dsps_fft4r_init_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_fft4r_init_fc32 (float * fft_table_buff,
int max_fft_size )
+
+ +

init fft tables

+

Initialization of Complex FFT Radix-4. This function initialize coefficients table. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]fft_table_buffpointer to floating point buffer where sin/cos table will be stored if this parameter set to NULL, and table_size value is more then 0, then dsps_fft4r_init_fc32 will allocate buffer internally
[in]max_fft_sizemaximum fft size. The buffer for sin/cos table that will be used for radix-4 it's four times maximum length of FFT. if fft_table_buff is NULL and table_size is not 0, buffer will be allocated internally. If table_size is 0, buffer will not be allocated.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_PARAM_OUTOFRANGE if table_size > CONFIG_DSP_MAX_FFT_SIZE
  • +
  • ESP_ERR_DSP_REINITIALIZED if buffer already allocated internally by other function
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 34 of file dsps_fft4r_fc32_ansi.c.

+
35{
+
36 esp_err_t result = ESP_OK;
+
37 if (dsps_fft4r_initialized != 0) {
+
38 return result;
+
39 }
+
40 if (max_fft_size > CONFIG_DSP_MAX_FFT_SIZE) {
+ +
42 }
+
43 if (max_fft_size == 0) {
+
44 return result;
+
45 }
+
46 if (fft_table_buff != NULL) {
+ + +
49 }
+
50 dsps_fft4r_w_table_fc32 = fft_table_buff;
+
51 dsps_fft4r_w_table_size = max_fft_size * 2;
+
52 } else {
+ +
54 dsps_fft4r_w_table_fc32 = (float *)malloc(max_fft_size * sizeof(float) * 4);
+
55 if (NULL == dsps_fft4r_w_table_fc32) {
+ +
57 }
+
58 }
+
59 dsps_fft4r_w_table_size = max_fft_size * 2;
+ +
61 }
+
62
+
63 // FFT ram_rev table allocated
+
64 int pow = dsp_power_of_two(max_fft_size) >> 1;
+
65 if ((pow >= 2) && (pow <= 6)) {
+
66 dsps_fft4r_ram_rev_table = (uint16_t *)malloc(2 * dsps_fft4r_rev_tables_fc32_size[pow - 2] * sizeof(uint16_t));
+
67 if (NULL == dsps_fft4r_ram_rev_table) {
+ +
69 }
+
70 memcpy(dsps_fft4r_ram_rev_table, dsps_fft4r_rev_tables_fc32[pow - 2], 2 * dsps_fft4r_rev_tables_fc32_size[pow - 2] * sizeof(uint16_t));
+ +
72 }
+
73
+
74 for (int i = 0; i < dsps_fft4r_w_table_size; i++) {
+
75 float angle = 2 * M_PI * i / (float)dsps_fft4r_w_table_size;
+
76 dsps_fft4r_w_table_fc32[2 * i + 0] = cosf(angle);
+
77 dsps_fft4r_w_table_fc32[2 * i + 1] = sinf(angle);
+
78 }
+
79
+ +
81
+
82 return ESP_OK;
+
83}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
#define M_PI
Definition esp_err.h:26
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsp_power_of_two(), dsps_fft4r_initialized, dsps_fft4r_mem_allocated, dsps_fft4r_ram_rev_table, dsps_fft4r_rev_tables_fc32, dsps_fft4r_rev_tables_fc32_size, dsps_fft4r_w_table_fc32, dsps_fft4r_w_table_size, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and M_PI.

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_gen_bitrev4r_table()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_gen_bitrev4r_table (int N,
int step,
char * name_ext )
+
+ +

Definition at line 258 of file dsps_fft4r_fc32_ansi.c.

+
259{
+
260 if (!dsp_is_power_of_two(N)) {
+ +
262 }
+
263
+
264 int items_count = 0;
+
265 ESP_LOGD(TAG, "const uint16_t bitrev4r_table_%i_%s[] = { ", N, name_ext);
+
266 int log2N = dsp_power_of_two(N);
+
267 int log4N = log2N >> 1;
+
268
+
269 for (int i = 1; i < N - 1; i++) {
+
270 int cnt;
+
271 int xx;
+
272 int bits2;
+
273 xx = 0;
+
274 cnt = log4N;
+
275 int j = i;
+
276 while (cnt > 0) {
+
277 bits2 = j & 0x3;
+
278 xx = (xx << 2) + bits2;
+
279 j = j >> 2;
+
280 cnt--;
+
281 }
+
282 if (i < xx) {
+
283 ESP_LOGD(TAG, "%i, %i, ", i * step, xx * step);
+
284 items_count++;
+
285 if ((items_count % 8) == 0) {
+
286 ESP_LOGD(TAG, " ");
+
287 }
+
288 }
+
289 }
+
290
+
291 ESP_LOGD(TAG, "};");
+
292 ESP_LOGD(TAG, "const uint16_t bitrev4r_table_%i_%s_size = %i;\n", N, name_ext, items_count);
+
293
+
294 ESP_LOGD(TAG, "extern const uint16_t bitrev4r_table_%i_%s[];", N, name_ext);
+
295 ESP_LOGD(TAG, "extern const uint16_t bitrev4r_table_%i_%s_size;\n", N, name_ext);
+
296 return ESP_OK;
+
297}
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References dsp_is_power_of_two(), dsp_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_LOGD, ESP_OK, N, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ dsps_fft4r_initialized

+ +
+
+ + + + + +
+ + + + +
uint8_t dsps_fft4r_initialized
+
+extern
+
+
+ +

◆ dsps_fft4r_sc16_initialized

+ +
+
+ + + + + +
+ + + + +
uint8_t dsps_fft4r_sc16_initialized
+
+extern
+
+ +
+
+ +

◆ dsps_fft4r_w_table_fc32

+ +
+
+ + + + + +
+ + + + +
float* dsps_fft4r_w_table_fc32
+
+extern
+
+ +

Definition at line 27 of file dsps_fft4r_fc32_ansi.c.

+ +

Referenced by dsps_fft4r_deinit_fc32(), and dsps_fft4r_init_fc32().

+ +
+
+ +

◆ dsps_fft4r_w_table_sc16

+ +
+
+ + + + + +
+ + + + +
int16_t* dsps_fft4r_w_table_sc16
+
+extern
+
+ +
+
+ +

◆ dsps_fft4r_w_table_sc16_size

+ +
+
+ + + + + +
+ + + + +
int dsps_fft4r_w_table_sc16_size
+
+extern
+
+ +
+
+ +

◆ dsps_fft4r_w_table_size

+ +
+
+ + + + + +
+ + + + +
int dsps_fft4r_w_table_size
+
+extern
+
+ +

Definition at line 28 of file dsps_fft4r_fc32_ansi.c.

+ +

Referenced by dsps_fft4r_init_fc32().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft4r_8h.js b/docs/html/dsps__fft4r_8h.js new file mode 100644 index 0000000..60eccb0 --- /dev/null +++ b/docs/html/dsps__fft4r_8h.js @@ -0,0 +1,32 @@ +var dsps__fft4r_8h = +[ + [ "dsps_bit_rev4r_fc32", "dsps__fft4r_8h.html#a595d7f40f78c944879dd70a2b188317f", null ], + [ "dsps_cplx2real_fc32", "dsps__fft4r_8h.html#a95b4277f7fb8ac8077a730dfbb016841", null ], + [ "dsps_cplx2real_fc32_ae32", "dsps__fft4r_8h.html#a17536c2e93a145139df9380a6b4fb472", null ], + [ "dsps_cplx2real_fc32_ansi", "dsps__fft4r_8h.html#a17f2bb5234b4f7d074c13261a61c8579", null ], + [ "dsps_fft4r_fc32", "dsps__fft4r_8h.html#aee6c814f5414370c6a01a0ef11850710", null ], + [ "dsps_fft4r_fc32_ae32", "dsps__fft4r_8h.html#a67e69bb566518398ef170a81ccec879e", null ], + [ "dsps_fft4r_fc32_aes3", "dsps__fft4r_8h.html#a21d93a44058d1f6e2e6e98544d5a0a39", null ], + [ "dsps_fft4r_fc32_ansi", "dsps__fft4r_8h.html#add865a5578105a8dcc75f6c1ff9db459", null ], + [ "dsps_fft4r_fc32_arp4", "dsps__fft4r_8h.html#ae20edd3b5fc4423a31d6f7401a4cdae8", null ], + [ "dsps_fft4r_sc16", "dsps__fft4r_8h.html#a0fc122843ddc80563211a7cecfde64e5", null ], + [ "dsps_bit_rev4r_direct_fc32_ansi", "dsps__fft4r_8h.html#acb8989c84ce30360b587beea893f0af9", null ], + [ "dsps_bit_rev4r_fc32", "dsps__fft4r_8h.html#a3fdee63a8e14ed691fe581929581f8a6", null ], + [ "dsps_bit_rev4r_fc32_ae32", "dsps__fft4r_8h.html#aff806a275737ee22cc93bebadd0783b6", null ], + [ "dsps_bit_rev4r_sc16_ansi", "dsps__fft4r_8h.html#aac196d0fea4918bcb789274939dec88b", null ], + [ "dsps_cplx2real_fc32_ae32_", "dsps__fft4r_8h.html#a71a32bcea7a21cdf3b097305489f537a", null ], + [ "dsps_cplx2real_fc32_ansi_", "dsps__fft4r_8h.html#a14dadf239688bb5e2c280d0968b78520", null ], + [ "dsps_fft4r_deinit_fc32", "dsps__fft4r_8h.html#a80f24fd982d851501a43e0af7795822d", null ], + [ "dsps_fft4r_fc32_ae32_", "dsps__fft4r_8h.html#a3e4fe03484b385ec76cfdcb393d78059", null ], + [ "dsps_fft4r_fc32_aes3_", "dsps__fft4r_8h.html#a29e43e7746a68eef788f29dd613e69d8", null ], + [ "dsps_fft4r_fc32_ansi_", "dsps__fft4r_8h.html#a0fde17af510bb2459b79ababe20c2fe5", null ], + [ "dsps_fft4r_fc32_arp4_", "dsps__fft4r_8h.html#aab8135a81d08cdc7c087b187924dfde0", null ], + [ "dsps_fft4r_init_fc32", "dsps__fft4r_8h.html#a2372c5dae54caef87742b9e8e2c30a48", null ], + [ "dsps_gen_bitrev4r_table", "dsps__fft4r_8h.html#ac53cd559aeb273a1f8cc85859e8c3b57", null ], + [ "dsps_fft4r_initialized", "dsps__fft4r_8h.html#ae63edc0e0d0e22898811c3347049cf7f", null ], + [ "dsps_fft4r_sc16_initialized", "dsps__fft4r_8h.html#a526c95ca52b22c0234b0940658237ea6", null ], + [ "dsps_fft4r_w_table_fc32", "dsps__fft4r_8h.html#a80b91be5c14c7bebe385456f34804fef", null ], + [ "dsps_fft4r_w_table_sc16", "dsps__fft4r_8h.html#a68f53a4f7f0266e404b347b7ca84221e", null ], + [ "dsps_fft4r_w_table_sc16_size", "dsps__fft4r_8h.html#a4a63ec0891394a6689dd9ae3d4b0aaaa", null ], + [ "dsps_fft4r_w_table_size", "dsps__fft4r_8h.html#a64019a34c2fb126ec4bce1810d09cada", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h__dep__incl.md5 b/docs/html/dsps__fft4r_8h__dep__incl.md5 new file mode 100644 index 0000000..312b71c --- /dev/null +++ b/docs/html/dsps__fft4r_8h__dep__incl.md5 @@ -0,0 +1 @@ +3d05d3aa4c729cd16ff523ea792f74c1 \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h__dep__incl.svg b/docs/html/dsps__fft4r_8h__dep__incl.svg new file mode 100644 index 0000000..d60cd06 --- /dev/null +++ b/docs/html/dsps__fft4r_8h__dep__incl.svg @@ -0,0 +1,752 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft4r.h + + +Node1 + + +dsps_fft4r.h + + + + + +Node2 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dsps_fird_init_s16.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +graphics_support.cpp + + + + + +Node27->Node28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h__dep__incl_org.svg b/docs/html/dsps__fft4r_8h__dep__incl_org.svg new file mode 100644 index 0000000..7eebfb4 --- /dev/null +++ b/docs/html/dsps__fft4r_8h__dep__incl_org.svg @@ -0,0 +1,669 @@ + + + + + + +dsps_fft4r.h + + +Node1 + + +dsps_fft4r.h + + + + + +Node2 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dsps_fird_init_s16.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +graphics_support.cpp + + + + + +Node27->Node28 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h__incl.md5 b/docs/html/dsps__fft4r_8h__incl.md5 new file mode 100644 index 0000000..29d35a6 --- /dev/null +++ b/docs/html/dsps__fft4r_8h__incl.md5 @@ -0,0 +1 @@ +684fb954c57f69c3679c009d97df7ec3 \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h__incl.svg b/docs/html/dsps__fft4r_8h__incl.svg new file mode 100644 index 0000000..b024f64 --- /dev/null +++ b/docs/html/dsps__fft4r_8h__incl.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + +dsps_fft4r.h + + +Node1 + + +dsps_fft4r.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +sdkconfig.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_fft_tables.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_fft4r_platform.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node9->Node7 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h__incl_org.svg b/docs/html/dsps__fft4r_8h__incl_org.svg new file mode 100644 index 0000000..83f33ca --- /dev/null +++ b/docs/html/dsps__fft4r_8h__incl_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsps_fft4r.h + + +Node1 + + +dsps_fft4r.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +sdkconfig.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_fft_tables.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_fft4r_platform.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node9->Node7 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph.md5 b/docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph.md5 new file mode 100644 index 0000000..12e81d7 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph.md5 @@ -0,0 +1 @@ +f2ed903acf8bad55a7a46e52b41a0104 \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph.svg b/docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph.svg new file mode 100644 index 0000000..dbe6db1 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft4r_fc32_ansi_ + + +Node1 + + +dsps_fft4r_fc32_ansi_ + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph_org.svg b/docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph_org.svg new file mode 100644 index 0000000..38a81f2 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a0fde17af510bb2459b79ababe20c2fe5_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft4r_fc32_ansi_ + + +Node1 + + +dsps_fft4r_fc32_ansi_ + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph.md5 b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph.md5 new file mode 100644 index 0000000..0dec22b --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph.md5 @@ -0,0 +1 @@ +b919abdaf6c0fc41f1dd12ccf5fb1fac \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph.svg b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph.svg new file mode 100644 index 0000000..a1f26b3 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft4r_init_fc32 + + +Node1 + + +dsps_fft4r_init_fc32 + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph_org.svg b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph_org.svg new file mode 100644 index 0000000..f792914 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft4r_init_fc32 + + +Node1 + + +dsps_fft4r_init_fc32 + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph.md5 b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph.md5 new file mode 100644 index 0000000..4a212eb --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph.md5 @@ -0,0 +1 @@ +30e5438db674b0b26ca24e161926b45f \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph.svg b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph.svg new file mode 100644 index 0000000..9a4e1e8 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft4r_init_fc32 + + +Node1 + + +dsps_fft4r_init_fc32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph_org.svg b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph_org.svg new file mode 100644 index 0000000..1d520fc --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a2372c5dae54caef87742b9e8e2c30a48_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft4r_init_fc32 + + +Node1 + + +dsps_fft4r_init_fc32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph.md5 b/docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph.md5 new file mode 100644 index 0000000..3e12efc --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph.md5 @@ -0,0 +1 @@ +32a131c8de7e34f67b5698a814116d43 \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph.svg b/docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph.svg new file mode 100644 index 0000000..1deb52a --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +dsps_bit_rev4r_fc32 + + +Node1 + + +dsps_bit_rev4r_fc32 + + + + + +Node2 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_power_of_two + + + + + +Node2->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph_org.svg b/docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph_org.svg new file mode 100644 index 0000000..b1bd44d --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a3fdee63a8e14ed691fe581929581f8a6_cgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +dsps_bit_rev4r_fc32 + + +Node1 + + +dsps_bit_rev4r_fc32 + + + + + +Node2 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_power_of_two + + + + + +Node2->Node4 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph.md5 b/docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph.md5 new file mode 100644 index 0000000..e10daae --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph.md5 @@ -0,0 +1 @@ +029f7b149791d6efe604a0155c20f352 \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph.svg b/docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph.svg new file mode 100644 index 0000000..8d46826 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_fft4r_deinit_fc32 + + +Node1 + + +dsps_fft4r_deinit_fc32 + + + + + +Node2 + + +dsps_fft4r_rev_tables +_init_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph_org.svg b/docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph_org.svg new file mode 100644 index 0000000..1fe9b23 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_a80f24fd982d851501a43e0af7795822d_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_fft4r_deinit_fc32 + + +Node1 + + +dsps_fft4r_deinit_fc32 + + + + + +Node2 + + +dsps_fft4r_rev_tables +_init_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 b/docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 new file mode 100644 index 0000000..f79be86 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 @@ -0,0 +1 @@ +51967a9bb669c467678243e04dab84ab \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg b/docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg new file mode 100644 index 0000000..9e0c546 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_gen_bitrev4r_table + + +Node1 + + +dsps_gen_bitrev4r_table + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_power_of_two + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph_org.svg b/docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph_org.svg new file mode 100644 index 0000000..be2c892 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_gen_bitrev4r_table + + +Node1 + + +dsps_gen_bitrev4r_table + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_power_of_two + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph.md5 b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph.md5 new file mode 100644 index 0000000..6e908f9 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph.md5 @@ -0,0 +1 @@ +402b18683f2b0571c8f1ba23058100f0 \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph.svg b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph.svg new file mode 100644 index 0000000..9144815 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +dsps_bit_rev4r_direct_fc32_ansi + + +Node1 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_power_of_two + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph_org.svg b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph_org.svg new file mode 100644 index 0000000..a9e27f7 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_cgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +dsps_bit_rev4r_direct_fc32_ansi + + +Node1 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_power_of_two + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph.md5 b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph.md5 new file mode 100644 index 0000000..e2640b5 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph.md5 @@ -0,0 +1 @@ +f7528d61ca2d316807ce335796eb5f96 \ No newline at end of file diff --git a/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph.svg b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph.svg new file mode 100644 index 0000000..47f979e --- /dev/null +++ b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_bit_rev4r_direct_fc32_ansi + + +Node1 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node2 + + +dsps_bit_rev4r_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph_org.svg b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph_org.svg new file mode 100644 index 0000000..9d87a9e --- /dev/null +++ b/docs/html/dsps__fft4r_8h_acb8989c84ce30360b587beea893f0af9_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_bit_rev4r_direct_fc32_ansi + + +Node1 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node2 + + +dsps_bit_rev4r_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r_8h_source.html b/docs/html/dsps__fft4r_8h_source.html new file mode 100644 index 0000000..4ea9a24 --- /dev/null +++ b/docs/html/dsps__fft4r_8h_source.html @@ -0,0 +1,228 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_fft4r_H_
+
16#define _dsps_fft4r_H_
+
17#include "dsp_err.h"
+
18#include "sdkconfig.h"
+
19
+
20#include "dsps_fft_tables.h"
+
21#include "dsps_fft4r_platform.h"
+
22
+
23#ifdef __cplusplus
+
24extern "C"
+
25{
+
26#endif
+
27
+
28extern float *dsps_fft4r_w_table_fc32;
+ +
30extern uint8_t dsps_fft4r_initialized;
+
31
+
32extern int16_t *dsps_fft4r_w_table_sc16;
+ +
34extern uint8_t dsps_fft4r_sc16_initialized;
+
35
+
57esp_err_t dsps_fft4r_init_fc32(float *fft_table_buff, int max_fft_size);
+
59
+
69void dsps_fft4r_deinit_fc32(void);
+
71
+
90esp_err_t dsps_fft4r_fc32_ansi_(float *data, int N, float *table, int table_size);
+
91esp_err_t dsps_fft4r_fc32_ae32_(float *data, int N, float *table, int table_size);
+
92esp_err_t dsps_fft4r_fc32_aes3_(float *data, int N, float *table, int table_size);
+
93esp_err_t dsps_fft4r_fc32_arp4_(float *data, int N, float *table, int table_size);
+
95// This is workaround because linker generates permanent error when assembler uses
+
96// direct access to the table pointer
+
97#define dsps_fft4r_fc32_ansi(data, N) dsps_fft4r_fc32_ansi_(data, N, dsps_fft4r_w_table_fc32, dsps_fft4r_w_table_size)
+
98#define dsps_fft4r_fc32_ae32(data, N) dsps_fft4r_fc32_ae32_(data, N, dsps_fft4r_w_table_fc32, dsps_fft4r_w_table_size)
+
99#define dsps_fft4r_fc32_aes3(data, N) dsps_fft4r_fc32_aes3_(data, N, dsps_fft4r_w_table_fc32, dsps_fft4r_w_table_size)
+
100#define dsps_fft4r_fc32_arp4(data, N) dsps_fft4r_fc32_arp4_(data, N, dsps_fft4r_w_table_fc32, dsps_fft4r_w_table_size/(N))
+
101
+ + + + +
122
+
146esp_err_t dsps_cplx2real_fc32_ansi_(float *data, int N, float *table, int table_size);
+
147esp_err_t dsps_cplx2real_fc32_ae32_(float *data, int N, float *table, int table_size);
+
149#define dsps_cplx2real_fc32_ansi(data, N) dsps_cplx2real_fc32_ansi_(data, N, dsps_fft4r_w_table_fc32, dsps_fft4r_w_table_size)
+
150#define dsps_cplx2real_fc32_ae32(data, N) dsps_cplx2real_fc32_ae32_(data, N, dsps_fft4r_w_table_fc32, dsps_fft4r_w_table_size)
+
151
+
152
+
153esp_err_t dsps_gen_bitrev4r_table(int N, int step, char *name_ext);
+
154
+
155#ifdef __cplusplus
+
156}
+
157#endif
+
158
+
159#if CONFIG_DSP_OPTIMIZED
+
160
+
161#if (dsps_fft4r_fc32_ae32_enabled == 1)
+
162#define dsps_fft4r_fc32 dsps_fft4r_fc32_ae32
+
163#elif (dsps_fft4r_fc32_aes3_enabled == 1)
+
164#define dsps_fft4r_fc32 dsps_fft4r_fc32_aes3
+
165#elif (dsps_fft4r_fc32_arp4_enabled == 1)
+
166#define dsps_fft4r_fc32 dsps_fft4r_fc32_arp4
+
167#else
+
168#define dsps_fft4r_fc32 dsps_fft4r_fc32_ansi
+
169#endif // dsps_fft4r_fc32_ae32_enabled
+
170
+
171#define dsps_fft4r_sc16 dsps_fft4r_sc16_ae32
+
172#define dsps_bit_rev4r_fc32 dsps_bit_rev4r_fc32_ae32
+
173
+
174#if (dsps_cplx2real_fc32_ae32_enabled == 1)
+
175#define dsps_cplx2real_fc32 dsps_cplx2real_fc32_ae32
+
176#else
+
177#define dsps_cplx2real_fc32 dsps_cplx2real_fc32_ansi
+
178#endif // dsps_cplx2real_fc32_ae32_enabled
+
179
+
180
+
181#else
+
182#define dsps_fft4r_fc32 dsps_fft4r_fc32_ansi
+
183#define dsps_fft4r_sc16 dsps_fft4r_sc16_ansi
+
184#define dsps_bit_rev4r_fc32 dsps_bit_rev4r_fc32
+
185#define dsps_cplx2real_fc32 dsps_cplx2real_fc32_ansi
+
186#endif
+
187
+
188#endif // _dsps_fft4r_H_
+ +
esp_err_t dsps_fft4r_fc32_ansi_(float *data, int N, float *table, int table_size)
complex FFT of radix 4
+
esp_err_t dsps_cplx2real_fc32_ansi_(float *data, int N, float *table, int table_size)
Convert FFT result to complex array for real input data.
+
esp_err_t dsps_fft4r_init_fc32(float *fft_table_buff, int max_fft_size)
init fft tables
+
esp_err_t dsps_fft4r_fc32_aes3_(float *data, int N, float *table, int table_size)
+
esp_err_t dsps_fft4r_fc32_ae32_(float *data, int N, float *table, int table_size)
+
int dsps_fft4r_w_table_sc16_size
+
uint8_t dsps_fft4r_sc16_initialized
+
#define dsps_bit_rev4r_fc32
Definition dsps_fft4r.h:184
+
int16_t * dsps_fft4r_w_table_sc16
+
esp_err_t dsps_cplx2real_fc32_ae32_(float *data, int N, float *table, int table_size)
+
void dsps_fft4r_deinit_fc32(void)
deinit fft tables
+
esp_err_t dsps_fft4r_fc32_arp4_(float *data, int N, float *table, int table_size)
+
esp_err_t dsps_bit_rev4r_sc16_ansi(int16_t *data, int N)
+
esp_err_t dsps_gen_bitrev4r_table(int N, int step, char *name_ext)
+
esp_err_t dsps_bit_rev4r_direct_fc32_ansi(float *data, int N)
+
esp_err_t dsps_bit_rev4r_fc32_ae32(float *data, int N)
+
int dsps_fft4r_w_table_size
+
float * dsps_fft4r_w_table_fc32
+
uint8_t dsps_fft4r_initialized
+ + +
int esp_err_t
Definition esp_err.h:21
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+
+
+ + + + diff --git a/docs/html/dsps__fft4r__bitrev__tables__fc32_8c.html b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c.html new file mode 100644 index 0000000..0329388 --- /dev/null +++ b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c.html @@ -0,0 +1,786 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r_bitrev_tables_fc32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r_bitrev_tables_fc32.c File Reference
+
+
+
#include <stdint.h>
+#include "dsps_fft_tables.h"
+
+Include dependency graph for dsps_fft4r_bitrev_tables_fc32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

void dsps_fft4r_rev_tables_init_fc32 (void)
+ + + + + + + + + + + + + +

+Variables

const uint16_t bitrev4r_table_16_fc32 []
const uint16_t bitrev4r_table_16_fc32_size = 6
const uint16_t bitrev4r_table_64_fc32 []
const uint16_t bitrev4r_table_64_fc32_size = 24
const uint16_t bitrev4r_table_256_fc32 []
const uint16_t bitrev4r_table_256_fc32_size = 120
const uint16_t bitrev4r_table_1024_fc32 []
const uint16_t bitrev4r_table_1024_fc32_size = 480
const uint16_t bitrev4r_table_4096_fc32 []
const uint16_t bitrev4r_table_4096_fc32_size = 2016
uint16_t * dsps_fft4r_rev_tables_fc32 []
const uint16_t dsps_fft4r_rev_tables_fc32_size []
+

Function Documentation

+ +

◆ dsps_fft4r_rev_tables_init_fc32()

+ +
+
+ + + + + + + +
void dsps_fft4r_rev_tables_init_fc32 (void )
+
+ +

Definition at line 377 of file dsps_fft4r_bitrev_tables_fc32.c.

+
378{
+ + + + + +
384
+
385}
+
const uint16_t bitrev4r_table_64_fc32[]
+
const uint16_t bitrev4r_table_4096_fc32[]
+
const uint16_t bitrev4r_table_256_fc32[]
+
uint16_t * dsps_fft4r_rev_tables_fc32[]
+
const uint16_t bitrev4r_table_1024_fc32[]
+
const uint16_t bitrev4r_table_16_fc32[]
+
+

References bitrev4r_table_1024_fc32, bitrev4r_table_16_fc32, bitrev4r_table_256_fc32, bitrev4r_table_4096_fc32, bitrev4r_table_64_fc32, and dsps_fft4r_rev_tables_fc32.

+ +

Referenced by dsps_fft4r_deinit_fc32().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ bitrev4r_table_1024_fc32

+ +
+
+ + + + +
const uint16_t bitrev4r_table_1024_fc32
+
+ +

Definition at line 54 of file dsps_fft4r_bitrev_tables_fc32.c.

+
54 {
+
55 8, 2048, 16, 4096, 24, 6144, 32, 512, 40, 2560, 48, 4608, 56, 6656, 64, 1024,
+
56 72, 3072, 80, 5120, 88, 7168, 96, 1536, 104, 3584, 112, 5632, 120, 7680, 136, 2176,
+
57 144, 4224, 152, 6272, 160, 640, 168, 2688, 176, 4736, 184, 6784, 192, 1152, 200, 3200,
+
58 208, 5248, 216, 7296, 224, 1664, 232, 3712, 240, 5760, 248, 7808, 264, 2304, 272, 4352,
+
59 280, 6400, 288, 768, 296, 2816, 304, 4864, 312, 6912, 320, 1280, 328, 3328, 336, 5376,
+
60 344, 7424, 352, 1792, 360, 3840, 368, 5888, 376, 7936, 392, 2432, 400, 4480, 408, 6528,
+
61 416, 896, 424, 2944, 432, 4992, 440, 7040, 448, 1408, 456, 3456, 464, 5504, 472, 7552,
+
62 480, 1920, 488, 3968, 496, 6016, 504, 8064, 520, 2080, 528, 4128, 536, 6176, 552, 2592,
+
63 560, 4640, 568, 6688, 576, 1056, 584, 3104, 592, 5152, 600, 7200, 608, 1568, 616, 3616,
+
64 624, 5664, 632, 7712, 648, 2208, 656, 4256, 664, 6304, 680, 2720, 688, 4768, 696, 6816,
+
65 704, 1184, 712, 3232, 720, 5280, 728, 7328, 736, 1696, 744, 3744, 752, 5792, 760, 7840,
+
66 776, 2336, 784, 4384, 792, 6432, 808, 2848, 816, 4896, 824, 6944, 832, 1312, 840, 3360,
+
67 848, 5408, 856, 7456, 864, 1824, 872, 3872, 880, 5920, 888, 7968, 904, 2464, 912, 4512,
+
68 920, 6560, 936, 2976, 944, 5024, 952, 7072, 960, 1440, 968, 3488, 976, 5536, 984, 7584,
+
69 992, 1952, 1000, 4000, 1008, 6048, 1016, 8096, 1032, 2112, 1040, 4160, 1048, 6208, 1064, 2624,
+
70 1072, 4672, 1080, 6720, 1096, 3136, 1104, 5184, 1112, 7232, 1120, 1600, 1128, 3648, 1136, 5696,
+
71 1144, 7744, 1160, 2240, 1168, 4288, 1176, 6336, 1192, 2752, 1200, 4800, 1208, 6848, 1224, 3264,
+
72 1232, 5312, 1240, 7360, 1248, 1728, 1256, 3776, 1264, 5824, 1272, 7872, 1288, 2368, 1296, 4416,
+
73 1304, 6464, 1320, 2880, 1328, 4928, 1336, 6976, 1352, 3392, 1360, 5440, 1368, 7488, 1376, 1856,
+
74 1384, 3904, 1392, 5952, 1400, 8000, 1416, 2496, 1424, 4544, 1432, 6592, 1448, 3008, 1456, 5056,
+
75 1464, 7104, 1480, 3520, 1488, 5568, 1496, 7616, 1504, 1984, 1512, 4032, 1520, 6080, 1528, 8128,
+
76 1544, 2144, 1552, 4192, 1560, 6240, 1576, 2656, 1584, 4704, 1592, 6752, 1608, 3168, 1616, 5216,
+
77 1624, 7264, 1640, 3680, 1648, 5728, 1656, 7776, 1672, 2272, 1680, 4320, 1688, 6368, 1704, 2784,
+
78 1712, 4832, 1720, 6880, 1736, 3296, 1744, 5344, 1752, 7392, 1768, 3808, 1776, 5856, 1784, 7904,
+
79 1800, 2400, 1808, 4448, 1816, 6496, 1832, 2912, 1840, 4960, 1848, 7008, 1864, 3424, 1872, 5472,
+
80 1880, 7520, 1896, 3936, 1904, 5984, 1912, 8032, 1928, 2528, 1936, 4576, 1944, 6624, 1960, 3040,
+
81 1968, 5088, 1976, 7136, 1992, 3552, 2000, 5600, 2008, 7648, 2024, 4064, 2032, 6112, 2040, 8160,
+
82 2064, 4104, 2072, 6152, 2088, 2568, 2096, 4616, 2104, 6664, 2120, 3080, 2128, 5128, 2136, 7176,
+
83 2152, 3592, 2160, 5640, 2168, 7688, 2192, 4232, 2200, 6280, 2216, 2696, 2224, 4744, 2232, 6792,
+
84 2248, 3208, 2256, 5256, 2264, 7304, 2280, 3720, 2288, 5768, 2296, 7816, 2320, 4360, 2328, 6408,
+
85 2344, 2824, 2352, 4872, 2360, 6920, 2376, 3336, 2384, 5384, 2392, 7432, 2408, 3848, 2416, 5896,
+
86 2424, 7944, 2448, 4488, 2456, 6536, 2472, 2952, 2480, 5000, 2488, 7048, 2504, 3464, 2512, 5512,
+
87 2520, 7560, 2536, 3976, 2544, 6024, 2552, 8072, 2576, 4136, 2584, 6184, 2608, 4648, 2616, 6696,
+
88 2632, 3112, 2640, 5160, 2648, 7208, 2664, 3624, 2672, 5672, 2680, 7720, 2704, 4264, 2712, 6312,
+
89 2736, 4776, 2744, 6824, 2760, 3240, 2768, 5288, 2776, 7336, 2792, 3752, 2800, 5800, 2808, 7848,
+
90 2832, 4392, 2840, 6440, 2864, 4904, 2872, 6952, 2888, 3368, 2896, 5416, 2904, 7464, 2920, 3880,
+
91 2928, 5928, 2936, 7976, 2960, 4520, 2968, 6568, 2992, 5032, 3000, 7080, 3016, 3496, 3024, 5544,
+
92 3032, 7592, 3048, 4008, 3056, 6056, 3064, 8104, 3088, 4168, 3096, 6216, 3120, 4680, 3128, 6728,
+
93 3152, 5192, 3160, 7240, 3176, 3656, 3184, 5704, 3192, 7752, 3216, 4296, 3224, 6344, 3248, 4808,
+
94 3256, 6856, 3280, 5320, 3288, 7368, 3304, 3784, 3312, 5832, 3320, 7880, 3344, 4424, 3352, 6472,
+
95 3376, 4936, 3384, 6984, 3408, 5448, 3416, 7496, 3432, 3912, 3440, 5960, 3448, 8008, 3472, 4552,
+
96 3480, 6600, 3504, 5064, 3512, 7112, 3536, 5576, 3544, 7624, 3560, 4040, 3568, 6088, 3576, 8136,
+
97 3600, 4200, 3608, 6248, 3632, 4712, 3640, 6760, 3664, 5224, 3672, 7272, 3696, 5736, 3704, 7784,
+
98 3728, 4328, 3736, 6376, 3760, 4840, 3768, 6888, 3792, 5352, 3800, 7400, 3824, 5864, 3832, 7912,
+
99 3856, 4456, 3864, 6504, 3888, 4968, 3896, 7016, 3920, 5480, 3928, 7528, 3952, 5992, 3960, 8040,
+
100 3984, 4584, 3992, 6632, 4016, 5096, 4024, 7144, 4048, 5608, 4056, 7656, 4080, 6120, 4088, 8168,
+
101 4120, 6160, 4144, 4624, 4152, 6672, 4176, 5136, 4184, 7184, 4208, 5648, 4216, 7696, 4248, 6288,
+
102 4272, 4752, 4280, 6800, 4304, 5264, 4312, 7312, 4336, 5776, 4344, 7824, 4376, 6416, 4400, 4880,
+
103 4408, 6928, 4432, 5392, 4440, 7440, 4464, 5904, 4472, 7952, 4504, 6544, 4528, 5008, 4536, 7056,
+
104 4560, 5520, 4568, 7568, 4592, 6032, 4600, 8080, 4632, 6192, 4664, 6704, 4688, 5168, 4696, 7216,
+
105 4720, 5680, 4728, 7728, 4760, 6320, 4792, 6832, 4816, 5296, 4824, 7344, 4848, 5808, 4856, 7856,
+
106 4888, 6448, 4920, 6960, 4944, 5424, 4952, 7472, 4976, 5936, 4984, 7984, 5016, 6576, 5048, 7088,
+
107 5072, 5552, 5080, 7600, 5104, 6064, 5112, 8112, 5144, 6224, 5176, 6736, 5208, 7248, 5232, 5712,
+
108 5240, 7760, 5272, 6352, 5304, 6864, 5336, 7376, 5360, 5840, 5368, 7888, 5400, 6480, 5432, 6992,
+
109 5464, 7504, 5488, 5968, 5496, 8016, 5528, 6608, 5560, 7120, 5592, 7632, 5616, 6096, 5624, 8144,
+
110 5656, 6256, 5688, 6768, 5720, 7280, 5752, 7792, 5784, 6384, 5816, 6896, 5848, 7408, 5880, 7920,
+
111 5912, 6512, 5944, 7024, 5976, 7536, 6008, 8048, 6040, 6640, 6072, 7152, 6104, 7664, 6136, 8176,
+
112 6200, 6680, 6232, 7192, 6264, 7704, 6328, 6808, 6360, 7320, 6392, 7832, 6456, 6936, 6488, 7448,
+
113 6520, 7960, 6584, 7064, 6616, 7576, 6648, 8088, 6744, 7224, 6776, 7736, 6872, 7352, 6904, 7864,
+
114 7000, 7480, 7032, 7992, 7128, 7608, 7160, 8120, 7288, 7768, 7416, 7896, 7544, 8024, 7672, 8152,
+
115};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_1024_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev4r_table_1024_fc32_size = 480
+
+ +

Definition at line 398 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev4r_table_16_fc32

+ +
+
+ + + + +
const uint16_t bitrev4r_table_16_fc32
+
+Initial value:
= {
+
8, 32, 16, 64, 24, 96, 48, 72, 56, 104, 88, 112,
+
}
+
+

Definition at line 20 of file dsps_fft4r_bitrev_tables_fc32.c.

+
20 {
+
21 8, 32, 16, 64, 24, 96, 48, 72, 56, 104, 88, 112,
+
22};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_16_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev4r_table_16_fc32_size = 6
+
+ +

Definition at line 395 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev4r_table_256_fc32

+ +
+
+ + + + +
const uint16_t bitrev4r_table_256_fc32
+
+Initial value:
= {
+
8, 512, 16, 1024, 24, 1536, 32, 128, 40, 640, 48, 1152, 56, 1664, 64, 256,
+
72, 768, 80, 1280, 88, 1792, 96, 384, 104, 896, 112, 1408, 120, 1920, 136, 544,
+
144, 1056, 152, 1568, 168, 672, 176, 1184, 184, 1696, 192, 288, 200, 800, 208, 1312,
+
216, 1824, 224, 416, 232, 928, 240, 1440, 248, 1952, 264, 576, 272, 1088, 280, 1600,
+
296, 704, 304, 1216, 312, 1728, 328, 832, 336, 1344, 344, 1856, 352, 448, 360, 960,
+
368, 1472, 376, 1984, 392, 608, 400, 1120, 408, 1632, 424, 736, 432, 1248, 440, 1760,
+
456, 864, 464, 1376, 472, 1888, 488, 992, 496, 1504, 504, 2016, 528, 1032, 536, 1544,
+
552, 648, 560, 1160, 568, 1672, 584, 776, 592, 1288, 600, 1800, 616, 904, 624, 1416,
+
632, 1928, 656, 1064, 664, 1576, 688, 1192, 696, 1704, 712, 808, 720, 1320, 728, 1832,
+
744, 936, 752, 1448, 760, 1960, 784, 1096, 792, 1608, 816, 1224, 824, 1736, 848, 1352,
+
856, 1864, 872, 968, 880, 1480, 888, 1992, 912, 1128, 920, 1640, 944, 1256, 952, 1768,
+
976, 1384, 984, 1896, 1008, 1512, 1016, 2024, 1048, 1552, 1072, 1168, 1080, 1680, 1104, 1296,
+
1112, 1808, 1136, 1424, 1144, 1936, 1176, 1584, 1208, 1712, 1232, 1328, 1240, 1840, 1264, 1456,
+
1272, 1968, 1304, 1616, 1336, 1744, 1368, 1872, 1392, 1488, 1400, 2000, 1432, 1648, 1464, 1776,
+
1496, 1904, 1528, 2032, 1592, 1688, 1624, 1816, 1656, 1944, 1752, 1848, 1784, 1976, 1912, 2008,
+
}
+
+

Definition at line 34 of file dsps_fft4r_bitrev_tables_fc32.c.

+
34 {
+
35 8, 512, 16, 1024, 24, 1536, 32, 128, 40, 640, 48, 1152, 56, 1664, 64, 256,
+
36 72, 768, 80, 1280, 88, 1792, 96, 384, 104, 896, 112, 1408, 120, 1920, 136, 544,
+
37 144, 1056, 152, 1568, 168, 672, 176, 1184, 184, 1696, 192, 288, 200, 800, 208, 1312,
+
38 216, 1824, 224, 416, 232, 928, 240, 1440, 248, 1952, 264, 576, 272, 1088, 280, 1600,
+
39 296, 704, 304, 1216, 312, 1728, 328, 832, 336, 1344, 344, 1856, 352, 448, 360, 960,
+
40 368, 1472, 376, 1984, 392, 608, 400, 1120, 408, 1632, 424, 736, 432, 1248, 440, 1760,
+
41 456, 864, 464, 1376, 472, 1888, 488, 992, 496, 1504, 504, 2016, 528, 1032, 536, 1544,
+
42 552, 648, 560, 1160, 568, 1672, 584, 776, 592, 1288, 600, 1800, 616, 904, 624, 1416,
+
43 632, 1928, 656, 1064, 664, 1576, 688, 1192, 696, 1704, 712, 808, 720, 1320, 728, 1832,
+
44 744, 936, 752, 1448, 760, 1960, 784, 1096, 792, 1608, 816, 1224, 824, 1736, 848, 1352,
+
45 856, 1864, 872, 968, 880, 1480, 888, 1992, 912, 1128, 920, 1640, 944, 1256, 952, 1768,
+
46 976, 1384, 984, 1896, 1008, 1512, 1016, 2024, 1048, 1552, 1072, 1168, 1080, 1680, 1104, 1296,
+
47 1112, 1808, 1136, 1424, 1144, 1936, 1176, 1584, 1208, 1712, 1232, 1328, 1240, 1840, 1264, 1456,
+
48 1272, 1968, 1304, 1616, 1336, 1744, 1368, 1872, 1392, 1488, 1400, 2000, 1432, 1648, 1464, 1776,
+
49 1496, 1904, 1528, 2032, 1592, 1688, 1624, 1816, 1656, 1944, 1752, 1848, 1784, 1976, 1912, 2008,
+
50};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_256_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev4r_table_256_fc32_size = 120
+
+ +

Definition at line 397 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev4r_table_4096_fc32

+ +
+
+ + + + +
const uint16_t bitrev4r_table_4096_fc32
+
+ +

Definition at line 119 of file dsps_fft4r_bitrev_tables_fc32.c.

+
119 {
+
120 8, 8192, 16, 16384, 24, 24576, 32, 2048, 40, 10240, 48, 18432, 56, 26624, 64, 4096,
+
121 72, 12288, 80, 20480, 88, 28672, 96, 6144, 104, 14336, 112, 22528, 120, 30720, 128, 512,
+
122 136, 8704, 144, 16896, 152, 25088, 160, 2560, 168, 10752, 176, 18944, 184, 27136, 192, 4608,
+
123 200, 12800, 208, 20992, 216, 29184, 224, 6656, 232, 14848, 240, 23040, 248, 31232, 256, 1024,
+
124 264, 9216, 272, 17408, 280, 25600, 288, 3072, 296, 11264, 304, 19456, 312, 27648, 320, 5120,
+
125 328, 13312, 336, 21504, 344, 29696, 352, 7168, 360, 15360, 368, 23552, 376, 31744, 384, 1536,
+
126 392, 9728, 400, 17920, 408, 26112, 416, 3584, 424, 11776, 432, 19968, 440, 28160, 448, 5632,
+
127 456, 13824, 464, 22016, 472, 30208, 480, 7680, 488, 15872, 496, 24064, 504, 32256, 520, 8320,
+
128 528, 16512, 536, 24704, 544, 2176, 552, 10368, 560, 18560, 568, 26752, 576, 4224, 584, 12416,
+
129 592, 20608, 600, 28800, 608, 6272, 616, 14464, 624, 22656, 632, 30848, 648, 8832, 656, 17024,
+
130 664, 25216, 672, 2688, 680, 10880, 688, 19072, 696, 27264, 704, 4736, 712, 12928, 720, 21120,
+
131 728, 29312, 736, 6784, 744, 14976, 752, 23168, 760, 31360, 768, 1152, 776, 9344, 784, 17536,
+
132 792, 25728, 800, 3200, 808, 11392, 816, 19584, 824, 27776, 832, 5248, 840, 13440, 848, 21632,
+
133 856, 29824, 864, 7296, 872, 15488, 880, 23680, 888, 31872, 896, 1664, 904, 9856, 912, 18048,
+
134 920, 26240, 928, 3712, 936, 11904, 944, 20096, 952, 28288, 960, 5760, 968, 13952, 976, 22144,
+
135 984, 30336, 992, 7808, 1000, 16000, 1008, 24192, 1016, 32384, 1032, 8448, 1040, 16640, 1048, 24832,
+
136 1056, 2304, 1064, 10496, 1072, 18688, 1080, 26880, 1088, 4352, 1096, 12544, 1104, 20736, 1112, 28928,
+
137 1120, 6400, 1128, 14592, 1136, 22784, 1144, 30976, 1160, 8960, 1168, 17152, 1176, 25344, 1184, 2816,
+
138 1192, 11008, 1200, 19200, 1208, 27392, 1216, 4864, 1224, 13056, 1232, 21248, 1240, 29440, 1248, 6912,
+
139 1256, 15104, 1264, 23296, 1272, 31488, 1288, 9472, 1296, 17664, 1304, 25856, 1312, 3328, 1320, 11520,
+
140 1328, 19712, 1336, 27904, 1344, 5376, 1352, 13568, 1360, 21760, 1368, 29952, 1376, 7424, 1384, 15616,
+
141 1392, 23808, 1400, 32000, 1408, 1792, 1416, 9984, 1424, 18176, 1432, 26368, 1440, 3840, 1448, 12032,
+
142 1456, 20224, 1464, 28416, 1472, 5888, 1480, 14080, 1488, 22272, 1496, 30464, 1504, 7936, 1512, 16128,
+
143 1520, 24320, 1528, 32512, 1544, 8576, 1552, 16768, 1560, 24960, 1568, 2432, 1576, 10624, 1584, 18816,
+
144 1592, 27008, 1600, 4480, 1608, 12672, 1616, 20864, 1624, 29056, 1632, 6528, 1640, 14720, 1648, 22912,
+
145 1656, 31104, 1672, 9088, 1680, 17280, 1688, 25472, 1696, 2944, 1704, 11136, 1712, 19328, 1720, 27520,
+
146 1728, 4992, 1736, 13184, 1744, 21376, 1752, 29568, 1760, 7040, 1768, 15232, 1776, 23424, 1784, 31616,
+
147 1800, 9600, 1808, 17792, 1816, 25984, 1824, 3456, 1832, 11648, 1840, 19840, 1848, 28032, 1856, 5504,
+
148 1864, 13696, 1872, 21888, 1880, 30080, 1888, 7552, 1896, 15744, 1904, 23936, 1912, 32128, 1928, 10112,
+
149 1936, 18304, 1944, 26496, 1952, 3968, 1960, 12160, 1968, 20352, 1976, 28544, 1984, 6016, 1992, 14208,
+
150 2000, 22400, 2008, 30592, 2016, 8064, 2024, 16256, 2032, 24448, 2040, 32640, 2056, 8224, 2064, 16416,
+
151 2072, 24608, 2088, 10272, 2096, 18464, 2104, 26656, 2112, 4128, 2120, 12320, 2128, 20512, 2136, 28704,
+
152 2144, 6176, 2152, 14368, 2160, 22560, 2168, 30752, 2184, 8736, 2192, 16928, 2200, 25120, 2208, 2592,
+
153 2216, 10784, 2224, 18976, 2232, 27168, 2240, 4640, 2248, 12832, 2256, 21024, 2264, 29216, 2272, 6688,
+
154 2280, 14880, 2288, 23072, 2296, 31264, 2312, 9248, 2320, 17440, 2328, 25632, 2336, 3104, 2344, 11296,
+
155 2352, 19488, 2360, 27680, 2368, 5152, 2376, 13344, 2384, 21536, 2392, 29728, 2400, 7200, 2408, 15392,
+
156 2416, 23584, 2424, 31776, 2440, 9760, 2448, 17952, 2456, 26144, 2464, 3616, 2472, 11808, 2480, 20000,
+
157 2488, 28192, 2496, 5664, 2504, 13856, 2512, 22048, 2520, 30240, 2528, 7712, 2536, 15904, 2544, 24096,
+
158 2552, 32288, 2568, 8352, 2576, 16544, 2584, 24736, 2600, 10400, 2608, 18592, 2616, 26784, 2624, 4256,
+
159 2632, 12448, 2640, 20640, 2648, 28832, 2656, 6304, 2664, 14496, 2672, 22688, 2680, 30880, 2696, 8864,
+
160 2704, 17056, 2712, 25248, 2728, 10912, 2736, 19104, 2744, 27296, 2752, 4768, 2760, 12960, 2768, 21152,
+
161 2776, 29344, 2784, 6816, 2792, 15008, 2800, 23200, 2808, 31392, 2824, 9376, 2832, 17568, 2840, 25760,
+
162 2848, 3232, 2856, 11424, 2864, 19616, 2872, 27808, 2880, 5280, 2888, 13472, 2896, 21664, 2904, 29856,
+
163 2912, 7328, 2920, 15520, 2928, 23712, 2936, 31904, 2952, 9888, 2960, 18080, 2968, 26272, 2976, 3744,
+
164 2984, 11936, 2992, 20128, 3000, 28320, 3008, 5792, 3016, 13984, 3024, 22176, 3032, 30368, 3040, 7840,
+
165 3048, 16032, 3056, 24224, 3064, 32416, 3080, 8480, 3088, 16672, 3096, 24864, 3112, 10528, 3120, 18720,
+
166 3128, 26912, 3136, 4384, 3144, 12576, 3152, 20768, 3160, 28960, 3168, 6432, 3176, 14624, 3184, 22816,
+
167 3192, 31008, 3208, 8992, 3216, 17184, 3224, 25376, 3240, 11040, 3248, 19232, 3256, 27424, 3264, 4896,
+
168 3272, 13088, 3280, 21280, 3288, 29472, 3296, 6944, 3304, 15136, 3312, 23328, 3320, 31520, 3336, 9504,
+
169 3344, 17696, 3352, 25888, 3368, 11552, 3376, 19744, 3384, 27936, 3392, 5408, 3400, 13600, 3408, 21792,
+
170 3416, 29984, 3424, 7456, 3432, 15648, 3440, 23840, 3448, 32032, 3464, 10016, 3472, 18208, 3480, 26400,
+
171 3488, 3872, 3496, 12064, 3504, 20256, 3512, 28448, 3520, 5920, 3528, 14112, 3536, 22304, 3544, 30496,
+
172 3552, 7968, 3560, 16160, 3568, 24352, 3576, 32544, 3592, 8608, 3600, 16800, 3608, 24992, 3624, 10656,
+
173 3632, 18848, 3640, 27040, 3648, 4512, 3656, 12704, 3664, 20896, 3672, 29088, 3680, 6560, 3688, 14752,
+
174 3696, 22944, 3704, 31136, 3720, 9120, 3728, 17312, 3736, 25504, 3752, 11168, 3760, 19360, 3768, 27552,
+
175 3776, 5024, 3784, 13216, 3792, 21408, 3800, 29600, 3808, 7072, 3816, 15264, 3824, 23456, 3832, 31648,
+
176 3848, 9632, 3856, 17824, 3864, 26016, 3880, 11680, 3888, 19872, 3896, 28064, 3904, 5536, 3912, 13728,
+
177 3920, 21920, 3928, 30112, 3936, 7584, 3944, 15776, 3952, 23968, 3960, 32160, 3976, 10144, 3984, 18336,
+
178 3992, 26528, 4008, 12192, 4016, 20384, 4024, 28576, 4032, 6048, 4040, 14240, 4048, 22432, 4056, 30624,
+
179 4064, 8096, 4072, 16288, 4080, 24480, 4088, 32672, 4104, 8256, 4112, 16448, 4120, 24640, 4136, 10304,
+
180 4144, 18496, 4152, 26688, 4168, 12352, 4176, 20544, 4184, 28736, 4192, 6208, 4200, 14400, 4208, 22592,
+
181 4216, 30784, 4232, 8768, 4240, 16960, 4248, 25152, 4264, 10816, 4272, 19008, 4280, 27200, 4288, 4672,
+
182 4296, 12864, 4304, 21056, 4312, 29248, 4320, 6720, 4328, 14912, 4336, 23104, 4344, 31296, 4360, 9280,
+
183 4368, 17472, 4376, 25664, 4392, 11328, 4400, 19520, 4408, 27712, 4416, 5184, 4424, 13376, 4432, 21568,
+
184 4440, 29760, 4448, 7232, 4456, 15424, 4464, 23616, 4472, 31808, 4488, 9792, 4496, 17984, 4504, 26176,
+
185 4520, 11840, 4528, 20032, 4536, 28224, 4544, 5696, 4552, 13888, 4560, 22080, 4568, 30272, 4576, 7744,
+
186 4584, 15936, 4592, 24128, 4600, 32320, 4616, 8384, 4624, 16576, 4632, 24768, 4648, 10432, 4656, 18624,
+
187 4664, 26816, 4680, 12480, 4688, 20672, 4696, 28864, 4704, 6336, 4712, 14528, 4720, 22720, 4728, 30912,
+
188 4744, 8896, 4752, 17088, 4760, 25280, 4776, 10944, 4784, 19136, 4792, 27328, 4808, 12992, 4816, 21184,
+
189 4824, 29376, 4832, 6848, 4840, 15040, 4848, 23232, 4856, 31424, 4872, 9408, 4880, 17600, 4888, 25792,
+
190 4904, 11456, 4912, 19648, 4920, 27840, 4928, 5312, 4936, 13504, 4944, 21696, 4952, 29888, 4960, 7360,
+
191 4968, 15552, 4976, 23744, 4984, 31936, 5000, 9920, 5008, 18112, 5016, 26304, 5032, 11968, 5040, 20160,
+
192 5048, 28352, 5056, 5824, 5064, 14016, 5072, 22208, 5080, 30400, 5088, 7872, 5096, 16064, 5104, 24256,
+
193 5112, 32448, 5128, 8512, 5136, 16704, 5144, 24896, 5160, 10560, 5168, 18752, 5176, 26944, 5192, 12608,
+
194 5200, 20800, 5208, 28992, 5216, 6464, 5224, 14656, 5232, 22848, 5240, 31040, 5256, 9024, 5264, 17216,
+
195 5272, 25408, 5288, 11072, 5296, 19264, 5304, 27456, 5320, 13120, 5328, 21312, 5336, 29504, 5344, 6976,
+
196 5352, 15168, 5360, 23360, 5368, 31552, 5384, 9536, 5392, 17728, 5400, 25920, 5416, 11584, 5424, 19776,
+
197 5432, 27968, 5448, 13632, 5456, 21824, 5464, 30016, 5472, 7488, 5480, 15680, 5488, 23872, 5496, 32064,
+
198 5512, 10048, 5520, 18240, 5528, 26432, 5544, 12096, 5552, 20288, 5560, 28480, 5568, 5952, 5576, 14144,
+
199 5584, 22336, 5592, 30528, 5600, 8000, 5608, 16192, 5616, 24384, 5624, 32576, 5640, 8640, 5648, 16832,
+
200 5656, 25024, 5672, 10688, 5680, 18880, 5688, 27072, 5704, 12736, 5712, 20928, 5720, 29120, 5728, 6592,
+
201 5736, 14784, 5744, 22976, 5752, 31168, 5768, 9152, 5776, 17344, 5784, 25536, 5800, 11200, 5808, 19392,
+
202 5816, 27584, 5832, 13248, 5840, 21440, 5848, 29632, 5856, 7104, 5864, 15296, 5872, 23488, 5880, 31680,
+
203 5896, 9664, 5904, 17856, 5912, 26048, 5928, 11712, 5936, 19904, 5944, 28096, 5960, 13760, 5968, 21952,
+
204 5976, 30144, 5984, 7616, 5992, 15808, 6000, 24000, 6008, 32192, 6024, 10176, 6032, 18368, 6040, 26560,
+
205 6056, 12224, 6064, 20416, 6072, 28608, 6088, 14272, 6096, 22464, 6104, 30656, 6112, 8128, 6120, 16320,
+
206 6128, 24512, 6136, 32704, 6152, 8288, 6160, 16480, 6168, 24672, 6184, 10336, 6192, 18528, 6200, 26720,
+
207 6216, 12384, 6224, 20576, 6232, 28768, 6248, 14432, 6256, 22624, 6264, 30816, 6280, 8800, 6288, 16992,
+
208 6296, 25184, 6312, 10848, 6320, 19040, 6328, 27232, 6344, 12896, 6352, 21088, 6360, 29280, 6368, 6752,
+
209 6376, 14944, 6384, 23136, 6392, 31328, 6408, 9312, 6416, 17504, 6424, 25696, 6440, 11360, 6448, 19552,
+
210 6456, 27744, 6472, 13408, 6480, 21600, 6488, 29792, 6496, 7264, 6504, 15456, 6512, 23648, 6520, 31840,
+
211 6536, 9824, 6544, 18016, 6552, 26208, 6568, 11872, 6576, 20064, 6584, 28256, 6600, 13920, 6608, 22112,
+
212 6616, 30304, 6624, 7776, 6632, 15968, 6640, 24160, 6648, 32352, 6664, 8416, 6672, 16608, 6680, 24800,
+
213 6696, 10464, 6704, 18656, 6712, 26848, 6728, 12512, 6736, 20704, 6744, 28896, 6760, 14560, 6768, 22752,
+
214 6776, 30944, 6792, 8928, 6800, 17120, 6808, 25312, 6824, 10976, 6832, 19168, 6840, 27360, 6856, 13024,
+
215 6864, 21216, 6872, 29408, 6888, 15072, 6896, 23264, 6904, 31456, 6920, 9440, 6928, 17632, 6936, 25824,
+
216 6952, 11488, 6960, 19680, 6968, 27872, 6984, 13536, 6992, 21728, 7000, 29920, 7008, 7392, 7016, 15584,
+
217 7024, 23776, 7032, 31968, 7048, 9952, 7056, 18144, 7064, 26336, 7080, 12000, 7088, 20192, 7096, 28384,
+
218 7112, 14048, 7120, 22240, 7128, 30432, 7136, 7904, 7144, 16096, 7152, 24288, 7160, 32480, 7176, 8544,
+
219 7184, 16736, 7192, 24928, 7208, 10592, 7216, 18784, 7224, 26976, 7240, 12640, 7248, 20832, 7256, 29024,
+
220 7272, 14688, 7280, 22880, 7288, 31072, 7304, 9056, 7312, 17248, 7320, 25440, 7336, 11104, 7344, 19296,
+
221 7352, 27488, 7368, 13152, 7376, 21344, 7384, 29536, 7400, 15200, 7408, 23392, 7416, 31584, 7432, 9568,
+
222 7440, 17760, 7448, 25952, 7464, 11616, 7472, 19808, 7480, 28000, 7496, 13664, 7504, 21856, 7512, 30048,
+
223 7528, 15712, 7536, 23904, 7544, 32096, 7560, 10080, 7568, 18272, 7576, 26464, 7592, 12128, 7600, 20320,
+
224 7608, 28512, 7624, 14176, 7632, 22368, 7640, 30560, 7648, 8032, 7656, 16224, 7664, 24416, 7672, 32608,
+
225 7688, 8672, 7696, 16864, 7704, 25056, 7720, 10720, 7728, 18912, 7736, 27104, 7752, 12768, 7760, 20960,
+
226 7768, 29152, 7784, 14816, 7792, 23008, 7800, 31200, 7816, 9184, 7824, 17376, 7832, 25568, 7848, 11232,
+
227 7856, 19424, 7864, 27616, 7880, 13280, 7888, 21472, 7896, 29664, 7912, 15328, 7920, 23520, 7928, 31712,
+
228 7944, 9696, 7952, 17888, 7960, 26080, 7976, 11744, 7984, 19936, 7992, 28128, 8008, 13792, 8016, 21984,
+
229 8024, 30176, 8040, 15840, 8048, 24032, 8056, 32224, 8072, 10208, 8080, 18400, 8088, 26592, 8104, 12256,
+
230 8112, 20448, 8120, 28640, 8136, 14304, 8144, 22496, 8152, 30688, 8168, 16352, 8176, 24544, 8184, 32736,
+
231 8208, 16392, 8216, 24584, 8232, 10248, 8240, 18440, 8248, 26632, 8264, 12296, 8272, 20488, 8280, 28680,
+
232 8296, 14344, 8304, 22536, 8312, 30728, 8328, 8712, 8336, 16904, 8344, 25096, 8360, 10760, 8368, 18952,
+
233 8376, 27144, 8392, 12808, 8400, 21000, 8408, 29192, 8424, 14856, 8432, 23048, 8440, 31240, 8456, 9224,
+
234 8464, 17416, 8472, 25608, 8488, 11272, 8496, 19464, 8504, 27656, 8520, 13320, 8528, 21512, 8536, 29704,
+
235 8552, 15368, 8560, 23560, 8568, 31752, 8584, 9736, 8592, 17928, 8600, 26120, 8616, 11784, 8624, 19976,
+
236 8632, 28168, 8648, 13832, 8656, 22024, 8664, 30216, 8680, 15880, 8688, 24072, 8696, 32264, 8720, 16520,
+
237 8728, 24712, 8744, 10376, 8752, 18568, 8760, 26760, 8776, 12424, 8784, 20616, 8792, 28808, 8808, 14472,
+
238 8816, 22664, 8824, 30856, 8848, 17032, 8856, 25224, 8872, 10888, 8880, 19080, 8888, 27272, 8904, 12936,
+
239 8912, 21128, 8920, 29320, 8936, 14984, 8944, 23176, 8952, 31368, 8968, 9352, 8976, 17544, 8984, 25736,
+
240 9000, 11400, 9008, 19592, 9016, 27784, 9032, 13448, 9040, 21640, 9048, 29832, 9064, 15496, 9072, 23688,
+
241 9080, 31880, 9096, 9864, 9104, 18056, 9112, 26248, 9128, 11912, 9136, 20104, 9144, 28296, 9160, 13960,
+
242 9168, 22152, 9176, 30344, 9192, 16008, 9200, 24200, 9208, 32392, 9232, 16648, 9240, 24840, 9256, 10504,
+
243 9264, 18696, 9272, 26888, 9288, 12552, 9296, 20744, 9304, 28936, 9320, 14600, 9328, 22792, 9336, 30984,
+
244 9360, 17160, 9368, 25352, 9384, 11016, 9392, 19208, 9400, 27400, 9416, 13064, 9424, 21256, 9432, 29448,
+
245 9448, 15112, 9456, 23304, 9464, 31496, 9488, 17672, 9496, 25864, 9512, 11528, 9520, 19720, 9528, 27912,
+
246 9544, 13576, 9552, 21768, 9560, 29960, 9576, 15624, 9584, 23816, 9592, 32008, 9608, 9992, 9616, 18184,
+
247 9624, 26376, 9640, 12040, 9648, 20232, 9656, 28424, 9672, 14088, 9680, 22280, 9688, 30472, 9704, 16136,
+
248 9712, 24328, 9720, 32520, 9744, 16776, 9752, 24968, 9768, 10632, 9776, 18824, 9784, 27016, 9800, 12680,
+
249 9808, 20872, 9816, 29064, 9832, 14728, 9840, 22920, 9848, 31112, 9872, 17288, 9880, 25480, 9896, 11144,
+
250 9904, 19336, 9912, 27528, 9928, 13192, 9936, 21384, 9944, 29576, 9960, 15240, 9968, 23432, 9976, 31624,
+
251 10000, 17800, 10008, 25992, 10024, 11656, 10032, 19848, 10040, 28040, 10056, 13704, 10064, 21896, 10072, 30088,
+
252 10088, 15752, 10096, 23944, 10104, 32136, 10128, 18312, 10136, 26504, 10152, 12168, 10160, 20360, 10168, 28552,
+
253 10184, 14216, 10192, 22408, 10200, 30600, 10216, 16264, 10224, 24456, 10232, 32648, 10256, 16424, 10264, 24616,
+
254 10288, 18472, 10296, 26664, 10312, 12328, 10320, 20520, 10328, 28712, 10344, 14376, 10352, 22568, 10360, 30760,
+
255 10384, 16936, 10392, 25128, 10408, 10792, 10416, 18984, 10424, 27176, 10440, 12840, 10448, 21032, 10456, 29224,
+
256 10472, 14888, 10480, 23080, 10488, 31272, 10512, 17448, 10520, 25640, 10536, 11304, 10544, 19496, 10552, 27688,
+
257 10568, 13352, 10576, 21544, 10584, 29736, 10600, 15400, 10608, 23592, 10616, 31784, 10640, 17960, 10648, 26152,
+
258 10664, 11816, 10672, 20008, 10680, 28200, 10696, 13864, 10704, 22056, 10712, 30248, 10728, 15912, 10736, 24104,
+
259 10744, 32296, 10768, 16552, 10776, 24744, 10800, 18600, 10808, 26792, 10824, 12456, 10832, 20648, 10840, 28840,
+
260 10856, 14504, 10864, 22696, 10872, 30888, 10896, 17064, 10904, 25256, 10928, 19112, 10936, 27304, 10952, 12968,
+
261 10960, 21160, 10968, 29352, 10984, 15016, 10992, 23208, 11000, 31400, 11024, 17576, 11032, 25768, 11048, 11432,
+
262 11056, 19624, 11064, 27816, 11080, 13480, 11088, 21672, 11096, 29864, 11112, 15528, 11120, 23720, 11128, 31912,
+
263 11152, 18088, 11160, 26280, 11176, 11944, 11184, 20136, 11192, 28328, 11208, 13992, 11216, 22184, 11224, 30376,
+
264 11240, 16040, 11248, 24232, 11256, 32424, 11280, 16680, 11288, 24872, 11312, 18728, 11320, 26920, 11336, 12584,
+
265 11344, 20776, 11352, 28968, 11368, 14632, 11376, 22824, 11384, 31016, 11408, 17192, 11416, 25384, 11440, 19240,
+
266 11448, 27432, 11464, 13096, 11472, 21288, 11480, 29480, 11496, 15144, 11504, 23336, 11512, 31528, 11536, 17704,
+
267 11544, 25896, 11568, 19752, 11576, 27944, 11592, 13608, 11600, 21800, 11608, 29992, 11624, 15656, 11632, 23848,
+
268 11640, 32040, 11664, 18216, 11672, 26408, 11688, 12072, 11696, 20264, 11704, 28456, 11720, 14120, 11728, 22312,
+
269 11736, 30504, 11752, 16168, 11760, 24360, 11768, 32552, 11792, 16808, 11800, 25000, 11824, 18856, 11832, 27048,
+
270 11848, 12712, 11856, 20904, 11864, 29096, 11880, 14760, 11888, 22952, 11896, 31144, 11920, 17320, 11928, 25512,
+
271 11952, 19368, 11960, 27560, 11976, 13224, 11984, 21416, 11992, 29608, 12008, 15272, 12016, 23464, 12024, 31656,
+
272 12048, 17832, 12056, 26024, 12080, 19880, 12088, 28072, 12104, 13736, 12112, 21928, 12120, 30120, 12136, 15784,
+
273 12144, 23976, 12152, 32168, 12176, 18344, 12184, 26536, 12208, 20392, 12216, 28584, 12232, 14248, 12240, 22440,
+
274 12248, 30632, 12264, 16296, 12272, 24488, 12280, 32680, 12304, 16456, 12312, 24648, 12336, 18504, 12344, 26696,
+
275 12368, 20552, 12376, 28744, 12392, 14408, 12400, 22600, 12408, 30792, 12432, 16968, 12440, 25160, 12464, 19016,
+
276 12472, 27208, 12488, 12872, 12496, 21064, 12504, 29256, 12520, 14920, 12528, 23112, 12536, 31304, 12560, 17480,
+
277 12568, 25672, 12592, 19528, 12600, 27720, 12616, 13384, 12624, 21576, 12632, 29768, 12648, 15432, 12656, 23624,
+
278 12664, 31816, 12688, 17992, 12696, 26184, 12720, 20040, 12728, 28232, 12744, 13896, 12752, 22088, 12760, 30280,
+
279 12776, 15944, 12784, 24136, 12792, 32328, 12816, 16584, 12824, 24776, 12848, 18632, 12856, 26824, 12880, 20680,
+
280 12888, 28872, 12904, 14536, 12912, 22728, 12920, 30920, 12944, 17096, 12952, 25288, 12976, 19144, 12984, 27336,
+
281 13008, 21192, 13016, 29384, 13032, 15048, 13040, 23240, 13048, 31432, 13072, 17608, 13080, 25800, 13104, 19656,
+
282 13112, 27848, 13128, 13512, 13136, 21704, 13144, 29896, 13160, 15560, 13168, 23752, 13176, 31944, 13200, 18120,
+
283 13208, 26312, 13232, 20168, 13240, 28360, 13256, 14024, 13264, 22216, 13272, 30408, 13288, 16072, 13296, 24264,
+
284 13304, 32456, 13328, 16712, 13336, 24904, 13360, 18760, 13368, 26952, 13392, 20808, 13400, 29000, 13416, 14664,
+
285 13424, 22856, 13432, 31048, 13456, 17224, 13464, 25416, 13488, 19272, 13496, 27464, 13520, 21320, 13528, 29512,
+
286 13544, 15176, 13552, 23368, 13560, 31560, 13584, 17736, 13592, 25928, 13616, 19784, 13624, 27976, 13648, 21832,
+
287 13656, 30024, 13672, 15688, 13680, 23880, 13688, 32072, 13712, 18248, 13720, 26440, 13744, 20296, 13752, 28488,
+
288 13768, 14152, 13776, 22344, 13784, 30536, 13800, 16200, 13808, 24392, 13816, 32584, 13840, 16840, 13848, 25032,
+
289 13872, 18888, 13880, 27080, 13904, 20936, 13912, 29128, 13928, 14792, 13936, 22984, 13944, 31176, 13968, 17352,
+
290 13976, 25544, 14000, 19400, 14008, 27592, 14032, 21448, 14040, 29640, 14056, 15304, 14064, 23496, 14072, 31688,
+
291 14096, 17864, 14104, 26056, 14128, 19912, 14136, 28104, 14160, 21960, 14168, 30152, 14184, 15816, 14192, 24008,
+
292 14200, 32200, 14224, 18376, 14232, 26568, 14256, 20424, 14264, 28616, 14288, 22472, 14296, 30664, 14312, 16328,
+
293 14320, 24520, 14328, 32712, 14352, 16488, 14360, 24680, 14384, 18536, 14392, 26728, 14416, 20584, 14424, 28776,
+
294 14448, 22632, 14456, 30824, 14480, 17000, 14488, 25192, 14512, 19048, 14520, 27240, 14544, 21096, 14552, 29288,
+
295 14568, 14952, 14576, 23144, 14584, 31336, 14608, 17512, 14616, 25704, 14640, 19560, 14648, 27752, 14672, 21608,
+
296 14680, 29800, 14696, 15464, 14704, 23656, 14712, 31848, 14736, 18024, 14744, 26216, 14768, 20072, 14776, 28264,
+
297 14800, 22120, 14808, 30312, 14824, 15976, 14832, 24168, 14840, 32360, 14864, 16616, 14872, 24808, 14896, 18664,
+
298 14904, 26856, 14928, 20712, 14936, 28904, 14960, 22760, 14968, 30952, 14992, 17128, 15000, 25320, 15024, 19176,
+
299 15032, 27368, 15056, 21224, 15064, 29416, 15088, 23272, 15096, 31464, 15120, 17640, 15128, 25832, 15152, 19688,
+
300 15160, 27880, 15184, 21736, 15192, 29928, 15208, 15592, 15216, 23784, 15224, 31976, 15248, 18152, 15256, 26344,
+
301 15280, 20200, 15288, 28392, 15312, 22248, 15320, 30440, 15336, 16104, 15344, 24296, 15352, 32488, 15376, 16744,
+
302 15384, 24936, 15408, 18792, 15416, 26984, 15440, 20840, 15448, 29032, 15472, 22888, 15480, 31080, 15504, 17256,
+
303 15512, 25448, 15536, 19304, 15544, 27496, 15568, 21352, 15576, 29544, 15600, 23400, 15608, 31592, 15632, 17768,
+
304 15640, 25960, 15664, 19816, 15672, 28008, 15696, 21864, 15704, 30056, 15728, 23912, 15736, 32104, 15760, 18280,
+
305 15768, 26472, 15792, 20328, 15800, 28520, 15824, 22376, 15832, 30568, 15848, 16232, 15856, 24424, 15864, 32616,
+
306 15888, 16872, 15896, 25064, 15920, 18920, 15928, 27112, 15952, 20968, 15960, 29160, 15984, 23016, 15992, 31208,
+
307 16016, 17384, 16024, 25576, 16048, 19432, 16056, 27624, 16080, 21480, 16088, 29672, 16112, 23528, 16120, 31720,
+
308 16144, 17896, 16152, 26088, 16176, 19944, 16184, 28136, 16208, 21992, 16216, 30184, 16240, 24040, 16248, 32232,
+
309 16272, 18408, 16280, 26600, 16304, 20456, 16312, 28648, 16336, 22504, 16344, 30696, 16368, 24552, 16376, 32744,
+
310 16408, 24592, 16432, 18448, 16440, 26640, 16464, 20496, 16472, 28688, 16496, 22544, 16504, 30736, 16528, 16912,
+
311 16536, 25104, 16560, 18960, 16568, 27152, 16592, 21008, 16600, 29200, 16624, 23056, 16632, 31248, 16656, 17424,
+
312 16664, 25616, 16688, 19472, 16696, 27664, 16720, 21520, 16728, 29712, 16752, 23568, 16760, 31760, 16784, 17936,
+
313 16792, 26128, 16816, 19984, 16824, 28176, 16848, 22032, 16856, 30224, 16880, 24080, 16888, 32272, 16920, 24720,
+
314 16944, 18576, 16952, 26768, 16976, 20624, 16984, 28816, 17008, 22672, 17016, 30864, 17048, 25232, 17072, 19088,
+
315 17080, 27280, 17104, 21136, 17112, 29328, 17136, 23184, 17144, 31376, 17168, 17552, 17176, 25744, 17200, 19600,
+
316 17208, 27792, 17232, 21648, 17240, 29840, 17264, 23696, 17272, 31888, 17296, 18064, 17304, 26256, 17328, 20112,
+
317 17336, 28304, 17360, 22160, 17368, 30352, 17392, 24208, 17400, 32400, 17432, 24848, 17456, 18704, 17464, 26896,
+
318 17488, 20752, 17496, 28944, 17520, 22800, 17528, 30992, 17560, 25360, 17584, 19216, 17592, 27408, 17616, 21264,
+
319 17624, 29456, 17648, 23312, 17656, 31504, 17688, 25872, 17712, 19728, 17720, 27920, 17744, 21776, 17752, 29968,
+
320 17776, 23824, 17784, 32016, 17808, 18192, 17816, 26384, 17840, 20240, 17848, 28432, 17872, 22288, 17880, 30480,
+
321 17904, 24336, 17912, 32528, 17944, 24976, 17968, 18832, 17976, 27024, 18000, 20880, 18008, 29072, 18032, 22928,
+
322 18040, 31120, 18072, 25488, 18096, 19344, 18104, 27536, 18128, 21392, 18136, 29584, 18160, 23440, 18168, 31632,
+
323 18200, 26000, 18224, 19856, 18232, 28048, 18256, 21904, 18264, 30096, 18288, 23952, 18296, 32144, 18328, 26512,
+
324 18352, 20368, 18360, 28560, 18384, 22416, 18392, 30608, 18416, 24464, 18424, 32656, 18456, 24624, 18488, 26672,
+
325 18512, 20528, 18520, 28720, 18544, 22576, 18552, 30768, 18584, 25136, 18608, 18992, 18616, 27184, 18640, 21040,
+
326 18648, 29232, 18672, 23088, 18680, 31280, 18712, 25648, 18736, 19504, 18744, 27696, 18768, 21552, 18776, 29744,
+
327 18800, 23600, 18808, 31792, 18840, 26160, 18864, 20016, 18872, 28208, 18896, 22064, 18904, 30256, 18928, 24112,
+
328 18936, 32304, 18968, 24752, 19000, 26800, 19024, 20656, 19032, 28848, 19056, 22704, 19064, 30896, 19096, 25264,
+
329 19128, 27312, 19152, 21168, 19160, 29360, 19184, 23216, 19192, 31408, 19224, 25776, 19248, 19632, 19256, 27824,
+
330 19280, 21680, 19288, 29872, 19312, 23728, 19320, 31920, 19352, 26288, 19376, 20144, 19384, 28336, 19408, 22192,
+
331 19416, 30384, 19440, 24240, 19448, 32432, 19480, 24880, 19512, 26928, 19536, 20784, 19544, 28976, 19568, 22832,
+
332 19576, 31024, 19608, 25392, 19640, 27440, 19664, 21296, 19672, 29488, 19696, 23344, 19704, 31536, 19736, 25904,
+
333 19768, 27952, 19792, 21808, 19800, 30000, 19824, 23856, 19832, 32048, 19864, 26416, 19888, 20272, 19896, 28464,
+
334 19920, 22320, 19928, 30512, 19952, 24368, 19960, 32560, 19992, 25008, 20024, 27056, 20048, 20912, 20056, 29104,
+
335 20080, 22960, 20088, 31152, 20120, 25520, 20152, 27568, 20176, 21424, 20184, 29616, 20208, 23472, 20216, 31664,
+
336 20248, 26032, 20280, 28080, 20304, 21936, 20312, 30128, 20336, 23984, 20344, 32176, 20376, 26544, 20408, 28592,
+
337 20432, 22448, 20440, 30640, 20464, 24496, 20472, 32688, 20504, 24656, 20536, 26704, 20568, 28752, 20592, 22608,
+
338 20600, 30800, 20632, 25168, 20664, 27216, 20688, 21072, 20696, 29264, 20720, 23120, 20728, 31312, 20760, 25680,
+
339 20792, 27728, 20816, 21584, 20824, 29776, 20848, 23632, 20856, 31824, 20888, 26192, 20920, 28240, 20944, 22096,
+
340 20952, 30288, 20976, 24144, 20984, 32336, 21016, 24784, 21048, 26832, 21080, 28880, 21104, 22736, 21112, 30928,
+
341 21144, 25296, 21176, 27344, 21208, 29392, 21232, 23248, 21240, 31440, 21272, 25808, 21304, 27856, 21328, 21712,
+
342 21336, 29904, 21360, 23760, 21368, 31952, 21400, 26320, 21432, 28368, 21456, 22224, 21464, 30416, 21488, 24272,
+
343 21496, 32464, 21528, 24912, 21560, 26960, 21592, 29008, 21616, 22864, 21624, 31056, 21656, 25424, 21688, 27472,
+
344 21720, 29520, 21744, 23376, 21752, 31568, 21784, 25936, 21816, 27984, 21848, 30032, 21872, 23888, 21880, 32080,
+
345 21912, 26448, 21944, 28496, 21968, 22352, 21976, 30544, 22000, 24400, 22008, 32592, 22040, 25040, 22072, 27088,
+
346 22104, 29136, 22128, 22992, 22136, 31184, 22168, 25552, 22200, 27600, 22232, 29648, 22256, 23504, 22264, 31696,
+
347 22296, 26064, 22328, 28112, 22360, 30160, 22384, 24016, 22392, 32208, 22424, 26576, 22456, 28624, 22488, 30672,
+
348 22512, 24528, 22520, 32720, 22552, 24688, 22584, 26736, 22616, 28784, 22648, 30832, 22680, 25200, 22712, 27248,
+
349 22744, 29296, 22768, 23152, 22776, 31344, 22808, 25712, 22840, 27760, 22872, 29808, 22896, 23664, 22904, 31856,
+
350 22936, 26224, 22968, 28272, 23000, 30320, 23024, 24176, 23032, 32368, 23064, 24816, 23096, 26864, 23128, 28912,
+
351 23160, 30960, 23192, 25328, 23224, 27376, 23256, 29424, 23288, 31472, 23320, 25840, 23352, 27888, 23384, 29936,
+
352 23408, 23792, 23416, 31984, 23448, 26352, 23480, 28400, 23512, 30448, 23536, 24304, 23544, 32496, 23576, 24944,
+
353 23608, 26992, 23640, 29040, 23672, 31088, 23704, 25456, 23736, 27504, 23768, 29552, 23800, 31600, 23832, 25968,
+
354 23864, 28016, 23896, 30064, 23928, 32112, 23960, 26480, 23992, 28528, 24024, 30576, 24048, 24432, 24056, 32624,
+
355 24088, 25072, 24120, 27120, 24152, 29168, 24184, 31216, 24216, 25584, 24248, 27632, 24280, 29680, 24312, 31728,
+
356 24344, 26096, 24376, 28144, 24408, 30192, 24440, 32240, 24472, 26608, 24504, 28656, 24536, 30704, 24568, 32752,
+
357 24632, 26648, 24664, 28696, 24696, 30744, 24728, 25112, 24760, 27160, 24792, 29208, 24824, 31256, 24856, 25624,
+
358 24888, 27672, 24920, 29720, 24952, 31768, 24984, 26136, 25016, 28184, 25048, 30232, 25080, 32280, 25144, 26776,
+
359 25176, 28824, 25208, 30872, 25272, 27288, 25304, 29336, 25336, 31384, 25368, 25752, 25400, 27800, 25432, 29848,
+
360 25464, 31896, 25496, 26264, 25528, 28312, 25560, 30360, 25592, 32408, 25656, 26904, 25688, 28952, 25720, 31000,
+
361 25784, 27416, 25816, 29464, 25848, 31512, 25912, 27928, 25944, 29976, 25976, 32024, 26008, 26392, 26040, 28440,
+
362 26072, 30488, 26104, 32536, 26168, 27032, 26200, 29080, 26232, 31128, 26296, 27544, 26328, 29592, 26360, 31640,
+
363 26424, 28056, 26456, 30104, 26488, 32152, 26552, 28568, 26584, 30616, 26616, 32664, 26712, 28728, 26744, 30776,
+
364 26808, 27192, 26840, 29240, 26872, 31288, 26936, 27704, 26968, 29752, 27000, 31800, 27064, 28216, 27096, 30264,
+
365 27128, 32312, 27224, 28856, 27256, 30904, 27352, 29368, 27384, 31416, 27448, 27832, 27480, 29880, 27512, 31928,
+
366 27576, 28344, 27608, 30392, 27640, 32440, 27736, 28984, 27768, 31032, 27864, 29496, 27896, 31544, 27992, 30008,
+
367 28024, 32056, 28088, 28472, 28120, 30520, 28152, 32568, 28248, 29112, 28280, 31160, 28376, 29624, 28408, 31672,
+
368 28504, 30136, 28536, 32184, 28632, 30648, 28664, 32696, 28792, 30808, 28888, 29272, 28920, 31320, 29016, 29784,
+
369 29048, 31832, 29144, 30296, 29176, 32344, 29304, 30936, 29432, 31448, 29528, 29912, 29560, 31960, 29656, 30424,
+
370 29688, 32472, 29816, 31064, 29944, 31576, 30072, 32088, 30168, 30552, 30200, 32600, 30328, 31192, 30456, 31704,
+
371 30584, 32216, 30712, 32728, 30968, 31352, 31096, 31864, 31224, 32376, 31608, 31992, 31736, 32504, 32248, 32632,
+
372};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_4096_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev4r_table_4096_fc32_size = 2016
+
+ +

Definition at line 399 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev4r_table_64_fc32

+ +
+
+ + + + +
const uint16_t bitrev4r_table_64_fc32
+
+Initial value:
= {
+
8, 128, 16, 256, 24, 384, 40, 160, 48, 288, 56, 416, 72, 192, 80, 320,
+
88, 448, 104, 224, 112, 352, 120, 480, 144, 264, 152, 392, 176, 296, 184, 424,
+
208, 328, 216, 456, 240, 360, 248, 488, 280, 400, 312, 432, 344, 464, 376, 496,
+
}
+
+

Definition at line 26 of file dsps_fft4r_bitrev_tables_fc32.c.

+
26 {
+
27 8, 128, 16, 256, 24, 384, 40, 160, 48, 288, 56, 416, 72, 192, 80, 320,
+
28 88, 448, 104, 224, 112, 352, 120, 480, 144, 264, 152, 392, 176, 296, 184, 424,
+
29 208, 328, 216, 456, 240, 360, 248, 488, 280, 400, 312, 432, 344, 464, 376, 496,
+
30};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_64_fc32_size

+ +
+
+ + + + +
const uint16_t bitrev4r_table_64_fc32_size = 24
+
+ +

Definition at line 396 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ dsps_fft4r_rev_tables_fc32

+ +
+
+ + + + +
uint16_t* dsps_fft4r_rev_tables_fc32[]
+
+Initial value:
= {
+ + + + + +
}
+
+

Definition at line 387 of file dsps_fft4r_bitrev_tables_fc32.c.

+
387 {
+
388 (uint16_t *)bitrev4r_table_16_fc32,
+
389 (uint16_t *)bitrev4r_table_64_fc32,
+
390 (uint16_t *)bitrev4r_table_256_fc32,
+
391 (uint16_t *)bitrev4r_table_1024_fc32,
+
392 (uint16_t *)bitrev4r_table_4096_fc32,
+
393};
+
+

Referenced by dsps_bit_rev4r_fc32(), dsps_fft4r_init_fc32(), and dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ dsps_fft4r_rev_tables_fc32_size

+ +
+
+ + + + +
const uint16_t dsps_fft4r_rev_tables_fc32_size[]
+
+Initial value:
= {
+
(const uint16_t)6,
+
(const uint16_t)24,
+
(const uint16_t)120,
+
(const uint16_t)480,
+
(const uint16_t)2016,
+
}
+
+

Definition at line 401 of file dsps_fft4r_bitrev_tables_fc32.c.

+
401 {
+
402 (const uint16_t)6, // bitrev4r_table_16_fc32_size,
+
403 (const uint16_t)24, // bitrev4r_table_64_fc32_size,
+
404 (const uint16_t)120, // bitrev4r_table_256_fc32_size,
+
405 (const uint16_t)480, // bitrev4r_table_1024_fc32_size,
+
406 (const uint16_t)2016,// bitrev4r_table_4096_fc32_size,
+
407};
+
+

Referenced by dsps_bit_rev4r_fc32(), and dsps_fft4r_init_fc32().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft4r__bitrev__tables__fc32_8c.js b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c.js new file mode 100644 index 0000000..734faba --- /dev/null +++ b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c.js @@ -0,0 +1,16 @@ +var dsps__fft4r__bitrev__tables__fc32_8c = +[ + [ "dsps_fft4r_rev_tables_init_fc32", "dsps__fft4r__bitrev__tables__fc32_8c.html#a1ca49ce69b3802614ebf7ab2547c980e", null ], + [ "bitrev4r_table_1024_fc32", "dsps__fft4r__bitrev__tables__fc32_8c.html#a93d943c6eb21bbc0f701d8a26137fb6e", null ], + [ "bitrev4r_table_1024_fc32_size", "dsps__fft4r__bitrev__tables__fc32_8c.html#a8457229314cfc088306aaf7d389d1c13", null ], + [ "bitrev4r_table_16_fc32", "dsps__fft4r__bitrev__tables__fc32_8c.html#aacfa4b38a60c1a5b3024316ed236d1bc", null ], + [ "bitrev4r_table_16_fc32_size", "dsps__fft4r__bitrev__tables__fc32_8c.html#a6a62e41690ba0704eb1fafd17f9e1895", null ], + [ "bitrev4r_table_256_fc32", "dsps__fft4r__bitrev__tables__fc32_8c.html#a51c6866f7b964c7fc50578c7c81e02e2", null ], + [ "bitrev4r_table_256_fc32_size", "dsps__fft4r__bitrev__tables__fc32_8c.html#a496fa4d2a9c6cd7a446dfcecfc9379d4", null ], + [ "bitrev4r_table_4096_fc32", "dsps__fft4r__bitrev__tables__fc32_8c.html#a481910b8b9c95749ef2a4c429d59ee4e", null ], + [ "bitrev4r_table_4096_fc32_size", "dsps__fft4r__bitrev__tables__fc32_8c.html#ad53f71c86adb2c75157da0cd1358298e", null ], + [ "bitrev4r_table_64_fc32", "dsps__fft4r__bitrev__tables__fc32_8c.html#a0ab10a7c84c981aa4a9c31c344991fd0", null ], + [ "bitrev4r_table_64_fc32_size", "dsps__fft4r__bitrev__tables__fc32_8c.html#a507f46710082488728276a18b3d60a31", null ], + [ "dsps_fft4r_rev_tables_fc32", "dsps__fft4r__bitrev__tables__fc32_8c.html#a63631e8234941329367df932b82f12a1", null ], + [ "dsps_fft4r_rev_tables_fc32_size", "dsps__fft4r__bitrev__tables__fc32_8c.html#a6f5dc628e01571d50b87e89418e9c300", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl.md5 b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl.md5 new file mode 100644 index 0000000..95c5c9b --- /dev/null +++ b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl.md5 @@ -0,0 +1 @@ +1d53f74043d28a63f1cd9e0a6a8d78bb \ No newline at end of file diff --git a/docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl.svg b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl.svg new file mode 100644 index 0000000..d154542 --- /dev/null +++ b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +dsps_fft4r_bitrev_tables_fc32.c + + +Node1 + + +dsps_fft4r_bitrev_tables +_fc32.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft_tables.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl_org.svg b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl_org.svg new file mode 100644 index 0000000..5d539e9 --- /dev/null +++ b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c__incl_org.svg @@ -0,0 +1,58 @@ + + + + + + +dsps_fft4r_bitrev_tables_fc32.c + + +Node1 + + +dsps_fft4r_bitrev_tables +_fc32.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft_tables.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.md5 b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.md5 new file mode 100644 index 0000000..5053cb0 --- /dev/null +++ b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.md5 @@ -0,0 +1 @@ +4c2cf771dce69703cea4dac01751a6c8 \ No newline at end of file diff --git a/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.svg b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.svg new file mode 100644 index 0000000..bd04bde --- /dev/null +++ b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_fft4r_rev_tables_init_fc32 + + +Node1 + + +dsps_fft4r_rev_tables +_init_fc32 + + + + + +Node2 + + +dsps_fft4r_deinit_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph_org.svg b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph_org.svg new file mode 100644 index 0000000..dda9c61 --- /dev/null +++ b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_a1ca49ce69b3802614ebf7ab2547c980e_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_fft4r_rev_tables_init_fc32 + + +Node1 + + +dsps_fft4r_rev_tables +_init_fc32 + + + + + +Node2 + + +dsps_fft4r_deinit_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_source.html b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_source.html new file mode 100644 index 0000000..019f46f --- /dev/null +++ b/docs/html/dsps__fft4r__bitrev__tables__fc32_8c_source.html @@ -0,0 +1,543 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r_bitrev_tables_fc32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r_bitrev_tables_fc32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#include <stdint.h>
+
17#include "dsps_fft_tables.h"
+
18
+
19
+
+
20const uint16_t bitrev4r_table_16_fc32[] = {
+
21 8, 32, 16, 64, 24, 96, 48, 72, 56, 104, 88, 112,
+
22};
+
+
23extern const uint16_t bitrev4r_table_16_fc32[];
+
24extern const uint16_t bitrev4r_table_16_fc32_size;
+
25
+
+
26const uint16_t bitrev4r_table_64_fc32[] = {
+
27 8, 128, 16, 256, 24, 384, 40, 160, 48, 288, 56, 416, 72, 192, 80, 320,
+
28 88, 448, 104, 224, 112, 352, 120, 480, 144, 264, 152, 392, 176, 296, 184, 424,
+
29 208, 328, 216, 456, 240, 360, 248, 488, 280, 400, 312, 432, 344, 464, 376, 496,
+
30};
+
+
31extern const uint16_t bitrev4r_table_64_fc32[];
+
32extern const uint16_t bitrev4r_table_64_fc32_size;
+
33
+
+
34const uint16_t bitrev4r_table_256_fc32[] = {
+
35 8, 512, 16, 1024, 24, 1536, 32, 128, 40, 640, 48, 1152, 56, 1664, 64, 256,
+
36 72, 768, 80, 1280, 88, 1792, 96, 384, 104, 896, 112, 1408, 120, 1920, 136, 544,
+
37 144, 1056, 152, 1568, 168, 672, 176, 1184, 184, 1696, 192, 288, 200, 800, 208, 1312,
+
38 216, 1824, 224, 416, 232, 928, 240, 1440, 248, 1952, 264, 576, 272, 1088, 280, 1600,
+
39 296, 704, 304, 1216, 312, 1728, 328, 832, 336, 1344, 344, 1856, 352, 448, 360, 960,
+
40 368, 1472, 376, 1984, 392, 608, 400, 1120, 408, 1632, 424, 736, 432, 1248, 440, 1760,
+
41 456, 864, 464, 1376, 472, 1888, 488, 992, 496, 1504, 504, 2016, 528, 1032, 536, 1544,
+
42 552, 648, 560, 1160, 568, 1672, 584, 776, 592, 1288, 600, 1800, 616, 904, 624, 1416,
+
43 632, 1928, 656, 1064, 664, 1576, 688, 1192, 696, 1704, 712, 808, 720, 1320, 728, 1832,
+
44 744, 936, 752, 1448, 760, 1960, 784, 1096, 792, 1608, 816, 1224, 824, 1736, 848, 1352,
+
45 856, 1864, 872, 968, 880, 1480, 888, 1992, 912, 1128, 920, 1640, 944, 1256, 952, 1768,
+
46 976, 1384, 984, 1896, 1008, 1512, 1016, 2024, 1048, 1552, 1072, 1168, 1080, 1680, 1104, 1296,
+
47 1112, 1808, 1136, 1424, 1144, 1936, 1176, 1584, 1208, 1712, 1232, 1328, 1240, 1840, 1264, 1456,
+
48 1272, 1968, 1304, 1616, 1336, 1744, 1368, 1872, 1392, 1488, 1400, 2000, 1432, 1648, 1464, 1776,
+
49 1496, 1904, 1528, 2032, 1592, 1688, 1624, 1816, 1656, 1944, 1752, 1848, 1784, 1976, 1912, 2008,
+
50};
+
+
51extern const uint16_t bitrev4r_table_256_fc32[];
+
52extern const uint16_t bitrev4r_table_256_fc32_size;
+
53
+
+
54const uint16_t bitrev4r_table_1024_fc32[] = {
+
55 8, 2048, 16, 4096, 24, 6144, 32, 512, 40, 2560, 48, 4608, 56, 6656, 64, 1024,
+
56 72, 3072, 80, 5120, 88, 7168, 96, 1536, 104, 3584, 112, 5632, 120, 7680, 136, 2176,
+
57 144, 4224, 152, 6272, 160, 640, 168, 2688, 176, 4736, 184, 6784, 192, 1152, 200, 3200,
+
58 208, 5248, 216, 7296, 224, 1664, 232, 3712, 240, 5760, 248, 7808, 264, 2304, 272, 4352,
+
59 280, 6400, 288, 768, 296, 2816, 304, 4864, 312, 6912, 320, 1280, 328, 3328, 336, 5376,
+
60 344, 7424, 352, 1792, 360, 3840, 368, 5888, 376, 7936, 392, 2432, 400, 4480, 408, 6528,
+
61 416, 896, 424, 2944, 432, 4992, 440, 7040, 448, 1408, 456, 3456, 464, 5504, 472, 7552,
+
62 480, 1920, 488, 3968, 496, 6016, 504, 8064, 520, 2080, 528, 4128, 536, 6176, 552, 2592,
+
63 560, 4640, 568, 6688, 576, 1056, 584, 3104, 592, 5152, 600, 7200, 608, 1568, 616, 3616,
+
64 624, 5664, 632, 7712, 648, 2208, 656, 4256, 664, 6304, 680, 2720, 688, 4768, 696, 6816,
+
65 704, 1184, 712, 3232, 720, 5280, 728, 7328, 736, 1696, 744, 3744, 752, 5792, 760, 7840,
+
66 776, 2336, 784, 4384, 792, 6432, 808, 2848, 816, 4896, 824, 6944, 832, 1312, 840, 3360,
+
67 848, 5408, 856, 7456, 864, 1824, 872, 3872, 880, 5920, 888, 7968, 904, 2464, 912, 4512,
+
68 920, 6560, 936, 2976, 944, 5024, 952, 7072, 960, 1440, 968, 3488, 976, 5536, 984, 7584,
+
69 992, 1952, 1000, 4000, 1008, 6048, 1016, 8096, 1032, 2112, 1040, 4160, 1048, 6208, 1064, 2624,
+
70 1072, 4672, 1080, 6720, 1096, 3136, 1104, 5184, 1112, 7232, 1120, 1600, 1128, 3648, 1136, 5696,
+
71 1144, 7744, 1160, 2240, 1168, 4288, 1176, 6336, 1192, 2752, 1200, 4800, 1208, 6848, 1224, 3264,
+
72 1232, 5312, 1240, 7360, 1248, 1728, 1256, 3776, 1264, 5824, 1272, 7872, 1288, 2368, 1296, 4416,
+
73 1304, 6464, 1320, 2880, 1328, 4928, 1336, 6976, 1352, 3392, 1360, 5440, 1368, 7488, 1376, 1856,
+
74 1384, 3904, 1392, 5952, 1400, 8000, 1416, 2496, 1424, 4544, 1432, 6592, 1448, 3008, 1456, 5056,
+
75 1464, 7104, 1480, 3520, 1488, 5568, 1496, 7616, 1504, 1984, 1512, 4032, 1520, 6080, 1528, 8128,
+
76 1544, 2144, 1552, 4192, 1560, 6240, 1576, 2656, 1584, 4704, 1592, 6752, 1608, 3168, 1616, 5216,
+
77 1624, 7264, 1640, 3680, 1648, 5728, 1656, 7776, 1672, 2272, 1680, 4320, 1688, 6368, 1704, 2784,
+
78 1712, 4832, 1720, 6880, 1736, 3296, 1744, 5344, 1752, 7392, 1768, 3808, 1776, 5856, 1784, 7904,
+
79 1800, 2400, 1808, 4448, 1816, 6496, 1832, 2912, 1840, 4960, 1848, 7008, 1864, 3424, 1872, 5472,
+
80 1880, 7520, 1896, 3936, 1904, 5984, 1912, 8032, 1928, 2528, 1936, 4576, 1944, 6624, 1960, 3040,
+
81 1968, 5088, 1976, 7136, 1992, 3552, 2000, 5600, 2008, 7648, 2024, 4064, 2032, 6112, 2040, 8160,
+
82 2064, 4104, 2072, 6152, 2088, 2568, 2096, 4616, 2104, 6664, 2120, 3080, 2128, 5128, 2136, 7176,
+
83 2152, 3592, 2160, 5640, 2168, 7688, 2192, 4232, 2200, 6280, 2216, 2696, 2224, 4744, 2232, 6792,
+
84 2248, 3208, 2256, 5256, 2264, 7304, 2280, 3720, 2288, 5768, 2296, 7816, 2320, 4360, 2328, 6408,
+
85 2344, 2824, 2352, 4872, 2360, 6920, 2376, 3336, 2384, 5384, 2392, 7432, 2408, 3848, 2416, 5896,
+
86 2424, 7944, 2448, 4488, 2456, 6536, 2472, 2952, 2480, 5000, 2488, 7048, 2504, 3464, 2512, 5512,
+
87 2520, 7560, 2536, 3976, 2544, 6024, 2552, 8072, 2576, 4136, 2584, 6184, 2608, 4648, 2616, 6696,
+
88 2632, 3112, 2640, 5160, 2648, 7208, 2664, 3624, 2672, 5672, 2680, 7720, 2704, 4264, 2712, 6312,
+
89 2736, 4776, 2744, 6824, 2760, 3240, 2768, 5288, 2776, 7336, 2792, 3752, 2800, 5800, 2808, 7848,
+
90 2832, 4392, 2840, 6440, 2864, 4904, 2872, 6952, 2888, 3368, 2896, 5416, 2904, 7464, 2920, 3880,
+
91 2928, 5928, 2936, 7976, 2960, 4520, 2968, 6568, 2992, 5032, 3000, 7080, 3016, 3496, 3024, 5544,
+
92 3032, 7592, 3048, 4008, 3056, 6056, 3064, 8104, 3088, 4168, 3096, 6216, 3120, 4680, 3128, 6728,
+
93 3152, 5192, 3160, 7240, 3176, 3656, 3184, 5704, 3192, 7752, 3216, 4296, 3224, 6344, 3248, 4808,
+
94 3256, 6856, 3280, 5320, 3288, 7368, 3304, 3784, 3312, 5832, 3320, 7880, 3344, 4424, 3352, 6472,
+
95 3376, 4936, 3384, 6984, 3408, 5448, 3416, 7496, 3432, 3912, 3440, 5960, 3448, 8008, 3472, 4552,
+
96 3480, 6600, 3504, 5064, 3512, 7112, 3536, 5576, 3544, 7624, 3560, 4040, 3568, 6088, 3576, 8136,
+
97 3600, 4200, 3608, 6248, 3632, 4712, 3640, 6760, 3664, 5224, 3672, 7272, 3696, 5736, 3704, 7784,
+
98 3728, 4328, 3736, 6376, 3760, 4840, 3768, 6888, 3792, 5352, 3800, 7400, 3824, 5864, 3832, 7912,
+
99 3856, 4456, 3864, 6504, 3888, 4968, 3896, 7016, 3920, 5480, 3928, 7528, 3952, 5992, 3960, 8040,
+
100 3984, 4584, 3992, 6632, 4016, 5096, 4024, 7144, 4048, 5608, 4056, 7656, 4080, 6120, 4088, 8168,
+
101 4120, 6160, 4144, 4624, 4152, 6672, 4176, 5136, 4184, 7184, 4208, 5648, 4216, 7696, 4248, 6288,
+
102 4272, 4752, 4280, 6800, 4304, 5264, 4312, 7312, 4336, 5776, 4344, 7824, 4376, 6416, 4400, 4880,
+
103 4408, 6928, 4432, 5392, 4440, 7440, 4464, 5904, 4472, 7952, 4504, 6544, 4528, 5008, 4536, 7056,
+
104 4560, 5520, 4568, 7568, 4592, 6032, 4600, 8080, 4632, 6192, 4664, 6704, 4688, 5168, 4696, 7216,
+
105 4720, 5680, 4728, 7728, 4760, 6320, 4792, 6832, 4816, 5296, 4824, 7344, 4848, 5808, 4856, 7856,
+
106 4888, 6448, 4920, 6960, 4944, 5424, 4952, 7472, 4976, 5936, 4984, 7984, 5016, 6576, 5048, 7088,
+
107 5072, 5552, 5080, 7600, 5104, 6064, 5112, 8112, 5144, 6224, 5176, 6736, 5208, 7248, 5232, 5712,
+
108 5240, 7760, 5272, 6352, 5304, 6864, 5336, 7376, 5360, 5840, 5368, 7888, 5400, 6480, 5432, 6992,
+
109 5464, 7504, 5488, 5968, 5496, 8016, 5528, 6608, 5560, 7120, 5592, 7632, 5616, 6096, 5624, 8144,
+
110 5656, 6256, 5688, 6768, 5720, 7280, 5752, 7792, 5784, 6384, 5816, 6896, 5848, 7408, 5880, 7920,
+
111 5912, 6512, 5944, 7024, 5976, 7536, 6008, 8048, 6040, 6640, 6072, 7152, 6104, 7664, 6136, 8176,
+
112 6200, 6680, 6232, 7192, 6264, 7704, 6328, 6808, 6360, 7320, 6392, 7832, 6456, 6936, 6488, 7448,
+
113 6520, 7960, 6584, 7064, 6616, 7576, 6648, 8088, 6744, 7224, 6776, 7736, 6872, 7352, 6904, 7864,
+
114 7000, 7480, 7032, 7992, 7128, 7608, 7160, 8120, 7288, 7768, 7416, 7896, 7544, 8024, 7672, 8152,
+
115};
+
+
116extern const uint16_t bitrev4r_table_1024_fc32[];
+
117extern const uint16_t bitrev4r_table_1024_fc32_size;
+
118
+
+
119const uint16_t bitrev4r_table_4096_fc32[] = {
+
120 8, 8192, 16, 16384, 24, 24576, 32, 2048, 40, 10240, 48, 18432, 56, 26624, 64, 4096,
+
121 72, 12288, 80, 20480, 88, 28672, 96, 6144, 104, 14336, 112, 22528, 120, 30720, 128, 512,
+
122 136, 8704, 144, 16896, 152, 25088, 160, 2560, 168, 10752, 176, 18944, 184, 27136, 192, 4608,
+
123 200, 12800, 208, 20992, 216, 29184, 224, 6656, 232, 14848, 240, 23040, 248, 31232, 256, 1024,
+
124 264, 9216, 272, 17408, 280, 25600, 288, 3072, 296, 11264, 304, 19456, 312, 27648, 320, 5120,
+
125 328, 13312, 336, 21504, 344, 29696, 352, 7168, 360, 15360, 368, 23552, 376, 31744, 384, 1536,
+
126 392, 9728, 400, 17920, 408, 26112, 416, 3584, 424, 11776, 432, 19968, 440, 28160, 448, 5632,
+
127 456, 13824, 464, 22016, 472, 30208, 480, 7680, 488, 15872, 496, 24064, 504, 32256, 520, 8320,
+
128 528, 16512, 536, 24704, 544, 2176, 552, 10368, 560, 18560, 568, 26752, 576, 4224, 584, 12416,
+
129 592, 20608, 600, 28800, 608, 6272, 616, 14464, 624, 22656, 632, 30848, 648, 8832, 656, 17024,
+
130 664, 25216, 672, 2688, 680, 10880, 688, 19072, 696, 27264, 704, 4736, 712, 12928, 720, 21120,
+
131 728, 29312, 736, 6784, 744, 14976, 752, 23168, 760, 31360, 768, 1152, 776, 9344, 784, 17536,
+
132 792, 25728, 800, 3200, 808, 11392, 816, 19584, 824, 27776, 832, 5248, 840, 13440, 848, 21632,
+
133 856, 29824, 864, 7296, 872, 15488, 880, 23680, 888, 31872, 896, 1664, 904, 9856, 912, 18048,
+
134 920, 26240, 928, 3712, 936, 11904, 944, 20096, 952, 28288, 960, 5760, 968, 13952, 976, 22144,
+
135 984, 30336, 992, 7808, 1000, 16000, 1008, 24192, 1016, 32384, 1032, 8448, 1040, 16640, 1048, 24832,
+
136 1056, 2304, 1064, 10496, 1072, 18688, 1080, 26880, 1088, 4352, 1096, 12544, 1104, 20736, 1112, 28928,
+
137 1120, 6400, 1128, 14592, 1136, 22784, 1144, 30976, 1160, 8960, 1168, 17152, 1176, 25344, 1184, 2816,
+
138 1192, 11008, 1200, 19200, 1208, 27392, 1216, 4864, 1224, 13056, 1232, 21248, 1240, 29440, 1248, 6912,
+
139 1256, 15104, 1264, 23296, 1272, 31488, 1288, 9472, 1296, 17664, 1304, 25856, 1312, 3328, 1320, 11520,
+
140 1328, 19712, 1336, 27904, 1344, 5376, 1352, 13568, 1360, 21760, 1368, 29952, 1376, 7424, 1384, 15616,
+
141 1392, 23808, 1400, 32000, 1408, 1792, 1416, 9984, 1424, 18176, 1432, 26368, 1440, 3840, 1448, 12032,
+
142 1456, 20224, 1464, 28416, 1472, 5888, 1480, 14080, 1488, 22272, 1496, 30464, 1504, 7936, 1512, 16128,
+
143 1520, 24320, 1528, 32512, 1544, 8576, 1552, 16768, 1560, 24960, 1568, 2432, 1576, 10624, 1584, 18816,
+
144 1592, 27008, 1600, 4480, 1608, 12672, 1616, 20864, 1624, 29056, 1632, 6528, 1640, 14720, 1648, 22912,
+
145 1656, 31104, 1672, 9088, 1680, 17280, 1688, 25472, 1696, 2944, 1704, 11136, 1712, 19328, 1720, 27520,
+
146 1728, 4992, 1736, 13184, 1744, 21376, 1752, 29568, 1760, 7040, 1768, 15232, 1776, 23424, 1784, 31616,
+
147 1800, 9600, 1808, 17792, 1816, 25984, 1824, 3456, 1832, 11648, 1840, 19840, 1848, 28032, 1856, 5504,
+
148 1864, 13696, 1872, 21888, 1880, 30080, 1888, 7552, 1896, 15744, 1904, 23936, 1912, 32128, 1928, 10112,
+
149 1936, 18304, 1944, 26496, 1952, 3968, 1960, 12160, 1968, 20352, 1976, 28544, 1984, 6016, 1992, 14208,
+
150 2000, 22400, 2008, 30592, 2016, 8064, 2024, 16256, 2032, 24448, 2040, 32640, 2056, 8224, 2064, 16416,
+
151 2072, 24608, 2088, 10272, 2096, 18464, 2104, 26656, 2112, 4128, 2120, 12320, 2128, 20512, 2136, 28704,
+
152 2144, 6176, 2152, 14368, 2160, 22560, 2168, 30752, 2184, 8736, 2192, 16928, 2200, 25120, 2208, 2592,
+
153 2216, 10784, 2224, 18976, 2232, 27168, 2240, 4640, 2248, 12832, 2256, 21024, 2264, 29216, 2272, 6688,
+
154 2280, 14880, 2288, 23072, 2296, 31264, 2312, 9248, 2320, 17440, 2328, 25632, 2336, 3104, 2344, 11296,
+
155 2352, 19488, 2360, 27680, 2368, 5152, 2376, 13344, 2384, 21536, 2392, 29728, 2400, 7200, 2408, 15392,
+
156 2416, 23584, 2424, 31776, 2440, 9760, 2448, 17952, 2456, 26144, 2464, 3616, 2472, 11808, 2480, 20000,
+
157 2488, 28192, 2496, 5664, 2504, 13856, 2512, 22048, 2520, 30240, 2528, 7712, 2536, 15904, 2544, 24096,
+
158 2552, 32288, 2568, 8352, 2576, 16544, 2584, 24736, 2600, 10400, 2608, 18592, 2616, 26784, 2624, 4256,
+
159 2632, 12448, 2640, 20640, 2648, 28832, 2656, 6304, 2664, 14496, 2672, 22688, 2680, 30880, 2696, 8864,
+
160 2704, 17056, 2712, 25248, 2728, 10912, 2736, 19104, 2744, 27296, 2752, 4768, 2760, 12960, 2768, 21152,
+
161 2776, 29344, 2784, 6816, 2792, 15008, 2800, 23200, 2808, 31392, 2824, 9376, 2832, 17568, 2840, 25760,
+
162 2848, 3232, 2856, 11424, 2864, 19616, 2872, 27808, 2880, 5280, 2888, 13472, 2896, 21664, 2904, 29856,
+
163 2912, 7328, 2920, 15520, 2928, 23712, 2936, 31904, 2952, 9888, 2960, 18080, 2968, 26272, 2976, 3744,
+
164 2984, 11936, 2992, 20128, 3000, 28320, 3008, 5792, 3016, 13984, 3024, 22176, 3032, 30368, 3040, 7840,
+
165 3048, 16032, 3056, 24224, 3064, 32416, 3080, 8480, 3088, 16672, 3096, 24864, 3112, 10528, 3120, 18720,
+
166 3128, 26912, 3136, 4384, 3144, 12576, 3152, 20768, 3160, 28960, 3168, 6432, 3176, 14624, 3184, 22816,
+
167 3192, 31008, 3208, 8992, 3216, 17184, 3224, 25376, 3240, 11040, 3248, 19232, 3256, 27424, 3264, 4896,
+
168 3272, 13088, 3280, 21280, 3288, 29472, 3296, 6944, 3304, 15136, 3312, 23328, 3320, 31520, 3336, 9504,
+
169 3344, 17696, 3352, 25888, 3368, 11552, 3376, 19744, 3384, 27936, 3392, 5408, 3400, 13600, 3408, 21792,
+
170 3416, 29984, 3424, 7456, 3432, 15648, 3440, 23840, 3448, 32032, 3464, 10016, 3472, 18208, 3480, 26400,
+
171 3488, 3872, 3496, 12064, 3504, 20256, 3512, 28448, 3520, 5920, 3528, 14112, 3536, 22304, 3544, 30496,
+
172 3552, 7968, 3560, 16160, 3568, 24352, 3576, 32544, 3592, 8608, 3600, 16800, 3608, 24992, 3624, 10656,
+
173 3632, 18848, 3640, 27040, 3648, 4512, 3656, 12704, 3664, 20896, 3672, 29088, 3680, 6560, 3688, 14752,
+
174 3696, 22944, 3704, 31136, 3720, 9120, 3728, 17312, 3736, 25504, 3752, 11168, 3760, 19360, 3768, 27552,
+
175 3776, 5024, 3784, 13216, 3792, 21408, 3800, 29600, 3808, 7072, 3816, 15264, 3824, 23456, 3832, 31648,
+
176 3848, 9632, 3856, 17824, 3864, 26016, 3880, 11680, 3888, 19872, 3896, 28064, 3904, 5536, 3912, 13728,
+
177 3920, 21920, 3928, 30112, 3936, 7584, 3944, 15776, 3952, 23968, 3960, 32160, 3976, 10144, 3984, 18336,
+
178 3992, 26528, 4008, 12192, 4016, 20384, 4024, 28576, 4032, 6048, 4040, 14240, 4048, 22432, 4056, 30624,
+
179 4064, 8096, 4072, 16288, 4080, 24480, 4088, 32672, 4104, 8256, 4112, 16448, 4120, 24640, 4136, 10304,
+
180 4144, 18496, 4152, 26688, 4168, 12352, 4176, 20544, 4184, 28736, 4192, 6208, 4200, 14400, 4208, 22592,
+
181 4216, 30784, 4232, 8768, 4240, 16960, 4248, 25152, 4264, 10816, 4272, 19008, 4280, 27200, 4288, 4672,
+
182 4296, 12864, 4304, 21056, 4312, 29248, 4320, 6720, 4328, 14912, 4336, 23104, 4344, 31296, 4360, 9280,
+
183 4368, 17472, 4376, 25664, 4392, 11328, 4400, 19520, 4408, 27712, 4416, 5184, 4424, 13376, 4432, 21568,
+
184 4440, 29760, 4448, 7232, 4456, 15424, 4464, 23616, 4472, 31808, 4488, 9792, 4496, 17984, 4504, 26176,
+
185 4520, 11840, 4528, 20032, 4536, 28224, 4544, 5696, 4552, 13888, 4560, 22080, 4568, 30272, 4576, 7744,
+
186 4584, 15936, 4592, 24128, 4600, 32320, 4616, 8384, 4624, 16576, 4632, 24768, 4648, 10432, 4656, 18624,
+
187 4664, 26816, 4680, 12480, 4688, 20672, 4696, 28864, 4704, 6336, 4712, 14528, 4720, 22720, 4728, 30912,
+
188 4744, 8896, 4752, 17088, 4760, 25280, 4776, 10944, 4784, 19136, 4792, 27328, 4808, 12992, 4816, 21184,
+
189 4824, 29376, 4832, 6848, 4840, 15040, 4848, 23232, 4856, 31424, 4872, 9408, 4880, 17600, 4888, 25792,
+
190 4904, 11456, 4912, 19648, 4920, 27840, 4928, 5312, 4936, 13504, 4944, 21696, 4952, 29888, 4960, 7360,
+
191 4968, 15552, 4976, 23744, 4984, 31936, 5000, 9920, 5008, 18112, 5016, 26304, 5032, 11968, 5040, 20160,
+
192 5048, 28352, 5056, 5824, 5064, 14016, 5072, 22208, 5080, 30400, 5088, 7872, 5096, 16064, 5104, 24256,
+
193 5112, 32448, 5128, 8512, 5136, 16704, 5144, 24896, 5160, 10560, 5168, 18752, 5176, 26944, 5192, 12608,
+
194 5200, 20800, 5208, 28992, 5216, 6464, 5224, 14656, 5232, 22848, 5240, 31040, 5256, 9024, 5264, 17216,
+
195 5272, 25408, 5288, 11072, 5296, 19264, 5304, 27456, 5320, 13120, 5328, 21312, 5336, 29504, 5344, 6976,
+
196 5352, 15168, 5360, 23360, 5368, 31552, 5384, 9536, 5392, 17728, 5400, 25920, 5416, 11584, 5424, 19776,
+
197 5432, 27968, 5448, 13632, 5456, 21824, 5464, 30016, 5472, 7488, 5480, 15680, 5488, 23872, 5496, 32064,
+
198 5512, 10048, 5520, 18240, 5528, 26432, 5544, 12096, 5552, 20288, 5560, 28480, 5568, 5952, 5576, 14144,
+
199 5584, 22336, 5592, 30528, 5600, 8000, 5608, 16192, 5616, 24384, 5624, 32576, 5640, 8640, 5648, 16832,
+
200 5656, 25024, 5672, 10688, 5680, 18880, 5688, 27072, 5704, 12736, 5712, 20928, 5720, 29120, 5728, 6592,
+
201 5736, 14784, 5744, 22976, 5752, 31168, 5768, 9152, 5776, 17344, 5784, 25536, 5800, 11200, 5808, 19392,
+
202 5816, 27584, 5832, 13248, 5840, 21440, 5848, 29632, 5856, 7104, 5864, 15296, 5872, 23488, 5880, 31680,
+
203 5896, 9664, 5904, 17856, 5912, 26048, 5928, 11712, 5936, 19904, 5944, 28096, 5960, 13760, 5968, 21952,
+
204 5976, 30144, 5984, 7616, 5992, 15808, 6000, 24000, 6008, 32192, 6024, 10176, 6032, 18368, 6040, 26560,
+
205 6056, 12224, 6064, 20416, 6072, 28608, 6088, 14272, 6096, 22464, 6104, 30656, 6112, 8128, 6120, 16320,
+
206 6128, 24512, 6136, 32704, 6152, 8288, 6160, 16480, 6168, 24672, 6184, 10336, 6192, 18528, 6200, 26720,
+
207 6216, 12384, 6224, 20576, 6232, 28768, 6248, 14432, 6256, 22624, 6264, 30816, 6280, 8800, 6288, 16992,
+
208 6296, 25184, 6312, 10848, 6320, 19040, 6328, 27232, 6344, 12896, 6352, 21088, 6360, 29280, 6368, 6752,
+
209 6376, 14944, 6384, 23136, 6392, 31328, 6408, 9312, 6416, 17504, 6424, 25696, 6440, 11360, 6448, 19552,
+
210 6456, 27744, 6472, 13408, 6480, 21600, 6488, 29792, 6496, 7264, 6504, 15456, 6512, 23648, 6520, 31840,
+
211 6536, 9824, 6544, 18016, 6552, 26208, 6568, 11872, 6576, 20064, 6584, 28256, 6600, 13920, 6608, 22112,
+
212 6616, 30304, 6624, 7776, 6632, 15968, 6640, 24160, 6648, 32352, 6664, 8416, 6672, 16608, 6680, 24800,
+
213 6696, 10464, 6704, 18656, 6712, 26848, 6728, 12512, 6736, 20704, 6744, 28896, 6760, 14560, 6768, 22752,
+
214 6776, 30944, 6792, 8928, 6800, 17120, 6808, 25312, 6824, 10976, 6832, 19168, 6840, 27360, 6856, 13024,
+
215 6864, 21216, 6872, 29408, 6888, 15072, 6896, 23264, 6904, 31456, 6920, 9440, 6928, 17632, 6936, 25824,
+
216 6952, 11488, 6960, 19680, 6968, 27872, 6984, 13536, 6992, 21728, 7000, 29920, 7008, 7392, 7016, 15584,
+
217 7024, 23776, 7032, 31968, 7048, 9952, 7056, 18144, 7064, 26336, 7080, 12000, 7088, 20192, 7096, 28384,
+
218 7112, 14048, 7120, 22240, 7128, 30432, 7136, 7904, 7144, 16096, 7152, 24288, 7160, 32480, 7176, 8544,
+
219 7184, 16736, 7192, 24928, 7208, 10592, 7216, 18784, 7224, 26976, 7240, 12640, 7248, 20832, 7256, 29024,
+
220 7272, 14688, 7280, 22880, 7288, 31072, 7304, 9056, 7312, 17248, 7320, 25440, 7336, 11104, 7344, 19296,
+
221 7352, 27488, 7368, 13152, 7376, 21344, 7384, 29536, 7400, 15200, 7408, 23392, 7416, 31584, 7432, 9568,
+
222 7440, 17760, 7448, 25952, 7464, 11616, 7472, 19808, 7480, 28000, 7496, 13664, 7504, 21856, 7512, 30048,
+
223 7528, 15712, 7536, 23904, 7544, 32096, 7560, 10080, 7568, 18272, 7576, 26464, 7592, 12128, 7600, 20320,
+
224 7608, 28512, 7624, 14176, 7632, 22368, 7640, 30560, 7648, 8032, 7656, 16224, 7664, 24416, 7672, 32608,
+
225 7688, 8672, 7696, 16864, 7704, 25056, 7720, 10720, 7728, 18912, 7736, 27104, 7752, 12768, 7760, 20960,
+
226 7768, 29152, 7784, 14816, 7792, 23008, 7800, 31200, 7816, 9184, 7824, 17376, 7832, 25568, 7848, 11232,
+
227 7856, 19424, 7864, 27616, 7880, 13280, 7888, 21472, 7896, 29664, 7912, 15328, 7920, 23520, 7928, 31712,
+
228 7944, 9696, 7952, 17888, 7960, 26080, 7976, 11744, 7984, 19936, 7992, 28128, 8008, 13792, 8016, 21984,
+
229 8024, 30176, 8040, 15840, 8048, 24032, 8056, 32224, 8072, 10208, 8080, 18400, 8088, 26592, 8104, 12256,
+
230 8112, 20448, 8120, 28640, 8136, 14304, 8144, 22496, 8152, 30688, 8168, 16352, 8176, 24544, 8184, 32736,
+
231 8208, 16392, 8216, 24584, 8232, 10248, 8240, 18440, 8248, 26632, 8264, 12296, 8272, 20488, 8280, 28680,
+
232 8296, 14344, 8304, 22536, 8312, 30728, 8328, 8712, 8336, 16904, 8344, 25096, 8360, 10760, 8368, 18952,
+
233 8376, 27144, 8392, 12808, 8400, 21000, 8408, 29192, 8424, 14856, 8432, 23048, 8440, 31240, 8456, 9224,
+
234 8464, 17416, 8472, 25608, 8488, 11272, 8496, 19464, 8504, 27656, 8520, 13320, 8528, 21512, 8536, 29704,
+
235 8552, 15368, 8560, 23560, 8568, 31752, 8584, 9736, 8592, 17928, 8600, 26120, 8616, 11784, 8624, 19976,
+
236 8632, 28168, 8648, 13832, 8656, 22024, 8664, 30216, 8680, 15880, 8688, 24072, 8696, 32264, 8720, 16520,
+
237 8728, 24712, 8744, 10376, 8752, 18568, 8760, 26760, 8776, 12424, 8784, 20616, 8792, 28808, 8808, 14472,
+
238 8816, 22664, 8824, 30856, 8848, 17032, 8856, 25224, 8872, 10888, 8880, 19080, 8888, 27272, 8904, 12936,
+
239 8912, 21128, 8920, 29320, 8936, 14984, 8944, 23176, 8952, 31368, 8968, 9352, 8976, 17544, 8984, 25736,
+
240 9000, 11400, 9008, 19592, 9016, 27784, 9032, 13448, 9040, 21640, 9048, 29832, 9064, 15496, 9072, 23688,
+
241 9080, 31880, 9096, 9864, 9104, 18056, 9112, 26248, 9128, 11912, 9136, 20104, 9144, 28296, 9160, 13960,
+
242 9168, 22152, 9176, 30344, 9192, 16008, 9200, 24200, 9208, 32392, 9232, 16648, 9240, 24840, 9256, 10504,
+
243 9264, 18696, 9272, 26888, 9288, 12552, 9296, 20744, 9304, 28936, 9320, 14600, 9328, 22792, 9336, 30984,
+
244 9360, 17160, 9368, 25352, 9384, 11016, 9392, 19208, 9400, 27400, 9416, 13064, 9424, 21256, 9432, 29448,
+
245 9448, 15112, 9456, 23304, 9464, 31496, 9488, 17672, 9496, 25864, 9512, 11528, 9520, 19720, 9528, 27912,
+
246 9544, 13576, 9552, 21768, 9560, 29960, 9576, 15624, 9584, 23816, 9592, 32008, 9608, 9992, 9616, 18184,
+
247 9624, 26376, 9640, 12040, 9648, 20232, 9656, 28424, 9672, 14088, 9680, 22280, 9688, 30472, 9704, 16136,
+
248 9712, 24328, 9720, 32520, 9744, 16776, 9752, 24968, 9768, 10632, 9776, 18824, 9784, 27016, 9800, 12680,
+
249 9808, 20872, 9816, 29064, 9832, 14728, 9840, 22920, 9848, 31112, 9872, 17288, 9880, 25480, 9896, 11144,
+
250 9904, 19336, 9912, 27528, 9928, 13192, 9936, 21384, 9944, 29576, 9960, 15240, 9968, 23432, 9976, 31624,
+
251 10000, 17800, 10008, 25992, 10024, 11656, 10032, 19848, 10040, 28040, 10056, 13704, 10064, 21896, 10072, 30088,
+
252 10088, 15752, 10096, 23944, 10104, 32136, 10128, 18312, 10136, 26504, 10152, 12168, 10160, 20360, 10168, 28552,
+
253 10184, 14216, 10192, 22408, 10200, 30600, 10216, 16264, 10224, 24456, 10232, 32648, 10256, 16424, 10264, 24616,
+
254 10288, 18472, 10296, 26664, 10312, 12328, 10320, 20520, 10328, 28712, 10344, 14376, 10352, 22568, 10360, 30760,
+
255 10384, 16936, 10392, 25128, 10408, 10792, 10416, 18984, 10424, 27176, 10440, 12840, 10448, 21032, 10456, 29224,
+
256 10472, 14888, 10480, 23080, 10488, 31272, 10512, 17448, 10520, 25640, 10536, 11304, 10544, 19496, 10552, 27688,
+
257 10568, 13352, 10576, 21544, 10584, 29736, 10600, 15400, 10608, 23592, 10616, 31784, 10640, 17960, 10648, 26152,
+
258 10664, 11816, 10672, 20008, 10680, 28200, 10696, 13864, 10704, 22056, 10712, 30248, 10728, 15912, 10736, 24104,
+
259 10744, 32296, 10768, 16552, 10776, 24744, 10800, 18600, 10808, 26792, 10824, 12456, 10832, 20648, 10840, 28840,
+
260 10856, 14504, 10864, 22696, 10872, 30888, 10896, 17064, 10904, 25256, 10928, 19112, 10936, 27304, 10952, 12968,
+
261 10960, 21160, 10968, 29352, 10984, 15016, 10992, 23208, 11000, 31400, 11024, 17576, 11032, 25768, 11048, 11432,
+
262 11056, 19624, 11064, 27816, 11080, 13480, 11088, 21672, 11096, 29864, 11112, 15528, 11120, 23720, 11128, 31912,
+
263 11152, 18088, 11160, 26280, 11176, 11944, 11184, 20136, 11192, 28328, 11208, 13992, 11216, 22184, 11224, 30376,
+
264 11240, 16040, 11248, 24232, 11256, 32424, 11280, 16680, 11288, 24872, 11312, 18728, 11320, 26920, 11336, 12584,
+
265 11344, 20776, 11352, 28968, 11368, 14632, 11376, 22824, 11384, 31016, 11408, 17192, 11416, 25384, 11440, 19240,
+
266 11448, 27432, 11464, 13096, 11472, 21288, 11480, 29480, 11496, 15144, 11504, 23336, 11512, 31528, 11536, 17704,
+
267 11544, 25896, 11568, 19752, 11576, 27944, 11592, 13608, 11600, 21800, 11608, 29992, 11624, 15656, 11632, 23848,
+
268 11640, 32040, 11664, 18216, 11672, 26408, 11688, 12072, 11696, 20264, 11704, 28456, 11720, 14120, 11728, 22312,
+
269 11736, 30504, 11752, 16168, 11760, 24360, 11768, 32552, 11792, 16808, 11800, 25000, 11824, 18856, 11832, 27048,
+
270 11848, 12712, 11856, 20904, 11864, 29096, 11880, 14760, 11888, 22952, 11896, 31144, 11920, 17320, 11928, 25512,
+
271 11952, 19368, 11960, 27560, 11976, 13224, 11984, 21416, 11992, 29608, 12008, 15272, 12016, 23464, 12024, 31656,
+
272 12048, 17832, 12056, 26024, 12080, 19880, 12088, 28072, 12104, 13736, 12112, 21928, 12120, 30120, 12136, 15784,
+
273 12144, 23976, 12152, 32168, 12176, 18344, 12184, 26536, 12208, 20392, 12216, 28584, 12232, 14248, 12240, 22440,
+
274 12248, 30632, 12264, 16296, 12272, 24488, 12280, 32680, 12304, 16456, 12312, 24648, 12336, 18504, 12344, 26696,
+
275 12368, 20552, 12376, 28744, 12392, 14408, 12400, 22600, 12408, 30792, 12432, 16968, 12440, 25160, 12464, 19016,
+
276 12472, 27208, 12488, 12872, 12496, 21064, 12504, 29256, 12520, 14920, 12528, 23112, 12536, 31304, 12560, 17480,
+
277 12568, 25672, 12592, 19528, 12600, 27720, 12616, 13384, 12624, 21576, 12632, 29768, 12648, 15432, 12656, 23624,
+
278 12664, 31816, 12688, 17992, 12696, 26184, 12720, 20040, 12728, 28232, 12744, 13896, 12752, 22088, 12760, 30280,
+
279 12776, 15944, 12784, 24136, 12792, 32328, 12816, 16584, 12824, 24776, 12848, 18632, 12856, 26824, 12880, 20680,
+
280 12888, 28872, 12904, 14536, 12912, 22728, 12920, 30920, 12944, 17096, 12952, 25288, 12976, 19144, 12984, 27336,
+
281 13008, 21192, 13016, 29384, 13032, 15048, 13040, 23240, 13048, 31432, 13072, 17608, 13080, 25800, 13104, 19656,
+
282 13112, 27848, 13128, 13512, 13136, 21704, 13144, 29896, 13160, 15560, 13168, 23752, 13176, 31944, 13200, 18120,
+
283 13208, 26312, 13232, 20168, 13240, 28360, 13256, 14024, 13264, 22216, 13272, 30408, 13288, 16072, 13296, 24264,
+
284 13304, 32456, 13328, 16712, 13336, 24904, 13360, 18760, 13368, 26952, 13392, 20808, 13400, 29000, 13416, 14664,
+
285 13424, 22856, 13432, 31048, 13456, 17224, 13464, 25416, 13488, 19272, 13496, 27464, 13520, 21320, 13528, 29512,
+
286 13544, 15176, 13552, 23368, 13560, 31560, 13584, 17736, 13592, 25928, 13616, 19784, 13624, 27976, 13648, 21832,
+
287 13656, 30024, 13672, 15688, 13680, 23880, 13688, 32072, 13712, 18248, 13720, 26440, 13744, 20296, 13752, 28488,
+
288 13768, 14152, 13776, 22344, 13784, 30536, 13800, 16200, 13808, 24392, 13816, 32584, 13840, 16840, 13848, 25032,
+
289 13872, 18888, 13880, 27080, 13904, 20936, 13912, 29128, 13928, 14792, 13936, 22984, 13944, 31176, 13968, 17352,
+
290 13976, 25544, 14000, 19400, 14008, 27592, 14032, 21448, 14040, 29640, 14056, 15304, 14064, 23496, 14072, 31688,
+
291 14096, 17864, 14104, 26056, 14128, 19912, 14136, 28104, 14160, 21960, 14168, 30152, 14184, 15816, 14192, 24008,
+
292 14200, 32200, 14224, 18376, 14232, 26568, 14256, 20424, 14264, 28616, 14288, 22472, 14296, 30664, 14312, 16328,
+
293 14320, 24520, 14328, 32712, 14352, 16488, 14360, 24680, 14384, 18536, 14392, 26728, 14416, 20584, 14424, 28776,
+
294 14448, 22632, 14456, 30824, 14480, 17000, 14488, 25192, 14512, 19048, 14520, 27240, 14544, 21096, 14552, 29288,
+
295 14568, 14952, 14576, 23144, 14584, 31336, 14608, 17512, 14616, 25704, 14640, 19560, 14648, 27752, 14672, 21608,
+
296 14680, 29800, 14696, 15464, 14704, 23656, 14712, 31848, 14736, 18024, 14744, 26216, 14768, 20072, 14776, 28264,
+
297 14800, 22120, 14808, 30312, 14824, 15976, 14832, 24168, 14840, 32360, 14864, 16616, 14872, 24808, 14896, 18664,
+
298 14904, 26856, 14928, 20712, 14936, 28904, 14960, 22760, 14968, 30952, 14992, 17128, 15000, 25320, 15024, 19176,
+
299 15032, 27368, 15056, 21224, 15064, 29416, 15088, 23272, 15096, 31464, 15120, 17640, 15128, 25832, 15152, 19688,
+
300 15160, 27880, 15184, 21736, 15192, 29928, 15208, 15592, 15216, 23784, 15224, 31976, 15248, 18152, 15256, 26344,
+
301 15280, 20200, 15288, 28392, 15312, 22248, 15320, 30440, 15336, 16104, 15344, 24296, 15352, 32488, 15376, 16744,
+
302 15384, 24936, 15408, 18792, 15416, 26984, 15440, 20840, 15448, 29032, 15472, 22888, 15480, 31080, 15504, 17256,
+
303 15512, 25448, 15536, 19304, 15544, 27496, 15568, 21352, 15576, 29544, 15600, 23400, 15608, 31592, 15632, 17768,
+
304 15640, 25960, 15664, 19816, 15672, 28008, 15696, 21864, 15704, 30056, 15728, 23912, 15736, 32104, 15760, 18280,
+
305 15768, 26472, 15792, 20328, 15800, 28520, 15824, 22376, 15832, 30568, 15848, 16232, 15856, 24424, 15864, 32616,
+
306 15888, 16872, 15896, 25064, 15920, 18920, 15928, 27112, 15952, 20968, 15960, 29160, 15984, 23016, 15992, 31208,
+
307 16016, 17384, 16024, 25576, 16048, 19432, 16056, 27624, 16080, 21480, 16088, 29672, 16112, 23528, 16120, 31720,
+
308 16144, 17896, 16152, 26088, 16176, 19944, 16184, 28136, 16208, 21992, 16216, 30184, 16240, 24040, 16248, 32232,
+
309 16272, 18408, 16280, 26600, 16304, 20456, 16312, 28648, 16336, 22504, 16344, 30696, 16368, 24552, 16376, 32744,
+
310 16408, 24592, 16432, 18448, 16440, 26640, 16464, 20496, 16472, 28688, 16496, 22544, 16504, 30736, 16528, 16912,
+
311 16536, 25104, 16560, 18960, 16568, 27152, 16592, 21008, 16600, 29200, 16624, 23056, 16632, 31248, 16656, 17424,
+
312 16664, 25616, 16688, 19472, 16696, 27664, 16720, 21520, 16728, 29712, 16752, 23568, 16760, 31760, 16784, 17936,
+
313 16792, 26128, 16816, 19984, 16824, 28176, 16848, 22032, 16856, 30224, 16880, 24080, 16888, 32272, 16920, 24720,
+
314 16944, 18576, 16952, 26768, 16976, 20624, 16984, 28816, 17008, 22672, 17016, 30864, 17048, 25232, 17072, 19088,
+
315 17080, 27280, 17104, 21136, 17112, 29328, 17136, 23184, 17144, 31376, 17168, 17552, 17176, 25744, 17200, 19600,
+
316 17208, 27792, 17232, 21648, 17240, 29840, 17264, 23696, 17272, 31888, 17296, 18064, 17304, 26256, 17328, 20112,
+
317 17336, 28304, 17360, 22160, 17368, 30352, 17392, 24208, 17400, 32400, 17432, 24848, 17456, 18704, 17464, 26896,
+
318 17488, 20752, 17496, 28944, 17520, 22800, 17528, 30992, 17560, 25360, 17584, 19216, 17592, 27408, 17616, 21264,
+
319 17624, 29456, 17648, 23312, 17656, 31504, 17688, 25872, 17712, 19728, 17720, 27920, 17744, 21776, 17752, 29968,
+
320 17776, 23824, 17784, 32016, 17808, 18192, 17816, 26384, 17840, 20240, 17848, 28432, 17872, 22288, 17880, 30480,
+
321 17904, 24336, 17912, 32528, 17944, 24976, 17968, 18832, 17976, 27024, 18000, 20880, 18008, 29072, 18032, 22928,
+
322 18040, 31120, 18072, 25488, 18096, 19344, 18104, 27536, 18128, 21392, 18136, 29584, 18160, 23440, 18168, 31632,
+
323 18200, 26000, 18224, 19856, 18232, 28048, 18256, 21904, 18264, 30096, 18288, 23952, 18296, 32144, 18328, 26512,
+
324 18352, 20368, 18360, 28560, 18384, 22416, 18392, 30608, 18416, 24464, 18424, 32656, 18456, 24624, 18488, 26672,
+
325 18512, 20528, 18520, 28720, 18544, 22576, 18552, 30768, 18584, 25136, 18608, 18992, 18616, 27184, 18640, 21040,
+
326 18648, 29232, 18672, 23088, 18680, 31280, 18712, 25648, 18736, 19504, 18744, 27696, 18768, 21552, 18776, 29744,
+
327 18800, 23600, 18808, 31792, 18840, 26160, 18864, 20016, 18872, 28208, 18896, 22064, 18904, 30256, 18928, 24112,
+
328 18936, 32304, 18968, 24752, 19000, 26800, 19024, 20656, 19032, 28848, 19056, 22704, 19064, 30896, 19096, 25264,
+
329 19128, 27312, 19152, 21168, 19160, 29360, 19184, 23216, 19192, 31408, 19224, 25776, 19248, 19632, 19256, 27824,
+
330 19280, 21680, 19288, 29872, 19312, 23728, 19320, 31920, 19352, 26288, 19376, 20144, 19384, 28336, 19408, 22192,
+
331 19416, 30384, 19440, 24240, 19448, 32432, 19480, 24880, 19512, 26928, 19536, 20784, 19544, 28976, 19568, 22832,
+
332 19576, 31024, 19608, 25392, 19640, 27440, 19664, 21296, 19672, 29488, 19696, 23344, 19704, 31536, 19736, 25904,
+
333 19768, 27952, 19792, 21808, 19800, 30000, 19824, 23856, 19832, 32048, 19864, 26416, 19888, 20272, 19896, 28464,
+
334 19920, 22320, 19928, 30512, 19952, 24368, 19960, 32560, 19992, 25008, 20024, 27056, 20048, 20912, 20056, 29104,
+
335 20080, 22960, 20088, 31152, 20120, 25520, 20152, 27568, 20176, 21424, 20184, 29616, 20208, 23472, 20216, 31664,
+
336 20248, 26032, 20280, 28080, 20304, 21936, 20312, 30128, 20336, 23984, 20344, 32176, 20376, 26544, 20408, 28592,
+
337 20432, 22448, 20440, 30640, 20464, 24496, 20472, 32688, 20504, 24656, 20536, 26704, 20568, 28752, 20592, 22608,
+
338 20600, 30800, 20632, 25168, 20664, 27216, 20688, 21072, 20696, 29264, 20720, 23120, 20728, 31312, 20760, 25680,
+
339 20792, 27728, 20816, 21584, 20824, 29776, 20848, 23632, 20856, 31824, 20888, 26192, 20920, 28240, 20944, 22096,
+
340 20952, 30288, 20976, 24144, 20984, 32336, 21016, 24784, 21048, 26832, 21080, 28880, 21104, 22736, 21112, 30928,
+
341 21144, 25296, 21176, 27344, 21208, 29392, 21232, 23248, 21240, 31440, 21272, 25808, 21304, 27856, 21328, 21712,
+
342 21336, 29904, 21360, 23760, 21368, 31952, 21400, 26320, 21432, 28368, 21456, 22224, 21464, 30416, 21488, 24272,
+
343 21496, 32464, 21528, 24912, 21560, 26960, 21592, 29008, 21616, 22864, 21624, 31056, 21656, 25424, 21688, 27472,
+
344 21720, 29520, 21744, 23376, 21752, 31568, 21784, 25936, 21816, 27984, 21848, 30032, 21872, 23888, 21880, 32080,
+
345 21912, 26448, 21944, 28496, 21968, 22352, 21976, 30544, 22000, 24400, 22008, 32592, 22040, 25040, 22072, 27088,
+
346 22104, 29136, 22128, 22992, 22136, 31184, 22168, 25552, 22200, 27600, 22232, 29648, 22256, 23504, 22264, 31696,
+
347 22296, 26064, 22328, 28112, 22360, 30160, 22384, 24016, 22392, 32208, 22424, 26576, 22456, 28624, 22488, 30672,
+
348 22512, 24528, 22520, 32720, 22552, 24688, 22584, 26736, 22616, 28784, 22648, 30832, 22680, 25200, 22712, 27248,
+
349 22744, 29296, 22768, 23152, 22776, 31344, 22808, 25712, 22840, 27760, 22872, 29808, 22896, 23664, 22904, 31856,
+
350 22936, 26224, 22968, 28272, 23000, 30320, 23024, 24176, 23032, 32368, 23064, 24816, 23096, 26864, 23128, 28912,
+
351 23160, 30960, 23192, 25328, 23224, 27376, 23256, 29424, 23288, 31472, 23320, 25840, 23352, 27888, 23384, 29936,
+
352 23408, 23792, 23416, 31984, 23448, 26352, 23480, 28400, 23512, 30448, 23536, 24304, 23544, 32496, 23576, 24944,
+
353 23608, 26992, 23640, 29040, 23672, 31088, 23704, 25456, 23736, 27504, 23768, 29552, 23800, 31600, 23832, 25968,
+
354 23864, 28016, 23896, 30064, 23928, 32112, 23960, 26480, 23992, 28528, 24024, 30576, 24048, 24432, 24056, 32624,
+
355 24088, 25072, 24120, 27120, 24152, 29168, 24184, 31216, 24216, 25584, 24248, 27632, 24280, 29680, 24312, 31728,
+
356 24344, 26096, 24376, 28144, 24408, 30192, 24440, 32240, 24472, 26608, 24504, 28656, 24536, 30704, 24568, 32752,
+
357 24632, 26648, 24664, 28696, 24696, 30744, 24728, 25112, 24760, 27160, 24792, 29208, 24824, 31256, 24856, 25624,
+
358 24888, 27672, 24920, 29720, 24952, 31768, 24984, 26136, 25016, 28184, 25048, 30232, 25080, 32280, 25144, 26776,
+
359 25176, 28824, 25208, 30872, 25272, 27288, 25304, 29336, 25336, 31384, 25368, 25752, 25400, 27800, 25432, 29848,
+
360 25464, 31896, 25496, 26264, 25528, 28312, 25560, 30360, 25592, 32408, 25656, 26904, 25688, 28952, 25720, 31000,
+
361 25784, 27416, 25816, 29464, 25848, 31512, 25912, 27928, 25944, 29976, 25976, 32024, 26008, 26392, 26040, 28440,
+
362 26072, 30488, 26104, 32536, 26168, 27032, 26200, 29080, 26232, 31128, 26296, 27544, 26328, 29592, 26360, 31640,
+
363 26424, 28056, 26456, 30104, 26488, 32152, 26552, 28568, 26584, 30616, 26616, 32664, 26712, 28728, 26744, 30776,
+
364 26808, 27192, 26840, 29240, 26872, 31288, 26936, 27704, 26968, 29752, 27000, 31800, 27064, 28216, 27096, 30264,
+
365 27128, 32312, 27224, 28856, 27256, 30904, 27352, 29368, 27384, 31416, 27448, 27832, 27480, 29880, 27512, 31928,
+
366 27576, 28344, 27608, 30392, 27640, 32440, 27736, 28984, 27768, 31032, 27864, 29496, 27896, 31544, 27992, 30008,
+
367 28024, 32056, 28088, 28472, 28120, 30520, 28152, 32568, 28248, 29112, 28280, 31160, 28376, 29624, 28408, 31672,
+
368 28504, 30136, 28536, 32184, 28632, 30648, 28664, 32696, 28792, 30808, 28888, 29272, 28920, 31320, 29016, 29784,
+
369 29048, 31832, 29144, 30296, 29176, 32344, 29304, 30936, 29432, 31448, 29528, 29912, 29560, 31960, 29656, 30424,
+
370 29688, 32472, 29816, 31064, 29944, 31576, 30072, 32088, 30168, 30552, 30200, 32600, 30328, 31192, 30456, 31704,
+
371 30584, 32216, 30712, 32728, 30968, 31352, 31096, 31864, 31224, 32376, 31608, 31992, 31736, 32504, 32248, 32632,
+
372};
+
+
373extern const uint16_t bitrev4r_table_4096_fc32[];
+
374extern const uint16_t bitrev4r_table_4096_fc32_size;
+
375
+
376
+ +
386
+
+ +
388 (uint16_t *)bitrev4r_table_16_fc32,
+
389 (uint16_t *)bitrev4r_table_64_fc32,
+
390 (uint16_t *)bitrev4r_table_256_fc32,
+
391 (uint16_t *)bitrev4r_table_1024_fc32,
+
392 (uint16_t *)bitrev4r_table_4096_fc32,
+
393};
+
+
394
+ +
396const uint16_t bitrev4r_table_64_fc32_size = 24;
+
397const uint16_t bitrev4r_table_256_fc32_size = 120;
+
398const uint16_t bitrev4r_table_1024_fc32_size = 480;
+
399const uint16_t bitrev4r_table_4096_fc32_size = 2016;
+
400
+
+ +
402 (const uint16_t)6, // bitrev4r_table_16_fc32_size,
+
403 (const uint16_t)24, // bitrev4r_table_64_fc32_size,
+
404 (const uint16_t)120, // bitrev4r_table_256_fc32_size,
+
405 (const uint16_t)480, // bitrev4r_table_1024_fc32_size,
+
406 (const uint16_t)2016,// bitrev4r_table_4096_fc32_size,
+
407};
+
+
const uint16_t bitrev4r_table_64_fc32[]
+
void dsps_fft4r_rev_tables_init_fc32(void)
+
const uint16_t bitrev4r_table_4096_fc32[]
+
const uint16_t bitrev4r_table_256_fc32_size
+
const uint16_t bitrev4r_table_64_fc32_size
+
const uint16_t bitrev4r_table_256_fc32[]
+
uint16_t * dsps_fft4r_rev_tables_fc32[]
+
const uint16_t bitrev4r_table_16_fc32_size
+
const uint16_t dsps_fft4r_rev_tables_fc32_size[]
+
const uint16_t bitrev4r_table_1024_fc32_size
+
const uint16_t bitrev4r_table_1024_fc32[]
+
const uint16_t bitrev4r_table_16_fc32[]
+
const uint16_t bitrev4r_table_4096_fc32_size
+ +
+
+
+ + + + diff --git a/docs/html/dsps__fft4r__fc32__ae32_8c.html b/docs/html/dsps__fft4r__fc32__ae32_8c.html new file mode 100644 index 0000000..16b3be2 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ae32_8c.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r_fc32_ae32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r_fc32_ae32.c File Reference
+
+
+
#include "dsps_fft2r.h"
+#include "dsps_fft4r.h"
+#include "dsp_common.h"
+#include "dsp_types.h"
+#include <math.h>
+#include "esp_attr.h"
+#include "dsps_fft4r_platform.h"
+
+Include dependency graph for dsps_fft4r_fc32_ae32.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft4r__fc32__ae32_8c__incl.md5 b/docs/html/dsps__fft4r__fc32__ae32_8c__incl.md5 new file mode 100644 index 0000000..c4fd562 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ae32_8c__incl.md5 @@ -0,0 +1 @@ +e048270a493914c2723335b0ec625093 \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ae32_8c__incl.svg b/docs/html/dsps__fft4r__fc32__ae32_8c__incl.svg new file mode 100644 index 0000000..05821ba --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ae32_8c__incl.svg @@ -0,0 +1,518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft4r_fc32_ae32.c + + +Node1 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsps_fft4r.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_fft4r_platform.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +dsp_common.h + + + + + +Node1->Node13 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node1->Node17 + + + + + + + + +Node19 + + +math.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +esp_attr.h + + + + + +Node1->Node20 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node8 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node12 + + + + + + + + +Node12->Node8 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node4 + + + + + + + + +Node14 + + +stdbool.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +x86intrin.h + + + + + +Node13->Node16 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node14 + + + + + + + + +Node18 + + +inttypes.h + + + + + +Node17->Node18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ae32_8c__incl_org.svg b/docs/html/dsps__fft4r__fc32__ae32_8c__incl_org.svg new file mode 100644 index 0000000..c2ef663 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ae32_8c__incl_org.svg @@ -0,0 +1,435 @@ + + + + + + +dsps_fft4r_fc32_ae32.c + + +Node1 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsps_fft4r.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_fft4r_platform.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +dsp_common.h + + + + + +Node1->Node13 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node1->Node17 + + + + + + + + +Node19 + + +math.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +esp_attr.h + + + + + +Node1->Node20 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node8 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node12 + + + + + + + + +Node12->Node8 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node4 + + + + + + + + +Node14 + + +stdbool.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +x86intrin.h + + + + + +Node13->Node16 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node14 + + + + + + + + +Node18 + + +inttypes.h + + + + + +Node17->Node18 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ae32_8c_source.html b/docs/html/dsps__fft4r__fc32__ae32_8c_source.html new file mode 100644 index 0000000..568ed83 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ae32_8c_source.html @@ -0,0 +1,248 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r_fc32_ae32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r_fc32_ae32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_fft2r.h"
+
16#include "dsps_fft4r.h"
+
17#include "dsp_common.h"
+
18#include "dsp_types.h"
+
19#include <math.h>
+
20#include "esp_attr.h"
+
21
+
22#include "dsps_fft4r_platform.h"
+
23
+
24
+
25#if (dsps_cplx2real_fc32_ae32_enabled == 1)
+
26esp_err_t dsps_cplx2real_fc32_ae32_(float *data, int fft_points, float *table, int table_size)
+
27{
+
28 float *ptr_inv;
+
29
+
30 int wind_step = table_size / (fft_points);
+
31
+
32 float *win0 = table + wind_step;
+
33 float *win1 = table + wind_step * 2;
+
34
+
37 asm volatile ("const.s f14, 0"); //f14 = 0f;
+
38 asm volatile ("lsi f0, %0, 0" :: "a" (data)); //f0 = *data;
+
39 asm volatile ("lsi f1, %0, 4" :: "a" (data)); //f1 = *(data + 1);
+
40 asm volatile ("addx8 %0, %1, %2" : "=a" (ptr_inv) : "a" (fft_points), "a" (data)); //ptr_inv = data + fft_points * 2;
+
41 asm volatile ("add.s f6, f0, f1"); //f6 = f0 + f1;
+
42 asm volatile ("sub.s f7, f0, f1"); //f7 = f0 - f1;
+
43
+
44 asm volatile ("srli %0, %0, 2" : "+a" (fft_points)); //fft_points >>= 2;
+
45
+
46 asm volatile ("const.s f14, 3"); //f14 = 0.5f;, this is for multiply 0.5
+
47 asm volatile ("neg.s f15, f14"); //f15 = -f14;
+
48
+
49 asm volatile ("ssi f6, %0, 0" :: "a" (data)); //*data = f6;
+
50 asm volatile ("ssi f7, %0, 4" :: "a" (data)); //*ptr_inv = f7;
+
51 asm volatile ("addi %0, %0, -16" : "+a" (ptr_inv)); //ptr_inv -= 4; ///here increase address by -4 because float load/store not support negective immediate offset
+
52
+
53 asm volatile ("loopnez %0, __loop_end_fftr_real_post_proc" :: "a" (fft_points)); //for (k = 0; k < fft_points; k++) {
+
54 asm volatile ("lsi f1, %0, 12" :: "a" (data)); //f1 = *(data + 3);
+
55 asm volatile ("lsi f3, %0, 12" :: "a" (ptr_inv)); //f3 = *(ptr_inv + 3);
+
56 asm volatile ("lsi f0, %0, 8" :: "a" (data)); //f0 = *(data + 2);
+
57 asm volatile ("lsi f2, %0, 8" :: "a" (ptr_inv)); //f2 = *(ptr_inv + 2);
+
58
+
59 asm volatile ("lsi f7, %0, 20" :: "a" (data)); //f7 = *(data + 5);
+
60 asm volatile ("lsi f9, %0, 4" :: "a" (ptr_inv)); //f9 = *(ptr_inv + 1);
+
61
+
62 asm volatile ("lsi f6, %0, 16" :: "a" (data)); //f6 = *(data + 4);
+
63 asm volatile ("lsi f8, %0, 0" :: "a" (ptr_inv)); //f8 = *ptr_inv;
+
64 asm volatile ("sub.s f5, f1, f3"); //f5 = f1 - f3;
+
65 asm volatile ("add.s f4, f0, f2"); //f4 = f0 + f2;
+
66 asm volatile ("sub.s f11, f7, f9"); //f11 = f7 - f9;
+
67 asm volatile ("add.s f10, f6, f8"); //f10 = f6 + f8;
+
68
+
69 asm volatile ("add.s f1, f1, f3"); //f1 = f1 + f3;
+
70 asm volatile ("sub.s f0, f0, f2"); //f0 = f0 - f2;
+
71
+
72 asm volatile ("lsi f12, %0, 4" :: "a" (win0)); //f12 = *(win + 1);
+
73 asm volatile ("add.s f7, f7, f9"); //f7 = f7 + f9;
+
74 asm volatile ("sub.s f6, f6, f8"); //f6 = f6 - f8;
+
75 asm volatile ("lsi f13, %0, 4" :: "a" (win1)); //f13 = *(win + 3);
+
76
+
77 asm volatile ("mul.s f3, f1, f12"); //f3 = f1 * f12;
+
78 asm volatile ("mul.s f2, f0, f12"); //f2 = f0 * f12;
+
79 asm volatile ("lsi f12, %0, 0" :: "a" (win0)); //f12 = *(win + 0);
+
80
+
81 asm volatile ("mul.s f9, f7, f13"); //f9 = f7 * f13;
+
82 asm volatile ("mul.s f8, f6, f13"); //f8 = f6 * f13;
+
83
+
84 asm volatile ("lsi f13, %0, 0" :: "a" (win1)); //f13 = *(win + 2);
+
85
+
86 asm volatile ("madd.s f3, f0, f12"); //f3 += f0 * f12;
+
87 asm volatile ("msub.s f2, f1, f12"); //f2 -= f1 * f12;
+
88 asm volatile ("madd.s f9, f6, f13"); //f9 += f6 * f13;
+
89 asm volatile ("msub.s f8, f7, f13"); //f8 -= f7 * f13;
+
90 asm volatile ("addx8 %0, %1, %0" : "+a" (win0) : "a" (wind_step)); //win0 += 8 * wind_step;
+
91 asm volatile ("addx8 %0, %1, %0" : "+a" (win1) : "a" (wind_step)); //win1 += 8 * wind_step;
+
92 // Here we have tw1: f2,f3 and tw2: f8,f9
+
93
+
94 asm volatile ("sub.s f1, f5, f3"); //f1 = f5 - f3;
+
95 asm volatile ("sub.s f0, f4, f2"); //f0 = f4 - f2;
+
96
+
97 asm volatile ("add.s f3, f3, f5"); //f3 = f3 + f5;
+
98 asm volatile ("add.s f2, f4, f2"); //f2 = f4 + f2;
+
99
+
100 asm volatile ("sub.s f7, f11, f9"); //f7 = f11 - f9;
+
101 asm volatile ("sub.s f6, f10, f8"); //f6 = f10 - f8;
+
102 asm volatile ("add.s f9, f9, f11"); //f9 = f9 + f11;
+
103 asm volatile ("add.s f8, f10, f8"); //f8 = f10 + f8;
+
104
+
105 asm volatile ("mul.s f1, f1, f14"); //f1 *= f14;
+
106 asm volatile ("mul.s f0, f0, f14"); //f0 *= f14;
+
107
+
108 asm volatile ("mul.s f3, f3, f15"); //f3 *= -f14;
+
109 asm volatile ("mul.s f2, f2, f14"); //f2 *= f14;
+
110
+
111 asm volatile ("mul.s f7, f7, f14"); //f7 *= f14;
+
112 asm volatile ("mul.s f6, f6, f14"); //f6 *= f14;
+
113 asm volatile ("mul.s f9, f9, f15"); //f9 *= -f14;
+
114 asm volatile ("mul.s f8, f8, f14"); //f8 *= f14;
+
115
+
116 asm volatile ("ssi f1, %0, 12" :: "a" (data)); //*(data + 3) = f1;
+
117 asm volatile ("ssi f0, %0, 8" :: "a" (data)); //*(data + 2) = f0;
+
118
+
119 asm volatile ("ssi f3, %0, 12" :: "a" (ptr_inv)); //*(ptr_inv + 3) = f3;
+
120 asm volatile ("ssi f2, %0, 8" :: "a" (ptr_inv)); //*(ptr_inv + 2) = f2;
+
121
+
122 asm volatile ("ssi f7, %0, 20" :: "a" (data)); //*(data + 5) = f7;
+
123 asm volatile ("ssi f6, %0, 16" :: "a" (data)); //*(data + 4) = f6;
+
124 asm volatile ("addi %0, %0, 16" : "+a" (data)); //data += 4;
+
125
+
126 asm volatile ("ssi f9, %0, 4" :: "a" (ptr_inv)); //*(ptr_inv + 1) = f9;
+
127 asm volatile ("ssi f8, %0, 0" :: "a" (ptr_inv)); //*ptr_inv = f8;
+
128 asm volatile ("addi %0, %0, -16" : "+a" (ptr_inv)); //ptr_inv -= 4;
+
129 //}
+
130 asm volatile ("__loop_end_fftr_real_post_proc: nop");
+
131
+
132 return ESP_OK;
+
133}
+
134#endif // dsps_cplx2real_fc32_ae32_enabled
+ + + + +
esp_err_t dsps_cplx2real_fc32_ae32_(float *data, int N, float *table, int table_size)
+ + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c.html b/docs/html/dsps__fft4r__fc32__ansi_8c.html new file mode 100644 index 0000000..faab2d2 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c.html @@ -0,0 +1,894 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r_fc32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r_fc32_ansi.c File Reference
+
+
+
#include "dsps_fft2r.h"
+#include "dsps_fft4r.h"
+#include "dsp_common.h"
+#include "dsp_types.h"
+#include <math.h>
+#include "esp_attr.h"
+#include "esp_log.h"
+#include <string.h>
+#include <malloc.h>
+
+Include dependency graph for dsps_fft4r_fc32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_fft4r_init_fc32 (float *fft_table_buff, int max_fft_size)
 init fft tables
void dsps_fft4r_deinit_fc32 ()
 deinit fft tables
esp_err_t dsps_bit_rev4r_direct_fc32_ansi (float *data, int N)
esp_err_t dsps_fft4r_fc32_ansi_ (float *data, int length, float *table, int table_size)
 complex FFT of radix 4
esp_err_t dsps_cplx2real_fc32_ansi_ (float *data, int N, float *table, int table_size)
 Convert FFT result to complex array for real input data.
esp_err_t dsps_gen_bitrev4r_table (int N, int step, char *name_ext)
esp_err_t dsps_bit_rev4r_fc32 (float *data, int N)
 bit reverse operation for the complex input array radix-4
+ + + + + + + +

+Variables

static const char * TAG = "fftr4 ansi"
float * dsps_fft4r_w_table_fc32
int dsps_fft4r_w_table_size
uint8_t dsps_fft4r_initialized = 0
uint8_t dsps_fft4r_mem_allocated = 0
uint16_t * dsps_fft4r_ram_rev_table = NULL
+

Function Documentation

+ +

◆ dsps_bit_rev4r_direct_fc32_ansi()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev4r_direct_fc32_ansi (float * data,
int N )
+
+ +

Definition at line 101 of file dsps_fft4r_fc32_ansi.c.

+
102{
+
103 if (!dsp_is_power_of_two(N)) {
+ +
105 }
+
106 if (0 == dsps_fft4r_initialized) {
+ +
108 }
+
109 esp_err_t result = ESP_OK;
+
110 int log2N = dsp_power_of_two(N);
+
111 int log4N = log2N >> 1;
+
112 if ((log2N & 0x01) != 0) {
+ +
114 }
+
115 float r_temp, i_temp;
+
116 for (int i = 0; i < N; i++) {
+
117 int cnt;
+
118 int xx;
+
119 int bits2;
+
120 xx = 0;
+
121 cnt = log4N;
+
122 int j = i;
+
123 while (cnt > 0) {
+
124 bits2 = j & 0x3;
+
125 xx = (xx << 2) + bits2;
+
126 j = j >> 2;
+
127 cnt--;
+
128 }
+
129 if (i < xx) {
+
130 r_temp = data[i * 2 + 0];
+
131 i_temp = data[i * 2 + 1];
+
132 data[i * 2 + 0] = data[xx * 2 + 0];
+
133 data[i * 2 + 1] = data[xx * 2 + 1];
+
134 data[xx * 2 + 0] = r_temp;
+
135 data[xx * 2 + 1] = i_temp;
+
136 }
+
137 }
+
138 return result;
+
139}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
#define ESP_ERR_DSP_UNINITIALIZED
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
uint8_t dsps_fft4r_initialized
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
+

References data, dsp_is_power_of_two(), dsp_power_of_two(), dsps_fft4r_initialized, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, and N.

+ +

Referenced by dsps_bit_rev4r_fc32().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_bit_rev4r_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_bit_rev4r_fc32 (float * data,
int N )
+
+ +

bit reverse operation for the complex input array radix-4

+

Bit reverse operation for the complex input array The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]datainput/ complex array. An elements located: Re[0], Im[0], ... Re[N-1], Im[N-1] result of FFT will be stored to this array.
[in]NNumber of complex elements in input array
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 299 of file dsps_fft4r_fc32_ansi.c.

+
300{
+
301 uint16_t *table;
+
302 uint16_t table_size;
+
303 switch (N) {
+
304 case 16:
+
305 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[0];
+
306 table_size = dsps_fft4r_rev_tables_fc32_size[0];
+
307 break;
+
308 case 64:
+
309 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[1];
+
310 table_size = dsps_fft4r_rev_tables_fc32_size[1];
+
311 break;
+
312 case 256:
+
313 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[2];
+
314 table_size = dsps_fft4r_rev_tables_fc32_size[2];
+
315 break;
+
316 case 1024:
+
317 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[3];
+
318 table_size = dsps_fft4r_rev_tables_fc32_size[3];
+
319 break;
+
320 case 4096:
+
321 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[4];
+
322 table_size = dsps_fft4r_rev_tables_fc32_size[4];
+
323 break;
+
324
+
325 default:
+ +
327 break;
+
328 }
+
329
+
330 return dsps_bit_rev_lookup_fc32(data, table_size, table);
+
331}
+
#define dsps_bit_rev_lookup_fc32
Definition dsps_fft2r.h:252
+
uint16_t * dsps_fft4r_rev_tables_fc32[]
+
const uint16_t dsps_fft4r_rev_tables_fc32_size[]
+
esp_err_t dsps_bit_rev4r_direct_fc32_ansi(float *data, int N)
+
+

References data, dsps_bit_rev4r_direct_fc32_ansi(), dsps_bit_rev_lookup_fc32, dsps_fft4r_rev_tables_fc32, dsps_fft4r_rev_tables_fc32_size, and N.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_cplx2real_fc32_ansi_()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_cplx2real_fc32_ansi_ (float * data,
int N,
float * table,
int table_size )
+
+ +

Convert FFT result to complex array for real input data.

+

Convert FFT result of complex FFT for real input to complex output. This function have to be used if FFT used to process real data. This function use tabels inside and can be used only it dsps_fft4r_init_fc32(...) was called and FFT4 was initialized. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
[in,out]dataInput complex array and result of FFT2R/FFT4R. input has size of 2*N, because contains real and imaginary part. result will be stored to the same array. Input1: input[0..N-1] if the result is complex Re[0], Im[0]....Re[N-1], Im[N-1], and input[0...2*n-1] if result is real re[0], re[1],...,re[2*N-1].
[in]NNumber of complex elements in input array
[in]tablepointer to sin/cos table
[in]table_sizesize of the sin/cos table
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 218 of file dsps_fft4r_fc32_ansi.c.

+
219{
+
220 if (0 == dsps_fft4r_initialized) {
+ +
222 }
+
223 int wind_step = table_size / (N);
+
224 fc32_t *result = (fc32_t *)data;
+
225 // Original formula...
+
226 // result[0].re = result[0].re + result[0].im;
+
227 // result[N].re = result[0].re - result[0].im;
+
228 // result[0].im = 0;
+
229 // result[N].im = 0;
+
230 // Optimized one:
+
231 float tmp_re = result[0].re;
+
232 result[0].re = tmp_re + result[0].im;
+
233 result[0].im = tmp_re - result[0].im;
+
234
+
235 fc32_t f1k, f2k;
+
236 for (int k = 1; k <= N / 2 ; k++ ) {
+
237 fc32_t fpk = result[k];
+
238 fc32_t fpnk = result[N - k];
+
239 f1k.re = fpk.re + fpnk.re;
+
240 f1k.im = fpk.im - fpnk.im;
+
241 f2k.re = fpk.re - fpnk.re;
+
242 f2k.im = fpk.im + fpnk.im;
+
243
+
244 float c = -table[k * wind_step + 1];
+
245 float s = -table[k * wind_step + 0];
+
246 fc32_t tw;
+
247 tw.re = c * f2k.re - s * f2k.im;
+
248 tw.im = s * f2k.re + c * f2k.im;
+
249
+
250 result[k].re = 0.5 * (f1k.re + tw.re);
+
251 result[k].im = 0.5 * (f1k.im + tw.im);
+
252 result[N - k].re = 0.5 * (f1k.re - tw.re);
+
253 result[N - k].im = 0.5 * (tw.im - f1k.im);
+
254 }
+
255 return ESP_OK;
+
256}
+
union fc32_u fc32_t
+
const int k
Definition test_mmult.c:18
+
float re
Definition dsp_types.h:18
+
float im
Definition dsp_types.h:19
+
+

References data, dsps_fft4r_initialized, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, fc32_u::im, k, N, and fc32_u::re.

+ +
+
+ +

◆ dsps_fft4r_deinit_fc32()

+ +
+
+ + + + + + + +
void dsps_fft4r_deinit_fc32 (void )
+
+ +

deinit fft tables

+

Free resources of Complex FFT Radix-4. This function delete coefficients table if it was allocated by dsps_fft4r_init_fc32. The implementation use ANSI C and could be compiled and run on any platform

+ +

Definition at line 85 of file dsps_fft4r_fc32_ansi.c.

+
86{
+ + +
89 }
+
90 if (dsps_fft4r_ram_rev_table != NULL) {
+ + +
93 }
+
94 // Re init bitrev table for next use
+ +
96
+ + +
99}
+
void dsps_fft4r_rev_tables_init_fc32(void)
+
uint16_t * dsps_fft4r_ram_rev_table
+
float * dsps_fft4r_w_table_fc32
+
uint8_t dsps_fft4r_mem_allocated
+
+

References dsps_fft4r_initialized, dsps_fft4r_mem_allocated, dsps_fft4r_ram_rev_table, dsps_fft4r_rev_tables_init_fc32(), and dsps_fft4r_w_table_fc32.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft4r_fc32_ansi_()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fft4r_fc32_ansi_ (float * data,
int N,
float * table,
int table_size )
+
+ +

complex FFT of radix 4

+

Complex FFT of radix 4 The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
[in,out]datainput/output complex array. An elements located: Re[0], Im[0], ... Re[N-1], Im[N-1] result of FFT will be stored to this array.
[in]NNumber of complex elements in input array
[in]tablepointer to sin/cos table
[in]table_sizesize of the sin/cos table
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+

radix 4

+ +

Definition at line 141 of file dsps_fft4r_fc32_ansi.c.

+
142{
+
143 if (0 == dsps_fft4r_initialized) {
+ +
145 }
+
146
+
147 fc32_t bfly[4];
+
148 int log2N = dsp_power_of_two(length);
+
149 int log4N = log2N >> 1;
+
150 if ((log2N & 0x01) != 0) {
+ +
152 }
+
153
+
154 int m = 2;
+
155 int wind_step = table_size / length;
+
156 while (1) {
+
157 if (log4N == 0) {
+
158 break;
+
159 }
+
160 length = length >> 2;
+
161 for (int j = 0; j < m; j += 2) { // j: which FFT of this step
+
162 int start_index = j * (length << 1); // n: n-point FFT
+
163
+
164 fc32_t *ptrc0 = (fc32_t *)data + start_index;
+
165 fc32_t *ptrc1 = ptrc0 + length;
+
166 fc32_t *ptrc2 = ptrc1 + length;
+
167 fc32_t *ptrc3 = ptrc2 + length;
+
168
+
169 fc32_t *winc0 = (fc32_t *)table;
+
170 fc32_t *winc1 = winc0;
+
171 fc32_t *winc2 = winc0;
+
172
+
173 for (int k = 0; k < length; k++) {
+
174 fc32_t in0 = *ptrc0;
+
175 fc32_t in2 = *ptrc2;
+
176 fc32_t in1 = *ptrc1;
+
177 fc32_t in3 = *ptrc3;
+
178
+
179 bfly[0].re = in0.re + in2.re + in1.re + in3.re;
+
180 bfly[0].im = in0.im + in2.im + in1.im + in3.im;
+
181
+
182 bfly[1].re = in0.re - in2.re + in1.im - in3.im;
+
183 bfly[1].im = in0.im - in2.im - in1.re + in3.re;
+
184
+
185 bfly[2].re = in0.re + in2.re - in1.re - in3.re;
+
186 bfly[2].im = in0.im + in2.im - in1.im - in3.im;
+
187
+
188 bfly[3].re = in0.re - in2.re - in1.im + in3.im;
+
189 bfly[3].im = in0.im - in2.im + in1.re - in3.re;
+
190
+
191
+
192
+
193 *ptrc0 = bfly[0];
+
194 ptrc1->re = bfly[1].re * winc0->re + bfly[1].im * winc0->im;
+
195 ptrc1->im = bfly[1].im * winc0->re - bfly[1].re * winc0->im;
+
196 ptrc2->re = bfly[2].re * winc1->re + bfly[2].im * winc1->im;
+
197 ptrc2->im = bfly[2].im * winc1->re - bfly[2].re * winc1->im;
+
198 ptrc3->re = bfly[3].re * winc2->re + bfly[3].im * winc2->im;
+
199 ptrc3->im = bfly[3].im * winc2->re - bfly[3].re * winc2->im;
+
200
+
201 winc0 += 1 * wind_step;
+
202 winc1 += 2 * wind_step;
+
203 winc2 += 3 * wind_step;
+
204
+
205 ptrc0++;
+
206 ptrc1++;
+
207 ptrc2++;
+
208 ptrc3++;
+
209 }
+
210 }
+
211 m = m << 2;
+
212 wind_step = wind_step << 2;
+
213 log4N--;
+
214 }
+
215 return ESP_OK;
+
216}
+
const int m
Definition test_mmult.c:16
+
+

References data, dsp_power_of_two(), dsps_fft4r_initialized, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_UNINITIALIZED, ESP_OK, fc32_u::im, k, m, and fc32_u::re.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft4r_init_fc32()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_fft4r_init_fc32 (float * fft_table_buff,
int max_fft_size )
+
+ +

init fft tables

+

Initialization of Complex FFT Radix-4. This function initialize coefficients table. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + +
[in,out]fft_table_buffpointer to floating point buffer where sin/cos table will be stored if this parameter set to NULL, and table_size value is more then 0, then dsps_fft4r_init_fc32 will allocate buffer internally
[in]max_fft_sizemaximum fft size. The buffer for sin/cos table that will be used for radix-4 it's four times maximum length of FFT. if fft_table_buff is NULL and table_size is not 0, buffer will be allocated internally. If table_size is 0, buffer will not be allocated.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • ESP_ERR_DSP_PARAM_OUTOFRANGE if table_size > CONFIG_DSP_MAX_FFT_SIZE
  • +
  • ESP_ERR_DSP_REINITIALIZED if buffer already allocated internally by other function
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 34 of file dsps_fft4r_fc32_ansi.c.

+
35{
+
36 esp_err_t result = ESP_OK;
+
37 if (dsps_fft4r_initialized != 0) {
+
38 return result;
+
39 }
+
40 if (max_fft_size > CONFIG_DSP_MAX_FFT_SIZE) {
+ +
42 }
+
43 if (max_fft_size == 0) {
+
44 return result;
+
45 }
+
46 if (fft_table_buff != NULL) {
+ + +
49 }
+
50 dsps_fft4r_w_table_fc32 = fft_table_buff;
+
51 dsps_fft4r_w_table_size = max_fft_size * 2;
+
52 } else {
+ +
54 dsps_fft4r_w_table_fc32 = (float *)malloc(max_fft_size * sizeof(float) * 4);
+
55 if (NULL == dsps_fft4r_w_table_fc32) {
+ +
57 }
+
58 }
+
59 dsps_fft4r_w_table_size = max_fft_size * 2;
+ +
61 }
+
62
+
63 // FFT ram_rev table allocated
+
64 int pow = dsp_power_of_two(max_fft_size) >> 1;
+
65 if ((pow >= 2) && (pow <= 6)) {
+
66 dsps_fft4r_ram_rev_table = (uint16_t *)malloc(2 * dsps_fft4r_rev_tables_fc32_size[pow - 2] * sizeof(uint16_t));
+
67 if (NULL == dsps_fft4r_ram_rev_table) {
+ +
69 }
+
70 memcpy(dsps_fft4r_ram_rev_table, dsps_fft4r_rev_tables_fc32[pow - 2], 2 * dsps_fft4r_rev_tables_fc32_size[pow - 2] * sizeof(uint16_t));
+ +
72 }
+
73
+
74 for (int i = 0; i < dsps_fft4r_w_table_size; i++) {
+
75 float angle = 2 * M_PI * i / (float)dsps_fft4r_w_table_size;
+
76 dsps_fft4r_w_table_fc32[2 * i + 0] = cosf(angle);
+
77 dsps_fft4r_w_table_fc32[2 * i + 1] = sinf(angle);
+
78 }
+
79
+ +
81
+
82 return ESP_OK;
+
83}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_REINITIALIZED
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
int dsps_fft4r_w_table_size
+
#define M_PI
Definition esp_err.h:26
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsp_power_of_two(), dsps_fft4r_initialized, dsps_fft4r_mem_allocated, dsps_fft4r_ram_rev_table, dsps_fft4r_rev_tables_fc32, dsps_fft4r_rev_tables_fc32_size, dsps_fft4r_w_table_fc32, dsps_fft4r_w_table_size, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_ERR_DSP_REINITIALIZED, ESP_OK, and M_PI.

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_gen_bitrev4r_table()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_gen_bitrev4r_table (int N,
int step,
char * name_ext )
+
+ +

Definition at line 258 of file dsps_fft4r_fc32_ansi.c.

+
259{
+
260 if (!dsp_is_power_of_two(N)) {
+ +
262 }
+
263
+
264 int items_count = 0;
+
265 ESP_LOGD(TAG, "const uint16_t bitrev4r_table_%i_%s[] = { ", N, name_ext);
+
266 int log2N = dsp_power_of_two(N);
+
267 int log4N = log2N >> 1;
+
268
+
269 for (int i = 1; i < N - 1; i++) {
+
270 int cnt;
+
271 int xx;
+
272 int bits2;
+
273 xx = 0;
+
274 cnt = log4N;
+
275 int j = i;
+
276 while (cnt > 0) {
+
277 bits2 = j & 0x3;
+
278 xx = (xx << 2) + bits2;
+
279 j = j >> 2;
+
280 cnt--;
+
281 }
+
282 if (i < xx) {
+
283 ESP_LOGD(TAG, "%i, %i, ", i * step, xx * step);
+
284 items_count++;
+
285 if ((items_count % 8) == 0) {
+
286 ESP_LOGD(TAG, " ");
+
287 }
+
288 }
+
289 }
+
290
+
291 ESP_LOGD(TAG, "};");
+
292 ESP_LOGD(TAG, "const uint16_t bitrev4r_table_%i_%s_size = %i;\n", N, name_ext, items_count);
+
293
+
294 ESP_LOGD(TAG, "extern const uint16_t bitrev4r_table_%i_%s[];", N, name_ext);
+
295 ESP_LOGD(TAG, "extern const uint16_t bitrev4r_table_%i_%s_size;\n", N, name_ext);
+
296 return ESP_OK;
+
297}
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References dsp_is_power_of_two(), dsp_power_of_two(), ESP_ERR_DSP_INVALID_LENGTH, ESP_LOGD, ESP_OK, N, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ dsps_fft4r_initialized

+ +
+
+ + + + +
uint8_t dsps_fft4r_initialized = 0
+
+
+ +

◆ dsps_fft4r_mem_allocated

+ +
+
+ + + + +
uint8_t dsps_fft4r_mem_allocated = 0
+
+ +

Definition at line 30 of file dsps_fft4r_fc32_ansi.c.

+ +

Referenced by dsps_fft4r_deinit_fc32(), and dsps_fft4r_init_fc32().

+ +
+
+ +

◆ dsps_fft4r_ram_rev_table

+ +
+
+ + + + +
uint16_t* dsps_fft4r_ram_rev_table = NULL
+
+ +

Definition at line 32 of file dsps_fft4r_fc32_ansi.c.

+ +

Referenced by dsps_fft4r_deinit_fc32(), and dsps_fft4r_init_fc32().

+ +
+
+ +

◆ dsps_fft4r_w_table_fc32

+ +
+
+ + + + +
float* dsps_fft4r_w_table_fc32
+
+ +

Definition at line 27 of file dsps_fft4r_fc32_ansi.c.

+ +

Referenced by dsps_fft4r_deinit_fc32(), and dsps_fft4r_init_fc32().

+ +
+
+ +

◆ dsps_fft4r_w_table_size

+ +
+
+ + + + +
int dsps_fft4r_w_table_size
+
+ +

Definition at line 28 of file dsps_fft4r_fc32_ansi.c.

+ +

Referenced by dsps_fft4r_init_fc32().

+ +
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "fftr4 ansi"
+
+static
+
+ +

Definition at line 25 of file dsps_fft4r_fc32_ansi.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c.js b/docs/html/dsps__fft4r__fc32__ansi_8c.js new file mode 100644 index 0000000..765b470 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c.js @@ -0,0 +1,16 @@ +var dsps__fft4r__fc32__ansi_8c = +[ + [ "dsps_bit_rev4r_direct_fc32_ansi", "dsps__fft4r__fc32__ansi_8c.html#acb8989c84ce30360b587beea893f0af9", null ], + [ "dsps_bit_rev4r_fc32", "dsps__fft4r__fc32__ansi_8c.html#a3fdee63a8e14ed691fe581929581f8a6", null ], + [ "dsps_cplx2real_fc32_ansi_", "dsps__fft4r__fc32__ansi_8c.html#a14dadf239688bb5e2c280d0968b78520", null ], + [ "dsps_fft4r_deinit_fc32", "dsps__fft4r__fc32__ansi_8c.html#aea134a0ba92ac4cd85758f836fbde8d0", null ], + [ "dsps_fft4r_fc32_ansi_", "dsps__fft4r__fc32__ansi_8c.html#a64628ca038198d02d3c4f79bee7ccaf0", null ], + [ "dsps_fft4r_init_fc32", "dsps__fft4r__fc32__ansi_8c.html#a2372c5dae54caef87742b9e8e2c30a48", null ], + [ "dsps_gen_bitrev4r_table", "dsps__fft4r__fc32__ansi_8c.html#ac53cd559aeb273a1f8cc85859e8c3b57", null ], + [ "dsps_fft4r_initialized", "dsps__fft4r__fc32__ansi_8c.html#ae63edc0e0d0e22898811c3347049cf7f", null ], + [ "dsps_fft4r_mem_allocated", "dsps__fft4r__fc32__ansi_8c.html#aae31fad3719c489a483d522ad2ced2ac", null ], + [ "dsps_fft4r_ram_rev_table", "dsps__fft4r__fc32__ansi_8c.html#a50d617b17be04372fab4dd25951d75f0", null ], + [ "dsps_fft4r_w_table_fc32", "dsps__fft4r__fc32__ansi_8c.html#a80b91be5c14c7bebe385456f34804fef", null ], + [ "dsps_fft4r_w_table_size", "dsps__fft4r__fc32__ansi_8c.html#a64019a34c2fb126ec4bce1810d09cada", null ], + [ "TAG", "dsps__fft4r__fc32__ansi_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c__incl.md5 b/docs/html/dsps__fft4r__fc32__ansi_8c__incl.md5 new file mode 100644 index 0000000..e911e95 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +2e8fc20f43c2e4745b3c4d9a8ae19a2d \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c__incl.svg b/docs/html/dsps__fft4r__fc32__ansi_8c__incl.svg new file mode 100644 index 0000000..27852b5 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c__incl.svg @@ -0,0 +1,590 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft4r_fc32_ansi.c + + +Node1 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsps_fft4r.h + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +dsp_common.h + + + + + +Node1->Node13 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node1->Node17 + + + + + + + + +Node19 + + +math.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +esp_attr.h + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +esp_log.h + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +string.h + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +malloc.h + + + + + +Node1->Node23 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node8 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12 + + +dsps_fft4r_platform.h + + + + + +Node11->Node12 + + + + + + + + +Node12->Node8 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node4 + + + + + + + + +Node14 + + +stdbool.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +x86intrin.h + + + + + +Node13->Node16 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node14 + + + + + + + + +Node18 + + +inttypes.h + + + + + +Node17->Node18 + + + + + + + + +Node21->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c__incl_org.svg b/docs/html/dsps__fft4r__fc32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..fe6af90 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c__incl_org.svg @@ -0,0 +1,507 @@ + + + + + + +dsps_fft4r_fc32_ansi.c + + +Node1 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsps_fft4r.h + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +dsp_common.h + + + + + +Node1->Node13 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node1->Node17 + + + + + + + + +Node19 + + +math.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +esp_attr.h + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +esp_log.h + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +string.h + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +malloc.h + + + + + +Node1->Node23 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft_tables.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_platform.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node8 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12 + + +dsps_fft4r_platform.h + + + + + +Node11->Node12 + + + + + + + + +Node12->Node8 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node4 + + + + + + + + +Node14 + + +stdbool.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +x86intrin.h + + + + + +Node13->Node16 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node14 + + + + + + + + +Node18 + + +inttypes.h + + + + + +Node17->Node18 + + + + + + + + +Node21->Node6 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph.md5 b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph.md5 new file mode 100644 index 0000000..0dec22b --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph.md5 @@ -0,0 +1 @@ +b919abdaf6c0fc41f1dd12ccf5fb1fac \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph.svg new file mode 100644 index 0000000..a1f26b3 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft4r_init_fc32 + + +Node1 + + +dsps_fft4r_init_fc32 + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph_org.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph_org.svg new file mode 100644 index 0000000..f792914 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft4r_init_fc32 + + +Node1 + + +dsps_fft4r_init_fc32 + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph.md5 b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph.md5 new file mode 100644 index 0000000..4a212eb --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph.md5 @@ -0,0 +1 @@ +30e5438db674b0b26ca24e161926b45f \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph.svg new file mode 100644 index 0000000..9a4e1e8 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft4r_init_fc32 + + +Node1 + + +dsps_fft4r_init_fc32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph_org.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph_org.svg new file mode 100644 index 0000000..1d520fc --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a2372c5dae54caef87742b9e8e2c30a48_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft4r_init_fc32 + + +Node1 + + +dsps_fft4r_init_fc32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph.md5 b/docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph.md5 new file mode 100644 index 0000000..3e12efc --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph.md5 @@ -0,0 +1 @@ +32a131c8de7e34f67b5698a814116d43 \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph.svg new file mode 100644 index 0000000..1deb52a --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +dsps_bit_rev4r_fc32 + + +Node1 + + +dsps_bit_rev4r_fc32 + + + + + +Node2 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_power_of_two + + + + + +Node2->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph_org.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph_org.svg new file mode 100644 index 0000000..b1bd44d --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a3fdee63a8e14ed691fe581929581f8a6_cgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +dsps_bit_rev4r_fc32 + + +Node1 + + +dsps_bit_rev4r_fc32 + + + + + +Node2 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_is_power_of_two + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_power_of_two + + + + + +Node2->Node4 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph.md5 b/docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph.md5 new file mode 100644 index 0000000..12e81d7 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph.md5 @@ -0,0 +1 @@ +f2ed903acf8bad55a7a46e52b41a0104 \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph.svg new file mode 100644 index 0000000..dbe6db1 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft4r_fc32_ansi_ + + +Node1 + + +dsps_fft4r_fc32_ansi_ + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph_org.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph_org.svg new file mode 100644 index 0000000..38a81f2 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_a64628ca038198d02d3c4f79bee7ccaf0_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft4r_fc32_ansi_ + + +Node1 + + +dsps_fft4r_fc32_ansi_ + + + + + +Node2 + + +dsp_power_of_two + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 b/docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 new file mode 100644 index 0000000..f79be86 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.md5 @@ -0,0 +1 @@ +51967a9bb669c467678243e04dab84ab \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg new file mode 100644 index 0000000..9e0c546 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_gen_bitrev4r_table + + +Node1 + + +dsps_gen_bitrev4r_table + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_power_of_two + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph_org.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph_org.svg new file mode 100644 index 0000000..be2c892 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_ac53cd559aeb273a1f8cc85859e8c3b57_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_gen_bitrev4r_table + + +Node1 + + +dsps_gen_bitrev4r_table + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_power_of_two + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph.md5 b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph.md5 new file mode 100644 index 0000000..6e908f9 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph.md5 @@ -0,0 +1 @@ +402b18683f2b0571c8f1ba23058100f0 \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph.svg new file mode 100644 index 0000000..9144815 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +dsps_bit_rev4r_direct_fc32_ansi + + +Node1 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_power_of_two + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph_org.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph_org.svg new file mode 100644 index 0000000..a9e27f7 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_cgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +dsps_bit_rev4r_direct_fc32_ansi + + +Node1 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_power_of_two + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph.md5 b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph.md5 new file mode 100644 index 0000000..e2640b5 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph.md5 @@ -0,0 +1 @@ +f7528d61ca2d316807ce335796eb5f96 \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph.svg new file mode 100644 index 0000000..47f979e --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_bit_rev4r_direct_fc32_ansi + + +Node1 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node2 + + +dsps_bit_rev4r_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph_org.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph_org.svg new file mode 100644 index 0000000..9d87a9e --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_acb8989c84ce30360b587beea893f0af9_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_bit_rev4r_direct_fc32_ansi + + +Node1 + + +dsps_bit_rev4r_direct +_fc32_ansi + + + + + +Node2 + + +dsps_bit_rev4r_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph.md5 b/docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph.md5 new file mode 100644 index 0000000..e10daae --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph.md5 @@ -0,0 +1 @@ +029f7b149791d6efe604a0155c20f352 \ No newline at end of file diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph.svg new file mode 100644 index 0000000..8d46826 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_fft4r_deinit_fc32 + + +Node1 + + +dsps_fft4r_deinit_fc32 + + + + + +Node2 + + +dsps_fft4r_rev_tables +_init_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph_org.svg b/docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph_org.svg new file mode 100644 index 0000000..1fe9b23 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_aea134a0ba92ac4cd85758f836fbde8d0_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_fft4r_deinit_fc32 + + +Node1 + + +dsps_fft4r_deinit_fc32 + + + + + +Node2 + + +dsps_fft4r_rev_tables +_init_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r__fc32__ansi_8c_source.html b/docs/html/dsps__fft4r__fc32__ansi_8c_source.html new file mode 100644 index 0000000..61807d8 --- /dev/null +++ b/docs/html/dsps__fft4r__fc32__ansi_8c_source.html @@ -0,0 +1,492 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r_fc32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r_fc32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_fft2r.h"
+
16#include "dsps_fft4r.h"
+
17#include "dsp_common.h"
+
18#include "dsp_types.h"
+
19#include <math.h>
+
20#include "esp_attr.h"
+
21#include "esp_log.h"
+
22#include <string.h>
+
23#include <malloc.h>
+
24
+
25static const char *TAG = "fftr4 ansi";
+
26
+ + + + +
31//float* win2;
+
32uint16_t *dsps_fft4r_ram_rev_table = NULL;
+
33
+
+
34esp_err_t dsps_fft4r_init_fc32(float *fft_table_buff, int max_fft_size)
+
35{
+
36 esp_err_t result = ESP_OK;
+
37 if (dsps_fft4r_initialized != 0) {
+
38 return result;
+
39 }
+
40 if (max_fft_size > CONFIG_DSP_MAX_FFT_SIZE) {
+ +
42 }
+
43 if (max_fft_size == 0) {
+
44 return result;
+
45 }
+
46 if (fft_table_buff != NULL) {
+ + +
49 }
+
50 dsps_fft4r_w_table_fc32 = fft_table_buff;
+
51 dsps_fft4r_w_table_size = max_fft_size * 2;
+
52 } else {
+ +
54 dsps_fft4r_w_table_fc32 = (float *)malloc(max_fft_size * sizeof(float) * 4);
+
55 if (NULL == dsps_fft4r_w_table_fc32) {
+ +
57 }
+
58 }
+
59 dsps_fft4r_w_table_size = max_fft_size * 2;
+ +
61 }
+
62
+
63 // FFT ram_rev table allocated
+
64 int pow = dsp_power_of_two(max_fft_size) >> 1;
+
65 if ((pow >= 2) && (pow <= 6)) {
+
66 dsps_fft4r_ram_rev_table = (uint16_t *)malloc(2 * dsps_fft4r_rev_tables_fc32_size[pow - 2] * sizeof(uint16_t));
+
67 if (NULL == dsps_fft4r_ram_rev_table) {
+ +
69 }
+
70 memcpy(dsps_fft4r_ram_rev_table, dsps_fft4r_rev_tables_fc32[pow - 2], 2 * dsps_fft4r_rev_tables_fc32_size[pow - 2] * sizeof(uint16_t));
+ +
72 }
+
73
+
74 for (int i = 0; i < dsps_fft4r_w_table_size; i++) {
+
75 float angle = 2 * M_PI * i / (float)dsps_fft4r_w_table_size;
+
76 dsps_fft4r_w_table_fc32[2 * i + 0] = cosf(angle);
+
77 dsps_fft4r_w_table_fc32[2 * i + 1] = sinf(angle);
+
78 }
+
79
+ +
81
+
82 return ESP_OK;
+
83}
+
+
84
+
+ +
86{
+ + +
89 }
+
90 if (dsps_fft4r_ram_rev_table != NULL) {
+ + +
93 }
+
94 // Re init bitrev table for next use
+ +
96
+ + +
99}
+
+
100
+
+ +
102{
+
103 if (!dsp_is_power_of_two(N)) {
+ +
105 }
+
106 if (0 == dsps_fft4r_initialized) {
+ +
108 }
+
109 esp_err_t result = ESP_OK;
+
110 int log2N = dsp_power_of_two(N);
+
111 int log4N = log2N >> 1;
+
112 if ((log2N & 0x01) != 0) {
+ +
114 }
+
115 float r_temp, i_temp;
+
116 for (int i = 0; i < N; i++) {
+
117 int cnt;
+
118 int xx;
+
119 int bits2;
+
120 xx = 0;
+
121 cnt = log4N;
+
122 int j = i;
+
123 while (cnt > 0) {
+
124 bits2 = j & 0x3;
+
125 xx = (xx << 2) + bits2;
+
126 j = j >> 2;
+
127 cnt--;
+
128 }
+
129 if (i < xx) {
+
130 r_temp = data[i * 2 + 0];
+
131 i_temp = data[i * 2 + 1];
+
132 data[i * 2 + 0] = data[xx * 2 + 0];
+
133 data[i * 2 + 1] = data[xx * 2 + 1];
+
134 data[xx * 2 + 0] = r_temp;
+
135 data[xx * 2 + 1] = i_temp;
+
136 }
+
137 }
+
138 return result;
+
139}
+
+
140
+
+
141esp_err_t dsps_fft4r_fc32_ansi_(float *data, int length, float *table, int table_size)
+
142{
+
143 if (0 == dsps_fft4r_initialized) {
+ +
145 }
+
146
+
147 fc32_t bfly[4];
+
148 int log2N = dsp_power_of_two(length);
+
149 int log4N = log2N >> 1;
+
150 if ((log2N & 0x01) != 0) {
+ +
152 }
+
153
+
154 int m = 2;
+
155 int wind_step = table_size / length;
+
156 while (1) {
+
157 if (log4N == 0) {
+
158 break;
+
159 }
+
160 length = length >> 2;
+
161 for (int j = 0; j < m; j += 2) { // j: which FFT of this step
+
162 int start_index = j * (length << 1); // n: n-point FFT
+
163
+
164 fc32_t *ptrc0 = (fc32_t *)data + start_index;
+
165 fc32_t *ptrc1 = ptrc0 + length;
+
166 fc32_t *ptrc2 = ptrc1 + length;
+
167 fc32_t *ptrc3 = ptrc2 + length;
+
168
+
169 fc32_t *winc0 = (fc32_t *)table;
+
170 fc32_t *winc1 = winc0;
+
171 fc32_t *winc2 = winc0;
+
172
+
173 for (int k = 0; k < length; k++) {
+
174 fc32_t in0 = *ptrc0;
+
175 fc32_t in2 = *ptrc2;
+
176 fc32_t in1 = *ptrc1;
+
177 fc32_t in3 = *ptrc3;
+
178
+
179 bfly[0].re = in0.re + in2.re + in1.re + in3.re;
+
180 bfly[0].im = in0.im + in2.im + in1.im + in3.im;
+
181
+
182 bfly[1].re = in0.re - in2.re + in1.im - in3.im;
+
183 bfly[1].im = in0.im - in2.im - in1.re + in3.re;
+
184
+
185 bfly[2].re = in0.re + in2.re - in1.re - in3.re;
+
186 bfly[2].im = in0.im + in2.im - in1.im - in3.im;
+
187
+
188 bfly[3].re = in0.re - in2.re - in1.im + in3.im;
+
189 bfly[3].im = in0.im - in2.im + in1.re - in3.re;
+
190
+
191
+
192
+
193 *ptrc0 = bfly[0];
+
194 ptrc1->re = bfly[1].re * winc0->re + bfly[1].im * winc0->im;
+
195 ptrc1->im = bfly[1].im * winc0->re - bfly[1].re * winc0->im;
+
196 ptrc2->re = bfly[2].re * winc1->re + bfly[2].im * winc1->im;
+
197 ptrc2->im = bfly[2].im * winc1->re - bfly[2].re * winc1->im;
+
198 ptrc3->re = bfly[3].re * winc2->re + bfly[3].im * winc2->im;
+
199 ptrc3->im = bfly[3].im * winc2->re - bfly[3].re * winc2->im;
+
200
+
201 winc0 += 1 * wind_step;
+
202 winc1 += 2 * wind_step;
+
203 winc2 += 3 * wind_step;
+
204
+
205 ptrc0++;
+
206 ptrc1++;
+
207 ptrc2++;
+
208 ptrc3++;
+
209 }
+
210 }
+
211 m = m << 2;
+
212 wind_step = wind_step << 2;
+
213 log4N--;
+
214 }
+
215 return ESP_OK;
+
216}
+
+
217
+
+
218esp_err_t dsps_cplx2real_fc32_ansi_(float *data, int N, float *table, int table_size)
+
219{
+
220 if (0 == dsps_fft4r_initialized) {
+ +
222 }
+
223 int wind_step = table_size / (N);
+
224 fc32_t *result = (fc32_t *)data;
+
225 // Original formula...
+
226 // result[0].re = result[0].re + result[0].im;
+
227 // result[N].re = result[0].re - result[0].im;
+
228 // result[0].im = 0;
+
229 // result[N].im = 0;
+
230 // Optimized one:
+
231 float tmp_re = result[0].re;
+
232 result[0].re = tmp_re + result[0].im;
+
233 result[0].im = tmp_re - result[0].im;
+
234
+
235 fc32_t f1k, f2k;
+
236 for (int k = 1; k <= N / 2 ; k++ ) {
+
237 fc32_t fpk = result[k];
+
238 fc32_t fpnk = result[N - k];
+
239 f1k.re = fpk.re + fpnk.re;
+
240 f1k.im = fpk.im - fpnk.im;
+
241 f2k.re = fpk.re - fpnk.re;
+
242 f2k.im = fpk.im + fpnk.im;
+
243
+
244 float c = -table[k * wind_step + 1];
+
245 float s = -table[k * wind_step + 0];
+
246 fc32_t tw;
+
247 tw.re = c * f2k.re - s * f2k.im;
+
248 tw.im = s * f2k.re + c * f2k.im;
+
249
+
250 result[k].re = 0.5 * (f1k.re + tw.re);
+
251 result[k].im = 0.5 * (f1k.im + tw.im);
+
252 result[N - k].re = 0.5 * (f1k.re - tw.re);
+
253 result[N - k].im = 0.5 * (tw.im - f1k.im);
+
254 }
+
255 return ESP_OK;
+
256}
+
+
257
+
+
258esp_err_t dsps_gen_bitrev4r_table(int N, int step, char *name_ext)
+
259{
+
260 if (!dsp_is_power_of_two(N)) {
+ +
262 }
+
263
+
264 int items_count = 0;
+
265 ESP_LOGD(TAG, "const uint16_t bitrev4r_table_%i_%s[] = { ", N, name_ext);
+
266 int log2N = dsp_power_of_two(N);
+
267 int log4N = log2N >> 1;
+
268
+
269 for (int i = 1; i < N - 1; i++) {
+
270 int cnt;
+
271 int xx;
+
272 int bits2;
+
273 xx = 0;
+
274 cnt = log4N;
+
275 int j = i;
+
276 while (cnt > 0) {
+
277 bits2 = j & 0x3;
+
278 xx = (xx << 2) + bits2;
+
279 j = j >> 2;
+
280 cnt--;
+
281 }
+
282 if (i < xx) {
+
283 ESP_LOGD(TAG, "%i, %i, ", i * step, xx * step);
+
284 items_count++;
+
285 if ((items_count % 8) == 0) {
+
286 ESP_LOGD(TAG, " ");
+
287 }
+
288 }
+
289 }
+
290
+
291 ESP_LOGD(TAG, "};");
+
292 ESP_LOGD(TAG, "const uint16_t bitrev4r_table_%i_%s_size = %i;\n", N, name_ext, items_count);
+
293
+
294 ESP_LOGD(TAG, "extern const uint16_t bitrev4r_table_%i_%s[];", N, name_ext);
+
295 ESP_LOGD(TAG, "extern const uint16_t bitrev4r_table_%i_%s_size;\n", N, name_ext);
+
296 return ESP_OK;
+
297}
+
+
298
+
+ +
300{
+
301 uint16_t *table;
+
302 uint16_t table_size;
+
303 switch (N) {
+
304 case 16:
+
305 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[0];
+
306 table_size = dsps_fft4r_rev_tables_fc32_size[0];
+
307 break;
+
308 case 64:
+
309 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[1];
+
310 table_size = dsps_fft4r_rev_tables_fc32_size[1];
+
311 break;
+
312 case 256:
+
313 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[2];
+
314 table_size = dsps_fft4r_rev_tables_fc32_size[2];
+
315 break;
+
316 case 1024:
+
317 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[3];
+
318 table_size = dsps_fft4r_rev_tables_fc32_size[3];
+
319 break;
+
320 case 4096:
+
321 table = (uint16_t *)dsps_fft4r_rev_tables_fc32[4];
+
322 table_size = dsps_fft4r_rev_tables_fc32_size[4];
+
323 break;
+
324
+
325 default:
+ +
327 break;
+
328 }
+
329
+
330 return dsps_bit_rev_lookup_fc32(data, table_size, table);
+
331}
+
+ +
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_UNINITIALIZED
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_REINITIALIZED
+ +
union fc32_u fc32_t
+ +
#define dsps_bit_rev_lookup_fc32
Definition dsps_fft2r.h:252
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+ +
#define dsps_bit_rev4r_fc32
Definition dsps_fft4r.h:184
+
void dsps_fft4r_rev_tables_init_fc32(void)
+
uint16_t * dsps_fft4r_rev_tables_fc32[]
+
const uint16_t dsps_fft4r_rev_tables_fc32_size[]
+
esp_err_t dsps_cplx2real_fc32_ansi_(float *data, int N, float *table, int table_size)
Convert FFT result to complex array for real input data.
+
esp_err_t dsps_fft4r_init_fc32(float *fft_table_buff, int max_fft_size)
init fft tables
+
uint16_t * dsps_fft4r_ram_rev_table
+
int dsps_fft4r_w_table_size
+
esp_err_t dsps_fft4r_fc32_ansi_(float *data, int length, float *table, int table_size)
complex FFT of radix 4
+
float * dsps_fft4r_w_table_fc32
+
uint8_t dsps_fft4r_mem_allocated
+
esp_err_t dsps_gen_bitrev4r_table(int N, int step, char *name_ext)
+
esp_err_t dsps_bit_rev4r_direct_fc32_ansi(float *data, int N)
+
uint8_t dsps_fft4r_initialized
+
void dsps_fft4r_deinit_fc32()
deinit fft tables
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+ +
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
static float data[128 *2]
Definition test_fft2r.c:34
+
#define N
Definition test_mmult.c:13
+
const int m
Definition test_mmult.c:16
+
const int k
Definition test_mmult.c:18
+
float re
Definition dsp_types.h:18
+
float im
Definition dsp_types.h:19
+
+
+
+ + + + diff --git a/docs/html/dsps__fft4r__platform_8h.html b/docs/html/dsps__fft4r__platform_8h.html new file mode 100644 index 0000000..4486ddb --- /dev/null +++ b/docs/html/dsps__fft4r__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_fft4r_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft4r__platform_8h__dep__incl.md5 b/docs/html/dsps__fft4r__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..6a56a8a --- /dev/null +++ b/docs/html/dsps__fft4r__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +9a0d4bd43ee1b6e5b2e99114e3b304c2 \ No newline at end of file diff --git a/docs/html/dsps__fft4r__platform_8h__dep__incl.svg b/docs/html/dsps__fft4r__platform_8h__dep__incl.svg new file mode 100644 index 0000000..add29e9 --- /dev/null +++ b/docs/html/dsps__fft4r__platform_8h__dep__incl.svg @@ -0,0 +1,617 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft4r_platform.h + + +Node1 + + +dsps_fft4r_platform.h + + + + + +Node2 + + +dsps_fft4r.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node5->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node5->Node12 + + + + + + + + +Node13 + + +3d_kalman_demo.cpp + + + + + +Node5->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node5->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node5->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node5->Node16 + + + + + + + + +Node17 + + +dsp_tests.h + + + + + +Node5->Node17 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node5->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node5->Node26 + + + + + + + + +Node28 + + +graphics_support.h + + + + + +Node5->Node28 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node5->Node30 + + + + + + + + +Node31 + + +init_display.c + + + + + +Node5->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node5->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node5->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node5->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node5->Node38 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__platform_8h__dep__incl_org.svg b/docs/html/dsps__fft4r__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..538040a --- /dev/null +++ b/docs/html/dsps__fft4r__platform_8h__dep__incl_org.svg @@ -0,0 +1,534 @@ + + + + + + +dsps_fft4r_platform.h + + +Node1 + + +dsps_fft4r_platform.h + + + + + +Node2 + + +dsps_fft4r.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node3 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +3d_graphics_demo.cpp + + + + + +Node5->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node5->Node12 + + + + + + + + +Node13 + + +3d_kalman_demo.cpp + + + + + +Node5->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node5->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node5->Node15 + + + + + + + + +Node16 + + +audio_amp_main.c + + + + + +Node5->Node16 + + + + + + + + +Node17 + + +dsp_tests.h + + + + + +Node5->Node17 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node5->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node5->Node26 + + + + + + + + +Node28 + + +graphics_support.h + + + + + +Node5->Node28 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node5->Node30 + + + + + + + + +Node31 + + +init_display.c + + + + + +Node5->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node5->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node5->Node34 + + + + + + + + +Node35 + + +kalman_filter_demo.cpp + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node5->Node37 + + + + + + + + +Node38 + + +main.c + + + + + +Node5->Node38 + + + + + + + + diff --git a/docs/html/dsps__fft4r__platform_8h__incl.md5 b/docs/html/dsps__fft4r__platform_8h__incl.md5 new file mode 100644 index 0000000..ebb5f77 --- /dev/null +++ b/docs/html/dsps__fft4r__platform_8h__incl.md5 @@ -0,0 +1 @@ +3a5d66a1e29ac5477d46e03c3054076b \ No newline at end of file diff --git a/docs/html/dsps__fft4r__platform_8h__incl.svg b/docs/html/dsps__fft4r__platform_8h__incl.svg new file mode 100644 index 0000000..820784a --- /dev/null +++ b/docs/html/dsps__fft4r__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fft4r_platform.h + + +Node1 + + +dsps_fft4r_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft4r__platform_8h__incl_org.svg b/docs/html/dsps__fft4r__platform_8h__incl_org.svg new file mode 100644 index 0000000..706229b --- /dev/null +++ b/docs/html/dsps__fft4r__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fft4r_platform.h + + +Node1 + + +dsps_fft4r_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft4r__platform_8h_source.html b/docs/html/dsps__fft4r__platform_8h_source.html new file mode 100644 index 0000000..dcfcf99 --- /dev/null +++ b/docs/html/dsps__fft4r__platform_8h_source.html @@ -0,0 +1,161 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft4r_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft4r_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_fft4r_platform_H_
+
2#define _dsps_fft4r_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dsps_cplx2real_fc32_ae32_enabled 1
+
14
+
15#endif //
+
16
+
17
+
18#if ((XCHAL_HAVE_LOOPS == 1) && (XCHAL_HAVE_MAC16 == 1))
+
19
+
20#define dsps_fft2r_sc16_ae32_enabled 1
+
21
+
22#endif //
+
23
+
24#if (XCHAL_HAVE_LOOPS == 1)
+
25
+
26#define dsps_bit_rev_lookup_fc32_ae32_enabled 1
+
27
+
28#endif //
+
29#endif // __XTENSA__
+
30
+
31#if CONFIG_IDF_TARGET_ESP32P4
+
32#ifdef CONFIG_DSP_OPTIMIZED
+
33#define dsps_fft4r_fc32_arp4_enabled 1
+
34#else // CONFIG_DSP_OPTIMIZED
+
35#define dsps_fft4r_fc32_arp4_enabled 0
+
36#endif // CONFIG_DSP_OPTIMIZED
+
37#endif
+
38
+
39#if CONFIG_IDF_TARGET_ESP32
+
40#ifdef CONFIG_DSP_OPTIMIZED
+
41#define dsps_fft4r_fc32_ae32_enabled 1
+
42#else // CONFIG_DSP_OPTIMIZED
+
43#define dsps_fft4r_fc32_ae32_enabled 0
+
44#endif // CONFIG_DSP_OPTIMIZED
+
45#endif
+
46
+
47#if CONFIG_IDF_TARGET_ESP32S3
+
48#ifdef CONFIG_DSP_OPTIMIZED
+
49#define dsps_fft4r_fc32_aes3_enabled 1
+
50#else // CONFIG_DSP_OPTIMIZED
+
51#define dsps_fft4r_fc32_aes3_enabled 0
+
52#endif // CONFIG_DSP_OPTIMIZED
+
53#endif
+
54
+
55#endif // _dsps_fft4r_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__fft__tables_8h.html b/docs/html/dsps__fft__tables_8h.html new file mode 100644 index 0000000..0316414 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h.html @@ -0,0 +1,2135 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft_tables.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft_tables.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

void dsps_fft2r_rev_tables_init_fc32 (void)
void dsps_fft4r_rev_tables_init_fc32 (void)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

const uint16_t bitrev2r_table_16_fc32 []
const uint16_t bitrev2r_table_16_fc32_size
const uint16_t bitrev2r_table_32_fc32 []
const uint16_t bitrev2r_table_32_fc32_size
const uint16_t bitrev2r_table_64_fc32 []
const uint16_t bitrev2r_table_64_fc32_size
const uint16_t bitrev2r_table_128_fc32 []
const uint16_t bitrev2r_table_128_fc32_size
const uint16_t bitrev2r_table_256_fc32 []
const uint16_t bitrev2r_table_256_fc32_size
const uint16_t bitrev2r_table_512_fc32 []
const uint16_t bitrev2r_table_512_fc32_size
const uint16_t bitrev2r_table_1024_fc32 []
const uint16_t bitrev2r_table_1024_fc32_size
const uint16_t bitrev2r_table_2048_fc32 []
const uint16_t bitrev2r_table_2048_fc32_size
const uint16_t bitrev2r_table_4096_fc32 []
const uint16_t bitrev2r_table_4096_fc32_size
uint16_t * dsps_fft2r_rev_tables_fc32 []
const uint16_t dsps_fft2r_rev_tables_fc32_size []
const uint16_t bitrev4r_table_16_fc32 []
const uint16_t bitrev4r_table_16_fc32_size
const uint16_t bitrev4r_table_32_fc32 []
const uint16_t bitrev4r_table_32_fc32_size
const uint16_t bitrev4r_table_64_fc32 []
const uint16_t bitrev4r_table_64_fc32_size
const uint16_t bitrev4r_table_128_fc32 []
const uint16_t bitrev4r_table_128_fc32_size
const uint16_t bitrev4r_table_256_fc32 []
const uint16_t bitrev4r_table_256_fc32_size
const uint16_t bitrev4r_table_512_fc32 []
const uint16_t bitrev4r_table_512_fc32_size
const uint16_t bitrev4r_table_1024_fc32 []
const uint16_t bitrev4r_table_1024_fc32_size
const uint16_t bitrev4r_table_2048_fc32 []
const uint16_t bitrev4r_table_2048_fc32_size
const uint16_t bitrev4r_table_4096_fc32 []
const uint16_t bitrev4r_table_4096_fc32_size
uint16_t * dsps_fft4r_rev_tables_fc32 []
const uint16_t dsps_fft4r_rev_tables_fc32_size []
+

Function Documentation

+ +

◆ dsps_fft2r_rev_tables_init_fc32()

+ +
+
+ + + + + + + +
void dsps_fft2r_rev_tables_init_fc32 (void )
+
+ +

Definition at line 544 of file dsps_fft2r_bitrev_tables_fc32.c.

+
545{
+ + + + + + + + + +
555
+
556}
+
const uint16_t bitrev2r_table_16_fc32[]
+
const uint16_t bitrev2r_table_128_fc32[]
+
const uint16_t bitrev2r_table_1024_fc32[]
+
const uint16_t bitrev2r_table_512_fc32[]
+
const uint16_t bitrev2r_table_32_fc32[]
+
const uint16_t bitrev2r_table_4096_fc32[]
+
const uint16_t bitrev2r_table_64_fc32[]
+
uint16_t * dsps_fft2r_rev_tables_fc32[]
+
const uint16_t bitrev2r_table_256_fc32[]
+
const uint16_t bitrev2r_table_2048_fc32[]
+
+

References bitrev2r_table_1024_fc32, bitrev2r_table_128_fc32, bitrev2r_table_16_fc32, bitrev2r_table_2048_fc32, bitrev2r_table_256_fc32, bitrev2r_table_32_fc32, bitrev2r_table_4096_fc32, bitrev2r_table_512_fc32, bitrev2r_table_64_fc32, and dsps_fft2r_rev_tables_fc32.

+ +

Referenced by dsps_fft2r_deinit_fc32().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fft4r_rev_tables_init_fc32()

+ +
+
+ + + + + + + +
void dsps_fft4r_rev_tables_init_fc32 (void )
+
+ +

Definition at line 377 of file dsps_fft4r_bitrev_tables_fc32.c.

+
378{
+ + + + + +
384
+
385}
+
const uint16_t bitrev4r_table_64_fc32[]
+
const uint16_t bitrev4r_table_4096_fc32[]
+
const uint16_t bitrev4r_table_256_fc32[]
+
uint16_t * dsps_fft4r_rev_tables_fc32[]
+
const uint16_t bitrev4r_table_1024_fc32[]
+
const uint16_t bitrev4r_table_16_fc32[]
+
+

References bitrev4r_table_1024_fc32, bitrev4r_table_16_fc32, bitrev4r_table_256_fc32, bitrev4r_table_4096_fc32, bitrev4r_table_64_fc32, and dsps_fft4r_rev_tables_fc32.

+ +

Referenced by dsps_fft4r_deinit_fc32().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ bitrev2r_table_1024_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_1024_fc32[]
+
+extern
+
+ +

Definition at line 97 of file dsps_fft2r_bitrev_tables_fc32.c.

+
97 {
+
98 8, 4096, 16, 2048, 24, 6144, 32, 1024, 40, 5120, 48, 3072, 56, 7168, 64, 512,
+
99 72, 4608, 80, 2560, 88, 6656, 96, 1536, 104, 5632, 112, 3584, 120, 7680, 128, 256,
+
100 136, 4352, 144, 2304, 152, 6400, 160, 1280, 168, 5376, 176, 3328, 184, 7424, 192, 768,
+
101 200, 4864, 208, 2816, 216, 6912, 224, 1792, 232, 5888, 240, 3840, 248, 7936, 264, 4224,
+
102 272, 2176, 280, 6272, 288, 1152, 296, 5248, 304, 3200, 312, 7296, 320, 640, 328, 4736,
+
103 336, 2688, 344, 6784, 352, 1664, 360, 5760, 368, 3712, 376, 7808, 392, 4480, 400, 2432,
+
104 408, 6528, 416, 1408, 424, 5504, 432, 3456, 440, 7552, 448, 896, 456, 4992, 464, 2944,
+
105 472, 7040, 480, 1920, 488, 6016, 496, 3968, 504, 8064, 520, 4160, 528, 2112, 536, 6208,
+
106 544, 1088, 552, 5184, 560, 3136, 568, 7232, 584, 4672, 592, 2624, 600, 6720, 608, 1600,
+
107 616, 5696, 624, 3648, 632, 7744, 648, 4416, 656, 2368, 664, 6464, 672, 1344, 680, 5440,
+
108 688, 3392, 696, 7488, 704, 832, 712, 4928, 720, 2880, 728, 6976, 736, 1856, 744, 5952,
+
109 752, 3904, 760, 8000, 776, 4288, 784, 2240, 792, 6336, 800, 1216, 808, 5312, 816, 3264,
+
110 824, 7360, 840, 4800, 848, 2752, 856, 6848, 864, 1728, 872, 5824, 880, 3776, 888, 7872,
+
111 904, 4544, 912, 2496, 920, 6592, 928, 1472, 936, 5568, 944, 3520, 952, 7616, 968, 5056,
+
112 976, 3008, 984, 7104, 992, 1984, 1000, 6080, 1008, 4032, 1016, 8128, 1032, 4128, 1040, 2080,
+
113 1048, 6176, 1064, 5152, 1072, 3104, 1080, 7200, 1096, 4640, 1104, 2592, 1112, 6688, 1120, 1568,
+
114 1128, 5664, 1136, 3616, 1144, 7712, 1160, 4384, 1168, 2336, 1176, 6432, 1184, 1312, 1192, 5408,
+
115 1200, 3360, 1208, 7456, 1224, 4896, 1232, 2848, 1240, 6944, 1248, 1824, 1256, 5920, 1264, 3872,
+
116 1272, 7968, 1288, 4256, 1296, 2208, 1304, 6304, 1320, 5280, 1328, 3232, 1336, 7328, 1352, 4768,
+
117 1360, 2720, 1368, 6816, 1376, 1696, 1384, 5792, 1392, 3744, 1400, 7840, 1416, 4512, 1424, 2464,
+
118 1432, 6560, 1448, 5536, 1456, 3488, 1464, 7584, 1480, 5024, 1488, 2976, 1496, 7072, 1504, 1952,
+
119 1512, 6048, 1520, 4000, 1528, 8096, 1544, 4192, 1552, 2144, 1560, 6240, 1576, 5216, 1584, 3168,
+
120 1592, 7264, 1608, 4704, 1616, 2656, 1624, 6752, 1640, 5728, 1648, 3680, 1656, 7776, 1672, 4448,
+
121 1680, 2400, 1688, 6496, 1704, 5472, 1712, 3424, 1720, 7520, 1736, 4960, 1744, 2912, 1752, 7008,
+
122 1760, 1888, 1768, 5984, 1776, 3936, 1784, 8032, 1800, 4320, 1808, 2272, 1816, 6368, 1832, 5344,
+
123 1840, 3296, 1848, 7392, 1864, 4832, 1872, 2784, 1880, 6880, 1896, 5856, 1904, 3808, 1912, 7904,
+
124 1928, 4576, 1936, 2528, 1944, 6624, 1960, 5600, 1968, 3552, 1976, 7648, 1992, 5088, 2000, 3040,
+
125 2008, 7136, 2024, 6112, 2032, 4064, 2040, 8160, 2056, 4112, 2072, 6160, 2088, 5136, 2096, 3088,
+
126 2104, 7184, 2120, 4624, 2128, 2576, 2136, 6672, 2152, 5648, 2160, 3600, 2168, 7696, 2184, 4368,
+
127 2192, 2320, 2200, 6416, 2216, 5392, 2224, 3344, 2232, 7440, 2248, 4880, 2256, 2832, 2264, 6928,
+
128 2280, 5904, 2288, 3856, 2296, 7952, 2312, 4240, 2328, 6288, 2344, 5264, 2352, 3216, 2360, 7312,
+
129 2376, 4752, 2384, 2704, 2392, 6800, 2408, 5776, 2416, 3728, 2424, 7824, 2440, 4496, 2456, 6544,
+
130 2472, 5520, 2480, 3472, 2488, 7568, 2504, 5008, 2512, 2960, 2520, 7056, 2536, 6032, 2544, 3984,
+
131 2552, 8080, 2568, 4176, 2584, 6224, 2600, 5200, 2608, 3152, 2616, 7248, 2632, 4688, 2648, 6736,
+
132 2664, 5712, 2672, 3664, 2680, 7760, 2696, 4432, 2712, 6480, 2728, 5456, 2736, 3408, 2744, 7504,
+
133 2760, 4944, 2768, 2896, 2776, 6992, 2792, 5968, 2800, 3920, 2808, 8016, 2824, 4304, 2840, 6352,
+
134 2856, 5328, 2864, 3280, 2872, 7376, 2888, 4816, 2904, 6864, 2920, 5840, 2928, 3792, 2936, 7888,
+
135 2952, 4560, 2968, 6608, 2984, 5584, 2992, 3536, 3000, 7632, 3016, 5072, 3032, 7120, 3048, 6096,
+
136 3056, 4048, 3064, 8144, 3080, 4144, 3096, 6192, 3112, 5168, 3128, 7216, 3144, 4656, 3160, 6704,
+
137 3176, 5680, 3184, 3632, 3192, 7728, 3208, 4400, 3224, 6448, 3240, 5424, 3248, 3376, 3256, 7472,
+
138 3272, 4912, 3288, 6960, 3304, 5936, 3312, 3888, 3320, 7984, 3336, 4272, 3352, 6320, 3368, 5296,
+
139 3384, 7344, 3400, 4784, 3416, 6832, 3432, 5808, 3440, 3760, 3448, 7856, 3464, 4528, 3480, 6576,
+
140 3496, 5552, 3512, 7600, 3528, 5040, 3544, 7088, 3560, 6064, 3568, 4016, 3576, 8112, 3592, 4208,
+
141 3608, 6256, 3624, 5232, 3640, 7280, 3656, 4720, 3672, 6768, 3688, 5744, 3704, 7792, 3720, 4464,
+
142 3736, 6512, 3752, 5488, 3768, 7536, 3784, 4976, 3800, 7024, 3816, 6000, 3824, 3952, 3832, 8048,
+
143 3848, 4336, 3864, 6384, 3880, 5360, 3896, 7408, 3912, 4848, 3928, 6896, 3944, 5872, 3960, 7920,
+
144 3976, 4592, 3992, 6640, 4008, 5616, 4024, 7664, 4040, 5104, 4056, 7152, 4072, 6128, 4088, 8176,
+
145 4120, 6152, 4136, 5128, 4152, 7176, 4168, 4616, 4184, 6664, 4200, 5640, 4216, 7688, 4232, 4360,
+
146 4248, 6408, 4264, 5384, 4280, 7432, 4296, 4872, 4312, 6920, 4328, 5896, 4344, 7944, 4376, 6280,
+
147 4392, 5256, 4408, 7304, 4424, 4744, 4440, 6792, 4456, 5768, 4472, 7816, 4504, 6536, 4520, 5512,
+
148 4536, 7560, 4552, 5000, 4568, 7048, 4584, 6024, 4600, 8072, 4632, 6216, 4648, 5192, 4664, 7240,
+
149 4696, 6728, 4712, 5704, 4728, 7752, 4760, 6472, 4776, 5448, 4792, 7496, 4808, 4936, 4824, 6984,
+
150 4840, 5960, 4856, 8008, 4888, 6344, 4904, 5320, 4920, 7368, 4952, 6856, 4968, 5832, 4984, 7880,
+
151 5016, 6600, 5032, 5576, 5048, 7624, 5080, 7112, 5096, 6088, 5112, 8136, 5144, 6184, 5176, 7208,
+
152 5208, 6696, 5224, 5672, 5240, 7720, 5272, 6440, 5288, 5416, 5304, 7464, 5336, 6952, 5352, 5928,
+
153 5368, 7976, 5400, 6312, 5432, 7336, 5464, 6824, 5480, 5800, 5496, 7848, 5528, 6568, 5560, 7592,
+
154 5592, 7080, 5608, 6056, 5624, 8104, 5656, 6248, 5688, 7272, 5720, 6760, 5752, 7784, 5784, 6504,
+
155 5816, 7528, 5848, 7016, 5864, 5992, 5880, 8040, 5912, 6376, 5944, 7400, 5976, 6888, 6008, 7912,
+
156 6040, 6632, 6072, 7656, 6104, 7144, 6136, 8168, 6200, 7192, 6232, 6680, 6264, 7704, 6296, 6424,
+
157 6328, 7448, 6360, 6936, 6392, 7960, 6456, 7320, 6488, 6808, 6520, 7832, 6584, 7576, 6616, 7064,
+
158 6648, 8088, 6712, 7256, 6776, 7768, 6840, 7512, 6872, 7000, 6904, 8024, 6968, 7384, 7032, 7896,
+
159 7096, 7640, 7160, 8152, 7288, 7736, 7352, 7480, 7416, 7992, 7544, 7864, 7672, 8120, 7928, 8056,
+
160};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_1024_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_1024_fc32_size
+
+extern
+
+ +

Definition at line 576 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_128_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_128_fc32[]
+
+extern
+
+ +

Definition at line 36 of file dsps_fft2r_bitrev_tables_fc32.c.

+
36 {
+
37 8, 512, 16, 256, 24, 768, 32, 128, 40, 640, 48, 384, 56, 896, 72, 576,
+
38 80, 320, 88, 832, 96, 192, 104, 704, 112, 448, 120, 960, 136, 544, 144, 288,
+
39 152, 800, 168, 672, 176, 416, 184, 928, 200, 608, 208, 352, 216, 864, 232, 736,
+
40 240, 480, 248, 992, 264, 528, 280, 784, 296, 656, 304, 400, 312, 912, 328, 592,
+
41 344, 848, 360, 720, 368, 464, 376, 976, 392, 560, 408, 816, 424, 688, 440, 944,
+
42 456, 624, 472, 880, 488, 752, 504, 1008, 536, 776, 552, 648, 568, 904, 600, 840,
+
43 616, 712, 632, 968, 664, 808, 696, 936, 728, 872, 760, 1000, 824, 920, 888, 984,
+
44};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_128_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_128_fc32_size
+
+extern
+
+ +

Definition at line 573 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_16_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_16_fc32[]
+
+extern
+
+ +

Definition at line 20 of file dsps_fft2r_bitrev_tables_fc32.c.

+
20 {
+
21 8, 64, 16, 32, 24, 96, 40, 80, 56, 112, 88, 104,
+
22};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_16_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_16_fc32_size
+
+extern
+
+ +

Definition at line 570 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_2048_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_2048_fc32[]
+
+extern
+
+ +

Definition at line 162 of file dsps_fft2r_bitrev_tables_fc32.c.

+
162 {
+
163 8, 8192, 16, 4096, 24, 12288, 32, 2048, 40, 10240, 48, 6144, 56, 14336, 64, 1024,
+
164 72, 9216, 80, 5120, 88, 13312, 96, 3072, 104, 11264, 112, 7168, 120, 15360, 128, 512,
+
165 136, 8704, 144, 4608, 152, 12800, 160, 2560, 168, 10752, 176, 6656, 184, 14848, 192, 1536,
+
166 200, 9728, 208, 5632, 216, 13824, 224, 3584, 232, 11776, 240, 7680, 248, 15872, 264, 8448,
+
167 272, 4352, 280, 12544, 288, 2304, 296, 10496, 304, 6400, 312, 14592, 320, 1280, 328, 9472,
+
168 336, 5376, 344, 13568, 352, 3328, 360, 11520, 368, 7424, 376, 15616, 384, 768, 392, 8960,
+
169 400, 4864, 408, 13056, 416, 2816, 424, 11008, 432, 6912, 440, 15104, 448, 1792, 456, 9984,
+
170 464, 5888, 472, 14080, 480, 3840, 488, 12032, 496, 7936, 504, 16128, 520, 8320, 528, 4224,
+
171 536, 12416, 544, 2176, 552, 10368, 560, 6272, 568, 14464, 576, 1152, 584, 9344, 592, 5248,
+
172 600, 13440, 608, 3200, 616, 11392, 624, 7296, 632, 15488, 648, 8832, 656, 4736, 664, 12928,
+
173 672, 2688, 680, 10880, 688, 6784, 696, 14976, 704, 1664, 712, 9856, 720, 5760, 728, 13952,
+
174 736, 3712, 744, 11904, 752, 7808, 760, 16000, 776, 8576, 784, 4480, 792, 12672, 800, 2432,
+
175 808, 10624, 816, 6528, 824, 14720, 832, 1408, 840, 9600, 848, 5504, 856, 13696, 864, 3456,
+
176 872, 11648, 880, 7552, 888, 15744, 904, 9088, 912, 4992, 920, 13184, 928, 2944, 936, 11136,
+
177 944, 7040, 952, 15232, 960, 1920, 968, 10112, 976, 6016, 984, 14208, 992, 3968, 1000, 12160,
+
178 1008, 8064, 1016, 16256, 1032, 8256, 1040, 4160, 1048, 12352, 1056, 2112, 1064, 10304, 1072, 6208,
+
179 1080, 14400, 1096, 9280, 1104, 5184, 1112, 13376, 1120, 3136, 1128, 11328, 1136, 7232, 1144, 15424,
+
180 1160, 8768, 1168, 4672, 1176, 12864, 1184, 2624, 1192, 10816, 1200, 6720, 1208, 14912, 1216, 1600,
+
181 1224, 9792, 1232, 5696, 1240, 13888, 1248, 3648, 1256, 11840, 1264, 7744, 1272, 15936, 1288, 8512,
+
182 1296, 4416, 1304, 12608, 1312, 2368, 1320, 10560, 1328, 6464, 1336, 14656, 1352, 9536, 1360, 5440,
+
183 1368, 13632, 1376, 3392, 1384, 11584, 1392, 7488, 1400, 15680, 1416, 9024, 1424, 4928, 1432, 13120,
+
184 1440, 2880, 1448, 11072, 1456, 6976, 1464, 15168, 1472, 1856, 1480, 10048, 1488, 5952, 1496, 14144,
+
185 1504, 3904, 1512, 12096, 1520, 8000, 1528, 16192, 1544, 8384, 1552, 4288, 1560, 12480, 1568, 2240,
+
186 1576, 10432, 1584, 6336, 1592, 14528, 1608, 9408, 1616, 5312, 1624, 13504, 1632, 3264, 1640, 11456,
+
187 1648, 7360, 1656, 15552, 1672, 8896, 1680, 4800, 1688, 12992, 1696, 2752, 1704, 10944, 1712, 6848,
+
188 1720, 15040, 1736, 9920, 1744, 5824, 1752, 14016, 1760, 3776, 1768, 11968, 1776, 7872, 1784, 16064,
+
189 1800, 8640, 1808, 4544, 1816, 12736, 1824, 2496, 1832, 10688, 1840, 6592, 1848, 14784, 1864, 9664,
+
190 1872, 5568, 1880, 13760, 1888, 3520, 1896, 11712, 1904, 7616, 1912, 15808, 1928, 9152, 1936, 5056,
+
191 1944, 13248, 1952, 3008, 1960, 11200, 1968, 7104, 1976, 15296, 1992, 10176, 2000, 6080, 2008, 14272,
+
192 2016, 4032, 2024, 12224, 2032, 8128, 2040, 16320, 2056, 8224, 2064, 4128, 2072, 12320, 2088, 10272,
+
193 2096, 6176, 2104, 14368, 2120, 9248, 2128, 5152, 2136, 13344, 2144, 3104, 2152, 11296, 2160, 7200,
+
194 2168, 15392, 2184, 8736, 2192, 4640, 2200, 12832, 2208, 2592, 2216, 10784, 2224, 6688, 2232, 14880,
+
195 2248, 9760, 2256, 5664, 2264, 13856, 2272, 3616, 2280, 11808, 2288, 7712, 2296, 15904, 2312, 8480,
+
196 2320, 4384, 2328, 12576, 2344, 10528, 2352, 6432, 2360, 14624, 2376, 9504, 2384, 5408, 2392, 13600,
+
197 2400, 3360, 2408, 11552, 2416, 7456, 2424, 15648, 2440, 8992, 2448, 4896, 2456, 13088, 2464, 2848,
+
198 2472, 11040, 2480, 6944, 2488, 15136, 2504, 10016, 2512, 5920, 2520, 14112, 2528, 3872, 2536, 12064,
+
199 2544, 7968, 2552, 16160, 2568, 8352, 2576, 4256, 2584, 12448, 2600, 10400, 2608, 6304, 2616, 14496,
+
200 2632, 9376, 2640, 5280, 2648, 13472, 2656, 3232, 2664, 11424, 2672, 7328, 2680, 15520, 2696, 8864,
+
201 2704, 4768, 2712, 12960, 2728, 10912, 2736, 6816, 2744, 15008, 2760, 9888, 2768, 5792, 2776, 13984,
+
202 2784, 3744, 2792, 11936, 2800, 7840, 2808, 16032, 2824, 8608, 2832, 4512, 2840, 12704, 2856, 10656,
+
203 2864, 6560, 2872, 14752, 2888, 9632, 2896, 5536, 2904, 13728, 2912, 3488, 2920, 11680, 2928, 7584,
+
204 2936, 15776, 2952, 9120, 2960, 5024, 2968, 13216, 2984, 11168, 2992, 7072, 3000, 15264, 3016, 10144,
+
205 3024, 6048, 3032, 14240, 3040, 4000, 3048, 12192, 3056, 8096, 3064, 16288, 3080, 8288, 3088, 4192,
+
206 3096, 12384, 3112, 10336, 3120, 6240, 3128, 14432, 3144, 9312, 3152, 5216, 3160, 13408, 3176, 11360,
+
207 3184, 7264, 3192, 15456, 3208, 8800, 3216, 4704, 3224, 12896, 3240, 10848, 3248, 6752, 3256, 14944,
+
208 3272, 9824, 3280, 5728, 3288, 13920, 3296, 3680, 3304, 11872, 3312, 7776, 3320, 15968, 3336, 8544,
+
209 3344, 4448, 3352, 12640, 3368, 10592, 3376, 6496, 3384, 14688, 3400, 9568, 3408, 5472, 3416, 13664,
+
210 3432, 11616, 3440, 7520, 3448, 15712, 3464, 9056, 3472, 4960, 3480, 13152, 3496, 11104, 3504, 7008,
+
211 3512, 15200, 3528, 10080, 3536, 5984, 3544, 14176, 3552, 3936, 3560, 12128, 3568, 8032, 3576, 16224,
+
212 3592, 8416, 3600, 4320, 3608, 12512, 3624, 10464, 3632, 6368, 3640, 14560, 3656, 9440, 3664, 5344,
+
213 3672, 13536, 3688, 11488, 3696, 7392, 3704, 15584, 3720, 8928, 3728, 4832, 3736, 13024, 3752, 10976,
+
214 3760, 6880, 3768, 15072, 3784, 9952, 3792, 5856, 3800, 14048, 3816, 12000, 3824, 7904, 3832, 16096,
+
215 3848, 8672, 3856, 4576, 3864, 12768, 3880, 10720, 3888, 6624, 3896, 14816, 3912, 9696, 3920, 5600,
+
216 3928, 13792, 3944, 11744, 3952, 7648, 3960, 15840, 3976, 9184, 3984, 5088, 3992, 13280, 4008, 11232,
+
217 4016, 7136, 4024, 15328, 4040, 10208, 4048, 6112, 4056, 14304, 4072, 12256, 4080, 8160, 4088, 16352,
+
218 4104, 8208, 4120, 12304, 4136, 10256, 4144, 6160, 4152, 14352, 4168, 9232, 4176, 5136, 4184, 13328,
+
219 4200, 11280, 4208, 7184, 4216, 15376, 4232, 8720, 4240, 4624, 4248, 12816, 4264, 10768, 4272, 6672,
+
220 4280, 14864, 4296, 9744, 4304, 5648, 4312, 13840, 4328, 11792, 4336, 7696, 4344, 15888, 4360, 8464,
+
221 4376, 12560, 4392, 10512, 4400, 6416, 4408, 14608, 4424, 9488, 4432, 5392, 4440, 13584, 4456, 11536,
+
222 4464, 7440, 4472, 15632, 4488, 8976, 4496, 4880, 4504, 13072, 4520, 11024, 4528, 6928, 4536, 15120,
+
223 4552, 10000, 4560, 5904, 4568, 14096, 4584, 12048, 4592, 7952, 4600, 16144, 4616, 8336, 4632, 12432,
+
224 4648, 10384, 4656, 6288, 4664, 14480, 4680, 9360, 4688, 5264, 4696, 13456, 4712, 11408, 4720, 7312,
+
225 4728, 15504, 4744, 8848, 4760, 12944, 4776, 10896, 4784, 6800, 4792, 14992, 4808, 9872, 4816, 5776,
+
226 4824, 13968, 4840, 11920, 4848, 7824, 4856, 16016, 4872, 8592, 4888, 12688, 4904, 10640, 4912, 6544,
+
227 4920, 14736, 4936, 9616, 4944, 5520, 4952, 13712, 4968, 11664, 4976, 7568, 4984, 15760, 5000, 9104,
+
228 5016, 13200, 5032, 11152, 5040, 7056, 5048, 15248, 5064, 10128, 5072, 6032, 5080, 14224, 5096, 12176,
+
229 5104, 8080, 5112, 16272, 5128, 8272, 5144, 12368, 5160, 10320, 5168, 6224, 5176, 14416, 5192, 9296,
+
230 5208, 13392, 5224, 11344, 5232, 7248, 5240, 15440, 5256, 8784, 5272, 12880, 5288, 10832, 5296, 6736,
+
231 5304, 14928, 5320, 9808, 5328, 5712, 5336, 13904, 5352, 11856, 5360, 7760, 5368, 15952, 5384, 8528,
+
232 5400, 12624, 5416, 10576, 5424, 6480, 5432, 14672, 5448, 9552, 5464, 13648, 5480, 11600, 5488, 7504,
+
233 5496, 15696, 5512, 9040, 5528, 13136, 5544, 11088, 5552, 6992, 5560, 15184, 5576, 10064, 5584, 5968,
+
234 5592, 14160, 5608, 12112, 5616, 8016, 5624, 16208, 5640, 8400, 5656, 12496, 5672, 10448, 5680, 6352,
+
235 5688, 14544, 5704, 9424, 5720, 13520, 5736, 11472, 5744, 7376, 5752, 15568, 5768, 8912, 5784, 13008,
+
236 5800, 10960, 5808, 6864, 5816, 15056, 5832, 9936, 5848, 14032, 5864, 11984, 5872, 7888, 5880, 16080,
+
237 5896, 8656, 5912, 12752, 5928, 10704, 5936, 6608, 5944, 14800, 5960, 9680, 5976, 13776, 5992, 11728,
+
238 6000, 7632, 6008, 15824, 6024, 9168, 6040, 13264, 6056, 11216, 6064, 7120, 6072, 15312, 6088, 10192,
+
239 6104, 14288, 6120, 12240, 6128, 8144, 6136, 16336, 6152, 8240, 6168, 12336, 6184, 10288, 6200, 14384,
+
240 6216, 9264, 6232, 13360, 6248, 11312, 6256, 7216, 6264, 15408, 6280, 8752, 6296, 12848, 6312, 10800,
+
241 6320, 6704, 6328, 14896, 6344, 9776, 6360, 13872, 6376, 11824, 6384, 7728, 6392, 15920, 6408, 8496,
+
242 6424, 12592, 6440, 10544, 6456, 14640, 6472, 9520, 6488, 13616, 6504, 11568, 6512, 7472, 6520, 15664,
+
243 6536, 9008, 6552, 13104, 6568, 11056, 6576, 6960, 6584, 15152, 6600, 10032, 6616, 14128, 6632, 12080,
+
244 6640, 7984, 6648, 16176, 6664, 8368, 6680, 12464, 6696, 10416, 6712, 14512, 6728, 9392, 6744, 13488,
+
245 6760, 11440, 6768, 7344, 6776, 15536, 6792, 8880, 6808, 12976, 6824, 10928, 6840, 15024, 6856, 9904,
+
246 6872, 14000, 6888, 11952, 6896, 7856, 6904, 16048, 6920, 8624, 6936, 12720, 6952, 10672, 6968, 14768,
+
247 6984, 9648, 7000, 13744, 7016, 11696, 7024, 7600, 7032, 15792, 7048, 9136, 7064, 13232, 7080, 11184,
+
248 7096, 15280, 7112, 10160, 7128, 14256, 7144, 12208, 7152, 8112, 7160, 16304, 7176, 8304, 7192, 12400,
+
249 7208, 10352, 7224, 14448, 7240, 9328, 7256, 13424, 7272, 11376, 7288, 15472, 7304, 8816, 7320, 12912,
+
250 7336, 10864, 7352, 14960, 7368, 9840, 7384, 13936, 7400, 11888, 7408, 7792, 7416, 15984, 7432, 8560,
+
251 7448, 12656, 7464, 10608, 7480, 14704, 7496, 9584, 7512, 13680, 7528, 11632, 7544, 15728, 7560, 9072,
+
252 7576, 13168, 7592, 11120, 7608, 15216, 7624, 10096, 7640, 14192, 7656, 12144, 7664, 8048, 7672, 16240,
+
253 7688, 8432, 7704, 12528, 7720, 10480, 7736, 14576, 7752, 9456, 7768, 13552, 7784, 11504, 7800, 15600,
+
254 7816, 8944, 7832, 13040, 7848, 10992, 7864, 15088, 7880, 9968, 7896, 14064, 7912, 12016, 7928, 16112,
+
255 7944, 8688, 7960, 12784, 7976, 10736, 7992, 14832, 8008, 9712, 8024, 13808, 8040, 11760, 8056, 15856,
+
256 8072, 9200, 8088, 13296, 8104, 11248, 8120, 15344, 8136, 10224, 8152, 14320, 8168, 12272, 8184, 16368,
+
257 8216, 12296, 8232, 10248, 8248, 14344, 8264, 9224, 8280, 13320, 8296, 11272, 8312, 15368, 8328, 8712,
+
258 8344, 12808, 8360, 10760, 8376, 14856, 8392, 9736, 8408, 13832, 8424, 11784, 8440, 15880, 8472, 12552,
+
259 8488, 10504, 8504, 14600, 8520, 9480, 8536, 13576, 8552, 11528, 8568, 15624, 8584, 8968, 8600, 13064,
+
260 8616, 11016, 8632, 15112, 8648, 9992, 8664, 14088, 8680, 12040, 8696, 16136, 8728, 12424, 8744, 10376,
+
261 8760, 14472, 8776, 9352, 8792, 13448, 8808, 11400, 8824, 15496, 8856, 12936, 8872, 10888, 8888, 14984,
+
262 8904, 9864, 8920, 13960, 8936, 11912, 8952, 16008, 8984, 12680, 9000, 10632, 9016, 14728, 9032, 9608,
+
263 9048, 13704, 9064, 11656, 9080, 15752, 9112, 13192, 9128, 11144, 9144, 15240, 9160, 10120, 9176, 14216,
+
264 9192, 12168, 9208, 16264, 9240, 12360, 9256, 10312, 9272, 14408, 9304, 13384, 9320, 11336, 9336, 15432,
+
265 9368, 12872, 9384, 10824, 9400, 14920, 9416, 9800, 9432, 13896, 9448, 11848, 9464, 15944, 9496, 12616,
+
266 9512, 10568, 9528, 14664, 9560, 13640, 9576, 11592, 9592, 15688, 9624, 13128, 9640, 11080, 9656, 15176,
+
267 9672, 10056, 9688, 14152, 9704, 12104, 9720, 16200, 9752, 12488, 9768, 10440, 9784, 14536, 9816, 13512,
+
268 9832, 11464, 9848, 15560, 9880, 13000, 9896, 10952, 9912, 15048, 9944, 14024, 9960, 11976, 9976, 16072,
+
269 10008, 12744, 10024, 10696, 10040, 14792, 10072, 13768, 10088, 11720, 10104, 15816, 10136, 13256, 10152, 11208,
+
270 10168, 15304, 10200, 14280, 10216, 12232, 10232, 16328, 10264, 12328, 10296, 14376, 10328, 13352, 10344, 11304,
+
271 10360, 15400, 10392, 12840, 10408, 10792, 10424, 14888, 10456, 13864, 10472, 11816, 10488, 15912, 10520, 12584,
+
272 10552, 14632, 10584, 13608, 10600, 11560, 10616, 15656, 10648, 13096, 10664, 11048, 10680, 15144, 10712, 14120,
+
273 10728, 12072, 10744, 16168, 10776, 12456, 10808, 14504, 10840, 13480, 10856, 11432, 10872, 15528, 10904, 12968,
+
274 10936, 15016, 10968, 13992, 10984, 11944, 11000, 16040, 11032, 12712, 11064, 14760, 11096, 13736, 11112, 11688,
+
275 11128, 15784, 11160, 13224, 11192, 15272, 11224, 14248, 11240, 12200, 11256, 16296, 11288, 12392, 11320, 14440,
+
276 11352, 13416, 11384, 15464, 11416, 12904, 11448, 14952, 11480, 13928, 11496, 11880, 11512, 15976, 11544, 12648,
+
277 11576, 14696, 11608, 13672, 11640, 15720, 11672, 13160, 11704, 15208, 11736, 14184, 11752, 12136, 11768, 16232,
+
278 11800, 12520, 11832, 14568, 11864, 13544, 11896, 15592, 11928, 13032, 11960, 15080, 11992, 14056, 12024, 16104,
+
279 12056, 12776, 12088, 14824, 12120, 13800, 12152, 15848, 12184, 13288, 12216, 15336, 12248, 14312, 12280, 16360,
+
280 12344, 14360, 12376, 13336, 12408, 15384, 12440, 12824, 12472, 14872, 12504, 13848, 12536, 15896, 12600, 14616,
+
281 12632, 13592, 12664, 15640, 12696, 13080, 12728, 15128, 12760, 14104, 12792, 16152, 12856, 14488, 12888, 13464,
+
282 12920, 15512, 12984, 15000, 13016, 13976, 13048, 16024, 13112, 14744, 13144, 13720, 13176, 15768, 13240, 15256,
+
283 13272, 14232, 13304, 16280, 13368, 14424, 13432, 15448, 13496, 14936, 13528, 13912, 13560, 15960, 13624, 14680,
+
284 13688, 15704, 13752, 15192, 13784, 14168, 13816, 16216, 13880, 14552, 13944, 15576, 14008, 15064, 14072, 16088,
+
285 14136, 14808, 14200, 15832, 14264, 15320, 14328, 16344, 14456, 15416, 14520, 14904, 14584, 15928, 14712, 15672,
+
286 14776, 15160, 14840, 16184, 14968, 15544, 15096, 16056, 15224, 15800, 15352, 16312, 15608, 15992, 15864, 16248,
+
287};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_2048_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_2048_fc32_size
+
+extern
+
+ +

Definition at line 577 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_256_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_256_fc32[]
+
+extern
+
+ +

Definition at line 46 of file dsps_fft2r_bitrev_tables_fc32.c.

+
46 {
+
47 8, 1024, 16, 512, 24, 1536, 32, 256, 40, 1280, 48, 768, 56, 1792, 64, 128,
+
48 72, 1152, 80, 640, 88, 1664, 96, 384, 104, 1408, 112, 896, 120, 1920, 136, 1088,
+
49 144, 576, 152, 1600, 160, 320, 168, 1344, 176, 832, 184, 1856, 200, 1216, 208, 704,
+
50 216, 1728, 224, 448, 232, 1472, 240, 960, 248, 1984, 264, 1056, 272, 544, 280, 1568,
+
51 296, 1312, 304, 800, 312, 1824, 328, 1184, 336, 672, 344, 1696, 352, 416, 360, 1440,
+
52 368, 928, 376, 1952, 392, 1120, 400, 608, 408, 1632, 424, 1376, 432, 864, 440, 1888,
+
53 456, 1248, 464, 736, 472, 1760, 488, 1504, 496, 992, 504, 2016, 520, 1040, 536, 1552,
+
54 552, 1296, 560, 784, 568, 1808, 584, 1168, 592, 656, 600, 1680, 616, 1424, 624, 912,
+
55 632, 1936, 648, 1104, 664, 1616, 680, 1360, 688, 848, 696, 1872, 712, 1232, 728, 1744,
+
56 744, 1488, 752, 976, 760, 2000, 776, 1072, 792, 1584, 808, 1328, 824, 1840, 840, 1200,
+
57 856, 1712, 872, 1456, 880, 944, 888, 1968, 904, 1136, 920, 1648, 936, 1392, 952, 1904,
+
58 968, 1264, 984, 1776, 1000, 1520, 1016, 2032, 1048, 1544, 1064, 1288, 1080, 1800, 1096, 1160,
+
59 1112, 1672, 1128, 1416, 1144, 1928, 1176, 1608, 1192, 1352, 1208, 1864, 1240, 1736, 1256, 1480,
+
60 1272, 1992, 1304, 1576, 1336, 1832, 1368, 1704, 1384, 1448, 1400, 1960, 1432, 1640, 1464, 1896,
+
61 1496, 1768, 1528, 2024, 1592, 1816, 1624, 1688, 1656, 1944, 1720, 1880, 1784, 2008, 1912, 1976,
+
62};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_256_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_256_fc32_size
+
+extern
+
+ +

Definition at line 574 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_32_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_32_fc32[]
+
+extern
+
+ +

Definition at line 24 of file dsps_fft2r_bitrev_tables_fc32.c.

+
24 {
+
25 8, 128, 16, 64, 24, 192, 40, 160, 48, 96, 56, 224, 72, 144, 88, 208,
+
26 104, 176, 120, 240, 152, 200, 184, 232,
+
27};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_32_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_32_fc32_size
+
+extern
+
+ +

Definition at line 571 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_4096_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_4096_fc32[]
+
+extern
+
+ +

Definition at line 289 of file dsps_fft2r_bitrev_tables_fc32.c.

+
289 {
+
290 8, 16384, 16, 8192, 24, 24576, 32, 4096, 40, 20480, 48, 12288, 56, 28672, 64, 2048,
+
291 72, 18432, 80, 10240, 88, 26624, 96, 6144, 104, 22528, 112, 14336, 120, 30720, 128, 1024,
+
292 136, 17408, 144, 9216, 152, 25600, 160, 5120, 168, 21504, 176, 13312, 184, 29696, 192, 3072,
+
293 200, 19456, 208, 11264, 216, 27648, 224, 7168, 232, 23552, 240, 15360, 248, 31744, 256, 512,
+
294 264, 16896, 272, 8704, 280, 25088, 288, 4608, 296, 20992, 304, 12800, 312, 29184, 320, 2560,
+
295 328, 18944, 336, 10752, 344, 27136, 352, 6656, 360, 23040, 368, 14848, 376, 31232, 384, 1536,
+
296 392, 17920, 400, 9728, 408, 26112, 416, 5632, 424, 22016, 432, 13824, 440, 30208, 448, 3584,
+
297 456, 19968, 464, 11776, 472, 28160, 480, 7680, 488, 24064, 496, 15872, 504, 32256, 520, 16640,
+
298 528, 8448, 536, 24832, 544, 4352, 552, 20736, 560, 12544, 568, 28928, 576, 2304, 584, 18688,
+
299 592, 10496, 600, 26880, 608, 6400, 616, 22784, 624, 14592, 632, 30976, 640, 1280, 648, 17664,
+
300 656, 9472, 664, 25856, 672, 5376, 680, 21760, 688, 13568, 696, 29952, 704, 3328, 712, 19712,
+
301 720, 11520, 728, 27904, 736, 7424, 744, 23808, 752, 15616, 760, 32000, 776, 17152, 784, 8960,
+
302 792, 25344, 800, 4864, 808, 21248, 816, 13056, 824, 29440, 832, 2816, 840, 19200, 848, 11008,
+
303 856, 27392, 864, 6912, 872, 23296, 880, 15104, 888, 31488, 896, 1792, 904, 18176, 912, 9984,
+
304 920, 26368, 928, 5888, 936, 22272, 944, 14080, 952, 30464, 960, 3840, 968, 20224, 976, 12032,
+
305 984, 28416, 992, 7936, 1000, 24320, 1008, 16128, 1016, 32512, 1032, 16512, 1040, 8320, 1048, 24704,
+
306 1056, 4224, 1064, 20608, 1072, 12416, 1080, 28800, 1088, 2176, 1096, 18560, 1104, 10368, 1112, 26752,
+
307 1120, 6272, 1128, 22656, 1136, 14464, 1144, 30848, 1160, 17536, 1168, 9344, 1176, 25728, 1184, 5248,
+
308 1192, 21632, 1200, 13440, 1208, 29824, 1216, 3200, 1224, 19584, 1232, 11392, 1240, 27776, 1248, 7296,
+
309 1256, 23680, 1264, 15488, 1272, 31872, 1288, 17024, 1296, 8832, 1304, 25216, 1312, 4736, 1320, 21120,
+
310 1328, 12928, 1336, 29312, 1344, 2688, 1352, 19072, 1360, 10880, 1368, 27264, 1376, 6784, 1384, 23168,
+
311 1392, 14976, 1400, 31360, 1408, 1664, 1416, 18048, 1424, 9856, 1432, 26240, 1440, 5760, 1448, 22144,
+
312 1456, 13952, 1464, 30336, 1472, 3712, 1480, 20096, 1488, 11904, 1496, 28288, 1504, 7808, 1512, 24192,
+
313 1520, 16000, 1528, 32384, 1544, 16768, 1552, 8576, 1560, 24960, 1568, 4480, 1576, 20864, 1584, 12672,
+
314 1592, 29056, 1600, 2432, 1608, 18816, 1616, 10624, 1624, 27008, 1632, 6528, 1640, 22912, 1648, 14720,
+
315 1656, 31104, 1672, 17792, 1680, 9600, 1688, 25984, 1696, 5504, 1704, 21888, 1712, 13696, 1720, 30080,
+
316 1728, 3456, 1736, 19840, 1744, 11648, 1752, 28032, 1760, 7552, 1768, 23936, 1776, 15744, 1784, 32128,
+
317 1800, 17280, 1808, 9088, 1816, 25472, 1824, 4992, 1832, 21376, 1840, 13184, 1848, 29568, 1856, 2944,
+
318 1864, 19328, 1872, 11136, 1880, 27520, 1888, 7040, 1896, 23424, 1904, 15232, 1912, 31616, 1928, 18304,
+
319 1936, 10112, 1944, 26496, 1952, 6016, 1960, 22400, 1968, 14208, 1976, 30592, 1984, 3968, 1992, 20352,
+
320 2000, 12160, 2008, 28544, 2016, 8064, 2024, 24448, 2032, 16256, 2040, 32640, 2056, 16448, 2064, 8256,
+
321 2072, 24640, 2080, 4160, 2088, 20544, 2096, 12352, 2104, 28736, 2120, 18496, 2128, 10304, 2136, 26688,
+
322 2144, 6208, 2152, 22592, 2160, 14400, 2168, 30784, 2184, 17472, 2192, 9280, 2200, 25664, 2208, 5184,
+
323 2216, 21568, 2224, 13376, 2232, 29760, 2240, 3136, 2248, 19520, 2256, 11328, 2264, 27712, 2272, 7232,
+
324 2280, 23616, 2288, 15424, 2296, 31808, 2312, 16960, 2320, 8768, 2328, 25152, 2336, 4672, 2344, 21056,
+
325 2352, 12864, 2360, 29248, 2368, 2624, 2376, 19008, 2384, 10816, 2392, 27200, 2400, 6720, 2408, 23104,
+
326 2416, 14912, 2424, 31296, 2440, 17984, 2448, 9792, 2456, 26176, 2464, 5696, 2472, 22080, 2480, 13888,
+
327 2488, 30272, 2496, 3648, 2504, 20032, 2512, 11840, 2520, 28224, 2528, 7744, 2536, 24128, 2544, 15936,
+
328 2552, 32320, 2568, 16704, 2576, 8512, 2584, 24896, 2592, 4416, 2600, 20800, 2608, 12608, 2616, 28992,
+
329 2632, 18752, 2640, 10560, 2648, 26944, 2656, 6464, 2664, 22848, 2672, 14656, 2680, 31040, 2696, 17728,
+
330 2704, 9536, 2712, 25920, 2720, 5440, 2728, 21824, 2736, 13632, 2744, 30016, 2752, 3392, 2760, 19776,
+
331 2768, 11584, 2776, 27968, 2784, 7488, 2792, 23872, 2800, 15680, 2808, 32064, 2824, 17216, 2832, 9024,
+
332 2840, 25408, 2848, 4928, 2856, 21312, 2864, 13120, 2872, 29504, 2888, 19264, 2896, 11072, 2904, 27456,
+
333 2912, 6976, 2920, 23360, 2928, 15168, 2936, 31552, 2952, 18240, 2960, 10048, 2968, 26432, 2976, 5952,
+
334 2984, 22336, 2992, 14144, 3000, 30528, 3008, 3904, 3016, 20288, 3024, 12096, 3032, 28480, 3040, 8000,
+
335 3048, 24384, 3056, 16192, 3064, 32576, 3080, 16576, 3088, 8384, 3096, 24768, 3104, 4288, 3112, 20672,
+
336 3120, 12480, 3128, 28864, 3144, 18624, 3152, 10432, 3160, 26816, 3168, 6336, 3176, 22720, 3184, 14528,
+
337 3192, 30912, 3208, 17600, 3216, 9408, 3224, 25792, 3232, 5312, 3240, 21696, 3248, 13504, 3256, 29888,
+
338 3272, 19648, 3280, 11456, 3288, 27840, 3296, 7360, 3304, 23744, 3312, 15552, 3320, 31936, 3336, 17088,
+
339 3344, 8896, 3352, 25280, 3360, 4800, 3368, 21184, 3376, 12992, 3384, 29376, 3400, 19136, 3408, 10944,
+
340 3416, 27328, 3424, 6848, 3432, 23232, 3440, 15040, 3448, 31424, 3464, 18112, 3472, 9920, 3480, 26304,
+
341 3488, 5824, 3496, 22208, 3504, 14016, 3512, 30400, 3520, 3776, 3528, 20160, 3536, 11968, 3544, 28352,
+
342 3552, 7872, 3560, 24256, 3568, 16064, 3576, 32448, 3592, 16832, 3600, 8640, 3608, 25024, 3616, 4544,
+
343 3624, 20928, 3632, 12736, 3640, 29120, 3656, 18880, 3664, 10688, 3672, 27072, 3680, 6592, 3688, 22976,
+
344 3696, 14784, 3704, 31168, 3720, 17856, 3728, 9664, 3736, 26048, 3744, 5568, 3752, 21952, 3760, 13760,
+
345 3768, 30144, 3784, 19904, 3792, 11712, 3800, 28096, 3808, 7616, 3816, 24000, 3824, 15808, 3832, 32192,
+
346 3848, 17344, 3856, 9152, 3864, 25536, 3872, 5056, 3880, 21440, 3888, 13248, 3896, 29632, 3912, 19392,
+
347 3920, 11200, 3928, 27584, 3936, 7104, 3944, 23488, 3952, 15296, 3960, 31680, 3976, 18368, 3984, 10176,
+
348 3992, 26560, 4000, 6080, 4008, 22464, 4016, 14272, 4024, 30656, 4040, 20416, 4048, 12224, 4056, 28608,
+
349 4064, 8128, 4072, 24512, 4080, 16320, 4088, 32704, 4104, 16416, 4112, 8224, 4120, 24608, 4136, 20512,
+
350 4144, 12320, 4152, 28704, 4168, 18464, 4176, 10272, 4184, 26656, 4192, 6176, 4200, 22560, 4208, 14368,
+
351 4216, 30752, 4232, 17440, 4240, 9248, 4248, 25632, 4256, 5152, 4264, 21536, 4272, 13344, 4280, 29728,
+
352 4296, 19488, 4304, 11296, 4312, 27680, 4320, 7200, 4328, 23584, 4336, 15392, 4344, 31776, 4360, 16928,
+
353 4368, 8736, 4376, 25120, 4384, 4640, 4392, 21024, 4400, 12832, 4408, 29216, 4424, 18976, 4432, 10784,
+
354 4440, 27168, 4448, 6688, 4456, 23072, 4464, 14880, 4472, 31264, 4488, 17952, 4496, 9760, 4504, 26144,
+
355 4512, 5664, 4520, 22048, 4528, 13856, 4536, 30240, 4552, 20000, 4560, 11808, 4568, 28192, 4576, 7712,
+
356 4584, 24096, 4592, 15904, 4600, 32288, 4616, 16672, 4624, 8480, 4632, 24864, 4648, 20768, 4656, 12576,
+
357 4664, 28960, 4680, 18720, 4688, 10528, 4696, 26912, 4704, 6432, 4712, 22816, 4720, 14624, 4728, 31008,
+
358 4744, 17696, 4752, 9504, 4760, 25888, 4768, 5408, 4776, 21792, 4784, 13600, 4792, 29984, 4808, 19744,
+
359 4816, 11552, 4824, 27936, 4832, 7456, 4840, 23840, 4848, 15648, 4856, 32032, 4872, 17184, 4880, 8992,
+
360 4888, 25376, 4904, 21280, 4912, 13088, 4920, 29472, 4936, 19232, 4944, 11040, 4952, 27424, 4960, 6944,
+
361 4968, 23328, 4976, 15136, 4984, 31520, 5000, 18208, 5008, 10016, 5016, 26400, 5024, 5920, 5032, 22304,
+
362 5040, 14112, 5048, 30496, 5064, 20256, 5072, 12064, 5080, 28448, 5088, 7968, 5096, 24352, 5104, 16160,
+
363 5112, 32544, 5128, 16544, 5136, 8352, 5144, 24736, 5160, 20640, 5168, 12448, 5176, 28832, 5192, 18592,
+
364 5200, 10400, 5208, 26784, 5216, 6304, 5224, 22688, 5232, 14496, 5240, 30880, 5256, 17568, 5264, 9376,
+
365 5272, 25760, 5288, 21664, 5296, 13472, 5304, 29856, 5320, 19616, 5328, 11424, 5336, 27808, 5344, 7328,
+
366 5352, 23712, 5360, 15520, 5368, 31904, 5384, 17056, 5392, 8864, 5400, 25248, 5416, 21152, 5424, 12960,
+
367 5432, 29344, 5448, 19104, 5456, 10912, 5464, 27296, 5472, 6816, 5480, 23200, 5488, 15008, 5496, 31392,
+
368 5512, 18080, 5520, 9888, 5528, 26272, 5536, 5792, 5544, 22176, 5552, 13984, 5560, 30368, 5576, 20128,
+
369 5584, 11936, 5592, 28320, 5600, 7840, 5608, 24224, 5616, 16032, 5624, 32416, 5640, 16800, 5648, 8608,
+
370 5656, 24992, 5672, 20896, 5680, 12704, 5688, 29088, 5704, 18848, 5712, 10656, 5720, 27040, 5728, 6560,
+
371 5736, 22944, 5744, 14752, 5752, 31136, 5768, 17824, 5776, 9632, 5784, 26016, 5800, 21920, 5808, 13728,
+
372 5816, 30112, 5832, 19872, 5840, 11680, 5848, 28064, 5856, 7584, 5864, 23968, 5872, 15776, 5880, 32160,
+
373 5896, 17312, 5904, 9120, 5912, 25504, 5928, 21408, 5936, 13216, 5944, 29600, 5960, 19360, 5968, 11168,
+
374 5976, 27552, 5984, 7072, 5992, 23456, 6000, 15264, 6008, 31648, 6024, 18336, 6032, 10144, 6040, 26528,
+
375 6056, 22432, 6064, 14240, 6072, 30624, 6088, 20384, 6096, 12192, 6104, 28576, 6112, 8096, 6120, 24480,
+
376 6128, 16288, 6136, 32672, 6152, 16480, 6160, 8288, 6168, 24672, 6184, 20576, 6192, 12384, 6200, 28768,
+
377 6216, 18528, 6224, 10336, 6232, 26720, 6248, 22624, 6256, 14432, 6264, 30816, 6280, 17504, 6288, 9312,
+
378 6296, 25696, 6312, 21600, 6320, 13408, 6328, 29792, 6344, 19552, 6352, 11360, 6360, 27744, 6368, 7264,
+
379 6376, 23648, 6384, 15456, 6392, 31840, 6408, 16992, 6416, 8800, 6424, 25184, 6440, 21088, 6448, 12896,
+
380 6456, 29280, 6472, 19040, 6480, 10848, 6488, 27232, 6496, 6752, 6504, 23136, 6512, 14944, 6520, 31328,
+
381 6536, 18016, 6544, 9824, 6552, 26208, 6568, 22112, 6576, 13920, 6584, 30304, 6600, 20064, 6608, 11872,
+
382 6616, 28256, 6624, 7776, 6632, 24160, 6640, 15968, 6648, 32352, 6664, 16736, 6672, 8544, 6680, 24928,
+
383 6696, 20832, 6704, 12640, 6712, 29024, 6728, 18784, 6736, 10592, 6744, 26976, 6760, 22880, 6768, 14688,
+
384 6776, 31072, 6792, 17760, 6800, 9568, 6808, 25952, 6824, 21856, 6832, 13664, 6840, 30048, 6856, 19808,
+
385 6864, 11616, 6872, 28000, 6880, 7520, 6888, 23904, 6896, 15712, 6904, 32096, 6920, 17248, 6928, 9056,
+
386 6936, 25440, 6952, 21344, 6960, 13152, 6968, 29536, 6984, 19296, 6992, 11104, 7000, 27488, 7016, 23392,
+
387 7024, 15200, 7032, 31584, 7048, 18272, 7056, 10080, 7064, 26464, 7080, 22368, 7088, 14176, 7096, 30560,
+
388 7112, 20320, 7120, 12128, 7128, 28512, 7136, 8032, 7144, 24416, 7152, 16224, 7160, 32608, 7176, 16608,
+
389 7184, 8416, 7192, 24800, 7208, 20704, 7216, 12512, 7224, 28896, 7240, 18656, 7248, 10464, 7256, 26848,
+
390 7272, 22752, 7280, 14560, 7288, 30944, 7304, 17632, 7312, 9440, 7320, 25824, 7336, 21728, 7344, 13536,
+
391 7352, 29920, 7368, 19680, 7376, 11488, 7384, 27872, 7400, 23776, 7408, 15584, 7416, 31968, 7432, 17120,
+
392 7440, 8928, 7448, 25312, 7464, 21216, 7472, 13024, 7480, 29408, 7496, 19168, 7504, 10976, 7512, 27360,
+
393 7528, 23264, 7536, 15072, 7544, 31456, 7560, 18144, 7568, 9952, 7576, 26336, 7592, 22240, 7600, 14048,
+
394 7608, 30432, 7624, 20192, 7632, 12000, 7640, 28384, 7648, 7904, 7656, 24288, 7664, 16096, 7672, 32480,
+
395 7688, 16864, 7696, 8672, 7704, 25056, 7720, 20960, 7728, 12768, 7736, 29152, 7752, 18912, 7760, 10720,
+
396 7768, 27104, 7784, 23008, 7792, 14816, 7800, 31200, 7816, 17888, 7824, 9696, 7832, 26080, 7848, 21984,
+
397 7856, 13792, 7864, 30176, 7880, 19936, 7888, 11744, 7896, 28128, 7912, 24032, 7920, 15840, 7928, 32224,
+
398 7944, 17376, 7952, 9184, 7960, 25568, 7976, 21472, 7984, 13280, 7992, 29664, 8008, 19424, 8016, 11232,
+
399 8024, 27616, 8040, 23520, 8048, 15328, 8056, 31712, 8072, 18400, 8080, 10208, 8088, 26592, 8104, 22496,
+
400 8112, 14304, 8120, 30688, 8136, 20448, 8144, 12256, 8152, 28640, 8168, 24544, 8176, 16352, 8184, 32736,
+
401 8200, 16400, 8216, 24592, 8232, 20496, 8240, 12304, 8248, 28688, 8264, 18448, 8272, 10256, 8280, 26640,
+
402 8296, 22544, 8304, 14352, 8312, 30736, 8328, 17424, 8336, 9232, 8344, 25616, 8360, 21520, 8368, 13328,
+
403 8376, 29712, 8392, 19472, 8400, 11280, 8408, 27664, 8424, 23568, 8432, 15376, 8440, 31760, 8456, 16912,
+
404 8464, 8720, 8472, 25104, 8488, 21008, 8496, 12816, 8504, 29200, 8520, 18960, 8528, 10768, 8536, 27152,
+
405 8552, 23056, 8560, 14864, 8568, 31248, 8584, 17936, 8592, 9744, 8600, 26128, 8616, 22032, 8624, 13840,
+
406 8632, 30224, 8648, 19984, 8656, 11792, 8664, 28176, 8680, 24080, 8688, 15888, 8696, 32272, 8712, 16656,
+
407 8728, 24848, 8744, 20752, 8752, 12560, 8760, 28944, 8776, 18704, 8784, 10512, 8792, 26896, 8808, 22800,
+
408 8816, 14608, 8824, 30992, 8840, 17680, 8848, 9488, 8856, 25872, 8872, 21776, 8880, 13584, 8888, 29968,
+
409 8904, 19728, 8912, 11536, 8920, 27920, 8936, 23824, 8944, 15632, 8952, 32016, 8968, 17168, 8984, 25360,
+
410 9000, 21264, 9008, 13072, 9016, 29456, 9032, 19216, 9040, 11024, 9048, 27408, 9064, 23312, 9072, 15120,
+
411 9080, 31504, 9096, 18192, 9104, 10000, 9112, 26384, 9128, 22288, 9136, 14096, 9144, 30480, 9160, 20240,
+
412 9168, 12048, 9176, 28432, 9192, 24336, 9200, 16144, 9208, 32528, 9224, 16528, 9240, 24720, 9256, 20624,
+
413 9264, 12432, 9272, 28816, 9288, 18576, 9296, 10384, 9304, 26768, 9320, 22672, 9328, 14480, 9336, 30864,
+
414 9352, 17552, 9368, 25744, 9384, 21648, 9392, 13456, 9400, 29840, 9416, 19600, 9424, 11408, 9432, 27792,
+
415 9448, 23696, 9456, 15504, 9464, 31888, 9480, 17040, 9496, 25232, 9512, 21136, 9520, 12944, 9528, 29328,
+
416 9544, 19088, 9552, 10896, 9560, 27280, 9576, 23184, 9584, 14992, 9592, 31376, 9608, 18064, 9616, 9872,
+
417 9624, 26256, 9640, 22160, 9648, 13968, 9656, 30352, 9672, 20112, 9680, 11920, 9688, 28304, 9704, 24208,
+
418 9712, 16016, 9720, 32400, 9736, 16784, 9752, 24976, 9768, 20880, 9776, 12688, 9784, 29072, 9800, 18832,
+
419 9808, 10640, 9816, 27024, 9832, 22928, 9840, 14736, 9848, 31120, 9864, 17808, 9880, 26000, 9896, 21904,
+
420 9904, 13712, 9912, 30096, 9928, 19856, 9936, 11664, 9944, 28048, 9960, 23952, 9968, 15760, 9976, 32144,
+
421 9992, 17296, 10008, 25488, 10024, 21392, 10032, 13200, 10040, 29584, 10056, 19344, 10064, 11152, 10072, 27536,
+
422 10088, 23440, 10096, 15248, 10104, 31632, 10120, 18320, 10136, 26512, 10152, 22416, 10160, 14224, 10168, 30608,
+
423 10184, 20368, 10192, 12176, 10200, 28560, 10216, 24464, 10224, 16272, 10232, 32656, 10248, 16464, 10264, 24656,
+
424 10280, 20560, 10288, 12368, 10296, 28752, 10312, 18512, 10328, 26704, 10344, 22608, 10352, 14416, 10360, 30800,
+
425 10376, 17488, 10392, 25680, 10408, 21584, 10416, 13392, 10424, 29776, 10440, 19536, 10448, 11344, 10456, 27728,
+
426 10472, 23632, 10480, 15440, 10488, 31824, 10504, 16976, 10520, 25168, 10536, 21072, 10544, 12880, 10552, 29264,
+
427 10568, 19024, 10576, 10832, 10584, 27216, 10600, 23120, 10608, 14928, 10616, 31312, 10632, 18000, 10648, 26192,
+
428 10664, 22096, 10672, 13904, 10680, 30288, 10696, 20048, 10704, 11856, 10712, 28240, 10728, 24144, 10736, 15952,
+
429 10744, 32336, 10760, 16720, 10776, 24912, 10792, 20816, 10800, 12624, 10808, 29008, 10824, 18768, 10840, 26960,
+
430 10856, 22864, 10864, 14672, 10872, 31056, 10888, 17744, 10904, 25936, 10920, 21840, 10928, 13648, 10936, 30032,
+
431 10952, 19792, 10960, 11600, 10968, 27984, 10984, 23888, 10992, 15696, 11000, 32080, 11016, 17232, 11032, 25424,
+
432 11048, 21328, 11056, 13136, 11064, 29520, 11080, 19280, 11096, 27472, 11112, 23376, 11120, 15184, 11128, 31568,
+
433 11144, 18256, 11160, 26448, 11176, 22352, 11184, 14160, 11192, 30544, 11208, 20304, 11216, 12112, 11224, 28496,
+
434 11240, 24400, 11248, 16208, 11256, 32592, 11272, 16592, 11288, 24784, 11304, 20688, 11312, 12496, 11320, 28880,
+
435 11336, 18640, 11352, 26832, 11368, 22736, 11376, 14544, 11384, 30928, 11400, 17616, 11416, 25808, 11432, 21712,
+
436 11440, 13520, 11448, 29904, 11464, 19664, 11480, 27856, 11496, 23760, 11504, 15568, 11512, 31952, 11528, 17104,
+
437 11544, 25296, 11560, 21200, 11568, 13008, 11576, 29392, 11592, 19152, 11608, 27344, 11624, 23248, 11632, 15056,
+
438 11640, 31440, 11656, 18128, 11672, 26320, 11688, 22224, 11696, 14032, 11704, 30416, 11720, 20176, 11728, 11984,
+
439 11736, 28368, 11752, 24272, 11760, 16080, 11768, 32464, 11784, 16848, 11800, 25040, 11816, 20944, 11824, 12752,
+
440 11832, 29136, 11848, 18896, 11864, 27088, 11880, 22992, 11888, 14800, 11896, 31184, 11912, 17872, 11928, 26064,
+
441 11944, 21968, 11952, 13776, 11960, 30160, 11976, 19920, 11992, 28112, 12008, 24016, 12016, 15824, 12024, 32208,
+
442 12040, 17360, 12056, 25552, 12072, 21456, 12080, 13264, 12088, 29648, 12104, 19408, 12120, 27600, 12136, 23504,
+
443 12144, 15312, 12152, 31696, 12168, 18384, 12184, 26576, 12200, 22480, 12208, 14288, 12216, 30672, 12232, 20432,
+
444 12248, 28624, 12264, 24528, 12272, 16336, 12280, 32720, 12296, 16432, 12312, 24624, 12328, 20528, 12344, 28720,
+
445 12360, 18480, 12376, 26672, 12392, 22576, 12400, 14384, 12408, 30768, 12424, 17456, 12440, 25648, 12456, 21552,
+
446 12464, 13360, 12472, 29744, 12488, 19504, 12504, 27696, 12520, 23600, 12528, 15408, 12536, 31792, 12552, 16944,
+
447 12568, 25136, 12584, 21040, 12592, 12848, 12600, 29232, 12616, 18992, 12632, 27184, 12648, 23088, 12656, 14896,
+
448 12664, 31280, 12680, 17968, 12696, 26160, 12712, 22064, 12720, 13872, 12728, 30256, 12744, 20016, 12760, 28208,
+
449 12776, 24112, 12784, 15920, 12792, 32304, 12808, 16688, 12824, 24880, 12840, 20784, 12856, 28976, 12872, 18736,
+
450 12888, 26928, 12904, 22832, 12912, 14640, 12920, 31024, 12936, 17712, 12952, 25904, 12968, 21808, 12976, 13616,
+
451 12984, 30000, 13000, 19760, 13016, 27952, 13032, 23856, 13040, 15664, 13048, 32048, 13064, 17200, 13080, 25392,
+
452 13096, 21296, 13112, 29488, 13128, 19248, 13144, 27440, 13160, 23344, 13168, 15152, 13176, 31536, 13192, 18224,
+
453 13208, 26416, 13224, 22320, 13232, 14128, 13240, 30512, 13256, 20272, 13272, 28464, 13288, 24368, 13296, 16176,
+
454 13304, 32560, 13320, 16560, 13336, 24752, 13352, 20656, 13368, 28848, 13384, 18608, 13400, 26800, 13416, 22704,
+
455 13424, 14512, 13432, 30896, 13448, 17584, 13464, 25776, 13480, 21680, 13496, 29872, 13512, 19632, 13528, 27824,
+
456 13544, 23728, 13552, 15536, 13560, 31920, 13576, 17072, 13592, 25264, 13608, 21168, 13624, 29360, 13640, 19120,
+
457 13656, 27312, 13672, 23216, 13680, 15024, 13688, 31408, 13704, 18096, 13720, 26288, 13736, 22192, 13744, 14000,
+
458 13752, 30384, 13768, 20144, 13784, 28336, 13800, 24240, 13808, 16048, 13816, 32432, 13832, 16816, 13848, 25008,
+
459 13864, 20912, 13880, 29104, 13896, 18864, 13912, 27056, 13928, 22960, 13936, 14768, 13944, 31152, 13960, 17840,
+
460 13976, 26032, 13992, 21936, 14008, 30128, 14024, 19888, 14040, 28080, 14056, 23984, 14064, 15792, 14072, 32176,
+
461 14088, 17328, 14104, 25520, 14120, 21424, 14136, 29616, 14152, 19376, 14168, 27568, 14184, 23472, 14192, 15280,
+
462 14200, 31664, 14216, 18352, 14232, 26544, 14248, 22448, 14264, 30640, 14280, 20400, 14296, 28592, 14312, 24496,
+
463 14320, 16304, 14328, 32688, 14344, 16496, 14360, 24688, 14376, 20592, 14392, 28784, 14408, 18544, 14424, 26736,
+
464 14440, 22640, 14456, 30832, 14472, 17520, 14488, 25712, 14504, 21616, 14520, 29808, 14536, 19568, 14552, 27760,
+
465 14568, 23664, 14576, 15472, 14584, 31856, 14600, 17008, 14616, 25200, 14632, 21104, 14648, 29296, 14664, 19056,
+
466 14680, 27248, 14696, 23152, 14704, 14960, 14712, 31344, 14728, 18032, 14744, 26224, 14760, 22128, 14776, 30320,
+
467 14792, 20080, 14808, 28272, 14824, 24176, 14832, 15984, 14840, 32368, 14856, 16752, 14872, 24944, 14888, 20848,
+
468 14904, 29040, 14920, 18800, 14936, 26992, 14952, 22896, 14968, 31088, 14984, 17776, 15000, 25968, 15016, 21872,
+
469 15032, 30064, 15048, 19824, 15064, 28016, 15080, 23920, 15088, 15728, 15096, 32112, 15112, 17264, 15128, 25456,
+
470 15144, 21360, 15160, 29552, 15176, 19312, 15192, 27504, 15208, 23408, 15224, 31600, 15240, 18288, 15256, 26480,
+
471 15272, 22384, 15288, 30576, 15304, 20336, 15320, 28528, 15336, 24432, 15344, 16240, 15352, 32624, 15368, 16624,
+
472 15384, 24816, 15400, 20720, 15416, 28912, 15432, 18672, 15448, 26864, 15464, 22768, 15480, 30960, 15496, 17648,
+
473 15512, 25840, 15528, 21744, 15544, 29936, 15560, 19696, 15576, 27888, 15592, 23792, 15608, 31984, 15624, 17136,
+
474 15640, 25328, 15656, 21232, 15672, 29424, 15688, 19184, 15704, 27376, 15720, 23280, 15736, 31472, 15752, 18160,
+
475 15768, 26352, 15784, 22256, 15800, 30448, 15816, 20208, 15832, 28400, 15848, 24304, 15856, 16112, 15864, 32496,
+
476 15880, 16880, 15896, 25072, 15912, 20976, 15928, 29168, 15944, 18928, 15960, 27120, 15976, 23024, 15992, 31216,
+
477 16008, 17904, 16024, 26096, 16040, 22000, 16056, 30192, 16072, 19952, 16088, 28144, 16104, 24048, 16120, 32240,
+
478 16136, 17392, 16152, 25584, 16168, 21488, 16184, 29680, 16200, 19440, 16216, 27632, 16232, 23536, 16248, 31728,
+
479 16264, 18416, 16280, 26608, 16296, 22512, 16312, 30704, 16328, 20464, 16344, 28656, 16360, 24560, 16376, 32752,
+
480 16408, 24584, 16424, 20488, 16440, 28680, 16456, 18440, 16472, 26632, 16488, 22536, 16504, 30728, 16520, 17416,
+
481 16536, 25608, 16552, 21512, 16568, 29704, 16584, 19464, 16600, 27656, 16616, 23560, 16632, 31752, 16648, 16904,
+
482 16664, 25096, 16680, 21000, 16696, 29192, 16712, 18952, 16728, 27144, 16744, 23048, 16760, 31240, 16776, 17928,
+
483 16792, 26120, 16808, 22024, 16824, 30216, 16840, 19976, 16856, 28168, 16872, 24072, 16888, 32264, 16920, 24840,
+
484 16936, 20744, 16952, 28936, 16968, 18696, 16984, 26888, 17000, 22792, 17016, 30984, 17032, 17672, 17048, 25864,
+
485 17064, 21768, 17080, 29960, 17096, 19720, 17112, 27912, 17128, 23816, 17144, 32008, 17176, 25352, 17192, 21256,
+
486 17208, 29448, 17224, 19208, 17240, 27400, 17256, 23304, 17272, 31496, 17288, 18184, 17304, 26376, 17320, 22280,
+
487 17336, 30472, 17352, 20232, 17368, 28424, 17384, 24328, 17400, 32520, 17432, 24712, 17448, 20616, 17464, 28808,
+
488 17480, 18568, 17496, 26760, 17512, 22664, 17528, 30856, 17560, 25736, 17576, 21640, 17592, 29832, 17608, 19592,
+
489 17624, 27784, 17640, 23688, 17656, 31880, 17688, 25224, 17704, 21128, 17720, 29320, 17736, 19080, 17752, 27272,
+
490 17768, 23176, 17784, 31368, 17800, 18056, 17816, 26248, 17832, 22152, 17848, 30344, 17864, 20104, 17880, 28296,
+
491 17896, 24200, 17912, 32392, 17944, 24968, 17960, 20872, 17976, 29064, 17992, 18824, 18008, 27016, 18024, 22920,
+
492 18040, 31112, 18072, 25992, 18088, 21896, 18104, 30088, 18120, 19848, 18136, 28040, 18152, 23944, 18168, 32136,
+
493 18200, 25480, 18216, 21384, 18232, 29576, 18248, 19336, 18264, 27528, 18280, 23432, 18296, 31624, 18328, 26504,
+
494 18344, 22408, 18360, 30600, 18376, 20360, 18392, 28552, 18408, 24456, 18424, 32648, 18456, 24648, 18472, 20552,
+
495 18488, 28744, 18520, 26696, 18536, 22600, 18552, 30792, 18584, 25672, 18600, 21576, 18616, 29768, 18632, 19528,
+
496 18648, 27720, 18664, 23624, 18680, 31816, 18712, 25160, 18728, 21064, 18744, 29256, 18760, 19016, 18776, 27208,
+
497 18792, 23112, 18808, 31304, 18840, 26184, 18856, 22088, 18872, 30280, 18888, 20040, 18904, 28232, 18920, 24136,
+
498 18936, 32328, 18968, 24904, 18984, 20808, 19000, 29000, 19032, 26952, 19048, 22856, 19064, 31048, 19096, 25928,
+
499 19112, 21832, 19128, 30024, 19144, 19784, 19160, 27976, 19176, 23880, 19192, 32072, 19224, 25416, 19240, 21320,
+
500 19256, 29512, 19288, 27464, 19304, 23368, 19320, 31560, 19352, 26440, 19368, 22344, 19384, 30536, 19400, 20296,
+
501 19416, 28488, 19432, 24392, 19448, 32584, 19480, 24776, 19496, 20680, 19512, 28872, 19544, 26824, 19560, 22728,
+
502 19576, 30920, 19608, 25800, 19624, 21704, 19640, 29896, 19672, 27848, 19688, 23752, 19704, 31944, 19736, 25288,
+
503 19752, 21192, 19768, 29384, 19800, 27336, 19816, 23240, 19832, 31432, 19864, 26312, 19880, 22216, 19896, 30408,
+
504 19912, 20168, 19928, 28360, 19944, 24264, 19960, 32456, 19992, 25032, 20008, 20936, 20024, 29128, 20056, 27080,
+
505 20072, 22984, 20088, 31176, 20120, 26056, 20136, 21960, 20152, 30152, 20184, 28104, 20200, 24008, 20216, 32200,
+
506 20248, 25544, 20264, 21448, 20280, 29640, 20312, 27592, 20328, 23496, 20344, 31688, 20376, 26568, 20392, 22472,
+
507 20408, 30664, 20440, 28616, 20456, 24520, 20472, 32712, 20504, 24616, 20536, 28712, 20568, 26664, 20584, 22568,
+
508 20600, 30760, 20632, 25640, 20648, 21544, 20664, 29736, 20696, 27688, 20712, 23592, 20728, 31784, 20760, 25128,
+
509 20776, 21032, 20792, 29224, 20824, 27176, 20840, 23080, 20856, 31272, 20888, 26152, 20904, 22056, 20920, 30248,
+
510 20952, 28200, 20968, 24104, 20984, 32296, 21016, 24872, 21048, 28968, 21080, 26920, 21096, 22824, 21112, 31016,
+
511 21144, 25896, 21160, 21800, 21176, 29992, 21208, 27944, 21224, 23848, 21240, 32040, 21272, 25384, 21304, 29480,
+
512 21336, 27432, 21352, 23336, 21368, 31528, 21400, 26408, 21416, 22312, 21432, 30504, 21464, 28456, 21480, 24360,
+
513 21496, 32552, 21528, 24744, 21560, 28840, 21592, 26792, 21608, 22696, 21624, 30888, 21656, 25768, 21688, 29864,
+
514 21720, 27816, 21736, 23720, 21752, 31912, 21784, 25256, 21816, 29352, 21848, 27304, 21864, 23208, 21880, 31400,
+
515 21912, 26280, 21928, 22184, 21944, 30376, 21976, 28328, 21992, 24232, 22008, 32424, 22040, 25000, 22072, 29096,
+
516 22104, 27048, 22120, 22952, 22136, 31144, 22168, 26024, 22200, 30120, 22232, 28072, 22248, 23976, 22264, 32168,
+
517 22296, 25512, 22328, 29608, 22360, 27560, 22376, 23464, 22392, 31656, 22424, 26536, 22456, 30632, 22488, 28584,
+
518 22504, 24488, 22520, 32680, 22552, 24680, 22584, 28776, 22616, 26728, 22648, 30824, 22680, 25704, 22712, 29800,
+
519 22744, 27752, 22760, 23656, 22776, 31848, 22808, 25192, 22840, 29288, 22872, 27240, 22888, 23144, 22904, 31336,
+
520 22936, 26216, 22968, 30312, 23000, 28264, 23016, 24168, 23032, 32360, 23064, 24936, 23096, 29032, 23128, 26984,
+
521 23160, 31080, 23192, 25960, 23224, 30056, 23256, 28008, 23272, 23912, 23288, 32104, 23320, 25448, 23352, 29544,
+
522 23384, 27496, 23416, 31592, 23448, 26472, 23480, 30568, 23512, 28520, 23528, 24424, 23544, 32616, 23576, 24808,
+
523 23608, 28904, 23640, 26856, 23672, 30952, 23704, 25832, 23736, 29928, 23768, 27880, 23800, 31976, 23832, 25320,
+
524 23864, 29416, 23896, 27368, 23928, 31464, 23960, 26344, 23992, 30440, 24024, 28392, 24040, 24296, 24056, 32488,
+
525 24088, 25064, 24120, 29160, 24152, 27112, 24184, 31208, 24216, 26088, 24248, 30184, 24280, 28136, 24312, 32232,
+
526 24344, 25576, 24376, 29672, 24408, 27624, 24440, 31720, 24472, 26600, 24504, 30696, 24536, 28648, 24568, 32744,
+
527 24632, 28696, 24664, 26648, 24696, 30744, 24728, 25624, 24760, 29720, 24792, 27672, 24824, 31768, 24856, 25112,
+
528 24888, 29208, 24920, 27160, 24952, 31256, 24984, 26136, 25016, 30232, 25048, 28184, 25080, 32280, 25144, 28952,
+
529 25176, 26904, 25208, 31000, 25240, 25880, 25272, 29976, 25304, 27928, 25336, 32024, 25400, 29464, 25432, 27416,
+
530 25464, 31512, 25496, 26392, 25528, 30488, 25560, 28440, 25592, 32536, 25656, 28824, 25688, 26776, 25720, 30872,
+
531 25784, 29848, 25816, 27800, 25848, 31896, 25912, 29336, 25944, 27288, 25976, 31384, 26008, 26264, 26040, 30360,
+
532 26072, 28312, 26104, 32408, 26168, 29080, 26200, 27032, 26232, 31128, 26296, 30104, 26328, 28056, 26360, 32152,
+
533 26424, 29592, 26456, 27544, 26488, 31640, 26552, 30616, 26584, 28568, 26616, 32664, 26680, 28760, 26744, 30808,
+
534 26808, 29784, 26840, 27736, 26872, 31832, 26936, 29272, 26968, 27224, 27000, 31320, 27064, 30296, 27096, 28248,
+
535 27128, 32344, 27192, 29016, 27256, 31064, 27320, 30040, 27352, 27992, 27384, 32088, 27448, 29528, 27512, 31576,
+
536 27576, 30552, 27608, 28504, 27640, 32600, 27704, 28888, 27768, 30936, 27832, 29912, 27896, 31960, 27960, 29400,
+
537 28024, 31448, 28088, 30424, 28120, 28376, 28152, 32472, 28216, 29144, 28280, 31192, 28344, 30168, 28408, 32216,
+
538 28472, 29656, 28536, 31704, 28600, 30680, 28664, 32728, 28792, 30776, 28856, 29752, 28920, 31800, 28984, 29240,
+
539 29048, 31288, 29112, 30264, 29176, 32312, 29304, 31032, 29368, 30008, 29432, 32056, 29560, 31544, 29624, 30520,
+
540 29688, 32568, 29816, 30904, 29944, 31928, 30072, 31416, 30136, 30392, 30200, 32440, 30328, 31160, 30456, 32184,
+
541 30584, 31672, 30712, 32696, 30968, 31864, 31096, 31352, 31224, 32376, 31480, 32120, 31736, 32632, 32248, 32504,
+
542};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_4096_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_4096_fc32_size
+
+extern
+
+ +

Definition at line 578 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_512_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_512_fc32[]
+
+extern
+
+ +

Definition at line 64 of file dsps_fft2r_bitrev_tables_fc32.c.

+
64 {
+
65 8, 2048, 16, 1024, 24, 3072, 32, 512, 40, 2560, 48, 1536, 56, 3584, 64, 256,
+
66 72, 2304, 80, 1280, 88, 3328, 96, 768, 104, 2816, 112, 1792, 120, 3840, 136, 2176,
+
67 144, 1152, 152, 3200, 160, 640, 168, 2688, 176, 1664, 184, 3712, 192, 384, 200, 2432,
+
68 208, 1408, 216, 3456, 224, 896, 232, 2944, 240, 1920, 248, 3968, 264, 2112, 272, 1088,
+
69 280, 3136, 288, 576, 296, 2624, 304, 1600, 312, 3648, 328, 2368, 336, 1344, 344, 3392,
+
70 352, 832, 360, 2880, 368, 1856, 376, 3904, 392, 2240, 400, 1216, 408, 3264, 416, 704,
+
71 424, 2752, 432, 1728, 440, 3776, 456, 2496, 464, 1472, 472, 3520, 480, 960, 488, 3008,
+
72 496, 1984, 504, 4032, 520, 2080, 528, 1056, 536, 3104, 552, 2592, 560, 1568, 568, 3616,
+
73 584, 2336, 592, 1312, 600, 3360, 608, 800, 616, 2848, 624, 1824, 632, 3872, 648, 2208,
+
74 656, 1184, 664, 3232, 680, 2720, 688, 1696, 696, 3744, 712, 2464, 720, 1440, 728, 3488,
+
75 736, 928, 744, 2976, 752, 1952, 760, 4000, 776, 2144, 784, 1120, 792, 3168, 808, 2656,
+
76 816, 1632, 824, 3680, 840, 2400, 848, 1376, 856, 3424, 872, 2912, 880, 1888, 888, 3936,
+
77 904, 2272, 912, 1248, 920, 3296, 936, 2784, 944, 1760, 952, 3808, 968, 2528, 976, 1504,
+
78 984, 3552, 1000, 3040, 1008, 2016, 1016, 4064, 1032, 2064, 1048, 3088, 1064, 2576, 1072, 1552,
+
79 1080, 3600, 1096, 2320, 1104, 1296, 1112, 3344, 1128, 2832, 1136, 1808, 1144, 3856, 1160, 2192,
+
80 1176, 3216, 1192, 2704, 1200, 1680, 1208, 3728, 1224, 2448, 1232, 1424, 1240, 3472, 1256, 2960,
+
81 1264, 1936, 1272, 3984, 1288, 2128, 1304, 3152, 1320, 2640, 1328, 1616, 1336, 3664, 1352, 2384,
+
82 1368, 3408, 1384, 2896, 1392, 1872, 1400, 3920, 1416, 2256, 1432, 3280, 1448, 2768, 1456, 1744,
+
83 1464, 3792, 1480, 2512, 1496, 3536, 1512, 3024, 1520, 2000, 1528, 4048, 1544, 2096, 1560, 3120,
+
84 1576, 2608, 1592, 3632, 1608, 2352, 1624, 3376, 1640, 2864, 1648, 1840, 1656, 3888, 1672, 2224,
+
85 1688, 3248, 1704, 2736, 1720, 3760, 1736, 2480, 1752, 3504, 1768, 2992, 1776, 1968, 1784, 4016,
+
86 1800, 2160, 1816, 3184, 1832, 2672, 1848, 3696, 1864, 2416, 1880, 3440, 1896, 2928, 1912, 3952,
+
87 1928, 2288, 1944, 3312, 1960, 2800, 1976, 3824, 1992, 2544, 2008, 3568, 2024, 3056, 2040, 4080,
+
88 2072, 3080, 2088, 2568, 2104, 3592, 2120, 2312, 2136, 3336, 2152, 2824, 2168, 3848, 2200, 3208,
+
89 2216, 2696, 2232, 3720, 2248, 2440, 2264, 3464, 2280, 2952, 2296, 3976, 2328, 3144, 2344, 2632,
+
90 2360, 3656, 2392, 3400, 2408, 2888, 2424, 3912, 2456, 3272, 2472, 2760, 2488, 3784, 2520, 3528,
+
91 2536, 3016, 2552, 4040, 2584, 3112, 2616, 3624, 2648, 3368, 2664, 2856, 2680, 3880, 2712, 3240,
+
92 2744, 3752, 2776, 3496, 2792, 2984, 2808, 4008, 2840, 3176, 2872, 3688, 2904, 3432, 2936, 3944,
+
93 2968, 3304, 3000, 3816, 3032, 3560, 3064, 4072, 3128, 3608, 3160, 3352, 3192, 3864, 3256, 3736,
+
94 3288, 3480, 3320, 3992, 3384, 3672, 3448, 3928, 3512, 3800, 3576, 4056, 3704, 3896, 3832, 4024,
+
95};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_512_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_512_fc32_size
+
+extern
+
+ +

Definition at line 575 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev2r_table_64_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_64_fc32[]
+
+extern
+
+ +

Definition at line 29 of file dsps_fft2r_bitrev_tables_fc32.c.

+
29 {
+
30 8, 256, 16, 128, 24, 384, 32, 64, 40, 320, 48, 192, 56, 448, 72, 288,
+
31 80, 160, 88, 416, 104, 352, 112, 224, 120, 480, 136, 272, 152, 400, 168, 336,
+
32 176, 208, 184, 464, 200, 304, 216, 432, 232, 368, 248, 496, 280, 392, 296, 328,
+
33 312, 456, 344, 424, 376, 488, 440, 472,
+
34};
+
+

Referenced by dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev2r_table_64_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev2r_table_64_fc32_size
+
+extern
+
+ +

Definition at line 572 of file dsps_fft2r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev4r_table_1024_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_1024_fc32[]
+
+extern
+
+ +

Definition at line 54 of file dsps_fft4r_bitrev_tables_fc32.c.

+
54 {
+
55 8, 2048, 16, 4096, 24, 6144, 32, 512, 40, 2560, 48, 4608, 56, 6656, 64, 1024,
+
56 72, 3072, 80, 5120, 88, 7168, 96, 1536, 104, 3584, 112, 5632, 120, 7680, 136, 2176,
+
57 144, 4224, 152, 6272, 160, 640, 168, 2688, 176, 4736, 184, 6784, 192, 1152, 200, 3200,
+
58 208, 5248, 216, 7296, 224, 1664, 232, 3712, 240, 5760, 248, 7808, 264, 2304, 272, 4352,
+
59 280, 6400, 288, 768, 296, 2816, 304, 4864, 312, 6912, 320, 1280, 328, 3328, 336, 5376,
+
60 344, 7424, 352, 1792, 360, 3840, 368, 5888, 376, 7936, 392, 2432, 400, 4480, 408, 6528,
+
61 416, 896, 424, 2944, 432, 4992, 440, 7040, 448, 1408, 456, 3456, 464, 5504, 472, 7552,
+
62 480, 1920, 488, 3968, 496, 6016, 504, 8064, 520, 2080, 528, 4128, 536, 6176, 552, 2592,
+
63 560, 4640, 568, 6688, 576, 1056, 584, 3104, 592, 5152, 600, 7200, 608, 1568, 616, 3616,
+
64 624, 5664, 632, 7712, 648, 2208, 656, 4256, 664, 6304, 680, 2720, 688, 4768, 696, 6816,
+
65 704, 1184, 712, 3232, 720, 5280, 728, 7328, 736, 1696, 744, 3744, 752, 5792, 760, 7840,
+
66 776, 2336, 784, 4384, 792, 6432, 808, 2848, 816, 4896, 824, 6944, 832, 1312, 840, 3360,
+
67 848, 5408, 856, 7456, 864, 1824, 872, 3872, 880, 5920, 888, 7968, 904, 2464, 912, 4512,
+
68 920, 6560, 936, 2976, 944, 5024, 952, 7072, 960, 1440, 968, 3488, 976, 5536, 984, 7584,
+
69 992, 1952, 1000, 4000, 1008, 6048, 1016, 8096, 1032, 2112, 1040, 4160, 1048, 6208, 1064, 2624,
+
70 1072, 4672, 1080, 6720, 1096, 3136, 1104, 5184, 1112, 7232, 1120, 1600, 1128, 3648, 1136, 5696,
+
71 1144, 7744, 1160, 2240, 1168, 4288, 1176, 6336, 1192, 2752, 1200, 4800, 1208, 6848, 1224, 3264,
+
72 1232, 5312, 1240, 7360, 1248, 1728, 1256, 3776, 1264, 5824, 1272, 7872, 1288, 2368, 1296, 4416,
+
73 1304, 6464, 1320, 2880, 1328, 4928, 1336, 6976, 1352, 3392, 1360, 5440, 1368, 7488, 1376, 1856,
+
74 1384, 3904, 1392, 5952, 1400, 8000, 1416, 2496, 1424, 4544, 1432, 6592, 1448, 3008, 1456, 5056,
+
75 1464, 7104, 1480, 3520, 1488, 5568, 1496, 7616, 1504, 1984, 1512, 4032, 1520, 6080, 1528, 8128,
+
76 1544, 2144, 1552, 4192, 1560, 6240, 1576, 2656, 1584, 4704, 1592, 6752, 1608, 3168, 1616, 5216,
+
77 1624, 7264, 1640, 3680, 1648, 5728, 1656, 7776, 1672, 2272, 1680, 4320, 1688, 6368, 1704, 2784,
+
78 1712, 4832, 1720, 6880, 1736, 3296, 1744, 5344, 1752, 7392, 1768, 3808, 1776, 5856, 1784, 7904,
+
79 1800, 2400, 1808, 4448, 1816, 6496, 1832, 2912, 1840, 4960, 1848, 7008, 1864, 3424, 1872, 5472,
+
80 1880, 7520, 1896, 3936, 1904, 5984, 1912, 8032, 1928, 2528, 1936, 4576, 1944, 6624, 1960, 3040,
+
81 1968, 5088, 1976, 7136, 1992, 3552, 2000, 5600, 2008, 7648, 2024, 4064, 2032, 6112, 2040, 8160,
+
82 2064, 4104, 2072, 6152, 2088, 2568, 2096, 4616, 2104, 6664, 2120, 3080, 2128, 5128, 2136, 7176,
+
83 2152, 3592, 2160, 5640, 2168, 7688, 2192, 4232, 2200, 6280, 2216, 2696, 2224, 4744, 2232, 6792,
+
84 2248, 3208, 2256, 5256, 2264, 7304, 2280, 3720, 2288, 5768, 2296, 7816, 2320, 4360, 2328, 6408,
+
85 2344, 2824, 2352, 4872, 2360, 6920, 2376, 3336, 2384, 5384, 2392, 7432, 2408, 3848, 2416, 5896,
+
86 2424, 7944, 2448, 4488, 2456, 6536, 2472, 2952, 2480, 5000, 2488, 7048, 2504, 3464, 2512, 5512,
+
87 2520, 7560, 2536, 3976, 2544, 6024, 2552, 8072, 2576, 4136, 2584, 6184, 2608, 4648, 2616, 6696,
+
88 2632, 3112, 2640, 5160, 2648, 7208, 2664, 3624, 2672, 5672, 2680, 7720, 2704, 4264, 2712, 6312,
+
89 2736, 4776, 2744, 6824, 2760, 3240, 2768, 5288, 2776, 7336, 2792, 3752, 2800, 5800, 2808, 7848,
+
90 2832, 4392, 2840, 6440, 2864, 4904, 2872, 6952, 2888, 3368, 2896, 5416, 2904, 7464, 2920, 3880,
+
91 2928, 5928, 2936, 7976, 2960, 4520, 2968, 6568, 2992, 5032, 3000, 7080, 3016, 3496, 3024, 5544,
+
92 3032, 7592, 3048, 4008, 3056, 6056, 3064, 8104, 3088, 4168, 3096, 6216, 3120, 4680, 3128, 6728,
+
93 3152, 5192, 3160, 7240, 3176, 3656, 3184, 5704, 3192, 7752, 3216, 4296, 3224, 6344, 3248, 4808,
+
94 3256, 6856, 3280, 5320, 3288, 7368, 3304, 3784, 3312, 5832, 3320, 7880, 3344, 4424, 3352, 6472,
+
95 3376, 4936, 3384, 6984, 3408, 5448, 3416, 7496, 3432, 3912, 3440, 5960, 3448, 8008, 3472, 4552,
+
96 3480, 6600, 3504, 5064, 3512, 7112, 3536, 5576, 3544, 7624, 3560, 4040, 3568, 6088, 3576, 8136,
+
97 3600, 4200, 3608, 6248, 3632, 4712, 3640, 6760, 3664, 5224, 3672, 7272, 3696, 5736, 3704, 7784,
+
98 3728, 4328, 3736, 6376, 3760, 4840, 3768, 6888, 3792, 5352, 3800, 7400, 3824, 5864, 3832, 7912,
+
99 3856, 4456, 3864, 6504, 3888, 4968, 3896, 7016, 3920, 5480, 3928, 7528, 3952, 5992, 3960, 8040,
+
100 3984, 4584, 3992, 6632, 4016, 5096, 4024, 7144, 4048, 5608, 4056, 7656, 4080, 6120, 4088, 8168,
+
101 4120, 6160, 4144, 4624, 4152, 6672, 4176, 5136, 4184, 7184, 4208, 5648, 4216, 7696, 4248, 6288,
+
102 4272, 4752, 4280, 6800, 4304, 5264, 4312, 7312, 4336, 5776, 4344, 7824, 4376, 6416, 4400, 4880,
+
103 4408, 6928, 4432, 5392, 4440, 7440, 4464, 5904, 4472, 7952, 4504, 6544, 4528, 5008, 4536, 7056,
+
104 4560, 5520, 4568, 7568, 4592, 6032, 4600, 8080, 4632, 6192, 4664, 6704, 4688, 5168, 4696, 7216,
+
105 4720, 5680, 4728, 7728, 4760, 6320, 4792, 6832, 4816, 5296, 4824, 7344, 4848, 5808, 4856, 7856,
+
106 4888, 6448, 4920, 6960, 4944, 5424, 4952, 7472, 4976, 5936, 4984, 7984, 5016, 6576, 5048, 7088,
+
107 5072, 5552, 5080, 7600, 5104, 6064, 5112, 8112, 5144, 6224, 5176, 6736, 5208, 7248, 5232, 5712,
+
108 5240, 7760, 5272, 6352, 5304, 6864, 5336, 7376, 5360, 5840, 5368, 7888, 5400, 6480, 5432, 6992,
+
109 5464, 7504, 5488, 5968, 5496, 8016, 5528, 6608, 5560, 7120, 5592, 7632, 5616, 6096, 5624, 8144,
+
110 5656, 6256, 5688, 6768, 5720, 7280, 5752, 7792, 5784, 6384, 5816, 6896, 5848, 7408, 5880, 7920,
+
111 5912, 6512, 5944, 7024, 5976, 7536, 6008, 8048, 6040, 6640, 6072, 7152, 6104, 7664, 6136, 8176,
+
112 6200, 6680, 6232, 7192, 6264, 7704, 6328, 6808, 6360, 7320, 6392, 7832, 6456, 6936, 6488, 7448,
+
113 6520, 7960, 6584, 7064, 6616, 7576, 6648, 8088, 6744, 7224, 6776, 7736, 6872, 7352, 6904, 7864,
+
114 7000, 7480, 7032, 7992, 7128, 7608, 7160, 8120, 7288, 7768, 7416, 7896, 7544, 8024, 7672, 8152,
+
115};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_1024_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_1024_fc32_size
+
+extern
+
+ +

Definition at line 398 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev4r_table_128_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_128_fc32[]
+
+extern
+
+ +
+
+ +

◆ bitrev4r_table_128_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_128_fc32_size
+
+extern
+
+ +
+
+ +

◆ bitrev4r_table_16_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_16_fc32[]
+
+extern
+
+ +

Definition at line 20 of file dsps_fft4r_bitrev_tables_fc32.c.

+
20 {
+
21 8, 32, 16, 64, 24, 96, 48, 72, 56, 104, 88, 112,
+
22};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_16_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_16_fc32_size
+
+extern
+
+ +

Definition at line 395 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev4r_table_2048_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_2048_fc32[]
+
+extern
+
+ +
+
+ +

◆ bitrev4r_table_2048_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_2048_fc32_size
+
+extern
+
+ +
+
+ +

◆ bitrev4r_table_256_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_256_fc32[]
+
+extern
+
+ +

Definition at line 34 of file dsps_fft4r_bitrev_tables_fc32.c.

+
34 {
+
35 8, 512, 16, 1024, 24, 1536, 32, 128, 40, 640, 48, 1152, 56, 1664, 64, 256,
+
36 72, 768, 80, 1280, 88, 1792, 96, 384, 104, 896, 112, 1408, 120, 1920, 136, 544,
+
37 144, 1056, 152, 1568, 168, 672, 176, 1184, 184, 1696, 192, 288, 200, 800, 208, 1312,
+
38 216, 1824, 224, 416, 232, 928, 240, 1440, 248, 1952, 264, 576, 272, 1088, 280, 1600,
+
39 296, 704, 304, 1216, 312, 1728, 328, 832, 336, 1344, 344, 1856, 352, 448, 360, 960,
+
40 368, 1472, 376, 1984, 392, 608, 400, 1120, 408, 1632, 424, 736, 432, 1248, 440, 1760,
+
41 456, 864, 464, 1376, 472, 1888, 488, 992, 496, 1504, 504, 2016, 528, 1032, 536, 1544,
+
42 552, 648, 560, 1160, 568, 1672, 584, 776, 592, 1288, 600, 1800, 616, 904, 624, 1416,
+
43 632, 1928, 656, 1064, 664, 1576, 688, 1192, 696, 1704, 712, 808, 720, 1320, 728, 1832,
+
44 744, 936, 752, 1448, 760, 1960, 784, 1096, 792, 1608, 816, 1224, 824, 1736, 848, 1352,
+
45 856, 1864, 872, 968, 880, 1480, 888, 1992, 912, 1128, 920, 1640, 944, 1256, 952, 1768,
+
46 976, 1384, 984, 1896, 1008, 1512, 1016, 2024, 1048, 1552, 1072, 1168, 1080, 1680, 1104, 1296,
+
47 1112, 1808, 1136, 1424, 1144, 1936, 1176, 1584, 1208, 1712, 1232, 1328, 1240, 1840, 1264, 1456,
+
48 1272, 1968, 1304, 1616, 1336, 1744, 1368, 1872, 1392, 1488, 1400, 2000, 1432, 1648, 1464, 1776,
+
49 1496, 1904, 1528, 2032, 1592, 1688, 1624, 1816, 1656, 1944, 1752, 1848, 1784, 1976, 1912, 2008,
+
50};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_256_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_256_fc32_size
+
+extern
+
+ +

Definition at line 397 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev4r_table_32_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_32_fc32[]
+
+extern
+
+ +
+
+ +

◆ bitrev4r_table_32_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_32_fc32_size
+
+extern
+
+ +
+
+ +

◆ bitrev4r_table_4096_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_4096_fc32[]
+
+extern
+
+ +

Definition at line 119 of file dsps_fft4r_bitrev_tables_fc32.c.

+
119 {
+
120 8, 8192, 16, 16384, 24, 24576, 32, 2048, 40, 10240, 48, 18432, 56, 26624, 64, 4096,
+
121 72, 12288, 80, 20480, 88, 28672, 96, 6144, 104, 14336, 112, 22528, 120, 30720, 128, 512,
+
122 136, 8704, 144, 16896, 152, 25088, 160, 2560, 168, 10752, 176, 18944, 184, 27136, 192, 4608,
+
123 200, 12800, 208, 20992, 216, 29184, 224, 6656, 232, 14848, 240, 23040, 248, 31232, 256, 1024,
+
124 264, 9216, 272, 17408, 280, 25600, 288, 3072, 296, 11264, 304, 19456, 312, 27648, 320, 5120,
+
125 328, 13312, 336, 21504, 344, 29696, 352, 7168, 360, 15360, 368, 23552, 376, 31744, 384, 1536,
+
126 392, 9728, 400, 17920, 408, 26112, 416, 3584, 424, 11776, 432, 19968, 440, 28160, 448, 5632,
+
127 456, 13824, 464, 22016, 472, 30208, 480, 7680, 488, 15872, 496, 24064, 504, 32256, 520, 8320,
+
128 528, 16512, 536, 24704, 544, 2176, 552, 10368, 560, 18560, 568, 26752, 576, 4224, 584, 12416,
+
129 592, 20608, 600, 28800, 608, 6272, 616, 14464, 624, 22656, 632, 30848, 648, 8832, 656, 17024,
+
130 664, 25216, 672, 2688, 680, 10880, 688, 19072, 696, 27264, 704, 4736, 712, 12928, 720, 21120,
+
131 728, 29312, 736, 6784, 744, 14976, 752, 23168, 760, 31360, 768, 1152, 776, 9344, 784, 17536,
+
132 792, 25728, 800, 3200, 808, 11392, 816, 19584, 824, 27776, 832, 5248, 840, 13440, 848, 21632,
+
133 856, 29824, 864, 7296, 872, 15488, 880, 23680, 888, 31872, 896, 1664, 904, 9856, 912, 18048,
+
134 920, 26240, 928, 3712, 936, 11904, 944, 20096, 952, 28288, 960, 5760, 968, 13952, 976, 22144,
+
135 984, 30336, 992, 7808, 1000, 16000, 1008, 24192, 1016, 32384, 1032, 8448, 1040, 16640, 1048, 24832,
+
136 1056, 2304, 1064, 10496, 1072, 18688, 1080, 26880, 1088, 4352, 1096, 12544, 1104, 20736, 1112, 28928,
+
137 1120, 6400, 1128, 14592, 1136, 22784, 1144, 30976, 1160, 8960, 1168, 17152, 1176, 25344, 1184, 2816,
+
138 1192, 11008, 1200, 19200, 1208, 27392, 1216, 4864, 1224, 13056, 1232, 21248, 1240, 29440, 1248, 6912,
+
139 1256, 15104, 1264, 23296, 1272, 31488, 1288, 9472, 1296, 17664, 1304, 25856, 1312, 3328, 1320, 11520,
+
140 1328, 19712, 1336, 27904, 1344, 5376, 1352, 13568, 1360, 21760, 1368, 29952, 1376, 7424, 1384, 15616,
+
141 1392, 23808, 1400, 32000, 1408, 1792, 1416, 9984, 1424, 18176, 1432, 26368, 1440, 3840, 1448, 12032,
+
142 1456, 20224, 1464, 28416, 1472, 5888, 1480, 14080, 1488, 22272, 1496, 30464, 1504, 7936, 1512, 16128,
+
143 1520, 24320, 1528, 32512, 1544, 8576, 1552, 16768, 1560, 24960, 1568, 2432, 1576, 10624, 1584, 18816,
+
144 1592, 27008, 1600, 4480, 1608, 12672, 1616, 20864, 1624, 29056, 1632, 6528, 1640, 14720, 1648, 22912,
+
145 1656, 31104, 1672, 9088, 1680, 17280, 1688, 25472, 1696, 2944, 1704, 11136, 1712, 19328, 1720, 27520,
+
146 1728, 4992, 1736, 13184, 1744, 21376, 1752, 29568, 1760, 7040, 1768, 15232, 1776, 23424, 1784, 31616,
+
147 1800, 9600, 1808, 17792, 1816, 25984, 1824, 3456, 1832, 11648, 1840, 19840, 1848, 28032, 1856, 5504,
+
148 1864, 13696, 1872, 21888, 1880, 30080, 1888, 7552, 1896, 15744, 1904, 23936, 1912, 32128, 1928, 10112,
+
149 1936, 18304, 1944, 26496, 1952, 3968, 1960, 12160, 1968, 20352, 1976, 28544, 1984, 6016, 1992, 14208,
+
150 2000, 22400, 2008, 30592, 2016, 8064, 2024, 16256, 2032, 24448, 2040, 32640, 2056, 8224, 2064, 16416,
+
151 2072, 24608, 2088, 10272, 2096, 18464, 2104, 26656, 2112, 4128, 2120, 12320, 2128, 20512, 2136, 28704,
+
152 2144, 6176, 2152, 14368, 2160, 22560, 2168, 30752, 2184, 8736, 2192, 16928, 2200, 25120, 2208, 2592,
+
153 2216, 10784, 2224, 18976, 2232, 27168, 2240, 4640, 2248, 12832, 2256, 21024, 2264, 29216, 2272, 6688,
+
154 2280, 14880, 2288, 23072, 2296, 31264, 2312, 9248, 2320, 17440, 2328, 25632, 2336, 3104, 2344, 11296,
+
155 2352, 19488, 2360, 27680, 2368, 5152, 2376, 13344, 2384, 21536, 2392, 29728, 2400, 7200, 2408, 15392,
+
156 2416, 23584, 2424, 31776, 2440, 9760, 2448, 17952, 2456, 26144, 2464, 3616, 2472, 11808, 2480, 20000,
+
157 2488, 28192, 2496, 5664, 2504, 13856, 2512, 22048, 2520, 30240, 2528, 7712, 2536, 15904, 2544, 24096,
+
158 2552, 32288, 2568, 8352, 2576, 16544, 2584, 24736, 2600, 10400, 2608, 18592, 2616, 26784, 2624, 4256,
+
159 2632, 12448, 2640, 20640, 2648, 28832, 2656, 6304, 2664, 14496, 2672, 22688, 2680, 30880, 2696, 8864,
+
160 2704, 17056, 2712, 25248, 2728, 10912, 2736, 19104, 2744, 27296, 2752, 4768, 2760, 12960, 2768, 21152,
+
161 2776, 29344, 2784, 6816, 2792, 15008, 2800, 23200, 2808, 31392, 2824, 9376, 2832, 17568, 2840, 25760,
+
162 2848, 3232, 2856, 11424, 2864, 19616, 2872, 27808, 2880, 5280, 2888, 13472, 2896, 21664, 2904, 29856,
+
163 2912, 7328, 2920, 15520, 2928, 23712, 2936, 31904, 2952, 9888, 2960, 18080, 2968, 26272, 2976, 3744,
+
164 2984, 11936, 2992, 20128, 3000, 28320, 3008, 5792, 3016, 13984, 3024, 22176, 3032, 30368, 3040, 7840,
+
165 3048, 16032, 3056, 24224, 3064, 32416, 3080, 8480, 3088, 16672, 3096, 24864, 3112, 10528, 3120, 18720,
+
166 3128, 26912, 3136, 4384, 3144, 12576, 3152, 20768, 3160, 28960, 3168, 6432, 3176, 14624, 3184, 22816,
+
167 3192, 31008, 3208, 8992, 3216, 17184, 3224, 25376, 3240, 11040, 3248, 19232, 3256, 27424, 3264, 4896,
+
168 3272, 13088, 3280, 21280, 3288, 29472, 3296, 6944, 3304, 15136, 3312, 23328, 3320, 31520, 3336, 9504,
+
169 3344, 17696, 3352, 25888, 3368, 11552, 3376, 19744, 3384, 27936, 3392, 5408, 3400, 13600, 3408, 21792,
+
170 3416, 29984, 3424, 7456, 3432, 15648, 3440, 23840, 3448, 32032, 3464, 10016, 3472, 18208, 3480, 26400,
+
171 3488, 3872, 3496, 12064, 3504, 20256, 3512, 28448, 3520, 5920, 3528, 14112, 3536, 22304, 3544, 30496,
+
172 3552, 7968, 3560, 16160, 3568, 24352, 3576, 32544, 3592, 8608, 3600, 16800, 3608, 24992, 3624, 10656,
+
173 3632, 18848, 3640, 27040, 3648, 4512, 3656, 12704, 3664, 20896, 3672, 29088, 3680, 6560, 3688, 14752,
+
174 3696, 22944, 3704, 31136, 3720, 9120, 3728, 17312, 3736, 25504, 3752, 11168, 3760, 19360, 3768, 27552,
+
175 3776, 5024, 3784, 13216, 3792, 21408, 3800, 29600, 3808, 7072, 3816, 15264, 3824, 23456, 3832, 31648,
+
176 3848, 9632, 3856, 17824, 3864, 26016, 3880, 11680, 3888, 19872, 3896, 28064, 3904, 5536, 3912, 13728,
+
177 3920, 21920, 3928, 30112, 3936, 7584, 3944, 15776, 3952, 23968, 3960, 32160, 3976, 10144, 3984, 18336,
+
178 3992, 26528, 4008, 12192, 4016, 20384, 4024, 28576, 4032, 6048, 4040, 14240, 4048, 22432, 4056, 30624,
+
179 4064, 8096, 4072, 16288, 4080, 24480, 4088, 32672, 4104, 8256, 4112, 16448, 4120, 24640, 4136, 10304,
+
180 4144, 18496, 4152, 26688, 4168, 12352, 4176, 20544, 4184, 28736, 4192, 6208, 4200, 14400, 4208, 22592,
+
181 4216, 30784, 4232, 8768, 4240, 16960, 4248, 25152, 4264, 10816, 4272, 19008, 4280, 27200, 4288, 4672,
+
182 4296, 12864, 4304, 21056, 4312, 29248, 4320, 6720, 4328, 14912, 4336, 23104, 4344, 31296, 4360, 9280,
+
183 4368, 17472, 4376, 25664, 4392, 11328, 4400, 19520, 4408, 27712, 4416, 5184, 4424, 13376, 4432, 21568,
+
184 4440, 29760, 4448, 7232, 4456, 15424, 4464, 23616, 4472, 31808, 4488, 9792, 4496, 17984, 4504, 26176,
+
185 4520, 11840, 4528, 20032, 4536, 28224, 4544, 5696, 4552, 13888, 4560, 22080, 4568, 30272, 4576, 7744,
+
186 4584, 15936, 4592, 24128, 4600, 32320, 4616, 8384, 4624, 16576, 4632, 24768, 4648, 10432, 4656, 18624,
+
187 4664, 26816, 4680, 12480, 4688, 20672, 4696, 28864, 4704, 6336, 4712, 14528, 4720, 22720, 4728, 30912,
+
188 4744, 8896, 4752, 17088, 4760, 25280, 4776, 10944, 4784, 19136, 4792, 27328, 4808, 12992, 4816, 21184,
+
189 4824, 29376, 4832, 6848, 4840, 15040, 4848, 23232, 4856, 31424, 4872, 9408, 4880, 17600, 4888, 25792,
+
190 4904, 11456, 4912, 19648, 4920, 27840, 4928, 5312, 4936, 13504, 4944, 21696, 4952, 29888, 4960, 7360,
+
191 4968, 15552, 4976, 23744, 4984, 31936, 5000, 9920, 5008, 18112, 5016, 26304, 5032, 11968, 5040, 20160,
+
192 5048, 28352, 5056, 5824, 5064, 14016, 5072, 22208, 5080, 30400, 5088, 7872, 5096, 16064, 5104, 24256,
+
193 5112, 32448, 5128, 8512, 5136, 16704, 5144, 24896, 5160, 10560, 5168, 18752, 5176, 26944, 5192, 12608,
+
194 5200, 20800, 5208, 28992, 5216, 6464, 5224, 14656, 5232, 22848, 5240, 31040, 5256, 9024, 5264, 17216,
+
195 5272, 25408, 5288, 11072, 5296, 19264, 5304, 27456, 5320, 13120, 5328, 21312, 5336, 29504, 5344, 6976,
+
196 5352, 15168, 5360, 23360, 5368, 31552, 5384, 9536, 5392, 17728, 5400, 25920, 5416, 11584, 5424, 19776,
+
197 5432, 27968, 5448, 13632, 5456, 21824, 5464, 30016, 5472, 7488, 5480, 15680, 5488, 23872, 5496, 32064,
+
198 5512, 10048, 5520, 18240, 5528, 26432, 5544, 12096, 5552, 20288, 5560, 28480, 5568, 5952, 5576, 14144,
+
199 5584, 22336, 5592, 30528, 5600, 8000, 5608, 16192, 5616, 24384, 5624, 32576, 5640, 8640, 5648, 16832,
+
200 5656, 25024, 5672, 10688, 5680, 18880, 5688, 27072, 5704, 12736, 5712, 20928, 5720, 29120, 5728, 6592,
+
201 5736, 14784, 5744, 22976, 5752, 31168, 5768, 9152, 5776, 17344, 5784, 25536, 5800, 11200, 5808, 19392,
+
202 5816, 27584, 5832, 13248, 5840, 21440, 5848, 29632, 5856, 7104, 5864, 15296, 5872, 23488, 5880, 31680,
+
203 5896, 9664, 5904, 17856, 5912, 26048, 5928, 11712, 5936, 19904, 5944, 28096, 5960, 13760, 5968, 21952,
+
204 5976, 30144, 5984, 7616, 5992, 15808, 6000, 24000, 6008, 32192, 6024, 10176, 6032, 18368, 6040, 26560,
+
205 6056, 12224, 6064, 20416, 6072, 28608, 6088, 14272, 6096, 22464, 6104, 30656, 6112, 8128, 6120, 16320,
+
206 6128, 24512, 6136, 32704, 6152, 8288, 6160, 16480, 6168, 24672, 6184, 10336, 6192, 18528, 6200, 26720,
+
207 6216, 12384, 6224, 20576, 6232, 28768, 6248, 14432, 6256, 22624, 6264, 30816, 6280, 8800, 6288, 16992,
+
208 6296, 25184, 6312, 10848, 6320, 19040, 6328, 27232, 6344, 12896, 6352, 21088, 6360, 29280, 6368, 6752,
+
209 6376, 14944, 6384, 23136, 6392, 31328, 6408, 9312, 6416, 17504, 6424, 25696, 6440, 11360, 6448, 19552,
+
210 6456, 27744, 6472, 13408, 6480, 21600, 6488, 29792, 6496, 7264, 6504, 15456, 6512, 23648, 6520, 31840,
+
211 6536, 9824, 6544, 18016, 6552, 26208, 6568, 11872, 6576, 20064, 6584, 28256, 6600, 13920, 6608, 22112,
+
212 6616, 30304, 6624, 7776, 6632, 15968, 6640, 24160, 6648, 32352, 6664, 8416, 6672, 16608, 6680, 24800,
+
213 6696, 10464, 6704, 18656, 6712, 26848, 6728, 12512, 6736, 20704, 6744, 28896, 6760, 14560, 6768, 22752,
+
214 6776, 30944, 6792, 8928, 6800, 17120, 6808, 25312, 6824, 10976, 6832, 19168, 6840, 27360, 6856, 13024,
+
215 6864, 21216, 6872, 29408, 6888, 15072, 6896, 23264, 6904, 31456, 6920, 9440, 6928, 17632, 6936, 25824,
+
216 6952, 11488, 6960, 19680, 6968, 27872, 6984, 13536, 6992, 21728, 7000, 29920, 7008, 7392, 7016, 15584,
+
217 7024, 23776, 7032, 31968, 7048, 9952, 7056, 18144, 7064, 26336, 7080, 12000, 7088, 20192, 7096, 28384,
+
218 7112, 14048, 7120, 22240, 7128, 30432, 7136, 7904, 7144, 16096, 7152, 24288, 7160, 32480, 7176, 8544,
+
219 7184, 16736, 7192, 24928, 7208, 10592, 7216, 18784, 7224, 26976, 7240, 12640, 7248, 20832, 7256, 29024,
+
220 7272, 14688, 7280, 22880, 7288, 31072, 7304, 9056, 7312, 17248, 7320, 25440, 7336, 11104, 7344, 19296,
+
221 7352, 27488, 7368, 13152, 7376, 21344, 7384, 29536, 7400, 15200, 7408, 23392, 7416, 31584, 7432, 9568,
+
222 7440, 17760, 7448, 25952, 7464, 11616, 7472, 19808, 7480, 28000, 7496, 13664, 7504, 21856, 7512, 30048,
+
223 7528, 15712, 7536, 23904, 7544, 32096, 7560, 10080, 7568, 18272, 7576, 26464, 7592, 12128, 7600, 20320,
+
224 7608, 28512, 7624, 14176, 7632, 22368, 7640, 30560, 7648, 8032, 7656, 16224, 7664, 24416, 7672, 32608,
+
225 7688, 8672, 7696, 16864, 7704, 25056, 7720, 10720, 7728, 18912, 7736, 27104, 7752, 12768, 7760, 20960,
+
226 7768, 29152, 7784, 14816, 7792, 23008, 7800, 31200, 7816, 9184, 7824, 17376, 7832, 25568, 7848, 11232,
+
227 7856, 19424, 7864, 27616, 7880, 13280, 7888, 21472, 7896, 29664, 7912, 15328, 7920, 23520, 7928, 31712,
+
228 7944, 9696, 7952, 17888, 7960, 26080, 7976, 11744, 7984, 19936, 7992, 28128, 8008, 13792, 8016, 21984,
+
229 8024, 30176, 8040, 15840, 8048, 24032, 8056, 32224, 8072, 10208, 8080, 18400, 8088, 26592, 8104, 12256,
+
230 8112, 20448, 8120, 28640, 8136, 14304, 8144, 22496, 8152, 30688, 8168, 16352, 8176, 24544, 8184, 32736,
+
231 8208, 16392, 8216, 24584, 8232, 10248, 8240, 18440, 8248, 26632, 8264, 12296, 8272, 20488, 8280, 28680,
+
232 8296, 14344, 8304, 22536, 8312, 30728, 8328, 8712, 8336, 16904, 8344, 25096, 8360, 10760, 8368, 18952,
+
233 8376, 27144, 8392, 12808, 8400, 21000, 8408, 29192, 8424, 14856, 8432, 23048, 8440, 31240, 8456, 9224,
+
234 8464, 17416, 8472, 25608, 8488, 11272, 8496, 19464, 8504, 27656, 8520, 13320, 8528, 21512, 8536, 29704,
+
235 8552, 15368, 8560, 23560, 8568, 31752, 8584, 9736, 8592, 17928, 8600, 26120, 8616, 11784, 8624, 19976,
+
236 8632, 28168, 8648, 13832, 8656, 22024, 8664, 30216, 8680, 15880, 8688, 24072, 8696, 32264, 8720, 16520,
+
237 8728, 24712, 8744, 10376, 8752, 18568, 8760, 26760, 8776, 12424, 8784, 20616, 8792, 28808, 8808, 14472,
+
238 8816, 22664, 8824, 30856, 8848, 17032, 8856, 25224, 8872, 10888, 8880, 19080, 8888, 27272, 8904, 12936,
+
239 8912, 21128, 8920, 29320, 8936, 14984, 8944, 23176, 8952, 31368, 8968, 9352, 8976, 17544, 8984, 25736,
+
240 9000, 11400, 9008, 19592, 9016, 27784, 9032, 13448, 9040, 21640, 9048, 29832, 9064, 15496, 9072, 23688,
+
241 9080, 31880, 9096, 9864, 9104, 18056, 9112, 26248, 9128, 11912, 9136, 20104, 9144, 28296, 9160, 13960,
+
242 9168, 22152, 9176, 30344, 9192, 16008, 9200, 24200, 9208, 32392, 9232, 16648, 9240, 24840, 9256, 10504,
+
243 9264, 18696, 9272, 26888, 9288, 12552, 9296, 20744, 9304, 28936, 9320, 14600, 9328, 22792, 9336, 30984,
+
244 9360, 17160, 9368, 25352, 9384, 11016, 9392, 19208, 9400, 27400, 9416, 13064, 9424, 21256, 9432, 29448,
+
245 9448, 15112, 9456, 23304, 9464, 31496, 9488, 17672, 9496, 25864, 9512, 11528, 9520, 19720, 9528, 27912,
+
246 9544, 13576, 9552, 21768, 9560, 29960, 9576, 15624, 9584, 23816, 9592, 32008, 9608, 9992, 9616, 18184,
+
247 9624, 26376, 9640, 12040, 9648, 20232, 9656, 28424, 9672, 14088, 9680, 22280, 9688, 30472, 9704, 16136,
+
248 9712, 24328, 9720, 32520, 9744, 16776, 9752, 24968, 9768, 10632, 9776, 18824, 9784, 27016, 9800, 12680,
+
249 9808, 20872, 9816, 29064, 9832, 14728, 9840, 22920, 9848, 31112, 9872, 17288, 9880, 25480, 9896, 11144,
+
250 9904, 19336, 9912, 27528, 9928, 13192, 9936, 21384, 9944, 29576, 9960, 15240, 9968, 23432, 9976, 31624,
+
251 10000, 17800, 10008, 25992, 10024, 11656, 10032, 19848, 10040, 28040, 10056, 13704, 10064, 21896, 10072, 30088,
+
252 10088, 15752, 10096, 23944, 10104, 32136, 10128, 18312, 10136, 26504, 10152, 12168, 10160, 20360, 10168, 28552,
+
253 10184, 14216, 10192, 22408, 10200, 30600, 10216, 16264, 10224, 24456, 10232, 32648, 10256, 16424, 10264, 24616,
+
254 10288, 18472, 10296, 26664, 10312, 12328, 10320, 20520, 10328, 28712, 10344, 14376, 10352, 22568, 10360, 30760,
+
255 10384, 16936, 10392, 25128, 10408, 10792, 10416, 18984, 10424, 27176, 10440, 12840, 10448, 21032, 10456, 29224,
+
256 10472, 14888, 10480, 23080, 10488, 31272, 10512, 17448, 10520, 25640, 10536, 11304, 10544, 19496, 10552, 27688,
+
257 10568, 13352, 10576, 21544, 10584, 29736, 10600, 15400, 10608, 23592, 10616, 31784, 10640, 17960, 10648, 26152,
+
258 10664, 11816, 10672, 20008, 10680, 28200, 10696, 13864, 10704, 22056, 10712, 30248, 10728, 15912, 10736, 24104,
+
259 10744, 32296, 10768, 16552, 10776, 24744, 10800, 18600, 10808, 26792, 10824, 12456, 10832, 20648, 10840, 28840,
+
260 10856, 14504, 10864, 22696, 10872, 30888, 10896, 17064, 10904, 25256, 10928, 19112, 10936, 27304, 10952, 12968,
+
261 10960, 21160, 10968, 29352, 10984, 15016, 10992, 23208, 11000, 31400, 11024, 17576, 11032, 25768, 11048, 11432,
+
262 11056, 19624, 11064, 27816, 11080, 13480, 11088, 21672, 11096, 29864, 11112, 15528, 11120, 23720, 11128, 31912,
+
263 11152, 18088, 11160, 26280, 11176, 11944, 11184, 20136, 11192, 28328, 11208, 13992, 11216, 22184, 11224, 30376,
+
264 11240, 16040, 11248, 24232, 11256, 32424, 11280, 16680, 11288, 24872, 11312, 18728, 11320, 26920, 11336, 12584,
+
265 11344, 20776, 11352, 28968, 11368, 14632, 11376, 22824, 11384, 31016, 11408, 17192, 11416, 25384, 11440, 19240,
+
266 11448, 27432, 11464, 13096, 11472, 21288, 11480, 29480, 11496, 15144, 11504, 23336, 11512, 31528, 11536, 17704,
+
267 11544, 25896, 11568, 19752, 11576, 27944, 11592, 13608, 11600, 21800, 11608, 29992, 11624, 15656, 11632, 23848,
+
268 11640, 32040, 11664, 18216, 11672, 26408, 11688, 12072, 11696, 20264, 11704, 28456, 11720, 14120, 11728, 22312,
+
269 11736, 30504, 11752, 16168, 11760, 24360, 11768, 32552, 11792, 16808, 11800, 25000, 11824, 18856, 11832, 27048,
+
270 11848, 12712, 11856, 20904, 11864, 29096, 11880, 14760, 11888, 22952, 11896, 31144, 11920, 17320, 11928, 25512,
+
271 11952, 19368, 11960, 27560, 11976, 13224, 11984, 21416, 11992, 29608, 12008, 15272, 12016, 23464, 12024, 31656,
+
272 12048, 17832, 12056, 26024, 12080, 19880, 12088, 28072, 12104, 13736, 12112, 21928, 12120, 30120, 12136, 15784,
+
273 12144, 23976, 12152, 32168, 12176, 18344, 12184, 26536, 12208, 20392, 12216, 28584, 12232, 14248, 12240, 22440,
+
274 12248, 30632, 12264, 16296, 12272, 24488, 12280, 32680, 12304, 16456, 12312, 24648, 12336, 18504, 12344, 26696,
+
275 12368, 20552, 12376, 28744, 12392, 14408, 12400, 22600, 12408, 30792, 12432, 16968, 12440, 25160, 12464, 19016,
+
276 12472, 27208, 12488, 12872, 12496, 21064, 12504, 29256, 12520, 14920, 12528, 23112, 12536, 31304, 12560, 17480,
+
277 12568, 25672, 12592, 19528, 12600, 27720, 12616, 13384, 12624, 21576, 12632, 29768, 12648, 15432, 12656, 23624,
+
278 12664, 31816, 12688, 17992, 12696, 26184, 12720, 20040, 12728, 28232, 12744, 13896, 12752, 22088, 12760, 30280,
+
279 12776, 15944, 12784, 24136, 12792, 32328, 12816, 16584, 12824, 24776, 12848, 18632, 12856, 26824, 12880, 20680,
+
280 12888, 28872, 12904, 14536, 12912, 22728, 12920, 30920, 12944, 17096, 12952, 25288, 12976, 19144, 12984, 27336,
+
281 13008, 21192, 13016, 29384, 13032, 15048, 13040, 23240, 13048, 31432, 13072, 17608, 13080, 25800, 13104, 19656,
+
282 13112, 27848, 13128, 13512, 13136, 21704, 13144, 29896, 13160, 15560, 13168, 23752, 13176, 31944, 13200, 18120,
+
283 13208, 26312, 13232, 20168, 13240, 28360, 13256, 14024, 13264, 22216, 13272, 30408, 13288, 16072, 13296, 24264,
+
284 13304, 32456, 13328, 16712, 13336, 24904, 13360, 18760, 13368, 26952, 13392, 20808, 13400, 29000, 13416, 14664,
+
285 13424, 22856, 13432, 31048, 13456, 17224, 13464, 25416, 13488, 19272, 13496, 27464, 13520, 21320, 13528, 29512,
+
286 13544, 15176, 13552, 23368, 13560, 31560, 13584, 17736, 13592, 25928, 13616, 19784, 13624, 27976, 13648, 21832,
+
287 13656, 30024, 13672, 15688, 13680, 23880, 13688, 32072, 13712, 18248, 13720, 26440, 13744, 20296, 13752, 28488,
+
288 13768, 14152, 13776, 22344, 13784, 30536, 13800, 16200, 13808, 24392, 13816, 32584, 13840, 16840, 13848, 25032,
+
289 13872, 18888, 13880, 27080, 13904, 20936, 13912, 29128, 13928, 14792, 13936, 22984, 13944, 31176, 13968, 17352,
+
290 13976, 25544, 14000, 19400, 14008, 27592, 14032, 21448, 14040, 29640, 14056, 15304, 14064, 23496, 14072, 31688,
+
291 14096, 17864, 14104, 26056, 14128, 19912, 14136, 28104, 14160, 21960, 14168, 30152, 14184, 15816, 14192, 24008,
+
292 14200, 32200, 14224, 18376, 14232, 26568, 14256, 20424, 14264, 28616, 14288, 22472, 14296, 30664, 14312, 16328,
+
293 14320, 24520, 14328, 32712, 14352, 16488, 14360, 24680, 14384, 18536, 14392, 26728, 14416, 20584, 14424, 28776,
+
294 14448, 22632, 14456, 30824, 14480, 17000, 14488, 25192, 14512, 19048, 14520, 27240, 14544, 21096, 14552, 29288,
+
295 14568, 14952, 14576, 23144, 14584, 31336, 14608, 17512, 14616, 25704, 14640, 19560, 14648, 27752, 14672, 21608,
+
296 14680, 29800, 14696, 15464, 14704, 23656, 14712, 31848, 14736, 18024, 14744, 26216, 14768, 20072, 14776, 28264,
+
297 14800, 22120, 14808, 30312, 14824, 15976, 14832, 24168, 14840, 32360, 14864, 16616, 14872, 24808, 14896, 18664,
+
298 14904, 26856, 14928, 20712, 14936, 28904, 14960, 22760, 14968, 30952, 14992, 17128, 15000, 25320, 15024, 19176,
+
299 15032, 27368, 15056, 21224, 15064, 29416, 15088, 23272, 15096, 31464, 15120, 17640, 15128, 25832, 15152, 19688,
+
300 15160, 27880, 15184, 21736, 15192, 29928, 15208, 15592, 15216, 23784, 15224, 31976, 15248, 18152, 15256, 26344,
+
301 15280, 20200, 15288, 28392, 15312, 22248, 15320, 30440, 15336, 16104, 15344, 24296, 15352, 32488, 15376, 16744,
+
302 15384, 24936, 15408, 18792, 15416, 26984, 15440, 20840, 15448, 29032, 15472, 22888, 15480, 31080, 15504, 17256,
+
303 15512, 25448, 15536, 19304, 15544, 27496, 15568, 21352, 15576, 29544, 15600, 23400, 15608, 31592, 15632, 17768,
+
304 15640, 25960, 15664, 19816, 15672, 28008, 15696, 21864, 15704, 30056, 15728, 23912, 15736, 32104, 15760, 18280,
+
305 15768, 26472, 15792, 20328, 15800, 28520, 15824, 22376, 15832, 30568, 15848, 16232, 15856, 24424, 15864, 32616,
+
306 15888, 16872, 15896, 25064, 15920, 18920, 15928, 27112, 15952, 20968, 15960, 29160, 15984, 23016, 15992, 31208,
+
307 16016, 17384, 16024, 25576, 16048, 19432, 16056, 27624, 16080, 21480, 16088, 29672, 16112, 23528, 16120, 31720,
+
308 16144, 17896, 16152, 26088, 16176, 19944, 16184, 28136, 16208, 21992, 16216, 30184, 16240, 24040, 16248, 32232,
+
309 16272, 18408, 16280, 26600, 16304, 20456, 16312, 28648, 16336, 22504, 16344, 30696, 16368, 24552, 16376, 32744,
+
310 16408, 24592, 16432, 18448, 16440, 26640, 16464, 20496, 16472, 28688, 16496, 22544, 16504, 30736, 16528, 16912,
+
311 16536, 25104, 16560, 18960, 16568, 27152, 16592, 21008, 16600, 29200, 16624, 23056, 16632, 31248, 16656, 17424,
+
312 16664, 25616, 16688, 19472, 16696, 27664, 16720, 21520, 16728, 29712, 16752, 23568, 16760, 31760, 16784, 17936,
+
313 16792, 26128, 16816, 19984, 16824, 28176, 16848, 22032, 16856, 30224, 16880, 24080, 16888, 32272, 16920, 24720,
+
314 16944, 18576, 16952, 26768, 16976, 20624, 16984, 28816, 17008, 22672, 17016, 30864, 17048, 25232, 17072, 19088,
+
315 17080, 27280, 17104, 21136, 17112, 29328, 17136, 23184, 17144, 31376, 17168, 17552, 17176, 25744, 17200, 19600,
+
316 17208, 27792, 17232, 21648, 17240, 29840, 17264, 23696, 17272, 31888, 17296, 18064, 17304, 26256, 17328, 20112,
+
317 17336, 28304, 17360, 22160, 17368, 30352, 17392, 24208, 17400, 32400, 17432, 24848, 17456, 18704, 17464, 26896,
+
318 17488, 20752, 17496, 28944, 17520, 22800, 17528, 30992, 17560, 25360, 17584, 19216, 17592, 27408, 17616, 21264,
+
319 17624, 29456, 17648, 23312, 17656, 31504, 17688, 25872, 17712, 19728, 17720, 27920, 17744, 21776, 17752, 29968,
+
320 17776, 23824, 17784, 32016, 17808, 18192, 17816, 26384, 17840, 20240, 17848, 28432, 17872, 22288, 17880, 30480,
+
321 17904, 24336, 17912, 32528, 17944, 24976, 17968, 18832, 17976, 27024, 18000, 20880, 18008, 29072, 18032, 22928,
+
322 18040, 31120, 18072, 25488, 18096, 19344, 18104, 27536, 18128, 21392, 18136, 29584, 18160, 23440, 18168, 31632,
+
323 18200, 26000, 18224, 19856, 18232, 28048, 18256, 21904, 18264, 30096, 18288, 23952, 18296, 32144, 18328, 26512,
+
324 18352, 20368, 18360, 28560, 18384, 22416, 18392, 30608, 18416, 24464, 18424, 32656, 18456, 24624, 18488, 26672,
+
325 18512, 20528, 18520, 28720, 18544, 22576, 18552, 30768, 18584, 25136, 18608, 18992, 18616, 27184, 18640, 21040,
+
326 18648, 29232, 18672, 23088, 18680, 31280, 18712, 25648, 18736, 19504, 18744, 27696, 18768, 21552, 18776, 29744,
+
327 18800, 23600, 18808, 31792, 18840, 26160, 18864, 20016, 18872, 28208, 18896, 22064, 18904, 30256, 18928, 24112,
+
328 18936, 32304, 18968, 24752, 19000, 26800, 19024, 20656, 19032, 28848, 19056, 22704, 19064, 30896, 19096, 25264,
+
329 19128, 27312, 19152, 21168, 19160, 29360, 19184, 23216, 19192, 31408, 19224, 25776, 19248, 19632, 19256, 27824,
+
330 19280, 21680, 19288, 29872, 19312, 23728, 19320, 31920, 19352, 26288, 19376, 20144, 19384, 28336, 19408, 22192,
+
331 19416, 30384, 19440, 24240, 19448, 32432, 19480, 24880, 19512, 26928, 19536, 20784, 19544, 28976, 19568, 22832,
+
332 19576, 31024, 19608, 25392, 19640, 27440, 19664, 21296, 19672, 29488, 19696, 23344, 19704, 31536, 19736, 25904,
+
333 19768, 27952, 19792, 21808, 19800, 30000, 19824, 23856, 19832, 32048, 19864, 26416, 19888, 20272, 19896, 28464,
+
334 19920, 22320, 19928, 30512, 19952, 24368, 19960, 32560, 19992, 25008, 20024, 27056, 20048, 20912, 20056, 29104,
+
335 20080, 22960, 20088, 31152, 20120, 25520, 20152, 27568, 20176, 21424, 20184, 29616, 20208, 23472, 20216, 31664,
+
336 20248, 26032, 20280, 28080, 20304, 21936, 20312, 30128, 20336, 23984, 20344, 32176, 20376, 26544, 20408, 28592,
+
337 20432, 22448, 20440, 30640, 20464, 24496, 20472, 32688, 20504, 24656, 20536, 26704, 20568, 28752, 20592, 22608,
+
338 20600, 30800, 20632, 25168, 20664, 27216, 20688, 21072, 20696, 29264, 20720, 23120, 20728, 31312, 20760, 25680,
+
339 20792, 27728, 20816, 21584, 20824, 29776, 20848, 23632, 20856, 31824, 20888, 26192, 20920, 28240, 20944, 22096,
+
340 20952, 30288, 20976, 24144, 20984, 32336, 21016, 24784, 21048, 26832, 21080, 28880, 21104, 22736, 21112, 30928,
+
341 21144, 25296, 21176, 27344, 21208, 29392, 21232, 23248, 21240, 31440, 21272, 25808, 21304, 27856, 21328, 21712,
+
342 21336, 29904, 21360, 23760, 21368, 31952, 21400, 26320, 21432, 28368, 21456, 22224, 21464, 30416, 21488, 24272,
+
343 21496, 32464, 21528, 24912, 21560, 26960, 21592, 29008, 21616, 22864, 21624, 31056, 21656, 25424, 21688, 27472,
+
344 21720, 29520, 21744, 23376, 21752, 31568, 21784, 25936, 21816, 27984, 21848, 30032, 21872, 23888, 21880, 32080,
+
345 21912, 26448, 21944, 28496, 21968, 22352, 21976, 30544, 22000, 24400, 22008, 32592, 22040, 25040, 22072, 27088,
+
346 22104, 29136, 22128, 22992, 22136, 31184, 22168, 25552, 22200, 27600, 22232, 29648, 22256, 23504, 22264, 31696,
+
347 22296, 26064, 22328, 28112, 22360, 30160, 22384, 24016, 22392, 32208, 22424, 26576, 22456, 28624, 22488, 30672,
+
348 22512, 24528, 22520, 32720, 22552, 24688, 22584, 26736, 22616, 28784, 22648, 30832, 22680, 25200, 22712, 27248,
+
349 22744, 29296, 22768, 23152, 22776, 31344, 22808, 25712, 22840, 27760, 22872, 29808, 22896, 23664, 22904, 31856,
+
350 22936, 26224, 22968, 28272, 23000, 30320, 23024, 24176, 23032, 32368, 23064, 24816, 23096, 26864, 23128, 28912,
+
351 23160, 30960, 23192, 25328, 23224, 27376, 23256, 29424, 23288, 31472, 23320, 25840, 23352, 27888, 23384, 29936,
+
352 23408, 23792, 23416, 31984, 23448, 26352, 23480, 28400, 23512, 30448, 23536, 24304, 23544, 32496, 23576, 24944,
+
353 23608, 26992, 23640, 29040, 23672, 31088, 23704, 25456, 23736, 27504, 23768, 29552, 23800, 31600, 23832, 25968,
+
354 23864, 28016, 23896, 30064, 23928, 32112, 23960, 26480, 23992, 28528, 24024, 30576, 24048, 24432, 24056, 32624,
+
355 24088, 25072, 24120, 27120, 24152, 29168, 24184, 31216, 24216, 25584, 24248, 27632, 24280, 29680, 24312, 31728,
+
356 24344, 26096, 24376, 28144, 24408, 30192, 24440, 32240, 24472, 26608, 24504, 28656, 24536, 30704, 24568, 32752,
+
357 24632, 26648, 24664, 28696, 24696, 30744, 24728, 25112, 24760, 27160, 24792, 29208, 24824, 31256, 24856, 25624,
+
358 24888, 27672, 24920, 29720, 24952, 31768, 24984, 26136, 25016, 28184, 25048, 30232, 25080, 32280, 25144, 26776,
+
359 25176, 28824, 25208, 30872, 25272, 27288, 25304, 29336, 25336, 31384, 25368, 25752, 25400, 27800, 25432, 29848,
+
360 25464, 31896, 25496, 26264, 25528, 28312, 25560, 30360, 25592, 32408, 25656, 26904, 25688, 28952, 25720, 31000,
+
361 25784, 27416, 25816, 29464, 25848, 31512, 25912, 27928, 25944, 29976, 25976, 32024, 26008, 26392, 26040, 28440,
+
362 26072, 30488, 26104, 32536, 26168, 27032, 26200, 29080, 26232, 31128, 26296, 27544, 26328, 29592, 26360, 31640,
+
363 26424, 28056, 26456, 30104, 26488, 32152, 26552, 28568, 26584, 30616, 26616, 32664, 26712, 28728, 26744, 30776,
+
364 26808, 27192, 26840, 29240, 26872, 31288, 26936, 27704, 26968, 29752, 27000, 31800, 27064, 28216, 27096, 30264,
+
365 27128, 32312, 27224, 28856, 27256, 30904, 27352, 29368, 27384, 31416, 27448, 27832, 27480, 29880, 27512, 31928,
+
366 27576, 28344, 27608, 30392, 27640, 32440, 27736, 28984, 27768, 31032, 27864, 29496, 27896, 31544, 27992, 30008,
+
367 28024, 32056, 28088, 28472, 28120, 30520, 28152, 32568, 28248, 29112, 28280, 31160, 28376, 29624, 28408, 31672,
+
368 28504, 30136, 28536, 32184, 28632, 30648, 28664, 32696, 28792, 30808, 28888, 29272, 28920, 31320, 29016, 29784,
+
369 29048, 31832, 29144, 30296, 29176, 32344, 29304, 30936, 29432, 31448, 29528, 29912, 29560, 31960, 29656, 30424,
+
370 29688, 32472, 29816, 31064, 29944, 31576, 30072, 32088, 30168, 30552, 30200, 32600, 30328, 31192, 30456, 31704,
+
371 30584, 32216, 30712, 32728, 30968, 31352, 31096, 31864, 31224, 32376, 31608, 31992, 31736, 32504, 32248, 32632,
+
372};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_4096_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_4096_fc32_size
+
+extern
+
+ +

Definition at line 399 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ bitrev4r_table_512_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_512_fc32[]
+
+extern
+
+ +
+
+ +

◆ bitrev4r_table_512_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_512_fc32_size
+
+extern
+
+ +
+
+ +

◆ bitrev4r_table_64_fc32

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_64_fc32[]
+
+extern
+
+ +

Definition at line 26 of file dsps_fft4r_bitrev_tables_fc32.c.

+
26 {
+
27 8, 128, 16, 256, 24, 384, 40, 160, 48, 288, 56, 416, 72, 192, 80, 320,
+
28 88, 448, 104, 224, 112, 352, 120, 480, 144, 264, 152, 392, 176, 296, 184, 424,
+
29 208, 328, 216, 456, 240, 360, 248, 488, 280, 400, 312, 432, 344, 464, 376, 496,
+
30};
+
+

Referenced by dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ bitrev4r_table_64_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t bitrev4r_table_64_fc32_size
+
+extern
+
+ +

Definition at line 396 of file dsps_fft4r_bitrev_tables_fc32.c.

+ +
+
+ +

◆ dsps_fft2r_rev_tables_fc32

+ +
+
+ + + + + +
+ + + + +
uint16_t* dsps_fft2r_rev_tables_fc32[]
+
+extern
+
+ +

Definition at line 558 of file dsps_fft2r_bitrev_tables_fc32.c.

+
558 {
+
559 (uint16_t *)bitrev2r_table_16_fc32,
+
560 (uint16_t *)bitrev2r_table_32_fc32,
+
561 (uint16_t *)bitrev2r_table_64_fc32,
+
562 (uint16_t *)bitrev2r_table_128_fc32,
+
563 (uint16_t *)bitrev2r_table_256_fc32,
+
564 (uint16_t *)bitrev2r_table_512_fc32,
+
565 (uint16_t *)bitrev2r_table_1024_fc32,
+
566 (uint16_t *)bitrev2r_table_2048_fc32,
+
567 (uint16_t *)bitrev2r_table_4096_fc32,
+
568};
+
+

Referenced by dsps_bit_rev2r_fc32(), dsps_fft2r_init_fc32(), and dsps_fft2r_rev_tables_init_fc32().

+ +
+
+ +

◆ dsps_fft2r_rev_tables_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t dsps_fft2r_rev_tables_fc32_size[]
+
+extern
+
+ +

Definition at line 580 of file dsps_fft2r_bitrev_tables_fc32.c.

+
580 {
+
581 (const uint16_t)6, // bitrev2r_table_16_fc32_size,
+
582 (const uint16_t)12, // bitrev2r_table_32_fc32_size,
+
583 (const uint16_t)28, // bitrev2r_table_64_fc32_size,
+
584 (const uint16_t)56, // bitrev2r_table_128_fc32_size,
+
585 (const uint16_t)120, // bitrev2r_table_256_fc32_size,
+
586 (const uint16_t)240, // bitrev2r_table_512_fc32_size,
+
587 (const uint16_t)496, // bitrev2r_table_1024_fc32_size,
+
588 (const uint16_t)992, // bitrev2r_table_2048_fc32_size,
+
589 (const uint16_t)2016,// bitrev2r_table_4096_fc32_size,
+
590};
+
+

Referenced by dsps_bit_rev2r_fc32(), and dsps_fft2r_init_fc32().

+ +
+
+ +

◆ dsps_fft4r_rev_tables_fc32

+ +
+
+ + + + + +
+ + + + +
uint16_t* dsps_fft4r_rev_tables_fc32[]
+
+extern
+
+ +

Definition at line 387 of file dsps_fft4r_bitrev_tables_fc32.c.

+
387 {
+
388 (uint16_t *)bitrev4r_table_16_fc32,
+
389 (uint16_t *)bitrev4r_table_64_fc32,
+
390 (uint16_t *)bitrev4r_table_256_fc32,
+
391 (uint16_t *)bitrev4r_table_1024_fc32,
+
392 (uint16_t *)bitrev4r_table_4096_fc32,
+
393};
+
+

Referenced by dsps_bit_rev4r_fc32(), dsps_fft4r_init_fc32(), and dsps_fft4r_rev_tables_init_fc32().

+ +
+
+ +

◆ dsps_fft4r_rev_tables_fc32_size

+ +
+
+ + + + + +
+ + + + +
const uint16_t dsps_fft4r_rev_tables_fc32_size[]
+
+extern
+
+ +

Definition at line 401 of file dsps_fft4r_bitrev_tables_fc32.c.

+
401 {
+
402 (const uint16_t)6, // bitrev4r_table_16_fc32_size,
+
403 (const uint16_t)24, // bitrev4r_table_64_fc32_size,
+
404 (const uint16_t)120, // bitrev4r_table_256_fc32_size,
+
405 (const uint16_t)480, // bitrev4r_table_1024_fc32_size,
+
406 (const uint16_t)2016,// bitrev4r_table_4096_fc32_size,
+
407};
+
+

Referenced by dsps_bit_rev4r_fc32(), and dsps_fft4r_init_fc32().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fft__tables_8h.js b/docs/html/dsps__fft__tables_8h.js new file mode 100644 index 0000000..d7e3701 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h.js @@ -0,0 +1,45 @@ +var dsps__fft__tables_8h = +[ + [ "dsps_fft2r_rev_tables_init_fc32", "dsps__fft__tables_8h.html#abaa77616d9eb4819fe7cd9bfbf253cfc", null ], + [ "dsps_fft4r_rev_tables_init_fc32", "dsps__fft__tables_8h.html#a1ca49ce69b3802614ebf7ab2547c980e", null ], + [ "bitrev2r_table_1024_fc32", "dsps__fft__tables_8h.html#a1bc3f64f1f95b0c9f85a82be691b67a6", null ], + [ "bitrev2r_table_1024_fc32_size", "dsps__fft__tables_8h.html#a88902816592ecc06fc9378dfa031069b", null ], + [ "bitrev2r_table_128_fc32", "dsps__fft__tables_8h.html#a19f1b60cd1ae61e5d8212e42c04f382d", null ], + [ "bitrev2r_table_128_fc32_size", "dsps__fft__tables_8h.html#a8b7b857f88dc74e87265c991ff45d687", null ], + [ "bitrev2r_table_16_fc32", "dsps__fft__tables_8h.html#a06bf69e8a30aeb66124c2c323a6d38b7", null ], + [ "bitrev2r_table_16_fc32_size", "dsps__fft__tables_8h.html#aabe1c7e6b302b02d5dc6f38c08d7f222", null ], + [ "bitrev2r_table_2048_fc32", "dsps__fft__tables_8h.html#abfbe4da4ea39c8cfa3610a5a13ded8a0", null ], + [ "bitrev2r_table_2048_fc32_size", "dsps__fft__tables_8h.html#aba2d7bd2b2f9ec59d9b0b59ebaf47d52", null ], + [ "bitrev2r_table_256_fc32", "dsps__fft__tables_8h.html#a85f8e1aa8da9213ce0f2f44624bc887d", null ], + [ "bitrev2r_table_256_fc32_size", "dsps__fft__tables_8h.html#a73ab7b3252c4261cba225f30a4ae174d", null ], + [ "bitrev2r_table_32_fc32", "dsps__fft__tables_8h.html#a45b7b6621ce68fbb95de0d10d88e02ec", null ], + [ "bitrev2r_table_32_fc32_size", "dsps__fft__tables_8h.html#acaf4f8ccc865e4460f1039dd9fdaceb6", null ], + [ "bitrev2r_table_4096_fc32", "dsps__fft__tables_8h.html#a5311f694a31d7367b78df5462033a4b3", null ], + [ "bitrev2r_table_4096_fc32_size", "dsps__fft__tables_8h.html#a30977ed28f4bfa0907302f782452c6d2", null ], + [ "bitrev2r_table_512_fc32", "dsps__fft__tables_8h.html#a3b8b2f3eb9492e89998509be787c23c6", null ], + [ "bitrev2r_table_512_fc32_size", "dsps__fft__tables_8h.html#a129d8201f9973c8cb8d754e99e4dff88", null ], + [ "bitrev2r_table_64_fc32", "dsps__fft__tables_8h.html#a6fa23c5a0857ca97e9016dda4253ce3f", null ], + [ "bitrev2r_table_64_fc32_size", "dsps__fft__tables_8h.html#a521f81c3335b8303787f82b48d2f6334", null ], + [ "bitrev4r_table_1024_fc32", "dsps__fft__tables_8h.html#a0752745274dcd45ccd8fd6aaab67e36b", null ], + [ "bitrev4r_table_1024_fc32_size", "dsps__fft__tables_8h.html#a8457229314cfc088306aaf7d389d1c13", null ], + [ "bitrev4r_table_128_fc32", "dsps__fft__tables_8h.html#a129b4f71e7d10a2a7c035beb24e75720", null ], + [ "bitrev4r_table_128_fc32_size", "dsps__fft__tables_8h.html#a00f7e322b343c0a669bce5d3a77bca03", null ], + [ "bitrev4r_table_16_fc32", "dsps__fft__tables_8h.html#a2a675d4e4f9be02fc1698cd6a112c379", null ], + [ "bitrev4r_table_16_fc32_size", "dsps__fft__tables_8h.html#a6a62e41690ba0704eb1fafd17f9e1895", null ], + [ "bitrev4r_table_2048_fc32", "dsps__fft__tables_8h.html#aa8305f9e4c58d6a6e99bc2275072d93e", null ], + [ "bitrev4r_table_2048_fc32_size", "dsps__fft__tables_8h.html#a92ce6fb3f97df6b9803daa0d2134ac0c", null ], + [ "bitrev4r_table_256_fc32", "dsps__fft__tables_8h.html#a7135162db5455b096af246500d14aa91", null ], + [ "bitrev4r_table_256_fc32_size", "dsps__fft__tables_8h.html#a496fa4d2a9c6cd7a446dfcecfc9379d4", null ], + [ "bitrev4r_table_32_fc32", "dsps__fft__tables_8h.html#a21301cc44d6dfaed7900d50140e57d90", null ], + [ "bitrev4r_table_32_fc32_size", "dsps__fft__tables_8h.html#a87947979bf9269d8eda3a8d7b8438ad2", null ], + [ "bitrev4r_table_4096_fc32", "dsps__fft__tables_8h.html#a8ecde712d98f9da7011eaca4cfba4e3b", null ], + [ "bitrev4r_table_4096_fc32_size", "dsps__fft__tables_8h.html#ad53f71c86adb2c75157da0cd1358298e", null ], + [ "bitrev4r_table_512_fc32", "dsps__fft__tables_8h.html#adc1030ea0e8be7380126248de7bd736f", null ], + [ "bitrev4r_table_512_fc32_size", "dsps__fft__tables_8h.html#ad0b04356f0594d44cbd1ce2259a0f0f8", null ], + [ "bitrev4r_table_64_fc32", "dsps__fft__tables_8h.html#a51858b91736ca2b9557b273c0f5bb319", null ], + [ "bitrev4r_table_64_fc32_size", "dsps__fft__tables_8h.html#a507f46710082488728276a18b3d60a31", null ], + [ "dsps_fft2r_rev_tables_fc32", "dsps__fft__tables_8h.html#a82c1cb0c45b191f0ee8a5263c1d534de", null ], + [ "dsps_fft2r_rev_tables_fc32_size", "dsps__fft__tables_8h.html#a385ba10c447824389480b8c97b835109", null ], + [ "dsps_fft4r_rev_tables_fc32", "dsps__fft__tables_8h.html#a63631e8234941329367df932b82f12a1", null ], + [ "dsps_fft4r_rev_tables_fc32_size", "dsps__fft__tables_8h.html#a6f5dc628e01571d50b87e89418e9c300", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fft__tables_8h__dep__incl.md5 b/docs/html/dsps__fft__tables_8h__dep__incl.md5 new file mode 100644 index 0000000..38957d5 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h__dep__incl.md5 @@ -0,0 +1 @@ +54f193a1e7c9d5674140681715b9381c \ No newline at end of file diff --git a/docs/html/dsps__fft__tables_8h__dep__incl.svg b/docs/html/dsps__fft__tables_8h__dep__incl.svg new file mode 100644 index 0000000..3ffec8e --- /dev/null +++ b/docs/html/dsps__fft__tables_8h__dep__incl.svg @@ -0,0 +1,862 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fft_tables.h + + +Node1 + + +dsps_fft_tables.h + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node47 + + +dsps_fft2r_bitrev_tables +_fc32.c + + + + + +Node1->Node47 + + + + + + + + +Node48 + + +dsps_fft4r.h + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +dsps_fft4r_bitrev_tables +_fc32.c + + + + + +Node1->Node49 + + + + + + + + +Node3 + + +dsps_dct_f32.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_dctiv_f32.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_dstiv_f32.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dsps_sfdr_f32.cpp + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dsps_snr_f32.cpp + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +esp_dsp.h + + + + + +Node2->Node13 + + + + + + + + +Node46 + + +test_fft2r.c + + + + + +Node2->Node46 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +3d_graphics_demo.cpp + + + + + +Node13->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +3d_kalman_demo.cpp + + + + + +Node13->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node13->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node13->Node23 + + + + + + + + +Node24 + + +audio_amp_main.c + + + + + +Node13->Node24 + + + + + + + + +Node25 + + +dsp_tests.h + + + + + +Node13->Node25 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node13->Node31 + + + + + + + + +Node33 + + +graphics_support.h + + + + + +Node13->Node33 + + + + + + + + +Node35 + + +graphics_support.h + + + + + +Node13->Node35 + + + + + + + + +Node37 + + +init_display.c + + + + + +Node13->Node37 + + + + + + + + +Node38 + + +init_display.c + + + + + +Node13->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node13->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node13->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node13->Node41 + + + + + + + + +Node42 + + +kalman_filter_demo.cpp + + + + + +Node13->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node13->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node13->Node44 + + + + + + + + +Node45 + + +main.c + + + + + +Node13->Node45 + + + + + + + + +Node25->Node8 + + + + + + + + +Node48->Node9 + + + + + + + + +Node48->Node10 + + + + + + + + +Node48->Node13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft__tables_8h__dep__incl_org.svg b/docs/html/dsps__fft__tables_8h__dep__incl_org.svg new file mode 100644 index 0000000..d56b306 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h__dep__incl_org.svg @@ -0,0 +1,779 @@ + + + + + + +dsps_fft_tables.h + + +Node1 + + +dsps_fft_tables.h + + + + + +Node2 + + +dsps_fft2r.h + + + + + +Node1->Node2 + + + + + + + + +Node47 + + +dsps_fft2r_bitrev_tables +_fc32.c + + + + + +Node1->Node47 + + + + + + + + +Node48 + + +dsps_fft4r.h + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +dsps_fft4r_bitrev_tables +_fc32.c + + + + + +Node1->Node49 + + + + + + + + +Node3 + + +dsps_dct_f32.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_dctiv_f32.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_dstiv_f32.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dsps_sfdr_f32.cpp + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dsps_snr_f32.cpp + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +esp_dsp.h + + + + + +Node2->Node13 + + + + + + + + +Node46 + + +test_fft2r.c + + + + + +Node2->Node46 + + + + + + + + +Node14 + + +3d_graphics_demo.cpp + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +3d_graphics_demo.cpp + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +3d_graphics_demo.cpp + + + + + +Node13->Node19 + + + + + + + + +Node20 + + +3d_kalman_demo.cpp + + + + + +Node13->Node20 + + + + + + + + +Node21 + + +3d_kalman_demo.cpp + + + + + +Node13->Node21 + + + + + + + + +Node22 + + +audio_amp_main.c + + + + + +Node13->Node22 + + + + + + + + +Node23 + + +audio_amp_main.c + + + + + +Node13->Node23 + + + + + + + + +Node24 + + +audio_amp_main.c + + + + + +Node13->Node24 + + + + + + + + +Node25 + + +dsp_tests.h + + + + + +Node13->Node25 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node13->Node31 + + + + + + + + +Node33 + + +graphics_support.h + + + + + +Node13->Node33 + + + + + + + + +Node35 + + +graphics_support.h + + + + + +Node13->Node35 + + + + + + + + +Node37 + + +init_display.c + + + + + +Node13->Node37 + + + + + + + + +Node38 + + +init_display.c + + + + + +Node13->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node13->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node13->Node40 + + + + + + + + +Node41 + + +kalman_filter_demo.cpp + + + + + +Node13->Node41 + + + + + + + + +Node42 + + +kalman_filter_demo.cpp + + + + + +Node13->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node13->Node43 + + + + + + + + +Node44 + + +main.c + + + + + +Node13->Node44 + + + + + + + + +Node45 + + +main.c + + + + + +Node13->Node45 + + + + + + + + +Node25->Node8 + + + + + + + + +Node48->Node9 + + + + + + + + +Node48->Node10 + + + + + + + + +Node48->Node13 + + + + + + + + diff --git a/docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.md5 b/docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.md5 new file mode 100644 index 0000000..5053cb0 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.md5 @@ -0,0 +1 @@ +4c2cf771dce69703cea4dac01751a6c8 \ No newline at end of file diff --git a/docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.svg b/docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.svg new file mode 100644 index 0000000..bd04bde --- /dev/null +++ b/docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_fft4r_rev_tables_init_fc32 + + +Node1 + + +dsps_fft4r_rev_tables +_init_fc32 + + + + + +Node2 + + +dsps_fft4r_deinit_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph_org.svg b/docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph_org.svg new file mode 100644 index 0000000..dda9c61 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h_a1ca49ce69b3802614ebf7ab2547c980e_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_fft4r_rev_tables_init_fc32 + + +Node1 + + +dsps_fft4r_rev_tables +_init_fc32 + + + + + +Node2 + + +dsps_fft4r_deinit_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 b/docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 new file mode 100644 index 0000000..7da4763 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.md5 @@ -0,0 +1 @@ +fca368992d7d8bfda0ed73e02ac0fd54 \ No newline at end of file diff --git a/docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg b/docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg new file mode 100644 index 0000000..4f830a3 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_fft2r_rev_tables_init_fc32 + + +Node1 + + +dsps_fft2r_rev_tables +_init_fc32 + + + + + +Node2 + + +dsps_fft2r_deinit_fc32 + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg b/docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg new file mode 100644 index 0000000..f64d3d6 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h_abaa77616d9eb4819fe7cd9bfbf253cfc_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_fft2r_rev_tables_init_fc32 + + +Node1 + + +dsps_fft2r_rev_tables +_init_fc32 + + + + + +Node2 + + +dsps_fft2r_deinit_fc32 + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fft__tables_8h_source.html b/docs/html/dsps__fft__tables_8h_source.html new file mode 100644 index 0000000..8bfb287 --- /dev/null +++ b/docs/html/dsps__fft__tables_8h_source.html @@ -0,0 +1,237 @@ + + + + + + + +ESP-IDF Firmware: dsps_fft_tables.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fft_tables.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_fft_tables_H_
+
16#define _dsps_fft_tables_H_
+
17
+
18
+
19#ifdef __cplusplus
+
20extern "C"
+
21{
+
22#endif
+
23extern const uint16_t bitrev2r_table_16_fc32[];
+
24extern const uint16_t bitrev2r_table_16_fc32_size;
+
25
+
26extern const uint16_t bitrev2r_table_32_fc32[];
+
27extern const uint16_t bitrev2r_table_32_fc32_size;
+
28
+
29extern const uint16_t bitrev2r_table_64_fc32[];
+
30extern const uint16_t bitrev2r_table_64_fc32_size;
+
31
+
32extern const uint16_t bitrev2r_table_128_fc32[];
+
33extern const uint16_t bitrev2r_table_128_fc32_size;
+
34
+
35extern const uint16_t bitrev2r_table_256_fc32[];
+
36extern const uint16_t bitrev2r_table_256_fc32_size;
+
37
+
38extern const uint16_t bitrev2r_table_512_fc32[];
+
39extern const uint16_t bitrev2r_table_512_fc32_size;
+
40
+
41extern const uint16_t bitrev2r_table_1024_fc32[];
+
42extern const uint16_t bitrev2r_table_1024_fc32_size;
+
43
+
44extern const uint16_t bitrev2r_table_2048_fc32[];
+
45extern const uint16_t bitrev2r_table_2048_fc32_size;
+
46
+
47extern const uint16_t bitrev2r_table_4096_fc32[];
+
48extern const uint16_t bitrev2r_table_4096_fc32_size;
+
49
+ +
51extern uint16_t *dsps_fft2r_rev_tables_fc32[];
+
52extern const uint16_t dsps_fft2r_rev_tables_fc32_size[];
+
53
+
54extern const uint16_t bitrev4r_table_16_fc32[];
+
55extern const uint16_t bitrev4r_table_16_fc32_size;
+
56
+
57extern const uint16_t bitrev4r_table_32_fc32[];
+
58extern const uint16_t bitrev4r_table_32_fc32_size;
+
59
+
60extern const uint16_t bitrev4r_table_64_fc32[];
+
61extern const uint16_t bitrev4r_table_64_fc32_size;
+
62
+
63extern const uint16_t bitrev4r_table_128_fc32[];
+
64extern const uint16_t bitrev4r_table_128_fc32_size;
+
65
+
66extern const uint16_t bitrev4r_table_256_fc32[];
+
67extern const uint16_t bitrev4r_table_256_fc32_size;
+
68
+
69extern const uint16_t bitrev4r_table_512_fc32[];
+
70extern const uint16_t bitrev4r_table_512_fc32_size;
+
71
+
72extern const uint16_t bitrev4r_table_1024_fc32[];
+
73extern const uint16_t bitrev4r_table_1024_fc32_size;
+
74
+
75extern const uint16_t bitrev4r_table_2048_fc32[];
+
76extern const uint16_t bitrev4r_table_2048_fc32_size;
+
77
+
78extern const uint16_t bitrev4r_table_4096_fc32[];
+
79extern const uint16_t bitrev4r_table_4096_fc32_size;
+
80
+ +
82extern uint16_t *dsps_fft4r_rev_tables_fc32[];
+
83extern const uint16_t dsps_fft4r_rev_tables_fc32_size[];
+
84
+
85#ifdef __cplusplus
+
86}
+
87#endif
+
88
+
89#endif // _dsps_fft_tables_H_
+
const uint16_t bitrev2r_table_16_fc32[]
+
const uint16_t bitrev2r_table_512_fc32_size
+
const uint16_t bitrev2r_table_128_fc32[]
+
const uint16_t bitrev2r_table_1024_fc32[]
+
const uint16_t bitrev2r_table_4096_fc32_size
+
const uint16_t dsps_fft2r_rev_tables_fc32_size[]
+
const uint16_t bitrev2r_table_512_fc32[]
+
const uint16_t bitrev2r_table_32_fc32[]
+
const uint16_t bitrev2r_table_64_fc32_size
+
const uint16_t bitrev2r_table_4096_fc32[]
+
const uint16_t bitrev2r_table_64_fc32[]
+
const uint16_t bitrev2r_table_256_fc32_size
+
uint16_t * dsps_fft2r_rev_tables_fc32[]
+
const uint16_t bitrev2r_table_256_fc32[]
+
const uint16_t bitrev2r_table_1024_fc32_size
+
const uint16_t bitrev2r_table_128_fc32_size
+
const uint16_t bitrev2r_table_16_fc32_size
+
const uint16_t bitrev2r_table_2048_fc32_size
+
const uint16_t bitrev2r_table_2048_fc32[]
+
const uint16_t bitrev2r_table_32_fc32_size
+
const uint16_t bitrev4r_table_64_fc32[]
+
const uint16_t bitrev4r_table_4096_fc32[]
+
const uint16_t bitrev4r_table_256_fc32_size
+
const uint16_t bitrev4r_table_64_fc32_size
+
const uint16_t bitrev4r_table_256_fc32[]
+
uint16_t * dsps_fft4r_rev_tables_fc32[]
+
const uint16_t bitrev4r_table_16_fc32_size
+
const uint16_t dsps_fft4r_rev_tables_fc32_size[]
+
const uint16_t bitrev4r_table_1024_fc32_size
+
const uint16_t bitrev4r_table_1024_fc32[]
+
const uint16_t bitrev4r_table_16_fc32[]
+
const uint16_t bitrev4r_table_4096_fc32_size
+
const uint16_t bitrev4r_table_128_fc32_size
+
const uint16_t bitrev4r_table_128_fc32[]
+
void dsps_fft4r_rev_tables_init_fc32(void)
+
const uint16_t bitrev4r_table_32_fc32[]
+
const uint16_t bitrev4r_table_32_fc32_size
+
const uint16_t bitrev4r_table_2048_fc32_size
+
const uint16_t bitrev4r_table_2048_fc32[]
+
void dsps_fft2r_rev_tables_init_fc32(void)
+
const uint16_t bitrev4r_table_512_fc32_size
+
const uint16_t bitrev4r_table_512_fc32[]
+
+
+
+ + + + diff --git a/docs/html/dsps__fir_8h.html b/docs/html/dsps__fir_8h.html new file mode 100644 index 0000000..3503e53 --- /dev/null +++ b/docs/html/dsps__fir_8h.html @@ -0,0 +1,1801 @@ + + + + + + + +ESP-IDF Firmware: dsps_fir.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fir.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_fir_platform.h"
+#include "dsp_common.h"
+
+Include dependency graph for dsps_fir.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  fir_f32_s
 Data struct of f32 fir filter. More...
struct  fir_s16_s
 Data struct of s16 fir filter. More...
+ + + + + + +

+Macros

#define dsps_fir_f32   dsps_fir_f32_ansi
#define dsps_fird_f32   dsps_fird_f32_ansi
#define dsps_firmr_f32   dsps_firmr_f32_ansi
#define dsps_fird_s16   dsps_fird_s16_ansi
#define dsps_firmr_s16   dsps_firmr_s16_ansi
+ + + + + +

+Typedefs

typedef struct fir_f32_s fir_f32_t
 Data struct of f32 fir filter.
typedef struct fir_s16_s fir_s16_t
 Data struct of s16 fir filter.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

esp_err_t dsps_fir_init_f32 (fir_f32_t *fir, float *coeffs, float *delay, int coeffs_len)
 initialize structure for 32 bit FIR filter
esp_err_t dsps_fird_init_f32 (fir_f32_t *fir, float *coeffs, float *delay, int N, int decim)
 initialize structure for 32 bit Decimation FIR filter Function initialize structure for 32 bit floating point FIR filter with decimation The implementation use ANSI C and could be compiled and run on any platform
esp_err_t dsps_fird_init_s16 (fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift)
 initialize structure for 16 bit Decimation FIR filter Function initialize structure for 16 bit signed fixed point FIR filter with decimation The implementation use ANSI C and could be compiled and run on any platform
esp_err_t dsps_fir_f32_ansi (fir_f32_t *fir, const float *input, float *output, int len)
 32 bit floating point FIR filter
esp_err_t dsps_fir_f32_ae32 (fir_f32_t *fir, const float *input, float *output, int len)
esp_err_t dsps_fir_f32_aes3 (fir_f32_t *fir, const float *input, float *output, int len)
int dsps_fird_f32_ansi (fir_f32_t *fir, const float *input, float *output, int len)
 32 bit floating point Decimation FIR filter
int dsps_fird_f32_ae32 (fir_f32_t *fir, const float *input, float *output, int len)
int dsps_fird_f32_aes3 (fir_f32_t *fir, const float *input, float *output, int len)
int dsps_fird_f32_arp4 (fir_f32_t *fir, const float *input, float *output, int len)
int32_t dsps_fird_s16_ansi (fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
 16 bit signed fixed point Decimation FIR filter
int32_t dsps_fird_s16_ae32 (fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
int32_t dsps_fird_s16_aes3 (fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
int32_t dsps_fird_s16_arp4 (fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
esp_err_t dsps_firmr_init_f32 (fir_f32_t *fir, float *coeffs, float *delay, int length, int interp, int decim, int start_pos)
 initialize structure for multi-rate FIR filter Function initialize structure for 32 bit floating point multi-rate FIR filter The implementation use ANSI C and could be compiled and run on any platform
esp_err_t dsps_firmr_init_s16 (fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t length, int16_t interp, int16_t decim, int16_t start_pos, int16_t shift)
 initialize structure for multi-rate FIR filter Function initialize structure for 16 bit signed fixed point multi-rate FIR filter The implementation use ANSI C and could be compiled and run on any platform
int dsps_firmr_f32_ansi (fir_f32_t *fir, const float *input, float *output, int input_len)
 32 bit floating point multi-rate FIR filter
int32_t dsps_firmr_s16_ansi (fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t input_len)
 16 bit signed fixed point multi-rate FIR filter
esp_err_t dsps_fird_s16_aexx_free (fir_s16_t *fir)
 support arrays freeing function
esp_err_t dsps_fir_f32_free (fir_f32_t *fir)
 support arrays freeing function
esp_err_t dsps_16_array_rev (int16_t *arr, int16_t len)
 Array reversal.
+

Macro Definition Documentation

+ +

◆ dsps_fir_f32

+ +
+
+ + + + +
#define dsps_fir_f32   dsps_fir_f32_ansi
+
+ +

Definition at line 378 of file dsps_fir.h.

+ +
+
+ +

◆ dsps_fird_f32

+ +
+
+ + + + +
#define dsps_fird_f32   dsps_fird_f32_ansi
+
+ +

Definition at line 379 of file dsps_fir.h.

+ +
+
+ +

◆ dsps_fird_s16

+ +
+
+ + + + +
#define dsps_fird_s16   dsps_fird_s16_ansi
+
+ +

Definition at line 381 of file dsps_fir.h.

+ +
+
+ +

◆ dsps_firmr_f32

+ +
+
+ + + + +
#define dsps_firmr_f32   dsps_firmr_f32_ansi
+
+ +

Definition at line 380 of file dsps_fir.h.

+ +

Referenced by dsps_resampler_mr_init().

+ +
+
+ +

◆ dsps_firmr_s16

+ +
+
+ + + + +
#define dsps_firmr_s16   dsps_firmr_s16_ansi
+
+ +

Definition at line 382 of file dsps_fir.h.

+ +

Referenced by dsps_resampler_mr_init().

+ +
+
+

Typedef Documentation

+ +

◆ fir_f32_t

+ +
+
+ + + + +
typedef struct fir_f32_s fir_f32_t
+
+ +

Data struct of f32 fir filter.

+

This structure is used by a filter internally. A user should access this structure only in case of extensions for the DSP Library. All fields of this structure are initialized by the dsps_fir_init_f32(...) function.

+ +
+
+ +

◆ fir_s16_t

+ +
+
+ + + + +
typedef struct fir_s16_s fir_s16_t
+
+ +

Data struct of s16 fir filter.

+

This structure is used by a filter internally. A user should access this structure only in case of extensions for the DSP Library. All fields of this structure are initialized by the dsps_fir_init_s16(...) function.

+ +
+
+

Function Documentation

+ +

◆ dsps_16_array_rev()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_16_array_rev (int16_t * arr,
int16_t len )
+
+ +

Array reversal.

+

Function reverses 16-bit long array members for the purpose of the dsps_fird_s16_aes3 implementation The function has to be called either during the fir struct initialization or every time the coefficients change

+
Parameters
+ + + +
arrpointer to the array to be reversed
lenlength of the array to be reversed
+
+
+
Returns
    +
  • ESP_OK on success
  • +
+
+ +

Definition at line 146 of file dsps_fird_init_s16.c.

+
147{
+
148
+
149 int16_t temp;
+
150
+
151 for (int i = 0; i < (int)(len / 2); i++) {
+
152 temp = arr[i];
+
153 arr[i] = arr[len - 1 - i];
+
154 arr[len - 1 - i] = temp;
+
155 }
+
156 return ESP_OK;
+
157}
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK.

+ +
+
+ +

◆ dsps_fir_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fir_f32_ae32 (fir_f32_t * fir,
const float * input,
float * output,
int len )
+
+ +
+
+ +

◆ dsps_fir_f32_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fir_f32_aes3 (fir_f32_t * fir,
const float * input,
float * output,
int len )
+
+ +

Referenced by test_fir().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fir_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fir_f32_ansi (fir_f32_t * fir,
const float * input,
float * output,
int len )
+
+ +

32 bit floating point FIR filter

+

Function implements FIR filter The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
[in]inputinput array
[out]outputarray with the result of FIR filter
[in]lenlength of input and result arrays
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_fir_f32_ansi.c.

+
18{
+
19 for (int i = 0 ; i < len ; i++) {
+
20 float acc = 0;
+
21 int coeff_pos = 0;
+
22 fir->delay[fir->pos] = input[i];
+
23 fir->pos++;
+
24 if (fir->pos >= fir->N) {
+
25 fir->pos = 0;
+
26 }
+
27 for (int n = fir->pos; n < fir->N ; n++) {
+
28 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
29 }
+
30 for (int n = 0; n < fir->pos ; n++) {
+
31 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
32 }
+
33 output[i] = acc;
+
34 }
+
35 return ESP_OK;
+
36}
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+ +
#define N
Definition test_mmult.c:13
+
const int n
Definition test_mmult.c:17
+
+

References fir_f32_s::coeffs, fir_f32_s::delay, ESP_OK, fir_f32_s::N, N, n, and fir_f32_s::pos.

+ +

Referenced by test_fir().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fir_f32_free()

+ +
+
+ + + + + + + +
esp_err_t dsps_fir_f32_free (fir_f32_t * fir)
+
+ +

support arrays freeing function

+

Function frees the delay line arrays, if it was allocated by the init functions.

+
Parameters
+ + +
firpointer to fir filter structure, that must be initialized before
+
+
+
Returns
    +
  • ESP_OK on success
  • +
+
+ +

Definition at line 60 of file dsps_fir_init_f32.c.

+
61{
+
62 if (fir->use_delay != 0) {
+
63 fir->use_delay = 0;
+
64 free(fir->delay);
+
65 }
+
66 return ESP_OK;
+
67}
+
int16_t use_delay
Definition dsps_fir.h:35
+
+

References fir_f32_s::delay, ESP_OK, and fir_f32_s::use_delay.

+ +

Referenced by dsps_resampler_mr_free().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fir_init_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fir_init_f32 (fir_f32_t * fir,
float * coeffs,
float * delay,
int coeffs_len )
+
+ +

initialize structure for 32 bit FIR filter

+

Function initialize structure for 32 bit floating point FIR filter The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must have a length = coeffs_len + 4
coeffs_lenFIR filter length. Length of coeffs array. For esp32s3 length should be divided by 4 and aligned to 16.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 19 of file dsps_fir_init_f32.c.

+
20{
+
21 // Allocate delay line in case if it's NULL
+
22 if (delay == NULL) {
+
23#ifdef CONFIG_IDF_TARGET_ESP32S3
+
24 delay = (float *)memalign(16, (coeffs_len + 4) * sizeof(float));
+
25#else
+
26 delay = (float *)malloc((coeffs_len + 4) * sizeof(float));
+
27#endif // CONFIG_IDF_TARGET_ESP32S3
+
28 fir->use_delay = 1;
+
29 } else {
+
30 fir->use_delay = 0;
+
31 }
+
32 for (int i = 0; i < (coeffs_len + 4); i++) {
+
33 delay[i] = 0;
+
34 }
+
35 fir->coeffs = coeffs;
+
36 fir->delay = delay;
+
37 fir->N = coeffs_len;
+
38 fir->pos = 0;
+
39
+
40#ifdef CONFIG_IDF_TARGET_ESP32S3
+
41 if (fir->N % 4 != 0) {
+ +
43 }
+
44 // The coeffs array should be aligned to 16
+
45 if (((uint32_t)coeffs) & 0x0f) {
+ +
47 }
+
48 // The delay array should be aligned to 16
+
49 if (((uint32_t)delay) & 0x0f) {
+ +
51 }
+
52#endif // CONFIG_IDF_TARGET_ESP32S3
+
53
+
54 for (int i = 0 ; i < coeffs_len; i++) {
+
55 fir->delay[i] = 0;
+
56 }
+
57 return ESP_OK;
+
58}
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
+

References coeffs, fir_f32_s::coeffs, delay, fir_f32_s::delay, ESP_ERR_DSP_ARRAY_NOT_ALIGNED, ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, memalign, fir_f32_s::N, fir_f32_s::pos, and fir_f32_s::use_delay.

+ +

Referenced by test_fir().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fird_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int dsps_fird_f32_ae32 (fir_f32_t * fir,
const float * input,
float * output,
int len )
+
+ +
+
+ +

◆ dsps_fird_f32_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int dsps_fird_f32_aes3 (fir_f32_t * fir,
const float * input,
float * output,
int len )
+
+ +
+
+ +

◆ dsps_fird_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int dsps_fird_f32_ansi (fir_f32_t * fir,
const float * input,
float * output,
int len )
+
+ +

32 bit floating point Decimation FIR filter

+

Function implements FIR filter with decimation The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
inputinput array
outputarray with the result of FIR filter
lenlength of result array
+
+
+
Returns
: function returns the number of samples stored in the output array depends on the previous state value could be [0..len/decimation]
+ +

Definition at line 17 of file dsps_fird_f32_ansi.c.

+
18{
+
19 int result = 0;
+
20 for (int i = 0; i < len ; i++) {
+
21 for (int k = 0 ; k < fir->decim ; k++) {
+
22 fir->delay[fir->pos++] = *input++;
+
23 if (fir->pos >= fir->N) {
+
24 fir->pos = 0;
+
25 }
+
26 }
+
27 float acc = 0;
+
28 int coeff_pos = 0;
+
29 for (int n = fir->pos; n < fir->N ; n++) {
+
30 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
31 }
+
32 for (int n = 0; n < fir->pos ; n++) {
+
33 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
34 }
+
35 output[result++] = acc;
+
36 }
+
37 return result;
+
38}
+
int decim
Definition dsps_fir.h:34
+
const int k
Definition test_mmult.c:18
+
+

References fir_f32_s::coeffs, fir_f32_s::decim, fir_f32_s::delay, k, fir_f32_s::N, N, n, and fir_f32_s::pos.

+ +
+
+ +

◆ dsps_fird_f32_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int dsps_fird_f32_arp4 (fir_f32_t * fir,
const float * input,
float * output,
int len )
+
+ +
+
+ +

◆ dsps_fird_init_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fird_init_f32 (fir_f32_t * fir,
float * coeffs,
float * delay,
int N,
int decim )
+
+ +

initialize structure for 32 bit Decimation FIR filter Function initialize structure for 32 bit floating point FIR filter with decimation The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must be length N
NFIR filter length. Length of coeffs and delay arrays.
decimdecimation factor.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 18 of file dsps_fird_init_f32.c.

+
19{
+
20 fir->coeffs = coeffs;
+
21 fir->delay = delay;
+
22 fir->N = N;
+
23 fir->pos = 0;
+
24 fir->decim = decim;
+
25
+
26#ifdef CONFIG_IDF_TARGET_ESP32S3
+
27 // The amount of coefficients should be divided to 4,
+
28 // if not, add zero coefficients to round length to 0
+
29 if (fir->N % 4 != 0) {
+ +
31 }
+
32 // The coeffs array should be aligned to 16
+
33 if (((uint32_t)coeffs) & 0x0f) {
+ +
35 }
+
36 // The delay array should be aligned to 16
+
37 if (((uint32_t)delay) & 0x0f) {
+ +
39 }
+
40#endif // CONFIG_IDF_TARGET_ESP32S3
+
41
+
42 for (int i = 0 ; i < N; i++) {
+
43 fir->delay[i] = 0;
+
44 }
+
45 return ESP_OK;
+
46}
+
+

References coeffs, fir_f32_s::coeffs, fir_f32_s::decim, delay, fir_f32_s::delay, ESP_ERR_DSP_ARRAY_NOT_ALIGNED, ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, fir_f32_s::N, N, and fir_f32_s::pos.

+ +
+
+ +

◆ dsps_fird_init_s16()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fird_init_s16 (fir_s16_t * fir,
int16_t * coeffs,
int16_t * delay,
int16_t coeffs_len,
int16_t decim,
int16_t start_pos,
int16_t shift )
+
+ +

initialize structure for 16 bit Decimation FIR filter Function initialize structure for 16 bit signed fixed point FIR filter with decimation The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must be length N
coeffs_lenFIR filter length. Length of coeffs and delay arrays.
decimdecimation factor.
start_posinitial value of decimation counter. Must be [0..d)
shiftshift position of the result
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 14 of file dsps_fird_init_s16.c.

+
15{
+
16 fir->coeffs = coeffs;
+
17 fir->delay = delay;
+
18 fir->coeffs_len = coeffs_len;
+
19 fir->pos = 0;
+
20 fir->decim = decim;
+
21 fir->d_pos = start_pos;
+
22 fir->shift = shift;
+
23 fir->rounding_val = (int16_t)(ROUNDING_VALUE);
+
24 fir->free_status = 0;
+
25
+
26 if (fir->coeffs_len < 2) { // number of coeffcients must be higer than 1
+ +
28 }
+
29
+
30 if ((fir->shift > 40) || (fir->shift < -40)) { // shift amount must be within a range from -40 to 40
+ +
32 }
+
33
+
34 if (fir->d_pos >= fir->decim) { // start position must be lower than decimation
+ +
36 }
+
37
+
38#if CONFIG_DSP_OPTIMIZED
+
39
+
40 // Rounding value buffer primary for a purpose of ee.ld.accx.ip, but used for both the esp32 and esp32s3
+
41 // dsps_fird_s16_aexx_free() must be called to free the memory after the FIR function is finished
+
42 int32_t *aexx_rounding_buff = (int32_t *)memalign(16, 2 * sizeof(int32_t));
+
43
+
44 long long rounding = (long long)(fir->rounding_val);
+
45
+
46 if (fir->shift >= 0) {
+
47 rounding = (rounding >> fir->shift);
+
48 } else {
+
49 rounding = (rounding << (-fir->shift));
+
50 }
+
51#if dsps_fird_s16_arp4_enabled
+
52 fir->pos = start_pos;
+
53
+
54 int16_t *new_delay_buff = (int16_t *)memalign(16, (coeffs_len + 8 * 2) * sizeof(int16_t));
+
55 for (int i = 0 ; i < (coeffs_len + 8 * 2) ; i++) {
+
56 new_delay_buff[i] = 0;
+
57 }
+
58 fir->delay = &new_delay_buff[8];
+
59 fir->free_status |= 0x0001;
+
60
+
61#endif // dsps_fird_s16_arp4_enabled
+
62
+
63
+
64 aexx_rounding_buff[0] = (int32_t)(rounding); // 32 lower bits (acclo) type reassignment to 32-bit
+
65 aexx_rounding_buff[1] = (int32_t)((rounding >> 32) & 0xFF); // 8 higher bits (acchi) shift by 32 and apply the mask
+
66 fir->rounding_buff = aexx_rounding_buff;
+
67 fir->free_status |= 0x0004;
+
68
+
69#if dsps_fird_s16_aes3_enabled
+
70
+
71 if (fir->delay == NULL) { // New delay buffer is allocated if the current delay line is NULL
+
72 int16_t *new_delay_buff = (int16_t *)memalign(16, coeffs_len * sizeof(int16_t));
+
73 fir->delay = new_delay_buff;
+
74 fir->free_status |= 0x0001;
+
75 } else {
+
76 if ((int)fir->delay & 0xf) { // Delay line array must be aligned
+ +
78 }
+
79 }
+
80
+
81 if ((int)fir->coeffs & 0xf) { // Coefficients array must be aligned
+ +
83 }
+
84
+
85 // If the number of coefficients is not divisible by 8, a new delay line a new coefficients arrays are allocated
+
86 // the newly allocated arrays are divisible by 8. Coefficients are copied from the original fir structure to
+
87 // the new coeffs array and the remaining space is filled with zeroes
+
88 // dsps_fird_s16_free_coeffs_delay must be called to free the memory after the FIR function is finished
+
89 if (fir->coeffs_len % 8) { // Number of coefficients must be devisible by 8
+
90 int16_t zero_coeffs = (8 - (fir->coeffs_len % 8));
+
91 int16_t new_coeffs_len = fir->coeffs_len + zero_coeffs;
+
92 int16_t *aes3_delay_buff = (int16_t *)memalign(16, new_coeffs_len * sizeof(int16_t));
+
93 int16_t *aes3_coeffs_buff = (int16_t *)memalign(16, new_coeffs_len * sizeof(int16_t));
+
94
+
95 for (int i = 0; i < fir->coeffs_len; i++) { // copy fir->coeffs to aes3_coeffs_buff
+
96 aes3_coeffs_buff[i] = fir->coeffs[i];
+
97 }
+
98
+
99 for (int i = fir->coeffs_len; i < new_coeffs_len; i++) { // add zeroes to the end
+
100 aes3_coeffs_buff[i] = 0;
+
101 }
+
102
+
103 fir->delay = aes3_delay_buff;
+
104 fir->coeffs = aes3_coeffs_buff;
+
105 fir->coeffs_len = new_coeffs_len;
+
106 fir->free_status |= 0x0002;
+
107 }
+
108
+
109#endif // dsps_fird_s16_aes3_enabled
+
110#endif // CONFIG_DSP_OPTIMIZED
+
111
+
112 for (int i = 0; i < fir->coeffs_len; i++) { // Initialize the delay line to zero
+
113 fir->delay[i] = 0;
+
114 }
+
115
+
116 return ESP_OK;
+
117}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ROUNDING_VALUE
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int32_t * rounding_buff
Definition dsps_fir.h:62
+
int16_t d_pos
Definition dsps_fir.h:60
+
int16_t coeffs_len
Definition dsps_fir.h:57
+
int16_t free_status
Definition dsps_fir.h:64
+
+

References coeffs, fir_s16_s::coeffs, fir_s16_s::coeffs_len, fir_s16_s::d_pos, fir_s16_s::decim, delay, fir_s16_s::delay, ESP_ERR_DSP_ARRAY_NOT_ALIGNED, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, fir_s16_s::free_status, memalign, fir_s16_s::pos, fir_s16_s::rounding_buff, fir_s16_s::rounding_val, ROUNDING_VALUE, and fir_s16_s::shift.

+ +
+
+ +

◆ dsps_fird_s16_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_fird_s16_ae32 (fir_s16_t * fir,
const int16_t * input,
int16_t * output,
int32_t len )
+
+ +
+
+ +

◆ dsps_fird_s16_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_fird_s16_aes3 (fir_s16_t * fir,
const int16_t * input,
int16_t * output,
int32_t len )
+
+ +
+
+ +

◆ dsps_fird_s16_aexx_free()

+ +
+
+ + + + + + + +
esp_err_t dsps_fird_s16_aexx_free (fir_s16_t * fir)
+
+ +

support arrays freeing function

+

Function frees all the arrays, which were created during the initialization of the fir_s16_t structure

    +
  1. frees allocated memory for rounding buffer, for the purposes of esp32s3 ee.ld.accx.ip assembly instruction
  2. +
  3. frees allocated memory in case the delay line is NULL
  4. +
  5. frees allocated memory in case the length of the filter (and the delay line) is not divisible by 8 and new delay line and filter coefficients arrays are created for the purpose of the esp32s3 assembly
  6. +
+
Parameters
+ + +
firpointer to fir filter structure, that must be initialized before
+
+
+
Returns
    +
  • ESP_OK on success
  • +
+
+ +

Definition at line 119 of file dsps_fird_init_s16.c.

+
120{
+
121
+
122 if (fir->free_status == 0) {
+
123 return ESP_OK;
+
124 }
+
125
+
126 if (fir->free_status & 0x0003) {
+
127
+
128 if (fir->free_status & 0x0002) {
+
129 free(fir->coeffs);
+
130 }
+
131#if dsps_fird_s16_arp4_enabled
+
132 fir->delay = &fir->delay[-8];
+
133#endif
+
134 free(fir->delay);
+
135 }
+
136
+
137 if (fir->free_status & 0x0004) {
+
138 free(fir->rounding_buff);
+
139 }
+
140 fir->free_status = 0;
+
141
+
142 return ESP_OK;
+
143}
+
+

References fir_s16_s::coeffs, fir_s16_s::delay, ESP_OK, fir_s16_s::free_status, and fir_s16_s::rounding_buff.

+ +

Referenced by dsps_resampler_mr_free().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fird_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_fird_s16_ansi (fir_s16_t * fir,
const int16_t * input,
int16_t * output,
int32_t len )
+
+ +

16 bit signed fixed point Decimation FIR filter

+

Function implements FIR filter with decimation The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
inputinput array
outputarray with the result of the FIR filter
lenlength of the result array
+
+
+
Returns
: function returns the number of samples stored in the output array depends on the previous state value could be [0..len/decimation]
+ +

Definition at line 9 of file dsps_fird_s16_ansi.c.

+
10{
+
11 int32_t result = 0;
+
12 int32_t input_pos = 0;
+
13 long long rounding = 0;
+
14 const int32_t final_shift = fir->shift - 15;
+
15
+
16 rounding = (long long)(fir->rounding_val);
+
17
+
18 if (fir->shift >= 0) {
+
19 rounding = (rounding >> fir->shift) & 0xFFFFFFFFFF; // 40-bit mask
+
20 } else {
+
21 rounding = (rounding << (-fir->shift)) & 0xFFFFFFFFFF; // 40-bit mask
+
22 }
+
23
+
24 // len is already a length of the *output array, calculated as (length of the input array / decimation)
+
25 for (int i = 0; i < len; i++) {
+
26
+
27 for (int j = 0; j < fir->decim - fir->d_pos; j++) {
+
28
+
29 if (fir->pos >= fir->coeffs_len) {
+
30 fir->pos = 0;
+
31 }
+
32 fir->delay[fir->pos++] = input[input_pos++];
+
33 }
+
34 fir->d_pos = 0;
+
35
+
36 long long acc = rounding;
+
37 int16_t coeff_pos = fir->coeffs_len - 1;
+
38
+
39 for (int n = fir->pos; n < fir->coeffs_len ; n++) {
+
40 acc += (int32_t)fir->coeffs[coeff_pos--] * (int32_t)fir->delay[n];
+
41 }
+
42 for (int n = 0; n < fir->pos ; n++) {
+
43 acc += (int32_t)fir->coeffs[coeff_pos--] * (int32_t)fir->delay[n];
+
44 }
+
45
+
46 if (final_shift > 0) {
+
47 output[result++] = (int16_t)(acc << final_shift);
+
48 } else {
+
49 output[result++] = (int16_t)(acc >> (-final_shift));
+
50 }
+
51
+
52 }
+
53 return result;
+
54}
+
+

References fir_s16_s::coeffs, fir_s16_s::coeffs_len, fir_s16_s::d_pos, fir_s16_s::decim, fir_s16_s::delay, n, fir_s16_s::pos, fir_s16_s::rounding_val, and fir_s16_s::shift.

+ +
+
+ +

◆ dsps_fird_s16_arp4()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_fird_s16_arp4 (fir_s16_t * fir,
const int16_t * input,
int16_t * output,
int32_t len )
+
+ +

References coeffs, and delay.

+ +
+
+ +

◆ dsps_firmr_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int dsps_firmr_f32_ansi (fir_f32_t * fir,
const float * input,
float * output,
int input_len )
+
+ +

32 bit floating point multi-rate FIR filter

+

Function implements FIR filter with decimation The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
inputinput array
outputarray with the result of the FIR filter
input_lenlength of the input array
+
+
+
Returns
    +
  • amount of samples stored in the output array
  • +
  • depends on the previous state value
  • +
  • could be [0..len*intepr/decimation]
  • +
+
+ +

Definition at line 14 of file dsps_firmr_f32_ansi.c.

+
15{
+
16 int m = fir->start_pos;
+
17 int result = 0;
+
18
+
19 for (int i = 0; i < input_len; i++) {
+
20 fir->delay[fir->pos] = input[i];
+
21
+
22 for (m = fir->start_pos; m < fir->interp; m += fir->decim) {
+
23 float fir_sum = 0;
+
24 int coeff_pos = 0;
+
25 for (int n = fir->pos; n < fir->delay_size; n++) {
+
26 fir_sum += fir->delay[n] * fir->coeffs[coeff_pos++ * fir->interp + m];
+
27 }
+
28 for (int n = 0; n < fir->pos; n++) {
+
29 fir_sum += fir->delay[n] * fir->coeffs[coeff_pos++ * fir->interp + m];
+
30 }
+
31 output[result++] = fir_sum;
+
32 }
+
33 fir->start_pos = m - fir->interp;
+
34
+
35 fir->pos--;
+
36 if (fir->pos < 0) {
+
37 fir->pos = fir->delay_size - 1;
+
38 }
+
39 }
+
40 return result;
+
41}
+
int interp
Definition dsps_fir.h:42
+
int start_pos
Definition dsps_fir.h:44
+
int delay_size
Interpolation parameters.
Definition dsps_fir.h:41
+
const int m
Definition test_mmult.c:16
+
+

References fir_f32_s::coeffs, fir_f32_s::decim, fir_f32_s::delay, fir_f32_s::delay_size, fir_f32_s::interp, m, n, fir_f32_s::pos, and fir_f32_s::start_pos.

+ +
+
+ +

◆ dsps_firmr_init_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_firmr_init_f32 (fir_f32_t * fir,
float * coeffs,
float * delay,
int length,
int interp,
int decim,
int start_pos )
+
+ +

initialize structure for multi-rate FIR filter Function initialize structure for 32 bit floating point multi-rate FIR filter The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must be length N
lengthFIR filter length. Length of coeffs and delay arrays.
interpinterpolation factor.
decimdecimation factor.
start_posinitial value of decimation counter. Must be [0..decim)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 12 of file dsps_firmr_init_f32.c.

+
13{
+
14 fir->coeffs = coeffs;
+
15 fir->delay = delay;
+
16 fir->N = length;
+
17 fir->pos = 0;
+
18 fir->decim = decim;
+
19 fir->use_delay = 0;
+
20 fir->interp = interp;
+
21 fir->interp_pos = 0;
+
22 fir->start_pos = start_pos;
+
23 fir->delay_size = length / interp;
+
24
+
25 if (delay == NULL) {
+
26#ifdef CONFIG_IDF_TARGET_ESP32S3
+
27 fir->delay = (float *)memalign(16, (fir->delay_size + 4) * sizeof(float));
+
28#else
+
29 fir->delay = (float *)malloc((fir->delay_size + 4) * sizeof(float));
+
30#endif // CONFIG_IDF_TARGET_ESP32S3
+
31 fir->use_delay = 1;
+
32 } else {
+
33 fir->use_delay = 0;
+
34 }
+
35
+
36 if (decim == 0) {
+ +
38 }
+
39 if (interp == 0) {
+ +
41 }
+
42 if (length % interp != 0) {
+ +
44 }
+
45 if (start_pos < 0 || start_pos >= decim) {
+ +
47 }
+
48
+
49#ifdef CONFIG_IDF_TARGET_ESP32S3
+
50 // The delay array should be aligned to 16
+
51 if (((uint32_t)delay) & 0x0f) {
+ +
53 }
+
54#endif // CONFIG_IDF_TARGET_ESP32S3
+
55
+
56 for (int i = 0 ; i < fir->delay_size; i++) {
+
57 fir->delay[i] = 0;
+
58 }
+
59 return ESP_OK;
+
60}
+
#define ESP_ERR_DSP_INVALID_PARAM
+
int interp_pos
Definition dsps_fir.h:43
+
+

References coeffs, fir_f32_s::coeffs, fir_f32_s::decim, delay, fir_f32_s::delay, fir_f32_s::delay_size, ESP_ERR_DSP_ARRAY_NOT_ALIGNED, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_INVALID_PARAM, ESP_OK, fir_f32_s::interp, fir_f32_s::interp_pos, memalign, fir_f32_s::N, fir_f32_s::pos, fir_f32_s::start_pos, and fir_f32_s::use_delay.

+ +

Referenced by dsps_resampler_mr_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_firmr_init_s16()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_firmr_init_s16 (fir_s16_t * fir,
int16_t * coeffs,
int16_t * delay,
int16_t length,
int16_t interp,
int16_t decim,
int16_t start_pos,
int16_t shift )
+
+ +

initialize structure for multi-rate FIR filter Function initialize structure for 16 bit signed fixed point multi-rate FIR filter The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must be length N
lengthFIR filter length. Length of coeffs and delay arrays.
interpinterpolation factor.
decimdecimation factor.
start_posinitial value of decimation counter. Must be [0..decim)
shiftshift of accumulator value to store in the output array.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 15 of file dsps_firmr_init_s16.c.

+
16{
+
17 fir->coeffs = coeffs;
+
18 fir->delay = delay;
+
19
+
20
+
21 fir->coeffs_len = coeffs_len;
+
22 fir->pos = 0;
+
23 fir->decim = decim;
+
24 fir->d_pos = start_pos;
+
25 fir->shift = shift;
+
26 fir->rounding_val = (int16_t)(ROUNDING_VALUE);
+
27 fir->free_status = 0;
+
28
+
29 if (delay == NULL) {
+
30#ifdef CONFIG_IDF_TARGET_ESP32S3
+
31 fir->delay = (int16_t *)memalign(16, (fir->delay_size + 4) * sizeof(int16_t));
+
32#else
+
33 fir->delay = (int16_t *)malloc((fir->delay_size + 4) * sizeof(int16_t));
+
34#endif // CONFIG_IDF_TARGET_ESP32S3
+
35 fir->free_status = 1;
+
36 } else {
+
37 fir->free_status = 0;
+
38 }
+
39
+
40
+
41 fir->interp = interp;
+
42 fir->interp_pos = 0;
+
43 fir->start_pos = start_pos;
+
44 fir->delay_size = coeffs_len / interp;
+
45
+
46
+
47 if (fir->coeffs_len < 2) { // number of coeffcients must be higer than 1
+ +
49 }
+
50
+
51 if ((fir->shift > 40) || (fir->shift < -40)) { // shift amount must be within a range from -40 to 40
+ +
53 }
+
54
+
55 if (fir->d_pos >= fir->decim) { // start position must be lower than decimation
+ +
57 }
+
58
+
59 for (int i = 0; i < fir->delay_size; i++) { // Initialize the delay line to zero
+
60 fir->delay[i] = 0;
+
61 }
+
62
+
63 return ESP_OK;
+
64}
+
int16_t delay_size
Interpolation parameters.
Definition dsps_fir.h:71
+
int16_t start_pos
Definition dsps_fir.h:74
+
int16_t interp_pos
Definition dsps_fir.h:73
+
int16_t interp
Definition dsps_fir.h:72
+
+

References coeffs, fir_s16_s::coeffs, fir_s16_s::coeffs_len, fir_s16_s::d_pos, fir_s16_s::decim, delay, fir_s16_s::delay, fir_s16_s::delay_size, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, fir_s16_s::free_status, fir_s16_s::interp, fir_s16_s::interp_pos, memalign, fir_s16_s::pos, fir_s16_s::rounding_val, ROUNDING_VALUE, fir_s16_s::shift, and fir_s16_s::start_pos.

+ +

Referenced by dsps_resampler_mr_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_firmr_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_firmr_s16_ansi (fir_s16_t * fir,
const int16_t * input,
int16_t * output,
int32_t input_len )
+
+ +

16 bit signed fixed point multi-rate FIR filter

+

Function implements FIR filter with decimation The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
inputinput array
outputarray with the result of the FIR filter
input_lenlength of the intput array
+
+
+
Returns
: function returns the number of samples stored in the output array depends on the previous state value could be [0..len*intepr/decimation]
+ +

Definition at line 11 of file dsps_firmr_s16_ansi.c.

+
12{
+
13 int32_t result = 0;
+
14 long long rounding = 0;
+
15 const int32_t final_shift = fir->shift - 15;
+
16 rounding = (long long)(fir->rounding_val);
+
17
+
18 if (fir->shift >= 0) {
+
19 rounding = (rounding >> fir->shift) & 0xFFFFFFFFFF; // 40-bit mask
+
20 } else {
+
21 rounding = (rounding << (-fir->shift)) & 0xFFFFFFFFFF; // 40-bit mask
+
22 }
+
23
+
24 int32_t m = fir->start_pos;
+
25
+
26 for (int i = 0; i < input_len; i++) {
+
27 fir->delay[fir->pos] = input[i];
+
28
+
29 for (m = fir->start_pos; m < fir->interp; m += fir->decim) {
+
30 long long acc = rounding;
+
31 int coeff_pos = 0;
+
32 for (int n = fir->pos; n < fir->delay_size; n++) {
+
33 acc += (int32_t)fir->delay[n] * (int32_t)fir->coeffs[coeff_pos++ * fir->interp + m];
+
34 }
+
35 for (int n = 0; n < fir->pos; n++) {
+
36 acc += (int32_t)fir->delay[n] * (int32_t)fir->coeffs[coeff_pos++ * fir->interp + m];
+
37 }
+
38
+
39 if (final_shift > 0) {
+
40 output[result++] = (int16_t)(acc << final_shift);
+
41 } else {
+
42 output[result++] = (int16_t)(acc >> (-final_shift));
+
43 }
+
44 }
+
45 fir->start_pos = m - fir->interp;
+
46
+
47 fir->pos--;
+
48 if (fir->pos < 0) {
+
49 fir->pos = fir->delay_size - 1;
+
50 }
+
51 }
+
52
+
53 return result;
+
54}
+
+

References fir_s16_s::coeffs, fir_s16_s::decim, fir_s16_s::delay, fir_s16_s::delay_size, fir_s16_s::interp, m, n, fir_s16_s::pos, fir_s16_s::rounding_val, fir_s16_s::shift, and fir_s16_s::start_pos.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fir_8h.js b/docs/html/dsps__fir_8h.js new file mode 100644 index 0000000..938a640 --- /dev/null +++ b/docs/html/dsps__fir_8h.js @@ -0,0 +1,33 @@ +var dsps__fir_8h = +[ + [ "fir_f32_s", "structfir__f32__s.html", "structfir__f32__s" ], + [ "fir_s16_s", "structfir__s16__s.html", "structfir__s16__s" ], + [ "dsps_fir_f32", "dsps__fir_8h.html#af76926d14276fcad7173ab92faaf31c6", null ], + [ "dsps_fird_f32", "dsps__fir_8h.html#ac71925ff2792cd5d9cabb6f5493f2828", null ], + [ "dsps_fird_s16", "dsps__fir_8h.html#a84172c781cf84fe3c4e3a379ed3744f2", null ], + [ "dsps_firmr_f32", "dsps__fir_8h.html#a0a9d64db214efe64397cc7077518a40f", null ], + [ "dsps_firmr_s16", "dsps__fir_8h.html#a4588c58bc4ea0c0be60fe49cf0add32e", null ], + [ "fir_f32_t", "dsps__fir_8h.html#a174eafcf5f2165347f48761236c0cebe", null ], + [ "fir_s16_t", "dsps__fir_8h.html#abc365b63d42b00286f66081381b4be46", null ], + [ "dsps_16_array_rev", "dsps__fir_8h.html#a67277a219b870e480d4dc5a3d1279965", null ], + [ "dsps_fir_f32_ae32", "dsps__fir_8h.html#ac51a22e96ecc6a7e952d8a1fff8dd52b", null ], + [ "dsps_fir_f32_aes3", "dsps__fir_8h.html#a71dc969f246fb37edd99db16594abb12", null ], + [ "dsps_fir_f32_ansi", "dsps__fir_8h.html#af9d6bccaa81247c566357101e4bf630a", null ], + [ "dsps_fir_f32_free", "dsps__fir_8h.html#a1d2fbb6e7c5079a7f270c155704dd416", null ], + [ "dsps_fir_init_f32", "dsps__fir_8h.html#a7bf6d9920c546527191bb76ef2ab082b", null ], + [ "dsps_fird_f32_ae32", "dsps__fir_8h.html#ac20d0c243fda3f24ce2f961653f1863d", null ], + [ "dsps_fird_f32_aes3", "dsps__fir_8h.html#a05ef131e490ffec53d6e4ec58a78469b", null ], + [ "dsps_fird_f32_ansi", "dsps__fir_8h.html#a0d4248655fac67183706930dbd9a4968", null ], + [ "dsps_fird_f32_arp4", "dsps__fir_8h.html#a5b50c807f0ed0c2abf922c3a702f7f05", null ], + [ "dsps_fird_init_f32", "dsps__fir_8h.html#a5fb7854af58cff06fdad601ac203a6f7", null ], + [ "dsps_fird_init_s16", "dsps__fir_8h.html#ad96ee132d7373b8657d9568aa66dd427", null ], + [ "dsps_fird_s16_ae32", "dsps__fir_8h.html#a45585b223db11648c90ca5b0401cbb9c", null ], + [ "dsps_fird_s16_aes3", "dsps__fir_8h.html#a3f69f2ab54be4ae18e1c5197a932bb3b", null ], + [ "dsps_fird_s16_aexx_free", "dsps__fir_8h.html#a47fbc09e1c5dcbb2b76156bafbb1c8b0", null ], + [ "dsps_fird_s16_ansi", "dsps__fir_8h.html#a407a6d0d259060643fbae839248ea140", null ], + [ "dsps_fird_s16_arp4", "dsps__fir_8h.html#ae454d9edd98184a0bf3551a6a63176ae", null ], + [ "dsps_firmr_f32_ansi", "dsps__fir_8h.html#ad05ffc2f23c4c7b6c9df03144d19e4c4", null ], + [ "dsps_firmr_init_f32", "dsps__fir_8h.html#ad9e91d33731b90cebf3d0465bd7991d4", null ], + [ "dsps_firmr_init_s16", "dsps__fir_8h.html#a861fd251c751f45b9cfa9fa7a3fd820a", null ], + [ "dsps_firmr_s16_ansi", "dsps__fir_8h.html#ab47071e3da826d2f3c97ea08b3b7767e", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fir_8h__dep__incl.md5 b/docs/html/dsps__fir_8h__dep__incl.md5 new file mode 100644 index 0000000..9e4373e --- /dev/null +++ b/docs/html/dsps__fir_8h__dep__incl.md5 @@ -0,0 +1 @@ +5487a845c42b2265244b38cc6affcb96 \ No newline at end of file diff --git a/docs/html/dsps__fir_8h__dep__incl.svg b/docs/html/dsps__fir_8h__dep__incl.svg new file mode 100644 index 0000000..30c7368 --- /dev/null +++ b/docs/html/dsps__fir_8h__dep__incl.svg @@ -0,0 +1,860 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fir.h + + +Node1 + + +dsps_fir.h + + + + + +Node2 + + +dsps_fir_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fir_init_f32.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fird_f32_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fird_init_f32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_fird_init_s16.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_fird_s16_ansi.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_firmr_f32_ansi.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_firmr_init_f32.c + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dsps_firmr_init_s16.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsps_firmr_s16_ansi.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_resampler.h + + + + + +Node1->Node12 + + + + + + + + +Node15 + + +esp_dsp.h + + + + + +Node1->Node15 + + + + + + + + +Node44 + + +test_fir.c + + + + + +Node1->Node44 + + + + + + + + +Node13 + + +dsps_resampler_mr.c + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dsps_resampler_ph.c + + + + + +Node12->Node14 + + + + + + + + +Node12->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +3d_graphics_demo.cpp + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +3d_graphics_demo.cpp + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +3d_graphics_demo.cpp + + + + + +Node15->Node21 + + + + + + + + +Node22 + + +3d_kalman_demo.cpp + + + + + +Node15->Node22 + + + + + + + + +Node23 + + +3d_kalman_demo.cpp + + + + + +Node15->Node23 + + + + + + + + +Node24 + + +audio_amp_main.c + + + + + +Node15->Node24 + + + + + + + + +Node25 + + +audio_amp_main.c + + + + + +Node15->Node25 + + + + + + + + +Node26 + + +audio_amp_main.c + + + + + +Node15->Node26 + + + + + + + + +Node27 + + +dsp_tests.h + + + + + +Node15->Node27 + + + + + + + + +Node29 + + +graphics_support.h + + + + + +Node15->Node29 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node15->Node31 + + + + + + + + +Node33 + + +graphics_support.h + + + + + +Node15->Node33 + + + + + + + + +Node35 + + +init_display.c + + + + + +Node15->Node35 + + + + + + + + +Node36 + + +init_display.c + + + + + +Node15->Node36 + + + + + + + + +Node37 + + +kalman_filter_demo.cpp + + + + + +Node15->Node37 + + + + + + + + +Node38 + + +kalman_filter_demo.cpp + + + + + +Node15->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node15->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node15->Node40 + + + + + + + + +Node41 + + +main.c + + + + + +Node15->Node41 + + + + + + + + +Node42 + + +main.c + + + + + +Node15->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node15->Node43 + + + + + + + + +Node27->Node6 + + + + + + + + +Node27->Node8 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node10 + + + + + + + + +Node27->Node11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir_8h__dep__incl_org.svg b/docs/html/dsps__fir_8h__dep__incl_org.svg new file mode 100644 index 0000000..092b451 --- /dev/null +++ b/docs/html/dsps__fir_8h__dep__incl_org.svg @@ -0,0 +1,777 @@ + + + + + + +dsps_fir.h + + +Node1 + + +dsps_fir.h + + + + + +Node2 + + +dsps_fir_f32_ansi.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fir_init_f32.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fird_f32_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fird_init_f32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_fird_init_s16.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_fird_s16_ansi.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_firmr_f32_ansi.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_firmr_init_f32.c + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dsps_firmr_init_s16.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +dsps_firmr_s16_ansi.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +dsps_resampler.h + + + + + +Node1->Node12 + + + + + + + + +Node15 + + +esp_dsp.h + + + + + +Node1->Node15 + + + + + + + + +Node44 + + +test_fir.c + + + + + +Node1->Node44 + + + + + + + + +Node13 + + +dsps_resampler_mr.c + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dsps_resampler_ph.c + + + + + +Node12->Node14 + + + + + + + + +Node12->Node15 + + + + + + + + +Node16 + + +3d_graphics_demo.cpp + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +3d_graphics_demo.cpp + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +3d_graphics_demo.cpp + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +3d_graphics_demo.cpp + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +3d_graphics_demo.cpp + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +3d_graphics_demo.cpp + + + + + +Node15->Node21 + + + + + + + + +Node22 + + +3d_kalman_demo.cpp + + + + + +Node15->Node22 + + + + + + + + +Node23 + + +3d_kalman_demo.cpp + + + + + +Node15->Node23 + + + + + + + + +Node24 + + +audio_amp_main.c + + + + + +Node15->Node24 + + + + + + + + +Node25 + + +audio_amp_main.c + + + + + +Node15->Node25 + + + + + + + + +Node26 + + +audio_amp_main.c + + + + + +Node15->Node26 + + + + + + + + +Node27 + + +dsp_tests.h + + + + + +Node15->Node27 + + + + + + + + +Node29 + + +graphics_support.h + + + + + +Node15->Node29 + + + + + + + + +Node31 + + +graphics_support.h + + + + + +Node15->Node31 + + + + + + + + +Node33 + + +graphics_support.h + + + + + +Node15->Node33 + + + + + + + + +Node35 + + +init_display.c + + + + + +Node15->Node35 + + + + + + + + +Node36 + + +init_display.c + + + + + +Node15->Node36 + + + + + + + + +Node37 + + +kalman_filter_demo.cpp + + + + + +Node15->Node37 + + + + + + + + +Node38 + + +kalman_filter_demo.cpp + + + + + +Node15->Node38 + + + + + + + + +Node39 + + +kalman_filter_demo.cpp + + + + + +Node15->Node39 + + + + + + + + +Node40 + + +kalman_filter_demo.cpp + + + + + +Node15->Node40 + + + + + + + + +Node41 + + +main.c + + + + + +Node15->Node41 + + + + + + + + +Node42 + + +main.c + + + + + +Node15->Node42 + + + + + + + + +Node43 + + +main.c + + + + + +Node15->Node43 + + + + + + + + +Node27->Node6 + + + + + + + + +Node27->Node8 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node10 + + + + + + + + +Node27->Node11 + + + + + + + + diff --git a/docs/html/dsps__fir_8h__incl.md5 b/docs/html/dsps__fir_8h__incl.md5 new file mode 100644 index 0000000..aecfc31 --- /dev/null +++ b/docs/html/dsps__fir_8h__incl.md5 @@ -0,0 +1 @@ +c83f5bee46912bee7840be4a5ac22020 \ No newline at end of file diff --git a/docs/html/dsps__fir_8h__incl.svg b/docs/html/dsps__fir_8h__incl.svg new file mode 100644 index 0000000..3e81fcb --- /dev/null +++ b/docs/html/dsps__fir_8h__incl.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + +dsps_fir.h + + +Node1 + + +dsps_fir.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_fir_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +dsp_common.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + +Node9->Node2 + + + + + + + + +Node9->Node3 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +esp_idf_version.h + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +x86intrin.h + + + + + +Node9->Node12 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir_8h__incl_org.svg b/docs/html/dsps__fir_8h__incl_org.svg new file mode 100644 index 0000000..ed9a56b --- /dev/null +++ b/docs/html/dsps__fir_8h__incl_org.svg @@ -0,0 +1,237 @@ + + + + + + +dsps_fir.h + + +Node1 + + +dsps_fir.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_fir_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +dsp_common.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + +Node9->Node2 + + + + + + + + +Node9->Node3 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +esp_idf_version.h + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +x86intrin.h + + + + + +Node9->Node12 + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.md5 b/docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.md5 new file mode 100644 index 0000000..7452177 --- /dev/null +++ b/docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.md5 @@ -0,0 +1 @@ +3103b0bca59c9b185abc931407935eef \ No newline at end of file diff --git a/docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.svg b/docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.svg new file mode 100644 index 0000000..d0d5c37 --- /dev/null +++ b/docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fir_f32_free + + +Node1 + + +dsps_fir_f32_free + + + + + +Node2 + + +dsps_resampler_mr_free + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph_org.svg b/docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph_org.svg new file mode 100644 index 0000000..48d538a --- /dev/null +++ b/docs/html/dsps__fir_8h_a1d2fbb6e7c5079a7f270c155704dd416_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fir_f32_free + + +Node1 + + +dsps_fir_f32_free + + + + + +Node2 + + +dsps_resampler_mr_free + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 b/docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 new file mode 100644 index 0000000..4a40231 --- /dev/null +++ b/docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 @@ -0,0 +1 @@ +9e8d72af92c1af9d5eacbf20132161bc \ No newline at end of file diff --git a/docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg b/docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg new file mode 100644 index 0000000..4793b12 --- /dev/null +++ b/docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fird_s16_aexx_free + + +Node1 + + +dsps_fird_s16_aexx_free + + + + + +Node2 + + +dsps_resampler_mr_free + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg b/docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg new file mode 100644 index 0000000..5050868 --- /dev/null +++ b/docs/html/dsps__fir_8h_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fird_s16_aexx_free + + +Node1 + + +dsps_fird_s16_aexx_free + + + + + +Node2 + + +dsps_resampler_mr_free + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph.md5 b/docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph.md5 new file mode 100644 index 0000000..647904f --- /dev/null +++ b/docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph.md5 @@ -0,0 +1 @@ +a9f04344949df2b9ff26f1cd782d9e9a \ No newline at end of file diff --git a/docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph.svg b/docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph.svg new file mode 100644 index 0000000..922cd76 --- /dev/null +++ b/docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_fir_f32_aes3 + + +Node1 + + +dsps_fir_f32_aes3 + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph_org.svg b/docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph_org.svg new file mode 100644 index 0000000..915808c --- /dev/null +++ b/docs/html/dsps__fir_8h_a71dc969f246fb37edd99db16594abb12_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_fir_f32_aes3 + + +Node1 + + +dsps_fir_f32_aes3 + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph.md5 b/docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph.md5 new file mode 100644 index 0000000..0ef0fa2 --- /dev/null +++ b/docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph.md5 @@ -0,0 +1 @@ +058f3a0c52d569cf14edf9e9944985ed \ No newline at end of file diff --git a/docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph.svg b/docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph.svg new file mode 100644 index 0000000..c8151cf --- /dev/null +++ b/docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_fir_init_f32 + + +Node1 + + +dsps_fir_init_f32 + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph_org.svg b/docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph_org.svg new file mode 100644 index 0000000..0d12766 --- /dev/null +++ b/docs/html/dsps__fir_8h_a7bf6d9920c546527191bb76ef2ab082b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_fir_init_f32 + + +Node1 + + +dsps_fir_init_f32 + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph.md5 b/docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph.md5 new file mode 100644 index 0000000..dfa36a8 --- /dev/null +++ b/docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph.md5 @@ -0,0 +1 @@ +90f06b82a677e38ed391ebfa8a448e8d \ No newline at end of file diff --git a/docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph.svg b/docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph.svg new file mode 100644 index 0000000..60e94e3 --- /dev/null +++ b/docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_firmr_init_s16 + + +Node1 + + +dsps_firmr_init_s16 + + + + + +Node2 + + +dsps_resampler_mr_init + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph_org.svg b/docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph_org.svg new file mode 100644 index 0000000..890eea6 --- /dev/null +++ b/docs/html/dsps__fir_8h_a861fd251c751f45b9cfa9fa7a3fd820a_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_firmr_init_s16 + + +Node1 + + +dsps_firmr_init_s16 + + + + + +Node2 + + +dsps_resampler_mr_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.md5 b/docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.md5 new file mode 100644 index 0000000..4c595cd --- /dev/null +++ b/docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.md5 @@ -0,0 +1 @@ +e3ef6fc3110d4370a6bc14b3354e84e5 \ No newline at end of file diff --git a/docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.svg b/docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.svg new file mode 100644 index 0000000..437cbff --- /dev/null +++ b/docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_firmr_init_f32 + + +Node1 + + +dsps_firmr_init_f32 + + + + + +Node2 + + +dsps_resampler_mr_init + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph_org.svg b/docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph_org.svg new file mode 100644 index 0000000..c65f03b --- /dev/null +++ b/docs/html/dsps__fir_8h_ad9e91d33731b90cebf3d0465bd7991d4_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_firmr_init_f32 + + +Node1 + + +dsps_firmr_init_f32 + + + + + +Node2 + + +dsps_resampler_mr_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph.md5 b/docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph.md5 new file mode 100644 index 0000000..fd8c156 --- /dev/null +++ b/docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph.md5 @@ -0,0 +1 @@ +ded6f079ef056ffd933686ca26319c28 \ No newline at end of file diff --git a/docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph.svg b/docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph.svg new file mode 100644 index 0000000..91aa3b5 --- /dev/null +++ b/docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_fir_f32_ansi + + +Node1 + + +dsps_fir_f32_ansi + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph_org.svg b/docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph_org.svg new file mode 100644 index 0000000..fd7a587 --- /dev/null +++ b/docs/html/dsps__fir_8h_af9d6bccaa81247c566357101e4bf630a_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_fir_f32_ansi + + +Node1 + + +dsps_fir_f32_ansi + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fir_8h_source.html b/docs/html/dsps__fir_8h_source.html new file mode 100644 index 0000000..7c322bb --- /dev/null +++ b/docs/html/dsps__fir_8h_source.html @@ -0,0 +1,311 @@ + + + + + + + +ESP-IDF Firmware: dsps_fir.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fir.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2018-2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7
+
8#ifndef _dsps_fir_H_
+
9#define _dsps_fir_H_
+
10
+
11
+
12#include "dsp_err.h"
+
13
+
14#include "dsps_fir_platform.h"
+
15#include "dsp_common.h"
+
16
+
17#ifdef __cplusplus
+
18extern "C"
+
19{
+
20#endif
+
21
+
+
29typedef struct fir_f32_s {
+
30 float *coeffs;
+
31 float *delay;
+
32 int N;
+
33 int pos;
+
34 int decim;
+
35 int16_t use_delay;
+ +
42 int interp;
+ + + +
+
46
+
+
54typedef struct fir_s16_s {
+
55 int16_t *coeffs;
+
56 int16_t *delay;
+
57 int16_t coeffs_len;
+
58 int16_t pos;
+
59 int16_t decim;
+
60 int16_t d_pos;
+
61 int16_t shift;
+
62 int32_t *rounding_buff;
+
63 int32_t rounding_val;
+
64 int16_t free_status;
+
65
+
71 int16_t delay_size;
+
72 int16_t interp;
+
73 int16_t interp_pos;
+
74 int16_t start_pos;
+ +
+
76
+
92esp_err_t dsps_fir_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int coeffs_len);
+
93
+
109esp_err_t dsps_fird_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N, int decim);
+
110
+
128esp_err_t dsps_fird_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift);
+
129
+
130
+
148esp_err_t dsps_fir_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len);
+
149esp_err_t dsps_fir_f32_ae32(fir_f32_t *fir, const float *input, float *output, int len);
+
150esp_err_t dsps_fir_f32_aes3(fir_f32_t *fir, const float *input, float *output, int len);
+
152
+
169int dsps_fird_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len);
+
170int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int len);
+
171int dsps_fird_f32_aes3(fir_f32_t *fir, const float *input, float *output, int len);
+
172int dsps_fird_f32_arp4(fir_f32_t *fir, const float *input, float *output, int len);
+
174
+
191int32_t dsps_fird_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len);
+
192int32_t dsps_fird_s16_ae32(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len);
+
193int32_t dsps_fird_s16_aes3(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len);
+
194int32_t dsps_fird_s16_arp4(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len);
+
196
+
215esp_err_t dsps_firmr_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int length, int interp, int decim, int start_pos );
+
217
+
237esp_err_t dsps_firmr_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t length, int16_t interp, int16_t decim, int16_t start_pos, int16_t shift);
+
239
+
259int dsps_firmr_f32_ansi(fir_f32_t *fir, const float *input, float *output, int input_len);
+
261
+
278int32_t dsps_firmr_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t input_len);
+
280
+
281
+ +
299
+
300
+ +
314
+
315
+
329esp_err_t dsps_16_array_rev(int16_t *arr, int16_t len);
+
331
+
332#ifdef __cplusplus
+
333}
+
334#endif
+
335
+
336
+
337#if CONFIG_DSP_OPTIMIZED
+
338
+
339#if (dsps_fir_f32_ae32_enabled == 1)
+
340#define dsps_fir_f32 dsps_fir_f32_ae32
+
341#elif (dsps_fir_f32_aes3_enabled == 1)
+
342#define dsps_fir_f32 dsps_fir_f32_aes3
+
343#else
+
344#define dsps_fir_f32 dsps_fir_f32_ansi
+
345#endif
+
346
+
347#if (dsps_fird_f32_aes3_enabled == 1)
+
348#define dsps_fird_f32 dsps_fird_f32_aes3
+
349#define dsps_firmr_f32 dsps_firmr_f32_ansi
+
350#elif (dsps_fird_f32_ae32_enabled == 1)
+
351#define dsps_fird_f32 dsps_fird_f32_ae32
+
352#define dsps_firmr_f32 dsps_firmr_f32_ansi
+
353#elif (dsps_fird_f32_arp4_enabled == 1)
+
354#define dsps_fird_f32 dsps_fird_f32_arp4
+
355#define dsps_firmr_f32 dsps_firmr_f32_ansi
+
356#else
+
357#define dsps_fird_f32 dsps_fird_f32_ansi
+
358#define dsps_firmr_f32 dsps_firmr_f32_ansi
+
359#endif
+
360
+
361
+
362#if (dsps_fird_s16_ae32_enabled == 1)
+
363#define dsps_fird_s16 dsps_fird_s16_ae32
+
364#define dsps_firmr_s16 dsps_firmr_s16_ansi
+
365#elif (dsps_fird_s16_aes3_enabled == 1)
+
366#define dsps_fird_s16 dsps_fird_s16_aes3
+
367#define dsps_firmr_s16 dsps_firmr_s16_ansi
+
368#elif (dsps_fird_s16_arp4_enabled == 1)
+
369#define dsps_fird_s16 dsps_fird_s16_arp4
+
370#define dsps_firmr_s16 dsps_firmr_s16_ansi
+
371#else
+
372#define dsps_fird_s16 dsps_fird_s16_ansi
+
373#define dsps_firmr_s16 dsps_firmr_s16_ansi
+
374#endif
+
375
+
376#else // CONFIG_DSP_OPTIMIZED
+
377
+
378#define dsps_fir_f32 dsps_fir_f32_ansi
+
379#define dsps_fird_f32 dsps_fird_f32_ansi
+
380#define dsps_firmr_f32 dsps_firmr_f32_ansi
+
381#define dsps_fird_s16 dsps_fird_s16_ansi
+
382#define dsps_firmr_s16 dsps_firmr_s16_ansi
+
383
+
384#endif // CONFIG_DSP_OPTIMIZED
+
385
+
386#endif // _dsps_fir_H_
+ + +
int dsps_fird_f32_aes3(fir_f32_t *fir, const float *input, float *output, int len)
+
int dsps_fird_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len)
32 bit floating point Decimation FIR filter
+
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
esp_err_t dsps_fir_f32_free(fir_f32_t *fir)
support arrays freeing function
+
int32_t dsps_fird_s16_aes3(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
+
int32_t dsps_fird_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
16 bit signed fixed point Decimation FIR filter
+
int32_t dsps_fird_s16_ae32(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
+
esp_err_t dsps_fird_s16_aexx_free(fir_s16_t *fir)
support arrays freeing function
+
int dsps_fird_f32_arp4(fir_f32_t *fir, const float *input, float *output, int len)
+
esp_err_t dsps_fird_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N, int decim)
initialize structure for 32 bit Decimation FIR filter Function initialize structure for 32 bit floati...
+
esp_err_t dsps_16_array_rev(int16_t *arr, int16_t len)
Array reversal.
+
esp_err_t dsps_fir_f32_aes3(fir_f32_t *fir, const float *input, float *output, int len)
+
esp_err_t dsps_fir_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int coeffs_len)
initialize structure for 32 bit FIR filter
+
esp_err_t dsps_firmr_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t length, int16_t interp, int16_t decim, int16_t start_pos, int16_t shift)
initialize structure for multi-rate FIR filter Function initialize structure for 16 bit signed fixed ...
+
int32_t dsps_firmr_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t input_len)
16 bit signed fixed point multi-rate FIR filter
+
struct fir_s16_s fir_s16_t
Data struct of s16 fir filter.
+
int dsps_fird_f32_ae32(fir_f32_t *fir, const float *input, float *output, int len)
+
esp_err_t dsps_fir_f32_ae32(fir_f32_t *fir, const float *input, float *output, int len)
+
int dsps_firmr_f32_ansi(fir_f32_t *fir, const float *input, float *output, int input_len)
32 bit floating point multi-rate FIR filter
+
esp_err_t dsps_fird_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift)
initialize structure for 16 bit Decimation FIR filter Function initialize structure for 16 bit signed...
+
esp_err_t dsps_firmr_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int length, int interp, int decim, int start_pos)
initialize structure for multi-rate FIR filter Function initialize structure for 32 bit floating poin...
+
int32_t dsps_fird_s16_arp4(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
+
esp_err_t dsps_fir_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len)
32 bit floating point FIR filter
+ +
int esp_err_t
Definition esp_err.h:21
+
Data struct of f32 fir filter.
Definition dsps_fir.h:29
+
int interp
Definition dsps_fir.h:42
+
int interp_pos
Definition dsps_fir.h:43
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+
int start_pos
Definition dsps_fir.h:44
+ +
int16_t use_delay
Definition dsps_fir.h:35
+
int delay_size
Interpolation parameters.
Definition dsps_fir.h:41
+
int decim
Definition dsps_fir.h:34
+
Data struct of s16 fir filter.
Definition dsps_fir.h:54
+
int16_t delay_size
Interpolation parameters.
Definition dsps_fir.h:71
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int16_t start_pos
Definition dsps_fir.h:74
+
int16_t interp_pos
Definition dsps_fir.h:73
+
int32_t * rounding_buff
Definition dsps_fir.h:62
+
int16_t interp
Definition dsps_fir.h:72
+
int16_t d_pos
Definition dsps_fir.h:60
+
int16_t coeffs_len
Definition dsps_fir.h:57
+
int16_t free_status
Definition dsps_fir.h:64
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
#define N
Definition test_mmult.c:13
+
+
+
+ + + + diff --git a/docs/html/dsps__fir__f32__ansi_8c.html b/docs/html/dsps__fir__f32__ansi_8c.html new file mode 100644 index 0000000..cae479f --- /dev/null +++ b/docs/html/dsps__fir__f32__ansi_8c.html @@ -0,0 +1,213 @@ + + + + + + + +ESP-IDF Firmware: dsps_fir_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fir_f32_ansi.c File Reference
+
+
+
#include "dsps_fir.h"
+
+Include dependency graph for dsps_fir_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_fir_f32_ansi (fir_f32_t *fir, const float *input, float *output, int len)
 32 bit floating point FIR filter
+

Function Documentation

+ +

◆ dsps_fir_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fir_f32_ansi (fir_f32_t * fir,
const float * input,
float * output,
int len )
+
+ +

32 bit floating point FIR filter

+

Function implements FIR filter The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
[in]inputinput array
[out]outputarray with the result of FIR filter
[in]lenlength of input and result arrays
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_fir_f32_ansi.c.

+
18{
+
19 for (int i = 0 ; i < len ; i++) {
+
20 float acc = 0;
+
21 int coeff_pos = 0;
+
22 fir->delay[fir->pos] = input[i];
+
23 fir->pos++;
+
24 if (fir->pos >= fir->N) {
+
25 fir->pos = 0;
+
26 }
+
27 for (int n = fir->pos; n < fir->N ; n++) {
+
28 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
29 }
+
30 for (int n = 0; n < fir->pos ; n++) {
+
31 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
32 }
+
33 output[i] = acc;
+
34 }
+
35 return ESP_OK;
+
36}
+
#define ESP_OK
Definition esp_err.h:23
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+ +
#define N
Definition test_mmult.c:13
+
const int n
Definition test_mmult.c:17
+
+

References fir_f32_s::coeffs, fir_f32_s::delay, ESP_OK, fir_f32_s::N, N, n, and fir_f32_s::pos.

+ +

Referenced by test_fir().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fir__f32__ansi_8c.js b/docs/html/dsps__fir__f32__ansi_8c.js new file mode 100644 index 0000000..b7455f5 --- /dev/null +++ b/docs/html/dsps__fir__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__fir__f32__ansi_8c = +[ + [ "dsps_fir_f32_ansi", "dsps__fir__f32__ansi_8c.html#af9d6bccaa81247c566357101e4bf630a", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fir__f32__ansi_8c__incl.md5 b/docs/html/dsps__fir__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..edd01a9 --- /dev/null +++ b/docs/html/dsps__fir__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +5ec26a45558e76ef40e9103b6b3dabcd \ No newline at end of file diff --git a/docs/html/dsps__fir__f32__ansi_8c__incl.svg b/docs/html/dsps__fir__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..dcfe7a7 --- /dev/null +++ b/docs/html/dsps__fir__f32__ansi_8c__incl.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + +dsps_fir_f32_ansi.c + + +Node1 + + +dsps_fir_f32_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir__f32__ansi_8c__incl_org.svg b/docs/html/dsps__fir__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..9c55c91 --- /dev/null +++ b/docs/html/dsps__fir__f32__ansi_8c__incl_org.svg @@ -0,0 +1,237 @@ + + + + + + +dsps_fir_f32_ansi.c + + +Node1 + + +dsps_fir_f32_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + diff --git a/docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph.md5 b/docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph.md5 new file mode 100644 index 0000000..fd8c156 --- /dev/null +++ b/docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph.md5 @@ -0,0 +1 @@ +ded6f079ef056ffd933686ca26319c28 \ No newline at end of file diff --git a/docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph.svg b/docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph.svg new file mode 100644 index 0000000..91aa3b5 --- /dev/null +++ b/docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_fir_f32_ansi + + +Node1 + + +dsps_fir_f32_ansi + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph_org.svg b/docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph_org.svg new file mode 100644 index 0000000..fd7a587 --- /dev/null +++ b/docs/html/dsps__fir__f32__ansi_8c_af9d6bccaa81247c566357101e4bf630a_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_fir_f32_ansi + + +Node1 + + +dsps_fir_f32_ansi + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fir__f32__ansi_8c_source.html b/docs/html/dsps__fir__f32__ansi_8c_source.html new file mode 100644 index 0000000..1b910b3 --- /dev/null +++ b/docs/html/dsps__fir__f32__ansi_8c_source.html @@ -0,0 +1,155 @@ + + + + + + + +ESP-IDF Firmware: dsps_fir_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fir_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_fir.h"
+
16
+
+
17esp_err_t dsps_fir_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len)
+
18{
+
19 for (int i = 0 ; i < len ; i++) {
+
20 float acc = 0;
+
21 int coeff_pos = 0;
+
22 fir->delay[fir->pos] = input[i];
+
23 fir->pos++;
+
24 if (fir->pos >= fir->N) {
+
25 fir->pos = 0;
+
26 }
+
27 for (int n = fir->pos; n < fir->N ; n++) {
+
28 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
29 }
+
30 for (int n = 0; n < fir->pos ; n++) {
+
31 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
32 }
+
33 output[i] = acc;
+
34 }
+
35 return ESP_OK;
+
36}
+
+ +
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
esp_err_t dsps_fir_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len)
32 bit floating point FIR filter
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+ +
#define N
Definition test_mmult.c:13
+
const int n
Definition test_mmult.c:17
+
+
+
+ + + + diff --git a/docs/html/dsps__fir__init__f32_8c.html b/docs/html/dsps__fir__init__f32_8c.html new file mode 100644 index 0000000..2605571 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c.html @@ -0,0 +1,288 @@ + + + + + + + +ESP-IDF Firmware: dsps_fir_init_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fir_init_f32.c File Reference
+
+
+
#include "dsps_fir.h"
+#include "malloc.h"
+
+Include dependency graph for dsps_fir_init_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Functions

esp_err_t dsps_fir_init_f32 (fir_f32_t *fir, float *coeffs, float *delay, int coeffs_len)
 initialize structure for 32 bit FIR filter
esp_err_t dsps_fir_f32_free (fir_f32_t *fir)
 support arrays freeing function
+

Function Documentation

+ +

◆ dsps_fir_f32_free()

+ +
+
+ + + + + + + +
esp_err_t dsps_fir_f32_free (fir_f32_t * fir)
+
+ +

support arrays freeing function

+

Function frees the delay line arrays, if it was allocated by the init functions.

+
Parameters
+ + +
firpointer to fir filter structure, that must be initialized before
+
+
+
Returns
    +
  • ESP_OK on success
  • +
+
+ +

Definition at line 60 of file dsps_fir_init_f32.c.

+
61{
+
62 if (fir->use_delay != 0) {
+
63 fir->use_delay = 0;
+
64 free(fir->delay);
+
65 }
+
66 return ESP_OK;
+
67}
+
#define ESP_OK
Definition esp_err.h:23
+
float * delay
Definition dsps_fir.h:31
+
int16_t use_delay
Definition dsps_fir.h:35
+
+

References fir_f32_s::delay, ESP_OK, and fir_f32_s::use_delay.

+ +

Referenced by dsps_resampler_mr_free().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_fir_init_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fir_init_f32 (fir_f32_t * fir,
float * coeffs,
float * delay,
int coeffs_len )
+
+ +

initialize structure for 32 bit FIR filter

+

Function initialize structure for 32 bit floating point FIR filter The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must have a length = coeffs_len + 4
coeffs_lenFIR filter length. Length of coeffs array. For esp32s3 length should be divided by 4 and aligned to 16.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 19 of file dsps_fir_init_f32.c.

+
20{
+
21 // Allocate delay line in case if it's NULL
+
22 if (delay == NULL) {
+
23#ifdef CONFIG_IDF_TARGET_ESP32S3
+
24 delay = (float *)memalign(16, (coeffs_len + 4) * sizeof(float));
+
25#else
+
26 delay = (float *)malloc((coeffs_len + 4) * sizeof(float));
+
27#endif // CONFIG_IDF_TARGET_ESP32S3
+
28 fir->use_delay = 1;
+
29 } else {
+
30 fir->use_delay = 0;
+
31 }
+
32 for (int i = 0; i < (coeffs_len + 4); i++) {
+
33 delay[i] = 0;
+
34 }
+
35 fir->coeffs = coeffs;
+
36 fir->delay = delay;
+
37 fir->N = coeffs_len;
+
38 fir->pos = 0;
+
39
+
40#ifdef CONFIG_IDF_TARGET_ESP32S3
+
41 if (fir->N % 4 != 0) {
+ +
43 }
+
44 // The coeffs array should be aligned to 16
+
45 if (((uint32_t)coeffs) & 0x0f) {
+ +
47 }
+
48 // The delay array should be aligned to 16
+
49 if (((uint32_t)delay) & 0x0f) {
+ +
51 }
+
52#endif // CONFIG_IDF_TARGET_ESP32S3
+
53
+
54 for (int i = 0 ; i < coeffs_len; i++) {
+
55 fir->delay[i] = 0;
+
56 }
+
57 return ESP_OK;
+
58}
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+ +
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
+

References coeffs, fir_f32_s::coeffs, delay, fir_f32_s::delay, ESP_ERR_DSP_ARRAY_NOT_ALIGNED, ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, memalign, fir_f32_s::N, fir_f32_s::pos, and fir_f32_s::use_delay.

+ +

Referenced by test_fir().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fir__init__f32_8c.js b/docs/html/dsps__fir__init__f32_8c.js new file mode 100644 index 0000000..50f8996 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c.js @@ -0,0 +1,5 @@ +var dsps__fir__init__f32_8c = +[ + [ "dsps_fir_f32_free", "dsps__fir__init__f32_8c.html#a1d2fbb6e7c5079a7f270c155704dd416", null ], + [ "dsps_fir_init_f32", "dsps__fir__init__f32_8c.html#a7bf6d9920c546527191bb76ef2ab082b", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fir__init__f32_8c__incl.md5 b/docs/html/dsps__fir__init__f32_8c__incl.md5 new file mode 100644 index 0000000..ad6c830 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c__incl.md5 @@ -0,0 +1 @@ +dc3cd119c17f6c6d0172a2aa9fc9d1d9 \ No newline at end of file diff --git a/docs/html/dsps__fir__init__f32_8c__incl.svg b/docs/html/dsps__fir__init__f32_8c__incl.svg new file mode 100644 index 0000000..19934e1 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c__incl.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + +dsps_fir_init_f32.c + + +Node1 + + +dsps_fir_init_f32.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir__init__f32_8c__incl_org.svg b/docs/html/dsps__fir__init__f32_8c__incl_org.svg new file mode 100644 index 0000000..3718790 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c__incl_org.svg @@ -0,0 +1,255 @@ + + + + + + +dsps_fir_init_f32.c + + +Node1 + + +dsps_fir_init_f32.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + diff --git a/docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.md5 b/docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.md5 new file mode 100644 index 0000000..7452177 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.md5 @@ -0,0 +1 @@ +3103b0bca59c9b185abc931407935eef \ No newline at end of file diff --git a/docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.svg b/docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.svg new file mode 100644 index 0000000..d0d5c37 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fir_f32_free + + +Node1 + + +dsps_fir_f32_free + + + + + +Node2 + + +dsps_resampler_mr_free + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph_org.svg b/docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph_org.svg new file mode 100644 index 0000000..48d538a --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c_a1d2fbb6e7c5079a7f270c155704dd416_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fir_f32_free + + +Node1 + + +dsps_fir_f32_free + + + + + +Node2 + + +dsps_resampler_mr_free + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph.md5 b/docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph.md5 new file mode 100644 index 0000000..0ef0fa2 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph.md5 @@ -0,0 +1 @@ +058f3a0c52d569cf14edf9e9944985ed \ No newline at end of file diff --git a/docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph.svg b/docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph.svg new file mode 100644 index 0000000..c8151cf --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_fir_init_f32 + + +Node1 + + +dsps_fir_init_f32 + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph_org.svg b/docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph_org.svg new file mode 100644 index 0000000..0d12766 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c_a7bf6d9920c546527191bb76ef2ab082b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_fir_init_f32 + + +Node1 + + +dsps_fir_init_f32 + + + + + +Node2 + + +test_fir + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__fir__init__f32_8c_source.html b/docs/html/dsps__fir__init__f32_8c_source.html new file mode 100644 index 0000000..3860df1 --- /dev/null +++ b/docs/html/dsps__fir__init__f32_8c_source.html @@ -0,0 +1,193 @@ + + + + + + + +ESP-IDF Firmware: dsps_fir_init_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fir_init_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_fir.h"
+
16#include "malloc.h"
+
17
+
18
+
+
19esp_err_t dsps_fir_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int coeffs_len)
+
20{
+
21 // Allocate delay line in case if it's NULL
+
22 if (delay == NULL) {
+
23#ifdef CONFIG_IDF_TARGET_ESP32S3
+
24 delay = (float *)memalign(16, (coeffs_len + 4) * sizeof(float));
+
25#else
+
26 delay = (float *)malloc((coeffs_len + 4) * sizeof(float));
+
27#endif // CONFIG_IDF_TARGET_ESP32S3
+
28 fir->use_delay = 1;
+
29 } else {
+
30 fir->use_delay = 0;
+
31 }
+
32 for (int i = 0; i < (coeffs_len + 4); i++) {
+
33 delay[i] = 0;
+
34 }
+
35 fir->coeffs = coeffs;
+
36 fir->delay = delay;
+
37 fir->N = coeffs_len;
+
38 fir->pos = 0;
+
39
+
40#ifdef CONFIG_IDF_TARGET_ESP32S3
+
41 if (fir->N % 4 != 0) {
+ +
43 }
+
44 // The coeffs array should be aligned to 16
+
45 if (((uint32_t)coeffs) & 0x0f) {
+ +
47 }
+
48 // The delay array should be aligned to 16
+
49 if (((uint32_t)delay) & 0x0f) {
+ +
51 }
+
52#endif // CONFIG_IDF_TARGET_ESP32S3
+
53
+
54 for (int i = 0 ; i < coeffs_len; i++) {
+
55 fir->delay[i] = 0;
+
56 }
+
57 return ESP_OK;
+
58}
+
+
59
+
+ +
61{
+
62 if (fir->use_delay != 0) {
+
63 fir->use_delay = 0;
+
64 free(fir->delay);
+
65 }
+
66 return ESP_OK;
+
67}
+
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+ +
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
esp_err_t dsps_fir_f32_free(fir_f32_t *fir)
support arrays freeing function
+
esp_err_t dsps_fir_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int coeffs_len)
initialize structure for 32 bit FIR filter
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+ +
int16_t use_delay
Definition dsps_fir.h:35
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
+
+
+ + + + diff --git a/docs/html/dsps__fir__platform_8h.html b/docs/html/dsps__fir__platform_8h.html new file mode 100644 index 0000000..fcb0b84 --- /dev/null +++ b/docs/html/dsps__fir__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_fir_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fir_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_fir_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__fir__platform_8h__dep__incl.md5 b/docs/html/dsps__fir__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..2801d51 --- /dev/null +++ b/docs/html/dsps__fir__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +e494c5ff88ccfba1471c7adb1fa38ad8 \ No newline at end of file diff --git a/docs/html/dsps__fir__platform_8h__dep__incl.svg b/docs/html/dsps__fir__platform_8h__dep__incl.svg new file mode 100644 index 0000000..d7842db --- /dev/null +++ b/docs/html/dsps__fir__platform_8h__dep__incl.svg @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fir_platform.h + + +Node1 + + +dsps_fir_platform.h + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fir_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_fir_init_f32.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_fird_f32_ansi.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_fird_init_f32.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_fird_init_s16.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dsps_fird_s16_ansi.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_firmr_f32_ansi.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_firmr_init_f32.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dsps_firmr_init_s16.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dsps_firmr_s16_ansi.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +dsps_resampler.h + + + + + +Node2->Node13 + + + + + + + + +Node16 + + +esp_dsp.h + + + + + +Node2->Node16 + + + + + + + + +Node45 + + +test_fir.c + + + + + +Node2->Node45 + + + + + + + + +Node14 + + +dsps_resampler_mr.c + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dsps_resampler_ph.c + + + + + +Node13->Node15 + + + + + + + + +Node13->Node16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir__platform_8h__dep__incl_org.svg b/docs/html/dsps__fir__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..f88d966 --- /dev/null +++ b/docs/html/dsps__fir__platform_8h__dep__incl_org.svg @@ -0,0 +1,318 @@ + + + + + + +dsps_fir_platform.h + + +Node1 + + +dsps_fir_platform.h + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fir_f32_ansi.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsps_fir_init_f32.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsps_fird_f32_ansi.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_fird_init_f32.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +dsps_fird_init_s16.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +dsps_fird_s16_ansi.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_firmr_f32_ansi.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_firmr_init_f32.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +dsps_firmr_init_s16.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +dsps_firmr_s16_ansi.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +dsps_resampler.h + + + + + +Node2->Node13 + + + + + + + + +Node16 + + +esp_dsp.h + + + + + +Node2->Node16 + + + + + + + + +Node45 + + +test_fir.c + + + + + +Node2->Node45 + + + + + + + + +Node14 + + +dsps_resampler_mr.c + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dsps_resampler_ph.c + + + + + +Node13->Node15 + + + + + + + + +Node13->Node16 + + + + + + + + diff --git a/docs/html/dsps__fir__platform_8h__incl.md5 b/docs/html/dsps__fir__platform_8h__incl.md5 new file mode 100644 index 0000000..51734f3 --- /dev/null +++ b/docs/html/dsps__fir__platform_8h__incl.md5 @@ -0,0 +1 @@ +2d37cae85cc09a9a8cd53dae994b0ddf \ No newline at end of file diff --git a/docs/html/dsps__fir__platform_8h__incl.svg b/docs/html/dsps__fir__platform_8h__incl.svg new file mode 100644 index 0000000..a4f1dab --- /dev/null +++ b/docs/html/dsps__fir__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fir_platform.h + + +Node1 + + +dsps_fir_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fir__platform_8h__incl_org.svg b/docs/html/dsps__fir__platform_8h__incl_org.svg new file mode 100644 index 0000000..8bf3841 --- /dev/null +++ b/docs/html/dsps__fir__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fir_platform.h + + +Node1 + + +dsps_fir_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fir__platform_8h_source.html b/docs/html/dsps__fir__platform_8h_source.html new file mode 100644 index 0000000..34d73e1 --- /dev/null +++ b/docs/html/dsps__fir__platform_8h_source.html @@ -0,0 +1,146 @@ + + + + + + + +ESP-IDF Firmware: dsps_fir_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fir_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_fir_platform_H_
+
2#define _dsps_fir_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#if CONFIG_IDF_TARGET_ESP32S3
+
14#define dsps_fird_f32_aes3_enabled 1
+
15#define dsps_fird_f32_ae32_enabled 1
+
16#define dsps_fird_s16_aes3_enabled 1
+
17#define dsps_fird_s16_ae32_enabled 0
+
18#define dsps_fir_f32_aes3_enabled 1
+
19#define dsps_fir_f32_ae32_enabled 0
+
20#else
+
21#define dsps_fird_f32_ae32_enabled 1
+
22#define dsps_fird_s16_aes3_enabled 0
+
23#define dsps_fird_s16_ae32_enabled 1
+
24#define dsps_fir_f32_aes3_enabled 0
+
25#define dsps_fir_f32_ae32_enabled 1
+
26#endif
+
27
+
28#endif //
+
29#endif // __XTENSA__
+
30
+
31#ifdef CONFIG_IDF_TARGET_ESP32P4
+
32#ifdef CONFIG_DSP_OPTIMIZED
+
33#define dsps_fird_f32_arp4_enabled 1
+
34#define dsps_fird_s16_arp4_enabled 1
+
35#else
+
36#define dsps_fird_f32_arp4_enabled 0
+
37#define dsps_fird_s16_arp4_enabled 0
+
38#endif // CONFIG_DSP_OPTIMIZED
+
39#endif
+
40#endif // _dsps_fir_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__fird__f32__ansi_8c.html b/docs/html/dsps__fird__f32__ansi_8c.html new file mode 100644 index 0000000..f71cbaf --- /dev/null +++ b/docs/html/dsps__fird__f32__ansi_8c.html @@ -0,0 +1,205 @@ + + + + + + + +ESP-IDF Firmware: dsps_fird_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fird_f32_ansi.c File Reference
+
+
+
#include "dsps_fir.h"
+
+Include dependency graph for dsps_fird_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

int dsps_fird_f32_ansi (fir_f32_t *fir, const float *input, float *output, int len)
 32 bit floating point Decimation FIR filter
+

Function Documentation

+ +

◆ dsps_fird_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int dsps_fird_f32_ansi (fir_f32_t * fir,
const float * input,
float * output,
int len )
+
+ +

32 bit floating point Decimation FIR filter

+

Function implements FIR filter with decimation The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
inputinput array
outputarray with the result of FIR filter
lenlength of result array
+
+
+
Returns
: function returns the number of samples stored in the output array depends on the previous state value could be [0..len/decimation]
+ +

Definition at line 17 of file dsps_fird_f32_ansi.c.

+
18{
+
19 int result = 0;
+
20 for (int i = 0; i < len ; i++) {
+
21 for (int k = 0 ; k < fir->decim ; k++) {
+
22 fir->delay[fir->pos++] = *input++;
+
23 if (fir->pos >= fir->N) {
+
24 fir->pos = 0;
+
25 }
+
26 }
+
27 float acc = 0;
+
28 int coeff_pos = 0;
+
29 for (int n = fir->pos; n < fir->N ; n++) {
+
30 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
31 }
+
32 for (int n = 0; n < fir->pos ; n++) {
+
33 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
34 }
+
35 output[result++] = acc;
+
36 }
+
37 return result;
+
38}
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+ +
int decim
Definition dsps_fir.h:34
+
#define N
Definition test_mmult.c:13
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+

References fir_f32_s::coeffs, fir_f32_s::decim, fir_f32_s::delay, k, fir_f32_s::N, N, n, and fir_f32_s::pos.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fird__f32__ansi_8c.js b/docs/html/dsps__fird__f32__ansi_8c.js new file mode 100644 index 0000000..6178caa --- /dev/null +++ b/docs/html/dsps__fird__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__fird__f32__ansi_8c = +[ + [ "dsps_fird_f32_ansi", "dsps__fird__f32__ansi_8c.html#a0d4248655fac67183706930dbd9a4968", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fird__f32__ansi_8c__incl.md5 b/docs/html/dsps__fird__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..bdec958 --- /dev/null +++ b/docs/html/dsps__fird__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +1c15ee591c507968538ba29cf8e27dc7 \ No newline at end of file diff --git a/docs/html/dsps__fird__f32__ansi_8c__incl.svg b/docs/html/dsps__fird__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..ec6d1d7 --- /dev/null +++ b/docs/html/dsps__fird__f32__ansi_8c__incl.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + +dsps_fird_f32_ansi.c + + +Node1 + + +dsps_fird_f32_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fird__f32__ansi_8c__incl_org.svg b/docs/html/dsps__fird__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..8b4906f --- /dev/null +++ b/docs/html/dsps__fird__f32__ansi_8c__incl_org.svg @@ -0,0 +1,237 @@ + + + + + + +dsps_fird_f32_ansi.c + + +Node1 + + +dsps_fird_f32_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + diff --git a/docs/html/dsps__fird__f32__ansi_8c_source.html b/docs/html/dsps__fird__f32__ansi_8c_source.html new file mode 100644 index 0000000..f89b708 --- /dev/null +++ b/docs/html/dsps__fird__f32__ansi_8c_source.html @@ -0,0 +1,157 @@ + + + + + + + +ESP-IDF Firmware: dsps_fird_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fird_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_fir.h"
+
16
+
+
17int dsps_fird_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len)
+
18{
+
19 int result = 0;
+
20 for (int i = 0; i < len ; i++) {
+
21 for (int k = 0 ; k < fir->decim ; k++) {
+
22 fir->delay[fir->pos++] = *input++;
+
23 if (fir->pos >= fir->N) {
+
24 fir->pos = 0;
+
25 }
+
26 }
+
27 float acc = 0;
+
28 int coeff_pos = 0;
+
29 for (int n = fir->pos; n < fir->N ; n++) {
+
30 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
31 }
+
32 for (int n = 0; n < fir->pos ; n++) {
+
33 acc += fir->coeffs[coeff_pos++] * fir->delay[n];
+
34 }
+
35 output[result++] = acc;
+
36 }
+
37 return result;
+
38}
+
+ +
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
int dsps_fird_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len)
32 bit floating point Decimation FIR filter
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+ +
int decim
Definition dsps_fir.h:34
+
#define N
Definition test_mmult.c:13
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/dsps__fird__init__f32_8c.html b/docs/html/dsps__fird__init__f32_8c.html new file mode 100644 index 0000000..23c6050 --- /dev/null +++ b/docs/html/dsps__fird__init__f32_8c.html @@ -0,0 +1,224 @@ + + + + + + + +ESP-IDF Firmware: dsps_fird_init_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fird_init_f32.c File Reference
+
+
+
#include "dsps_fir.h"
+
+Include dependency graph for dsps_fird_init_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_fird_init_f32 (fir_f32_t *fir, float *coeffs, float *delay, int N, int decim)
 initialize structure for 32 bit Decimation FIR filter Function initialize structure for 32 bit floating point FIR filter with decimation The implementation use ANSI C and could be compiled and run on any platform
+

Function Documentation

+ +

◆ dsps_fird_init_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fird_init_f32 (fir_f32_t * fir,
float * coeffs,
float * delay,
int N,
int decim )
+
+ +

initialize structure for 32 bit Decimation FIR filter Function initialize structure for 32 bit floating point FIR filter with decimation The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must be length N
NFIR filter length. Length of coeffs and delay arrays.
decimdecimation factor.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 18 of file dsps_fird_init_f32.c.

+
19{
+
20 fir->coeffs = coeffs;
+
21 fir->delay = delay;
+
22 fir->N = N;
+
23 fir->pos = 0;
+
24 fir->decim = decim;
+
25
+
26#ifdef CONFIG_IDF_TARGET_ESP32S3
+
27 // The amount of coefficients should be divided to 4,
+
28 // if not, add zero coefficients to round length to 0
+
29 if (fir->N % 4 != 0) {
+ +
31 }
+
32 // The coeffs array should be aligned to 16
+
33 if (((uint32_t)coeffs) & 0x0f) {
+ +
35 }
+
36 // The delay array should be aligned to 16
+
37 if (((uint32_t)delay) & 0x0f) {
+ +
39 }
+
40#endif // CONFIG_IDF_TARGET_ESP32S3
+
41
+
42 for (int i = 0 ; i < N; i++) {
+
43 fir->delay[i] = 0;
+
44 }
+
45 return ESP_OK;
+
46}
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED
+
#define ESP_OK
Definition esp_err.h:23
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+ +
int decim
Definition dsps_fir.h:34
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
#define N
Definition test_mmult.c:13
+
+

References coeffs, fir_f32_s::coeffs, fir_f32_s::decim, delay, fir_f32_s::delay, ESP_ERR_DSP_ARRAY_NOT_ALIGNED, ESP_ERR_DSP_INVALID_LENGTH, ESP_OK, fir_f32_s::N, N, and fir_f32_s::pos.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fird__init__f32_8c.js b/docs/html/dsps__fird__init__f32_8c.js new file mode 100644 index 0000000..5aa76f0 --- /dev/null +++ b/docs/html/dsps__fird__init__f32_8c.js @@ -0,0 +1,4 @@ +var dsps__fird__init__f32_8c = +[ + [ "dsps_fird_init_f32", "dsps__fird__init__f32_8c.html#a5fb7854af58cff06fdad601ac203a6f7", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fird__init__f32_8c__incl.md5 b/docs/html/dsps__fird__init__f32_8c__incl.md5 new file mode 100644 index 0000000..fb305be --- /dev/null +++ b/docs/html/dsps__fird__init__f32_8c__incl.md5 @@ -0,0 +1 @@ +f0adf144501a12cd404418afbae2bb0a \ No newline at end of file diff --git a/docs/html/dsps__fird__init__f32_8c__incl.svg b/docs/html/dsps__fird__init__f32_8c__incl.svg new file mode 100644 index 0000000..844d7f5 --- /dev/null +++ b/docs/html/dsps__fird__init__f32_8c__incl.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + +dsps_fird_init_f32.c + + +Node1 + + +dsps_fird_init_f32.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fird__init__f32_8c__incl_org.svg b/docs/html/dsps__fird__init__f32_8c__incl_org.svg new file mode 100644 index 0000000..3280b8e --- /dev/null +++ b/docs/html/dsps__fird__init__f32_8c__incl_org.svg @@ -0,0 +1,237 @@ + + + + + + +dsps_fird_init_f32.c + + +Node1 + + +dsps_fird_init_f32.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + diff --git a/docs/html/dsps__fird__init__f32_8c_source.html b/docs/html/dsps__fird__init__f32_8c_source.html new file mode 100644 index 0000000..e1f3ff0 --- /dev/null +++ b/docs/html/dsps__fird__init__f32_8c_source.html @@ -0,0 +1,169 @@ + + + + + + + +ESP-IDF Firmware: dsps_fird_init_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fird_init_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_fir.h"
+
16
+
17
+
+
18esp_err_t dsps_fird_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N, int decim)
+
19{
+
20 fir->coeffs = coeffs;
+
21 fir->delay = delay;
+
22 fir->N = N;
+
23 fir->pos = 0;
+
24 fir->decim = decim;
+
25
+
26#ifdef CONFIG_IDF_TARGET_ESP32S3
+
27 // The amount of coefficients should be divided to 4,
+
28 // if not, add zero coefficients to round length to 0
+
29 if (fir->N % 4 != 0) {
+ +
31 }
+
32 // The coeffs array should be aligned to 16
+
33 if (((uint32_t)coeffs) & 0x0f) {
+ +
35 }
+
36 // The delay array should be aligned to 16
+
37 if (((uint32_t)delay) & 0x0f) {
+ +
39 }
+
40#endif // CONFIG_IDF_TARGET_ESP32S3
+
41
+
42 for (int i = 0 ; i < N; i++) {
+
43 fir->delay[i] = 0;
+
44 }
+
45 return ESP_OK;
+
46}
+
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED
+ +
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
esp_err_t dsps_fird_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int N, int decim)
initialize structure for 32 bit Decimation FIR filter Function initialize structure for 32 bit floati...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+ +
int decim
Definition dsps_fir.h:34
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
#define N
Definition test_mmult.c:13
+
+
+
+ + + + diff --git a/docs/html/dsps__fird__init__s16_8c.html b/docs/html/dsps__fird__init__s16_8c.html new file mode 100644 index 0000000..8ce85e9 --- /dev/null +++ b/docs/html/dsps__fird__init__s16_8c.html @@ -0,0 +1,467 @@ + + + + + + + +ESP-IDF Firmware: dsps_fird_init_s16.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fird_init_s16.c File Reference
+
+
+
#include "dsps_fir.h"
+#include "malloc.h"
+#include <string.h>
+#include "dsp_tests.h"
+
+Include dependency graph for dsps_fird_init_s16.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define ROUNDING_VALUE   0x7fff
+ + + + + + + +

+Functions

esp_err_t dsps_fird_init_s16 (fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift)
 initialize structure for 16 bit Decimation FIR filter Function initialize structure for 16 bit signed fixed point FIR filter with decimation The implementation use ANSI C and could be compiled and run on any platform
esp_err_t dsps_fird_s16_aexx_free (fir_s16_t *fir)
 support arrays freeing function
esp_err_t dsps_16_array_rev (int16_t *arr, int16_t len)
 Array reversal.
+

Macro Definition Documentation

+ +

◆ ROUNDING_VALUE

+ +
+
+ + + + +
#define ROUNDING_VALUE   0x7fff
+
+ +

Definition at line 12 of file dsps_fird_init_s16.c.

+ +

Referenced by dsps_fird_init_s16(), and dsps_firmr_init_s16().

+ +
+
+

Function Documentation

+ +

◆ dsps_16_array_rev()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_16_array_rev (int16_t * arr,
int16_t len )
+
+ +

Array reversal.

+

Function reverses 16-bit long array members for the purpose of the dsps_fird_s16_aes3 implementation The function has to be called either during the fir struct initialization or every time the coefficients change

+
Parameters
+ + + +
arrpointer to the array to be reversed
lenlength of the array to be reversed
+
+
+
Returns
    +
  • ESP_OK on success
  • +
+
+ +

Definition at line 146 of file dsps_fird_init_s16.c.

+
147{
+
148
+
149 int16_t temp;
+
150
+
151 for (int i = 0; i < (int)(len / 2); i++) {
+
152 temp = arr[i];
+
153 arr[i] = arr[len - 1 - i];
+
154 arr[len - 1 - i] = temp;
+
155 }
+
156 return ESP_OK;
+
157}
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK.

+ +
+
+ +

◆ dsps_fird_init_s16()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_fird_init_s16 (fir_s16_t * fir,
int16_t * coeffs,
int16_t * delay,
int16_t coeffs_len,
int16_t decim,
int16_t start_pos,
int16_t shift )
+
+ +

initialize structure for 16 bit Decimation FIR filter Function initialize structure for 16 bit signed fixed point FIR filter with decimation The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must be length N
coeffs_lenFIR filter length. Length of coeffs and delay arrays.
decimdecimation factor.
start_posinitial value of decimation counter. Must be [0..d)
shiftshift position of the result
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 14 of file dsps_fird_init_s16.c.

+
15{
+
16 fir->coeffs = coeffs;
+
17 fir->delay = delay;
+
18 fir->coeffs_len = coeffs_len;
+
19 fir->pos = 0;
+
20 fir->decim = decim;
+
21 fir->d_pos = start_pos;
+
22 fir->shift = shift;
+
23 fir->rounding_val = (int16_t)(ROUNDING_VALUE);
+
24 fir->free_status = 0;
+
25
+
26 if (fir->coeffs_len < 2) { // number of coeffcients must be higer than 1
+ +
28 }
+
29
+
30 if ((fir->shift > 40) || (fir->shift < -40)) { // shift amount must be within a range from -40 to 40
+ +
32 }
+
33
+
34 if (fir->d_pos >= fir->decim) { // start position must be lower than decimation
+ +
36 }
+
37
+
38#if CONFIG_DSP_OPTIMIZED
+
39
+
40 // Rounding value buffer primary for a purpose of ee.ld.accx.ip, but used for both the esp32 and esp32s3
+
41 // dsps_fird_s16_aexx_free() must be called to free the memory after the FIR function is finished
+
42 int32_t *aexx_rounding_buff = (int32_t *)memalign(16, 2 * sizeof(int32_t));
+
43
+
44 long long rounding = (long long)(fir->rounding_val);
+
45
+
46 if (fir->shift >= 0) {
+
47 rounding = (rounding >> fir->shift);
+
48 } else {
+
49 rounding = (rounding << (-fir->shift));
+
50 }
+
51#if dsps_fird_s16_arp4_enabled
+
52 fir->pos = start_pos;
+
53
+
54 int16_t *new_delay_buff = (int16_t *)memalign(16, (coeffs_len + 8 * 2) * sizeof(int16_t));
+
55 for (int i = 0 ; i < (coeffs_len + 8 * 2) ; i++) {
+
56 new_delay_buff[i] = 0;
+
57 }
+
58 fir->delay = &new_delay_buff[8];
+
59 fir->free_status |= 0x0001;
+
60
+
61#endif // dsps_fird_s16_arp4_enabled
+
62
+
63
+
64 aexx_rounding_buff[0] = (int32_t)(rounding); // 32 lower bits (acclo) type reassignment to 32-bit
+
65 aexx_rounding_buff[1] = (int32_t)((rounding >> 32) & 0xFF); // 8 higher bits (acchi) shift by 32 and apply the mask
+
66 fir->rounding_buff = aexx_rounding_buff;
+
67 fir->free_status |= 0x0004;
+
68
+
69#if dsps_fird_s16_aes3_enabled
+
70
+
71 if (fir->delay == NULL) { // New delay buffer is allocated if the current delay line is NULL
+
72 int16_t *new_delay_buff = (int16_t *)memalign(16, coeffs_len * sizeof(int16_t));
+
73 fir->delay = new_delay_buff;
+
74 fir->free_status |= 0x0001;
+
75 } else {
+
76 if ((int)fir->delay & 0xf) { // Delay line array must be aligned
+ +
78 }
+
79 }
+
80
+
81 if ((int)fir->coeffs & 0xf) { // Coefficients array must be aligned
+ +
83 }
+
84
+
85 // If the number of coefficients is not divisible by 8, a new delay line a new coefficients arrays are allocated
+
86 // the newly allocated arrays are divisible by 8. Coefficients are copied from the original fir structure to
+
87 // the new coeffs array and the remaining space is filled with zeroes
+
88 // dsps_fird_s16_free_coeffs_delay must be called to free the memory after the FIR function is finished
+
89 if (fir->coeffs_len % 8) { // Number of coefficients must be devisible by 8
+
90 int16_t zero_coeffs = (8 - (fir->coeffs_len % 8));
+
91 int16_t new_coeffs_len = fir->coeffs_len + zero_coeffs;
+
92 int16_t *aes3_delay_buff = (int16_t *)memalign(16, new_coeffs_len * sizeof(int16_t));
+
93 int16_t *aes3_coeffs_buff = (int16_t *)memalign(16, new_coeffs_len * sizeof(int16_t));
+
94
+
95 for (int i = 0; i < fir->coeffs_len; i++) { // copy fir->coeffs to aes3_coeffs_buff
+
96 aes3_coeffs_buff[i] = fir->coeffs[i];
+
97 }
+
98
+
99 for (int i = fir->coeffs_len; i < new_coeffs_len; i++) { // add zeroes to the end
+
100 aes3_coeffs_buff[i] = 0;
+
101 }
+
102
+
103 fir->delay = aes3_delay_buff;
+
104 fir->coeffs = aes3_coeffs_buff;
+
105 fir->coeffs_len = new_coeffs_len;
+
106 fir->free_status |= 0x0002;
+
107 }
+
108
+
109#endif // dsps_fird_s16_aes3_enabled
+
110#endif // CONFIG_DSP_OPTIMIZED
+
111
+
112 for (int i = 0; i < fir->coeffs_len; i++) { // Initialize the delay line to zero
+
113 fir->delay[i] = 0;
+
114 }
+
115
+
116 return ESP_OK;
+
117}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define ROUNDING_VALUE
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int32_t * rounding_buff
Definition dsps_fir.h:62
+
int16_t d_pos
Definition dsps_fir.h:60
+
int16_t coeffs_len
Definition dsps_fir.h:57
+
int16_t free_status
Definition dsps_fir.h:64
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
+

References coeffs, fir_s16_s::coeffs, fir_s16_s::coeffs_len, fir_s16_s::d_pos, fir_s16_s::decim, delay, fir_s16_s::delay, ESP_ERR_DSP_ARRAY_NOT_ALIGNED, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, fir_s16_s::free_status, memalign, fir_s16_s::pos, fir_s16_s::rounding_buff, fir_s16_s::rounding_val, ROUNDING_VALUE, and fir_s16_s::shift.

+ +
+
+ +

◆ dsps_fird_s16_aexx_free()

+ +
+
+ + + + + + + +
esp_err_t dsps_fird_s16_aexx_free (fir_s16_t * fir)
+
+ +

support arrays freeing function

+

Function frees all the arrays, which were created during the initialization of the fir_s16_t structure

    +
  1. frees allocated memory for rounding buffer, for the purposes of esp32s3 ee.ld.accx.ip assembly instruction
  2. +
  3. frees allocated memory in case the delay line is NULL
  4. +
  5. frees allocated memory in case the length of the filter (and the delay line) is not divisible by 8 and new delay line and filter coefficients arrays are created for the purpose of the esp32s3 assembly
  6. +
+
Parameters
+ + +
firpointer to fir filter structure, that must be initialized before
+
+
+
Returns
    +
  • ESP_OK on success
  • +
+
+ +

Definition at line 119 of file dsps_fird_init_s16.c.

+
120{
+
121
+
122 if (fir->free_status == 0) {
+
123 return ESP_OK;
+
124 }
+
125
+
126 if (fir->free_status & 0x0003) {
+
127
+
128 if (fir->free_status & 0x0002) {
+
129 free(fir->coeffs);
+
130 }
+
131#if dsps_fird_s16_arp4_enabled
+
132 fir->delay = &fir->delay[-8];
+
133#endif
+
134 free(fir->delay);
+
135 }
+
136
+
137 if (fir->free_status & 0x0004) {
+
138 free(fir->rounding_buff);
+
139 }
+
140 fir->free_status = 0;
+
141
+
142 return ESP_OK;
+
143}
+
+

References fir_s16_s::coeffs, fir_s16_s::delay, ESP_OK, fir_s16_s::free_status, and fir_s16_s::rounding_buff.

+ +

Referenced by dsps_resampler_mr_free().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fird__init__s16_8c.js b/docs/html/dsps__fird__init__s16_8c.js new file mode 100644 index 0000000..9ff1449 --- /dev/null +++ b/docs/html/dsps__fird__init__s16_8c.js @@ -0,0 +1,7 @@ +var dsps__fird__init__s16_8c = +[ + [ "ROUNDING_VALUE", "dsps__fird__init__s16_8c.html#aa019351216aa2293aa47c700c806861b", null ], + [ "dsps_16_array_rev", "dsps__fird__init__s16_8c.html#a67277a219b870e480d4dc5a3d1279965", null ], + [ "dsps_fird_init_s16", "dsps__fird__init__s16_8c.html#ad96ee132d7373b8657d9568aa66dd427", null ], + [ "dsps_fird_s16_aexx_free", "dsps__fird__init__s16_8c.html#a47fbc09e1c5dcbb2b76156bafbb1c8b0", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fird__init__s16_8c__incl.md5 b/docs/html/dsps__fird__init__s16_8c__incl.md5 new file mode 100644 index 0000000..9d977c8 --- /dev/null +++ b/docs/html/dsps__fird__init__s16_8c__incl.md5 @@ -0,0 +1 @@ +8c2910d6945043375c380e185b6499ce \ No newline at end of file diff --git a/docs/html/dsps__fird__init__s16_8c__incl.svg b/docs/html/dsps__fird__init__s16_8c__incl.svg new file mode 100644 index 0000000..117fe10 --- /dev/null +++ b/docs/html/dsps__fird__init__s16_8c__incl.svg @@ -0,0 +1,1049 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_fird_init_s16.c + + +Node1 + + +dsps_fird_init_s16.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +string.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node16->Node6 + + + + + + + + +Node16->Node12 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node2 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18 + + +dsp_types.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node17->Node20 + + + + + + + + +Node23 + + +dsps_math.h + + + + + +Node17->Node23 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node17->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node17->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node17->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node17->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node17->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node17->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node17->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node17->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node17->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node17->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node17->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node17->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node17->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node17->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node17->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node17->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node17->Node74 + + + + + + + + +Node18->Node4 + + + + + + + + +Node18->Node11 + + + + + + + + +Node20->Node3 + + + + + + + + +Node35->Node2 + + + + + + + + +Node35->Node3 + + + + + + + + +Node36->Node3 + + + + + + + + +Node38->Node3 + + + + + + + + +Node46->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node54->Node3 + + + + + + + + +Node54->Node9 + + + + + + + + +Node57->Node3 + + + + + + + + +Node57->Node9 + + + + + + + + +Node59->Node3 + + + + + + + + +Node59->Node9 + + + + + + + + +Node71->Node3 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node18 + + + + + + + + +Node74->Node3 + + + + + + + + +Node74->Node18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__fird__init__s16_8c__incl_org.svg b/docs/html/dsps__fird__init__s16_8c__incl_org.svg new file mode 100644 index 0000000..8e4db07 --- /dev/null +++ b/docs/html/dsps__fird__init__s16_8c__incl_org.svg @@ -0,0 +1,966 @@ + + + + + + +dsps_fird_init_s16.c + + +Node1 + + +dsps_fird_init_s16.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +string.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node16->Node6 + + + + + + + + +Node16->Node12 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node2 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18 + + +dsp_types.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node17->Node20 + + + + + + + + +Node23 + + +dsps_math.h + + + + + +Node17->Node23 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node17->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node17->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node17->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node17->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node17->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node17->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node17->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node17->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node17->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node17->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node17->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node17->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node17->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node17->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node17->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node17->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node17->Node74 + + + + + + + + +Node18->Node4 + + + + + + + + +Node18->Node11 + + + + + + + + +Node20->Node3 + + + + + + + + +Node35->Node2 + + + + + + + + +Node35->Node3 + + + + + + + + +Node36->Node3 + + + + + + + + +Node38->Node3 + + + + + + + + +Node46->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node54->Node3 + + + + + + + + +Node54->Node9 + + + + + + + + +Node57->Node3 + + + + + + + + +Node57->Node9 + + + + + + + + +Node59->Node3 + + + + + + + + +Node59->Node9 + + + + + + + + +Node71->Node3 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node18 + + + + + + + + +Node74->Node3 + + + + + + + + +Node74->Node18 + + + + + + + + diff --git a/docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 b/docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 new file mode 100644 index 0000000..4a40231 --- /dev/null +++ b/docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.md5 @@ -0,0 +1 @@ +9e8d72af92c1af9d5eacbf20132161bc \ No newline at end of file diff --git a/docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg b/docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg new file mode 100644 index 0000000..4793b12 --- /dev/null +++ b/docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_fird_s16_aexx_free + + +Node1 + + +dsps_fird_s16_aexx_free + + + + + +Node2 + + +dsps_resampler_mr_free + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg b/docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg new file mode 100644 index 0000000..5050868 --- /dev/null +++ b/docs/html/dsps__fird__init__s16_8c_a47fbc09e1c5dcbb2b76156bafbb1c8b0_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_fird_s16_aexx_free + + +Node1 + + +dsps_fird_s16_aexx_free + + + + + +Node2 + + +dsps_resampler_mr_free + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__fird__init__s16_8c_source.html b/docs/html/dsps__fird__init__s16_8c_source.html new file mode 100644 index 0000000..e302cd7 --- /dev/null +++ b/docs/html/dsps__fird__init__s16_8c_source.html @@ -0,0 +1,294 @@ + + + + + + + +ESP-IDF Firmware: dsps_fird_init_s16.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fird_init_s16.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_fir.h"
+
8#include "malloc.h"
+
9#include <string.h>
+
10#include "dsp_tests.h"
+
11
+
12#define ROUNDING_VALUE 0x7fff
+
13
+
+
14esp_err_t dsps_fird_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift)
+
15{
+
16 fir->coeffs = coeffs;
+
17 fir->delay = delay;
+
18 fir->coeffs_len = coeffs_len;
+
19 fir->pos = 0;
+
20 fir->decim = decim;
+
21 fir->d_pos = start_pos;
+
22 fir->shift = shift;
+
23 fir->rounding_val = (int16_t)(ROUNDING_VALUE);
+
24 fir->free_status = 0;
+
25
+
26 if (fir->coeffs_len < 2) { // number of coeffcients must be higer than 1
+ +
28 }
+
29
+
30 if ((fir->shift > 40) || (fir->shift < -40)) { // shift amount must be within a range from -40 to 40
+ +
32 }
+
33
+
34 if (fir->d_pos >= fir->decim) { // start position must be lower than decimation
+ +
36 }
+
37
+
38#if CONFIG_DSP_OPTIMIZED
+
39
+
40 // Rounding value buffer primary for a purpose of ee.ld.accx.ip, but used for both the esp32 and esp32s3
+
41 // dsps_fird_s16_aexx_free() must be called to free the memory after the FIR function is finished
+
42 int32_t *aexx_rounding_buff = (int32_t *)memalign(16, 2 * sizeof(int32_t));
+
43
+
44 long long rounding = (long long)(fir->rounding_val);
+
45
+
46 if (fir->shift >= 0) {
+
47 rounding = (rounding >> fir->shift);
+
48 } else {
+
49 rounding = (rounding << (-fir->shift));
+
50 }
+
51#if dsps_fird_s16_arp4_enabled
+
52 fir->pos = start_pos;
+
53
+
54 int16_t *new_delay_buff = (int16_t *)memalign(16, (coeffs_len + 8 * 2) * sizeof(int16_t));
+
55 for (int i = 0 ; i < (coeffs_len + 8 * 2) ; i++) {
+
56 new_delay_buff[i] = 0;
+
57 }
+
58 fir->delay = &new_delay_buff[8];
+
59 fir->free_status |= 0x0001;
+
60
+
61#endif // dsps_fird_s16_arp4_enabled
+
62
+
63
+
64 aexx_rounding_buff[0] = (int32_t)(rounding); // 32 lower bits (acclo) type reassignment to 32-bit
+
65 aexx_rounding_buff[1] = (int32_t)((rounding >> 32) & 0xFF); // 8 higher bits (acchi) shift by 32 and apply the mask
+
66 fir->rounding_buff = aexx_rounding_buff;
+
67 fir->free_status |= 0x0004;
+
68
+
69#if dsps_fird_s16_aes3_enabled
+
70
+
71 if (fir->delay == NULL) { // New delay buffer is allocated if the current delay line is NULL
+
72 int16_t *new_delay_buff = (int16_t *)memalign(16, coeffs_len * sizeof(int16_t));
+
73 fir->delay = new_delay_buff;
+
74 fir->free_status |= 0x0001;
+
75 } else {
+
76 if ((int)fir->delay & 0xf) { // Delay line array must be aligned
+ +
78 }
+
79 }
+
80
+
81 if ((int)fir->coeffs & 0xf) { // Coefficients array must be aligned
+ +
83 }
+
84
+
85 // If the number of coefficients is not divisible by 8, a new delay line a new coefficients arrays are allocated
+
86 // the newly allocated arrays are divisible by 8. Coefficients are copied from the original fir structure to
+
87 // the new coeffs array and the remaining space is filled with zeroes
+
88 // dsps_fird_s16_free_coeffs_delay must be called to free the memory after the FIR function is finished
+
89 if (fir->coeffs_len % 8) { // Number of coefficients must be devisible by 8
+
90 int16_t zero_coeffs = (8 - (fir->coeffs_len % 8));
+
91 int16_t new_coeffs_len = fir->coeffs_len + zero_coeffs;
+
92 int16_t *aes3_delay_buff = (int16_t *)memalign(16, new_coeffs_len * sizeof(int16_t));
+
93 int16_t *aes3_coeffs_buff = (int16_t *)memalign(16, new_coeffs_len * sizeof(int16_t));
+
94
+
95 for (int i = 0; i < fir->coeffs_len; i++) { // copy fir->coeffs to aes3_coeffs_buff
+
96 aes3_coeffs_buff[i] = fir->coeffs[i];
+
97 }
+
98
+
99 for (int i = fir->coeffs_len; i < new_coeffs_len; i++) { // add zeroes to the end
+
100 aes3_coeffs_buff[i] = 0;
+
101 }
+
102
+
103 fir->delay = aes3_delay_buff;
+
104 fir->coeffs = aes3_coeffs_buff;
+
105 fir->coeffs_len = new_coeffs_len;
+
106 fir->free_status |= 0x0002;
+
107 }
+
108
+
109#endif // dsps_fird_s16_aes3_enabled
+
110#endif // CONFIG_DSP_OPTIMIZED
+
111
+
112 for (int i = 0; i < fir->coeffs_len; i++) { // Initialize the delay line to zero
+
113 fir->delay[i] = 0;
+
114 }
+
115
+
116 return ESP_OK;
+
117}
+
+
118
+
+ +
120{
+
121
+
122 if (fir->free_status == 0) {
+
123 return ESP_OK;
+
124 }
+
125
+
126 if (fir->free_status & 0x0003) {
+
127
+
128 if (fir->free_status & 0x0002) {
+
129 free(fir->coeffs);
+
130 }
+
131#if dsps_fird_s16_arp4_enabled
+
132 fir->delay = &fir->delay[-8];
+
133#endif
+
134 free(fir->delay);
+
135 }
+
136
+
137 if (fir->free_status & 0x0004) {
+
138 free(fir->rounding_buff);
+
139 }
+
140 fir->free_status = 0;
+
141
+
142 return ESP_OK;
+
143}
+
+
144
+
145
+
+
146esp_err_t dsps_16_array_rev(int16_t *arr, int16_t len)
+
147{
+
148
+
149 int16_t temp;
+
150
+
151 for (int i = 0; i < (int)(len / 2); i++) {
+
152 temp = arr[i];
+
153 arr[i] = arr[len - 1 - i];
+
154 arr[len - 1 - i] = temp;
+
155 }
+
156 return ESP_OK;
+
157}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED
+ +
#define memalign(align_, size_)
Definition dsp_tests.h:35
+ +
struct fir_s16_s fir_s16_t
Data struct of s16 fir filter.
+
esp_err_t dsps_fird_s16_aexx_free(fir_s16_t *fir)
support arrays freeing function
+
esp_err_t dsps_16_array_rev(int16_t *arr, int16_t len)
Array reversal.
+
#define ROUNDING_VALUE
+
esp_err_t dsps_fird_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t decim, int16_t start_pos, int16_t shift)
initialize structure for 16 bit Decimation FIR filter Function initialize structure for 16 bit signed...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int32_t * rounding_buff
Definition dsps_fir.h:62
+
int16_t d_pos
Definition dsps_fir.h:60
+
int16_t coeffs_len
Definition dsps_fir.h:57
+
int16_t free_status
Definition dsps_fir.h:64
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
+
+
+ + + + diff --git a/docs/html/dsps__fird__s16__ansi_8c.html b/docs/html/dsps__fird__s16__ansi_8c.html new file mode 100644 index 0000000..3201d13 --- /dev/null +++ b/docs/html/dsps__fird__s16__ansi_8c.html @@ -0,0 +1,230 @@ + + + + + + + +ESP-IDF Firmware: dsps_fird_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fird_s16_ansi.c File Reference
+
+
+
#include "dsps_fir.h"
+
+Include dependency graph for dsps_fird_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

int32_t dsps_fird_s16_ansi (fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
 16 bit signed fixed point Decimation FIR filter
+

Function Documentation

+ +

◆ dsps_fird_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_fird_s16_ansi (fir_s16_t * fir,
const int16_t * input,
int16_t * output,
int32_t len )
+
+ +

16 bit signed fixed point Decimation FIR filter

+

Function implements FIR filter with decimation The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
inputinput array
outputarray with the result of the FIR filter
lenlength of the result array
+
+
+
Returns
: function returns the number of samples stored in the output array depends on the previous state value could be [0..len/decimation]
+ +

Definition at line 9 of file dsps_fird_s16_ansi.c.

+
10{
+
11 int32_t result = 0;
+
12 int32_t input_pos = 0;
+
13 long long rounding = 0;
+
14 const int32_t final_shift = fir->shift - 15;
+
15
+
16 rounding = (long long)(fir->rounding_val);
+
17
+
18 if (fir->shift >= 0) {
+
19 rounding = (rounding >> fir->shift) & 0xFFFFFFFFFF; // 40-bit mask
+
20 } else {
+
21 rounding = (rounding << (-fir->shift)) & 0xFFFFFFFFFF; // 40-bit mask
+
22 }
+
23
+
24 // len is already a length of the *output array, calculated as (length of the input array / decimation)
+
25 for (int i = 0; i < len; i++) {
+
26
+
27 for (int j = 0; j < fir->decim - fir->d_pos; j++) {
+
28
+
29 if (fir->pos >= fir->coeffs_len) {
+
30 fir->pos = 0;
+
31 }
+
32 fir->delay[fir->pos++] = input[input_pos++];
+
33 }
+
34 fir->d_pos = 0;
+
35
+
36 long long acc = rounding;
+
37 int16_t coeff_pos = fir->coeffs_len - 1;
+
38
+
39 for (int n = fir->pos; n < fir->coeffs_len ; n++) {
+
40 acc += (int32_t)fir->coeffs[coeff_pos--] * (int32_t)fir->delay[n];
+
41 }
+
42 for (int n = 0; n < fir->pos ; n++) {
+
43 acc += (int32_t)fir->coeffs[coeff_pos--] * (int32_t)fir->delay[n];
+
44 }
+
45
+
46 if (final_shift > 0) {
+
47 output[result++] = (int16_t)(acc << final_shift);
+
48 } else {
+
49 output[result++] = (int16_t)(acc >> (-final_shift));
+
50 }
+
51
+
52 }
+
53 return result;
+
54}
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int16_t d_pos
Definition dsps_fir.h:60
+
int16_t coeffs_len
Definition dsps_fir.h:57
+
const int n
Definition test_mmult.c:17
+
+

References fir_s16_s::coeffs, fir_s16_s::coeffs_len, fir_s16_s::d_pos, fir_s16_s::decim, fir_s16_s::delay, n, fir_s16_s::pos, fir_s16_s::rounding_val, and fir_s16_s::shift.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__fird__s16__ansi_8c.js b/docs/html/dsps__fird__s16__ansi_8c.js new file mode 100644 index 0000000..0455570 --- /dev/null +++ b/docs/html/dsps__fird__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__fird__s16__ansi_8c = +[ + [ "dsps_fird_s16_ansi", "dsps__fird__s16__ansi_8c.html#a407a6d0d259060643fbae839248ea140", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__fird__s16__ansi_8c__incl.md5 b/docs/html/dsps__fird__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..9aa27f8 --- /dev/null +++ b/docs/html/dsps__fird__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +e3bf6d10493fa3f7b7384c35f2de1a7d \ No newline at end of file diff --git a/docs/html/dsps__fird__s16__ansi_8c__incl.svg b/docs/html/dsps__fird__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..49dad1d --- /dev/null +++ b/docs/html/dsps__fird__s16__ansi_8c__incl.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + +dsps_fird_s16_ansi.c + + +Node1 + + +dsps_fird_s16_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dsps__fird__s16__ansi_8c__incl_org.svg b/docs/html/dsps__fird__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..54fa60a --- /dev/null +++ b/docs/html/dsps__fird__s16__ansi_8c__incl_org.svg @@ -0,0 +1,237 @@ + + + + + + +dsps_fird_s16_ansi.c + + +Node1 + + +dsps_fird_s16_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + diff --git a/docs/html/dsps__fird__s16__ansi_8c_source.html b/docs/html/dsps__fird__s16__ansi_8c_source.html new file mode 100644 index 0000000..455e78c --- /dev/null +++ b/docs/html/dsps__fird__s16__ansi_8c_source.html @@ -0,0 +1,174 @@ + + + + + + + +ESP-IDF Firmware: dsps_fird_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_fird_s16_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_fir.h"
+
8
+
+
9int32_t dsps_fird_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
+
10{
+
11 int32_t result = 0;
+
12 int32_t input_pos = 0;
+
13 long long rounding = 0;
+
14 const int32_t final_shift = fir->shift - 15;
+
15
+
16 rounding = (long long)(fir->rounding_val);
+
17
+
18 if (fir->shift >= 0) {
+
19 rounding = (rounding >> fir->shift) & 0xFFFFFFFFFF; // 40-bit mask
+
20 } else {
+
21 rounding = (rounding << (-fir->shift)) & 0xFFFFFFFFFF; // 40-bit mask
+
22 }
+
23
+
24 // len is already a length of the *output array, calculated as (length of the input array / decimation)
+
25 for (int i = 0; i < len; i++) {
+
26
+
27 for (int j = 0; j < fir->decim - fir->d_pos; j++) {
+
28
+
29 if (fir->pos >= fir->coeffs_len) {
+
30 fir->pos = 0;
+
31 }
+
32 fir->delay[fir->pos++] = input[input_pos++];
+
33 }
+
34 fir->d_pos = 0;
+
35
+
36 long long acc = rounding;
+
37 int16_t coeff_pos = fir->coeffs_len - 1;
+
38
+
39 for (int n = fir->pos; n < fir->coeffs_len ; n++) {
+
40 acc += (int32_t)fir->coeffs[coeff_pos--] * (int32_t)fir->delay[n];
+
41 }
+
42 for (int n = 0; n < fir->pos ; n++) {
+
43 acc += (int32_t)fir->coeffs[coeff_pos--] * (int32_t)fir->delay[n];
+
44 }
+
45
+
46 if (final_shift > 0) {
+
47 output[result++] = (int16_t)(acc << final_shift);
+
48 } else {
+
49 output[result++] = (int16_t)(acc >> (-final_shift));
+
50 }
+
51
+
52 }
+
53 return result;
+
54}
+
+ +
struct fir_s16_s fir_s16_t
Data struct of s16 fir filter.
+
int32_t dsps_fird_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t len)
16 bit signed fixed point Decimation FIR filter
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int16_t d_pos
Definition dsps_fir.h:60
+
int16_t coeffs_len
Definition dsps_fir.h:57
+
const int n
Definition test_mmult.c:17
+
+
+
+ + + + diff --git a/docs/html/dsps__firmr__f32__ansi_8c.html b/docs/html/dsps__firmr__f32__ansi_8c.html new file mode 100644 index 0000000..93d489c --- /dev/null +++ b/docs/html/dsps__firmr__f32__ansi_8c.html @@ -0,0 +1,220 @@ + + + + + + + +ESP-IDF Firmware: dsps_firmr_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_firmr_f32_ansi.c File Reference
+
+
+
#include "dsps_fir.h"
+#include "dsp_common.h"
+#include <malloc.h>
+#include "dsp_tests.h"
+
+Include dependency graph for dsps_firmr_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

int dsps_firmr_f32_ansi (fir_f32_t *fir, const float *input, float *output, int input_len)
 32 bit floating point multi-rate FIR filter
+

Function Documentation

+ +

◆ dsps_firmr_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int dsps_firmr_f32_ansi (fir_f32_t * fir,
const float * input,
float * output,
int input_len )
+
+ +

32 bit floating point multi-rate FIR filter

+

Function implements FIR filter with decimation The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
inputinput array
outputarray with the result of the FIR filter
input_lenlength of the input array
+
+
+
Returns
    +
  • amount of samples stored in the output array
  • +
  • depends on the previous state value
  • +
  • could be [0..len*intepr/decimation]
  • +
+
+ +

Definition at line 14 of file dsps_firmr_f32_ansi.c.

+
15{
+
16 int m = fir->start_pos;
+
17 int result = 0;
+
18
+
19 for (int i = 0; i < input_len; i++) {
+
20 fir->delay[fir->pos] = input[i];
+
21
+
22 for (m = fir->start_pos; m < fir->interp; m += fir->decim) {
+
23 float fir_sum = 0;
+
24 int coeff_pos = 0;
+
25 for (int n = fir->pos; n < fir->delay_size; n++) {
+
26 fir_sum += fir->delay[n] * fir->coeffs[coeff_pos++ * fir->interp + m];
+
27 }
+
28 for (int n = 0; n < fir->pos; n++) {
+
29 fir_sum += fir->delay[n] * fir->coeffs[coeff_pos++ * fir->interp + m];
+
30 }
+
31 output[result++] = fir_sum;
+
32 }
+
33 fir->start_pos = m - fir->interp;
+
34
+
35 fir->pos--;
+
36 if (fir->pos < 0) {
+
37 fir->pos = fir->delay_size - 1;
+
38 }
+
39 }
+
40 return result;
+
41}
+
int interp
Definition dsps_fir.h:42
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+
int start_pos
Definition dsps_fir.h:44
+
int delay_size
Interpolation parameters.
Definition dsps_fir.h:41
+
int decim
Definition dsps_fir.h:34
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+

References fir_f32_s::coeffs, fir_f32_s::decim, fir_f32_s::delay, fir_f32_s::delay_size, fir_f32_s::interp, m, n, fir_f32_s::pos, and fir_f32_s::start_pos.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__firmr__f32__ansi_8c.js b/docs/html/dsps__firmr__f32__ansi_8c.js new file mode 100644 index 0000000..9af29dd --- /dev/null +++ b/docs/html/dsps__firmr__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__firmr__f32__ansi_8c = +[ + [ "dsps_firmr_f32_ansi", "dsps__firmr__f32__ansi_8c.html#ad05ffc2f23c4c7b6c9df03144d19e4c4", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__firmr__f32__ansi_8c__incl.md5 b/docs/html/dsps__firmr__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..4889241 --- /dev/null +++ b/docs/html/dsps__firmr__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +9d29f2dccd3d0c21a5c030d880e9770a \ No newline at end of file diff --git a/docs/html/dsps__firmr__f32__ansi_8c__incl.svg b/docs/html/dsps__firmr__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..88d0bfa --- /dev/null +++ b/docs/html/dsps__firmr__f32__ansi_8c__incl.svg @@ -0,0 +1,1040 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_firmr_f32_ansi.c + + +Node1 + + +dsps_firmr_f32_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node15->Node6 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +esp_dsp.h + + + + + +Node15->Node16 + + + + + + + + +Node16->Node2 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_dotprod.h + + + + + +Node16->Node19 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node16->Node22 + + + + + + + + +Node34 + + +dsps_resampler.h + + + + + +Node16->Node34 + + + + + + + + +Node35 + + +dsps_biquad.h + + + + + +Node16->Node35 + + + + + + + + +Node37 + + +dsps_biquad_gen.h + + + + + +Node16->Node37 + + + + + + + + +Node38 + + +dsps_wind.h + + + + + +Node16->Node38 + + + + + + + + +Node45 + + +dsps_conv.h + + + + + +Node16->Node45 + + + + + + + + +Node47 + + +dsps_corr.h + + + + + +Node16->Node47 + + + + + + + + +Node48 + + +dsps_d_gen.h + + + + + +Node16->Node48 + + + + + + + + +Node49 + + +dsps_h_gen.h + + + + + +Node16->Node49 + + + + + + + + +Node50 + + +dsps_tone_gen.h + + + + + +Node16->Node50 + + + + + + + + +Node51 + + +dsps_snr.h + + + + + +Node16->Node51 + + + + + + + + +Node52 + + +dsps_sfdr.h + + + + + +Node16->Node52 + + + + + + + + +Node53 + + +dsps_fft2r.h + + + + + +Node16->Node53 + + + + + + + + +Node56 + + +dsps_fft4r.h + + + + + +Node16->Node56 + + + + + + + + +Node58 + + +dsps_dct.h + + + + + +Node16->Node58 + + + + + + + + +Node59 + + +dspm_matrix.h + + + + + +Node16->Node59 + + + + + + + + +Node70 + + +dsps_view.h + + + + + +Node16->Node70 + + + + + + + + +Node71 + + +dspi_dotprod.h + + + + + +Node16->Node71 + + + + + + + + +Node73 + + +dspi_conv.h + + + + + +Node16->Node73 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node11 + + + + + + + + +Node19->Node3 + + + + + + + + +Node34->Node2 + + + + + + + + +Node34->Node3 + + + + + + + + +Node35->Node3 + + + + + + + + +Node37->Node3 + + + + + + + + +Node45->Node3 + + + + + + + + +Node47->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node53->Node9 + + + + + + + + +Node56->Node3 + + + + + + + + +Node56->Node9 + + + + + + + + +Node58->Node3 + + + + + + + + +Node58->Node9 + + + + + + + + +Node70->Node3 + + + + + + + + +Node71->Node3 + + + + + + + + +Node71->Node17 + + + + + + + + +Node73->Node3 + + + + + + + + +Node73->Node17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__firmr__f32__ansi_8c__incl_org.svg b/docs/html/dsps__firmr__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..5078186 --- /dev/null +++ b/docs/html/dsps__firmr__f32__ansi_8c__incl_org.svg @@ -0,0 +1,957 @@ + + + + + + +dsps_firmr_f32_ansi.c + + +Node1 + + +dsps_firmr_f32_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node15->Node6 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +esp_dsp.h + + + + + +Node15->Node16 + + + + + + + + +Node16->Node2 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_dotprod.h + + + + + +Node16->Node19 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node16->Node22 + + + + + + + + +Node34 + + +dsps_resampler.h + + + + + +Node16->Node34 + + + + + + + + +Node35 + + +dsps_biquad.h + + + + + +Node16->Node35 + + + + + + + + +Node37 + + +dsps_biquad_gen.h + + + + + +Node16->Node37 + + + + + + + + +Node38 + + +dsps_wind.h + + + + + +Node16->Node38 + + + + + + + + +Node45 + + +dsps_conv.h + + + + + +Node16->Node45 + + + + + + + + +Node47 + + +dsps_corr.h + + + + + +Node16->Node47 + + + + + + + + +Node48 + + +dsps_d_gen.h + + + + + +Node16->Node48 + + + + + + + + +Node49 + + +dsps_h_gen.h + + + + + +Node16->Node49 + + + + + + + + +Node50 + + +dsps_tone_gen.h + + + + + +Node16->Node50 + + + + + + + + +Node51 + + +dsps_snr.h + + + + + +Node16->Node51 + + + + + + + + +Node52 + + +dsps_sfdr.h + + + + + +Node16->Node52 + + + + + + + + +Node53 + + +dsps_fft2r.h + + + + + +Node16->Node53 + + + + + + + + +Node56 + + +dsps_fft4r.h + + + + + +Node16->Node56 + + + + + + + + +Node58 + + +dsps_dct.h + + + + + +Node16->Node58 + + + + + + + + +Node59 + + +dspm_matrix.h + + + + + +Node16->Node59 + + + + + + + + +Node70 + + +dsps_view.h + + + + + +Node16->Node70 + + + + + + + + +Node71 + + +dspi_dotprod.h + + + + + +Node16->Node71 + + + + + + + + +Node73 + + +dspi_conv.h + + + + + +Node16->Node73 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node11 + + + + + + + + +Node19->Node3 + + + + + + + + +Node34->Node2 + + + + + + + + +Node34->Node3 + + + + + + + + +Node35->Node3 + + + + + + + + +Node37->Node3 + + + + + + + + +Node45->Node3 + + + + + + + + +Node47->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node53->Node9 + + + + + + + + +Node56->Node3 + + + + + + + + +Node56->Node9 + + + + + + + + +Node58->Node3 + + + + + + + + +Node58->Node9 + + + + + + + + +Node70->Node3 + + + + + + + + +Node71->Node3 + + + + + + + + +Node71->Node17 + + + + + + + + +Node73->Node3 + + + + + + + + +Node73->Node17 + + + + + + + + diff --git a/docs/html/dsps__firmr__f32__ansi_8c_source.html b/docs/html/dsps__firmr__f32__ansi_8c_source.html new file mode 100644 index 0000000..e4d9632 --- /dev/null +++ b/docs/html/dsps__firmr__f32__ansi_8c_source.html @@ -0,0 +1,163 @@ + + + + + + + +ESP-IDF Firmware: dsps_firmr_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_firmr_f32_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7
+
8
+
9#include "dsps_fir.h"
+
10#include "dsp_common.h"
+
11#include <malloc.h>
+
12#include "dsp_tests.h"
+
13
+
+
14int dsps_firmr_f32_ansi(fir_f32_t *fir, const float *input, float *output, int input_len)
+
15{
+
16 int m = fir->start_pos;
+
17 int result = 0;
+
18
+
19 for (int i = 0; i < input_len; i++) {
+
20 fir->delay[fir->pos] = input[i];
+
21
+
22 for (m = fir->start_pos; m < fir->interp; m += fir->decim) {
+
23 float fir_sum = 0;
+
24 int coeff_pos = 0;
+
25 for (int n = fir->pos; n < fir->delay_size; n++) {
+
26 fir_sum += fir->delay[n] * fir->coeffs[coeff_pos++ * fir->interp + m];
+
27 }
+
28 for (int n = 0; n < fir->pos; n++) {
+
29 fir_sum += fir->delay[n] * fir->coeffs[coeff_pos++ * fir->interp + m];
+
30 }
+
31 output[result++] = fir_sum;
+
32 }
+
33 fir->start_pos = m - fir->interp;
+
34
+
35 fir->pos--;
+
36 if (fir->pos < 0) {
+
37 fir->pos = fir->delay_size - 1;
+
38 }
+
39 }
+
40 return result;
+
41}
+
+ + + +
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
int dsps_firmr_f32_ansi(fir_f32_t *fir, const float *input, float *output, int input_len)
32 bit floating point multi-rate FIR filter
+
int interp
Definition dsps_fir.h:42
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+
int start_pos
Definition dsps_fir.h:44
+
int delay_size
Interpolation parameters.
Definition dsps_fir.h:41
+
int decim
Definition dsps_fir.h:34
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+
+
+ + + + diff --git a/docs/html/dsps__firmr__init__f32_8c.html b/docs/html/dsps__firmr__init__f32_8c.html new file mode 100644 index 0000000..fbe6ad0 --- /dev/null +++ b/docs/html/dsps__firmr__init__f32_8c.html @@ -0,0 +1,272 @@ + + + + + + + +ESP-IDF Firmware: dsps_firmr_init_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_firmr_init_f32.c File Reference
+
+
+
#include "dsps_fir.h"
+#include "dsp_common.h"
+#include <malloc.h>
+#include "dsp_tests.h"
+
+Include dependency graph for dsps_firmr_init_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_firmr_init_f32 (fir_f32_t *fir, float *coeffs, float *delay, int length, int interp, int decim, int start_pos)
 initialize structure for multi-rate FIR filter Function initialize structure for 32 bit floating point multi-rate FIR filter The implementation use ANSI C and could be compiled and run on any platform
+

Function Documentation

+ +

◆ dsps_firmr_init_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_firmr_init_f32 (fir_f32_t * fir,
float * coeffs,
float * delay,
int length,
int interp,
int decim,
int start_pos )
+
+ +

initialize structure for multi-rate FIR filter Function initialize structure for 32 bit floating point multi-rate FIR filter The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must be length N
lengthFIR filter length. Length of coeffs and delay arrays.
interpinterpolation factor.
decimdecimation factor.
start_posinitial value of decimation counter. Must be [0..decim)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 12 of file dsps_firmr_init_f32.c.

+
13{
+
14 fir->coeffs = coeffs;
+
15 fir->delay = delay;
+
16 fir->N = length;
+
17 fir->pos = 0;
+
18 fir->decim = decim;
+
19 fir->use_delay = 0;
+
20 fir->interp = interp;
+
21 fir->interp_pos = 0;
+
22 fir->start_pos = start_pos;
+
23 fir->delay_size = length / interp;
+
24
+
25 if (delay == NULL) {
+
26#ifdef CONFIG_IDF_TARGET_ESP32S3
+
27 fir->delay = (float *)memalign(16, (fir->delay_size + 4) * sizeof(float));
+
28#else
+
29 fir->delay = (float *)malloc((fir->delay_size + 4) * sizeof(float));
+
30#endif // CONFIG_IDF_TARGET_ESP32S3
+
31 fir->use_delay = 1;
+
32 } else {
+
33 fir->use_delay = 0;
+
34 }
+
35
+
36 if (decim == 0) {
+ +
38 }
+
39 if (interp == 0) {
+ +
41 }
+
42 if (length % interp != 0) {
+ +
44 }
+
45 if (start_pos < 0 || start_pos >= decim) {
+ +
47 }
+
48
+
49#ifdef CONFIG_IDF_TARGET_ESP32S3
+
50 // The delay array should be aligned to 16
+
51 if (((uint32_t)delay) & 0x0f) {
+ +
53 }
+
54#endif // CONFIG_IDF_TARGET_ESP32S3
+
55
+
56 for (int i = 0 ; i < fir->delay_size; i++) {
+
57 fir->delay[i] = 0;
+
58 }
+
59 return ESP_OK;
+
60}
+
#define ESP_ERR_DSP_INVALID_PARAM
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define ESP_OK
Definition esp_err.h:23
+
int interp
Definition dsps_fir.h:42
+
int interp_pos
Definition dsps_fir.h:43
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+
int start_pos
Definition dsps_fir.h:44
+ +
int16_t use_delay
Definition dsps_fir.h:35
+
int delay_size
Interpolation parameters.
Definition dsps_fir.h:41
+
int decim
Definition dsps_fir.h:34
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
+

References coeffs, fir_f32_s::coeffs, fir_f32_s::decim, delay, fir_f32_s::delay, fir_f32_s::delay_size, ESP_ERR_DSP_ARRAY_NOT_ALIGNED, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_INVALID_PARAM, ESP_OK, fir_f32_s::interp, fir_f32_s::interp_pos, memalign, fir_f32_s::N, fir_f32_s::pos, fir_f32_s::start_pos, and fir_f32_s::use_delay.

+ +

Referenced by dsps_resampler_mr_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__firmr__init__f32_8c.js b/docs/html/dsps__firmr__init__f32_8c.js new file mode 100644 index 0000000..0e559a4 --- /dev/null +++ b/docs/html/dsps__firmr__init__f32_8c.js @@ -0,0 +1,4 @@ +var dsps__firmr__init__f32_8c = +[ + [ "dsps_firmr_init_f32", "dsps__firmr__init__f32_8c.html#ad9e91d33731b90cebf3d0465bd7991d4", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__firmr__init__f32_8c__incl.md5 b/docs/html/dsps__firmr__init__f32_8c__incl.md5 new file mode 100644 index 0000000..d0a8c80 --- /dev/null +++ b/docs/html/dsps__firmr__init__f32_8c__incl.md5 @@ -0,0 +1 @@ +7f2fd6a09a6f1fd7dee87d19136883aa \ No newline at end of file diff --git a/docs/html/dsps__firmr__init__f32_8c__incl.svg b/docs/html/dsps__firmr__init__f32_8c__incl.svg new file mode 100644 index 0000000..ac3fd60 --- /dev/null +++ b/docs/html/dsps__firmr__init__f32_8c__incl.svg @@ -0,0 +1,1040 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_firmr_init_f32.c + + +Node1 + + +dsps_firmr_init_f32.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node15->Node6 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +esp_dsp.h + + + + + +Node15->Node16 + + + + + + + + +Node16->Node2 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_dotprod.h + + + + + +Node16->Node19 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node16->Node22 + + + + + + + + +Node34 + + +dsps_resampler.h + + + + + +Node16->Node34 + + + + + + + + +Node35 + + +dsps_biquad.h + + + + + +Node16->Node35 + + + + + + + + +Node37 + + +dsps_biquad_gen.h + + + + + +Node16->Node37 + + + + + + + + +Node38 + + +dsps_wind.h + + + + + +Node16->Node38 + + + + + + + + +Node45 + + +dsps_conv.h + + + + + +Node16->Node45 + + + + + + + + +Node47 + + +dsps_corr.h + + + + + +Node16->Node47 + + + + + + + + +Node48 + + +dsps_d_gen.h + + + + + +Node16->Node48 + + + + + + + + +Node49 + + +dsps_h_gen.h + + + + + +Node16->Node49 + + + + + + + + +Node50 + + +dsps_tone_gen.h + + + + + +Node16->Node50 + + + + + + + + +Node51 + + +dsps_snr.h + + + + + +Node16->Node51 + + + + + + + + +Node52 + + +dsps_sfdr.h + + + + + +Node16->Node52 + + + + + + + + +Node53 + + +dsps_fft2r.h + + + + + +Node16->Node53 + + + + + + + + +Node56 + + +dsps_fft4r.h + + + + + +Node16->Node56 + + + + + + + + +Node58 + + +dsps_dct.h + + + + + +Node16->Node58 + + + + + + + + +Node59 + + +dspm_matrix.h + + + + + +Node16->Node59 + + + + + + + + +Node70 + + +dsps_view.h + + + + + +Node16->Node70 + + + + + + + + +Node71 + + +dspi_dotprod.h + + + + + +Node16->Node71 + + + + + + + + +Node73 + + +dspi_conv.h + + + + + +Node16->Node73 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node11 + + + + + + + + +Node19->Node3 + + + + + + + + +Node34->Node2 + + + + + + + + +Node34->Node3 + + + + + + + + +Node35->Node3 + + + + + + + + +Node37->Node3 + + + + + + + + +Node45->Node3 + + + + + + + + +Node47->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node53->Node9 + + + + + + + + +Node56->Node3 + + + + + + + + +Node56->Node9 + + + + + + + + +Node58->Node3 + + + + + + + + +Node58->Node9 + + + + + + + + +Node70->Node3 + + + + + + + + +Node71->Node3 + + + + + + + + +Node71->Node17 + + + + + + + + +Node73->Node3 + + + + + + + + +Node73->Node17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__firmr__init__f32_8c__incl_org.svg b/docs/html/dsps__firmr__init__f32_8c__incl_org.svg new file mode 100644 index 0000000..3962694 --- /dev/null +++ b/docs/html/dsps__firmr__init__f32_8c__incl_org.svg @@ -0,0 +1,957 @@ + + + + + + +dsps_firmr_init_f32.c + + +Node1 + + +dsps_firmr_init_f32.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node15->Node6 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +esp_dsp.h + + + + + +Node15->Node16 + + + + + + + + +Node16->Node2 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_dotprod.h + + + + + +Node16->Node19 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node16->Node22 + + + + + + + + +Node34 + + +dsps_resampler.h + + + + + +Node16->Node34 + + + + + + + + +Node35 + + +dsps_biquad.h + + + + + +Node16->Node35 + + + + + + + + +Node37 + + +dsps_biquad_gen.h + + + + + +Node16->Node37 + + + + + + + + +Node38 + + +dsps_wind.h + + + + + +Node16->Node38 + + + + + + + + +Node45 + + +dsps_conv.h + + + + + +Node16->Node45 + + + + + + + + +Node47 + + +dsps_corr.h + + + + + +Node16->Node47 + + + + + + + + +Node48 + + +dsps_d_gen.h + + + + + +Node16->Node48 + + + + + + + + +Node49 + + +dsps_h_gen.h + + + + + +Node16->Node49 + + + + + + + + +Node50 + + +dsps_tone_gen.h + + + + + +Node16->Node50 + + + + + + + + +Node51 + + +dsps_snr.h + + + + + +Node16->Node51 + + + + + + + + +Node52 + + +dsps_sfdr.h + + + + + +Node16->Node52 + + + + + + + + +Node53 + + +dsps_fft2r.h + + + + + +Node16->Node53 + + + + + + + + +Node56 + + +dsps_fft4r.h + + + + + +Node16->Node56 + + + + + + + + +Node58 + + +dsps_dct.h + + + + + +Node16->Node58 + + + + + + + + +Node59 + + +dspm_matrix.h + + + + + +Node16->Node59 + + + + + + + + +Node70 + + +dsps_view.h + + + + + +Node16->Node70 + + + + + + + + +Node71 + + +dspi_dotprod.h + + + + + +Node16->Node71 + + + + + + + + +Node73 + + +dspi_conv.h + + + + + +Node16->Node73 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node11 + + + + + + + + +Node19->Node3 + + + + + + + + +Node34->Node2 + + + + + + + + +Node34->Node3 + + + + + + + + +Node35->Node3 + + + + + + + + +Node37->Node3 + + + + + + + + +Node45->Node3 + + + + + + + + +Node47->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node53->Node9 + + + + + + + + +Node56->Node3 + + + + + + + + +Node56->Node9 + + + + + + + + +Node58->Node3 + + + + + + + + +Node58->Node9 + + + + + + + + +Node70->Node3 + + + + + + + + +Node71->Node3 + + + + + + + + +Node71->Node17 + + + + + + + + +Node73->Node3 + + + + + + + + +Node73->Node17 + + + + + + + + diff --git a/docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.md5 b/docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.md5 new file mode 100644 index 0000000..4c595cd --- /dev/null +++ b/docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.md5 @@ -0,0 +1 @@ +e3ef6fc3110d4370a6bc14b3354e84e5 \ No newline at end of file diff --git a/docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.svg b/docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.svg new file mode 100644 index 0000000..437cbff --- /dev/null +++ b/docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_firmr_init_f32 + + +Node1 + + +dsps_firmr_init_f32 + + + + + +Node2 + + +dsps_resampler_mr_init + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph_org.svg b/docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph_org.svg new file mode 100644 index 0000000..c65f03b --- /dev/null +++ b/docs/html/dsps__firmr__init__f32_8c_ad9e91d33731b90cebf3d0465bd7991d4_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_firmr_init_f32 + + +Node1 + + +dsps_firmr_init_f32 + + + + + +Node2 + + +dsps_resampler_mr_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__firmr__init__f32_8c_source.html b/docs/html/dsps__firmr__init__f32_8c_source.html new file mode 100644 index 0000000..bc67e39 --- /dev/null +++ b/docs/html/dsps__firmr__init__f32_8c_source.html @@ -0,0 +1,191 @@ + + + + + + + +ESP-IDF Firmware: dsps_firmr_init_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_firmr_init_f32.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_fir.h"
+
8#include "dsp_common.h"
+
9#include <malloc.h>
+
10#include "dsp_tests.h"
+
11
+
+
12esp_err_t dsps_firmr_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int length, int interp, int decim, int start_pos)
+
13{
+
14 fir->coeffs = coeffs;
+
15 fir->delay = delay;
+
16 fir->N = length;
+
17 fir->pos = 0;
+
18 fir->decim = decim;
+
19 fir->use_delay = 0;
+
20 fir->interp = interp;
+
21 fir->interp_pos = 0;
+
22 fir->start_pos = start_pos;
+
23 fir->delay_size = length / interp;
+
24
+
25 if (delay == NULL) {
+
26#ifdef CONFIG_IDF_TARGET_ESP32S3
+
27 fir->delay = (float *)memalign(16, (fir->delay_size + 4) * sizeof(float));
+
28#else
+
29 fir->delay = (float *)malloc((fir->delay_size + 4) * sizeof(float));
+
30#endif // CONFIG_IDF_TARGET_ESP32S3
+
31 fir->use_delay = 1;
+
32 } else {
+
33 fir->use_delay = 0;
+
34 }
+
35
+
36 if (decim == 0) {
+ +
38 }
+
39 if (interp == 0) {
+ +
41 }
+
42 if (length % interp != 0) {
+ +
44 }
+
45 if (start_pos < 0 || start_pos >= decim) {
+ +
47 }
+
48
+
49#ifdef CONFIG_IDF_TARGET_ESP32S3
+
50 // The delay array should be aligned to 16
+
51 if (((uint32_t)delay) & 0x0f) {
+ +
53 }
+
54#endif // CONFIG_IDF_TARGET_ESP32S3
+
55
+
56 for (int i = 0 ; i < fir->delay_size; i++) {
+
57 fir->delay[i] = 0;
+
58 }
+
59 return ESP_OK;
+
60}
+
+ +
#define ESP_ERR_DSP_INVALID_PARAM
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define ESP_ERR_DSP_ARRAY_NOT_ALIGNED
+ +
#define memalign(align_, size_)
Definition dsp_tests.h:35
+ +
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
esp_err_t dsps_firmr_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int length, int interp, int decim, int start_pos)
initialize structure for multi-rate FIR filter Function initialize structure for 32 bit floating poin...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int interp
Definition dsps_fir.h:42
+
int interp_pos
Definition dsps_fir.h:43
+
float * coeffs
Definition dsps_fir.h:30
+
int pos
Definition dsps_fir.h:33
+
float * delay
Definition dsps_fir.h:31
+
int start_pos
Definition dsps_fir.h:44
+ +
int16_t use_delay
Definition dsps_fir.h:35
+
int delay_size
Interpolation parameters.
Definition dsps_fir.h:41
+
int decim
Definition dsps_fir.h:34
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
+
+
+ + + + diff --git a/docs/html/dsps__firmr__init__s16_8c.html b/docs/html/dsps__firmr__init__s16_8c.html new file mode 100644 index 0000000..1680d25 --- /dev/null +++ b/docs/html/dsps__firmr__init__s16_8c.html @@ -0,0 +1,304 @@ + + + + + + + +ESP-IDF Firmware: dsps_firmr_init_s16.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_firmr_init_s16.c File Reference
+
+
+
#include "dsps_fir.h"
+#include "malloc.h"
+#include <string.h>
+#include "dsp_tests.h"
+#include "dsp_common.h"
+
+Include dependency graph for dsps_firmr_init_s16.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define ROUNDING_VALUE   0x7fff
+ + + +

+Functions

esp_err_t dsps_firmr_init_s16 (fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t interp, int16_t decim, int16_t start_pos, int16_t shift)
 initialize structure for multi-rate FIR filter Function initialize structure for 16 bit signed fixed point multi-rate FIR filter The implementation use ANSI C and could be compiled and run on any platform
+

Macro Definition Documentation

+ +

◆ ROUNDING_VALUE

+ +
+
+ + + + +
#define ROUNDING_VALUE   0x7fff
+
+ +

Definition at line 13 of file dsps_firmr_init_s16.c.

+ +
+
+

Function Documentation

+ +

◆ dsps_firmr_init_s16()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_firmr_init_s16 (fir_s16_t * fir,
int16_t * coeffs,
int16_t * delay,
int16_t length,
int16_t interp,
int16_t decim,
int16_t start_pos,
int16_t shift )
+
+ +

initialize structure for multi-rate FIR filter Function initialize structure for 16 bit signed fixed point multi-rate FIR filter The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + +
firpointer to fir filter structure, that must be preallocated
coeffsarray with FIR filter coefficients. Must be length N
delayarray for FIR filter delay line. Must be length N
lengthFIR filter length. Length of coeffs and delay arrays.
interpinterpolation factor.
decimdecimation factor.
start_posinitial value of decimation counter. Must be [0..decim)
shiftshift of accumulator value to store in the output array.
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 15 of file dsps_firmr_init_s16.c.

+
16{
+
17 fir->coeffs = coeffs;
+
18 fir->delay = delay;
+
19
+
20
+
21 fir->coeffs_len = coeffs_len;
+
22 fir->pos = 0;
+
23 fir->decim = decim;
+
24 fir->d_pos = start_pos;
+
25 fir->shift = shift;
+
26 fir->rounding_val = (int16_t)(ROUNDING_VALUE);
+
27 fir->free_status = 0;
+
28
+
29 if (delay == NULL) {
+
30#ifdef CONFIG_IDF_TARGET_ESP32S3
+
31 fir->delay = (int16_t *)memalign(16, (fir->delay_size + 4) * sizeof(int16_t));
+
32#else
+
33 fir->delay = (int16_t *)malloc((fir->delay_size + 4) * sizeof(int16_t));
+
34#endif // CONFIG_IDF_TARGET_ESP32S3
+
35 fir->free_status = 1;
+
36 } else {
+
37 fir->free_status = 0;
+
38 }
+
39
+
40
+
41 fir->interp = interp;
+
42 fir->interp_pos = 0;
+
43 fir->start_pos = start_pos;
+
44 fir->delay_size = coeffs_len / interp;
+
45
+
46
+
47 if (fir->coeffs_len < 2) { // number of coeffcients must be higer than 1
+ +
49 }
+
50
+
51 if ((fir->shift > 40) || (fir->shift < -40)) { // shift amount must be within a range from -40 to 40
+ +
53 }
+
54
+
55 if (fir->d_pos >= fir->decim) { // start position must be lower than decimation
+ +
57 }
+
58
+
59 for (int i = 0; i < fir->delay_size; i++) { // Initialize the delay line to zero
+
60 fir->delay[i] = 0;
+
61 }
+
62
+
63 return ESP_OK;
+
64}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_INVALID_LENGTH
+
#define memalign(align_, size_)
Definition dsp_tests.h:35
+
#define ROUNDING_VALUE
+
#define ESP_OK
Definition esp_err.h:23
+
int16_t delay_size
Interpolation parameters.
Definition dsps_fir.h:71
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int16_t start_pos
Definition dsps_fir.h:74
+
int16_t interp_pos
Definition dsps_fir.h:73
+
int16_t interp
Definition dsps_fir.h:72
+
int16_t d_pos
Definition dsps_fir.h:60
+
int16_t coeffs_len
Definition dsps_fir.h:57
+
int16_t free_status
Definition dsps_fir.h:64
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
+

References coeffs, fir_s16_s::coeffs, fir_s16_s::coeffs_len, fir_s16_s::d_pos, fir_s16_s::decim, delay, fir_s16_s::delay, fir_s16_s::delay_size, ESP_ERR_DSP_INVALID_LENGTH, ESP_ERR_DSP_PARAM_OUTOFRANGE, ESP_OK, fir_s16_s::free_status, fir_s16_s::interp, fir_s16_s::interp_pos, memalign, fir_s16_s::pos, fir_s16_s::rounding_val, ROUNDING_VALUE, fir_s16_s::shift, and fir_s16_s::start_pos.

+ +

Referenced by dsps_resampler_mr_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__firmr__init__s16_8c.js b/docs/html/dsps__firmr__init__s16_8c.js new file mode 100644 index 0000000..7db64dc --- /dev/null +++ b/docs/html/dsps__firmr__init__s16_8c.js @@ -0,0 +1,5 @@ +var dsps__firmr__init__s16_8c = +[ + [ "ROUNDING_VALUE", "dsps__firmr__init__s16_8c.html#aa019351216aa2293aa47c700c806861b", null ], + [ "dsps_firmr_init_s16", "dsps__firmr__init__s16_8c.html#ad967316d18ae01a1cddb38dd9b5c5ded", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__firmr__init__s16_8c__incl.md5 b/docs/html/dsps__firmr__init__s16_8c__incl.md5 new file mode 100644 index 0000000..e96f73d --- /dev/null +++ b/docs/html/dsps__firmr__init__s16_8c__incl.md5 @@ -0,0 +1 @@ +8284093e2458a363545d9b0db87471a1 \ No newline at end of file diff --git a/docs/html/dsps__firmr__init__s16_8c__incl.svg b/docs/html/dsps__firmr__init__s16_8c__incl.svg new file mode 100644 index 0000000..85e6fcc --- /dev/null +++ b/docs/html/dsps__firmr__init__s16_8c__incl.svg @@ -0,0 +1,1058 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_firmr_init_s16.c + + +Node1 + + +dsps_firmr_init_s16.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +string.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node16->Node6 + + + + + + + + +Node16->Node12 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node2 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18 + + +dsp_types.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node17->Node20 + + + + + + + + +Node23 + + +dsps_math.h + + + + + +Node17->Node23 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node17->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node17->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node17->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node17->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node17->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node17->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node17->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node17->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node17->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node17->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node17->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node17->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node17->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node17->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node17->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node17->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node17->Node74 + + + + + + + + +Node18->Node4 + + + + + + + + +Node18->Node11 + + + + + + + + +Node20->Node3 + + + + + + + + +Node35->Node2 + + + + + + + + +Node35->Node3 + + + + + + + + +Node36->Node3 + + + + + + + + +Node38->Node3 + + + + + + + + +Node46->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node54->Node3 + + + + + + + + +Node54->Node9 + + + + + + + + +Node57->Node3 + + + + + + + + +Node57->Node9 + + + + + + + + +Node59->Node3 + + + + + + + + +Node59->Node9 + + + + + + + + +Node71->Node3 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node18 + + + + + + + + +Node74->Node3 + + + + + + + + +Node74->Node18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__firmr__init__s16_8c__incl_org.svg b/docs/html/dsps__firmr__init__s16_8c__incl_org.svg new file mode 100644 index 0000000..063f11d --- /dev/null +++ b/docs/html/dsps__firmr__init__s16_8c__incl_org.svg @@ -0,0 +1,975 @@ + + + + + + +dsps_firmr_init_s16.c + + +Node1 + + +dsps_firmr_init_s16.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +malloc.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +string.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node16->Node6 + + + + + + + + +Node16->Node12 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node2 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18 + + +dsp_types.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node17->Node20 + + + + + + + + +Node23 + + +dsps_math.h + + + + + +Node17->Node23 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node17->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node17->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node17->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node17->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node17->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node17->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node17->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node17->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node17->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node17->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node17->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node17->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node17->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node17->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node17->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node17->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node17->Node74 + + + + + + + + +Node18->Node4 + + + + + + + + +Node18->Node11 + + + + + + + + +Node20->Node3 + + + + + + + + +Node35->Node2 + + + + + + + + +Node35->Node3 + + + + + + + + +Node36->Node3 + + + + + + + + +Node38->Node3 + + + + + + + + +Node46->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node53->Node3 + + + + + + + + +Node54->Node3 + + + + + + + + +Node54->Node9 + + + + + + + + +Node57->Node3 + + + + + + + + +Node57->Node9 + + + + + + + + +Node59->Node3 + + + + + + + + +Node59->Node9 + + + + + + + + +Node71->Node3 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node18 + + + + + + + + +Node74->Node3 + + + + + + + + +Node74->Node18 + + + + + + + + diff --git a/docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph.md5 b/docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph.md5 new file mode 100644 index 0000000..dfa36a8 --- /dev/null +++ b/docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph.md5 @@ -0,0 +1 @@ +90f06b82a677e38ed391ebfa8a448e8d \ No newline at end of file diff --git a/docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph.svg b/docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph.svg new file mode 100644 index 0000000..60e94e3 --- /dev/null +++ b/docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_firmr_init_s16 + + +Node1 + + +dsps_firmr_init_s16 + + + + + +Node2 + + +dsps_resampler_mr_init + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph_org.svg b/docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph_org.svg new file mode 100644 index 0000000..890eea6 --- /dev/null +++ b/docs/html/dsps__firmr__init__s16_8c_ad967316d18ae01a1cddb38dd9b5c5ded_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_firmr_init_s16 + + +Node1 + + +dsps_firmr_init_s16 + + + + + +Node2 + + +dsps_resampler_mr_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__firmr__init__s16_8c_source.html b/docs/html/dsps__firmr__init__s16_8c_source.html new file mode 100644 index 0000000..a8ca2f8 --- /dev/null +++ b/docs/html/dsps__firmr__init__s16_8c_source.html @@ -0,0 +1,198 @@ + + + + + + + +ESP-IDF Firmware: dsps_firmr_init_s16.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_firmr_init_s16.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_fir.h"
+
8#include "malloc.h"
+
9#include <string.h>
+
10#include "dsp_tests.h"
+
11#include "dsp_common.h"
+
12
+
13#define ROUNDING_VALUE 0x7fff
+
14
+
+
15esp_err_t dsps_firmr_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t interp, int16_t decim, int16_t start_pos, int16_t shift)
+
16{
+
17 fir->coeffs = coeffs;
+
18 fir->delay = delay;
+
19
+
20
+
21 fir->coeffs_len = coeffs_len;
+
22 fir->pos = 0;
+
23 fir->decim = decim;
+
24 fir->d_pos = start_pos;
+
25 fir->shift = shift;
+
26 fir->rounding_val = (int16_t)(ROUNDING_VALUE);
+
27 fir->free_status = 0;
+
28
+
29 if (delay == NULL) {
+
30#ifdef CONFIG_IDF_TARGET_ESP32S3
+
31 fir->delay = (int16_t *)memalign(16, (fir->delay_size + 4) * sizeof(int16_t));
+
32#else
+
33 fir->delay = (int16_t *)malloc((fir->delay_size + 4) * sizeof(int16_t));
+
34#endif // CONFIG_IDF_TARGET_ESP32S3
+
35 fir->free_status = 1;
+
36 } else {
+
37 fir->free_status = 0;
+
38 }
+
39
+
40
+
41 fir->interp = interp;
+
42 fir->interp_pos = 0;
+
43 fir->start_pos = start_pos;
+
44 fir->delay_size = coeffs_len / interp;
+
45
+
46
+
47 if (fir->coeffs_len < 2) { // number of coeffcients must be higer than 1
+ +
49 }
+
50
+
51 if ((fir->shift > 40) || (fir->shift < -40)) { // shift amount must be within a range from -40 to 40
+ +
53 }
+
54
+
55 if (fir->d_pos >= fir->decim) { // start position must be lower than decimation
+ +
57 }
+
58
+
59 for (int i = 0; i < fir->delay_size; i++) { // Initialize the delay line to zero
+
60 fir->delay[i] = 0;
+
61 }
+
62
+
63 return ESP_OK;
+
64}
+
+ +
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_ERR_DSP_INVALID_LENGTH
+ +
#define memalign(align_, size_)
Definition dsp_tests.h:35
+ +
struct fir_s16_s fir_s16_t
Data struct of s16 fir filter.
+
#define ROUNDING_VALUE
+
esp_err_t dsps_firmr_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t interp, int16_t decim, int16_t start_pos, int16_t shift)
initialize structure for multi-rate FIR filter Function initialize structure for 16 bit signed fixed ...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
int16_t delay_size
Interpolation parameters.
Definition dsps_fir.h:71
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int16_t start_pos
Definition dsps_fir.h:74
+
int16_t interp_pos
Definition dsps_fir.h:73
+
int16_t interp
Definition dsps_fir.h:72
+
int16_t d_pos
Definition dsps_fir.h:60
+
int16_t coeffs_len
Definition dsps_fir.h:57
+
int16_t free_status
Definition dsps_fir.h:64
+
float delay[256]
Definition test_fir.c:15
+
float coeffs[256]
Definition test_fir.c:14
+
+
+
+ + + + diff --git a/docs/html/dsps__firmr__s16__ansi_8c.html b/docs/html/dsps__firmr__s16__ansi_8c.html new file mode 100644 index 0000000..977b52a --- /dev/null +++ b/docs/html/dsps__firmr__s16__ansi_8c.html @@ -0,0 +1,232 @@ + + + + + + + +ESP-IDF Firmware: dsps_firmr_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_firmr_s16_ansi.c File Reference
+
+
+
#include "dsps_fir.h"
+#include "dsp_common.h"
+#include "dsp_tests.h"
+
+Include dependency graph for dsps_firmr_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

int32_t dsps_firmr_s16_ansi (fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t input_len)
 16 bit signed fixed point multi-rate FIR filter
+

Function Documentation

+ +

◆ dsps_firmr_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_firmr_s16_ansi (fir_s16_t * fir,
const int16_t * input,
int16_t * output,
int32_t input_len )
+
+ +

16 bit signed fixed point multi-rate FIR filter

+

Function implements FIR filter with decimation The extension (_ansi) uses ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.

+
Parameters
+ + + + + +
firpointer to fir filter structure, that must be initialized before
inputinput array
outputarray with the result of the FIR filter
input_lenlength of the intput array
+
+
+
Returns
: function returns the number of samples stored in the output array depends on the previous state value could be [0..len*intepr/decimation]
+ +

Definition at line 11 of file dsps_firmr_s16_ansi.c.

+
12{
+
13 int32_t result = 0;
+
14 long long rounding = 0;
+
15 const int32_t final_shift = fir->shift - 15;
+
16 rounding = (long long)(fir->rounding_val);
+
17
+
18 if (fir->shift >= 0) {
+
19 rounding = (rounding >> fir->shift) & 0xFFFFFFFFFF; // 40-bit mask
+
20 } else {
+
21 rounding = (rounding << (-fir->shift)) & 0xFFFFFFFFFF; // 40-bit mask
+
22 }
+
23
+
24 int32_t m = fir->start_pos;
+
25
+
26 for (int i = 0; i < input_len; i++) {
+
27 fir->delay[fir->pos] = input[i];
+
28
+
29 for (m = fir->start_pos; m < fir->interp; m += fir->decim) {
+
30 long long acc = rounding;
+
31 int coeff_pos = 0;
+
32 for (int n = fir->pos; n < fir->delay_size; n++) {
+
33 acc += (int32_t)fir->delay[n] * (int32_t)fir->coeffs[coeff_pos++ * fir->interp + m];
+
34 }
+
35 for (int n = 0; n < fir->pos; n++) {
+
36 acc += (int32_t)fir->delay[n] * (int32_t)fir->coeffs[coeff_pos++ * fir->interp + m];
+
37 }
+
38
+
39 if (final_shift > 0) {
+
40 output[result++] = (int16_t)(acc << final_shift);
+
41 } else {
+
42 output[result++] = (int16_t)(acc >> (-final_shift));
+
43 }
+
44 }
+
45 fir->start_pos = m - fir->interp;
+
46
+
47 fir->pos--;
+
48 if (fir->pos < 0) {
+
49 fir->pos = fir->delay_size - 1;
+
50 }
+
51 }
+
52
+
53 return result;
+
54}
+
int16_t delay_size
Interpolation parameters.
Definition dsps_fir.h:71
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int16_t start_pos
Definition dsps_fir.h:74
+
int16_t interp
Definition dsps_fir.h:72
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+

References fir_s16_s::coeffs, fir_s16_s::decim, fir_s16_s::delay, fir_s16_s::delay_size, fir_s16_s::interp, m, n, fir_s16_s::pos, fir_s16_s::rounding_val, fir_s16_s::shift, and fir_s16_s::start_pos.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__firmr__s16__ansi_8c.js b/docs/html/dsps__firmr__s16__ansi_8c.js new file mode 100644 index 0000000..2816690 --- /dev/null +++ b/docs/html/dsps__firmr__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__firmr__s16__ansi_8c = +[ + [ "dsps_firmr_s16_ansi", "dsps__firmr__s16__ansi_8c.html#ab47071e3da826d2f3c97ea08b3b7767e", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__firmr__s16__ansi_8c__incl.md5 b/docs/html/dsps__firmr__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..dacd005 --- /dev/null +++ b/docs/html/dsps__firmr__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +c1e028eb406fe5bf7ce33fe8565ee222 \ No newline at end of file diff --git a/docs/html/dsps__firmr__s16__ansi_8c__incl.svg b/docs/html/dsps__firmr__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..7d03e61 --- /dev/null +++ b/docs/html/dsps__firmr__s16__ansi_8c__incl.svg @@ -0,0 +1,1022 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_firmr_s16_ansi.c + + +Node1 + + +dsps_firmr_s16_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +dsp_tests.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node14->Node12 + + + + + + + + +Node15 + + +esp_dsp.h + + + + + +Node14->Node15 + + + + + + + + +Node15->Node2 + + + + + + + + +Node15->Node10 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node15->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node15->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node15->Node21 + + + + + + + + +Node33 + + +dsps_resampler.h + + + + + +Node15->Node33 + + + + + + + + +Node34 + + +dsps_biquad.h + + + + + +Node15->Node34 + + + + + + + + +Node36 + + +dsps_biquad_gen.h + + + + + +Node15->Node36 + + + + + + + + +Node37 + + +dsps_wind.h + + + + + +Node15->Node37 + + + + + + + + +Node44 + + +dsps_conv.h + + + + + +Node15->Node44 + + + + + + + + +Node46 + + +dsps_corr.h + + + + + +Node15->Node46 + + + + + + + + +Node47 + + +dsps_d_gen.h + + + + + +Node15->Node47 + + + + + + + + +Node48 + + +dsps_h_gen.h + + + + + +Node15->Node48 + + + + + + + + +Node49 + + +dsps_tone_gen.h + + + + + +Node15->Node49 + + + + + + + + +Node50 + + +dsps_snr.h + + + + + +Node15->Node50 + + + + + + + + +Node51 + + +dsps_sfdr.h + + + + + +Node15->Node51 + + + + + + + + +Node52 + + +dsps_fft2r.h + + + + + +Node15->Node52 + + + + + + + + +Node55 + + +dsps_fft4r.h + + + + + +Node15->Node55 + + + + + + + + +Node57 + + +dsps_dct.h + + + + + +Node15->Node57 + + + + + + + + +Node58 + + +dspm_matrix.h + + + + + +Node15->Node58 + + + + + + + + +Node69 + + +dsps_view.h + + + + + +Node15->Node69 + + + + + + + + +Node70 + + +dspi_dotprod.h + + + + + +Node15->Node70 + + + + + + + + +Node72 + + +dspi_conv.h + + + + + +Node15->Node72 + + + + + + + + +Node16->Node4 + + + + + + + + +Node16->Node11 + + + + + + + + +Node18->Node3 + + + + + + + + +Node33->Node2 + + + + + + + + +Node33->Node3 + + + + + + + + +Node34->Node3 + + + + + + + + +Node36->Node3 + + + + + + + + +Node44->Node3 + + + + + + + + +Node46->Node3 + + + + + + + + +Node47->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node52->Node9 + + + + + + + + +Node55->Node3 + + + + + + + + +Node55->Node9 + + + + + + + + +Node57->Node3 + + + + + + + + +Node57->Node9 + + + + + + + + +Node69->Node3 + + + + + + + + +Node70->Node3 + + + + + + + + +Node70->Node16 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__firmr__s16__ansi_8c__incl_org.svg b/docs/html/dsps__firmr__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..9ee38e6 --- /dev/null +++ b/docs/html/dsps__firmr__s16__ansi_8c__incl_org.svg @@ -0,0 +1,939 @@ + + + + + + +dsps_firmr_s16_ansi.c + + +Node1 + + +dsps_firmr_s16_ansi.c + + + + + +Node2 + + +dsps_fir.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node1->Node10 + + + + + + + + +Node14 + + +dsp_tests.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node14->Node12 + + + + + + + + +Node15 + + +esp_dsp.h + + + + + +Node14->Node15 + + + + + + + + +Node15->Node2 + + + + + + + + +Node15->Node10 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node15->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node15->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node15->Node21 + + + + + + + + +Node33 + + +dsps_resampler.h + + + + + +Node15->Node33 + + + + + + + + +Node34 + + +dsps_biquad.h + + + + + +Node15->Node34 + + + + + + + + +Node36 + + +dsps_biquad_gen.h + + + + + +Node15->Node36 + + + + + + + + +Node37 + + +dsps_wind.h + + + + + +Node15->Node37 + + + + + + + + +Node44 + + +dsps_conv.h + + + + + +Node15->Node44 + + + + + + + + +Node46 + + +dsps_corr.h + + + + + +Node15->Node46 + + + + + + + + +Node47 + + +dsps_d_gen.h + + + + + +Node15->Node47 + + + + + + + + +Node48 + + +dsps_h_gen.h + + + + + +Node15->Node48 + + + + + + + + +Node49 + + +dsps_tone_gen.h + + + + + +Node15->Node49 + + + + + + + + +Node50 + + +dsps_snr.h + + + + + +Node15->Node50 + + + + + + + + +Node51 + + +dsps_sfdr.h + + + + + +Node15->Node51 + + + + + + + + +Node52 + + +dsps_fft2r.h + + + + + +Node15->Node52 + + + + + + + + +Node55 + + +dsps_fft4r.h + + + + + +Node15->Node55 + + + + + + + + +Node57 + + +dsps_dct.h + + + + + +Node15->Node57 + + + + + + + + +Node58 + + +dspm_matrix.h + + + + + +Node15->Node58 + + + + + + + + +Node69 + + +dsps_view.h + + + + + +Node15->Node69 + + + + + + + + +Node70 + + +dspi_dotprod.h + + + + + +Node15->Node70 + + + + + + + + +Node72 + + +dspi_conv.h + + + + + +Node15->Node72 + + + + + + + + +Node16->Node4 + + + + + + + + +Node16->Node11 + + + + + + + + +Node18->Node3 + + + + + + + + +Node33->Node2 + + + + + + + + +Node33->Node3 + + + + + + + + +Node34->Node3 + + + + + + + + +Node36->Node3 + + + + + + + + +Node44->Node3 + + + + + + + + +Node46->Node3 + + + + + + + + +Node47->Node3 + + + + + + + + +Node48->Node3 + + + + + + + + +Node49->Node3 + + + + + + + + +Node50->Node3 + + + + + + + + +Node51->Node3 + + + + + + + + +Node52->Node3 + + + + + + + + +Node52->Node9 + + + + + + + + +Node55->Node3 + + + + + + + + +Node55->Node9 + + + + + + + + +Node57->Node3 + + + + + + + + +Node57->Node9 + + + + + + + + +Node69->Node3 + + + + + + + + +Node70->Node3 + + + + + + + + +Node70->Node16 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node16 + + + + + + + + diff --git a/docs/html/dsps__firmr__s16__ansi_8c_source.html b/docs/html/dsps__firmr__s16__ansi_8c_source.html new file mode 100644 index 0000000..64e907a --- /dev/null +++ b/docs/html/dsps__firmr__s16__ansi_8c_source.html @@ -0,0 +1,178 @@ + + + + + + + +ESP-IDF Firmware: dsps_firmr_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_firmr_s16_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_fir.h"
+
8#include "dsp_common.h"
+
9#include "dsp_tests.h"
+
10
+
+
11int32_t dsps_firmr_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t input_len)
+
12{
+
13 int32_t result = 0;
+
14 long long rounding = 0;
+
15 const int32_t final_shift = fir->shift - 15;
+
16 rounding = (long long)(fir->rounding_val);
+
17
+
18 if (fir->shift >= 0) {
+
19 rounding = (rounding >> fir->shift) & 0xFFFFFFFFFF; // 40-bit mask
+
20 } else {
+
21 rounding = (rounding << (-fir->shift)) & 0xFFFFFFFFFF; // 40-bit mask
+
22 }
+
23
+
24 int32_t m = fir->start_pos;
+
25
+
26 for (int i = 0; i < input_len; i++) {
+
27 fir->delay[fir->pos] = input[i];
+
28
+
29 for (m = fir->start_pos; m < fir->interp; m += fir->decim) {
+
30 long long acc = rounding;
+
31 int coeff_pos = 0;
+
32 for (int n = fir->pos; n < fir->delay_size; n++) {
+
33 acc += (int32_t)fir->delay[n] * (int32_t)fir->coeffs[coeff_pos++ * fir->interp + m];
+
34 }
+
35 for (int n = 0; n < fir->pos; n++) {
+
36 acc += (int32_t)fir->delay[n] * (int32_t)fir->coeffs[coeff_pos++ * fir->interp + m];
+
37 }
+
38
+
39 if (final_shift > 0) {
+
40 output[result++] = (int16_t)(acc << final_shift);
+
41 } else {
+
42 output[result++] = (int16_t)(acc >> (-final_shift));
+
43 }
+
44 }
+
45 fir->start_pos = m - fir->interp;
+
46
+
47 fir->pos--;
+
48 if (fir->pos < 0) {
+
49 fir->pos = fir->delay_size - 1;
+
50 }
+
51 }
+
52
+
53 return result;
+
54}
+
+ + + +
struct fir_s16_s fir_s16_t
Data struct of s16 fir filter.
+
int32_t dsps_firmr_s16_ansi(fir_s16_t *fir, const int16_t *input, int16_t *output, int32_t input_len)
16 bit signed fixed point multi-rate FIR filter
+
int16_t delay_size
Interpolation parameters.
Definition dsps_fir.h:71
+
int16_t shift
Definition dsps_fir.h:61
+
int16_t * coeffs
Definition dsps_fir.h:55
+
int32_t rounding_val
Definition dsps_fir.h:63
+
int16_t * delay
Definition dsps_fir.h:56
+
int16_t decim
Definition dsps_fir.h:59
+
int16_t pos
Definition dsps_fir.h:58
+
int16_t start_pos
Definition dsps_fir.h:74
+
int16_t interp
Definition dsps_fir.h:72
+
const int m
Definition test_mmult.c:16
+
const int n
Definition test_mmult.c:17
+
+
+
+ + + + diff --git a/docs/html/dsps__h__gen_8c.html b/docs/html/dsps__h__gen_8c.html new file mode 100644 index 0000000..c7d96da --- /dev/null +++ b/docs/html/dsps__h__gen_8c.html @@ -0,0 +1,191 @@ + + + + + + + +ESP-IDF Firmware: dsps_h_gen.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_h_gen.c File Reference
+
+
+
#include "dsps_h_gen.h"
+
+Include dependency graph for dsps_h_gen.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_h_gen_f32 (float *output, int len, int pos)
 Heviside function.
+

Function Documentation

+ +

◆ dsps_h_gen_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_h_gen_f32 (float * output,
int len,
int pos )
+
+ +

Heviside function.

+

The Heviside function. output[i]=0, if i=[0..pos) output[i]=1, if i=[pos..N) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
outputoutput array.
lenlength of the input signal
posheviside function position
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_h_gen.c.

+
18{
+
19 if (pos >= len) {
+ +
21 }
+
22 if (pos < 0) {
+ +
24 }
+
25 for (int i = 0 ; i < pos ; i++) {
+
26 output[i] = 0;
+
27 }
+
28 for (int i = pos ; i < len ; i++) {
+
29 output[i] = 1;
+
30 }
+
31 return ESP_OK;
+
32}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__h__gen_8c.js b/docs/html/dsps__h__gen_8c.js new file mode 100644 index 0000000..457615b --- /dev/null +++ b/docs/html/dsps__h__gen_8c.js @@ -0,0 +1,4 @@ +var dsps__h__gen_8c = +[ + [ "dsps_h_gen_f32", "dsps__h__gen_8c.html#a35293852541d8d6ee1f44f1ca1c14214", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__h__gen_8c__incl.md5 b/docs/html/dsps__h__gen_8c__incl.md5 new file mode 100644 index 0000000..c857f18 --- /dev/null +++ b/docs/html/dsps__h__gen_8c__incl.md5 @@ -0,0 +1 @@ +1d3db0049bb881e167a1ba10fe600018 \ No newline at end of file diff --git a/docs/html/dsps__h__gen_8c__incl.svg b/docs/html/dsps__h__gen_8c__incl.svg new file mode 100644 index 0000000..24f5fa0 --- /dev/null +++ b/docs/html/dsps__h__gen_8c__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_h_gen.c + + +Node1 + + +dsps_h_gen.c + + + + + +Node2 + + +dsps_h_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + + + + + + diff --git a/docs/html/dsps__h__gen_8c__incl_org.svg b/docs/html/dsps__h__gen_8c__incl_org.svg new file mode 100644 index 0000000..b45e52a --- /dev/null +++ b/docs/html/dsps__h__gen_8c__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_h_gen.c + + +Node1 + + +dsps_h_gen.c + + + + + +Node2 + + +dsps_h_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + diff --git a/docs/html/dsps__h__gen_8c_source.html b/docs/html/dsps__h__gen_8c_source.html new file mode 100644 index 0000000..88eb22e --- /dev/null +++ b/docs/html/dsps__h__gen_8c_source.html @@ -0,0 +1,145 @@ + + + + + + + +ESP-IDF Firmware: dsps_h_gen.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_h_gen.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_h_gen.h"
+
16
+
+
17esp_err_t dsps_h_gen_f32(float *output, int len, int pos)
+
18{
+
19 if (pos >= len) {
+ +
21 }
+
22 if (pos < 0) {
+ +
24 }
+
25 for (int i = 0 ; i < pos ; i++) {
+
26 output[i] = 0;
+
27 }
+
28 for (int i = pos ; i < len ; i++) {
+
29 output[i] = 1;
+
30 }
+
31 return ESP_OK;
+
32}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
esp_err_t dsps_h_gen_f32(float *output, int len, int pos)
Heviside function.
Definition dsps_h_gen.c:17
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__h__gen_8h.html b/docs/html/dsps__h__gen_8h.html new file mode 100644 index 0000000..66b3d91 --- /dev/null +++ b/docs/html/dsps__h__gen_8h.html @@ -0,0 +1,196 @@ + + + + + + + +ESP-IDF Firmware: dsps_h_gen.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_h_gen.h File Reference
+
+
+
#include "dsp_err.h"
+
+Include dependency graph for dsps_h_gen.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_h_gen_f32 (float *output, int len, int pos)
 Heviside function.
+

Function Documentation

+ +

◆ dsps_h_gen_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_h_gen_f32 (float * output,
int len,
int pos )
+
+ +

Heviside function.

+

The Heviside function. output[i]=0, if i=[0..pos) output[i]=1, if i=[pos..N) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
outputoutput array.
lenlength of the input signal
posheviside function position
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_h_gen.c.

+
18{
+
19 if (pos >= len) {
+ +
21 }
+
22 if (pos < 0) {
+ +
24 }
+
25 for (int i = 0 ; i < pos ; i++) {
+
26 output[i] = 0;
+
27 }
+
28 for (int i = pos ; i < len ; i++) {
+
29 output[i] = 1;
+
30 }
+
31 return ESP_OK;
+
32}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__h__gen_8h.js b/docs/html/dsps__h__gen_8h.js new file mode 100644 index 0000000..b4fa5df --- /dev/null +++ b/docs/html/dsps__h__gen_8h.js @@ -0,0 +1,4 @@ +var dsps__h__gen_8h = +[ + [ "dsps_h_gen_f32", "dsps__h__gen_8h.html#a35293852541d8d6ee1f44f1ca1c14214", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__h__gen_8h__dep__incl.md5 b/docs/html/dsps__h__gen_8h__dep__incl.md5 new file mode 100644 index 0000000..689fe9f --- /dev/null +++ b/docs/html/dsps__h__gen_8h__dep__incl.md5 @@ -0,0 +1 @@ +acfd2d233830210d8864bcdaeac1c62a \ No newline at end of file diff --git a/docs/html/dsps__h__gen_8h__dep__incl.svg b/docs/html/dsps__h__gen_8h__dep__incl.svg new file mode 100644 index 0000000..bc9373e --- /dev/null +++ b/docs/html/dsps__h__gen_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_h_gen.h + + +Node1 + + +dsps_h_gen.h + + + + + +Node2 + + +dsps_h_gen.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__h__gen_8h__dep__incl_org.svg b/docs/html/dsps__h__gen_8h__dep__incl_org.svg new file mode 100644 index 0000000..d5a1ae0 --- /dev/null +++ b/docs/html/dsps__h__gen_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dsps_h_gen.h + + +Node1 + + +dsps_h_gen.h + + + + + +Node2 + + +dsps_h_gen.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + diff --git a/docs/html/dsps__h__gen_8h__incl.md5 b/docs/html/dsps__h__gen_8h__incl.md5 new file mode 100644 index 0000000..67be299 --- /dev/null +++ b/docs/html/dsps__h__gen_8h__incl.md5 @@ -0,0 +1 @@ +652c6e23d8cc1db76d2ff38d4268fc85 \ No newline at end of file diff --git a/docs/html/dsps__h__gen_8h__incl.svg b/docs/html/dsps__h__gen_8h__incl.svg new file mode 100644 index 0000000..6954b65 --- /dev/null +++ b/docs/html/dsps__h__gen_8h__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_h_gen.h + + +Node1 + + +dsps_h_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__h__gen_8h__incl_org.svg b/docs/html/dsps__h__gen_8h__incl_org.svg new file mode 100644 index 0000000..ba2f034 --- /dev/null +++ b/docs/html/dsps__h__gen_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_h_gen.h + + +Node1 + + +dsps_h_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__h__gen_8h_source.html b/docs/html/dsps__h__gen_8h_source.html new file mode 100644 index 0000000..362ef3f --- /dev/null +++ b/docs/html/dsps__h__gen_8h_source.html @@ -0,0 +1,141 @@ + + + + + + + +ESP-IDF Firmware: dsps_h_gen.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_h_gen.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_h_gen_H_
+
16#define _dsps_h_gen_H_
+
17#include "dsp_err.h"
+
18
+
19
+
20#ifdef __cplusplus
+
21extern "C"
+
22{
+
23#endif
+
24
+
41
+
42esp_err_t dsps_h_gen_f32(float *output, int len, int pos);
+
43
+
44#ifdef __cplusplus
+
45}
+
46#endif
+
47
+
48#endif // _dsps_h_gen_H_
+ +
esp_err_t dsps_h_gen_f32(float *output, int len, int pos)
Heviside function.
Definition dsps_h_gen.c:17
+
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__math_8h.html b/docs/html/dsps__math_8h.html new file mode 100644 index 0000000..a949175 --- /dev/null +++ b/docs/html/dsps__math_8h.html @@ -0,0 +1,131 @@ + + + + + + + +ESP-IDF Firmware: dsps_math.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_math.h File Reference
+
+
+
#include "dsps_add.h"
+#include "dsps_sub.h"
+#include "dsps_mul.h"
+#include "dsps_addc.h"
+#include "dsps_mulc.h"
+#include "dsps_sqrt.h"
+
+Include dependency graph for dsps_math.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__math_8h__dep__incl.md5 b/docs/html/dsps__math_8h__dep__incl.md5 new file mode 100644 index 0000000..8ec4fac --- /dev/null +++ b/docs/html/dsps__math_8h__dep__incl.md5 @@ -0,0 +1 @@ +3aa63cd88226f4c1bf19c97bc8e26d95 \ No newline at end of file diff --git a/docs/html/dsps__math_8h__dep__incl.svg b/docs/html/dsps__math_8h__dep__incl.svg new file mode 100644 index 0000000..1e115b8 --- /dev/null +++ b/docs/html/dsps__math_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_math.h + + +Node1 + + +dsps_math.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node36 + + +mat.cpp + + + + + +Node1->Node36 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +dsp_tests.h + + + + + +Node2->Node14 + + + + + + + + +Node21 + + +graphics_support.h + + + + + +Node2->Node21 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node2->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node2->Node25 + + + + + + + + +Node27 + + +init_display.c + + + + + +Node2->Node27 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node2->Node28 + + + + + + + + +Node29 + + +kalman_filter_demo.cpp + + + + + +Node2->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node2->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node2->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +main.c + + + + + +Node2->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node2->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node2->Node35 + + + + + + + + +Node15 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fird_init_s16.c + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +dsps_firmr_f32_ansi.c + + + + + +Node14->Node17 + + + + + + + + +Node18 + + +dsps_firmr_init_f32.c + + + + + +Node14->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_s16.c + + + + + +Node14->Node19 + + + + + + + + +Node20 + + +dsps_firmr_s16_ansi.c + + + + + +Node14->Node20 + + + + + + + + +Node22 + + +graphics_support.cpp + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__math_8h__dep__incl_org.svg b/docs/html/dsps__math_8h__dep__incl_org.svg new file mode 100644 index 0000000..dbf61b0 --- /dev/null +++ b/docs/html/dsps__math_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dsps_math.h + + +Node1 + + +dsps_math.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node36 + + +mat.cpp + + + + + +Node1->Node36 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +dsp_tests.h + + + + + +Node2->Node14 + + + + + + + + +Node21 + + +graphics_support.h + + + + + +Node2->Node21 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node2->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node2->Node25 + + + + + + + + +Node27 + + +init_display.c + + + + + +Node2->Node27 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node2->Node28 + + + + + + + + +Node29 + + +kalman_filter_demo.cpp + + + + + +Node2->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node2->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node2->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +main.c + + + + + +Node2->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node2->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node2->Node35 + + + + + + + + +Node15 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fird_init_s16.c + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +dsps_firmr_f32_ansi.c + + + + + +Node14->Node17 + + + + + + + + +Node18 + + +dsps_firmr_init_f32.c + + + + + +Node14->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_s16.c + + + + + +Node14->Node19 + + + + + + + + +Node20 + + +dsps_firmr_s16_ansi.c + + + + + +Node14->Node20 + + + + + + + + +Node22 + + +graphics_support.cpp + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + diff --git a/docs/html/dsps__math_8h__incl.md5 b/docs/html/dsps__math_8h__incl.md5 new file mode 100644 index 0000000..3b19b80 --- /dev/null +++ b/docs/html/dsps__math_8h__incl.md5 @@ -0,0 +1 @@ +697e159eaae0da77a01e696829f2a13d \ No newline at end of file diff --git a/docs/html/dsps__math_8h__incl.svg b/docs/html/dsps__math_8h__incl.svg new file mode 100644 index 0000000..b2af5b1 --- /dev/null +++ b/docs/html/dsps__math_8h__incl.svg @@ -0,0 +1,473 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_math.h + + +Node1 + + +dsps_math.h + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsps_sub.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +dsps_mul.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dsps_addc.h + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +dsps_mulc.h + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +dsps_sqrt.h + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dsps_sub_platform.h + + + + + +Node10->Node11 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12->Node3 + + + + + + + + +Node13 + + +dsps_mul_platform.h + + + + + +Node12->Node13 + + + + + + + + +Node13->Node9 + + + + + + + + +Node14->Node3 + + + + + + + + +Node15 + + +dsps_addc_platform.h + + + + + +Node14->Node15 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16->Node3 + + + + + + + + +Node17 + + +dsps_mulc_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node9 + + + + + + + + +Node18->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__math_8h__incl_org.svg b/docs/html/dsps__math_8h__incl_org.svg new file mode 100644 index 0000000..1b2664a --- /dev/null +++ b/docs/html/dsps__math_8h__incl_org.svg @@ -0,0 +1,390 @@ + + + + + + +dsps_math.h + + +Node1 + + +dsps_math.h + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +dsps_sub.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +dsps_mul.h + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +dsps_addc.h + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +dsps_mulc.h + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +dsps_sqrt.h + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dsps_sub_platform.h + + + + + +Node10->Node11 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12->Node3 + + + + + + + + +Node13 + + +dsps_mul_platform.h + + + + + +Node12->Node13 + + + + + + + + +Node13->Node9 + + + + + + + + +Node14->Node3 + + + + + + + + +Node15 + + +dsps_addc_platform.h + + + + + +Node14->Node15 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16->Node3 + + + + + + + + +Node17 + + +dsps_mulc_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node9 + + + + + + + + +Node18->Node3 + + + + + + + + diff --git a/docs/html/dsps__math_8h_source.html b/docs/html/dsps__math_8h_source.html new file mode 100644 index 0000000..767eab1 --- /dev/null +++ b/docs/html/dsps__math_8h_source.html @@ -0,0 +1,137 @@ + + + + + + + +ESP-IDF Firmware: dsps_math.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_math.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_math_H_
+
16#define _dsps_math_H_
+
17
+
18#include "dsps_add.h"
+
19#include "dsps_sub.h"
+
20#include "dsps_mul.h"
+
21#include "dsps_addc.h"
+
22#include "dsps_mulc.h"
+
23#include "dsps_sqrt.h"
+
24
+
25#endif // _dsps_math_H_
+ + + + + + +
+
+
+ + + + diff --git a/docs/html/dsps__mem_8h.html b/docs/html/dsps__mem_8h.html new file mode 100644 index 0000000..a74b8fd --- /dev/null +++ b/docs/html/dsps__mem_8h.html @@ -0,0 +1,241 @@ + + + + + + + +ESP-IDF Firmware: dsps_mem.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mem.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsp_common.h"
+#include "dsps_mem_platform.h"
+
+Include dependency graph for dsps_mem.h:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + +
#define dsps_memcpy   memcpy
#define dsps_memset   memset
void * dsps_memcpy_aes3 (void *arr_dest, const void *arr_src, size_t arr_len)
 memory copy function using esp32s3 TIE
void * dsps_memset_aes3 (void *arr_dest, uint8_t set_val, size_t set_size)
 memory set function using esp32s3 TIE
+

Macro Definition Documentation

+ +

◆ dsps_memcpy

+ +
+
+ + + + +
#define dsps_memcpy   memcpy
+
+ +

Definition at line 63 of file dsps_mem.h.

+ +
+
+ +

◆ dsps_memset

+ +
+
+ + + + +
#define dsps_memset   memset
+
+ +

Definition at line 64 of file dsps_mem.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_memcpy_aes3()

+ +
+
+ + + + + + + + + + + + + + + + +
void * dsps_memcpy_aes3 (void * arr_dest,
const void * arr_src,
size_t arr_len )
+
+ +

memory copy function using esp32s3 TIE

+

The extension (_aes3) is optimized for esp32S3 chip.

+
Parameters
+ + + + +
arr_destpointer to the destination array
arr_srcpointer to the source array
arr_lencount of bytes to be copied from arr_src to arr_dest
+
+
+
Returns
: pointer to dest array
+ +
+
+ +

◆ dsps_memset_aes3()

+ +
+
+ + + + + + + + + + + + + + + + +
void * dsps_memset_aes3 (void * arr_dest,
uint8_t set_val,
size_t set_size )
+
+ +

memory set function using esp32s3 TIE

+

The extension (_aes3) is optimized for esp32S3 chip.

+
Parameters
+ + + + +
arr_destpointer to the destination array
set_valbyte value, the dest array will be set with
set_sizecount of bytes, the dest array will be set with
+
+
+
Returns
: pointer to dest array
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__mem_8h.js b/docs/html/dsps__mem_8h.js new file mode 100644 index 0000000..86eeb8d --- /dev/null +++ b/docs/html/dsps__mem_8h.js @@ -0,0 +1,7 @@ +var dsps__mem_8h = +[ + [ "dsps_memcpy", "dsps__mem_8h.html#a16dabce5753d7e8c417f754ccae0ef8a", null ], + [ "dsps_memset", "dsps__mem_8h.html#a2e5fe95b07a27f4e31d1ea26b09b8a0b", null ], + [ "dsps_memcpy_aes3", "dsps__mem_8h.html#a45c91766563220b22ab29dfe872fab50", null ], + [ "dsps_memset_aes3", "dsps__mem_8h.html#ae7b30dcbf4f73bdf5159248406b88448", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__mem_8h__incl.md5 b/docs/html/dsps__mem_8h__incl.md5 new file mode 100644 index 0000000..e9d0123 --- /dev/null +++ b/docs/html/dsps__mem_8h__incl.md5 @@ -0,0 +1 @@ +3b329302e9de9e3eabaeee4e252cbf3c \ No newline at end of file diff --git a/docs/html/dsps__mem_8h__incl.svg b/docs/html/dsps__mem_8h__incl.svg new file mode 100644 index 0000000..40c3bf1 --- /dev/null +++ b/docs/html/dsps__mem_8h__incl.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + +dsps_mem.h + + +Node1 + + +dsps_mem.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsp_common.h + + + + + +Node1->Node7 + + + + + + + + +Node11 + + +dsps_mem_platform.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node7->Node2 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8 + + +stdbool.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node7->Node10 + + + + + + + + +Node12 + + +sdkconfig.h + + + + + +Node11->Node12 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mem_8h__incl_org.svg b/docs/html/dsps__mem_8h__incl_org.svg new file mode 100644 index 0000000..224d94e --- /dev/null +++ b/docs/html/dsps__mem_8h__incl_org.svg @@ -0,0 +1,237 @@ + + + + + + +dsps_mem.h + + +Node1 + + +dsps_mem.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsp_common.h + + + + + +Node1->Node7 + + + + + + + + +Node11 + + +dsps_mem_platform.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node7->Node2 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8 + + +stdbool.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node7->Node10 + + + + + + + + +Node12 + + +sdkconfig.h + + + + + +Node11->Node12 + + + + + + + + diff --git a/docs/html/dsps__mem_8h_source.html b/docs/html/dsps__mem_8h_source.html new file mode 100644 index 0000000..a84830d --- /dev/null +++ b/docs/html/dsps__mem_8h_source.html @@ -0,0 +1,154 @@ + + + + + + + +ESP-IDF Firmware: dsps_mem.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mem.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#ifndef _dsps_mem_H_
+
8#define _dsps_mem_H_
+
9
+
10#include "dsp_err.h"
+
11#include "dsp_common.h"
+
12#include "dsps_mem_platform.h"
+
13
+
14#ifdef __cplusplus
+
15extern "C"
+
16{
+
17#endif
+
18
+
31void *dsps_memcpy_aes3(void *arr_dest, const void *arr_src, size_t arr_len);
+
32
+
45void *dsps_memset_aes3(void *arr_dest, uint8_t set_val, size_t set_size);
+
46
+
47#ifdef __cplusplus
+
48}
+
49#endif
+
50
+
51#if CONFIG_DSP_OPTIMIZED
+
52
+
53#if dsps_mem_aes3_enbled
+
54#define dsps_memcpy dsps_memcpy_aes3
+
55#define dsps_memset dsps_memset_aes3
+
56#else
+
57#define dsps_memcpy memcpy
+
58#define dsps_memset memset
+
59#endif
+
60
+
61#else // CONFIG_DSP_OPTIMIZED
+
62
+
63#define dsps_memcpy memcpy
+
64#define dsps_memset memset
+
65
+
66#endif // CONFIG_DSP_OPTIMIZED
+
67#endif // _dsps_mem_H_
+ + +
void * dsps_memcpy_aes3(void *arr_dest, const void *arr_src, size_t arr_len)
memory copy function using esp32s3 TIE
+
void * dsps_memset_aes3(void *arr_dest, uint8_t set_val, size_t set_size)
memory set function using esp32s3 TIE
+ +
+
+
+ + + + diff --git a/docs/html/dsps__mem__platform_8h.html b/docs/html/dsps__mem__platform_8h.html new file mode 100644 index 0000000..b4fc390 --- /dev/null +++ b/docs/html/dsps__mem__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_mem_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mem_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_mem_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__mem__platform_8h__dep__incl.md5 b/docs/html/dsps__mem__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..36fa90e --- /dev/null +++ b/docs/html/dsps__mem__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +9258b4fd6e4a82dfdd2117b2630a72b3 \ No newline at end of file diff --git a/docs/html/dsps__mem__platform_8h__dep__incl.svg b/docs/html/dsps__mem__platform_8h__dep__incl.svg new file mode 100644 index 0000000..64217a6 --- /dev/null +++ b/docs/html/dsps__mem__platform_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_mem_platform.h + + +Node1 + + +dsps_mem_platform.h + + + + + +Node2 + + +dsps_mem.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mem__platform_8h__dep__incl_org.svg b/docs/html/dsps__mem__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..8afd2a3 --- /dev/null +++ b/docs/html/dsps__mem__platform_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_mem_platform.h + + +Node1 + + +dsps_mem_platform.h + + + + + +Node2 + + +dsps_mem.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__mem__platform_8h__incl.md5 b/docs/html/dsps__mem__platform_8h__incl.md5 new file mode 100644 index 0000000..04c198d --- /dev/null +++ b/docs/html/dsps__mem__platform_8h__incl.md5 @@ -0,0 +1 @@ +c9645edfbe129a0077630e01de7db8ec \ No newline at end of file diff --git a/docs/html/dsps__mem__platform_8h__incl.svg b/docs/html/dsps__mem__platform_8h__incl.svg new file mode 100644 index 0000000..dbfe0d3 --- /dev/null +++ b/docs/html/dsps__mem__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_mem_platform.h + + +Node1 + + +dsps_mem_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mem__platform_8h__incl_org.svg b/docs/html/dsps__mem__platform_8h__incl_org.svg new file mode 100644 index 0000000..07a1a22 --- /dev/null +++ b/docs/html/dsps__mem__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_mem_platform.h + + +Node1 + + +dsps_mem_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__mem__platform_8h_source.html b/docs/html/dsps__mem__platform_8h_source.html new file mode 100644 index 0000000..5e98122 --- /dev/null +++ b/docs/html/dsps__mem__platform_8h_source.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: dsps_mem_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mem_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_mem_platform_H_
+
2#define _dsps_mem_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#if CONFIG_IDF_TARGET_ESP32S3
+
14#define dsps_mem_aes3_enbled 1
+
15#else
+
16#define dsps_mem_aes3_enbled 0
+
17#endif // CONFIG_IDF_TARGET_ESP32S3
+
18
+
19#endif //
+
20#endif // __XTENSA__
+
21#endif // _dsps_mem_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__mul_8h.html b/docs/html/dsps__mul_8h.html new file mode 100644 index 0000000..4624c94 --- /dev/null +++ b/docs/html/dsps__mul_8h.html @@ -0,0 +1,657 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_mul_platform.h"
+
+Include dependency graph for dsps_mul.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Macros

#define dsps_mul_f32   dsps_mul_f32_ansi
#define dsps_mul_s16   dsps_mul_s16_ansi
#define dsps_mul_s8   dsps_mul_s8_ansi
+ + + + + + + + + + + + +

+Functions

esp_err_t dsps_mul_f32_ansi (const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
 Multiply two arrays.
esp_err_t dsps_mul_f32_ae32 (const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
esp_err_t dsps_mul_s16_ansi (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
 Multiply two arrays.
esp_err_t dsps_mul_s16_ae32 (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_mul_s16_aes3 (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_mul_s8_ansi (const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_mul_s8_aes3 (const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+

Macro Definition Documentation

+ +

◆ dsps_mul_f32

+ +
+
+ + + + +
#define dsps_mul_f32   dsps_mul_f32_ansi
+
+ +

Definition at line 106 of file dsps_mul.h.

+ +
+
+ +

◆ dsps_mul_s16

+ +
+
+ + + + +
#define dsps_mul_s16   dsps_mul_s16_ansi
+
+ +

Definition at line 107 of file dsps_mul.h.

+ +
+
+ +

◆ dsps_mul_s8

+ +
+
+ + + + +
#define dsps_mul_s8   dsps_mul_s8_ansi
+
+ +

Definition at line 108 of file dsps_mul.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_mul_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_f32_ae32 (const float * input1,
const float * input2,
float * output,
int len,
int step1,
int step2,
int step_out )
+
+ +
+
+ +

◆ dsps_mul_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_f32_ansi (const float * input1,
const float * input2,
float * output,
int len,
int step1,
int step2,
int step_out )
+
+ +

Multiply two arrays.

+

The function multiply one input array to another and store result to other array out[i*step_out] = input1[i*step1] * input2[i*step2]; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
[in]input1input array 1
[in]input2input array 2
outputoutput array
lenamount of operations for arrays
step1step over input array 1 (by default should be 1)
step2step over input array 2 (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_mul_f32_ansi.c.

+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 output[i * step_out] = input1[i * step1] * input2[i * step2];
+
31 }
+
32 return ESP_OK;
+
33}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+ +

◆ dsps_mul_s16_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_s16_ae32 (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +
+
+ +

◆ dsps_mul_s16_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_s16_aes3 (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +
+
+ +

◆ dsps_mul_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_s16_ansi (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Multiply two arrays.

+

The function multiply one input array to another and store result to other array out[i*step_out] = input1[i*step1] * input2[i*step2]; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + +
[in]input1input array 1
[in]input2input array 2
outputoutput array
lenamount of operations for arrays
step1step over input array 1 (by default should be 1)
step2step over input array 2 (by default should be 1)
step_outstep over output array (by default should be 1)
shiftoutput shift after multiplication (by default should be 15)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_mul_s16_ansi.c.

+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 int ttt = (int)input1[i * step1] * (int)input2[i * step2];
+
31 output[i * step_out] = ttt >> shift;
+
32 }
+
33 return ESP_OK;
+
34}
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +

Referenced by microphone_read_task(), and microphone_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_mul_s8_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_s8_aes3 (const int8_t * input1,
const int8_t * input2,
int8_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +
+
+ +

◆ dsps_mul_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_s8_ansi (const int8_t * input1,
const int8_t * input2,
int8_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 9 of file dsps_mul_s8_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] * (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__mul_8h.js b/docs/html/dsps__mul_8h.js new file mode 100644 index 0000000..834c41e --- /dev/null +++ b/docs/html/dsps__mul_8h.js @@ -0,0 +1,13 @@ +var dsps__mul_8h = +[ + [ "dsps_mul_f32", "dsps__mul_8h.html#a568d94226602b381c0cd63aff56b1d2f", null ], + [ "dsps_mul_s16", "dsps__mul_8h.html#a124d71ba611d456e1c125512b998a7bf", null ], + [ "dsps_mul_s8", "dsps__mul_8h.html#a7746cab5e35df7dac3b6cdb9d4a60973", null ], + [ "dsps_mul_f32_ae32", "dsps__mul_8h.html#a667fbaf4cd1cb40def5cfb77b5bf4e60", null ], + [ "dsps_mul_f32_ansi", "dsps__mul_8h.html#afce9cea1f23a508cb6176d8cbb2247bb", null ], + [ "dsps_mul_s16_ae32", "dsps__mul_8h.html#ad79bc574935197e029edabfb055b833b", null ], + [ "dsps_mul_s16_aes3", "dsps__mul_8h.html#a05c5a3ec7b13aa6f066cf497a30340b7", null ], + [ "dsps_mul_s16_ansi", "dsps__mul_8h.html#a57903110dc74555482b627bad5e3c6aa", null ], + [ "dsps_mul_s8_aes3", "dsps__mul_8h.html#a06069c8ae4c1a35dc26895892828b304", null ], + [ "dsps_mul_s8_ansi", "dsps__mul_8h.html#a8e762d2240741dc0dd9e3e0afc3e5a74", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__mul_8h__dep__incl.md5 b/docs/html/dsps__mul_8h__dep__incl.md5 new file mode 100644 index 0000000..753fbff --- /dev/null +++ b/docs/html/dsps__mul_8h__dep__incl.md5 @@ -0,0 +1 @@ +9842d0ebcc1358810a319492fc2eb3c3 \ No newline at end of file diff --git a/docs/html/dsps__mul_8h__dep__incl.svg b/docs/html/dsps__mul_8h__dep__incl.svg new file mode 100644 index 0000000..9c9549d --- /dev/null +++ b/docs/html/dsps__mul_8h__dep__incl.svg @@ -0,0 +1,644 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_mul.h + + +Node1 + + +dsps_mul.h + + + + + +Node2 + + +dsps_math.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_mul_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dsps_mul_s16_ansi.c + + + + + +Node1->Node39 + + + + + + + + +Node40 + + +dsps_mul_s8_ansi.c + + + + + +Node1->Node40 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__mul_8h__dep__incl_org.svg b/docs/html/dsps__mul_8h__dep__incl_org.svg new file mode 100644 index 0000000..51681b0 --- /dev/null +++ b/docs/html/dsps__mul_8h__dep__incl_org.svg @@ -0,0 +1,561 @@ + + + + + + +dsps_mul.h + + +Node1 + + +dsps_mul.h + + + + + +Node2 + + +dsps_math.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_mul_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dsps_mul_s16_ansi.c + + + + + +Node1->Node39 + + + + + + + + +Node40 + + +dsps_mul_s8_ansi.c + + + + + +Node1->Node40 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__mul_8h__incl.md5 b/docs/html/dsps__mul_8h__incl.md5 new file mode 100644 index 0000000..23f4faf --- /dev/null +++ b/docs/html/dsps__mul_8h__incl.md5 @@ -0,0 +1 @@ +f03afde9815f124fac83630bb3e1e75f \ No newline at end of file diff --git a/docs/html/dsps__mul_8h__incl.svg b/docs/html/dsps__mul_8h__incl.svg new file mode 100644 index 0000000..53fb389 --- /dev/null +++ b/docs/html/dsps__mul_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_mul.h + + +Node1 + + +dsps_mul.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_mul_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mul_8h__incl_org.svg b/docs/html/dsps__mul_8h__incl_org.svg new file mode 100644 index 0000000..1610c78 --- /dev/null +++ b/docs/html/dsps__mul_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_mul.h + + +Node1 + + +dsps_mul.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_mul_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph.md5 b/docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph.md5 new file mode 100644 index 0000000..655fc85 --- /dev/null +++ b/docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph.md5 @@ -0,0 +1 @@ +146d02d514233aa093a2b7932755e254 \ No newline at end of file diff --git a/docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph.svg b/docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph.svg new file mode 100644 index 0000000..1ccac5d --- /dev/null +++ b/docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsps_mul_s16_ansi + + +Node1 + + +dsps_mul_s16_ansi + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph_org.svg b/docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph_org.svg new file mode 100644 index 0000000..5461b7e --- /dev/null +++ b/docs/html/dsps__mul_8h_a57903110dc74555482b627bad5e3c6aa_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsps_mul_s16_ansi + + +Node1 + + +dsps_mul_s16_ansi + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__mul_8h_source.html b/docs/html/dsps__mul_8h_source.html new file mode 100644 index 0000000..fb89556 --- /dev/null +++ b/docs/html/dsps__mul_8h_source.html @@ -0,0 +1,184 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_mul_H_
+
16#define _dsps_mul_H_
+
17#include "dsp_err.h"
+
18
+
19#include "dsps_mul_platform.h"
+
20
+
21#ifdef __cplusplus
+
22extern "C"
+
23{
+
24#endif
+
25
+
26
+
47esp_err_t dsps_mul_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out);
+
48esp_err_t dsps_mul_f32_ae32(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out);
+
50
+
51
+
73esp_err_t dsps_mul_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift);
+
74esp_err_t dsps_mul_s16_ae32(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift);
+
75esp_err_t dsps_mul_s16_aes3(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift);
+
76
+
77esp_err_t dsps_mul_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift);
+
78esp_err_t dsps_mul_s8_aes3(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift);
+
79
+
81
+
82#ifdef __cplusplus
+
83}
+
84#endif
+
85
+
86#if CONFIG_DSP_OPTIMIZED
+
87
+
88#if (dsps_mul_f32_ae32_enabled == 1)
+
89#define dsps_mul_f32 dsps_mul_f32_ae32
+
90#else
+
91#define dsps_mul_f32 dsps_mul_f32_ansi
+
92#endif
+
93
+
94#if (dsps_mul_s16_aes3_enabled == 1)
+
95#define dsps_mul_s16 dsps_mul_s16_aes3
+
96#define dsps_mul_s8 dsps_mul_s8_aes3
+
97#elif (dsps_mul_s16_ae32_enabled == 1)
+
98#define dsps_mul_s16 dsps_mul_s16_ae32
+
99#define dsps_mul_s8 dsps_mul_s8_ansi
+
100#else
+
101#define dsps_mul_s16 dsps_mul_s16_ansi
+
102#define dsps_mul_s8 dsps_mul_s8_ansi
+
103#endif
+
104
+
105#else // CONFIG_DSP_OPTIMIZED
+
106#define dsps_mul_f32 dsps_mul_f32_ansi
+
107#define dsps_mul_s16 dsps_mul_s16_ansi
+
108#define dsps_mul_s8 dsps_mul_s8_ansi
+
109#endif // CONFIG_DSP_OPTIMIZED
+
110
+
111#endif // _dsps_mul_H_
+ +
esp_err_t dsps_mul_s16_aes3(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_mul_s8_aes3(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_mul_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
Multiply two arrays.
+
esp_err_t dsps_mul_f32_ae32(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
+
esp_err_t dsps_mul_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_mul_s16_ae32(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_mul_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
Multiply two arrays.
+ +
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__mul__f32__ansi_8c.html b/docs/html/dsps__mul__f32__ansi_8c.html new file mode 100644 index 0000000..abe20e7 --- /dev/null +++ b/docs/html/dsps__mul__f32__ansi_8c.html @@ -0,0 +1,216 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul_f32_ansi.c File Reference
+
+
+
#include "dsps_mul.h"
+
+Include dependency graph for dsps_mul_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_mul_f32_ansi (const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
 Multiply two arrays.
+

Function Documentation

+ +

◆ dsps_mul_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_f32_ansi (const float * input1,
const float * input2,
float * output,
int len,
int step1,
int step2,
int step_out )
+
+ +

Multiply two arrays.

+

The function multiply one input array to another and store result to other array out[i*step_out] = input1[i*step1] * input2[i*step2]; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
[in]input1input array 1
[in]input2input array 2
outputoutput array
lenamount of operations for arrays
step1step over input array 1 (by default should be 1)
step2step over input array 2 (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_mul_f32_ansi.c.

+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 output[i * step_out] = input1[i * step1] * input2[i * step2];
+
31 }
+
32 return ESP_OK;
+
33}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__mul__f32__ansi_8c.js b/docs/html/dsps__mul__f32__ansi_8c.js new file mode 100644 index 0000000..548738c --- /dev/null +++ b/docs/html/dsps__mul__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__mul__f32__ansi_8c = +[ + [ "dsps_mul_f32_ansi", "dsps__mul__f32__ansi_8c.html#afce9cea1f23a508cb6176d8cbb2247bb", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__mul__f32__ansi_8c__incl.md5 b/docs/html/dsps__mul__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..a72b12e --- /dev/null +++ b/docs/html/dsps__mul__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +d31e422557a181f1515bb8dc8cf00b0f \ No newline at end of file diff --git a/docs/html/dsps__mul__f32__ansi_8c__incl.svg b/docs/html/dsps__mul__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..b783339 --- /dev/null +++ b/docs/html/dsps__mul__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_mul_f32_ansi.c + + +Node1 + + +dsps_mul_f32_ansi.c + + + + + +Node2 + + +dsps_mul.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mul_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mul__f32__ansi_8c__incl_org.svg b/docs/html/dsps__mul__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..f64fb46 --- /dev/null +++ b/docs/html/dsps__mul__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_mul_f32_ansi.c + + +Node1 + + +dsps_mul_f32_ansi.c + + + + + +Node2 + + +dsps_mul.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mul_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__mul__f32__ansi_8c_source.html b/docs/html/dsps__mul__f32__ansi_8c_source.html new file mode 100644 index 0000000..2d1a818 --- /dev/null +++ b/docs/html/dsps__mul__f32__ansi_8c_source.html @@ -0,0 +1,146 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_mul.h"
+
16
+
+
17esp_err_t dsps_mul_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 output[i * step_out] = input1[i * step1] * input2[i * step2];
+
31 }
+
32 return ESP_OK;
+
33}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_mul_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
Multiply two arrays.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__mul__platform_8h.html b/docs/html/dsps__mul__platform_8h.html new file mode 100644 index 0000000..c637a55 --- /dev/null +++ b/docs/html/dsps__mul__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_mul_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__mul__platform_8h__dep__incl.md5 b/docs/html/dsps__mul__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..8c85c18 --- /dev/null +++ b/docs/html/dsps__mul__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +5e111bbcb23c39b29a8746ed9c1348a8 \ No newline at end of file diff --git a/docs/html/dsps__mul__platform_8h__dep__incl.svg b/docs/html/dsps__mul__platform_8h__dep__incl.svg new file mode 100644 index 0000000..5f6b408 --- /dev/null +++ b/docs/html/dsps__mul__platform_8h__dep__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_mul_platform.h + + +Node1 + + +dsps_mul_platform.h + + + + + +Node2 + + +dsps_mul.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_math.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dsps_mul_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node40 + + +dsps_mul_s16_ansi.c + + + + + +Node2->Node40 + + + + + + + + +Node41 + + +dsps_mul_s8_ansi.c + + + + + +Node2->Node41 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mul__platform_8h__dep__incl_org.svg b/docs/html/dsps__mul__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..b387fc7 --- /dev/null +++ b/docs/html/dsps__mul__platform_8h__dep__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_mul_platform.h + + +Node1 + + +dsps_mul_platform.h + + + + + +Node2 + + +dsps_mul.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_math.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dsps_mul_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node40 + + +dsps_mul_s16_ansi.c + + + + + +Node2->Node40 + + + + + + + + +Node41 + + +dsps_mul_s8_ansi.c + + + + + +Node2->Node41 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + diff --git a/docs/html/dsps__mul__platform_8h__incl.md5 b/docs/html/dsps__mul__platform_8h__incl.md5 new file mode 100644 index 0000000..243037b --- /dev/null +++ b/docs/html/dsps__mul__platform_8h__incl.md5 @@ -0,0 +1 @@ +4487bbc1aa53fa45a98569b4e3d7ddce \ No newline at end of file diff --git a/docs/html/dsps__mul__platform_8h__incl.svg b/docs/html/dsps__mul__platform_8h__incl.svg new file mode 100644 index 0000000..c2426f8 --- /dev/null +++ b/docs/html/dsps__mul__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_mul_platform.h + + +Node1 + + +dsps_mul_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mul__platform_8h__incl_org.svg b/docs/html/dsps__mul__platform_8h__incl_org.svg new file mode 100644 index 0000000..06c3a4f --- /dev/null +++ b/docs/html/dsps__mul__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_mul_platform.h + + +Node1 + + +dsps_mul_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__mul__platform_8h_source.html b/docs/html/dsps__mul__platform_8h_source.html new file mode 100644 index 0000000..70ec8cd --- /dev/null +++ b/docs/html/dsps__mul__platform_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_mul_platform_H_
+
2#define _dsps_mul_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dsps_mul_f32_ae32_enabled 1
+
14#define dsps_mul_s16_ae32_enabled 1
+
15
+
16#endif
+
17
+
18#if (XCHAL_HAVE_LOOPS == 1)
+
19#define dsps_mul_f32_ae32_enabled 1
+
20#define dsps_mul_s16_ae32_enabled 1
+
21#endif
+
22
+
23#if (CONFIG_IDF_TARGET_ESP32S3 == 1)
+
24#define dsps_mul_f32_ae32_enabled 1
+
25#define dsps_mul_s16_aes3_enabled 1
+
26#endif
+
27
+
28#endif // __XTENSA__
+
29
+
30#endif // _dsps_mul_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__mul__s16__ansi_8c.html b/docs/html/dsps__mul__s16__ansi_8c.html new file mode 100644 index 0000000..3bd14e8 --- /dev/null +++ b/docs/html/dsps__mul__s16__ansi_8c.html @@ -0,0 +1,230 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul_s16_ansi.c File Reference
+
+
+
#include "dsps_mul.h"
+
+Include dependency graph for dsps_mul_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_mul_s16_ansi (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
 Multiply two arrays.
+

Function Documentation

+ +

◆ dsps_mul_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_s16_ansi (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Multiply two arrays.

+

The function multiply one input array to another and store result to other array out[i*step_out] = input1[i*step1] * input2[i*step2]; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + + +
[in]input1input array 1
[in]input2input array 2
outputoutput array
lenamount of operations for arrays
step1step over input array 1 (by default should be 1)
step2step over input array 2 (by default should be 1)
step_outstep over output array (by default should be 1)
shiftoutput shift after multiplication (by default should be 15)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_mul_s16_ansi.c.

+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 int ttt = (int)input1[i * step1] * (int)input2[i * step2];
+
31 output[i * step_out] = ttt >> shift;
+
32 }
+
33 return ESP_OK;
+
34}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +

Referenced by microphone_read_task(), and microphone_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__mul__s16__ansi_8c.js b/docs/html/dsps__mul__s16__ansi_8c.js new file mode 100644 index 0000000..8c84f8f --- /dev/null +++ b/docs/html/dsps__mul__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__mul__s16__ansi_8c = +[ + [ "dsps_mul_s16_ansi", "dsps__mul__s16__ansi_8c.html#a57903110dc74555482b627bad5e3c6aa", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__mul__s16__ansi_8c__incl.md5 b/docs/html/dsps__mul__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..c1a76ed --- /dev/null +++ b/docs/html/dsps__mul__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +72bf739438dd2fd78c22ee8bdec16253 \ No newline at end of file diff --git a/docs/html/dsps__mul__s16__ansi_8c__incl.svg b/docs/html/dsps__mul__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..e2d3fe5 --- /dev/null +++ b/docs/html/dsps__mul__s16__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_mul_s16_ansi.c + + +Node1 + + +dsps_mul_s16_ansi.c + + + + + +Node2 + + +dsps_mul.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mul_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mul__s16__ansi_8c__incl_org.svg b/docs/html/dsps__mul__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..331daf5 --- /dev/null +++ b/docs/html/dsps__mul__s16__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_mul_s16_ansi.c + + +Node1 + + +dsps_mul_s16_ansi.c + + + + + +Node2 + + +dsps_mul.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mul_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph.md5 b/docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph.md5 new file mode 100644 index 0000000..655fc85 --- /dev/null +++ b/docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph.md5 @@ -0,0 +1 @@ +146d02d514233aa093a2b7932755e254 \ No newline at end of file diff --git a/docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph.svg b/docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph.svg new file mode 100644 index 0000000..1ccac5d --- /dev/null +++ b/docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsps_mul_s16_ansi + + +Node1 + + +dsps_mul_s16_ansi + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph_org.svg b/docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph_org.svg new file mode 100644 index 0000000..5461b7e --- /dev/null +++ b/docs/html/dsps__mul__s16__ansi_8c_a57903110dc74555482b627bad5e3c6aa_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsps_mul_s16_ansi + + +Node1 + + +dsps_mul_s16_ansi + + + + + +Node2 + + +microphone_read_task + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +microphone_read_task + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/dsps__mul__s16__ansi_8c_source.html b/docs/html/dsps__mul__s16__ansi_8c_source.html new file mode 100644 index 0000000..f8bcaff --- /dev/null +++ b/docs/html/dsps__mul__s16__ansi_8c_source.html @@ -0,0 +1,147 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul_s16_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_mul.h"
+
16
+
+
17esp_err_t dsps_mul_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 int ttt = (int)input1[i * step1] * (int)input2[i * step2];
+
31 output[i * step_out] = ttt >> shift;
+
32 }
+
33 return ESP_OK;
+
34}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_mul_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
Multiply two arrays.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__mul__s8__ansi_8c.html b/docs/html/dsps__mul__s8__ansi_8c.html new file mode 100644 index 0000000..83830b7 --- /dev/null +++ b/docs/html/dsps__mul__s8__ansi_8c.html @@ -0,0 +1,201 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul_s8_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul_s8_ansi.c File Reference
+
+
+
#include "dsps_mul.h"
+
+Include dependency graph for dsps_mul_s8_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dsps_mul_s8_ansi (const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+

Function Documentation

+ +

◆ dsps_mul_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mul_s8_ansi (const int8_t * input1,
const int8_t * input2,
int8_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 9 of file dsps_mul_s8_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] * (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__mul__s8__ansi_8c.js b/docs/html/dsps__mul__s8__ansi_8c.js new file mode 100644 index 0000000..18f818b --- /dev/null +++ b/docs/html/dsps__mul__s8__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__mul__s8__ansi_8c = +[ + [ "dsps_mul_s8_ansi", "dsps__mul__s8__ansi_8c.html#a8e762d2240741dc0dd9e3e0afc3e5a74", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__mul__s8__ansi_8c__incl.md5 b/docs/html/dsps__mul__s8__ansi_8c__incl.md5 new file mode 100644 index 0000000..63e5441 --- /dev/null +++ b/docs/html/dsps__mul__s8__ansi_8c__incl.md5 @@ -0,0 +1 @@ +e72cf6bc47925d1baf9a56ffb6108632 \ No newline at end of file diff --git a/docs/html/dsps__mul__s8__ansi_8c__incl.svg b/docs/html/dsps__mul__s8__ansi_8c__incl.svg new file mode 100644 index 0000000..87c2e46 --- /dev/null +++ b/docs/html/dsps__mul__s8__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_mul_s8_ansi.c + + +Node1 + + +dsps_mul_s8_ansi.c + + + + + +Node2 + + +dsps_mul.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mul_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mul__s8__ansi_8c__incl_org.svg b/docs/html/dsps__mul__s8__ansi_8c__incl_org.svg new file mode 100644 index 0000000..5d2582e --- /dev/null +++ b/docs/html/dsps__mul__s8__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_mul_s8_ansi.c + + +Node1 + + +dsps_mul_s8_ansi.c + + + + + +Node2 + + +dsps_mul.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mul_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__mul__s8__ansi_8c_source.html b/docs/html/dsps__mul__s8__ansi_8c_source.html new file mode 100644 index 0000000..8f05d07 --- /dev/null +++ b/docs/html/dsps__mul__s8__ansi_8c_source.html @@ -0,0 +1,139 @@ + + + + + + + +ESP-IDF Firmware: dsps_mul_s8_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mul_s8_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_mul.h"
+
8
+
+
9esp_err_t dsps_mul_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] * (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_mul_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__mulc_8h.html b/docs/html/dsps__mulc_8h.html new file mode 100644 index 0000000..533fa2c --- /dev/null +++ b/docs/html/dsps__mulc_8h.html @@ -0,0 +1,402 @@ + + + + + + + +ESP-IDF Firmware: dsps_mulc.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mulc.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_mulc_platform.h"
+
+Include dependency graph for dsps_mulc.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + +
#define dsps_mulc_f32   dsps_mulc_f32_ansi
#define dsps_mulc_s16   dsps_mulc_s16_ansi
esp_err_t dsps_mulc_f32_ansi (const float *input, float *output, int len, float C, int step_in, int step_out)
 multiply constant
esp_err_t dsps_mulc_f32_ae32 (const float *input, float *output, int len, float C, int step_in, int step_out)
esp_err_t dsps_mulc_s16_ae32 (const int16_t *input, int16_t *output, int len, int16_t C, int step_in, int step_out)
esp_err_t dsps_mulc_s16_ansi (const int16_t *input, int16_t *output, int len, int16_t C, int step_in, int step_out)
+

Macro Definition Documentation

+ +

◆ dsps_mulc_f32

+ +
+
+ + + + +
#define dsps_mulc_f32   dsps_mulc_f32_ansi
+
+ +

Definition at line 69 of file dsps_mulc.h.

+ +
+
+ +

◆ dsps_mulc_s16

+ +
+
+ + + + +
#define dsps_mulc_s16   dsps_mulc_s16_ansi
+
+ +

Definition at line 70 of file dsps_mulc.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_mulc_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mulc_f32_ae32 (const float * input,
float * output,
int len,
float C,
int step_in,
int step_out )
+
+ +

References C.

+ +
+
+ +

◆ dsps_mulc_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mulc_f32_ansi (const float * input,
float * output,
int len,
float C,
int step_in,
int step_out )
+
+ +

multiply constant

+

The function multiplies input array to the constant value x[i*step_out] = y[i*step_in]*C; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + +
[in]inputinput array
outputoutput array
lenamount of operations for arrays
Cconstant value
step_instep over input array (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_mulc_f32_ansi.c.

+
18{
+
19 if (NULL == input) {
+ +
21 }
+
22 if (NULL == output) {
+ +
24 }
+
25
+
26 for (int i = 0 ; i < len ; i++) {
+
27 output[i * step_out] = input[i * step_in] * C;
+
28 }
+
29 return ESP_OK;
+
30}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +

Referenced by audio_read_task(), audio_read_task(), audio_read_task(), dspm::Mat::operator*=(), and dspm::Mat::operator/=().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_mulc_s16_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mulc_s16_ae32 (const int16_t * input,
int16_t * output,
int len,
int16_t C,
int step_in,
int step_out )
+
+ +

References C.

+ +
+
+ +

◆ dsps_mulc_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mulc_s16_ansi (const int16_t * input,
int16_t * output,
int len,
int16_t C,
int step_in,
int step_out )
+
+ +

Definition at line 17 of file dsps_mulc_s16_ansi.c.

+
18{
+
19 if (NULL == input) {
+ +
21 }
+
22 if (NULL == output) {
+ +
24 }
+
25
+
26 for (int i = 0 ; i < len ; i++) {
+
27 int32_t acc = (int32_t)input[i * step_in] * (int32_t)C;
+
28 output[i * step_out] = (int16_t)(acc >> 15);
+
29 }
+
30 return ESP_OK;
+
31}
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__mulc_8h.js b/docs/html/dsps__mulc_8h.js new file mode 100644 index 0000000..ee3df95 --- /dev/null +++ b/docs/html/dsps__mulc_8h.js @@ -0,0 +1,9 @@ +var dsps__mulc_8h = +[ + [ "dsps_mulc_f32", "dsps__mulc_8h.html#a43db4d6fa17fd7545b951b32fa475244", null ], + [ "dsps_mulc_s16", "dsps__mulc_8h.html#a4ffb65eaade2bffb4f1336ed22216b18", null ], + [ "dsps_mulc_f32_ae32", "dsps__mulc_8h.html#a19346f642097e98fc416e34894f68f15", null ], + [ "dsps_mulc_f32_ansi", "dsps__mulc_8h.html#a60b32e0d6ff107c7ff8307e2ff612c84", null ], + [ "dsps_mulc_s16_ae32", "dsps__mulc_8h.html#aec5001390b124c0e54c235e05e7880ca", null ], + [ "dsps_mulc_s16_ansi", "dsps__mulc_8h.html#a0846ed70020d889f9efb142ce8025a1b", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__mulc_8h__dep__incl.md5 b/docs/html/dsps__mulc_8h__dep__incl.md5 new file mode 100644 index 0000000..2caf11a --- /dev/null +++ b/docs/html/dsps__mulc_8h__dep__incl.md5 @@ -0,0 +1 @@ +0556fd425063aa8e9221bc487e76c93c \ No newline at end of file diff --git a/docs/html/dsps__mulc_8h__dep__incl.svg b/docs/html/dsps__mulc_8h__dep__incl.svg new file mode 100644 index 0000000..f02ec41 --- /dev/null +++ b/docs/html/dsps__mulc_8h__dep__incl.svg @@ -0,0 +1,626 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_mulc.h + + +Node1 + + +dsps_mulc.h + + + + + +Node2 + + +dsps_math.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_mulc_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dsps_mulc_s16_ansi.c + + + + + +Node1->Node39 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__mulc_8h__dep__incl_org.svg b/docs/html/dsps__mulc_8h__dep__incl_org.svg new file mode 100644 index 0000000..fbedbce --- /dev/null +++ b/docs/html/dsps__mulc_8h__dep__incl_org.svg @@ -0,0 +1,543 @@ + + + + + + +dsps_mulc.h + + +Node1 + + +dsps_mulc.h + + + + + +Node2 + + +dsps_math.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_mulc_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dsps_mulc_s16_ansi.c + + + + + +Node1->Node39 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__mulc_8h__incl.md5 b/docs/html/dsps__mulc_8h__incl.md5 new file mode 100644 index 0000000..df2be29 --- /dev/null +++ b/docs/html/dsps__mulc_8h__incl.md5 @@ -0,0 +1 @@ +8632a998f7d28db0b2e03a7c44573ae9 \ No newline at end of file diff --git a/docs/html/dsps__mulc_8h__incl.svg b/docs/html/dsps__mulc_8h__incl.svg new file mode 100644 index 0000000..56da3f8 --- /dev/null +++ b/docs/html/dsps__mulc_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_mulc.h + + +Node1 + + +dsps_mulc.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_mulc_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mulc_8h__incl_org.svg b/docs/html/dsps__mulc_8h__incl_org.svg new file mode 100644 index 0000000..0b21089 --- /dev/null +++ b/docs/html/dsps__mulc_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_mulc.h + + +Node1 + + +dsps_mulc.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_mulc_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 b/docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 new file mode 100644 index 0000000..0e5849b --- /dev/null +++ b/docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 @@ -0,0 +1 @@ +bec3ddd15abadae78b52ff58792abc07 \ No newline at end of file diff --git a/docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg b/docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg new file mode 100644 index 0000000..7597682 --- /dev/null +++ b/docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg @@ -0,0 +1,209 @@ + + + + + + + + + + + + +dsps_mulc_f32_ansi + + +Node1 + + +dsps_mulc_f32_ansi + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +audio_read_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +audio_read_task + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::operator*= + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::operator/= + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph_org.svg b/docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph_org.svg new file mode 100644 index 0000000..1472fdf --- /dev/null +++ b/docs/html/dsps__mulc_8h_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph_org.svg @@ -0,0 +1,183 @@ + + + + + + +dsps_mulc_f32_ansi + + +Node1 + + +dsps_mulc_f32_ansi + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +audio_read_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +audio_read_task + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::operator*= + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::operator/= + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/dsps__mulc_8h_source.html b/docs/html/dsps__mulc_8h_source.html new file mode 100644 index 0000000..31308a8 --- /dev/null +++ b/docs/html/dsps__mulc_8h_source.html @@ -0,0 +1,169 @@ + + + + + + + +ESP-IDF Firmware: dsps_mulc.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mulc.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_mulc_H_
+
16#define _dsps_mulc_H_
+
17#include "dsp_err.h"
+
18
+
19#include "dsps_mulc_platform.h"
+
20
+
21#ifdef __cplusplus
+
22extern "C"
+
23{
+
24#endif
+
25
+
45esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out);
+
46esp_err_t dsps_mulc_f32_ae32(const float *input, float *output, int len, float C, int step_in, int step_out);
+
47
+
48esp_err_t dsps_mulc_s16_ae32(const int16_t *input, int16_t *output, int len, int16_t C, int step_in, int step_out);
+
49esp_err_t dsps_mulc_s16_ansi(const int16_t *input, int16_t *output, int len, int16_t C, int step_in, int step_out);
+
50
+
51
+
52#ifdef __cplusplus
+
53}
+
54#endif
+
55
+
56#if CONFIG_DSP_OPTIMIZED
+
57#if (dsps_mulc_f32_ae32_enabled == 1)
+
58#define dsps_mulc_f32 dsps_mulc_f32_ae32
+
59#else //
+
60#define dsps_mulc_f32 dsps_mulc_f32_ansi
+
61#endif
+
62#if (dsps_mulc_s16_ae32_enabled == 1)
+
63#define dsps_mulc_s16 dsps_mulc_s16_ae32
+
64#else
+
65#define dsps_mulc_s16 dsps_mulc_s16_ansi
+
66#endif // dsps_mulc_s16_ae32_enabled
+
67
+
68#else
+
69#define dsps_mulc_f32 dsps_mulc_f32_ansi
+
70#define dsps_mulc_s16 dsps_mulc_s16_ansi
+
71#endif
+
72
+
73
+
74#endif // _dsps_mulc_H_
+ +
esp_err_t dsps_mulc_s16_ansi(const int16_t *input, int16_t *output, int len, int16_t C, int step_in, int step_out)
+
esp_err_t dsps_mulc_f32_ae32(const float *input, float *output, int len, float C, int step_in, int step_out)
+
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+
esp_err_t dsps_mulc_s16_ae32(const int16_t *input, int16_t *output, int len, int16_t C, int step_in, int step_out)
+ +
int esp_err_t
Definition esp_err.h:21
+
float C[4][16]
Definition test_mmult.c:22
+
+
+
+ + + + diff --git a/docs/html/dsps__mulc__f32__ansi_8c.html b/docs/html/dsps__mulc__f32__ansi_8c.html new file mode 100644 index 0000000..7d5c442 --- /dev/null +++ b/docs/html/dsps__mulc__f32__ansi_8c.html @@ -0,0 +1,215 @@ + + + + + + + +ESP-IDF Firmware: dsps_mulc_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mulc_f32_ansi.c File Reference
+
+
+
#include "dsps_mulc.h"
+
+Include dependency graph for dsps_mulc_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_mulc_f32_ansi (const float *input, float *output, int len, float C, int step_in, int step_out)
 multiply constant
+

Function Documentation

+ +

◆ dsps_mulc_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mulc_f32_ansi (const float * input,
float * output,
int len,
float C,
int step_in,
int step_out )
+
+ +

multiply constant

+

The function multiplies input array to the constant value x[i*step_out] = y[i*step_in]*C; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + +
[in]inputinput array
outputoutput array
lenamount of operations for arrays
Cconstant value
step_instep over input array (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_mulc_f32_ansi.c.

+
18{
+
19 if (NULL == input) {
+ +
21 }
+
22 if (NULL == output) {
+ +
24 }
+
25
+
26 for (int i = 0 ; i < len ; i++) {
+
27 output[i * step_out] = input[i * step_in] * C;
+
28 }
+
29 return ESP_OK;
+
30}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +

Referenced by audio_read_task(), audio_read_task(), audio_read_task(), dspm::Mat::operator*=(), and dspm::Mat::operator/=().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__mulc__f32__ansi_8c.js b/docs/html/dsps__mulc__f32__ansi_8c.js new file mode 100644 index 0000000..daed2a3 --- /dev/null +++ b/docs/html/dsps__mulc__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__mulc__f32__ansi_8c = +[ + [ "dsps_mulc_f32_ansi", "dsps__mulc__f32__ansi_8c.html#a60b32e0d6ff107c7ff8307e2ff612c84", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__mulc__f32__ansi_8c__incl.md5 b/docs/html/dsps__mulc__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..0d8cc75 --- /dev/null +++ b/docs/html/dsps__mulc__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +0340b105f33b5976deef22ceaf282831 \ No newline at end of file diff --git a/docs/html/dsps__mulc__f32__ansi_8c__incl.svg b/docs/html/dsps__mulc__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..95f764c --- /dev/null +++ b/docs/html/dsps__mulc__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_mulc_f32_ansi.c + + +Node1 + + +dsps_mulc_f32_ansi.c + + + + + +Node2 + + +dsps_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mulc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mulc__f32__ansi_8c__incl_org.svg b/docs/html/dsps__mulc__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..891edac --- /dev/null +++ b/docs/html/dsps__mulc__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_mulc_f32_ansi.c + + +Node1 + + +dsps_mulc_f32_ansi.c + + + + + +Node2 + + +dsps_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mulc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 b/docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 new file mode 100644 index 0000000..0e5849b --- /dev/null +++ b/docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.md5 @@ -0,0 +1 @@ +bec3ddd15abadae78b52ff58792abc07 \ No newline at end of file diff --git a/docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg b/docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg new file mode 100644 index 0000000..7597682 --- /dev/null +++ b/docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph.svg @@ -0,0 +1,209 @@ + + + + + + + + + + + + +dsps_mulc_f32_ansi + + +Node1 + + +dsps_mulc_f32_ansi + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +audio_read_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +audio_read_task + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::operator*= + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::operator/= + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph_org.svg b/docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph_org.svg new file mode 100644 index 0000000..1472fdf --- /dev/null +++ b/docs/html/dsps__mulc__f32__ansi_8c_a60b32e0d6ff107c7ff8307e2ff612c84_icgraph_org.svg @@ -0,0 +1,183 @@ + + + + + + +dsps_mulc_f32_ansi + + +Node1 + + +dsps_mulc_f32_ansi + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +audio_read_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +audio_read_task + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dspm::Mat::operator*= + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::operator/= + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +audio_process_task + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +audio_process_task + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +audio_process_task + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/dsps__mulc__f32__ansi_8c_source.html b/docs/html/dsps__mulc__f32__ansi_8c_source.html new file mode 100644 index 0000000..6836f58 --- /dev/null +++ b/docs/html/dsps__mulc__f32__ansi_8c_source.html @@ -0,0 +1,144 @@ + + + + + + + +ESP-IDF Firmware: dsps_mulc_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mulc_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_mulc.h"
+
16
+
+
17esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
+
18{
+
19 if (NULL == input) {
+ +
21 }
+
22 if (NULL == output) {
+ +
24 }
+
25
+
26 for (int i = 0 ; i < len ; i++) {
+
27 output[i * step_out] = input[i * step_in] * C;
+
28 }
+
29 return ESP_OK;
+
30}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+
+
+ + + + diff --git a/docs/html/dsps__mulc__platform_8h.html b/docs/html/dsps__mulc__platform_8h.html new file mode 100644 index 0000000..879db8c --- /dev/null +++ b/docs/html/dsps__mulc__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_mulc_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mulc_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_mulc_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__mulc__platform_8h__dep__incl.md5 b/docs/html/dsps__mulc__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..9bef024 --- /dev/null +++ b/docs/html/dsps__mulc__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +24637c04438327a90a25f5006df29345 \ No newline at end of file diff --git a/docs/html/dsps__mulc__platform_8h__dep__incl.svg b/docs/html/dsps__mulc__platform_8h__dep__incl.svg new file mode 100644 index 0000000..037e416 --- /dev/null +++ b/docs/html/dsps__mulc__platform_8h__dep__incl.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +dsps_mulc_platform.h + + +Node1 + + +dsps_mulc_platform.h + + + + + +Node2 + + +dsps_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_math.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dsps_mulc_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node40 + + +dsps_mulc_s16_ansi.c + + + + + +Node2->Node40 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mulc__platform_8h__dep__incl_org.svg b/docs/html/dsps__mulc__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..47a341d --- /dev/null +++ b/docs/html/dsps__mulc__platform_8h__dep__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +dsps_mulc_platform.h + + +Node1 + + +dsps_mulc_platform.h + + + + + +Node2 + + +dsps_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_math.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dsps_mulc_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node40 + + +dsps_mulc_s16_ansi.c + + + + + +Node2->Node40 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + diff --git a/docs/html/dsps__mulc__platform_8h__incl.md5 b/docs/html/dsps__mulc__platform_8h__incl.md5 new file mode 100644 index 0000000..9ee6769 --- /dev/null +++ b/docs/html/dsps__mulc__platform_8h__incl.md5 @@ -0,0 +1 @@ +ca271f18048e1d4b723bb21992dde49d \ No newline at end of file diff --git a/docs/html/dsps__mulc__platform_8h__incl.svg b/docs/html/dsps__mulc__platform_8h__incl.svg new file mode 100644 index 0000000..c80d552 --- /dev/null +++ b/docs/html/dsps__mulc__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_mulc_platform.h + + +Node1 + + +dsps_mulc_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mulc__platform_8h__incl_org.svg b/docs/html/dsps__mulc__platform_8h__incl_org.svg new file mode 100644 index 0000000..1a1bfb7 --- /dev/null +++ b/docs/html/dsps__mulc__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_mulc_platform.h + + +Node1 + + +dsps_mulc_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__mulc__platform_8h_source.html b/docs/html/dsps__mulc__platform_8h_source.html new file mode 100644 index 0000000..e61bcd2 --- /dev/null +++ b/docs/html/dsps__mulc__platform_8h_source.html @@ -0,0 +1,131 @@ + + + + + + + +ESP-IDF Firmware: dsps_mulc_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mulc_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_mulc_platform_H_
+
2#define _dsps_mulc_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dsps_mulc_f32_ae32_enabled 1
+
14
+
15#endif
+
16
+
17#if ((XCHAL_HAVE_LOOPS == 1) && (XCHAL_HAVE_MAC16 == 1))
+
18
+
19#define dsps_mulc_s16_ae32_enabled 1
+
20
+
21#endif //
+
22#endif // __XTENSA__
+
23
+
24
+
25#endif // _dsps_mulc_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__mulc__s16__ansi_8c.html b/docs/html/dsps__mulc__s16__ansi_8c.html new file mode 100644 index 0000000..b3599b6 --- /dev/null +++ b/docs/html/dsps__mulc__s16__ansi_8c.html @@ -0,0 +1,189 @@ + + + + + + + +ESP-IDF Firmware: dsps_mulc_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mulc_s16_ansi.c File Reference
+
+
+
#include "dsps_mulc.h"
+
+Include dependency graph for dsps_mulc_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dsps_mulc_s16_ansi (const int16_t *input, int16_t *output, int len, int16_t C, int step_in, int step_out)
+

Function Documentation

+ +

◆ dsps_mulc_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_mulc_s16_ansi (const int16_t * input,
int16_t * output,
int len,
int16_t C,
int step_in,
int step_out )
+
+ +

Definition at line 17 of file dsps_mulc_s16_ansi.c.

+
18{
+
19 if (NULL == input) {
+ +
21 }
+
22 if (NULL == output) {
+ +
24 }
+
25
+
26 for (int i = 0 ; i < len ; i++) {
+
27 int32_t acc = (int32_t)input[i * step_in] * (int32_t)C;
+
28 output[i * step_out] = (int16_t)(acc >> 15);
+
29 }
+
30 return ESP_OK;
+
31}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+

References C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__mulc__s16__ansi_8c.js b/docs/html/dsps__mulc__s16__ansi_8c.js new file mode 100644 index 0000000..d5eb611 --- /dev/null +++ b/docs/html/dsps__mulc__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__mulc__s16__ansi_8c = +[ + [ "dsps_mulc_s16_ansi", "dsps__mulc__s16__ansi_8c.html#a0846ed70020d889f9efb142ce8025a1b", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__mulc__s16__ansi_8c__incl.md5 b/docs/html/dsps__mulc__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..1d5c896 --- /dev/null +++ b/docs/html/dsps__mulc__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +a1de5f84a5847ec152ed0815ebe2078f \ No newline at end of file diff --git a/docs/html/dsps__mulc__s16__ansi_8c__incl.svg b/docs/html/dsps__mulc__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..56cf336 --- /dev/null +++ b/docs/html/dsps__mulc__s16__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_mulc_s16_ansi.c + + +Node1 + + +dsps_mulc_s16_ansi.c + + + + + +Node2 + + +dsps_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mulc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__mulc__s16__ansi_8c__incl_org.svg b/docs/html/dsps__mulc__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..d4f2e09 --- /dev/null +++ b/docs/html/dsps__mulc__s16__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_mulc_s16_ansi.c + + +Node1 + + +dsps_mulc_s16_ansi.c + + + + + +Node2 + + +dsps_mulc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_mulc_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__mulc__s16__ansi_8c_source.html b/docs/html/dsps__mulc__s16__ansi_8c_source.html new file mode 100644 index 0000000..4da2079 --- /dev/null +++ b/docs/html/dsps__mulc__s16__ansi_8c_source.html @@ -0,0 +1,145 @@ + + + + + + + +ESP-IDF Firmware: dsps_mulc_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_mulc_s16_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_mulc.h"
+
16
+
+
17esp_err_t dsps_mulc_s16_ansi(const int16_t *input, int16_t *output, int len, int16_t C, int step_in, int step_out)
+
18{
+
19 if (NULL == input) {
+ +
21 }
+
22 if (NULL == output) {
+ +
24 }
+
25
+
26 for (int i = 0 ; i < len ; i++) {
+
27 int32_t acc = (int32_t)input[i * step_in] * (int32_t)C;
+
28 output[i * step_out] = (int16_t)(acc >> 15);
+
29 }
+
30 return ESP_OK;
+
31}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_mulc_s16_ansi(const int16_t *input, int16_t *output, int len, int16_t C, int step_in, int step_out)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float C[4][16]
Definition test_mmult.c:22
+
+
+
+ + + + diff --git a/docs/html/dsps__pwroftwo_8cpp.html b/docs/html/dsps__pwroftwo_8cpp.html new file mode 100644 index 0000000..6c84abd --- /dev/null +++ b/docs/html/dsps__pwroftwo_8cpp.html @@ -0,0 +1,194 @@ + + + + + + + +ESP-IDF Firmware: dsps_pwroftwo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_pwroftwo.cpp File Reference
+
+
+
#include "dsp_common.h"
+
+Include dependency graph for dsps_pwroftwo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Functions

bool dsp_is_power_of_two (int x)
 check power of two The function check if the argument is power of 2. The implementation use ANSI C and could be compiled and run on any platform
int dsp_power_of_two (int x)
 Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could be compiled and run on any platform.
+

Function Documentation

+ +

◆ dsp_is_power_of_two()

+ +
+
+ + + + + + + +
bool dsp_is_power_of_two (int x)
+
+ +

check power of two The function check if the argument is power of 2. The implementation use ANSI C and could be compiled and run on any platform

+
Returns
    +
  • true if x is power of two
  • +
  • false if no
  • +
+
+ +

Definition at line 17 of file dsps_pwroftwo.cpp.

+
18{
+
19 return (x != 0) && ((x & (x - 1)) == 0);
+
20}
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ +

◆ dsp_power_of_two()

+ +
+
+ + + + + + + +
int dsp_power_of_two (int x)
+
+ +

Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could be compiled and run on any platform.

+
Returns
    +
  • power of two
  • +
+
+ +

Definition at line 22 of file dsps_pwroftwo.cpp.

+
23{
+
24 for (size_t i = 0; i < 32; i++) {
+
25 x = x >> 1;
+
26 if (0 == x) {
+
27 return i;
+
28 }
+
29 }
+
30 return 0;
+
31}
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__pwroftwo_8cpp.js b/docs/html/dsps__pwroftwo_8cpp.js new file mode 100644 index 0000000..d741945 --- /dev/null +++ b/docs/html/dsps__pwroftwo_8cpp.js @@ -0,0 +1,5 @@ +var dsps__pwroftwo_8cpp = +[ + [ "dsp_is_power_of_two", "dsps__pwroftwo_8cpp.html#a0dc0b4dd19d7ebd2f69bfb0c1a6f85da", null ], + [ "dsp_power_of_two", "dsps__pwroftwo_8cpp.html#a58855e560e0563aa519b012dbdcbaec2", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__pwroftwo_8cpp__incl.md5 b/docs/html/dsps__pwroftwo_8cpp__incl.md5 new file mode 100644 index 0000000..29cea1f --- /dev/null +++ b/docs/html/dsps__pwroftwo_8cpp__incl.md5 @@ -0,0 +1 @@ +d94b64a39c5f7b85e68694b6f2f5f995 \ No newline at end of file diff --git a/docs/html/dsps__pwroftwo_8cpp__incl.svg b/docs/html/dsps__pwroftwo_8cpp__incl.svg new file mode 100644 index 0000000..9375ed5 --- /dev/null +++ b/docs/html/dsps__pwroftwo_8cpp__incl.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + +dsps_pwroftwo.cpp + + +Node1 + + +dsps_pwroftwo.cpp + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__pwroftwo_8cpp__incl_org.svg b/docs/html/dsps__pwroftwo_8cpp__incl_org.svg new file mode 100644 index 0000000..f9b0565 --- /dev/null +++ b/docs/html/dsps__pwroftwo_8cpp__incl_org.svg @@ -0,0 +1,174 @@ + + + + + + +dsps_pwroftwo.cpp + + +Node1 + + +dsps_pwroftwo.cpp + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + diff --git a/docs/html/dsps__pwroftwo_8cpp_source.html b/docs/html/dsps__pwroftwo_8cpp_source.html new file mode 100644 index 0000000..d73b2b7 --- /dev/null +++ b/docs/html/dsps__pwroftwo_8cpp_source.html @@ -0,0 +1,145 @@ + + + + + + + +ESP-IDF Firmware: dsps_pwroftwo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_pwroftwo.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsp_common.h"
+
16
+
+ +
18{
+
19 return (x != 0) && ((x & (x - 1)) == 0);
+
20}
+
+
21
+
+ +
23{
+
24 for (size_t i = 0; i < 32; i++) {
+
25 x = x >> 1;
+
26 if (0 == x) {
+
27 return i;
+
28 }
+
29 }
+
30 return 0;
+
31}
+
+ +
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
int dsp_power_of_two(int x)
Power of two The function return power of 2 for values 2^N. The implementation use ANSI C and could b...
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dsps__resampler_8h.html b/docs/html/dsps__resampler_8h.html new file mode 100644 index 0000000..da676f4 --- /dev/null +++ b/docs/html/dsps__resampler_8h.html @@ -0,0 +1,581 @@ + + + + + + + +ESP-IDF Firmware: dsps_resampler.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_resampler.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_fir.h"
+
+Include dependency graph for dsps_resampler.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  dsps_resample_mr_s
 Data struct of f32 multi-rate resampler. More...
struct  dsps_resample_ph_s
 Data struct of f32 poly-phase resampler. More...
+ + + + + +

+Typedefs

typedef struct dsps_resample_mr_s dsps_resample_mr_t
 Data struct of f32 multi-rate resampler.
typedef struct dsps_resample_ph_s dsps_resample_ph_t
 Data struct of f32 poly-phase resampler.
+ + + + + + + + + + + +

+Functions

esp_err_t dsps_resampler_mr_init (dsps_resample_mr_t *resampler, void *coeffs, int16_t length, int16_t interp, float samplerate_factor, int32_t fixed_point, int16_t shift)
 Initialize the multi-rate resampler.
int32_t dsps_resampler_mr_exec (dsps_resample_mr_t *resampler, void *input, void *output, int32_t length, int32_t length_correction)
 Execute the multi-rate resampler.
void dsps_resampler_mr_free (dsps_resample_mr_t *resampler)
 Free the multi-rate resampler.
esp_err_t dsps_resampler_ph_init (dsps_resample_ph_t *resampler, float samplerate_factor)
 Initialize the poly-phase resampler.
int32_t dsps_resampler_ph_exec (dsps_resample_ph_t *resampler, float *input, float *output, int32_t length)
 Execute the poly-phase resampler.
+

Typedef Documentation

+ +

◆ dsps_resample_mr_t

+ +
+
+ + + + +
typedef struct dsps_resample_mr_s dsps_resample_mr_t
+
+ +

Data struct of f32 multi-rate resampler.

+

This structure is used by a resampler internally. A user should access this structure only in case of extensions for the DSP Library. To initialize the resampler, use the dsps_resampler_mr_init() function. To execute the resampler, use the dsps_resampler_mr_exec() function. To free the resampler, use the dsps_resampler_mr_free() function.

+ +
+
+ +

◆ dsps_resample_ph_t

+ +
+
+ + + + +
typedef struct dsps_resample_ph_s dsps_resample_ph_t
+
+ +

Data struct of f32 poly-phase resampler.

+

This structure is used by a poly-phase resampler internally. A user should access this structure only in case of extensions for the DSP Library. To initialize the resampler, use the dsps_resampler_ph_init() function. To execute the resampler, use the dsps_resampler_ph_exec() function.

+

It is possible to correct the sample rate by adjust the phase parameter "on the fly".

+ +
+
+

Function Documentation

+ +

◆ dsps_resampler_mr_exec()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_resampler_mr_exec (dsps_resample_mr_t * resampler,
void * input,
void * output,
int32_t length,
int32_t length_correction )
+
+ +

Execute the multi-rate resampler.

+

This function executes the multi-rate resampler. The input and output buffers can be the same. The function based on multi-rate FIR filter. The decimation factor is updated for each execution. The current decimation factor calculated as division of average input and average output sample rate. To correct the output sample rate, the length_correction parameter is used. To increase the output sample rate, the length_correction parameter should be positive. To decrease the output sample rate, the length_correction parameter should be negative. This parameter is used when the input and output sample rates are comes from different sources.

+
Parameters
+ + + + + + +
resamplerPointer to the resampler structure
inputPointer to the input buffer
outputPointer to the output buffer
lengthLength of the input buffers
length_correctionLength correction for the current execution. Positive value increases the output sample rate, negative value decreases the output sample rate.
+
+
+
Returns
Length of the output buffer
+ +

Definition at line 47 of file dsps_resampler_mr.c.

+
48{
+
49 int32_t result = 0;
+
50
+
51 if (resampler->fixed_point == 0) {
+
52 ((fir_f32_t *)resampler->filter)->decim = resampler->active_decim;
+
53 } else {
+
54 ((fir_s16_t *)resampler->filter)->decim = resampler->active_decim;
+
55 }
+
56
+
57 result = resampler->dsps_firmr(resampler->filter, input, output, length);
+
58
+
59 resampler->decim_avg_in = resampler->decim_avg_in * decim_avg_coeff + (float)length * (1 - decim_avg_coeff);
+
60 resampler->decim_avg_out = resampler->decim_avg_out * decim_avg_coeff + (float)(result - length_correction) * (1 - decim_avg_coeff);
+
61
+
62 if ((resampler->decim_avg_in * resampler->samplerate_factor) > (resampler->decim_avg_out)) {
+
63 resampler->active_decim = resampler->decim_f;
+
64 } else {
+
65 resampler->active_decim = resampler->decim_c;
+
66 }
+
67 return result;
+
68}
+
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
struct fir_s16_s fir_s16_t
Data struct of s16 fir filter.
+
static const float decim_avg_coeff
+ + + + + +
int32_t(* dsps_firmr)(void *fir, void *input, void *output, int32_t length)
+ + + +
+

References dsps_resample_mr_s::active_decim, decim_avg_coeff, dsps_resample_mr_s::decim_avg_in, dsps_resample_mr_s::decim_avg_out, dsps_resample_mr_s::decim_c, dsps_resample_mr_s::decim_f, dsps_resample_mr_s::dsps_firmr, dsps_resample_mr_s::filter, dsps_resample_mr_s::fixed_point, and dsps_resample_mr_s::samplerate_factor.

+ +
+
+ +

◆ dsps_resampler_mr_free()

+ +
+
+ + + + + + + +
void dsps_resampler_mr_free (dsps_resample_mr_t * resampler)
+
+ +

Free the multi-rate resampler.

+
Parameters
+ + +
resamplerPointer to the resampler structure
+
+
+ +

Definition at line 70 of file dsps_resampler_mr.c.

+
71{
+
72 if (resampler->fixed_point == 0) {
+
73 dsps_fir_f32_free((fir_f32_t *)(resampler->filter));
+
74 } else {
+ +
76 }
+
77 free(resampler->filter);
+
78}
+
esp_err_t dsps_fir_f32_free(fir_f32_t *fir)
support arrays freeing function
+
esp_err_t dsps_fird_s16_aexx_free(fir_s16_t *fir)
support arrays freeing function
+
+

References dsps_fir_f32_free(), dsps_fird_s16_aexx_free(), dsps_resample_mr_s::filter, and dsps_resample_mr_s::fixed_point.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_resampler_mr_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_resampler_mr_init (dsps_resample_mr_t * resampler,
void * coeffs,
int16_t length,
int16_t interp,
float samplerate_factor,
int32_t fixed_point,
int16_t shift )
+
+ +

Initialize the multi-rate resampler.

+
Parameters
+ + + + + + + + +
resamplerPointer to the resampler structure
coeffsPointer to the filter coefficients (float or int16_t for fixed point)
lengthLength of the filter coefficients
interpInterpolation factor for the filter
samplerate_factorSample rate factor
fixed_pointFixed point flag, 0 for float, 1 for fixed point
shiftShift value for fixed point
+
+
+
Returns
ESP_OK on success, ESP_ERR_INVALID_ARG if the parameters are invalid
+ +

Definition at line 12 of file dsps_resampler_mr.c.

+
13{
+
14 esp_err_t ret = ESP_OK;
+
15
+
16 if (samplerate_factor < 1) {
+ +
18 }
+
19
+
20 resampler->fixed_point = fixed_point;
+
21 resampler->samplerate_factor = samplerate_factor;
+
22 float decimation = (float)interp / samplerate_factor;
+
23 resampler->decim_f = floor(decimation);
+
24 resampler->decim_c = ceil(decimation);
+
25 resampler->active_decim = resampler->decim_c;
+
26 resampler->decim_avg_in = 1;
+
27 resampler->decim_avg_out = resampler->samplerate_factor;
+
28
+
29 if (fixed_point == 0) {
+
30 resampler->dsps_firmr = (int32_t (*)(void *, void *, void *, int32_t))dsps_firmr_f32;
+
31 resampler->filter = (void *)malloc(sizeof(fir_f32_t));
+
32
+
33 ret = dsps_firmr_init_f32((fir_f32_t *)resampler->filter, coeffs, NULL, length, interp, resampler->decim_c, 0);
+
34 } else {
+
35 resampler->dsps_firmr = (int32_t (*)(void *, void *, void *, int32_t))dsps_firmr_s16;
+
36 resampler->filter = (void *)malloc(sizeof(fir_s16_t));
+
37 ret = dsps_firmr_init_s16((fir_s16_t *)resampler->filter, coeffs, NULL, length, interp, resampler->decim_c, 0, shift);
+
38 }
+
39
+
40 if (ret != ESP_OK) {
+
41 return ret;
+
42 }
+
43
+
44 return ret;
+
45}
+
#define ESP_ERR_DSP_INVALID_PARAM
+
#define dsps_firmr_f32
Definition dsps_fir.h:380
+
#define dsps_firmr_s16
Definition dsps_fir.h:382
+
esp_err_t dsps_firmr_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int length, int interp, int decim, int start_pos)
initialize structure for multi-rate FIR filter Function initialize structure for 32 bit floating poin...
+
esp_err_t dsps_firmr_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t interp, int16_t decim, int16_t start_pos, int16_t shift)
initialize structure for multi-rate FIR filter Function initialize structure for 16 bit signed fixed ...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float coeffs[256]
Definition test_fir.c:14
+
+

References dsps_resample_mr_s::active_decim, coeffs, dsps_resample_mr_s::decim_avg_in, dsps_resample_mr_s::decim_avg_out, dsps_resample_mr_s::decim_c, dsps_resample_mr_s::decim_f, dsps_resample_mr_s::dsps_firmr, dsps_firmr_f32, dsps_firmr_init_f32(), dsps_firmr_init_s16(), dsps_firmr_s16, ESP_ERR_DSP_INVALID_PARAM, ESP_OK, dsps_resample_mr_s::filter, dsps_resample_mr_s::fixed_point, and dsps_resample_mr_s::samplerate_factor.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_resampler_ph_exec()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_resampler_ph_exec (dsps_resample_ph_t * resampler,
float * input,
float * output,
int32_t length )
+
+ +

Execute the poly-phase resampler.

+
Parameters
+ + + + + +
resamplerPointer to the resampler structure
inputPointer to the input buffer
outputPointer to the output buffer
lengthLength of the input buffer
+
+
+
Returns
Length of the output buffer
+ +

Definition at line 28 of file dsps_resampler_ph.c.

+
29{
+
30 int32_t result = 0;
+
31 int input_pos = 0;
+
32 float in_x[4];
+
33
+
34 int in_pos = 0;
+
35 for (int pos = resampler->delay_pos; pos < 4; pos++) {
+
36 in_x[in_pos++] = resampler->delay[pos];
+
37 }
+
38 for (int pos = 0; pos < resampler->delay_pos; pos++) {
+
39 in_x[in_pos++] = resampler->delay[pos];
+
40 }
+
41
+
42 while (input_pos < length) {
+
43
+
44 float c0 = in_x[1];
+
45 float c1 = 0.5 * (in_x[2] - in_x[0]);
+
46 float c2 = in_x[0] - 2.5 * in_x[1] + 2 * in_x[2] - 0.5 * in_x[3];
+
47 float c3 = 0.5 * (in_x[3] - in_x[0]) + 1.5 * (in_x[1] - in_x[2]);
+
48
+
49 output[result] = c0 + resampler->phase * (c1 + resampler->phase * (c2 + resampler->phase * c3));
+
50 result++;
+
51 resampler->phase += resampler->step;
+
52
+
53 while (resampler->phase >= 1) {
+
54 resampler->phase -= 1;
+
55 resampler->delay[resampler->delay_pos] = input[input_pos];
+
56 resampler->delay_pos++;
+
57 if (resampler->delay_pos >= 4) {
+
58 resampler->delay_pos = 0;
+
59 }
+
60 input_pos++;
+
61 in_pos = 0;
+
62 for (int pos = resampler->delay_pos; pos < 4; pos++) {
+
63 in_x[in_pos++] = resampler->delay[pos];
+
64 }
+
65 for (int pos = 0; pos < resampler->delay_pos; pos++) {
+
66 in_x[in_pos++] = resampler->delay[pos];
+
67 }
+
68 }
+
69 }
+
70
+
71 return result;
+
72}
+ + + + +
+

References dsps_resample_ph_s::delay, dsps_resample_ph_s::delay_pos, dsps_resample_ph_s::phase, and dsps_resample_ph_s::step.

+ +
+
+ +

◆ dsps_resampler_ph_init()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_resampler_ph_init (dsps_resample_ph_t * resampler,
float samplerate_factor )
+
+ +

Initialize the poly-phase resampler.

+

The poly-phase resampler is a implementation of the poly-phase Farrow filter that use cubic interpolation with 4 coefficients.

+
Parameters
+ + + +
resamplerPointer to the resampler structure
samplerate_factorSample rate factor
+
+
+
Returns
ESP_OK on success, ESP_ERR_INVALID_ARG if the parameters are invalid
+ +

Definition at line 10 of file dsps_resampler_ph.c.

+
11{
+
12 esp_err_t ret = ESP_OK;
+
13
+
14 if (samplerate_factor < 1) {
+ +
16 }
+
17
+
18 for (int i = 0; i < 4; i++) {
+
19 resampler->delay[i] = 0;
+
20 }
+
21 resampler->delay_pos = 0;
+
22
+
23 resampler->step = 1.0f / samplerate_factor;
+
24 resampler->phase = 0;
+
25 return ret;
+
26}
+
+

References dsps_resample_ph_s::delay, dsps_resample_ph_s::delay_pos, ESP_ERR_DSP_INVALID_PARAM, ESP_OK, dsps_resample_ph_s::phase, and dsps_resample_ph_s::step.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__resampler_8h.js b/docs/html/dsps__resampler_8h.js new file mode 100644 index 0000000..1cd4f1d --- /dev/null +++ b/docs/html/dsps__resampler_8h.js @@ -0,0 +1,12 @@ +var dsps__resampler_8h = +[ + [ "dsps_resample_mr_s", "structdsps__resample__mr__s.html", "structdsps__resample__mr__s" ], + [ "dsps_resample_ph_s", "structdsps__resample__ph__s.html", "structdsps__resample__ph__s" ], + [ "dsps_resample_mr_t", "dsps__resampler_8h.html#acc257e47755ec14e3575034033b7b1d1", null ], + [ "dsps_resample_ph_t", "dsps__resampler_8h.html#a7bcf248a9b66536ea50a03cedfc82bfc", null ], + [ "dsps_resampler_mr_exec", "dsps__resampler_8h.html#a5c99522d12cec050ac726cac95cde47a", null ], + [ "dsps_resampler_mr_free", "dsps__resampler_8h.html#a2dda84398bcf6c77c3725aab0a20523d", null ], + [ "dsps_resampler_mr_init", "dsps__resampler_8h.html#a2fb53d48742560a0c21d8d3a7e2b1d99", null ], + [ "dsps_resampler_ph_exec", "dsps__resampler_8h.html#ae15e0ebae0ee787f71622920a814383b", null ], + [ "dsps_resampler_ph_init", "dsps__resampler_8h.html#a0e980155b9b83387d7d28a3422a41238", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__resampler_8h__dep__incl.md5 b/docs/html/dsps__resampler_8h__dep__incl.md5 new file mode 100644 index 0000000..31a4334 --- /dev/null +++ b/docs/html/dsps__resampler_8h__dep__incl.md5 @@ -0,0 +1 @@ +5bac6f08d44b1b453cb4cd112980fbd9 \ No newline at end of file diff --git a/docs/html/dsps__resampler_8h__dep__incl.svg b/docs/html/dsps__resampler_8h__dep__incl.svg new file mode 100644 index 0000000..b4e8ce7 --- /dev/null +++ b/docs/html/dsps__resampler_8h__dep__incl.svg @@ -0,0 +1,752 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_resampler.h + + +Node1 + + +dsps_resampler.h + + + + + +Node2 + + +dsps_resampler_mr.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_resampler_ph.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dsps_fird_init_s16.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +graphics_support.cpp + + + + + +Node27->Node28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__resampler_8h__dep__incl_org.svg b/docs/html/dsps__resampler_8h__dep__incl_org.svg new file mode 100644 index 0000000..47044ca --- /dev/null +++ b/docs/html/dsps__resampler_8h__dep__incl_org.svg @@ -0,0 +1,669 @@ + + + + + + +dsps_resampler.h + + +Node1 + + +dsps_resampler.h + + + + + +Node2 + + +dsps_resampler_mr.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_resampler_ph.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +3d_graphics_demo.cpp + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +3d_kalman_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +audio_amp_main.c + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +dsp_tests.h + + + + + +Node4->Node16 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node4->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node4->Node25 + + + + + + + + +Node27 + + +graphics_support.h + + + + + +Node4->Node27 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node4->Node29 + + + + + + + + +Node30 + + +init_display.c + + + + + +Node4->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node4->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node4->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node4->Node33 + + + + + + + + +Node34 + + +kalman_filter_demo.cpp + + + + + +Node4->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node4->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node4->Node36 + + + + + + + + +Node37 + + +main.c + + + + + +Node4->Node37 + + + + + + + + +Node17 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dsps_fird_init_s16.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dsps_firmr_f32_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_f32.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dsps_firmr_init_s16.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dsps_firmr_s16_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +graphics_support.cpp + + + + + +Node27->Node28 + + + + + + + + diff --git a/docs/html/dsps__resampler_8h__incl.md5 b/docs/html/dsps__resampler_8h__incl.md5 new file mode 100644 index 0000000..17d433c --- /dev/null +++ b/docs/html/dsps__resampler_8h__incl.md5 @@ -0,0 +1 @@ +43e4ab11277fe281f5c4ed48e4e5cdb7 \ No newline at end of file diff --git a/docs/html/dsps__resampler_8h__incl.svg b/docs/html/dsps__resampler_8h__incl.svg new file mode 100644 index 0000000..58c12ce --- /dev/null +++ b/docs/html/dsps__resampler_8h__incl.svg @@ -0,0 +1,290 @@ + + + + + + + + + + + + +dsps_resampler.h + + +Node1 + + +dsps_resampler.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_fir.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node7->Node2 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node7->Node10 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node2 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + + + + + + diff --git a/docs/html/dsps__resampler_8h__incl_org.svg b/docs/html/dsps__resampler_8h__incl_org.svg new file mode 100644 index 0000000..9e76f12 --- /dev/null +++ b/docs/html/dsps__resampler_8h__incl_org.svg @@ -0,0 +1,264 @@ + + + + + + +dsps_resampler.h + + +Node1 + + +dsps_resampler.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_fir.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node7->Node2 + + + + + + + + +Node8 + + +dsps_fir_platform.h + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +dsp_common.h + + + + + +Node7->Node10 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10->Node2 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node10->Node13 + + + + + + + + diff --git a/docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph.md5 b/docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph.md5 new file mode 100644 index 0000000..340c6a4 --- /dev/null +++ b/docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph.md5 @@ -0,0 +1 @@ +21a6083e4cf2581f136e528ac1fc83e6 \ No newline at end of file diff --git a/docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph.svg b/docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph.svg new file mode 100644 index 0000000..4efbd8b --- /dev/null +++ b/docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_resampler_mr_free + + +Node1 + + +dsps_resampler_mr_free + + + + + +Node2 + + +dsps_fir_f32_free + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fird_s16_aexx_free + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph_org.svg b/docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph_org.svg new file mode 100644 index 0000000..9fa5a4c --- /dev/null +++ b/docs/html/dsps__resampler_8h_a2dda84398bcf6c77c3725aab0a20523d_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_resampler_mr_free + + +Node1 + + +dsps_resampler_mr_free + + + + + +Node2 + + +dsps_fir_f32_free + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fird_s16_aexx_free + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 b/docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 new file mode 100644 index 0000000..c377233 --- /dev/null +++ b/docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 @@ -0,0 +1 @@ +016a4e300e7d528d9ae9fbf72391e469 \ No newline at end of file diff --git a/docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg b/docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg new file mode 100644 index 0000000..4649021 --- /dev/null +++ b/docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_resampler_mr_init + + +Node1 + + +dsps_resampler_mr_init + + + + + +Node2 + + +dsps_firmr_init_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_firmr_init_s16 + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg b/docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg new file mode 100644 index 0000000..13f2557 --- /dev/null +++ b/docs/html/dsps__resampler_8h_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_resampler_mr_init + + +Node1 + + +dsps_resampler_mr_init + + + + + +Node2 + + +dsps_firmr_init_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_firmr_init_s16 + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__resampler_8h_source.html b/docs/html/dsps__resampler_8h_source.html new file mode 100644 index 0000000..27afb79 --- /dev/null +++ b/docs/html/dsps__resampler_8h_source.html @@ -0,0 +1,189 @@ + + + + + + + +ESP-IDF Firmware: dsps_resampler.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_resampler.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2018-2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#ifndef _dsps_resampl_H_
+
8#define _dsps_resampl_H_
+
9
+
10#include "dsp_err.h"
+
11#include "dsps_fir.h"
+
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
+
27typedef struct dsps_resample_mr_s {
+
28 void *filter;
+ +
30 int16_t decim_c;
+
31 int16_t decim_f;
+
32 int16_t active_decim;
+ + +
35 int32_t (*dsps_firmr)(void *fir, void *input, void *output, int32_t length);
+
36 int32_t fixed_point;
+ +
+
38
+
+
49typedef struct dsps_resample_ph_s {
+
50 float phase;
+
51 float step;
+
52 float delay[4];
+ + +
+
55
+
69esp_err_t dsps_resampler_mr_init(dsps_resample_mr_t *resampler, void *coeffs, int16_t length, int16_t interp, float samplerate_factor, int32_t fixed_point, int16_t shift);
+
70
+
93int32_t dsps_resampler_mr_exec(dsps_resample_mr_t *resampler, void *input, void *output, int32_t length, int32_t length_correction);
+
94
+ +
101
+
102
+
103
+
115esp_err_t dsps_resampler_ph_init(dsps_resample_ph_t *resampler, float samplerate_factor);
+
116
+
127
+
128int32_t dsps_resampler_ph_exec(dsps_resample_ph_t *resampler, float *input, float *output, int32_t length);
+
129
+
130#ifdef __cplusplus
+
131}
+
132#endif
+
133#endif //_dsps_resampl_H_
+ + +
esp_err_t dsps_resampler_ph_init(dsps_resample_ph_t *resampler, float samplerate_factor)
Initialize the poly-phase resampler.
+
void dsps_resampler_mr_free(dsps_resample_mr_t *resampler)
Free the multi-rate resampler.
+
esp_err_t dsps_resampler_mr_init(dsps_resample_mr_t *resampler, void *coeffs, int16_t length, int16_t interp, float samplerate_factor, int32_t fixed_point, int16_t shift)
Initialize the multi-rate resampler.
+
int32_t dsps_resampler_mr_exec(dsps_resample_mr_t *resampler, void *input, void *output, int32_t length, int32_t length_correction)
Execute the multi-rate resampler.
+
struct dsps_resample_ph_s dsps_resample_ph_t
Data struct of f32 poly-phase resampler.
+
struct dsps_resample_mr_s dsps_resample_mr_t
Data struct of f32 multi-rate resampler.
+
int32_t dsps_resampler_ph_exec(dsps_resample_ph_t *resampler, float *input, float *output, int32_t length)
Execute the poly-phase resampler.
+
int esp_err_t
Definition esp_err.h:21
+
Data struct of f32 multi-rate resampler.
+ + + + + +
int32_t(* dsps_firmr)(void *fir, void *input, void *output, int32_t length)
+ + + +
Data struct of f32 poly-phase resampler.
+ + + + +
float coeffs[256]
Definition test_fir.c:14
+
+
+
+ + + + diff --git a/docs/html/dsps__resampler__mr_8c.html b/docs/html/dsps__resampler__mr_8c.html new file mode 100644 index 0000000..61e3eba --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c.html @@ -0,0 +1,406 @@ + + + + + + + +ESP-IDF Firmware: dsps_resampler_mr.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_resampler_mr.c File Reference
+
+
+
#include "dsps_resampler.h"
+#include <math.h>
+
+Include dependency graph for dsps_resampler_mr.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

esp_err_t dsps_resampler_mr_init (dsps_resample_mr_t *resampler, void *coeffs, int16_t length, int16_t interp, float samplerate_factor, int32_t fixed_point, int16_t shift)
 Initialize the multi-rate resampler.
int32_t dsps_resampler_mr_exec (dsps_resample_mr_t *resampler, void *input, void *output, int32_t length, int32_t length_correction)
 Execute the multi-rate resampler.
void dsps_resampler_mr_free (dsps_resample_mr_t *resampler)
 Free the multi-rate resampler.
+ + +

+Variables

static const float decim_avg_coeff = 0.9999
+

Function Documentation

+ +

◆ dsps_resampler_mr_exec()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_resampler_mr_exec (dsps_resample_mr_t * resampler,
void * input,
void * output,
int32_t length,
int32_t length_correction )
+
+ +

Execute the multi-rate resampler.

+

This function executes the multi-rate resampler. The input and output buffers can be the same. The function based on multi-rate FIR filter. The decimation factor is updated for each execution. The current decimation factor calculated as division of average input and average output sample rate. To correct the output sample rate, the length_correction parameter is used. To increase the output sample rate, the length_correction parameter should be positive. To decrease the output sample rate, the length_correction parameter should be negative. This parameter is used when the input and output sample rates are comes from different sources.

+
Parameters
+ + + + + + +
resamplerPointer to the resampler structure
inputPointer to the input buffer
outputPointer to the output buffer
lengthLength of the input buffers
length_correctionLength correction for the current execution. Positive value increases the output sample rate, negative value decreases the output sample rate.
+
+
+
Returns
Length of the output buffer
+ +

Definition at line 47 of file dsps_resampler_mr.c.

+
48{
+
49 int32_t result = 0;
+
50
+
51 if (resampler->fixed_point == 0) {
+
52 ((fir_f32_t *)resampler->filter)->decim = resampler->active_decim;
+
53 } else {
+
54 ((fir_s16_t *)resampler->filter)->decim = resampler->active_decim;
+
55 }
+
56
+
57 result = resampler->dsps_firmr(resampler->filter, input, output, length);
+
58
+
59 resampler->decim_avg_in = resampler->decim_avg_in * decim_avg_coeff + (float)length * (1 - decim_avg_coeff);
+
60 resampler->decim_avg_out = resampler->decim_avg_out * decim_avg_coeff + (float)(result - length_correction) * (1 - decim_avg_coeff);
+
61
+
62 if ((resampler->decim_avg_in * resampler->samplerate_factor) > (resampler->decim_avg_out)) {
+
63 resampler->active_decim = resampler->decim_f;
+
64 } else {
+
65 resampler->active_decim = resampler->decim_c;
+
66 }
+
67 return result;
+
68}
+
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
struct fir_s16_s fir_s16_t
Data struct of s16 fir filter.
+
static const float decim_avg_coeff
+ + + + + +
int32_t(* dsps_firmr)(void *fir, void *input, void *output, int32_t length)
+ + + +
+

References dsps_resample_mr_s::active_decim, decim_avg_coeff, dsps_resample_mr_s::decim_avg_in, dsps_resample_mr_s::decim_avg_out, dsps_resample_mr_s::decim_c, dsps_resample_mr_s::decim_f, dsps_resample_mr_s::dsps_firmr, dsps_resample_mr_s::filter, dsps_resample_mr_s::fixed_point, and dsps_resample_mr_s::samplerate_factor.

+ +
+
+ +

◆ dsps_resampler_mr_free()

+ +
+
+ + + + + + + +
void dsps_resampler_mr_free (dsps_resample_mr_t * resampler)
+
+ +

Free the multi-rate resampler.

+
Parameters
+ + +
resamplerPointer to the resampler structure
+
+
+ +

Definition at line 70 of file dsps_resampler_mr.c.

+
71{
+
72 if (resampler->fixed_point == 0) {
+
73 dsps_fir_f32_free((fir_f32_t *)(resampler->filter));
+
74 } else {
+ +
76 }
+
77 free(resampler->filter);
+
78}
+
esp_err_t dsps_fir_f32_free(fir_f32_t *fir)
support arrays freeing function
+
esp_err_t dsps_fird_s16_aexx_free(fir_s16_t *fir)
support arrays freeing function
+
+

References dsps_fir_f32_free(), dsps_fird_s16_aexx_free(), dsps_resample_mr_s::filter, and dsps_resample_mr_s::fixed_point.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_resampler_mr_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_resampler_mr_init (dsps_resample_mr_t * resampler,
void * coeffs,
int16_t length,
int16_t interp,
float samplerate_factor,
int32_t fixed_point,
int16_t shift )
+
+ +

Initialize the multi-rate resampler.

+
Parameters
+ + + + + + + + +
resamplerPointer to the resampler structure
coeffsPointer to the filter coefficients (float or int16_t for fixed point)
lengthLength of the filter coefficients
interpInterpolation factor for the filter
samplerate_factorSample rate factor
fixed_pointFixed point flag, 0 for float, 1 for fixed point
shiftShift value for fixed point
+
+
+
Returns
ESP_OK on success, ESP_ERR_INVALID_ARG if the parameters are invalid
+ +

Definition at line 12 of file dsps_resampler_mr.c.

+
13{
+
14 esp_err_t ret = ESP_OK;
+
15
+
16 if (samplerate_factor < 1) {
+ +
18 }
+
19
+
20 resampler->fixed_point = fixed_point;
+
21 resampler->samplerate_factor = samplerate_factor;
+
22 float decimation = (float)interp / samplerate_factor;
+
23 resampler->decim_f = floor(decimation);
+
24 resampler->decim_c = ceil(decimation);
+
25 resampler->active_decim = resampler->decim_c;
+
26 resampler->decim_avg_in = 1;
+
27 resampler->decim_avg_out = resampler->samplerate_factor;
+
28
+
29 if (fixed_point == 0) {
+
30 resampler->dsps_firmr = (int32_t (*)(void *, void *, void *, int32_t))dsps_firmr_f32;
+
31 resampler->filter = (void *)malloc(sizeof(fir_f32_t));
+
32
+
33 ret = dsps_firmr_init_f32((fir_f32_t *)resampler->filter, coeffs, NULL, length, interp, resampler->decim_c, 0);
+
34 } else {
+
35 resampler->dsps_firmr = (int32_t (*)(void *, void *, void *, int32_t))dsps_firmr_s16;
+
36 resampler->filter = (void *)malloc(sizeof(fir_s16_t));
+
37 ret = dsps_firmr_init_s16((fir_s16_t *)resampler->filter, coeffs, NULL, length, interp, resampler->decim_c, 0, shift);
+
38 }
+
39
+
40 if (ret != ESP_OK) {
+
41 return ret;
+
42 }
+
43
+
44 return ret;
+
45}
+
#define ESP_ERR_DSP_INVALID_PARAM
+
#define dsps_firmr_f32
Definition dsps_fir.h:380
+
#define dsps_firmr_s16
Definition dsps_fir.h:382
+
esp_err_t dsps_firmr_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int length, int interp, int decim, int start_pos)
initialize structure for multi-rate FIR filter Function initialize structure for 32 bit floating poin...
+
esp_err_t dsps_firmr_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t interp, int16_t decim, int16_t start_pos, int16_t shift)
initialize structure for multi-rate FIR filter Function initialize structure for 16 bit signed fixed ...
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float coeffs[256]
Definition test_fir.c:14
+
+

References dsps_resample_mr_s::active_decim, coeffs, dsps_resample_mr_s::decim_avg_in, dsps_resample_mr_s::decim_avg_out, dsps_resample_mr_s::decim_c, dsps_resample_mr_s::decim_f, dsps_resample_mr_s::dsps_firmr, dsps_firmr_f32, dsps_firmr_init_f32(), dsps_firmr_init_s16(), dsps_firmr_s16, ESP_ERR_DSP_INVALID_PARAM, ESP_OK, dsps_resample_mr_s::filter, dsps_resample_mr_s::fixed_point, and dsps_resample_mr_s::samplerate_factor.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ decim_avg_coeff

+ +
+
+ + + + + +
+ + + + +
const float decim_avg_coeff = 0.9999
+
+static
+
+ +

Definition at line 10 of file dsps_resampler_mr.c.

+ +

Referenced by dsps_resampler_mr_exec().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__resampler__mr_8c.js b/docs/html/dsps__resampler__mr_8c.js new file mode 100644 index 0000000..47061da --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c.js @@ -0,0 +1,7 @@ +var dsps__resampler__mr_8c = +[ + [ "dsps_resampler_mr_exec", "dsps__resampler__mr_8c.html#a5c99522d12cec050ac726cac95cde47a", null ], + [ "dsps_resampler_mr_free", "dsps__resampler__mr_8c.html#a2dda84398bcf6c77c3725aab0a20523d", null ], + [ "dsps_resampler_mr_init", "dsps__resampler__mr_8c.html#a2fb53d48742560a0c21d8d3a7e2b1d99", null ], + [ "decim_avg_coeff", "dsps__resampler__mr_8c.html#a00fb702642a6e948b8d7de56da22ae75", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__resampler__mr_8c__incl.md5 b/docs/html/dsps__resampler__mr_8c__incl.md5 new file mode 100644 index 0000000..3490403 --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c__incl.md5 @@ -0,0 +1 @@ +7d63eaf47729d7bd34fc0c6b996ae05c \ No newline at end of file diff --git a/docs/html/dsps__resampler__mr_8c__incl.svg b/docs/html/dsps__resampler__mr_8c__incl.svg new file mode 100644 index 0000000..abbb562 --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c__incl.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + +dsps_resampler_mr.c + + +Node1 + + +dsps_resampler_mr.c + + + + + +Node2 + + +dsps_resampler.h + + + + + +Node1->Node2 + + + + + + + + +Node15 + + +math.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +dsps_fir_platform.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node8->Node11 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__resampler__mr_8c__incl_org.svg b/docs/html/dsps__resampler__mr_8c__incl_org.svg new file mode 100644 index 0000000..b43bb5d --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c__incl_org.svg @@ -0,0 +1,210 @@ + + + + + + +dsps_resampler_mr.c + + +Node1 + + +dsps_resampler_mr.c + + + + + +Node2 + + +dsps_resampler.h + + + + + +Node1->Node2 + + + + + + + + +Node15 + + +math.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +dsps_fir_platform.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node8->Node11 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + diff --git a/docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph.md5 b/docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph.md5 new file mode 100644 index 0000000..340c6a4 --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph.md5 @@ -0,0 +1 @@ +21a6083e4cf2581f136e528ac1fc83e6 \ No newline at end of file diff --git a/docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph.svg b/docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph.svg new file mode 100644 index 0000000..4efbd8b --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_resampler_mr_free + + +Node1 + + +dsps_resampler_mr_free + + + + + +Node2 + + +dsps_fir_f32_free + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fird_s16_aexx_free + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph_org.svg b/docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph_org.svg new file mode 100644 index 0000000..9fa5a4c --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c_a2dda84398bcf6c77c3725aab0a20523d_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_resampler_mr_free + + +Node1 + + +dsps_resampler_mr_free + + + + + +Node2 + + +dsps_fir_f32_free + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fird_s16_aexx_free + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 b/docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 new file mode 100644 index 0000000..c377233 --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.md5 @@ -0,0 +1 @@ +016a4e300e7d528d9ae9fbf72391e469 \ No newline at end of file diff --git a/docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg b/docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg new file mode 100644 index 0000000..4649021 --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_resampler_mr_init + + +Node1 + + +dsps_resampler_mr_init + + + + + +Node2 + + +dsps_firmr_init_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_firmr_init_s16 + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg b/docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg new file mode 100644 index 0000000..13f2557 --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c_a2fb53d48742560a0c21d8d3a7e2b1d99_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_resampler_mr_init + + +Node1 + + +dsps_resampler_mr_init + + + + + +Node2 + + +dsps_firmr_init_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_firmr_init_s16 + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__resampler__mr_8c_source.html b/docs/html/dsps__resampler__mr_8c_source.html new file mode 100644 index 0000000..079cf0c --- /dev/null +++ b/docs/html/dsps__resampler__mr_8c_source.html @@ -0,0 +1,217 @@ + + + + + + + +ESP-IDF Firmware: dsps_resampler_mr.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_resampler_mr.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_resampler.h"
+
8#include <math.h>
+
9
+
10static const float decim_avg_coeff = 0.9999;
+
11
+
+
12esp_err_t dsps_resampler_mr_init(dsps_resample_mr_t *resampler, void *coeffs, int16_t length, int16_t interp, float samplerate_factor, int32_t fixed_point, int16_t shift)
+
13{
+
14 esp_err_t ret = ESP_OK;
+
15
+
16 if (samplerate_factor < 1) {
+ +
18 }
+
19
+
20 resampler->fixed_point = fixed_point;
+
21 resampler->samplerate_factor = samplerate_factor;
+
22 float decimation = (float)interp / samplerate_factor;
+
23 resampler->decim_f = floor(decimation);
+
24 resampler->decim_c = ceil(decimation);
+
25 resampler->active_decim = resampler->decim_c;
+
26 resampler->decim_avg_in = 1;
+
27 resampler->decim_avg_out = resampler->samplerate_factor;
+
28
+
29 if (fixed_point == 0) {
+
30 resampler->dsps_firmr = (int32_t (*)(void *, void *, void *, int32_t))dsps_firmr_f32;
+
31 resampler->filter = (void *)malloc(sizeof(fir_f32_t));
+
32
+
33 ret = dsps_firmr_init_f32((fir_f32_t *)resampler->filter, coeffs, NULL, length, interp, resampler->decim_c, 0);
+
34 } else {
+
35 resampler->dsps_firmr = (int32_t (*)(void *, void *, void *, int32_t))dsps_firmr_s16;
+
36 resampler->filter = (void *)malloc(sizeof(fir_s16_t));
+
37 ret = dsps_firmr_init_s16((fir_s16_t *)resampler->filter, coeffs, NULL, length, interp, resampler->decim_c, 0, shift);
+
38 }
+
39
+
40 if (ret != ESP_OK) {
+
41 return ret;
+
42 }
+
43
+
44 return ret;
+
45}
+
+
46
+
+
47int32_t dsps_resampler_mr_exec(dsps_resample_mr_t *resampler, void *input, void *output, int32_t length, int32_t length_correction)
+
48{
+
49 int32_t result = 0;
+
50
+
51 if (resampler->fixed_point == 0) {
+
52 ((fir_f32_t *)resampler->filter)->decim = resampler->active_decim;
+
53 } else {
+
54 ((fir_s16_t *)resampler->filter)->decim = resampler->active_decim;
+
55 }
+
56
+
57 result = resampler->dsps_firmr(resampler->filter, input, output, length);
+
58
+
59 resampler->decim_avg_in = resampler->decim_avg_in * decim_avg_coeff + (float)length * (1 - decim_avg_coeff);
+
60 resampler->decim_avg_out = resampler->decim_avg_out * decim_avg_coeff + (float)(result - length_correction) * (1 - decim_avg_coeff);
+
61
+
62 if ((resampler->decim_avg_in * resampler->samplerate_factor) > (resampler->decim_avg_out)) {
+
63 resampler->active_decim = resampler->decim_f;
+
64 } else {
+
65 resampler->active_decim = resampler->decim_c;
+
66 }
+
67 return result;
+
68}
+
+
69
+
+ +
71{
+
72 if (resampler->fixed_point == 0) {
+
73 dsps_fir_f32_free((fir_f32_t *)(resampler->filter));
+
74 } else {
+ +
76 }
+
77 free(resampler->filter);
+
78}
+
+
#define ESP_ERR_DSP_INVALID_PARAM
+
#define dsps_firmr_f32
Definition dsps_fir.h:380
+
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
+
#define dsps_firmr_s16
Definition dsps_fir.h:382
+
struct fir_s16_s fir_s16_t
Data struct of s16 fir filter.
+
esp_err_t dsps_fir_f32_free(fir_f32_t *fir)
support arrays freeing function
+
esp_err_t dsps_fird_s16_aexx_free(fir_s16_t *fir)
support arrays freeing function
+
esp_err_t dsps_firmr_init_f32(fir_f32_t *fir, float *coeffs, float *delay, int length, int interp, int decim, int start_pos)
initialize structure for multi-rate FIR filter Function initialize structure for 32 bit floating poin...
+
esp_err_t dsps_firmr_init_s16(fir_s16_t *fir, int16_t *coeffs, int16_t *delay, int16_t coeffs_len, int16_t interp, int16_t decim, int16_t start_pos, int16_t shift)
initialize structure for multi-rate FIR filter Function initialize structure for 16 bit signed fixed ...
+ +
struct dsps_resample_mr_s dsps_resample_mr_t
Data struct of f32 multi-rate resampler.
+
static const float decim_avg_coeff
+
void dsps_resampler_mr_free(dsps_resample_mr_t *resampler)
Free the multi-rate resampler.
+
esp_err_t dsps_resampler_mr_init(dsps_resample_mr_t *resampler, void *coeffs, int16_t length, int16_t interp, float samplerate_factor, int32_t fixed_point, int16_t shift)
Initialize the multi-rate resampler.
+
int32_t dsps_resampler_mr_exec(dsps_resample_mr_t *resampler, void *input, void *output, int32_t length, int32_t length_correction)
Execute the multi-rate resampler.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ + + + + +
int32_t(* dsps_firmr)(void *fir, void *input, void *output, int32_t length)
+ + + +
float coeffs[256]
Definition test_fir.c:14
+
+
+
+ + + + diff --git a/docs/html/dsps__resampler__ph_8c.html b/docs/html/dsps__resampler__ph_8c.html new file mode 100644 index 0000000..357c7a4 --- /dev/null +++ b/docs/html/dsps__resampler__ph_8c.html @@ -0,0 +1,281 @@ + + + + + + + +ESP-IDF Firmware: dsps_resampler_ph.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_resampler_ph.c File Reference
+
+
+
#include "dsps_resampler.h"
+#include <math.h>
+
+Include dependency graph for dsps_resampler_ph.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Functions

esp_err_t dsps_resampler_ph_init (dsps_resample_ph_t *resampler, float samplerate_factor)
 Initialize the poly-phase resampler.
int32_t dsps_resampler_ph_exec (dsps_resample_ph_t *resampler, float *input, float *output, int32_t length)
 Execute the poly-phase resampler.
+

Function Documentation

+ +

◆ dsps_resampler_ph_exec()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
int32_t dsps_resampler_ph_exec (dsps_resample_ph_t * resampler,
float * input,
float * output,
int32_t length )
+
+ +

Execute the poly-phase resampler.

+
Parameters
+ + + + + +
resamplerPointer to the resampler structure
inputPointer to the input buffer
outputPointer to the output buffer
lengthLength of the input buffer
+
+
+
Returns
Length of the output buffer
+ +

Definition at line 28 of file dsps_resampler_ph.c.

+
29{
+
30 int32_t result = 0;
+
31 int input_pos = 0;
+
32 float in_x[4];
+
33
+
34 int in_pos = 0;
+
35 for (int pos = resampler->delay_pos; pos < 4; pos++) {
+
36 in_x[in_pos++] = resampler->delay[pos];
+
37 }
+
38 for (int pos = 0; pos < resampler->delay_pos; pos++) {
+
39 in_x[in_pos++] = resampler->delay[pos];
+
40 }
+
41
+
42 while (input_pos < length) {
+
43
+
44 float c0 = in_x[1];
+
45 float c1 = 0.5 * (in_x[2] - in_x[0]);
+
46 float c2 = in_x[0] - 2.5 * in_x[1] + 2 * in_x[2] - 0.5 * in_x[3];
+
47 float c3 = 0.5 * (in_x[3] - in_x[0]) + 1.5 * (in_x[1] - in_x[2]);
+
48
+
49 output[result] = c0 + resampler->phase * (c1 + resampler->phase * (c2 + resampler->phase * c3));
+
50 result++;
+
51 resampler->phase += resampler->step;
+
52
+
53 while (resampler->phase >= 1) {
+
54 resampler->phase -= 1;
+
55 resampler->delay[resampler->delay_pos] = input[input_pos];
+
56 resampler->delay_pos++;
+
57 if (resampler->delay_pos >= 4) {
+
58 resampler->delay_pos = 0;
+
59 }
+
60 input_pos++;
+
61 in_pos = 0;
+
62 for (int pos = resampler->delay_pos; pos < 4; pos++) {
+
63 in_x[in_pos++] = resampler->delay[pos];
+
64 }
+
65 for (int pos = 0; pos < resampler->delay_pos; pos++) {
+
66 in_x[in_pos++] = resampler->delay[pos];
+
67 }
+
68 }
+
69 }
+
70
+
71 return result;
+
72}
+ + + + +
+

References dsps_resample_ph_s::delay, dsps_resample_ph_s::delay_pos, dsps_resample_ph_s::phase, and dsps_resample_ph_s::step.

+ +
+
+ +

◆ dsps_resampler_ph_init()

+ +
+
+ + + + + + + + + + + +
esp_err_t dsps_resampler_ph_init (dsps_resample_ph_t * resampler,
float samplerate_factor )
+
+ +

Initialize the poly-phase resampler.

+

The poly-phase resampler is a implementation of the poly-phase Farrow filter that use cubic interpolation with 4 coefficients.

+
Parameters
+ + + +
resamplerPointer to the resampler structure
samplerate_factorSample rate factor
+
+
+
Returns
ESP_OK on success, ESP_ERR_INVALID_ARG if the parameters are invalid
+ +

Definition at line 10 of file dsps_resampler_ph.c.

+
11{
+
12 esp_err_t ret = ESP_OK;
+
13
+
14 if (samplerate_factor < 1) {
+ +
16 }
+
17
+
18 for (int i = 0; i < 4; i++) {
+
19 resampler->delay[i] = 0;
+
20 }
+
21 resampler->delay_pos = 0;
+
22
+
23 resampler->step = 1.0f / samplerate_factor;
+
24 resampler->phase = 0;
+
25 return ret;
+
26}
+
#define ESP_ERR_DSP_INVALID_PARAM
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+

References dsps_resample_ph_s::delay, dsps_resample_ph_s::delay_pos, ESP_ERR_DSP_INVALID_PARAM, ESP_OK, dsps_resample_ph_s::phase, and dsps_resample_ph_s::step.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__resampler__ph_8c.js b/docs/html/dsps__resampler__ph_8c.js new file mode 100644 index 0000000..c16783e --- /dev/null +++ b/docs/html/dsps__resampler__ph_8c.js @@ -0,0 +1,5 @@ +var dsps__resampler__ph_8c = +[ + [ "dsps_resampler_ph_exec", "dsps__resampler__ph_8c.html#ae15e0ebae0ee787f71622920a814383b", null ], + [ "dsps_resampler_ph_init", "dsps__resampler__ph_8c.html#a0e980155b9b83387d7d28a3422a41238", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__resampler__ph_8c__incl.md5 b/docs/html/dsps__resampler__ph_8c__incl.md5 new file mode 100644 index 0000000..7a822d1 --- /dev/null +++ b/docs/html/dsps__resampler__ph_8c__incl.md5 @@ -0,0 +1 @@ +3862b89be2fcdf86d5fe4c7fc5e313c5 \ No newline at end of file diff --git a/docs/html/dsps__resampler__ph_8c__incl.svg b/docs/html/dsps__resampler__ph_8c__incl.svg new file mode 100644 index 0000000..a91ed80 --- /dev/null +++ b/docs/html/dsps__resampler__ph_8c__incl.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + +dsps_resampler_ph.c + + +Node1 + + +dsps_resampler_ph.c + + + + + +Node2 + + +dsps_resampler.h + + + + + +Node1->Node2 + + + + + + + + +Node15 + + +math.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +dsps_fir_platform.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node8->Node11 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__resampler__ph_8c__incl_org.svg b/docs/html/dsps__resampler__ph_8c__incl_org.svg new file mode 100644 index 0000000..96c4ac7 --- /dev/null +++ b/docs/html/dsps__resampler__ph_8c__incl_org.svg @@ -0,0 +1,210 @@ + + + + + + +dsps_resampler_ph.c + + +Node1 + + +dsps_resampler_ph.c + + + + + +Node2 + + +dsps_resampler.h + + + + + +Node1->Node2 + + + + + + + + +Node15 + + +math.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_fir.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +dsps_fir_platform.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node8->Node11 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + diff --git a/docs/html/dsps__resampler__ph_8c_source.html b/docs/html/dsps__resampler__ph_8c_source.html new file mode 100644 index 0000000..1d3a6bb --- /dev/null +++ b/docs/html/dsps__resampler__ph_8c_source.html @@ -0,0 +1,193 @@ + + + + + + + +ESP-IDF Firmware: dsps_resampler_ph.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_resampler_ph.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_resampler.h"
+
8#include <math.h>
+
9
+
+
10esp_err_t dsps_resampler_ph_init(dsps_resample_ph_t *resampler, float samplerate_factor)
+
11{
+
12 esp_err_t ret = ESP_OK;
+
13
+
14 if (samplerate_factor < 1) {
+ +
16 }
+
17
+
18 for (int i = 0; i < 4; i++) {
+
19 resampler->delay[i] = 0;
+
20 }
+
21 resampler->delay_pos = 0;
+
22
+
23 resampler->step = 1.0f / samplerate_factor;
+
24 resampler->phase = 0;
+
25 return ret;
+
26}
+
+
27
+
+
28int32_t dsps_resampler_ph_exec(dsps_resample_ph_t *resampler, float *input, float *output, int32_t length)
+
29{
+
30 int32_t result = 0;
+
31 int input_pos = 0;
+
32 float in_x[4];
+
33
+
34 int in_pos = 0;
+
35 for (int pos = resampler->delay_pos; pos < 4; pos++) {
+
36 in_x[in_pos++] = resampler->delay[pos];
+
37 }
+
38 for (int pos = 0; pos < resampler->delay_pos; pos++) {
+
39 in_x[in_pos++] = resampler->delay[pos];
+
40 }
+
41
+
42 while (input_pos < length) {
+
43
+
44 float c0 = in_x[1];
+
45 float c1 = 0.5 * (in_x[2] - in_x[0]);
+
46 float c2 = in_x[0] - 2.5 * in_x[1] + 2 * in_x[2] - 0.5 * in_x[3];
+
47 float c3 = 0.5 * (in_x[3] - in_x[0]) + 1.5 * (in_x[1] - in_x[2]);
+
48
+
49 output[result] = c0 + resampler->phase * (c1 + resampler->phase * (c2 + resampler->phase * c3));
+
50 result++;
+
51 resampler->phase += resampler->step;
+
52
+
53 while (resampler->phase >= 1) {
+
54 resampler->phase -= 1;
+
55 resampler->delay[resampler->delay_pos] = input[input_pos];
+
56 resampler->delay_pos++;
+
57 if (resampler->delay_pos >= 4) {
+
58 resampler->delay_pos = 0;
+
59 }
+
60 input_pos++;
+
61 in_pos = 0;
+
62 for (int pos = resampler->delay_pos; pos < 4; pos++) {
+
63 in_x[in_pos++] = resampler->delay[pos];
+
64 }
+
65 for (int pos = 0; pos < resampler->delay_pos; pos++) {
+
66 in_x[in_pos++] = resampler->delay[pos];
+
67 }
+
68 }
+
69 }
+
70
+
71 return result;
+
72}
+
+
#define ESP_ERR_DSP_INVALID_PARAM
+ +
struct dsps_resample_ph_s dsps_resample_ph_t
Data struct of f32 poly-phase resampler.
+
esp_err_t dsps_resampler_ph_init(dsps_resample_ph_t *resampler, float samplerate_factor)
Initialize the poly-phase resampler.
+
int32_t dsps_resampler_ph_exec(dsps_resample_ph_t *resampler, float *input, float *output, int32_t length)
Execute the poly-phase resampler.
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ + + + +
+
+
+ + + + diff --git a/docs/html/dsps__sfdr_8h.html b/docs/html/dsps__sfdr_8h.html new file mode 100644 index 0000000..aa0988a --- /dev/null +++ b/docs/html/dsps__sfdr_8h.html @@ -0,0 +1,263 @@ + + + + + + + +ESP-IDF Firmware: dsps_sfdr.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sfdr.h File Reference
+
+
+
#include "dsp_err.h"
+
+Include dependency graph for dsps_sfdr.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Functions

float dsps_sfdr_f32 (const float *input, int32_t len, int8_t use_dc)
 SFDR.
float dsps_sfdr_fc32 (const float *input, int32_t len)
+

Function Documentation

+ +

◆ dsps_sfdr_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
float dsps_sfdr_f32 (const float * input,
int32_t len,
int8_t use_dc )
+
+ +

SFDR.

+

The function calculates Spurious-Free Dynamic Range. The function makes FFT of the input, then search a spectrum maximum, and then compare maximum value with all others. Result calculated as minimum value. This function have to be used for debug and unit tests only. It's not optimized for real-time processing. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
[in]inputinput array.
lenlength of the input signal
use_dcthis parameter define will be DC value used for calculation or not. 0 - SNR will not include DC power 1 - SNR will include DC power
+
+
+
Returns
    +
  • SFDR in DB
  • +
+
+ +

Definition at line 24 of file dsps_sfdr_f32.cpp.

+
25{
+
26 if (!dsp_is_power_of_two(len)) {
+
27 return 0;
+
28 }
+
29
+
30 float *temp_array = new float[len * 2];
+
31 for (int i = 0 ; i < len ; i++) {
+
32 float wind = 0.5 * (1 - cosf(i * 2 * M_PI / (float)len));
+
33 temp_array[i * 2 + 0] = input[i] * wind;
+
34 temp_array[i * 2 + 1] = 0;
+
35 }
+ +
37
+
38 dsps_fft2r_fc32_ansi(temp_array, len);
+
39 dsps_bit_rev_fc32_ansi(temp_array, len);
+
40
+
41 float min = std::numeric_limits<float>::max();
+
42 float max = std::numeric_limits<float>::min();
+
43 int max_pos = 0;
+
44 for (int i = 0 ; i < len / 2 ; i++) {
+
45 temp_array[i] = 10 * log10f(temp_array[i * 2 + 0] * temp_array[i * 2 + 0] + temp_array[i * 2 + 1] * temp_array[i * 2 + 1]);
+
46 if (temp_array[i] < min) {
+
47 min = temp_array[i];
+
48 }
+
49 if (temp_array[i] > max) {
+
50 max = temp_array[i];
+
51 max_pos = i;
+
52 }
+
53 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB", i, temp_array[i]);
+
54 }
+
55 int start_pos = 0;
+
56 int wind_width = 5;
+
57 float min_diff = std::numeric_limits<float>::max();
+
58
+
59 if (use_dc == 0) {
+
60 start_pos = wind_width;
+
61 }
+
62 for (int i = start_pos ; i < len / 2 ; i++) {
+
63 if ((i < (max_pos - wind_width)) || (i > (max_pos + wind_width))) {
+
64 float diff = max - temp_array[i];
+
65 if (diff < min_diff) {
+
66 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB, maX=%f, max_pos=%i", i, temp_array[i], max, max_pos);
+
67 min_diff = diff;
+
68 }
+
69 }
+
70 }
+
71
+
72 delete[] temp_array;
+
73 return min_diff;
+
74}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
#define dsps_fft2r_fc32_ansi(data, N)
Definition dsps_fft2r.h:114
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
init fft tables
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+
#define M_PI
Definition esp_err.h:26
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsp_is_power_of_two(), dsps_bit_rev_fc32_ansi(), dsps_fft2r_fc32_ansi, dsps_fft2r_init_fc32(), ESP_LOGD, M_PI, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_sfdr_fc32()

+ +
+
+ + + + + + + + + + + +
float dsps_sfdr_fc32 (const float * input,
int32_t len )
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__sfdr_8h.js b/docs/html/dsps__sfdr_8h.js new file mode 100644 index 0000000..1679914 --- /dev/null +++ b/docs/html/dsps__sfdr_8h.js @@ -0,0 +1,5 @@ +var dsps__sfdr_8h = +[ + [ "dsps_sfdr_f32", "dsps__sfdr_8h.html#ae224c5e7f4802b7b403c17b2e8a4a448", null ], + [ "dsps_sfdr_fc32", "dsps__sfdr_8h.html#a0f8657c613c7ac599b0d2c5eb9797624", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__sfdr_8h__dep__incl.md5 b/docs/html/dsps__sfdr_8h__dep__incl.md5 new file mode 100644 index 0000000..ca85328 --- /dev/null +++ b/docs/html/dsps__sfdr_8h__dep__incl.md5 @@ -0,0 +1 @@ +44465841601d9803dc0ea43db95faa71 \ No newline at end of file diff --git a/docs/html/dsps__sfdr_8h__dep__incl.svg b/docs/html/dsps__sfdr_8h__dep__incl.svg new file mode 100644 index 0000000..9114413 --- /dev/null +++ b/docs/html/dsps__sfdr_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_sfdr.h + + +Node1 + + +dsps_sfdr.h + + + + + +Node2 + + +dsps_sfdr_f32.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__sfdr_8h__dep__incl_org.svg b/docs/html/dsps__sfdr_8h__dep__incl_org.svg new file mode 100644 index 0000000..b925a10 --- /dev/null +++ b/docs/html/dsps__sfdr_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dsps_sfdr.h + + +Node1 + + +dsps_sfdr.h + + + + + +Node2 + + +dsps_sfdr_f32.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + diff --git a/docs/html/dsps__sfdr_8h__incl.md5 b/docs/html/dsps__sfdr_8h__incl.md5 new file mode 100644 index 0000000..bfd73c9 --- /dev/null +++ b/docs/html/dsps__sfdr_8h__incl.md5 @@ -0,0 +1 @@ +7398962a9c740fdd10b8be8c0b3b0482 \ No newline at end of file diff --git a/docs/html/dsps__sfdr_8h__incl.svg b/docs/html/dsps__sfdr_8h__incl.svg new file mode 100644 index 0000000..801b562 --- /dev/null +++ b/docs/html/dsps__sfdr_8h__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_sfdr.h + + +Node1 + + +dsps_sfdr.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sfdr_8h__incl_org.svg b/docs/html/dsps__sfdr_8h__incl_org.svg new file mode 100644 index 0000000..7a6d41f --- /dev/null +++ b/docs/html/dsps__sfdr_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_sfdr.h + + +Node1 + + +dsps_sfdr.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 b/docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 new file mode 100644 index 0000000..49dace8 --- /dev/null +++ b/docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 @@ -0,0 +1 @@ +955a8afd7d1fbab7ae5b5976c65eba74 \ No newline at end of file diff --git a/docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg b/docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg new file mode 100644 index 0000000..c35224a --- /dev/null +++ b/docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_sfdr_f32 + + +Node1 + + +dsps_sfdr_f32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node4 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node6 + + + + + + + + +Node6->Node2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg b/docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg new file mode 100644 index 0000000..8dbc78c --- /dev/null +++ b/docs/html/dsps__sfdr_8h_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg @@ -0,0 +1,138 @@ + + + + + + +dsps_sfdr_f32 + + +Node1 + + +dsps_sfdr_f32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node4 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node6 + + + + + + + + +Node6->Node2 + + + + + + + + diff --git a/docs/html/dsps__sfdr_8h_source.html b/docs/html/dsps__sfdr_8h_source.html new file mode 100644 index 0000000..ac705e4 --- /dev/null +++ b/docs/html/dsps__sfdr_8h_source.html @@ -0,0 +1,142 @@ + + + + + + + +ESP-IDF Firmware: dsps_sfdr.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sfdr.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_sfdr_H_
+
16#define _dsps_sfdr_H_
+
17
+
18
+
19#include "dsp_err.h"
+
20
+
21#ifdef __cplusplus
+
22extern "C"
+
23{
+
24#endif
+
25
+
44float dsps_sfdr_f32(const float *input, int32_t len, int8_t use_dc);
+
45float dsps_sfdr_fc32(const float *input, int32_t len);
+
46
+
47#ifdef __cplusplus
+
48}
+
49#endif
+
50
+
51#endif // _dsps_sfdr_H_
+ +
float dsps_sfdr_fc32(const float *input, int32_t len)
+
float dsps_sfdr_f32(const float *input, int32_t len, int8_t use_dc)
SFDR.
+
+
+
+ + + + diff --git a/docs/html/dsps__sfdr__f32_8cpp.html b/docs/html/dsps__sfdr__f32_8cpp.html new file mode 100644 index 0000000..09c9e9e --- /dev/null +++ b/docs/html/dsps__sfdr__f32_8cpp.html @@ -0,0 +1,270 @@ + + + + + + + +ESP-IDF Firmware: dsps_sfdr_f32.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sfdr_f32.cpp File Reference
+
+
+
#include "dsps_sfdr.h"
+#include "dsps_fft2r.h"
+#include "dsp_common.h"
+#include <math.h>
+#include <limits>
+#include "esp_log.h"
+
+Include dependency graph for dsps_sfdr_f32.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

float dsps_sfdr_f32 (const float *input, int32_t len, int8_t use_dc)
 SFDR.
+ + +

+Variables

static const char * TAG = "sfdr"
+

Function Documentation

+ +

◆ dsps_sfdr_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
float dsps_sfdr_f32 (const float * input,
int32_t len,
int8_t use_dc )
+
+ +

SFDR.

+

The function calculates Spurious-Free Dynamic Range. The function makes FFT of the input, then search a spectrum maximum, and then compare maximum value with all others. Result calculated as minimum value. This function have to be used for debug and unit tests only. It's not optimized for real-time processing. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
[in]inputinput array.
lenlength of the input signal
use_dcthis parameter define will be DC value used for calculation or not. 0 - SNR will not include DC power 1 - SNR will include DC power
+
+
+
Returns
    +
  • SFDR in DB
  • +
+
+ +

Definition at line 24 of file dsps_sfdr_f32.cpp.

+
25{
+
26 if (!dsp_is_power_of_two(len)) {
+
27 return 0;
+
28 }
+
29
+
30 float *temp_array = new float[len * 2];
+
31 for (int i = 0 ; i < len ; i++) {
+
32 float wind = 0.5 * (1 - cosf(i * 2 * M_PI / (float)len));
+
33 temp_array[i * 2 + 0] = input[i] * wind;
+
34 temp_array[i * 2 + 1] = 0;
+
35 }
+ +
37
+
38 dsps_fft2r_fc32_ansi(temp_array, len);
+
39 dsps_bit_rev_fc32_ansi(temp_array, len);
+
40
+
41 float min = std::numeric_limits<float>::max();
+
42 float max = std::numeric_limits<float>::min();
+
43 int max_pos = 0;
+
44 for (int i = 0 ; i < len / 2 ; i++) {
+
45 temp_array[i] = 10 * log10f(temp_array[i * 2 + 0] * temp_array[i * 2 + 0] + temp_array[i * 2 + 1] * temp_array[i * 2 + 1]);
+
46 if (temp_array[i] < min) {
+
47 min = temp_array[i];
+
48 }
+
49 if (temp_array[i] > max) {
+
50 max = temp_array[i];
+
51 max_pos = i;
+
52 }
+
53 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB", i, temp_array[i]);
+
54 }
+
55 int start_pos = 0;
+
56 int wind_width = 5;
+
57 float min_diff = std::numeric_limits<float>::max();
+
58
+
59 if (use_dc == 0) {
+
60 start_pos = wind_width;
+
61 }
+
62 for (int i = start_pos ; i < len / 2 ; i++) {
+
63 if ((i < (max_pos - wind_width)) || (i > (max_pos + wind_width))) {
+
64 float diff = max - temp_array[i];
+
65 if (diff < min_diff) {
+
66 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB, maX=%f, max_pos=%i", i, temp_array[i], max, max_pos);
+
67 min_diff = diff;
+
68 }
+
69 }
+
70 }
+
71
+
72 delete[] temp_array;
+
73 return min_diff;
+
74}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
#define dsps_fft2r_fc32_ansi(data, N)
Definition dsps_fft2r.h:114
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
init fft tables
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+
#define M_PI
Definition esp_err.h:26
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsp_is_power_of_two(), dsps_bit_rev_fc32_ansi(), dsps_fft2r_fc32_ansi, dsps_fft2r_init_fc32(), ESP_LOGD, M_PI, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "sfdr"
+
+static
+
+ +

Definition at line 22 of file dsps_sfdr_f32.cpp.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__sfdr__f32_8cpp.js b/docs/html/dsps__sfdr__f32_8cpp.js new file mode 100644 index 0000000..b058601 --- /dev/null +++ b/docs/html/dsps__sfdr__f32_8cpp.js @@ -0,0 +1,5 @@ +var dsps__sfdr__f32_8cpp = +[ + [ "dsps_sfdr_f32", "dsps__sfdr__f32_8cpp.html#ae224c5e7f4802b7b403c17b2e8a4a448", null ], + [ "TAG", "dsps__sfdr__f32_8cpp.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__sfdr__f32_8cpp__incl.md5 b/docs/html/dsps__sfdr__f32_8cpp__incl.md5 new file mode 100644 index 0000000..1e94831 --- /dev/null +++ b/docs/html/dsps__sfdr__f32_8cpp__incl.md5 @@ -0,0 +1 @@ +bee1cf3f50266698fb18ac4f9425f4c0 \ No newline at end of file diff --git a/docs/html/dsps__sfdr__f32_8cpp__incl.svg b/docs/html/dsps__sfdr__f32_8cpp__incl.svg new file mode 100644 index 0000000..2df34ab --- /dev/null +++ b/docs/html/dsps__sfdr__f32_8cpp__incl.svg @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_sfdr_f32.cpp + + +Node1 + + +dsps_sfdr_f32.cpp + + + + + +Node2 + + +dsps_sfdr.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +dsps_fft2r.h + + + + + +Node1->Node8 + + + + + + + + +Node12 + + +dsp_common.h + + + + + +Node1->Node12 + + + + + + + + +Node16 + + +math.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +limits + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_log.h + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dsps_fft_tables.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_platform.h + + + + + +Node8->Node11 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12->Node3 + + + + + + + + +Node12->Node4 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node12->Node15 + + + + + + + + +Node18->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__sfdr__f32_8cpp__incl_org.svg b/docs/html/dsps__sfdr__f32_8cpp__incl_org.svg new file mode 100644 index 0000000..54d2201 --- /dev/null +++ b/docs/html/dsps__sfdr__f32_8cpp__incl_org.svg @@ -0,0 +1,372 @@ + + + + + + +dsps_sfdr_f32.cpp + + +Node1 + + +dsps_sfdr_f32.cpp + + + + + +Node2 + + +dsps_sfdr.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +dsps_fft2r.h + + + + + +Node1->Node8 + + + + + + + + +Node12 + + +dsp_common.h + + + + + +Node1->Node12 + + + + + + + + +Node16 + + +math.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +limits + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_log.h + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dsps_fft_tables.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_platform.h + + + + + +Node8->Node11 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12->Node3 + + + + + + + + +Node12->Node4 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node12->Node15 + + + + + + + + +Node18->Node6 + + + + + + + + diff --git a/docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 b/docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 new file mode 100644 index 0000000..49dace8 --- /dev/null +++ b/docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.md5 @@ -0,0 +1 @@ +955a8afd7d1fbab7ae5b5976c65eba74 \ No newline at end of file diff --git a/docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg b/docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg new file mode 100644 index 0000000..0e37c52 --- /dev/null +++ b/docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph.svg @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_sfdr_f32 + + +Node1 + + +dsps_sfdr_f32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node4 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node6 + + + + + + + + +Node6->Node2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg b/docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg new file mode 100644 index 0000000..8dbc78c --- /dev/null +++ b/docs/html/dsps__sfdr__f32_8cpp_ae224c5e7f4802b7b403c17b2e8a4a448_cgraph_org.svg @@ -0,0 +1,138 @@ + + + + + + +dsps_sfdr_f32 + + +Node1 + + +dsps_sfdr_f32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node4 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node6 + + + + + + + + +Node6->Node2 + + + + + + + + diff --git a/docs/html/dsps__sfdr__f32_8cpp_source.html b/docs/html/dsps__sfdr__f32_8cpp_source.html new file mode 100644 index 0000000..90e96ca --- /dev/null +++ b/docs/html/dsps__sfdr__f32_8cpp_source.html @@ -0,0 +1,195 @@ + + + + + + + +ESP-IDF Firmware: dsps_sfdr_f32.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sfdr_f32.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_sfdr.h"
+
16#include "dsps_fft2r.h"
+
17#include "dsp_common.h"
+
18#include <math.h>
+
19#include <limits>
+
20#include "esp_log.h"
+
21
+
22static const char *TAG = "sfdr";
+
23
+
+
24float dsps_sfdr_f32(const float *input, int32_t len, int8_t use_dc)
+
25{
+
26 if (!dsp_is_power_of_two(len)) {
+
27 return 0;
+
28 }
+
29
+
30 float *temp_array = new float[len * 2];
+
31 for (int i = 0 ; i < len ; i++) {
+
32 float wind = 0.5 * (1 - cosf(i * 2 * M_PI / (float)len));
+
33 temp_array[i * 2 + 0] = input[i] * wind;
+
34 temp_array[i * 2 + 1] = 0;
+
35 }
+ +
37
+
38 dsps_fft2r_fc32_ansi(temp_array, len);
+
39 dsps_bit_rev_fc32_ansi(temp_array, len);
+
40
+
41 float min = std::numeric_limits<float>::max();
+
42 float max = std::numeric_limits<float>::min();
+
43 int max_pos = 0;
+
44 for (int i = 0 ; i < len / 2 ; i++) {
+
45 temp_array[i] = 10 * log10f(temp_array[i * 2 + 0] * temp_array[i * 2 + 0] + temp_array[i * 2 + 1] * temp_array[i * 2 + 1]);
+
46 if (temp_array[i] < min) {
+
47 min = temp_array[i];
+
48 }
+
49 if (temp_array[i] > max) {
+
50 max = temp_array[i];
+
51 max_pos = i;
+
52 }
+
53 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB", i, temp_array[i]);
+
54 }
+
55 int start_pos = 0;
+
56 int wind_width = 5;
+
57 float min_diff = std::numeric_limits<float>::max();
+
58
+
59 if (use_dc == 0) {
+
60 start_pos = wind_width;
+
61 }
+
62 for (int i = start_pos ; i < len / 2 ; i++) {
+
63 if ((i < (max_pos - wind_width)) || (i > (max_pos + wind_width))) {
+
64 float diff = max - temp_array[i];
+
65 if (diff < min_diff) {
+
66 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB, maX=%f, max_pos=%i", i, temp_array[i], max, max_pos);
+
67 min_diff = diff;
+
68 }
+
69 }
+
70 }
+
71
+
72 delete[] temp_array;
+
73 return min_diff;
+
74}
+
+ +
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+ +
#define dsps_fft2r_fc32_ansi(data, N)
Definition dsps_fft2r.h:114
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
init fft tables
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+ +
float dsps_sfdr_f32(const float *input, int32_t len, int8_t use_dc)
SFDR.
+
#define M_PI
Definition esp_err.h:26
+ +
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+
+
+ + + + diff --git a/docs/html/dsps__snr_8h.html b/docs/html/dsps__snr_8h.html new file mode 100644 index 0000000..c8ac039 --- /dev/null +++ b/docs/html/dsps__snr_8h.html @@ -0,0 +1,267 @@ + + + + + + + +ESP-IDF Firmware: dsps_snr.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_snr.h File Reference
+
+
+
#include "dsp_err.h"
+
+Include dependency graph for dsps_snr.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Functions

float dsps_snr_f32 (const float *input, int32_t len, uint8_t use_dc)
 SNR.
float dsps_snr_fc32 (const float *input, int32_t len)
+

Function Documentation

+ +

◆ dsps_snr_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
float dsps_snr_f32 (const float * input,
int32_t len,
uint8_t use_dc )
+
+ +

SNR.

+

The function calculates signal to noise ration in case if signal is sine tone. The function makes FFT of the input, then search a spectrum maximum, and then calculated SNR as sum of all harmonics to the maximum value. This function have to be used for debug and unit tests only. It's not optimized for real-time processing. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
inputinput array.
lenlength of the input signal
use_dcthis parameter define will be DC value used for calculation or not. 0 - SNR will not include DC power 1 - SNR will include DC power
+
+
+
Returns
    +
  • SNR in dB
  • +
+
+ +

Definition at line 24 of file dsps_snr_f32.cpp.

+
25{
+
26 if (!dsp_is_power_of_two(len)) {
+
27 return 0;
+
28 }
+
29
+
30 float *temp_array = new float[len * 2];
+
31 for (int i = 0 ; i < len ; i++) {
+
32 float wind = 0.5 * (1 - cosf(i * 2 * M_PI / (float)len));
+
33 temp_array[i * 2 + 0] = input[i] * wind;
+
34 temp_array[i * 2 + 1] = 0;
+
35 }
+ +
37
+
38 dsps_fft2r_fc32_ansi(temp_array, len);
+
39 dsps_bit_rev_fc32_ansi(temp_array, len);
+
40
+
41 float min = std::numeric_limits<float>::max();
+
42 float max = std::numeric_limits<float>::min();
+
43 int max_pos = 0;
+
44 for (int i = 0 ; i < len / 2 ; i++) {
+
45 temp_array[i] = temp_array[i * 2 + 0] * temp_array[i * 2 + 0] + temp_array[i * 2 + 1] * temp_array[i * 2 + 1];
+
46 if (temp_array[i] < min) {
+
47 min = temp_array[i];
+
48 }
+
49 if (temp_array[i] > max) {
+
50 max = temp_array[i];
+
51 max_pos = i;
+
52 }
+
53 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB", i, temp_array[i]);
+
54 }
+
55 int start_pos = 0;
+
56 int wind_width = 7;
+
57
+
58 if (use_dc == 0) {
+
59 start_pos = wind_width;
+
60 }
+
61 float noise_power = 0;
+
62 for (int i = start_pos ; i < len / 2 ; i++) {
+
63 if ((i < (max_pos - wind_width)) || (i > (max_pos + wind_width))) {
+
64 noise_power += temp_array[i];
+
65 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB, maX=%f, max_pos=%i, noise_power=%f", i, temp_array[i], max, max_pos, noise_power);
+
66 }
+
67 }
+
68
+
69 delete[] temp_array;
+
70 noise_power += std::numeric_limits<float>::min();
+
71 if (noise_power < max * 0.00000000001) {
+
72 return 192;
+
73 }
+
74 float snr = max / noise_power;
+
75 float result = 10 * log10(max / noise_power) - 2; // 2 - window correction
+
76 ESP_LOGI(TAG, "SNR = %f, result=%f dB", snr, result);
+
77 return result;
+
78}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
#define dsps_fft2r_fc32_ansi(data, N)
Definition dsps_fft2r.h:114
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
init fft tables
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+
#define M_PI
Definition esp_err.h:26
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsp_is_power_of_two(), dsps_bit_rev_fc32_ansi(), dsps_fft2r_fc32_ansi, dsps_fft2r_init_fc32(), ESP_LOGD, M_PI, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_snr_fc32()

+ +
+
+ + + + + + + + + + + +
float dsps_snr_fc32 (const float * input,
int32_t len )
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__snr_8h.js b/docs/html/dsps__snr_8h.js new file mode 100644 index 0000000..38f119b --- /dev/null +++ b/docs/html/dsps__snr_8h.js @@ -0,0 +1,5 @@ +var dsps__snr_8h = +[ + [ "dsps_snr_f32", "dsps__snr_8h.html#aa9349a0ba3a576bafac3c0ade5278e46", null ], + [ "dsps_snr_fc32", "dsps__snr_8h.html#a6c293069c4ee47d1f1c43001bed425be", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__snr_8h__dep__incl.md5 b/docs/html/dsps__snr_8h__dep__incl.md5 new file mode 100644 index 0000000..6b18922 --- /dev/null +++ b/docs/html/dsps__snr_8h__dep__incl.md5 @@ -0,0 +1 @@ +4a9549cdc07b27c2c3a9fd31f84528f9 \ No newline at end of file diff --git a/docs/html/dsps__snr_8h__dep__incl.svg b/docs/html/dsps__snr_8h__dep__incl.svg new file mode 100644 index 0000000..f73e49b --- /dev/null +++ b/docs/html/dsps__snr_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_snr.h + + +Node1 + + +dsps_snr.h + + + + + +Node2 + + +dsps_snr_f32.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__snr_8h__dep__incl_org.svg b/docs/html/dsps__snr_8h__dep__incl_org.svg new file mode 100644 index 0000000..f9e1365 --- /dev/null +++ b/docs/html/dsps__snr_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dsps_snr.h + + +Node1 + + +dsps_snr.h + + + + + +Node2 + + +dsps_snr_f32.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + diff --git a/docs/html/dsps__snr_8h__incl.md5 b/docs/html/dsps__snr_8h__incl.md5 new file mode 100644 index 0000000..6fd772b --- /dev/null +++ b/docs/html/dsps__snr_8h__incl.md5 @@ -0,0 +1 @@ +9a9dfb295d0027a23d92ed8752e4631a \ No newline at end of file diff --git a/docs/html/dsps__snr_8h__incl.svg b/docs/html/dsps__snr_8h__incl.svg new file mode 100644 index 0000000..74c5a37 --- /dev/null +++ b/docs/html/dsps__snr_8h__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_snr.h + + +Node1 + + +dsps_snr.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__snr_8h__incl_org.svg b/docs/html/dsps__snr_8h__incl_org.svg new file mode 100644 index 0000000..36307f8 --- /dev/null +++ b/docs/html/dsps__snr_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_snr.h + + +Node1 + + +dsps_snr.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 b/docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 new file mode 100644 index 0000000..9aa26c2 --- /dev/null +++ b/docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 @@ -0,0 +1 @@ +db28f10000d1c7e9192aef4e15bed63f \ No newline at end of file diff --git a/docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.svg b/docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.svg new file mode 100644 index 0000000..be1991b --- /dev/null +++ b/docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.svg @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_snr_f32 + + +Node1 + + +dsps_snr_f32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node4 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node6 + + + + + + + + +Node6->Node2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph_org.svg b/docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph_org.svg new file mode 100644 index 0000000..1976d71 --- /dev/null +++ b/docs/html/dsps__snr_8h_aa9349a0ba3a576bafac3c0ade5278e46_cgraph_org.svg @@ -0,0 +1,138 @@ + + + + + + +dsps_snr_f32 + + +Node1 + + +dsps_snr_f32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node4 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node6 + + + + + + + + +Node6->Node2 + + + + + + + + diff --git a/docs/html/dsps__snr_8h_source.html b/docs/html/dsps__snr_8h_source.html new file mode 100644 index 0000000..59f1c3f --- /dev/null +++ b/docs/html/dsps__snr_8h_source.html @@ -0,0 +1,142 @@ + + + + + + + +ESP-IDF Firmware: dsps_snr.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_snr.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _DSP_SNR_H_
+
16#define _DSP_SNR_H_
+
17
+
18#include "dsp_err.h"
+
19
+
20#ifdef __cplusplus
+
21extern "C"
+
22{
+
23#endif
+
24
+
43float dsps_snr_f32(const float *input, int32_t len, uint8_t use_dc);
+
44float dsps_snr_fc32(const float *input, int32_t len);
+
45
+
46
+
47#ifdef __cplusplus
+
48}
+
49#endif
+
50
+
51#endif // _DSP_SNR_H_
+ +
float dsps_snr_fc32(const float *input, int32_t len)
+
float dsps_snr_f32(const float *input, int32_t len, uint8_t use_dc)
SNR.
+
+
+
+ + + + diff --git a/docs/html/dsps__snr__f32_8cpp.html b/docs/html/dsps__snr__f32_8cpp.html new file mode 100644 index 0000000..014ec05 --- /dev/null +++ b/docs/html/dsps__snr__f32_8cpp.html @@ -0,0 +1,274 @@ + + + + + + + +ESP-IDF Firmware: dsps_snr_f32.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_snr_f32.cpp File Reference
+
+
+
#include "dsps_snr.h"
+#include "dsps_fft2r.h"
+#include "dsp_common.h"
+#include <math.h>
+#include <limits>
+#include "esp_log.h"
+
+Include dependency graph for dsps_snr_f32.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

float dsps_snr_f32 (const float *input, int32_t len, uint8_t use_dc)
 SNR.
+ + +

+Variables

static const char * TAG = "snr"
+

Function Documentation

+ +

◆ dsps_snr_f32()

+ +
+
+ + + + + + + + + + + + + + + + +
float dsps_snr_f32 (const float * input,
int32_t len,
uint8_t use_dc )
+
+ +

SNR.

+

The function calculates signal to noise ration in case if signal is sine tone. The function makes FFT of the input, then search a spectrum maximum, and then calculated SNR as sum of all harmonics to the maximum value. This function have to be used for debug and unit tests only. It's not optimized for real-time processing. The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
inputinput array.
lenlength of the input signal
use_dcthis parameter define will be DC value used for calculation or not. 0 - SNR will not include DC power 1 - SNR will include DC power
+
+
+
Returns
    +
  • SNR in dB
  • +
+
+ +

Definition at line 24 of file dsps_snr_f32.cpp.

+
25{
+
26 if (!dsp_is_power_of_two(len)) {
+
27 return 0;
+
28 }
+
29
+
30 float *temp_array = new float[len * 2];
+
31 for (int i = 0 ; i < len ; i++) {
+
32 float wind = 0.5 * (1 - cosf(i * 2 * M_PI / (float)len));
+
33 temp_array[i * 2 + 0] = input[i] * wind;
+
34 temp_array[i * 2 + 1] = 0;
+
35 }
+ +
37
+
38 dsps_fft2r_fc32_ansi(temp_array, len);
+
39 dsps_bit_rev_fc32_ansi(temp_array, len);
+
40
+
41 float min = std::numeric_limits<float>::max();
+
42 float max = std::numeric_limits<float>::min();
+
43 int max_pos = 0;
+
44 for (int i = 0 ; i < len / 2 ; i++) {
+
45 temp_array[i] = temp_array[i * 2 + 0] * temp_array[i * 2 + 0] + temp_array[i * 2 + 1] * temp_array[i * 2 + 1];
+
46 if (temp_array[i] < min) {
+
47 min = temp_array[i];
+
48 }
+
49 if (temp_array[i] > max) {
+
50 max = temp_array[i];
+
51 max_pos = i;
+
52 }
+
53 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB", i, temp_array[i]);
+
54 }
+
55 int start_pos = 0;
+
56 int wind_width = 7;
+
57
+
58 if (use_dc == 0) {
+
59 start_pos = wind_width;
+
60 }
+
61 float noise_power = 0;
+
62 for (int i = start_pos ; i < len / 2 ; i++) {
+
63 if ((i < (max_pos - wind_width)) || (i > (max_pos + wind_width))) {
+
64 noise_power += temp_array[i];
+
65 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB, maX=%f, max_pos=%i, noise_power=%f", i, temp_array[i], max, max_pos, noise_power);
+
66 }
+
67 }
+
68
+
69 delete[] temp_array;
+
70 noise_power += std::numeric_limits<float>::min();
+
71 if (noise_power < max * 0.00000000001) {
+
72 return 192;
+
73 }
+
74 float snr = max / noise_power;
+
75 float result = 10 * log10(max / noise_power) - 2; // 2 - window correction
+
76 ESP_LOGI(TAG, "SNR = %f, result=%f dB", snr, result);
+
77 return result;
+
78}
+
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+
#define dsps_fft2r_fc32_ansi(data, N)
Definition dsps_fft2r.h:114
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
init fft tables
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+
#define M_PI
Definition esp_err.h:26
+
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+

References CONFIG_DSP_MAX_FFT_SIZE, dsp_is_power_of_two(), dsps_bit_rev_fc32_ansi(), dsps_fft2r_fc32_ansi, dsps_fft2r_init_fc32(), ESP_LOGD, M_PI, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "snr"
+
+static
+
+ +

Definition at line 22 of file dsps_snr_f32.cpp.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__snr__f32_8cpp.js b/docs/html/dsps__snr__f32_8cpp.js new file mode 100644 index 0000000..80da0b7 --- /dev/null +++ b/docs/html/dsps__snr__f32_8cpp.js @@ -0,0 +1,5 @@ +var dsps__snr__f32_8cpp = +[ + [ "dsps_snr_f32", "dsps__snr__f32_8cpp.html#aa9349a0ba3a576bafac3c0ade5278e46", null ], + [ "TAG", "dsps__snr__f32_8cpp.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__snr__f32_8cpp__incl.md5 b/docs/html/dsps__snr__f32_8cpp__incl.md5 new file mode 100644 index 0000000..22be647 --- /dev/null +++ b/docs/html/dsps__snr__f32_8cpp__incl.md5 @@ -0,0 +1 @@ +93054de5735bfc24308968457d87407b \ No newline at end of file diff --git a/docs/html/dsps__snr__f32_8cpp__incl.svg b/docs/html/dsps__snr__f32_8cpp__incl.svg new file mode 100644 index 0000000..37235ee --- /dev/null +++ b/docs/html/dsps__snr__f32_8cpp__incl.svg @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_snr_f32.cpp + + +Node1 + + +dsps_snr_f32.cpp + + + + + +Node2 + + +dsps_snr.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +dsps_fft2r.h + + + + + +Node1->Node8 + + + + + + + + +Node12 + + +dsp_common.h + + + + + +Node1->Node12 + + + + + + + + +Node16 + + +math.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +limits + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_log.h + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dsps_fft_tables.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_platform.h + + + + + +Node8->Node11 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12->Node3 + + + + + + + + +Node12->Node4 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node12->Node15 + + + + + + + + +Node18->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__snr__f32_8cpp__incl_org.svg b/docs/html/dsps__snr__f32_8cpp__incl_org.svg new file mode 100644 index 0000000..b433c5c --- /dev/null +++ b/docs/html/dsps__snr__f32_8cpp__incl_org.svg @@ -0,0 +1,372 @@ + + + + + + +dsps_snr_f32.cpp + + +Node1 + + +dsps_snr_f32.cpp + + + + + +Node2 + + +dsps_snr.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +dsps_fft2r.h + + + + + +Node1->Node8 + + + + + + + + +Node12 + + +dsp_common.h + + + + + +Node1->Node12 + + + + + + + + +Node16 + + +math.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +limits + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +esp_log.h + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dsps_fft_tables.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_platform.h + + + + + +Node8->Node11 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12->Node3 + + + + + + + + +Node12->Node4 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node12->Node15 + + + + + + + + +Node18->Node6 + + + + + + + + diff --git a/docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 b/docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 new file mode 100644 index 0000000..9aa26c2 --- /dev/null +++ b/docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.md5 @@ -0,0 +1 @@ +db28f10000d1c7e9192aef4e15bed63f \ No newline at end of file diff --git a/docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.svg b/docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.svg new file mode 100644 index 0000000..814b2cb --- /dev/null +++ b/docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph.svg @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_snr_f32 + + +Node1 + + +dsps_snr_f32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node4 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node6 + + + + + + + + +Node6->Node2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph_org.svg b/docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph_org.svg new file mode 100644 index 0000000..1976d71 --- /dev/null +++ b/docs/html/dsps__snr__f32_8cpp_aa9349a0ba3a576bafac3c0ade5278e46_cgraph_org.svg @@ -0,0 +1,138 @@ + + + + + + +dsps_snr_f32 + + +Node1 + + +dsps_snr_f32 + + + + + +Node2 + + +dsp_is_power_of_two + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_bit_rev_fc32_ansi + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_init_fc32 + + + + + +Node1->Node4 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +dsp_power_of_two + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_gen_w_r2_fc32 + + + + + +Node4->Node6 + + + + + + + + +Node6->Node2 + + + + + + + + diff --git a/docs/html/dsps__snr__f32_8cpp_source.html b/docs/html/dsps__snr__f32_8cpp_source.html new file mode 100644 index 0000000..d8fe05f --- /dev/null +++ b/docs/html/dsps__snr__f32_8cpp_source.html @@ -0,0 +1,199 @@ + + + + + + + +ESP-IDF Firmware: dsps_snr_f32.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_snr_f32.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_snr.h"
+
16#include "dsps_fft2r.h"
+
17#include "dsp_common.h"
+
18#include <math.h>
+
19#include <limits>
+
20#include "esp_log.h"
+
21
+
22static const char *TAG = "snr";
+
23
+
+
24float dsps_snr_f32(const float *input, int32_t len, uint8_t use_dc)
+
25{
+
26 if (!dsp_is_power_of_two(len)) {
+
27 return 0;
+
28 }
+
29
+
30 float *temp_array = new float[len * 2];
+
31 for (int i = 0 ; i < len ; i++) {
+
32 float wind = 0.5 * (1 - cosf(i * 2 * M_PI / (float)len));
+
33 temp_array[i * 2 + 0] = input[i] * wind;
+
34 temp_array[i * 2 + 1] = 0;
+
35 }
+ +
37
+
38 dsps_fft2r_fc32_ansi(temp_array, len);
+
39 dsps_bit_rev_fc32_ansi(temp_array, len);
+
40
+
41 float min = std::numeric_limits<float>::max();
+
42 float max = std::numeric_limits<float>::min();
+
43 int max_pos = 0;
+
44 for (int i = 0 ; i < len / 2 ; i++) {
+
45 temp_array[i] = temp_array[i * 2 + 0] * temp_array[i * 2 + 0] + temp_array[i * 2 + 1] * temp_array[i * 2 + 1];
+
46 if (temp_array[i] < min) {
+
47 min = temp_array[i];
+
48 }
+
49 if (temp_array[i] > max) {
+
50 max = temp_array[i];
+
51 max_pos = i;
+
52 }
+
53 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB", i, temp_array[i]);
+
54 }
+
55 int start_pos = 0;
+
56 int wind_width = 7;
+
57
+
58 if (use_dc == 0) {
+
59 start_pos = wind_width;
+
60 }
+
61 float noise_power = 0;
+
62 for (int i = start_pos ; i < len / 2 ; i++) {
+
63 if ((i < (max_pos - wind_width)) || (i > (max_pos + wind_width))) {
+
64 noise_power += temp_array[i];
+
65 ESP_LOGD(TAG, "FFT Data[%i] =%8.4f dB, maX=%f, max_pos=%i, noise_power=%f", i, temp_array[i], max, max_pos, noise_power);
+
66 }
+
67 }
+
68
+
69 delete[] temp_array;
+
70 noise_power += std::numeric_limits<float>::min();
+
71 if (noise_power < max * 0.00000000001) {
+
72 return 192;
+
73 }
+
74 float snr = max / noise_power;
+
75 float result = 10 * log10(max / noise_power) - 2; // 2 - window correction
+
76 ESP_LOGI(TAG, "SNR = %f, result=%f dB", snr, result);
+
77 return result;
+
78}
+
+ +
bool dsp_is_power_of_two(int x)
check power of two The function check if the argument is power of 2. The implementation use ANSI C an...
+ +
#define dsps_fft2r_fc32_ansi(data, N)
Definition dsps_fft2r.h:114
+
#define CONFIG_DSP_MAX_FFT_SIZE
Definition dsps_fft2r.h:24
+
esp_err_t dsps_fft2r_init_fc32(float *fft_table_buff, int table_size)
init fft tables
+
esp_err_t dsps_bit_rev_fc32_ansi(float *data, int N)
bit reverse operation for the complex input array
+ +
float dsps_snr_f32(const float *input, int32_t len, uint8_t use_dc)
SNR.
+
#define M_PI
Definition esp_err.h:26
+ +
#define ESP_LOGD
Definition esp_log.h:22
+
static const char * TAG
Definition main/main.c:31
+
+
+
+ + + + diff --git a/docs/html/dsps__sqrt_8h.html b/docs/html/dsps__sqrt_8h.html new file mode 100644 index 0000000..01c81d2 --- /dev/null +++ b/docs/html/dsps__sqrt_8h.html @@ -0,0 +1,362 @@ + + + + + + + +ESP-IDF Firmware: dsps_sqrt.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sqrt.h File Reference
+
+
+
#include "dsp_err.h"
+
+Include dependency graph for dsps_sqrt.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Macros

#define dsps_sqrt_f32   dsps_sqrt_f32_ansi
#define dsps_sqrtf_f32   dsps_sqrtf_f32_ansi
#define dsps_inverted_sqrtf_f32   dsps_inverted_sqrtf_f32_ansi
+ + + + + + + + +

+Functions

esp_err_t dsps_sqrt_f32_ansi (const float *input, float *output, int len)
 square root approximation
float dsps_sqrtf_f32_ansi (const float data)
 square root approximation
float dsps_inverted_sqrtf_f32_ansi (float data)
 inverted square root approximation
+

Macro Definition Documentation

+ +

◆ dsps_inverted_sqrtf_f32

+ +
+
+ + + + +
#define dsps_inverted_sqrtf_f32   dsps_inverted_sqrtf_f32_ansi
+
+ +

Definition at line 88 of file dsps_sqrt.h.

+ +
+
+ +

◆ dsps_sqrt_f32

+ +
+
+ + + + +
#define dsps_sqrt_f32   dsps_sqrt_f32_ansi
+
+ +

Definition at line 86 of file dsps_sqrt.h.

+ +
+
+ +

◆ dsps_sqrtf_f32

+ +
+
+ + + + +
#define dsps_sqrtf_f32   dsps_sqrtf_f32_ansi
+
+ +

Definition at line 87 of file dsps_sqrt.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_inverted_sqrtf_f32_ansi()

+ +
+
+ + + + + + + +
float dsps_inverted_sqrtf_f32_ansi (float data)
+
+ +

inverted square root approximation

+

The function takes inverted square root approximation x ~ 1/sqrt(y); The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + +
[in]datainput value
+
+
+
Returns
    +
  • inverted square root value
  • +
+
+ +

Definition at line 44 of file dsps_sqrt_f32_ansi.c.

+
45{
+
46 const float x2 = data * 0.5F;
+
47 const float threehalfs = 1.5F;
+
48
+
49 union {
+
50 float f;
+
51 uint32_t i;
+
52 } conv = {data}; // member 'f' set to value of 'data'.
+
53 conv.i = 0x5f3759df - ( conv.i >> 1 );
+
54 conv.f *= ( threehalfs - ( x2 * conv.f * conv.f ) );
+
55 return conv.f;
+
56}
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References data.

+ +
+
+ +

◆ dsps_sqrt_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_sqrt_f32_ansi (const float * input,
float * output,
int len )
+
+ +

square root approximation

+

The function takes square root approximation x[i] ~ sqrt(y[i]); i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
[in]inputinput array
outputoutput array
lenamount of operations for arrays
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 29 of file dsps_sqrt_f32_ansi.c.

+
30{
+
31 if (NULL == input) {
+ +
33 }
+
34 if (NULL == output) {
+ +
36 }
+
37
+
38 for (int i = 0 ; i < len ; i++) {
+
39 output[i] = dsps_sqrtf_f32_ansi(input[i]);
+
40 }
+
41 return ESP_OK;
+
42}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
float dsps_sqrtf_f32_ansi(float f)
square root approximation
+
#define ESP_OK
Definition esp_err.h:23
+
+

References dsps_sqrtf_f32_ansi(), ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_sqrtf_f32_ansi()

+ +
+
+ + + + + +
+ + + + + + + +
float dsps_sqrtf_f32_ansi (const float data)
+
+inline
+
+ +

square root approximation

+

The function takes square root approximation x ~ sqrt(y); The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + +
[in]datainput value
+
+
+
Returns
    +
  • square root value
  • +
+
+ +

Definition at line 19 of file dsps_sqrt_f32_ansi.c.

+
20{
+
21 int result;
+
22 int *f_ptr = (int *)&f;
+
23 result = 0x1fbb4000 + (*f_ptr >> 1);
+
24 const int *p = &result;
+
25 float *f_result = (float *)p;
+
26 return *f_result;
+
27}
+
+

Referenced by dsps_sqrt_f32_ansi().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__sqrt_8h.js b/docs/html/dsps__sqrt_8h.js new file mode 100644 index 0000000..227d08a --- /dev/null +++ b/docs/html/dsps__sqrt_8h.js @@ -0,0 +1,9 @@ +var dsps__sqrt_8h = +[ + [ "dsps_inverted_sqrtf_f32", "dsps__sqrt_8h.html#a2d8b68fb5b9a7ef870070009243b0a15", null ], + [ "dsps_sqrt_f32", "dsps__sqrt_8h.html#a9a626acb51c3af2badfed84219399186", null ], + [ "dsps_sqrtf_f32", "dsps__sqrt_8h.html#abb29056cc91aad25c447968d7cf8a49a", null ], + [ "dsps_inverted_sqrtf_f32_ansi", "dsps__sqrt_8h.html#a59f0fcc0cee129ad8cf8786d7221b8e7", null ], + [ "dsps_sqrt_f32_ansi", "dsps__sqrt_8h.html#a522485151abeaf46b52452c624f1ffed", null ], + [ "dsps_sqrtf_f32_ansi", "dsps__sqrt_8h.html#abf4665713d685c84e903d7925bcb90f5", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__sqrt_8h__dep__incl.md5 b/docs/html/dsps__sqrt_8h__dep__incl.md5 new file mode 100644 index 0000000..ca14b1c --- /dev/null +++ b/docs/html/dsps__sqrt_8h__dep__incl.md5 @@ -0,0 +1 @@ +83463b5854289989bad907d82d8c6631 \ No newline at end of file diff --git a/docs/html/dsps__sqrt_8h__dep__incl.svg b/docs/html/dsps__sqrt_8h__dep__incl.svg new file mode 100644 index 0000000..c997588 --- /dev/null +++ b/docs/html/dsps__sqrt_8h__dep__incl.svg @@ -0,0 +1,608 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_sqrt.h + + +Node1 + + +dsps_sqrt.h + + + + + +Node2 + + +dsps_math.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_sqrt_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__sqrt_8h__dep__incl_org.svg b/docs/html/dsps__sqrt_8h__dep__incl_org.svg new file mode 100644 index 0000000..881a4f2 --- /dev/null +++ b/docs/html/dsps__sqrt_8h__dep__incl_org.svg @@ -0,0 +1,525 @@ + + + + + + +dsps_sqrt.h + + +Node1 + + +dsps_sqrt.h + + + + + +Node2 + + +dsps_math.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_sqrt_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__sqrt_8h__incl.md5 b/docs/html/dsps__sqrt_8h__incl.md5 new file mode 100644 index 0000000..5e03dd5 --- /dev/null +++ b/docs/html/dsps__sqrt_8h__incl.md5 @@ -0,0 +1 @@ +79a04d844ccd4ca6b100dea7daca3f83 \ No newline at end of file diff --git a/docs/html/dsps__sqrt_8h__incl.svg b/docs/html/dsps__sqrt_8h__incl.svg new file mode 100644 index 0000000..ee626e4 --- /dev/null +++ b/docs/html/dsps__sqrt_8h__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_sqrt.h + + +Node1 + + +dsps_sqrt.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sqrt_8h__incl_org.svg b/docs/html/dsps__sqrt_8h__incl_org.svg new file mode 100644 index 0000000..ce0976c --- /dev/null +++ b/docs/html/dsps__sqrt_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_sqrt.h + + +Node1 + + +dsps_sqrt.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph.md5 b/docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph.md5 new file mode 100644 index 0000000..f9e17c9 --- /dev/null +++ b/docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph.md5 @@ -0,0 +1 @@ +a6ab42b2dbcabb0f0f1dbac434c94eea \ No newline at end of file diff --git a/docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph.svg b/docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph.svg new file mode 100644 index 0000000..ea3d6c9 --- /dev/null +++ b/docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_sqrt_f32_ansi + + +Node1 + + +dsps_sqrt_f32_ansi + + + + + +Node2 + + +dsps_sqrtf_f32_ansi + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph_org.svg b/docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph_org.svg new file mode 100644 index 0000000..5bcbeaa --- /dev/null +++ b/docs/html/dsps__sqrt_8h_a522485151abeaf46b52452c624f1ffed_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_sqrt_f32_ansi + + +Node1 + + +dsps_sqrt_f32_ansi + + + + + +Node2 + + +dsps_sqrtf_f32_ansi + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph.md5 b/docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph.md5 new file mode 100644 index 0000000..266e3c6 --- /dev/null +++ b/docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph.md5 @@ -0,0 +1 @@ +39515e4d8930a7ef152a90ecdccd64e5 \ No newline at end of file diff --git a/docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph.svg b/docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph.svg new file mode 100644 index 0000000..f5b25f7 --- /dev/null +++ b/docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_sqrtf_f32_ansi + + +Node1 + + +dsps_sqrtf_f32_ansi + + + + + +Node2 + + +dsps_sqrt_f32_ansi + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph_org.svg b/docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph_org.svg new file mode 100644 index 0000000..50e1e35 --- /dev/null +++ b/docs/html/dsps__sqrt_8h_abf4665713d685c84e903d7925bcb90f5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_sqrtf_f32_ansi + + +Node1 + + +dsps_sqrtf_f32_ansi + + + + + +Node2 + + +dsps_sqrt_f32_ansi + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__sqrt_8h_source.html b/docs/html/dsps__sqrt_8h_source.html new file mode 100644 index 0000000..c0efad3 --- /dev/null +++ b/docs/html/dsps__sqrt_8h_source.html @@ -0,0 +1,160 @@ + + + + + + + +ESP-IDF Firmware: dsps_sqrt.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sqrt.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_sqrt_H_
+
16#define _dsps_sqrt_H_
+
17#include "dsp_err.h"
+
18
+
19
+
20#ifdef __cplusplus
+
21extern "C"
+
22{
+
23#endif
+
24
+
41esp_err_t dsps_sqrt_f32_ansi(const float *input, float *output, int len);
+
42//esp_err_t dsps_sqrt_s32_ansi(const int32_t *input, int16_t *output, int len);
+
43
+
57float dsps_sqrtf_f32_ansi(const float data);
+
58
+
59
+ +
75
+
76#ifdef __cplusplus
+
77}
+
78#endif
+
79
+
80
+
81#ifdef CONFIG_DSP_OPTIMIZED
+
82#define dsps_sqrt_f32 dsps_sqrt_f32_ansi
+
83#define dsps_sqrtf_f32 dsps_sqrtf_f32_ansi
+
84#define dsps_inverted_sqrtf_f32 dsps_inverted_sqrtf_f32_ansi
+
85#else
+
86#define dsps_sqrt_f32 dsps_sqrt_f32_ansi
+
87#define dsps_sqrtf_f32 dsps_sqrtf_f32_ansi
+
88#define dsps_inverted_sqrtf_f32 dsps_inverted_sqrtf_f32_ansi
+
89#endif
+
90
+
91#endif // _dsps_sqrt_H_
+ +
esp_err_t dsps_sqrt_f32_ansi(const float *input, float *output, int len)
square root approximation
+
float dsps_inverted_sqrtf_f32_ansi(float data)
inverted square root approximation
+
float dsps_sqrtf_f32_ansi(const float data)
square root approximation
+
int esp_err_t
Definition esp_err.h:21
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/dsps__sqrt__f32__ansi_8c.html b/docs/html/dsps__sqrt__f32__ansi_8c.html new file mode 100644 index 0000000..a160374 --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c.html @@ -0,0 +1,302 @@ + + + + + + + +ESP-IDF Firmware: dsps_sqrt_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sqrt_f32_ansi.c File Reference
+
+
+
#include "dsps_sqrt.h"
+#include <math.h>
+
+Include dependency graph for dsps_sqrt_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

float dsps_sqrtf_f32_ansi (float f)
 square root approximation
esp_err_t dsps_sqrt_f32_ansi (const float *input, float *output, int len)
 square root approximation
float dsps_inverted_sqrtf_f32_ansi (float data)
 inverted square root approximation
+

Function Documentation

+ +

◆ dsps_inverted_sqrtf_f32_ansi()

+ +
+
+ + + + + + + +
float dsps_inverted_sqrtf_f32_ansi (float data)
+
+ +

inverted square root approximation

+

The function takes inverted square root approximation x ~ 1/sqrt(y); The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + +
[in]datainput value
+
+
+
Returns
    +
  • inverted square root value
  • +
+
+ +

Definition at line 44 of file dsps_sqrt_f32_ansi.c.

+
45{
+
46 const float x2 = data * 0.5F;
+
47 const float threehalfs = 1.5F;
+
48
+
49 union {
+
50 float f;
+
51 uint32_t i;
+
52 } conv = {data}; // member 'f' set to value of 'data'.
+
53 conv.i = 0x5f3759df - ( conv.i >> 1 );
+
54 conv.f *= ( threehalfs - ( x2 * conv.f * conv.f ) );
+
55 return conv.f;
+
56}
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References data.

+ +
+
+ +

◆ dsps_sqrt_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsps_sqrt_f32_ansi (const float * input,
float * output,
int len )
+
+ +

square root approximation

+

The function takes square root approximation x[i] ~ sqrt(y[i]); i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + +
[in]inputinput array
outputoutput array
lenamount of operations for arrays
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 29 of file dsps_sqrt_f32_ansi.c.

+
30{
+
31 if (NULL == input) {
+ +
33 }
+
34 if (NULL == output) {
+ +
36 }
+
37
+
38 for (int i = 0 ; i < len ; i++) {
+
39 output[i] = dsps_sqrtf_f32_ansi(input[i]);
+
40 }
+
41 return ESP_OK;
+
42}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
float dsps_sqrtf_f32_ansi(float f)
square root approximation
+
#define ESP_OK
Definition esp_err.h:23
+
+

References dsps_sqrtf_f32_ansi(), ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_sqrtf_f32_ansi()

+ +
+
+ + + + + +
+ + + + + + + +
float dsps_sqrtf_f32_ansi (const float data)
+
+inline
+
+ +

square root approximation

+

The function takes square root approximation x ~ sqrt(y); The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + +
[in]datainput value
+
+
+
Returns
    +
  • square root value
  • +
+
+ +

Definition at line 19 of file dsps_sqrt_f32_ansi.c.

+
20{
+
21 int result;
+
22 int *f_ptr = (int *)&f;
+
23 result = 0x1fbb4000 + (*f_ptr >> 1);
+
24 const int *p = &result;
+
25 float *f_result = (float *)p;
+
26 return *f_result;
+
27}
+
+

Referenced by dsps_sqrt_f32_ansi().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__sqrt__f32__ansi_8c.js b/docs/html/dsps__sqrt__f32__ansi_8c.js new file mode 100644 index 0000000..08ea9ca --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c.js @@ -0,0 +1,6 @@ +var dsps__sqrt__f32__ansi_8c = +[ + [ "dsps_inverted_sqrtf_f32_ansi", "dsps__sqrt__f32__ansi_8c.html#a59f0fcc0cee129ad8cf8786d7221b8e7", null ], + [ "dsps_sqrt_f32_ansi", "dsps__sqrt__f32__ansi_8c.html#a522485151abeaf46b52452c624f1ffed", null ], + [ "dsps_sqrtf_f32_ansi", "dsps__sqrt__f32__ansi_8c.html#aa82684d023520c90157f420af1892550", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__sqrt__f32__ansi_8c__incl.md5 b/docs/html/dsps__sqrt__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..cbf0e4d --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +a5fe76e5b25794c758f8c6a237f00c08 \ No newline at end of file diff --git a/docs/html/dsps__sqrt__f32__ansi_8c__incl.svg b/docs/html/dsps__sqrt__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..1cf523a --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c__incl.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +dsps_sqrt_f32_ansi.c + + +Node1 + + +dsps_sqrt_f32_ansi.c + + + + + +Node2 + + +dsps_sqrt.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +math.h + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sqrt__f32__ansi_8c__incl_org.svg b/docs/html/dsps__sqrt__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..19305d6 --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +dsps_sqrt_f32_ansi.c + + +Node1 + + +dsps_sqrt_f32_ansi.c + + + + + +Node2 + + +dsps_sqrt.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +math.h + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + diff --git a/docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph.md5 b/docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph.md5 new file mode 100644 index 0000000..f9e17c9 --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph.md5 @@ -0,0 +1 @@ +a6ab42b2dbcabb0f0f1dbac434c94eea \ No newline at end of file diff --git a/docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph.svg b/docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph.svg new file mode 100644 index 0000000..ea3d6c9 --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_sqrt_f32_ansi + + +Node1 + + +dsps_sqrt_f32_ansi + + + + + +Node2 + + +dsps_sqrtf_f32_ansi + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph_org.svg b/docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph_org.svg new file mode 100644 index 0000000..5bcbeaa --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c_a522485151abeaf46b52452c624f1ffed_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_sqrt_f32_ansi + + +Node1 + + +dsps_sqrt_f32_ansi + + + + + +Node2 + + +dsps_sqrtf_f32_ansi + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph.md5 b/docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph.md5 new file mode 100644 index 0000000..266e3c6 --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph.md5 @@ -0,0 +1 @@ +39515e4d8930a7ef152a90ecdccd64e5 \ No newline at end of file diff --git a/docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph.svg b/docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph.svg new file mode 100644 index 0000000..f5b25f7 --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_sqrtf_f32_ansi + + +Node1 + + +dsps_sqrtf_f32_ansi + + + + + +Node2 + + +dsps_sqrt_f32_ansi + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph_org.svg b/docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph_org.svg new file mode 100644 index 0000000..50e1e35 --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c_aa82684d023520c90157f420af1892550_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_sqrtf_f32_ansi + + +Node1 + + +dsps_sqrtf_f32_ansi + + + + + +Node2 + + +dsps_sqrt_f32_ansi + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__sqrt__f32__ansi_8c_source.html b/docs/html/dsps__sqrt__f32__ansi_8c_source.html new file mode 100644 index 0000000..d4d4220 --- /dev/null +++ b/docs/html/dsps__sqrt__f32__ansi_8c_source.html @@ -0,0 +1,176 @@ + + + + + + + +ESP-IDF Firmware: dsps_sqrt_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sqrt_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_sqrt.h"
+
16#include <math.h>
+
17
+
18
+
+
19inline float dsps_sqrtf_f32_ansi(float f)
+
20{
+
21 int result;
+
22 int *f_ptr = (int *)&f;
+
23 result = 0x1fbb4000 + (*f_ptr >> 1);
+
24 const int *p = &result;
+
25 float *f_result = (float *)p;
+
26 return *f_result;
+
27}
+
+
28
+
+
29esp_err_t dsps_sqrt_f32_ansi(const float *input, float *output, int len)
+
30{
+
31 if (NULL == input) {
+ +
33 }
+
34 if (NULL == output) {
+ +
36 }
+
37
+
38 for (int i = 0 ; i < len ; i++) {
+
39 output[i] = dsps_sqrtf_f32_ansi(input[i]);
+
40 }
+
41 return ESP_OK;
+
42}
+
+
43
+
+ +
45{
+
46 const float x2 = data * 0.5F;
+
47 const float threehalfs = 1.5F;
+
48
+
49 union {
+
50 float f;
+
51 uint32_t i;
+
52 } conv = {data}; // member 'f' set to value of 'data'.
+
53 conv.i = 0x5f3759df - ( conv.i >> 1 );
+
54 conv.f *= ( threehalfs - ( x2 * conv.f * conv.f ) );
+
55 return conv.f;
+
56}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_sqrt_f32_ansi(const float *input, float *output, int len)
square root approximation
+
float dsps_inverted_sqrtf_f32_ansi(float data)
inverted square root approximation
+
float dsps_sqrtf_f32_ansi(float f)
square root approximation
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/dsps__sub_8h.html b/docs/html/dsps__sub_8h.html new file mode 100644 index 0000000..fde480e --- /dev/null +++ b/docs/html/dsps__sub_8h.html @@ -0,0 +1,629 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub.h File Reference
+
+
+
#include "dsp_err.h"
+#include "dsps_sub_platform.h"
+
+Include dependency graph for dsps_sub.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Macros

#define dsps_sub_f32   dsps_sub_f32_ansi
#define dsps_sub_s16   dsps_sub_s16_ansi
#define dsps_sub_s8   dsps_sub_s8_ansi
+ + + + + + + + + + +

+Functions

esp_err_t dsps_sub_f32_ansi (const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
 sub arrays
esp_err_t dsps_sub_f32_ae32 (const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
esp_err_t dsps_sub_s16_ansi (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_sub_s16_ae32 (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_sub_s16_aes3 (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_sub_s8_ansi (const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
esp_err_t dsps_sub_s8_aes3 (const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+

Macro Definition Documentation

+ +

◆ dsps_sub_f32

+ +
+
+ + + + +
#define dsps_sub_f32   dsps_sub_f32_ansi
+
+ +

Definition at line 82 of file dsps_sub.h.

+ +

Referenced by dspm::Mat::operator-=().

+ +
+
+ +

◆ dsps_sub_s16

+ +
+
+ + + + +
#define dsps_sub_s16   dsps_sub_s16_ansi
+
+ +

Definition at line 83 of file dsps_sub.h.

+ +
+
+ +

◆ dsps_sub_s8

+ +
+
+ + + + +
#define dsps_sub_s8   dsps_sub_s8_ansi
+
+ +

Definition at line 84 of file dsps_sub.h.

+ +
+
+

Function Documentation

+ +

◆ dsps_sub_f32_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_f32_ae32 (const float * input1,
const float * input2,
float * output,
int len,
int step1,
int step2,
int step_out )
+
+ +
+
+ +

◆ dsps_sub_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_f32_ansi (const float * input1,
const float * input2,
float * output,
int len,
int step1,
int step2,
int step_out )
+
+ +

sub arrays

+

The function subtract one array from another out[i*step_out] = input1[i*step1] - input2[i*step2]; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
[in]input1input array 1
[in]input2input array 2
outputoutput array
lenamount of operations for arrays
step1step over input array 1 (by default should be 1)
step2step over input array 2 (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_sub_f32_ansi.c.

+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 output[i * step_out] = input1[i * step1] - input2[i * step2];
+
31 }
+
32 return ESP_OK;
+
33}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+ +

◆ dsps_sub_s16_ae32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_s16_ae32 (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +
+
+ +

◆ dsps_sub_s16_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_s16_aes3 (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +
+
+ +

◆ dsps_sub_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_s16_ansi (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 9 of file dsps_sub_s16_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] - (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+ +

◆ dsps_sub_s8_aes3()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_s8_aes3 (const int8_t * input1,
const int8_t * input2,
int8_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +
+
+ +

◆ dsps_sub_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_s8_ansi (const int8_t * input1,
const int8_t * input2,
int8_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 9 of file dsps_sub_s8_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] - (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__sub_8h.js b/docs/html/dsps__sub_8h.js new file mode 100644 index 0000000..92c22c8 --- /dev/null +++ b/docs/html/dsps__sub_8h.js @@ -0,0 +1,13 @@ +var dsps__sub_8h = +[ + [ "dsps_sub_f32", "dsps__sub_8h.html#a4bf3ac7d22a45e6d34ce4354f126b255", null ], + [ "dsps_sub_s16", "dsps__sub_8h.html#ad7cd3938b58ac048b4c6d21e840e19ee", null ], + [ "dsps_sub_s8", "dsps__sub_8h.html#a2a2afacd3d8a6c285a8911bdf1ee1248", null ], + [ "dsps_sub_f32_ae32", "dsps__sub_8h.html#af245770400b807649d5b5fdb323f70bd", null ], + [ "dsps_sub_f32_ansi", "dsps__sub_8h.html#a4157561eb708f45d21e4724cc7361623", null ], + [ "dsps_sub_s16_ae32", "dsps__sub_8h.html#a4af11814dc04d59d962486a036773798", null ], + [ "dsps_sub_s16_aes3", "dsps__sub_8h.html#a423c90e56018c4a0402113dd82840b3a", null ], + [ "dsps_sub_s16_ansi", "dsps__sub_8h.html#ad6ed0711e106ff4d290dd29a0f7b1b16", null ], + [ "dsps_sub_s8_aes3", "dsps__sub_8h.html#a6e63ca7ac5a47ab7bd7ef6f502e612d5", null ], + [ "dsps_sub_s8_ansi", "dsps__sub_8h.html#a8779dd9499258661147ea91adc9c3dfd", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__sub_8h__dep__incl.md5 b/docs/html/dsps__sub_8h__dep__incl.md5 new file mode 100644 index 0000000..eab120e --- /dev/null +++ b/docs/html/dsps__sub_8h__dep__incl.md5 @@ -0,0 +1 @@ +83badfad4ca8c0d2b052b001f3b3674f \ No newline at end of file diff --git a/docs/html/dsps__sub_8h__dep__incl.svg b/docs/html/dsps__sub_8h__dep__incl.svg new file mode 100644 index 0000000..11fb50a --- /dev/null +++ b/docs/html/dsps__sub_8h__dep__incl.svg @@ -0,0 +1,626 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_sub.h + + +Node1 + + +dsps_sub.h + + + + + +Node2 + + +dsps_math.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_sub_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dsps_sub_s8_ansi.c + + + + + +Node1->Node39 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__sub_8h__dep__incl_org.svg b/docs/html/dsps__sub_8h__dep__incl_org.svg new file mode 100644 index 0000000..48e22d7 --- /dev/null +++ b/docs/html/dsps__sub_8h__dep__incl_org.svg @@ -0,0 +1,543 @@ + + + + + + +dsps_sub.h + + +Node1 + + +dsps_sub.h + + + + + +Node2 + + +dsps_math.h + + + + + +Node1->Node2 + + + + + + + + +Node38 + + +dsps_sub_f32_ansi.c + + + + + +Node1->Node38 + + + + + + + + +Node39 + + +dsps_sub_s8_ansi.c + + + + + +Node1->Node39 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node37 + + +mat.cpp + + + + + +Node2->Node37 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__sub_8h__incl.md5 b/docs/html/dsps__sub_8h__incl.md5 new file mode 100644 index 0000000..883bcf8 --- /dev/null +++ b/docs/html/dsps__sub_8h__incl.md5 @@ -0,0 +1 @@ +2c39107880ea0c930f7650f598e84442 \ No newline at end of file diff --git a/docs/html/dsps__sub_8h__incl.svg b/docs/html/dsps__sub_8h__incl.svg new file mode 100644 index 0000000..809ddff --- /dev/null +++ b/docs/html/dsps__sub_8h__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_sub.h + + +Node1 + + +dsps_sub.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_sub_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sub_8h__incl_org.svg b/docs/html/dsps__sub_8h__incl_org.svg new file mode 100644 index 0000000..926c51d --- /dev/null +++ b/docs/html/dsps__sub_8h__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_sub.h + + +Node1 + + +dsps_sub.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsps_sub_platform.h + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +sdkconfig.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/dsps__sub_8h_source.html b/docs/html/dsps__sub_8h_source.html new file mode 100644 index 0000000..6618537 --- /dev/null +++ b/docs/html/dsps__sub_8h_source.html @@ -0,0 +1,182 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_sub_H_
+
16#define _dsps_sub_H_
+
17#include "dsp_err.h"
+
18
+
19#include "dsps_sub_platform.h"
+
20
+
21#ifdef __cplusplus
+
22extern "C"
+
23{
+
24#endif
+
25
+
26
+
47esp_err_t dsps_sub_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out);
+
48esp_err_t dsps_sub_f32_ae32(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out);
+
49
+
50esp_err_t dsps_sub_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift);
+
51esp_err_t dsps_sub_s16_ae32(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift);
+
52esp_err_t dsps_sub_s16_aes3(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift);
+
53
+
54esp_err_t dsps_sub_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift);
+
55esp_err_t dsps_sub_s8_aes3(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift);
+
57
+
58#ifdef __cplusplus
+
59}
+
60#endif
+
61
+
62#if CONFIG_DSP_OPTIMIZED
+
63
+
64#if (dsps_sub_f32_ae32_enabled == 1)
+
65#define dsps_sub_f32 dsps_sub_f32_ae32
+
66#else
+
67#define dsps_sub_f32 dsps_sub_f32_ansi
+
68#endif
+
69
+
70#if (dsps_sub_s16_aes3_enabled == 1)
+
71#define dsps_sub_s16 dsps_sub_s16_aes3
+
72#define dsps_sub_s8 dsps_sub_s8_aes3
+
73#elif (dsps_sub_s16_ae32_enabled == 1)
+
74#define dsps_sub_s16 dsps_sub_s16_ae32
+
75#define dsps_sub_s8 dsps_sub_s8_ansi
+
76#else
+
77#define dsps_sub_s16 dsps_sub_s16_ansi
+
78#define dsps_sub_s8 dsps_sub_s8_ansi
+
79#endif
+
80
+
81#else // CONFIG_DSP_OPTIMIZED
+
82#define dsps_sub_f32 dsps_sub_f32_ansi
+
83#define dsps_sub_s16 dsps_sub_s16_ansi
+
84#define dsps_sub_s8 dsps_sub_s8_ansi
+
85#endif // CONFIG_DSP_OPTIMIZED
+
86
+
87#endif // _dsps_sub_H_
+ +
esp_err_t dsps_sub_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
sub arrays
+
esp_err_t dsps_sub_s16_aes3(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_sub_s16_ae32(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_sub_s8_aes3(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_sub_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_sub_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
esp_err_t dsps_sub_f32_ae32(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
+ +
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__sub__f32__ansi_8c.html b/docs/html/dsps__sub__f32__ansi_8c.html new file mode 100644 index 0000000..24ff9af --- /dev/null +++ b/docs/html/dsps__sub__f32__ansi_8c.html @@ -0,0 +1,216 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub_f32_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub_f32_ansi.c File Reference
+
+
+
#include "dsps_sub.h"
+
+Include dependency graph for dsps_sub_f32_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_sub_f32_ansi (const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
 sub arrays
+

Function Documentation

+ +

◆ dsps_sub_f32_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_f32_ansi (const float * input1,
const float * input2,
float * output,
int len,
int step1,
int step2,
int step_out )
+
+ +

sub arrays

+

The function subtract one array from another out[i*step_out] = input1[i*step1] - input2[i*step2]; i=[0..len) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + + + +
[in]input1input array 1
[in]input2input array 2
outputoutput array
lenamount of operations for arrays
step1step over input array 1 (by default should be 1)
step2step over input array 2 (by default should be 1)
step_outstep over output array (by default should be 1)
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 17 of file dsps_sub_f32_ansi.c.

+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 output[i * step_out] = input1[i * step1] - input2[i * step2];
+
31 }
+
32 return ESP_OK;
+
33}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__sub__f32__ansi_8c.js b/docs/html/dsps__sub__f32__ansi_8c.js new file mode 100644 index 0000000..f27c8e5 --- /dev/null +++ b/docs/html/dsps__sub__f32__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__sub__f32__ansi_8c = +[ + [ "dsps_sub_f32_ansi", "dsps__sub__f32__ansi_8c.html#a4157561eb708f45d21e4724cc7361623", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__sub__f32__ansi_8c__incl.md5 b/docs/html/dsps__sub__f32__ansi_8c__incl.md5 new file mode 100644 index 0000000..b18661a --- /dev/null +++ b/docs/html/dsps__sub__f32__ansi_8c__incl.md5 @@ -0,0 +1 @@ +18f0805293e4251fb6eb38019647e04f \ No newline at end of file diff --git a/docs/html/dsps__sub__f32__ansi_8c__incl.svg b/docs/html/dsps__sub__f32__ansi_8c__incl.svg new file mode 100644 index 0000000..a70c93f --- /dev/null +++ b/docs/html/dsps__sub__f32__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_sub_f32_ansi.c + + +Node1 + + +dsps_sub_f32_ansi.c + + + + + +Node2 + + +dsps_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_sub_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sub__f32__ansi_8c__incl_org.svg b/docs/html/dsps__sub__f32__ansi_8c__incl_org.svg new file mode 100644 index 0000000..a595ea6 --- /dev/null +++ b/docs/html/dsps__sub__f32__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_sub_f32_ansi.c + + +Node1 + + +dsps_sub_f32_ansi.c + + + + + +Node2 + + +dsps_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_sub_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__sub__f32__ansi_8c_source.html b/docs/html/dsps__sub__f32__ansi_8c_source.html new file mode 100644 index 0000000..3933c8a --- /dev/null +++ b/docs/html/dsps__sub__f32__ansi_8c_source.html @@ -0,0 +1,146 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub_f32_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub_f32_ansi.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_sub.h"
+
16
+
+
17esp_err_t dsps_sub_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
+
18{
+
19 if (NULL == input1) {
+ +
21 }
+
22 if (NULL == input2) {
+ +
24 }
+
25 if (NULL == output) {
+ +
27 }
+
28
+
29 for (int i = 0 ; i < len ; i++) {
+
30 output[i * step_out] = input1[i * step1] - input2[i * step2];
+
31 }
+
32 return ESP_OK;
+
33}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_sub_f32_ansi(const float *input1, const float *input2, float *output, int len, int step1, int step2, int step_out)
sub arrays
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__sub__platform_8h.html b/docs/html/dsps__sub__platform_8h.html new file mode 100644 index 0000000..5b4fc19 --- /dev/null +++ b/docs/html/dsps__sub__platform_8h.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub_platform.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub_platform.h File Reference
+
+
+
#include "sdkconfig.h"
+
+Include dependency graph for dsps_sub_platform.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__sub__platform_8h__dep__incl.md5 b/docs/html/dsps__sub__platform_8h__dep__incl.md5 new file mode 100644 index 0000000..78d0c52 --- /dev/null +++ b/docs/html/dsps__sub__platform_8h__dep__incl.md5 @@ -0,0 +1 @@ +e25bffed4ae7f9e41844db56213f9b53 \ No newline at end of file diff --git a/docs/html/dsps__sub__platform_8h__dep__incl.svg b/docs/html/dsps__sub__platform_8h__dep__incl.svg new file mode 100644 index 0000000..9232926 --- /dev/null +++ b/docs/html/dsps__sub__platform_8h__dep__incl.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +dsps_sub_platform.h + + +Node1 + + +dsps_sub_platform.h + + + + + +Node2 + + +dsps_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_math.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dsps_sub_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node40 + + +dsps_sub_s8_ansi.c + + + + + +Node2->Node40 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sub__platform_8h__dep__incl_org.svg b/docs/html/dsps__sub__platform_8h__dep__incl_org.svg new file mode 100644 index 0000000..401c00d --- /dev/null +++ b/docs/html/dsps__sub__platform_8h__dep__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +dsps_sub_platform.h + + +Node1 + + +dsps_sub_platform.h + + + + + +Node2 + + +dsps_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_math.h + + + + + +Node2->Node3 + + + + + + + + +Node39 + + +dsps_sub_f32_ansi.c + + + + + +Node2->Node39 + + + + + + + + +Node40 + + +dsps_sub_s8_ansi.c + + + + + +Node2->Node40 + + + + + + + + +Node4 + + +esp_dsp.h + + + + + +Node3->Node4 + + + + + + + + +Node38 + + +mat.cpp + + + + + +Node3->Node38 + + + + + + + + diff --git a/docs/html/dsps__sub__platform_8h__incl.md5 b/docs/html/dsps__sub__platform_8h__incl.md5 new file mode 100644 index 0000000..b591afa --- /dev/null +++ b/docs/html/dsps__sub__platform_8h__incl.md5 @@ -0,0 +1 @@ +b32e90d93cd1e9929f8604f7612576f7 \ No newline at end of file diff --git a/docs/html/dsps__sub__platform_8h__incl.svg b/docs/html/dsps__sub__platform_8h__incl.svg new file mode 100644 index 0000000..a928a13 --- /dev/null +++ b/docs/html/dsps__sub__platform_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_sub_platform.h + + +Node1 + + +dsps_sub_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sub__platform_8h__incl_org.svg b/docs/html/dsps__sub__platform_8h__incl_org.svg new file mode 100644 index 0000000..c5f0dfb --- /dev/null +++ b/docs/html/dsps__sub__platform_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_sub_platform.h + + +Node1 + + +dsps_sub_platform.h + + + + + +Node2 + + +sdkconfig.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__sub__platform_8h_source.html b/docs/html/dsps__sub__platform_8h_source.html new file mode 100644 index 0000000..ebfb12d --- /dev/null +++ b/docs/html/dsps__sub__platform_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub_platform.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub_platform.h
+
+
+Go to the documentation of this file.
1#ifndef _dsps_sub_platform_H_
+
2#define _dsps_sub_platform_H_
+
3
+
4#include "sdkconfig.h"
+
5
+
6#ifdef __XTENSA__
+
7#include <xtensa/config/core-isa.h>
+
8#include <xtensa/config/core-matmap.h>
+
9
+
10
+
11#if ((XCHAL_HAVE_FP == 1) && (XCHAL_HAVE_LOOPS == 1))
+
12
+
13#define dsps_sub_f32_ae32_enabled 1
+
14#define dsps_sub_s16_ae32_enabled 1
+
15
+
16#endif
+
17
+
18#if (XCHAL_HAVE_LOOPS == 1)
+
19#define dsps_sub_f32_ae32_enabled 1
+
20#define dsps_sub_s16_ae32_enabled 1
+
21#endif
+
22
+
23#if (CONFIG_IDF_TARGET_ESP32S3 == 1)
+
24#define dsps_sub_f32_ae32_enabled 1
+
25#define dsps_sub_s16_aes3_enabled 1
+
26#endif
+
27
+
28#endif // __XTENSA__
+
29
+
30#endif // _dsps_sub_platform_H_
+
+
+
+ + + + diff --git a/docs/html/dsps__sub__s16__ansi_8c.html b/docs/html/dsps__sub__s16__ansi_8c.html new file mode 100644 index 0000000..143962e --- /dev/null +++ b/docs/html/dsps__sub__s16__ansi_8c.html @@ -0,0 +1,201 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub_s16_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub_s16_ansi.c File Reference
+
+
+
#include "dsps_add.h"
+
+Include dependency graph for dsps_sub_s16_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dsps_sub_s16_ansi (const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+

Function Documentation

+ +

◆ dsps_sub_s16_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_s16_ansi (const int16_t * input1,
const int16_t * input2,
int16_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 9 of file dsps_sub_s16_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] - (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__sub__s16__ansi_8c.js b/docs/html/dsps__sub__s16__ansi_8c.js new file mode 100644 index 0000000..f283846 --- /dev/null +++ b/docs/html/dsps__sub__s16__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__sub__s16__ansi_8c = +[ + [ "dsps_sub_s16_ansi", "dsps__sub__s16__ansi_8c.html#ad6ed0711e106ff4d290dd29a0f7b1b16", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__sub__s16__ansi_8c__incl.md5 b/docs/html/dsps__sub__s16__ansi_8c__incl.md5 new file mode 100644 index 0000000..c16bf42 --- /dev/null +++ b/docs/html/dsps__sub__s16__ansi_8c__incl.md5 @@ -0,0 +1 @@ +cd0a5751189f56aae6bf06a3065e14bc \ No newline at end of file diff --git a/docs/html/dsps__sub__s16__ansi_8c__incl.svg b/docs/html/dsps__sub__s16__ansi_8c__incl.svg new file mode 100644 index 0000000..bf7ceaa --- /dev/null +++ b/docs/html/dsps__sub__s16__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_sub_s16_ansi.c + + +Node1 + + +dsps_sub_s16_ansi.c + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sub__s16__ansi_8c__incl_org.svg b/docs/html/dsps__sub__s16__ansi_8c__incl_org.svg new file mode 100644 index 0000000..425db40 --- /dev/null +++ b/docs/html/dsps__sub__s16__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_sub_s16_ansi.c + + +Node1 + + +dsps_sub_s16_ansi.c + + + + + +Node2 + + +dsps_add.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_add_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__sub__s16__ansi_8c_source.html b/docs/html/dsps__sub__s16__ansi_8c_source.html new file mode 100644 index 0000000..4212aac --- /dev/null +++ b/docs/html/dsps__sub__s16__ansi_8c_source.html @@ -0,0 +1,139 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub_s16_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub_s16_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_add.h"
+
8
+
+
9esp_err_t dsps_sub_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] - (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_sub_s16_ansi(const int16_t *input1, const int16_t *input2, int16_t *output, int len, int step1, int step2, int step_out, int shift)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__sub__s8__ansi_8c.html b/docs/html/dsps__sub__s8__ansi_8c.html new file mode 100644 index 0000000..07340f5 --- /dev/null +++ b/docs/html/dsps__sub__s8__ansi_8c.html @@ -0,0 +1,201 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub_s8_ansi.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub_s8_ansi.c File Reference
+
+
+
#include "dsps_sub.h"
+
+Include dependency graph for dsps_sub_s8_ansi.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Functions

esp_err_t dsps_sub_s8_ansi (const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+

Function Documentation

+ +

◆ dsps_sub_s8_ansi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_sub_s8_ansi (const int8_t * input1,
const int8_t * input2,
int8_t * output,
int len,
int step1,
int step2,
int step_out,
int shift )
+
+ +

Definition at line 9 of file dsps_sub_s8_ansi.c.

+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] - (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__sub__s8__ansi_8c.js b/docs/html/dsps__sub__s8__ansi_8c.js new file mode 100644 index 0000000..e8fd411 --- /dev/null +++ b/docs/html/dsps__sub__s8__ansi_8c.js @@ -0,0 +1,4 @@ +var dsps__sub__s8__ansi_8c = +[ + [ "dsps_sub_s8_ansi", "dsps__sub__s8__ansi_8c.html#a8779dd9499258661147ea91adc9c3dfd", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__sub__s8__ansi_8c__incl.md5 b/docs/html/dsps__sub__s8__ansi_8c__incl.md5 new file mode 100644 index 0000000..bde04e7 --- /dev/null +++ b/docs/html/dsps__sub__s8__ansi_8c__incl.md5 @@ -0,0 +1 @@ +53234f1af0f1660657cd2fa9be52ee9b \ No newline at end of file diff --git a/docs/html/dsps__sub__s8__ansi_8c__incl.svg b/docs/html/dsps__sub__s8__ansi_8c__incl.svg new file mode 100644 index 0000000..868b43e --- /dev/null +++ b/docs/html/dsps__sub__s8__ansi_8c__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +dsps_sub_s8_ansi.c + + +Node1 + + +dsps_sub_s8_ansi.c + + + + + +Node2 + + +dsps_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_sub_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/dsps__sub__s8__ansi_8c__incl_org.svg b/docs/html/dsps__sub__s8__ansi_8c__incl_org.svg new file mode 100644 index 0000000..5a30a55 --- /dev/null +++ b/docs/html/dsps__sub__s8__ansi_8c__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +dsps_sub_s8_ansi.c + + +Node1 + + +dsps_sub_s8_ansi.c + + + + + +Node2 + + +dsps_sub.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsps_sub_platform.h + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +sdkconfig.h + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/dsps__sub__s8__ansi_8c_source.html b/docs/html/dsps__sub__s8__ansi_8c_source.html new file mode 100644 index 0000000..7a8da64 --- /dev/null +++ b/docs/html/dsps__sub__s8__ansi_8c_source.html @@ -0,0 +1,139 @@ + + + + + + + +ESP-IDF Firmware: dsps_sub_s8_ansi.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_sub_s8_ansi.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "dsps_sub.h"
+
8
+
+
9esp_err_t dsps_sub_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
10{
+
11 if (NULL == input1) {
+ +
13 }
+
14 if (NULL == input2) {
+ +
16 }
+
17 if (NULL == output) {
+ +
19 }
+
20
+
21 for (int i = 0 ; i < len ; i++) {
+
22 int32_t acc = (int32_t)input1[i * step1] - (int32_t)input2[i * step2];
+
23 output[i * step_out] = acc >> shift;
+
24 }
+
25 return ESP_OK;
+
26}
+
+
#define ESP_ERR_DSP_PARAM_OUTOFRANGE
+ +
esp_err_t dsps_sub_s8_ansi(const int8_t *input1, const int8_t *input2, int8_t *output, int len, int step1, int step2, int step_out, int shift)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+
+
+ + + + diff --git a/docs/html/dsps__tone__gen_8c.html b/docs/html/dsps__tone__gen_8c.html new file mode 100644 index 0000000..cae6f38 --- /dev/null +++ b/docs/html/dsps__tone__gen_8c.html @@ -0,0 +1,211 @@ + + + + + + + +ESP-IDF Firmware: dsps_tone_gen.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_tone_gen.c File Reference
+
+
+
#include "dsps_tone_gen.h"
+#include <math.h>
+
+Include dependency graph for dsps_tone_gen.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_tone_gen_f32 (float *output, int len, float Ampl, float freq, float phase)
 tone
+

Function Documentation

+ +

◆ dsps_tone_gen_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_tone_gen_f32 (float * output,
int len,
float Ampl,
float freq,
float phase )
+
+ +

tone

+

The function generate a tone signal. x[i]=A*sin(2*PI*i + ph/180*PI) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + +
outputoutput array.
lenlength of the input signal
Amplamplitude
freqNaiquist frequency -1..1
phasephase in degree
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 18 of file dsps_tone_gen.c.

+
19{
+
20 if (freq >= 1) {
+ +
22 }
+
23 if (freq <= -1) {
+ +
25 }
+
26 float ph = phase / 180 * M_PI;
+
27 float fr = 2 * M_PI * freq;
+
28 for (int i = 0 ; i < len ; i++) {
+
29 output[i] = Ampl * sin(ph);
+
30 ph += fr;
+
31 if (ph > 2 * M_PI) {
+
32 ph -= 2 * M_PI;
+
33 }
+
34 if (ph < -2 * M_PI) {
+
35 ph += 2 * M_PI;
+
36 }
+
37 }
+
38 return ESP_OK;
+
39}
+
#define ESP_ERR_DSP_INVALID_PARAM
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
+

References ESP_ERR_DSP_INVALID_PARAM, ESP_OK, and M_PI.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__tone__gen_8c.js b/docs/html/dsps__tone__gen_8c.js new file mode 100644 index 0000000..fc737d2 --- /dev/null +++ b/docs/html/dsps__tone__gen_8c.js @@ -0,0 +1,4 @@ +var dsps__tone__gen_8c = +[ + [ "dsps_tone_gen_f32", "dsps__tone__gen_8c.html#a142aa8afe0807f36abeb81f429f73bde", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__tone__gen_8c__incl.md5 b/docs/html/dsps__tone__gen_8c__incl.md5 new file mode 100644 index 0000000..1e6667e --- /dev/null +++ b/docs/html/dsps__tone__gen_8c__incl.md5 @@ -0,0 +1 @@ +d8ec56abf1bf3d0ea8e5c51e5fa50964 \ No newline at end of file diff --git a/docs/html/dsps__tone__gen_8c__incl.svg b/docs/html/dsps__tone__gen_8c__incl.svg new file mode 100644 index 0000000..ce8300e --- /dev/null +++ b/docs/html/dsps__tone__gen_8c__incl.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +dsps_tone_gen.c + + +Node1 + + +dsps_tone_gen.c + + + + + +Node2 + + +dsps_tone_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +math.h + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + + + + + + diff --git a/docs/html/dsps__tone__gen_8c__incl_org.svg b/docs/html/dsps__tone__gen_8c__incl_org.svg new file mode 100644 index 0000000..52b581b --- /dev/null +++ b/docs/html/dsps__tone__gen_8c__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +dsps_tone_gen.c + + +Node1 + + +dsps_tone_gen.c + + + + + +Node2 + + +dsps_tone_gen.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +math.h + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + diff --git a/docs/html/dsps__tone__gen_8c_source.html b/docs/html/dsps__tone__gen_8c_source.html new file mode 100644 index 0000000..3a31d87 --- /dev/null +++ b/docs/html/dsps__tone__gen_8c_source.html @@ -0,0 +1,153 @@ + + + + + + + +ESP-IDF Firmware: dsps_tone_gen.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_tone_gen.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "dsps_tone_gen.h"
+
16#include <math.h>
+
17
+
+
18esp_err_t dsps_tone_gen_f32(float *output, int len, float Ampl, float freq, float phase)
+
19{
+
20 if (freq >= 1) {
+ +
22 }
+
23 if (freq <= -1) {
+ +
25 }
+
26 float ph = phase / 180 * M_PI;
+
27 float fr = 2 * M_PI * freq;
+
28 for (int i = 0 ; i < len ; i++) {
+
29 output[i] = Ampl * sin(ph);
+
30 ph += fr;
+
31 if (ph > 2 * M_PI) {
+
32 ph -= 2 * M_PI;
+
33 }
+
34 if (ph < -2 * M_PI) {
+
35 ph += 2 * M_PI;
+
36 }
+
37 }
+
38 return ESP_OK;
+
39}
+
+
#define ESP_ERR_DSP_INVALID_PARAM
+
esp_err_t dsps_tone_gen_f32(float *output, int len, float Ampl, float freq, float phase)
tone
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
+
+
+ + + + diff --git a/docs/html/dsps__tone__gen_8h.html b/docs/html/dsps__tone__gen_8h.html new file mode 100644 index 0000000..4c4a92c --- /dev/null +++ b/docs/html/dsps__tone__gen_8h.html @@ -0,0 +1,215 @@ + + + + + + + +ESP-IDF Firmware: dsps_tone_gen.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_tone_gen.h File Reference
+
+
+
#include "dsp_err.h"
+
+Include dependency graph for dsps_tone_gen.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

esp_err_t dsps_tone_gen_f32 (float *output, int len, float Ampl, float freq, float phase)
 tone
+

Function Documentation

+ +

◆ dsps_tone_gen_f32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t dsps_tone_gen_f32 (float * output,
int len,
float Ampl,
float freq,
float phase )
+
+ +

tone

+

The function generate a tone signal. x[i]=A*sin(2*PI*i + ph/180*PI) The implementation use ANSI C and could be compiled and run on any platform

+
Parameters
+ + + + + + +
outputoutput array.
lenlength of the input signal
Amplamplitude
freqNaiquist frequency -1..1
phasephase in degree
+
+
+
Returns
    +
  • ESP_OK on success
  • +
  • One of the error codes from DSP library
  • +
+
+ +

Definition at line 18 of file dsps_tone_gen.c.

+
19{
+
20 if (freq >= 1) {
+ +
22 }
+
23 if (freq <= -1) {
+ +
25 }
+
26 float ph = phase / 180 * M_PI;
+
27 float fr = 2 * M_PI * freq;
+
28 for (int i = 0 ; i < len ; i++) {
+
29 output[i] = Ampl * sin(ph);
+
30 ph += fr;
+
31 if (ph > 2 * M_PI) {
+
32 ph -= 2 * M_PI;
+
33 }
+
34 if (ph < -2 * M_PI) {
+
35 ph += 2 * M_PI;
+
36 }
+
37 }
+
38 return ESP_OK;
+
39}
+
#define ESP_ERR_DSP_INVALID_PARAM
+
#define ESP_OK
Definition esp_err.h:23
+
#define M_PI
Definition esp_err.h:26
+
+

References ESP_ERR_DSP_INVALID_PARAM, ESP_OK, and M_PI.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__tone__gen_8h.js b/docs/html/dsps__tone__gen_8h.js new file mode 100644 index 0000000..e232110 --- /dev/null +++ b/docs/html/dsps__tone__gen_8h.js @@ -0,0 +1,4 @@ +var dsps__tone__gen_8h = +[ + [ "dsps_tone_gen_f32", "dsps__tone__gen_8h.html#a142aa8afe0807f36abeb81f429f73bde", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__tone__gen_8h__dep__incl.md5 b/docs/html/dsps__tone__gen_8h__dep__incl.md5 new file mode 100644 index 0000000..69eea8b --- /dev/null +++ b/docs/html/dsps__tone__gen_8h__dep__incl.md5 @@ -0,0 +1 @@ +c34a0be8861514a43f6b51f1fc7add60 \ No newline at end of file diff --git a/docs/html/dsps__tone__gen_8h__dep__incl.svg b/docs/html/dsps__tone__gen_8h__dep__incl.svg new file mode 100644 index 0000000..dadceff --- /dev/null +++ b/docs/html/dsps__tone__gen_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_tone_gen.h + + +Node1 + + +dsps_tone_gen.h + + + + + +Node2 + + +dsps_tone_gen.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__tone__gen_8h__dep__incl_org.svg b/docs/html/dsps__tone__gen_8h__dep__incl_org.svg new file mode 100644 index 0000000..b0108f0 --- /dev/null +++ b/docs/html/dsps__tone__gen_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dsps_tone_gen.h + + +Node1 + + +dsps_tone_gen.h + + + + + +Node2 + + +dsps_tone_gen.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + diff --git a/docs/html/dsps__tone__gen_8h__incl.md5 b/docs/html/dsps__tone__gen_8h__incl.md5 new file mode 100644 index 0000000..e7ae9da --- /dev/null +++ b/docs/html/dsps__tone__gen_8h__incl.md5 @@ -0,0 +1 @@ +b14bbf114a9ce9475a0888e922566363 \ No newline at end of file diff --git a/docs/html/dsps__tone__gen_8h__incl.svg b/docs/html/dsps__tone__gen_8h__incl.svg new file mode 100644 index 0000000..ef1de91 --- /dev/null +++ b/docs/html/dsps__tone__gen_8h__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_tone_gen.h + + +Node1 + + +dsps_tone_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__tone__gen_8h__incl_org.svg b/docs/html/dsps__tone__gen_8h__incl_org.svg new file mode 100644 index 0000000..f52bb6e --- /dev/null +++ b/docs/html/dsps__tone__gen_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_tone_gen.h + + +Node1 + + +dsps_tone_gen.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__tone__gen_8h_source.html b/docs/html/dsps__tone__gen_8h_source.html new file mode 100644 index 0000000..f762b9f --- /dev/null +++ b/docs/html/dsps__tone__gen_8h_source.html @@ -0,0 +1,140 @@ + + + + + + + +ESP-IDF Firmware: dsps_tone_gen.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_tone_gen.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_tone_gen_H_
+
16#define _dsps_tone_gen_H_
+
17#include "dsp_err.h"
+
18
+
19
+
20#ifdef __cplusplus
+
21extern "C"
+
22{
+
23#endif
+
24
+
42esp_err_t dsps_tone_gen_f32(float *output, int len, float Ampl, float freq, float phase);
+
43
+
44#ifdef __cplusplus
+
45}
+
46#endif
+
47
+
48#endif // _dsps_tone_gen_H_
+ +
esp_err_t dsps_tone_gen_f32(float *output, int len, float Ampl, float freq, float phase)
tone
+
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/dsps__view_8cpp.html b/docs/html/dsps__view_8cpp.html new file mode 100644 index 0000000..c6b86b5 --- /dev/null +++ b/docs/html/dsps__view_8cpp.html @@ -0,0 +1,427 @@ + + + + + + + +ESP-IDF Firmware: dsps_view.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_view.cpp File Reference
+
+
+
#include "dsps_view.h"
+#include <math.h>
+#include "esp_log.h"
+#include <limits>
+#include <inttypes.h>
+
+Include dependency graph for dsps_view.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + +

+Functions

void dsps_view (const float *data, int32_t len, int width, int height, float min, float max, char view_char)
 plot view
void dsps_view_s16 (const int16_t *data, int32_t len, int width, int height, float min, float max, char view_char)
void dsps_view_spectrum (const float *data, int32_t len, float min, float max)
 spectrum view
+

Function Documentation

+ +

◆ dsps_view()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void dsps_view (const float * data,
int32_t len,
int width,
int height,
float min,
float max,
char view_char )
+
+ +

plot view

+

Generic view function. This function takes input samples and show then in console view as a plot. The main purpose to give and draft debug information to the DSP developer.

+
Parameters
+ + + + + + + + +
[in]dataarray with input samples.
lenlength of the input array
widthplot width in symbols
heightplot height in lines
minminimum value that will be limited by Axis Y.
maxmaximum value that will be limited by Axis Y.
view_charcharacter to draw the plot calues ('.' or '|' etc)
+
+
+ +

Definition at line 8 of file dsps_view.cpp.

+
9{
+
10 uint8_t *view_data = new uint8_t[width * height];
+
11 float *view_data_min = new float[width];
+
12 float *view_data_max = new float[width];
+
13 //
+
14
+
15 for (int y = 0; y < height ; y++) {
+
16 for (int x = 0 ; x < width ; x++) {
+
17 view_data[y * width + x] = ' ';
+
18 }
+
19 }
+
20 for (int i = 0 ; i < width ; i++) {
+
21 view_data_min[i] = max;
+
22 view_data_max[i] = min;
+
23 }
+
24 float x_step = (float)(width) / (float)len;
+
25 float y_step = (float)(height - 1) / (max - min);
+
26 float data_min = std::numeric_limits<float>::max();
+
27 float data_max = std::numeric_limits<float>::min();
+
28 int min_pos = 0;
+
29 int max_pos = 0;
+
30
+
31 for (int i = 0 ; i < len ; i++) {
+
32 int x_pos = i * x_step;
+
33 if (data[i] < view_data_min[x_pos]) {
+
34 view_data_min[x_pos] = data[i];
+
35 }
+
36 if (data[i] > view_data_max[x_pos]) {
+
37 view_data_max[x_pos] = data[i];
+
38 }
+
39
+
40 if (view_data_min[x_pos] < min) {
+
41 view_data_min[x_pos] = min;
+
42 }
+
43 if (view_data_max[x_pos] > max) {
+
44 view_data_max[x_pos] = max;
+
45 }
+
46 ESP_LOGD("view", "for i=%i, x_pos=%i, max=%f, min=%f, data=%f", i, x_pos, view_data_min[x_pos], view_data_max[x_pos], data[i]);
+
47 if (data[i] > data_max) {
+
48 data_max = data[i];
+
49 max_pos = i;
+
50 }
+
51 if (data[i] < data_min) {
+
52 data_min = data[i];
+
53 min_pos = i;
+
54 }
+
55 }
+
56 ESP_LOGI("view", "Data min[%i] = %f, Data max[%i] = %f", min_pos, data_min, max_pos, data_max);
+
57 ESP_LOGD("view", "y_step = %f", y_step);
+
58 for (int x = 0 ; x < width ; x++) {
+
59 int y_count = (view_data_max[x] - view_data_min[x]) * y_step + 1;
+
60 ESP_LOGD("view", "For x= %i y_count=%i ,min =%f, max=%f, ... ", x, y_count, view_data_min[x], view_data_max[x]);
+
61 for (int y = 0 ; y < y_count ; y++) {
+
62 int y_pos = (max - view_data_max[x]) * y_step + y;
+
63 ESP_LOGD("view", " %i, ", y_pos);
+
64 view_data[y_pos * width + x] = view_char;
+
65 }
+
66 ESP_LOGD("view", " ");
+
67 }
+
68
+
69 // Simple output
+
70 // for (int i=0 ; i< len ; i++)
+
71 // {
+
72 // float x_step = (float)(width-1)/(float)len;
+
73 // float y_step = (float)(height-1)/(max - min);
+
74 // int x_pos = i*x_step;
+
75 // int y_pos = data[i]*y_step;
+
76 // if (data[i] >= max) y_pos = 0;
+
77 // if (data[i] <= min) y_pos = height-1;
+
78 // view_data[y_pos*width + x_pos] = view_char;
+
79 // printf("For data[%i]=%f, x_pos%i, y_pos=%i\n", i, data[i], x_pos, y_pos);
+
80 // }
+
81 // printf("\n");
+
82 printf(" ");
+
83 for (int x = 0 ; x < width ; x++) {
+
84 printf("_");
+
85 }
+
86 printf("\n");
+
87 for (int y = 0; y < height ; y++) {
+
88 printf("%i", y % 10);
+
89 for (int x = 0 ; x < width ; x++) {
+
90 printf("%c", view_data[y * width + x]);
+
91 }
+
92 printf("|\n");
+
93 }
+
94 printf(" ");
+
95 for (int x = 0 ; x < width ; x++) {
+
96 printf("%i", x % 10);
+
97 }
+
98 printf("\n");
+
99 ESP_LOGI("view", "Plot: Length=%i, min=%f, max=%f", (int)len, min, max);
+
100 delete[] view_data;
+
101 delete[] view_data_min;
+
102 delete[] view_data_max;
+
103}
+
#define ESP_LOGD
Definition esp_log.h:22
+
static float data[128 *2]
Definition test_fft2r.c:34
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References data, ESP_LOGD, x, and y.

+ +

Referenced by dsps_view_s16(), and dsps_view_spectrum().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_view_s16()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void dsps_view_s16 (const int16_t * data,
int32_t len,
int width,
int height,
float min,
float max,
char view_char )
+
+ +

Definition at line 105 of file dsps_view.cpp.

+
106{
+
107 float *view_data = new float[len];
+
108 for (size_t i = 0; i < len; i++) {
+
109// view_data[i] = ((float)data[i])/32768.0f;
+
110 view_data[i] = data[i];
+
111 view_data[i] /= 32768;
+
112 }
+
113 dsps_view(view_data, len, width, height, min, max, view_char);
+
114 delete[] view_data;
+
115}
+
void dsps_view(const float *data, int32_t len, int width, int height, float min, float max, char view_char)
plot view
Definition dsps_view.cpp:8
+
+

References data, and dsps_view().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_view_spectrum()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void dsps_view_spectrum (const float * data,
int32_t len,
float min,
float max )
+
+ +

spectrum view

+

The view function to show spectrum values in 64x10 screen. The function based on dsps_view.

+
Parameters
+ + + + + +
[in]dataarray with input samples.
lenlength of the input array
minminimum value that will be limited by Axis Y.
maxmaximum value that will be limited by Axis Y.
+
+
+ +

Definition at line 117 of file dsps_view.cpp.

+
118{
+
119 dsps_view(data, len, 64, 10, min, max, '|');
+
120}
+
+

References data, and dsps_view().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__view_8cpp.js b/docs/html/dsps__view_8cpp.js new file mode 100644 index 0000000..5d31d65 --- /dev/null +++ b/docs/html/dsps__view_8cpp.js @@ -0,0 +1,6 @@ +var dsps__view_8cpp = +[ + [ "dsps_view", "dsps__view_8cpp.html#a5aaf401ce36afcb7d4527b252f4add42", null ], + [ "dsps_view_s16", "dsps__view_8cpp.html#a0c5a17d48829302cdbba840b2e95824c", null ], + [ "dsps_view_spectrum", "dsps__view_8cpp.html#afd61bbfc19547c63161e9021b703a4f5", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__view_8cpp__incl.md5 b/docs/html/dsps__view_8cpp__incl.md5 new file mode 100644 index 0000000..dfc2b86 --- /dev/null +++ b/docs/html/dsps__view_8cpp__incl.md5 @@ -0,0 +1 @@ +1a2c8820108ed7f53ecedc5af2d12a41 \ No newline at end of file diff --git a/docs/html/dsps__view_8cpp__incl.svg b/docs/html/dsps__view_8cpp__incl.svg new file mode 100644 index 0000000..1bd0bbf --- /dev/null +++ b/docs/html/dsps__view_8cpp__incl.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + +dsps_view.cpp + + +Node1 + + +dsps_view.cpp + + + + + +Node2 + + +dsps_view.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +math.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +limits + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9->Node6 + + + + + + + + + + + + + diff --git a/docs/html/dsps__view_8cpp__incl_org.svg b/docs/html/dsps__view_8cpp__incl_org.svg new file mode 100644 index 0000000..e5c2f2f --- /dev/null +++ b/docs/html/dsps__view_8cpp__incl_org.svg @@ -0,0 +1,210 @@ + + + + + + +dsps_view.cpp + + +Node1 + + +dsps_view.cpp + + + + + +Node2 + + +dsps_view.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +math.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +limits + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +inttypes.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +esp_err.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +dsp_err_codes.h + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9->Node6 + + + + + + + + diff --git a/docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph.md5 b/docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph.md5 new file mode 100644 index 0000000..838e41b --- /dev/null +++ b/docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph.md5 @@ -0,0 +1 @@ +da69013791fcff50283d5f3f6b19830a \ No newline at end of file diff --git a/docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph.svg b/docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph.svg new file mode 100644 index 0000000..f5ba496 --- /dev/null +++ b/docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_view_s16 + + +Node1 + + +dsps_view_s16 + + + + + +Node2 + + +dsps_view + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph_org.svg b/docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph_org.svg new file mode 100644 index 0000000..a480546 --- /dev/null +++ b/docs/html/dsps__view_8cpp_a0c5a17d48829302cdbba840b2e95824c_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_view_s16 + + +Node1 + + +dsps_view_s16 + + + + + +Node2 + + +dsps_view + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph.md5 b/docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph.md5 new file mode 100644 index 0000000..a626a52 --- /dev/null +++ b/docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph.md5 @@ -0,0 +1 @@ +997016fd6fbef12251670fddf450745e \ No newline at end of file diff --git a/docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph.svg b/docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph.svg new file mode 100644 index 0000000..306e105 --- /dev/null +++ b/docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_view + + +Node1 + + +dsps_view + + + + + +Node2 + + +dsps_view_s16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_view_spectrum + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph_org.svg b/docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph_org.svg new file mode 100644 index 0000000..750f0da --- /dev/null +++ b/docs/html/dsps__view_8cpp_a5aaf401ce36afcb7d4527b252f4add42_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_view + + +Node1 + + +dsps_view + + + + + +Node2 + + +dsps_view_s16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_view_spectrum + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph.md5 b/docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph.md5 new file mode 100644 index 0000000..377e60e --- /dev/null +++ b/docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph.md5 @@ -0,0 +1 @@ +b8bf16775f7dcde32f15617d06ae2ff0 \ No newline at end of file diff --git a/docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph.svg b/docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph.svg new file mode 100644 index 0000000..0a6ea22 --- /dev/null +++ b/docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_view_spectrum + + +Node1 + + +dsps_view_spectrum + + + + + +Node2 + + +dsps_view + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph_org.svg b/docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph_org.svg new file mode 100644 index 0000000..88c1ef2 --- /dev/null +++ b/docs/html/dsps__view_8cpp_afd61bbfc19547c63161e9021b703a4f5_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_view_spectrum + + +Node1 + + +dsps_view_spectrum + + + + + +Node2 + + +dsps_view + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__view_8cpp_source.html b/docs/html/dsps__view_8cpp_source.html new file mode 100644 index 0000000..db0cec1 --- /dev/null +++ b/docs/html/dsps__view_8cpp_source.html @@ -0,0 +1,241 @@ + + + + + + + +ESP-IDF Firmware: dsps_view.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_view.cpp
+
+
+Go to the documentation of this file.
1#include "dsps_view.h"
+
2#include <math.h>
+
3#include "esp_log.h"
+
4#include <limits>
+
5#include <inttypes.h>
+
6
+
7
+
+
8void dsps_view(const float *data, int32_t len, int width, int height, float min, float max, char view_char)
+
9{
+
10 uint8_t *view_data = new uint8_t[width * height];
+
11 float *view_data_min = new float[width];
+
12 float *view_data_max = new float[width];
+
13 //
+
14
+
15 for (int y = 0; y < height ; y++) {
+
16 for (int x = 0 ; x < width ; x++) {
+
17 view_data[y * width + x] = ' ';
+
18 }
+
19 }
+
20 for (int i = 0 ; i < width ; i++) {
+
21 view_data_min[i] = max;
+
22 view_data_max[i] = min;
+
23 }
+
24 float x_step = (float)(width) / (float)len;
+
25 float y_step = (float)(height - 1) / (max - min);
+
26 float data_min = std::numeric_limits<float>::max();
+
27 float data_max = std::numeric_limits<float>::min();
+
28 int min_pos = 0;
+
29 int max_pos = 0;
+
30
+
31 for (int i = 0 ; i < len ; i++) {
+
32 int x_pos = i * x_step;
+
33 if (data[i] < view_data_min[x_pos]) {
+
34 view_data_min[x_pos] = data[i];
+
35 }
+
36 if (data[i] > view_data_max[x_pos]) {
+
37 view_data_max[x_pos] = data[i];
+
38 }
+
39
+
40 if (view_data_min[x_pos] < min) {
+
41 view_data_min[x_pos] = min;
+
42 }
+
43 if (view_data_max[x_pos] > max) {
+
44 view_data_max[x_pos] = max;
+
45 }
+
46 ESP_LOGD("view", "for i=%i, x_pos=%i, max=%f, min=%f, data=%f", i, x_pos, view_data_min[x_pos], view_data_max[x_pos], data[i]);
+
47 if (data[i] > data_max) {
+
48 data_max = data[i];
+
49 max_pos = i;
+
50 }
+
51 if (data[i] < data_min) {
+
52 data_min = data[i];
+
53 min_pos = i;
+
54 }
+
55 }
+
56 ESP_LOGI("view", "Data min[%i] = %f, Data max[%i] = %f", min_pos, data_min, max_pos, data_max);
+
57 ESP_LOGD("view", "y_step = %f", y_step);
+
58 for (int x = 0 ; x < width ; x++) {
+
59 int y_count = (view_data_max[x] - view_data_min[x]) * y_step + 1;
+
60 ESP_LOGD("view", "For x= %i y_count=%i ,min =%f, max=%f, ... ", x, y_count, view_data_min[x], view_data_max[x]);
+
61 for (int y = 0 ; y < y_count ; y++) {
+
62 int y_pos = (max - view_data_max[x]) * y_step + y;
+
63 ESP_LOGD("view", " %i, ", y_pos);
+
64 view_data[y_pos * width + x] = view_char;
+
65 }
+
66 ESP_LOGD("view", " ");
+
67 }
+
68
+
69 // Simple output
+
70 // for (int i=0 ; i< len ; i++)
+
71 // {
+
72 // float x_step = (float)(width-1)/(float)len;
+
73 // float y_step = (float)(height-1)/(max - min);
+
74 // int x_pos = i*x_step;
+
75 // int y_pos = data[i]*y_step;
+
76 // if (data[i] >= max) y_pos = 0;
+
77 // if (data[i] <= min) y_pos = height-1;
+
78 // view_data[y_pos*width + x_pos] = view_char;
+
79 // printf("For data[%i]=%f, x_pos%i, y_pos=%i\n", i, data[i], x_pos, y_pos);
+
80 // }
+
81 // printf("\n");
+
82 printf(" ");
+
83 for (int x = 0 ; x < width ; x++) {
+
84 printf("_");
+
85 }
+
86 printf("\n");
+
87 for (int y = 0; y < height ; y++) {
+
88 printf("%i", y % 10);
+
89 for (int x = 0 ; x < width ; x++) {
+
90 printf("%c", view_data[y * width + x]);
+
91 }
+
92 printf("|\n");
+
93 }
+
94 printf(" ");
+
95 for (int x = 0 ; x < width ; x++) {
+
96 printf("%i", x % 10);
+
97 }
+
98 printf("\n");
+
99 ESP_LOGI("view", "Plot: Length=%i, min=%f, max=%f", (int)len, min, max);
+
100 delete[] view_data;
+
101 delete[] view_data_min;
+
102 delete[] view_data_max;
+
103}
+
+
104
+
+
105void dsps_view_s16(const int16_t *data, int32_t len, int width, int height, float min, float max, char view_char)
+
106{
+
107 float *view_data = new float[len];
+
108 for (size_t i = 0; i < len; i++) {
+
109// view_data[i] = ((float)data[i])/32768.0f;
+
110 view_data[i] = data[i];
+
111 view_data[i] /= 32768;
+
112 }
+
113 dsps_view(view_data, len, width, height, min, max, view_char);
+
114 delete[] view_data;
+
115}
+
+
116
+
+
117void dsps_view_spectrum(const float *data, int32_t len, float min, float max)
+
118{
+
119 dsps_view(data, len, 64, 10, min, max, '|');
+
120}
+
+
void dsps_view_s16(const int16_t *data, int32_t len, int width, int height, float min, float max, char view_char)
+
void dsps_view(const float *data, int32_t len, int width, int height, float min, float max, char view_char)
plot view
Definition dsps_view.cpp:8
+
void dsps_view_spectrum(const float *data, int32_t len, float min, float max)
spectrum view
+ + +
#define ESP_LOGD
Definition esp_log.h:22
+
static float data[128 *2]
Definition test_fft2r.c:34
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/dsps__view_8h.html b/docs/html/dsps__view_8h.html new file mode 100644 index 0000000..6c5ad22 --- /dev/null +++ b/docs/html/dsps__view_8h.html @@ -0,0 +1,429 @@ + + + + + + + +ESP-IDF Firmware: dsps_view.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_view.h File Reference
+
+
+
#include "dsp_err.h"
+
+Include dependency graph for dsps_view.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

void dsps_view_spectrum (const float *data, int32_t len, float min, float max)
 spectrum view
void dsps_view (const float *data, int32_t len, int width, int height, float min, float max, char view_char)
 plot view
void dsps_view_s16 (const int16_t *data, int32_t len, int width, int height, float min, float max, char view_char)
+

Function Documentation

+ +

◆ dsps_view()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void dsps_view (const float * data,
int32_t len,
int width,
int height,
float min,
float max,
char view_char )
+
+ +

plot view

+

Generic view function. This function takes input samples and show then in console view as a plot. The main purpose to give and draft debug information to the DSP developer.

+
Parameters
+ + + + + + + + +
[in]dataarray with input samples.
lenlength of the input array
widthplot width in symbols
heightplot height in lines
minminimum value that will be limited by Axis Y.
maxmaximum value that will be limited by Axis Y.
view_charcharacter to draw the plot calues ('.' or '|' etc)
+
+
+ +

Definition at line 8 of file dsps_view.cpp.

+
9{
+
10 uint8_t *view_data = new uint8_t[width * height];
+
11 float *view_data_min = new float[width];
+
12 float *view_data_max = new float[width];
+
13 //
+
14
+
15 for (int y = 0; y < height ; y++) {
+
16 for (int x = 0 ; x < width ; x++) {
+
17 view_data[y * width + x] = ' ';
+
18 }
+
19 }
+
20 for (int i = 0 ; i < width ; i++) {
+
21 view_data_min[i] = max;
+
22 view_data_max[i] = min;
+
23 }
+
24 float x_step = (float)(width) / (float)len;
+
25 float y_step = (float)(height - 1) / (max - min);
+
26 float data_min = std::numeric_limits<float>::max();
+
27 float data_max = std::numeric_limits<float>::min();
+
28 int min_pos = 0;
+
29 int max_pos = 0;
+
30
+
31 for (int i = 0 ; i < len ; i++) {
+
32 int x_pos = i * x_step;
+
33 if (data[i] < view_data_min[x_pos]) {
+
34 view_data_min[x_pos] = data[i];
+
35 }
+
36 if (data[i] > view_data_max[x_pos]) {
+
37 view_data_max[x_pos] = data[i];
+
38 }
+
39
+
40 if (view_data_min[x_pos] < min) {
+
41 view_data_min[x_pos] = min;
+
42 }
+
43 if (view_data_max[x_pos] > max) {
+
44 view_data_max[x_pos] = max;
+
45 }
+
46 ESP_LOGD("view", "for i=%i, x_pos=%i, max=%f, min=%f, data=%f", i, x_pos, view_data_min[x_pos], view_data_max[x_pos], data[i]);
+
47 if (data[i] > data_max) {
+
48 data_max = data[i];
+
49 max_pos = i;
+
50 }
+
51 if (data[i] < data_min) {
+
52 data_min = data[i];
+
53 min_pos = i;
+
54 }
+
55 }
+
56 ESP_LOGI("view", "Data min[%i] = %f, Data max[%i] = %f", min_pos, data_min, max_pos, data_max);
+
57 ESP_LOGD("view", "y_step = %f", y_step);
+
58 for (int x = 0 ; x < width ; x++) {
+
59 int y_count = (view_data_max[x] - view_data_min[x]) * y_step + 1;
+
60 ESP_LOGD("view", "For x= %i y_count=%i ,min =%f, max=%f, ... ", x, y_count, view_data_min[x], view_data_max[x]);
+
61 for (int y = 0 ; y < y_count ; y++) {
+
62 int y_pos = (max - view_data_max[x]) * y_step + y;
+
63 ESP_LOGD("view", " %i, ", y_pos);
+
64 view_data[y_pos * width + x] = view_char;
+
65 }
+
66 ESP_LOGD("view", " ");
+
67 }
+
68
+
69 // Simple output
+
70 // for (int i=0 ; i< len ; i++)
+
71 // {
+
72 // float x_step = (float)(width-1)/(float)len;
+
73 // float y_step = (float)(height-1)/(max - min);
+
74 // int x_pos = i*x_step;
+
75 // int y_pos = data[i]*y_step;
+
76 // if (data[i] >= max) y_pos = 0;
+
77 // if (data[i] <= min) y_pos = height-1;
+
78 // view_data[y_pos*width + x_pos] = view_char;
+
79 // printf("For data[%i]=%f, x_pos%i, y_pos=%i\n", i, data[i], x_pos, y_pos);
+
80 // }
+
81 // printf("\n");
+
82 printf(" ");
+
83 for (int x = 0 ; x < width ; x++) {
+
84 printf("_");
+
85 }
+
86 printf("\n");
+
87 for (int y = 0; y < height ; y++) {
+
88 printf("%i", y % 10);
+
89 for (int x = 0 ; x < width ; x++) {
+
90 printf("%c", view_data[y * width + x]);
+
91 }
+
92 printf("|\n");
+
93 }
+
94 printf(" ");
+
95 for (int x = 0 ; x < width ; x++) {
+
96 printf("%i", x % 10);
+
97 }
+
98 printf("\n");
+
99 ESP_LOGI("view", "Plot: Length=%i, min=%f, max=%f", (int)len, min, max);
+
100 delete[] view_data;
+
101 delete[] view_data_min;
+
102 delete[] view_data_max;
+
103}
+
#define ESP_LOGD
Definition esp_log.h:22
+
static float data[128 *2]
Definition test_fft2r.c:34
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References data, ESP_LOGD, x, and y.

+ +

Referenced by dsps_view_s16(), and dsps_view_spectrum().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_view_s16()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void dsps_view_s16 (const int16_t * data,
int32_t len,
int width,
int height,
float min,
float max,
char view_char )
+
+ +

Definition at line 105 of file dsps_view.cpp.

+
106{
+
107 float *view_data = new float[len];
+
108 for (size_t i = 0; i < len; i++) {
+
109// view_data[i] = ((float)data[i])/32768.0f;
+
110 view_data[i] = data[i];
+
111 view_data[i] /= 32768;
+
112 }
+
113 dsps_view(view_data, len, width, height, min, max, view_char);
+
114 delete[] view_data;
+
115}
+
void dsps_view(const float *data, int32_t len, int width, int height, float min, float max, char view_char)
plot view
Definition dsps_view.cpp:8
+
+

References data, and dsps_view().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ dsps_view_spectrum()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void dsps_view_spectrum (const float * data,
int32_t len,
float min,
float max )
+
+ +

spectrum view

+

The view function to show spectrum values in 64x10 screen. The function based on dsps_view.

+
Parameters
+ + + + + +
[in]dataarray with input samples.
lenlength of the input array
minminimum value that will be limited by Axis Y.
maxmaximum value that will be limited by Axis Y.
+
+
+ +

Definition at line 117 of file dsps_view.cpp.

+
118{
+
119 dsps_view(data, len, 64, 10, min, max, '|');
+
120}
+
+

References data, and dsps_view().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__view_8h.js b/docs/html/dsps__view_8h.js new file mode 100644 index 0000000..089ca06 --- /dev/null +++ b/docs/html/dsps__view_8h.js @@ -0,0 +1,6 @@ +var dsps__view_8h = +[ + [ "dsps_view", "dsps__view_8h.html#a5aaf401ce36afcb7d4527b252f4add42", null ], + [ "dsps_view_s16", "dsps__view_8h.html#a0c5a17d48829302cdbba840b2e95824c", null ], + [ "dsps_view_spectrum", "dsps__view_8h.html#afd61bbfc19547c63161e9021b703a4f5", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__view_8h__dep__incl.md5 b/docs/html/dsps__view_8h__dep__incl.md5 new file mode 100644 index 0000000..25c7ae7 --- /dev/null +++ b/docs/html/dsps__view_8h__dep__incl.md5 @@ -0,0 +1 @@ +e6cf632480106f019414b1b1af434bde \ No newline at end of file diff --git a/docs/html/dsps__view_8h__dep__incl.svg b/docs/html/dsps__view_8h__dep__incl.svg new file mode 100644 index 0000000..9572e3b --- /dev/null +++ b/docs/html/dsps__view_8h__dep__incl.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_view.h + + +Node1 + + +dsps_view.h + + + + + +Node2 + + +dsps_view.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__view_8h__dep__incl_org.svg b/docs/html/dsps__view_8h__dep__incl_org.svg new file mode 100644 index 0000000..1ea01e4 --- /dev/null +++ b/docs/html/dsps__view_8h__dep__incl_org.svg @@ -0,0 +1,651 @@ + + + + + + +dsps_view.h + + +Node1 + + +dsps_view.h + + + + + +Node2 + + +dsps_view.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + +Node16 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dsps_fird_init_s16.c + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +dsps_firmr_f32_ansi.c + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_f32.c + + + + + +Node15->Node19 + + + + + + + + +Node20 + + +dsps_firmr_init_s16.c + + + + + +Node15->Node20 + + + + + + + + +Node21 + + +dsps_firmr_s16_ansi.c + + + + + +Node15->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +graphics_support.cpp + + + + + +Node26->Node27 + + + + + + + + diff --git a/docs/html/dsps__view_8h__incl.md5 b/docs/html/dsps__view_8h__incl.md5 new file mode 100644 index 0000000..ef08ca5 --- /dev/null +++ b/docs/html/dsps__view_8h__incl.md5 @@ -0,0 +1 @@ +12b97b5a7f4e134a10e08530906bf152 \ No newline at end of file diff --git a/docs/html/dsps__view_8h__incl.svg b/docs/html/dsps__view_8h__incl.svg new file mode 100644 index 0000000..a5b3526 --- /dev/null +++ b/docs/html/dsps__view_8h__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +dsps_view.h + + +Node1 + + +dsps_view.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/dsps__view_8h__incl_org.svg b/docs/html/dsps__view_8h__incl_org.svg new file mode 100644 index 0000000..8f080fc --- /dev/null +++ b/docs/html/dsps__view_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +dsps_view.h + + +Node1 + + +dsps_view.h + + + + + +Node2 + + +dsp_err.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +esp_err.h + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +dsp_err_codes.h + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +stdlib.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph.md5 b/docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph.md5 new file mode 100644 index 0000000..838e41b --- /dev/null +++ b/docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph.md5 @@ -0,0 +1 @@ +da69013791fcff50283d5f3f6b19830a \ No newline at end of file diff --git a/docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph.svg b/docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph.svg new file mode 100644 index 0000000..f5ba496 --- /dev/null +++ b/docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_view_s16 + + +Node1 + + +dsps_view_s16 + + + + + +Node2 + + +dsps_view + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph_org.svg b/docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph_org.svg new file mode 100644 index 0000000..a480546 --- /dev/null +++ b/docs/html/dsps__view_8h_a0c5a17d48829302cdbba840b2e95824c_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_view_s16 + + +Node1 + + +dsps_view_s16 + + + + + +Node2 + + +dsps_view + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph.md5 b/docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph.md5 new file mode 100644 index 0000000..a626a52 --- /dev/null +++ b/docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph.md5 @@ -0,0 +1 @@ +997016fd6fbef12251670fddf450745e \ No newline at end of file diff --git a/docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph.svg b/docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph.svg new file mode 100644 index 0000000..306e105 --- /dev/null +++ b/docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_view + + +Node1 + + +dsps_view + + + + + +Node2 + + +dsps_view_s16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_view_spectrum + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph_org.svg b/docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph_org.svg new file mode 100644 index 0000000..750f0da --- /dev/null +++ b/docs/html/dsps__view_8h_a5aaf401ce36afcb7d4527b252f4add42_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_view + + +Node1 + + +dsps_view + + + + + +Node2 + + +dsps_view_s16 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_view_spectrum + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph.md5 b/docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph.md5 new file mode 100644 index 0000000..377e60e --- /dev/null +++ b/docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph.md5 @@ -0,0 +1 @@ +b8bf16775f7dcde32f15617d06ae2ff0 \ No newline at end of file diff --git a/docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph.svg b/docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph.svg new file mode 100644 index 0000000..0a6ea22 --- /dev/null +++ b/docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_view_spectrum + + +Node1 + + +dsps_view_spectrum + + + + + +Node2 + + +dsps_view + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph_org.svg b/docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph_org.svg new file mode 100644 index 0000000..88c1ef2 --- /dev/null +++ b/docs/html/dsps__view_8h_afd61bbfc19547c63161e9021b703a4f5_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_view_spectrum + + +Node1 + + +dsps_view_spectrum + + + + + +Node2 + + +dsps_view + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__view_8h_source.html b/docs/html/dsps__view_8h_source.html new file mode 100644 index 0000000..5208944 --- /dev/null +++ b/docs/html/dsps__view_8h_source.html @@ -0,0 +1,145 @@ + + + + + + + +ESP-IDF Firmware: dsps_view.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_view.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dsps_view_H_
+
16#define _dsps_view_H_
+
17
+
18#include "dsp_err.h"
+
19
+
20#ifdef __cplusplus
+
21extern "C"
+
22{
+
23#endif
+
24
+
42void dsps_view(const float *data, int32_t len, int width, int height, float min, float max, char view_char);
+
43void dsps_view_s16(const int16_t *data, int32_t len, int width, int height, float min, float max, char view_char);
+
45
+
58void dsps_view_spectrum(const float *data, int32_t len, float min, float max);
+
59
+
60#ifdef __cplusplus
+
61}
+
62#endif
+
63
+
64#endif // _dsps_view_H_
+ +
void dsps_view_s16(const int16_t *data, int32_t len, int width, int height, float min, float max, char view_char)
+
void dsps_view(const float *data, int32_t len, int width, int height, float min, float max, char view_char)
plot view
Definition dsps_view.cpp:8
+
void dsps_view_spectrum(const float *data, int32_t len, float min, float max)
spectrum view
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/dsps__wind_8h.html b/docs/html/dsps__wind_8h.html new file mode 100644 index 0000000..6f2aa64 --- /dev/null +++ b/docs/html/dsps__wind_8h.html @@ -0,0 +1,131 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind.h File Reference
+
+
+
+Include dependency graph for dsps_wind.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind_8h__dep__incl.md5 b/docs/html/dsps__wind_8h__dep__incl.md5 new file mode 100644 index 0000000..b0480a2 --- /dev/null +++ b/docs/html/dsps__wind_8h__dep__incl.md5 @@ -0,0 +1 @@ +5b415ceb3df4816e4148eb0423d80ad9 \ No newline at end of file diff --git a/docs/html/dsps__wind_8h__dep__incl.svg b/docs/html/dsps__wind_8h__dep__incl.svg new file mode 100644 index 0000000..f715aad --- /dev/null +++ b/docs/html/dsps__wind_8h__dep__incl.svg @@ -0,0 +1,716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_wind.h + + +Node1 + + +dsps_wind.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +dsp_tests.h + + + + + +Node2->Node14 + + + + + + + + +Node21 + + +graphics_support.h + + + + + +Node2->Node21 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node2->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node2->Node25 + + + + + + + + +Node27 + + +init_display.c + + + + + +Node2->Node27 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node2->Node28 + + + + + + + + +Node29 + + +kalman_filter_demo.cpp + + + + + +Node2->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node2->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node2->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +main.c + + + + + +Node2->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node2->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node2->Node35 + + + + + + + + +Node15 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fird_init_s16.c + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +dsps_firmr_f32_ansi.c + + + + + +Node14->Node17 + + + + + + + + +Node18 + + +dsps_firmr_init_f32.c + + + + + +Node14->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_s16.c + + + + + +Node14->Node19 + + + + + + + + +Node20 + + +dsps_firmr_s16_ansi.c + + + + + +Node14->Node20 + + + + + + + + +Node22 + + +graphics_support.cpp + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind_8h__dep__incl_org.svg b/docs/html/dsps__wind_8h__dep__incl_org.svg new file mode 100644 index 0000000..d1399e6 --- /dev/null +++ b/docs/html/dsps__wind_8h__dep__incl_org.svg @@ -0,0 +1,633 @@ + + + + + + +dsps_wind.h + + +Node1 + + +dsps_wind.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +dsp_tests.h + + + + + +Node2->Node14 + + + + + + + + +Node21 + + +graphics_support.h + + + + + +Node2->Node21 + + + + + + + + +Node23 + + +graphics_support.h + + + + + +Node2->Node23 + + + + + + + + +Node25 + + +graphics_support.h + + + + + +Node2->Node25 + + + + + + + + +Node27 + + +init_display.c + + + + + +Node2->Node27 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node2->Node28 + + + + + + + + +Node29 + + +kalman_filter_demo.cpp + + + + + +Node2->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node2->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node2->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +main.c + + + + + +Node2->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node2->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node2->Node35 + + + + + + + + +Node15 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_fird_init_s16.c + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +dsps_firmr_f32_ansi.c + + + + + +Node14->Node17 + + + + + + + + +Node18 + + +dsps_firmr_init_f32.c + + + + + +Node14->Node18 + + + + + + + + +Node19 + + +dsps_firmr_init_s16.c + + + + + +Node14->Node19 + + + + + + + + +Node20 + + +dsps_firmr_s16_ansi.c + + + + + +Node14->Node20 + + + + + + + + +Node22 + + +graphics_support.cpp + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +graphics_support.cpp + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +graphics_support.cpp + + + + + +Node25->Node26 + + + + + + + + diff --git a/docs/html/dsps__wind_8h__incl.md5 b/docs/html/dsps__wind_8h__incl.md5 new file mode 100644 index 0000000..3f95a1f --- /dev/null +++ b/docs/html/dsps__wind_8h__incl.md5 @@ -0,0 +1 @@ +82c335782a502e2f9d412702fe9f81d4 \ No newline at end of file diff --git a/docs/html/dsps__wind_8h__incl.svg b/docs/html/dsps__wind_8h__incl.svg new file mode 100644 index 0000000..93a925c --- /dev/null +++ b/docs/html/dsps__wind_8h__incl.svg @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_wind.h + + +Node1 + + +dsps_wind.h + + + + + +Node2 + + +dsps_wind_hann.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_wind_blackman.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_wind_blackman +_harris.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_wind_nuttall.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_wind_flat_top.h + + + + + +Node1->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind_8h__incl_org.svg b/docs/html/dsps__wind_8h__incl_org.svg new file mode 100644 index 0000000..a772711 --- /dev/null +++ b/docs/html/dsps__wind_8h__incl_org.svg @@ -0,0 +1,131 @@ + + + + + + +dsps_wind.h + + +Node1 + + +dsps_wind.h + + + + + +Node2 + + +dsps_wind_hann.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_wind_blackman.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_wind_blackman +_harris.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_wind_nuttall.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +dsps_wind_flat_top.h + + + + + +Node1->Node7 + + + + + + + + diff --git a/docs/html/dsps__wind_8h_source.html b/docs/html/dsps__wind_8h_source.html new file mode 100644 index 0000000..622c870 --- /dev/null +++ b/docs/html/dsps__wind_8h_source.html @@ -0,0 +1,138 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _dsps_wind_H_
+
17#define _dsps_wind_H_
+
18
+
19#include "dsps_wind_hann.h"
+
20#include "dsps_wind_blackman.h"
+ + +
23#include "dsps_wind_nuttall.h"
+
24#include "dsps_wind_flat_top.h"
+
25
+
26#endif // _dsps_wind_H_
+ + + + + + +
+
+
+ + + + diff --git a/docs/html/dsps__wind__blackman_8h.html b/docs/html/dsps__wind__blackman_8h.html new file mode 100644 index 0000000..79e9121 --- /dev/null +++ b/docs/html/dsps__wind__blackman_8h.html @@ -0,0 +1,180 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

void dsps_wind_blackman_f32 (float *window, int len)
 Blackman window.
+

Function Documentation

+ +

◆ dsps_wind_blackman_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_blackman_f32 (float * window,
int len )
+
+ +

Blackman window.

+

The function generates Blackman window for plpha = 0.16.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_blackman_f32.c.

+
20{
+
21 const float a0 = 0.42;
+
22 const float a1 = 0.5;
+
23 const float a2 = 0.08;
+
24
+
25 float len_mult = 1 / (float)(len - 1);
+
26 for (int i = 0; i < len; i++) {
+
27 window[i] = a0 - a1 * cosf(i * 2 * M_PI * len_mult) + a2 * cosf(i * 4 * M_PI * len_mult);
+
28 }
+
29}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__blackman_8h.js b/docs/html/dsps__wind__blackman_8h.js new file mode 100644 index 0000000..9dfc0fb --- /dev/null +++ b/docs/html/dsps__wind__blackman_8h.js @@ -0,0 +1,4 @@ +var dsps__wind__blackman_8h = +[ + [ "dsps_wind_blackman_f32", "dsps__wind__blackman_8h.html#aae977d9a881b534919830d5d8e0bda02", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman_8h__dep__incl.md5 b/docs/html/dsps__wind__blackman_8h__dep__incl.md5 new file mode 100644 index 0000000..bc1a4ae --- /dev/null +++ b/docs/html/dsps__wind__blackman_8h__dep__incl.md5 @@ -0,0 +1 @@ +dfa9a838b701f6ab19f274b90f57f8e2 \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman_8h__dep__incl.svg b/docs/html/dsps__wind__blackman_8h__dep__incl.svg new file mode 100644 index 0000000..9990168 --- /dev/null +++ b/docs/html/dsps__wind__blackman_8h__dep__incl.svg @@ -0,0 +1,591 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_wind_blackman.h + + +Node1 + + +dsps_wind_blackman.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_blackman +_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman_8h__dep__incl_org.svg b/docs/html/dsps__wind__blackman_8h__dep__incl_org.svg new file mode 100644 index 0000000..811aef1 --- /dev/null +++ b/docs/html/dsps__wind__blackman_8h__dep__incl_org.svg @@ -0,0 +1,508 @@ + + + + + + +dsps_wind_blackman.h + + +Node1 + + +dsps_wind_blackman.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_blackman +_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph.md5 b/docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph.md5 new file mode 100644 index 0000000..d55adb7 --- /dev/null +++ b/docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph.md5 @@ -0,0 +1 @@ +8bb7bbaeba7e483155b65e01b4dabf81 \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph.svg b/docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph.svg new file mode 100644 index 0000000..0daf005 --- /dev/null +++ b/docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_wind_blackman_f32 + + +Node1 + + +dsps_wind_blackman_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph_org.svg b/docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph_org.svg new file mode 100644 index 0000000..c8e1eb5 --- /dev/null +++ b/docs/html/dsps__wind__blackman_8h_aae977d9a881b534919830d5d8e0bda02_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_wind_blackman_f32 + + +Node1 + + +dsps_wind_blackman_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman_8h_source.html b/docs/html/dsps__wind__blackman_8h_source.html new file mode 100644 index 0000000..8342e54 --- /dev/null +++ b/docs/html/dsps__wind__blackman_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _dsps_wind_blackman_H_
+
17#define _dsps_wind_blackman_H_
+
18
+
19#ifdef __cplusplus
+
20extern "C"
+
21{
+
22#endif
+
23
+
33void dsps_wind_blackman_f32(float *window, int len);
+
34
+
35#ifdef __cplusplus
+
36}
+
37#endif
+
38#endif // _dsps_wind_blackman_H_
+
void dsps_wind_blackman_f32(float *window, int len)
Blackman window.
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__blackman__f32_8c.html b/docs/html/dsps__wind__blackman__f32_8c.html new file mode 100644 index 0000000..c388efd --- /dev/null +++ b/docs/html/dsps__wind__blackman__f32_8c.html @@ -0,0 +1,203 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_f32.c File Reference
+
+
+
#include "dsps_wind_blackman.h"
+#include <math.h>
+
+Include dependency graph for dsps_wind_blackman_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define _USE_MATH_DEFINES
+ + + +

+Functions

void dsps_wind_blackman_f32 (float *window, int len)
 Blackman window.
+

Macro Definition Documentation

+ +

◆ _USE_MATH_DEFINES

+ +
+
+ + + + +
#define _USE_MATH_DEFINES
+
+ +

Definition at line 15 of file dsps_wind_blackman_f32.c.

+ +
+
+

Function Documentation

+ +

◆ dsps_wind_blackman_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_blackman_f32 (float * window,
int len )
+
+ +

Blackman window.

+

The function generates Blackman window for plpha = 0.16.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_blackman_f32.c.

+
20{
+
21 const float a0 = 0.42;
+
22 const float a1 = 0.5;
+
23 const float a2 = 0.08;
+
24
+
25 float len_mult = 1 / (float)(len - 1);
+
26 for (int i = 0; i < len; i++) {
+
27 window[i] = a0 - a1 * cosf(i * 2 * M_PI * len_mult) + a2 * cosf(i * 4 * M_PI * len_mult);
+
28 }
+
29}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__blackman__f32_8c.js b/docs/html/dsps__wind__blackman__f32_8c.js new file mode 100644 index 0000000..daf4494 --- /dev/null +++ b/docs/html/dsps__wind__blackman__f32_8c.js @@ -0,0 +1,5 @@ +var dsps__wind__blackman__f32_8c = +[ + [ "_USE_MATH_DEFINES", "dsps__wind__blackman__f32_8c.html#a525335710b53cb064ca56b936120431e", null ], + [ "dsps_wind_blackman_f32", "dsps__wind__blackman__f32_8c.html#aae977d9a881b534919830d5d8e0bda02", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__f32_8c__incl.md5 b/docs/html/dsps__wind__blackman__f32_8c__incl.md5 new file mode 100644 index 0000000..46fbdb2 --- /dev/null +++ b/docs/html/dsps__wind__blackman__f32_8c__incl.md5 @@ -0,0 +1 @@ +5247b28fc4943404c15af4de8a98b072 \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__f32_8c__incl.svg b/docs/html/dsps__wind__blackman__f32_8c__incl.svg new file mode 100644 index 0000000..bd7571a --- /dev/null +++ b/docs/html/dsps__wind__blackman__f32_8c__incl.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +dsps_wind_blackman_f32.c + + +Node1 + + +dsps_wind_blackman +_f32.c + + + + + +Node2 + + +dsps_wind_blackman.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__f32_8c__incl_org.svg b/docs/html/dsps__wind__blackman__f32_8c__incl_org.svg new file mode 100644 index 0000000..5c15133 --- /dev/null +++ b/docs/html/dsps__wind__blackman__f32_8c__incl_org.svg @@ -0,0 +1,58 @@ + + + + + + +dsps_wind_blackman_f32.c + + +Node1 + + +dsps_wind_blackman +_f32.c + + + + + +Node2 + + +dsps_wind_blackman.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph.md5 b/docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph.md5 new file mode 100644 index 0000000..d55adb7 --- /dev/null +++ b/docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph.md5 @@ -0,0 +1 @@ +8bb7bbaeba7e483155b65e01b4dabf81 \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph.svg b/docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph.svg new file mode 100644 index 0000000..0daf005 --- /dev/null +++ b/docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_wind_blackman_f32 + + +Node1 + + +dsps_wind_blackman_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph_org.svg b/docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph_org.svg new file mode 100644 index 0000000..c8e1eb5 --- /dev/null +++ b/docs/html/dsps__wind__blackman__f32_8c_aae977d9a881b534919830d5d8e0bda02_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_wind_blackman_f32 + + +Node1 + + +dsps_wind_blackman_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__f32_8c_source.html b/docs/html/dsps__wind__blackman__f32_8c_source.html new file mode 100644 index 0000000..8116caa --- /dev/null +++ b/docs/html/dsps__wind__blackman__f32_8c_source.html @@ -0,0 +1,140 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#define _USE_MATH_DEFINES
+
16#include "dsps_wind_blackman.h"
+
17#include <math.h>
+
18
+
+
19void dsps_wind_blackman_f32(float *window, int len)
+
20{
+
21 const float a0 = 0.42;
+
22 const float a1 = 0.5;
+
23 const float a2 = 0.08;
+
24
+
25 float len_mult = 1 / (float)(len - 1);
+
26 for (int i = 0; i < len; i++) {
+
27 window[i] = a0 - a1 * cosf(i * 2 * M_PI * len_mult) + a2 * cosf(i * 4 * M_PI * len_mult);
+
28 }
+
29}
+
+ +
void dsps_wind_blackman_f32(float *window, int len)
Blackman window.
+
#define M_PI
Definition esp_err.h:26
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__blackman__harris_8h.html b/docs/html/dsps__wind__blackman__harris_8h.html new file mode 100644 index 0000000..27f16f8 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris_8h.html @@ -0,0 +1,184 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_harris.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_harris.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

void dsps_wind_blackman_harris_f32 (float *window, int len)
 Blackman-Harris window.
+

Function Documentation

+ +

◆ dsps_wind_blackman_harris_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_blackman_harris_f32 (float * window,
int len )
+
+ +

Blackman-Harris window.

+

The function generates Blackman-Harris window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_blackman_harris_f32.c.

+
20{
+
21 const float a0 = 0.35875;
+
22 const float a1 = 0.48829;
+
23 const float a2 = 0.14128;
+
24 const float a3 = 0.01168;
+
25
+
26 float len_mult = 1 / (float)(len - 1);
+
27 for (int i = 0; i < len; i++) {
+
28 window[i] = a0
+
29 - a1 * cosf(i * 2 * M_PI * len_mult)
+
30 + a2 * cosf(i * 4 * M_PI * len_mult)
+
31 - a3 * cosf(i * 6 * M_PI * len_mult);
+
32 }
+
33}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main(), microphone_read_task(), and microphone_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__blackman__harris_8h.js b/docs/html/dsps__wind__blackman__harris_8h.js new file mode 100644 index 0000000..07e9637 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris_8h.js @@ -0,0 +1,4 @@ +var dsps__wind__blackman__harris_8h = +[ + [ "dsps_wind_blackman_harris_f32", "dsps__wind__blackman__harris_8h.html#a67ada8e312889fc1d56298b2122a2f06", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__harris_8h__dep__incl.md5 b/docs/html/dsps__wind__blackman__harris_8h__dep__incl.md5 new file mode 100644 index 0000000..eba2c9c --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris_8h__dep__incl.md5 @@ -0,0 +1 @@ +dbd2745fb146d28e1b9de7577d4b623d \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__harris_8h__dep__incl.svg b/docs/html/dsps__wind__blackman__harris_8h__dep__incl.svg new file mode 100644 index 0000000..44fe020 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris_8h__dep__incl.svg @@ -0,0 +1,592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_wind_blackman_harris.h + + +Node1 + + +dsps_wind_blackman +_harris.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_blackman +_harris_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__harris_8h__dep__incl_org.svg b/docs/html/dsps__wind__blackman__harris_8h__dep__incl_org.svg new file mode 100644 index 0000000..0af04b1 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris_8h__dep__incl_org.svg @@ -0,0 +1,509 @@ + + + + + + +dsps_wind_blackman_harris.h + + +Node1 + + +dsps_wind_blackman +_harris.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_blackman +_harris_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph.md5 b/docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph.md5 new file mode 100644 index 0000000..8c905ba --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph.md5 @@ -0,0 +1 @@ +a9d3f243aa78789fe7b51560af4dc82c \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph.svg b/docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph.svg new file mode 100644 index 0000000..7ba2258 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + +dsps_wind_blackman_harris_f32 + + +Node1 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph_org.svg b/docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph_org.svg new file mode 100644 index 0000000..2ebcd94 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris_8h_a67ada8e312889fc1d56298b2122a2f06_icgraph_org.svg @@ -0,0 +1,94 @@ + + + + + + +dsps_wind_blackman_harris_f32 + + +Node1 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__harris_8h_source.html b/docs/html/dsps__wind__blackman__harris_8h_source.html new file mode 100644 index 0000000..4a7bb81 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_harris.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_harris.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _dsps_wind_blackman_harris_H_
+
17#define _dsps_wind_blackman_harris_H_
+
18
+
19#ifdef __cplusplus
+
20extern "C"
+
21{
+
22#endif
+
23
+
33void dsps_wind_blackman_harris_f32(float *window, int len);
+
34
+
35#ifdef __cplusplus
+
36}
+
37#endif
+
38#endif // _dsps_wind_blackman_harris_H_
+
void dsps_wind_blackman_harris_f32(float *window, int len)
Blackman-Harris window.
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__blackman__harris__f32_8c.html b/docs/html/dsps__wind__blackman__harris__f32_8c.html new file mode 100644 index 0000000..866b873 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris__f32_8c.html @@ -0,0 +1,207 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_harris_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_harris_f32.c File Reference
+
+
+
#include "dsps_wind_blackman_harris.h"
+#include <math.h>
+
+Include dependency graph for dsps_wind_blackman_harris_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define _USE_MATH_DEFINES
+ + + +

+Functions

void dsps_wind_blackman_harris_f32 (float *window, int len)
 Blackman-Harris window.
+

Macro Definition Documentation

+ +

◆ _USE_MATH_DEFINES

+ +
+
+ + + + +
#define _USE_MATH_DEFINES
+
+ +

Definition at line 15 of file dsps_wind_blackman_harris_f32.c.

+ +
+
+

Function Documentation

+ +

◆ dsps_wind_blackman_harris_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_blackman_harris_f32 (float * window,
int len )
+
+ +

Blackman-Harris window.

+

The function generates Blackman-Harris window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_blackman_harris_f32.c.

+
20{
+
21 const float a0 = 0.35875;
+
22 const float a1 = 0.48829;
+
23 const float a2 = 0.14128;
+
24 const float a3 = 0.01168;
+
25
+
26 float len_mult = 1 / (float)(len - 1);
+
27 for (int i = 0; i < len; i++) {
+
28 window[i] = a0
+
29 - a1 * cosf(i * 2 * M_PI * len_mult)
+
30 + a2 * cosf(i * 4 * M_PI * len_mult)
+
31 - a3 * cosf(i * 6 * M_PI * len_mult);
+
32 }
+
33}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main(), microphone_read_task(), and microphone_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__blackman__harris__f32_8c.js b/docs/html/dsps__wind__blackman__harris__f32_8c.js new file mode 100644 index 0000000..43755be --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris__f32_8c.js @@ -0,0 +1,5 @@ +var dsps__wind__blackman__harris__f32_8c = +[ + [ "_USE_MATH_DEFINES", "dsps__wind__blackman__harris__f32_8c.html#a525335710b53cb064ca56b936120431e", null ], + [ "dsps_wind_blackman_harris_f32", "dsps__wind__blackman__harris__f32_8c.html#a67ada8e312889fc1d56298b2122a2f06", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__harris__f32_8c__incl.md5 b/docs/html/dsps__wind__blackman__harris__f32_8c__incl.md5 new file mode 100644 index 0000000..60b6e90 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris__f32_8c__incl.md5 @@ -0,0 +1 @@ +7ce56445caa3a3113dad7c15dbd678fd \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__harris__f32_8c__incl.svg b/docs/html/dsps__wind__blackman__harris__f32_8c__incl.svg new file mode 100644 index 0000000..768baa6 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris__f32_8c__incl.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + +dsps_wind_blackman_harris_f32.c + + +Node1 + + +dsps_wind_blackman +_harris_f32.c + + + + + +Node2 + + +dsps_wind_blackman +_harris.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__harris__f32_8c__incl_org.svg b/docs/html/dsps__wind__blackman__harris__f32_8c__incl_org.svg new file mode 100644 index 0000000..019f70d --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris__f32_8c__incl_org.svg @@ -0,0 +1,59 @@ + + + + + + +dsps_wind_blackman_harris_f32.c + + +Node1 + + +dsps_wind_blackman +_harris_f32.c + + + + + +Node2 + + +dsps_wind_blackman +_harris.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph.md5 b/docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph.md5 new file mode 100644 index 0000000..8c905ba --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph.md5 @@ -0,0 +1 @@ +a9d3f243aa78789fe7b51560af4dc82c \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph.svg b/docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph.svg new file mode 100644 index 0000000..7ba2258 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + +dsps_wind_blackman_harris_f32 + + +Node1 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph_org.svg b/docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph_org.svg new file mode 100644 index 0000000..2ebcd94 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris__f32_8c_a67ada8e312889fc1d56298b2122a2f06_icgraph_org.svg @@ -0,0 +1,94 @@ + + + + + + +dsps_wind_blackman_harris_f32 + + +Node1 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +microphone_read_task + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +microphone_read_task + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__harris__f32_8c_source.html b/docs/html/dsps__wind__blackman__harris__f32_8c_source.html new file mode 100644 index 0000000..c60fca6 --- /dev/null +++ b/docs/html/dsps__wind__blackman__harris__f32_8c_source.html @@ -0,0 +1,144 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_harris_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_harris_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#define _USE_MATH_DEFINES
+ +
17#include <math.h>
+
18
+
+
19void dsps_wind_blackman_harris_f32(float *window, int len)
+
20{
+
21 const float a0 = 0.35875;
+
22 const float a1 = 0.48829;
+
23 const float a2 = 0.14128;
+
24 const float a3 = 0.01168;
+
25
+
26 float len_mult = 1 / (float)(len - 1);
+
27 for (int i = 0; i < len; i++) {
+
28 window[i] = a0
+
29 - a1 * cosf(i * 2 * M_PI * len_mult)
+
30 + a2 * cosf(i * 4 * M_PI * len_mult)
+
31 - a3 * cosf(i * 6 * M_PI * len_mult);
+
32 }
+
33}
+
+ +
void dsps_wind_blackman_harris_f32(float *window, int len)
Blackman-Harris window.
+
#define M_PI
Definition esp_err.h:26
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__blackman__nuttall_8h.html b/docs/html/dsps__wind__blackman__nuttall_8h.html new file mode 100644 index 0000000..bd0a3b0 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall_8h.html @@ -0,0 +1,184 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_nuttall.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_nuttall.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

void dsps_wind_blackman_nuttall_f32 (float *window, int len)
 Blackman-Nuttall window.
+

Function Documentation

+ +

◆ dsps_wind_blackman_nuttall_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_blackman_nuttall_f32 (float * window,
int len )
+
+ +

Blackman-Nuttall window.

+

The function generates Blackman-Nuttall window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_blackman_nuttall_f32.c.

+
20{
+
21 const float a0 = 0.3635819;
+
22 const float a1 = 0.4891775;
+
23 const float a2 = 0.1365995;
+
24 const float a3 = 0.0106411;
+
25
+
26 float len_mult = 1 / (float)(len - 1);
+
27 for (int i = 0; i < len; i++) {
+
28 window[i] = a0
+
29 - a1 * cosf(i * 2 * M_PI * len_mult)
+
30 + a2 * cosf(i * 4 * M_PI * len_mult)
+
31 - a3 * cosf(i * 6 * M_PI * len_mult);
+
32 }
+
33}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__blackman__nuttall_8h.js b/docs/html/dsps__wind__blackman__nuttall_8h.js new file mode 100644 index 0000000..b0197d4 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall_8h.js @@ -0,0 +1,4 @@ +var dsps__wind__blackman__nuttall_8h = +[ + [ "dsps_wind_blackman_nuttall_f32", "dsps__wind__blackman__nuttall_8h.html#ac52bcf2c0fc9f73fb8bf735290e7d413", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__nuttall_8h__dep__incl.md5 b/docs/html/dsps__wind__blackman__nuttall_8h__dep__incl.md5 new file mode 100644 index 0000000..e57d944 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall_8h__dep__incl.md5 @@ -0,0 +1 @@ +0a64e6108708f13ae74324d370f12bd4 \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__nuttall_8h__dep__incl.svg b/docs/html/dsps__wind__blackman__nuttall_8h__dep__incl.svg new file mode 100644 index 0000000..f482531 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall_8h__dep__incl.svg @@ -0,0 +1,592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_wind_blackman_nuttall.h + + +Node1 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_blackman +_nuttall_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__nuttall_8h__dep__incl_org.svg b/docs/html/dsps__wind__blackman__nuttall_8h__dep__incl_org.svg new file mode 100644 index 0000000..17c91e5 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall_8h__dep__incl_org.svg @@ -0,0 +1,509 @@ + + + + + + +dsps_wind_blackman_nuttall.h + + +Node1 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_blackman +_nuttall_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 b/docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 new file mode 100644 index 0000000..7b67534 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 @@ -0,0 +1 @@ +8f9bc0c0d76b1f4e45168f19d073094a \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg b/docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg new file mode 100644 index 0000000..c546fe3 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_wind_blackman_nuttall_f32 + + +Node1 + + +dsps_wind_blackman +_nuttall_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph_org.svg b/docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph_org.svg new file mode 100644 index 0000000..5a1137d --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall_8h_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_wind_blackman_nuttall_f32 + + +Node1 + + +dsps_wind_blackman +_nuttall_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__nuttall_8h_source.html b/docs/html/dsps__wind__blackman__nuttall_8h_source.html new file mode 100644 index 0000000..2fbbd87 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_nuttall.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_nuttall.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _dsps_wind_blackman_nuttall_H_
+
17#define _dsps_wind_blackman_nuttall_H_
+
18
+
19#ifdef __cplusplus
+
20extern "C"
+
21{
+
22#endif
+
23
+
33void dsps_wind_blackman_nuttall_f32(float *window, int len);
+
34
+
35#ifdef __cplusplus
+
36}
+
37#endif
+
38#endif // _dsps_wind_blackman_nuttall_H_
+
void dsps_wind_blackman_nuttall_f32(float *window, int len)
Blackman-Nuttall window.
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__blackman__nuttall__f32_8c.html b/docs/html/dsps__wind__blackman__nuttall__f32_8c.html new file mode 100644 index 0000000..5840933 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall__f32_8c.html @@ -0,0 +1,207 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_nuttall_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_nuttall_f32.c File Reference
+
+
+
#include "dsps_wind_blackman_nuttall.h"
+#include <math.h>
+
+Include dependency graph for dsps_wind_blackman_nuttall_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define _USE_MATH_DEFINES
+ + + +

+Functions

void dsps_wind_blackman_nuttall_f32 (float *window, int len)
 Blackman-Nuttall window.
+

Macro Definition Documentation

+ +

◆ _USE_MATH_DEFINES

+ +
+
+ + + + +
#define _USE_MATH_DEFINES
+
+ +

Definition at line 15 of file dsps_wind_blackman_nuttall_f32.c.

+ +
+
+

Function Documentation

+ +

◆ dsps_wind_blackman_nuttall_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_blackman_nuttall_f32 (float * window,
int len )
+
+ +

Blackman-Nuttall window.

+

The function generates Blackman-Nuttall window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_blackman_nuttall_f32.c.

+
20{
+
21 const float a0 = 0.3635819;
+
22 const float a1 = 0.4891775;
+
23 const float a2 = 0.1365995;
+
24 const float a3 = 0.0106411;
+
25
+
26 float len_mult = 1 / (float)(len - 1);
+
27 for (int i = 0; i < len; i++) {
+
28 window[i] = a0
+
29 - a1 * cosf(i * 2 * M_PI * len_mult)
+
30 + a2 * cosf(i * 4 * M_PI * len_mult)
+
31 - a3 * cosf(i * 6 * M_PI * len_mult);
+
32 }
+
33}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__blackman__nuttall__f32_8c.js b/docs/html/dsps__wind__blackman__nuttall__f32_8c.js new file mode 100644 index 0000000..9236bbd --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall__f32_8c.js @@ -0,0 +1,5 @@ +var dsps__wind__blackman__nuttall__f32_8c = +[ + [ "_USE_MATH_DEFINES", "dsps__wind__blackman__nuttall__f32_8c.html#a525335710b53cb064ca56b936120431e", null ], + [ "dsps_wind_blackman_nuttall_f32", "dsps__wind__blackman__nuttall__f32_8c.html#ac52bcf2c0fc9f73fb8bf735290e7d413", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__nuttall__f32_8c__incl.md5 b/docs/html/dsps__wind__blackman__nuttall__f32_8c__incl.md5 new file mode 100644 index 0000000..0d4da2c --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall__f32_8c__incl.md5 @@ -0,0 +1 @@ +18f0c751ac21f0d45fe0c9b0fe759b31 \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__nuttall__f32_8c__incl.svg b/docs/html/dsps__wind__blackman__nuttall__f32_8c__incl.svg new file mode 100644 index 0000000..ad81cfa --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall__f32_8c__incl.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + +dsps_wind_blackman_nuttall_f32.c + + +Node1 + + +dsps_wind_blackman +_nuttall_f32.c + + + + + +Node2 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__nuttall__f32_8c__incl_org.svg b/docs/html/dsps__wind__blackman__nuttall__f32_8c__incl_org.svg new file mode 100644 index 0000000..c890bfb --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall__f32_8c__incl_org.svg @@ -0,0 +1,59 @@ + + + + + + +dsps_wind_blackman_nuttall_f32.c + + +Node1 + + +dsps_wind_blackman +_nuttall_f32.c + + + + + +Node2 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 b/docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 new file mode 100644 index 0000000..7b67534 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.md5 @@ -0,0 +1 @@ +8f9bc0c0d76b1f4e45168f19d073094a \ No newline at end of file diff --git a/docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg b/docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg new file mode 100644 index 0000000..c546fe3 --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +dsps_wind_blackman_nuttall_f32 + + +Node1 + + +dsps_wind_blackman +_nuttall_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph_org.svg b/docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph_org.svg new file mode 100644 index 0000000..5a1137d --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall__f32_8c_ac52bcf2c0fc9f73fb8bf735290e7d413_icgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +dsps_wind_blackman_nuttall_f32 + + +Node1 + + +dsps_wind_blackman +_nuttall_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__blackman__nuttall__f32_8c_source.html b/docs/html/dsps__wind__blackman__nuttall__f32_8c_source.html new file mode 100644 index 0000000..271602b --- /dev/null +++ b/docs/html/dsps__wind__blackman__nuttall__f32_8c_source.html @@ -0,0 +1,144 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_blackman_nuttall_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_blackman_nuttall_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#define _USE_MATH_DEFINES
+ +
17#include <math.h>
+
18
+
+
19void dsps_wind_blackman_nuttall_f32(float *window, int len)
+
20{
+
21 const float a0 = 0.3635819;
+
22 const float a1 = 0.4891775;
+
23 const float a2 = 0.1365995;
+
24 const float a3 = 0.0106411;
+
25
+
26 float len_mult = 1 / (float)(len - 1);
+
27 for (int i = 0; i < len; i++) {
+
28 window[i] = a0
+
29 - a1 * cosf(i * 2 * M_PI * len_mult)
+
30 + a2 * cosf(i * 4 * M_PI * len_mult)
+
31 - a3 * cosf(i * 6 * M_PI * len_mult);
+
32 }
+
33}
+
+ +
void dsps_wind_blackman_nuttall_f32(float *window, int len)
Blackman-Nuttall window.
+
#define M_PI
Definition esp_err.h:26
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__flat__top_8h.html b/docs/html/dsps__wind__flat__top_8h.html new file mode 100644 index 0000000..66becb0 --- /dev/null +++ b/docs/html/dsps__wind__flat__top_8h.html @@ -0,0 +1,186 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_flat_top.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_flat_top.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

void dsps_wind_flat_top_f32 (float *window, int len)
 Flat-Top window.
+

Function Documentation

+ +

◆ dsps_wind_flat_top_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_flat_top_f32 (float * window,
int len )
+
+ +

Flat-Top window.

+

The function generates Flat-Top window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_flat_top_f32.c.

+
20{
+
21 const float a0 = 0.21557895;
+
22 const float a1 = 0.41663158;
+
23 const float a2 = 0.277263158;
+
24 const float a3 = 0.083578947;
+
25 const float a4 = 0.006947368;
+
26
+
27 float len_mult = 1 / (float)(len - 1);
+
28 for (int i = 0; i < len; i++) {
+
29 window[i] = a0
+
30 - a1 * cosf(i * 2 * M_PI * len_mult)
+
31 + a2 * cosf(i * 4 * M_PI * len_mult)
+
32 - a3 * cosf(i * 6 * M_PI * len_mult)
+
33 + a4 * cosf(i * 8 * M_PI * len_mult);
+
34 }
+
35}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__flat__top_8h.js b/docs/html/dsps__wind__flat__top_8h.js new file mode 100644 index 0000000..4c6e4f0 --- /dev/null +++ b/docs/html/dsps__wind__flat__top_8h.js @@ -0,0 +1,4 @@ +var dsps__wind__flat__top_8h = +[ + [ "dsps_wind_flat_top_f32", "dsps__wind__flat__top_8h.html#adf27b982b0f3e7d8c769f785afa4f8fd", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__flat__top_8h__dep__incl.md5 b/docs/html/dsps__wind__flat__top_8h__dep__incl.md5 new file mode 100644 index 0000000..780b47c --- /dev/null +++ b/docs/html/dsps__wind__flat__top_8h__dep__incl.md5 @@ -0,0 +1 @@ +1c81a06c6be5c246f78601b9420804ce \ No newline at end of file diff --git a/docs/html/dsps__wind__flat__top_8h__dep__incl.svg b/docs/html/dsps__wind__flat__top_8h__dep__incl.svg new file mode 100644 index 0000000..a0dc1ab --- /dev/null +++ b/docs/html/dsps__wind__flat__top_8h__dep__incl.svg @@ -0,0 +1,591 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_wind_flat_top.h + + +Node1 + + +dsps_wind_flat_top.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_flat_top +_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__flat__top_8h__dep__incl_org.svg b/docs/html/dsps__wind__flat__top_8h__dep__incl_org.svg new file mode 100644 index 0000000..d34f91a --- /dev/null +++ b/docs/html/dsps__wind__flat__top_8h__dep__incl_org.svg @@ -0,0 +1,508 @@ + + + + + + +dsps_wind_flat_top.h + + +Node1 + + +dsps_wind_flat_top.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_flat_top +_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 b/docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 new file mode 100644 index 0000000..f158352 --- /dev/null +++ b/docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 @@ -0,0 +1 @@ +fe0de26354737bb0cb7d64e5dc084f27 \ No newline at end of file diff --git a/docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg b/docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg new file mode 100644 index 0000000..3374253 --- /dev/null +++ b/docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_wind_flat_top_f32 + + +Node1 + + +dsps_wind_flat_top_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph_org.svg b/docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph_org.svg new file mode 100644 index 0000000..16937d2 --- /dev/null +++ b/docs/html/dsps__wind__flat__top_8h_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_wind_flat_top_f32 + + +Node1 + + +dsps_wind_flat_top_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__flat__top_8h_source.html b/docs/html/dsps__wind__flat__top_8h_source.html new file mode 100644 index 0000000..654cb64 --- /dev/null +++ b/docs/html/dsps__wind__flat__top_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_flat_top.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_flat_top.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _dsps_wind_flat_top_H_
+
17#define _dsps_wind_flat_top_H_
+
18
+
19#ifdef __cplusplus
+
20extern "C"
+
21{
+
22#endif
+
23
+
33void dsps_wind_flat_top_f32(float *window, int len);
+
34
+
35#ifdef __cplusplus
+
36}
+
37#endif
+
38#endif // _dsps_wind_flat_top_H_
+
void dsps_wind_flat_top_f32(float *window, int len)
Flat-Top window.
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__flat__top__f32_8c.html b/docs/html/dsps__wind__flat__top__f32_8c.html new file mode 100644 index 0000000..b7a2747 --- /dev/null +++ b/docs/html/dsps__wind__flat__top__f32_8c.html @@ -0,0 +1,209 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_flat_top_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_flat_top_f32.c File Reference
+
+
+
#include "dsps_wind_flat_top.h"
+#include <math.h>
+
+Include dependency graph for dsps_wind_flat_top_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define _USE_MATH_DEFINES
+ + + +

+Functions

void dsps_wind_flat_top_f32 (float *window, int len)
 Flat-Top window.
+

Macro Definition Documentation

+ +

◆ _USE_MATH_DEFINES

+ +
+
+ + + + +
#define _USE_MATH_DEFINES
+
+ +

Definition at line 15 of file dsps_wind_flat_top_f32.c.

+ +
+
+

Function Documentation

+ +

◆ dsps_wind_flat_top_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_flat_top_f32 (float * window,
int len )
+
+ +

Flat-Top window.

+

The function generates Flat-Top window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_flat_top_f32.c.

+
20{
+
21 const float a0 = 0.21557895;
+
22 const float a1 = 0.41663158;
+
23 const float a2 = 0.277263158;
+
24 const float a3 = 0.083578947;
+
25 const float a4 = 0.006947368;
+
26
+
27 float len_mult = 1 / (float)(len - 1);
+
28 for (int i = 0; i < len; i++) {
+
29 window[i] = a0
+
30 - a1 * cosf(i * 2 * M_PI * len_mult)
+
31 + a2 * cosf(i * 4 * M_PI * len_mult)
+
32 - a3 * cosf(i * 6 * M_PI * len_mult)
+
33 + a4 * cosf(i * 8 * M_PI * len_mult);
+
34 }
+
35}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__flat__top__f32_8c.js b/docs/html/dsps__wind__flat__top__f32_8c.js new file mode 100644 index 0000000..c5a70a6 --- /dev/null +++ b/docs/html/dsps__wind__flat__top__f32_8c.js @@ -0,0 +1,5 @@ +var dsps__wind__flat__top__f32_8c = +[ + [ "_USE_MATH_DEFINES", "dsps__wind__flat__top__f32_8c.html#a525335710b53cb064ca56b936120431e", null ], + [ "dsps_wind_flat_top_f32", "dsps__wind__flat__top__f32_8c.html#adf27b982b0f3e7d8c769f785afa4f8fd", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__flat__top__f32_8c__incl.md5 b/docs/html/dsps__wind__flat__top__f32_8c__incl.md5 new file mode 100644 index 0000000..2f6634c --- /dev/null +++ b/docs/html/dsps__wind__flat__top__f32_8c__incl.md5 @@ -0,0 +1 @@ +49a2bbd48eaf7095e731a97102650ed0 \ No newline at end of file diff --git a/docs/html/dsps__wind__flat__top__f32_8c__incl.svg b/docs/html/dsps__wind__flat__top__f32_8c__incl.svg new file mode 100644 index 0000000..c579e03 --- /dev/null +++ b/docs/html/dsps__wind__flat__top__f32_8c__incl.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +dsps_wind_flat_top_f32.c + + +Node1 + + +dsps_wind_flat_top +_f32.c + + + + + +Node2 + + +dsps_wind_flat_top.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__flat__top__f32_8c__incl_org.svg b/docs/html/dsps__wind__flat__top__f32_8c__incl_org.svg new file mode 100644 index 0000000..2b7328d --- /dev/null +++ b/docs/html/dsps__wind__flat__top__f32_8c__incl_org.svg @@ -0,0 +1,58 @@ + + + + + + +dsps_wind_flat_top_f32.c + + +Node1 + + +dsps_wind_flat_top +_f32.c + + + + + +Node2 + + +dsps_wind_flat_top.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 b/docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 new file mode 100644 index 0000000..f158352 --- /dev/null +++ b/docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.md5 @@ -0,0 +1 @@ +fe0de26354737bb0cb7d64e5dc084f27 \ No newline at end of file diff --git a/docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg b/docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg new file mode 100644 index 0000000..3374253 --- /dev/null +++ b/docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_wind_flat_top_f32 + + +Node1 + + +dsps_wind_flat_top_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph_org.svg b/docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph_org.svg new file mode 100644 index 0000000..16937d2 --- /dev/null +++ b/docs/html/dsps__wind__flat__top__f32_8c_adf27b982b0f3e7d8c769f785afa4f8fd_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_wind_flat_top_f32 + + +Node1 + + +dsps_wind_flat_top_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__flat__top__f32_8c_source.html b/docs/html/dsps__wind__flat__top__f32_8c_source.html new file mode 100644 index 0000000..72dc23d --- /dev/null +++ b/docs/html/dsps__wind__flat__top__f32_8c_source.html @@ -0,0 +1,146 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_flat_top_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_flat_top_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#define _USE_MATH_DEFINES
+
16#include "dsps_wind_flat_top.h"
+
17#include <math.h>
+
18
+
+
19void dsps_wind_flat_top_f32(float *window, int len)
+
20{
+
21 const float a0 = 0.21557895;
+
22 const float a1 = 0.41663158;
+
23 const float a2 = 0.277263158;
+
24 const float a3 = 0.083578947;
+
25 const float a4 = 0.006947368;
+
26
+
27 float len_mult = 1 / (float)(len - 1);
+
28 for (int i = 0; i < len; i++) {
+
29 window[i] = a0
+
30 - a1 * cosf(i * 2 * M_PI * len_mult)
+
31 + a2 * cosf(i * 4 * M_PI * len_mult)
+
32 - a3 * cosf(i * 6 * M_PI * len_mult)
+
33 + a4 * cosf(i * 8 * M_PI * len_mult);
+
34 }
+
35}
+
+ +
void dsps_wind_flat_top_f32(float *window, int len)
Flat-Top window.
+
#define M_PI
Definition esp_err.h:26
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__hann_8h.html b/docs/html/dsps__wind__hann_8h.html new file mode 100644 index 0000000..0591fbd --- /dev/null +++ b/docs/html/dsps__wind__hann_8h.html @@ -0,0 +1,176 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_hann.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_hann.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

void dsps_wind_hann_f32 (float *window, int len)
 Hann window.
+

Function Documentation

+ +

◆ dsps_wind_hann_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_hann_f32 (float * window,
int len )
+
+ +

Hann window.

+

The function generates Hann window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_hann_f32.c.

+
20{
+
21 float len_mult = 1 / (float)(len - 1);
+
22 for (int i = 0; i < len; i++) {
+
23 window[i] = 0.5 * (1 - cosf(i * 2 * M_PI * len_mult));
+
24 }
+
25}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__hann_8h.js b/docs/html/dsps__wind__hann_8h.js new file mode 100644 index 0000000..4a2f028 --- /dev/null +++ b/docs/html/dsps__wind__hann_8h.js @@ -0,0 +1,4 @@ +var dsps__wind__hann_8h = +[ + [ "dsps_wind_hann_f32", "dsps__wind__hann_8h.html#af6050093a1b25a3349353a381704fa51", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__hann_8h__dep__incl.md5 b/docs/html/dsps__wind__hann_8h__dep__incl.md5 new file mode 100644 index 0000000..683e6d6 --- /dev/null +++ b/docs/html/dsps__wind__hann_8h__dep__incl.md5 @@ -0,0 +1 @@ +c007bb99b9ec53cda286f2112da8808b \ No newline at end of file diff --git a/docs/html/dsps__wind__hann_8h__dep__incl.svg b/docs/html/dsps__wind__hann_8h__dep__incl.svg new file mode 100644 index 0000000..124e70e --- /dev/null +++ b/docs/html/dsps__wind__hann_8h__dep__incl.svg @@ -0,0 +1,590 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_wind_hann.h + + +Node1 + + +dsps_wind_hann.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_hann_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__hann_8h__dep__incl_org.svg b/docs/html/dsps__wind__hann_8h__dep__incl_org.svg new file mode 100644 index 0000000..648daa1 --- /dev/null +++ b/docs/html/dsps__wind__hann_8h__dep__incl_org.svg @@ -0,0 +1,507 @@ + + + + + + +dsps_wind_hann.h + + +Node1 + + +dsps_wind_hann.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_hann_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph.md5 b/docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph.md5 new file mode 100644 index 0000000..cfb2e2b --- /dev/null +++ b/docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph.md5 @@ -0,0 +1 @@ +159350baf8b83a6e7e1f555963ac4a62 \ No newline at end of file diff --git a/docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph.svg b/docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph.svg new file mode 100644 index 0000000..18ff104 --- /dev/null +++ b/docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_wind_hann_f32 + + +Node1 + + +dsps_wind_hann_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph_org.svg b/docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph_org.svg new file mode 100644 index 0000000..72f28c3 --- /dev/null +++ b/docs/html/dsps__wind__hann_8h_af6050093a1b25a3349353a381704fa51_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_wind_hann_f32 + + +Node1 + + +dsps_wind_hann_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__hann_8h_source.html b/docs/html/dsps__wind__hann_8h_source.html new file mode 100644 index 0000000..b4f2ba4 --- /dev/null +++ b/docs/html/dsps__wind__hann_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_hann.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_hann.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _dsps_wind_hann_H_
+
17#define _dsps_wind_hann_H_
+
18
+
19#ifdef __cplusplus
+
20extern "C"
+
21{
+
22#endif
+
23
+
33void dsps_wind_hann_f32(float *window, int len);
+
34
+
35#ifdef __cplusplus
+
36}
+
37#endif
+
38#endif // _dsps_wind_hann_H_
+
void dsps_wind_hann_f32(float *window, int len)
Hann window.
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__hann__f32_8c.html b/docs/html/dsps__wind__hann__f32_8c.html new file mode 100644 index 0000000..497a98a --- /dev/null +++ b/docs/html/dsps__wind__hann__f32_8c.html @@ -0,0 +1,199 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_hann_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_hann_f32.c File Reference
+
+
+
#include "dsps_wind_hann.h"
+#include <math.h>
+
+Include dependency graph for dsps_wind_hann_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define _USE_MATH_DEFINES
+ + + +

+Functions

void dsps_wind_hann_f32 (float *window, int len)
 Hann window.
+

Macro Definition Documentation

+ +

◆ _USE_MATH_DEFINES

+ +
+
+ + + + +
#define _USE_MATH_DEFINES
+
+ +

Definition at line 15 of file dsps_wind_hann_f32.c.

+ +
+
+

Function Documentation

+ +

◆ dsps_wind_hann_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_hann_f32 (float * window,
int len )
+
+ +

Hann window.

+

The function generates Hann window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_hann_f32.c.

+
20{
+
21 float len_mult = 1 / (float)(len - 1);
+
22 for (int i = 0; i < len; i++) {
+
23 window[i] = 0.5 * (1 - cosf(i * 2 * M_PI * len_mult));
+
24 }
+
25}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__hann__f32_8c.js b/docs/html/dsps__wind__hann__f32_8c.js new file mode 100644 index 0000000..21da950 --- /dev/null +++ b/docs/html/dsps__wind__hann__f32_8c.js @@ -0,0 +1,5 @@ +var dsps__wind__hann__f32_8c = +[ + [ "_USE_MATH_DEFINES", "dsps__wind__hann__f32_8c.html#a525335710b53cb064ca56b936120431e", null ], + [ "dsps_wind_hann_f32", "dsps__wind__hann__f32_8c.html#af6050093a1b25a3349353a381704fa51", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__hann__f32_8c__incl.md5 b/docs/html/dsps__wind__hann__f32_8c__incl.md5 new file mode 100644 index 0000000..d3b4cb8 --- /dev/null +++ b/docs/html/dsps__wind__hann__f32_8c__incl.md5 @@ -0,0 +1 @@ +8cefcb4acbadf0d906d7bbb2b47cebe2 \ No newline at end of file diff --git a/docs/html/dsps__wind__hann__f32_8c__incl.svg b/docs/html/dsps__wind__hann__f32_8c__incl.svg new file mode 100644 index 0000000..a81f86c --- /dev/null +++ b/docs/html/dsps__wind__hann__f32_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_wind_hann_f32.c + + +Node1 + + +dsps_wind_hann_f32.c + + + + + +Node2 + + +dsps_wind_hann.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__hann__f32_8c__incl_org.svg b/docs/html/dsps__wind__hann__f32_8c__incl_org.svg new file mode 100644 index 0000000..9d9f8ad --- /dev/null +++ b/docs/html/dsps__wind__hann__f32_8c__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_wind_hann_f32.c + + +Node1 + + +dsps_wind_hann_f32.c + + + + + +Node2 + + +dsps_wind_hann.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph.md5 b/docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph.md5 new file mode 100644 index 0000000..cfb2e2b --- /dev/null +++ b/docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph.md5 @@ -0,0 +1 @@ +159350baf8b83a6e7e1f555963ac4a62 \ No newline at end of file diff --git a/docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph.svg b/docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph.svg new file mode 100644 index 0000000..18ff104 --- /dev/null +++ b/docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_wind_hann_f32 + + +Node1 + + +dsps_wind_hann_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph_org.svg b/docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph_org.svg new file mode 100644 index 0000000..72f28c3 --- /dev/null +++ b/docs/html/dsps__wind__hann__f32_8c_af6050093a1b25a3349353a381704fa51_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_wind_hann_f32 + + +Node1 + + +dsps_wind_hann_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__hann__f32_8c_source.html b/docs/html/dsps__wind__hann__f32_8c_source.html new file mode 100644 index 0000000..9756181 --- /dev/null +++ b/docs/html/dsps__wind__hann__f32_8c_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_hann_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_hann_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#define _USE_MATH_DEFINES
+
16#include "dsps_wind_hann.h"
+
17#include <math.h>
+
18
+
+
19void dsps_wind_hann_f32(float *window, int len)
+
20{
+
21 float len_mult = 1 / (float)(len - 1);
+
22 for (int i = 0; i < len; i++) {
+
23 window[i] = 0.5 * (1 - cosf(i * 2 * M_PI * len_mult));
+
24 }
+
25}
+
+ +
void dsps_wind_hann_f32(float *window, int len)
Hann window.
+
#define M_PI
Definition esp_err.h:26
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__nuttall_8h.html b/docs/html/dsps__wind__nuttall_8h.html new file mode 100644 index 0000000..ad2181e --- /dev/null +++ b/docs/html/dsps__wind__nuttall_8h.html @@ -0,0 +1,184 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_nuttall.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_nuttall.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Functions

void dsps_wind_nuttall_f32 (float *window, int len)
 Nuttall window.
+

Function Documentation

+ +

◆ dsps_wind_nuttall_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_nuttall_f32 (float * window,
int len )
+
+ +

Nuttall window.

+

The function generates Nuttall window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_nuttall_f32.c.

+
20{
+
21 const float a0 = 0.355768;
+
22 const float a1 = 0.487396;
+
23 const float a2 = 0.144232;
+
24 const float a3 = 0.012604;
+
25
+
26 float len_mult = 1 / (float)(len - 1);
+
27 for (int i = 0; i < len; i++) {
+
28 window[i] = a0
+
29 - a1 * cosf(i * 2 * M_PI * len_mult)
+
30 + a2 * cosf(i * 4 * M_PI * len_mult)
+
31 - a3 * cosf(i * 6 * M_PI * len_mult);
+
32 }
+
33}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__nuttall_8h.js b/docs/html/dsps__wind__nuttall_8h.js new file mode 100644 index 0000000..b3c4fca --- /dev/null +++ b/docs/html/dsps__wind__nuttall_8h.js @@ -0,0 +1,4 @@ +var dsps__wind__nuttall_8h = +[ + [ "dsps_wind_nuttall_f32", "dsps__wind__nuttall_8h.html#a1219c05cd3c666e1b8c4ac96dbd9a3d9", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__nuttall_8h__dep__incl.md5 b/docs/html/dsps__wind__nuttall_8h__dep__incl.md5 new file mode 100644 index 0000000..a19d398 --- /dev/null +++ b/docs/html/dsps__wind__nuttall_8h__dep__incl.md5 @@ -0,0 +1 @@ +cc119a4fa776391d94f8e4d912ca770d \ No newline at end of file diff --git a/docs/html/dsps__wind__nuttall_8h__dep__incl.svg b/docs/html/dsps__wind__nuttall_8h__dep__incl.svg new file mode 100644 index 0000000..b0c8387 --- /dev/null +++ b/docs/html/dsps__wind__nuttall_8h__dep__incl.svg @@ -0,0 +1,590 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsps_wind_nuttall.h + + +Node1 + + +dsps_wind_nuttall.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_nuttall_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__nuttall_8h__dep__incl_org.svg b/docs/html/dsps__wind__nuttall_8h__dep__incl_org.svg new file mode 100644 index 0000000..a4f50a1 --- /dev/null +++ b/docs/html/dsps__wind__nuttall_8h__dep__incl_org.svg @@ -0,0 +1,507 @@ + + + + + + +dsps_wind_nuttall.h + + +Node1 + + +dsps_wind_nuttall.h + + + + + +Node2 + + +dsps_wind.h + + + + + +Node1->Node2 + + + + + + + + +Node37 + + +dsps_wind_nuttall_f32.c + + + + + +Node1->Node37 + + + + + + + + +Node3 + + +esp_dsp.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +3d_graphics_demo.cpp + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +3d_graphics_demo.cpp + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +3d_kalman_demo.cpp + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +3d_kalman_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +audio_amp_main.c + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +audio_amp_main.c + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +dsp_tests.h + + + + + +Node3->Node15 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node3->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node3->Node24 + + + + + + + + +Node26 + + +graphics_support.h + + + + + +Node3->Node26 + + + + + + + + +Node28 + + +init_display.c + + + + + +Node3->Node28 + + + + + + + + +Node29 + + +init_display.c + + + + + +Node3->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node3->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node3->Node31 + + + + + + + + +Node32 + + +kalman_filter_demo.cpp + + + + + +Node3->Node32 + + + + + + + + +Node33 + + +kalman_filter_demo.cpp + + + + + +Node3->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node3->Node34 + + + + + + + + +Node35 + + +main.c + + + + + +Node3->Node35 + + + + + + + + +Node36 + + +main.c + + + + + +Node3->Node36 + + + + + + + + diff --git a/docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 b/docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 new file mode 100644 index 0000000..12df29c --- /dev/null +++ b/docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 @@ -0,0 +1 @@ +4e0bf4abdc48320e81cdb94b94059f25 \ No newline at end of file diff --git a/docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg b/docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg new file mode 100644 index 0000000..862bdd0 --- /dev/null +++ b/docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_wind_nuttall_f32 + + +Node1 + + +dsps_wind_nuttall_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg b/docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg new file mode 100644 index 0000000..fe85eb2 --- /dev/null +++ b/docs/html/dsps__wind__nuttall_8h_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_wind_nuttall_f32 + + +Node1 + + +dsps_wind_nuttall_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__nuttall_8h_source.html b/docs/html/dsps__wind__nuttall_8h_source.html new file mode 100644 index 0000000..e7bc12b --- /dev/null +++ b/docs/html/dsps__wind__nuttall_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_nuttall.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_nuttall.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _dsps_wind_nuttall_H_
+
17#define _dsps_wind_nuttall_H_
+
18
+
19#ifdef __cplusplus
+
20extern "C"
+
21{
+
22#endif
+
23
+
33void dsps_wind_nuttall_f32(float *window, int len);
+
34
+
35#ifdef __cplusplus
+
36}
+
37#endif
+
38#endif // _dsps_wind_nuttall_H_
+
void dsps_wind_nuttall_f32(float *window, int len)
Nuttall window.
+
+
+
+ + + + diff --git a/docs/html/dsps__wind__nuttall__f32_8c.html b/docs/html/dsps__wind__nuttall__f32_8c.html new file mode 100644 index 0000000..a47c074 --- /dev/null +++ b/docs/html/dsps__wind__nuttall__f32_8c.html @@ -0,0 +1,207 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_nuttall_f32.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_nuttall_f32.c File Reference
+
+
+
#include "dsps_wind_nuttall.h"
+#include <math.h>
+
+Include dependency graph for dsps_wind_nuttall_f32.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define _USE_MATH_DEFINES
+ + + +

+Functions

void dsps_wind_nuttall_f32 (float *window, int len)
 Nuttall window.
+

Macro Definition Documentation

+ +

◆ _USE_MATH_DEFINES

+ +
+
+ + + + +
#define _USE_MATH_DEFINES
+
+ +

Definition at line 15 of file dsps_wind_nuttall_f32.c.

+ +
+
+

Function Documentation

+ +

◆ dsps_wind_nuttall_f32()

+ +
+
+ + + + + + + + + + + +
void dsps_wind_nuttall_f32 (float * window,
int len )
+
+ +

Nuttall window.

+

The function generates Nuttall window.

+
Parameters
+ + + +
windowbuffer to store window array.
lenlength of the window array
+
+
+ +

Definition at line 19 of file dsps_wind_nuttall_f32.c.

+
20{
+
21 const float a0 = 0.355768;
+
22 const float a1 = 0.487396;
+
23 const float a2 = 0.144232;
+
24 const float a3 = 0.012604;
+
25
+
26 float len_mult = 1 / (float)(len - 1);
+
27 for (int i = 0; i < len; i++) {
+
28 window[i] = a0
+
29 - a1 * cosf(i * 2 * M_PI * len_mult)
+
30 + a2 * cosf(i * 4 * M_PI * len_mult)
+
31 - a3 * cosf(i * 6 * M_PI * len_mult);
+
32 }
+
33}
+
#define M_PI
Definition esp_err.h:26
+
+

References M_PI.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/dsps__wind__nuttall__f32_8c.js b/docs/html/dsps__wind__nuttall__f32_8c.js new file mode 100644 index 0000000..dc7c955 --- /dev/null +++ b/docs/html/dsps__wind__nuttall__f32_8c.js @@ -0,0 +1,5 @@ +var dsps__wind__nuttall__f32_8c = +[ + [ "_USE_MATH_DEFINES", "dsps__wind__nuttall__f32_8c.html#a525335710b53cb064ca56b936120431e", null ], + [ "dsps_wind_nuttall_f32", "dsps__wind__nuttall__f32_8c.html#a1219c05cd3c666e1b8c4ac96dbd9a3d9", null ] +]; \ No newline at end of file diff --git a/docs/html/dsps__wind__nuttall__f32_8c__incl.md5 b/docs/html/dsps__wind__nuttall__f32_8c__incl.md5 new file mode 100644 index 0000000..0d80347 --- /dev/null +++ b/docs/html/dsps__wind__nuttall__f32_8c__incl.md5 @@ -0,0 +1 @@ +ded16834e27b2ecf73af242b5c8f0d54 \ No newline at end of file diff --git a/docs/html/dsps__wind__nuttall__f32_8c__incl.svg b/docs/html/dsps__wind__nuttall__f32_8c__incl.svg new file mode 100644 index 0000000..6bfcb03 --- /dev/null +++ b/docs/html/dsps__wind__nuttall__f32_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +dsps_wind_nuttall_f32.c + + +Node1 + + +dsps_wind_nuttall_f32.c + + + + + +Node2 + + +dsps_wind_nuttall.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__nuttall__f32_8c__incl_org.svg b/docs/html/dsps__wind__nuttall__f32_8c__incl_org.svg new file mode 100644 index 0000000..3b6c606 --- /dev/null +++ b/docs/html/dsps__wind__nuttall__f32_8c__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +dsps_wind_nuttall_f32.c + + +Node1 + + +dsps_wind_nuttall_f32.c + + + + + +Node2 + + +dsps_wind_nuttall.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 b/docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 new file mode 100644 index 0000000..12df29c --- /dev/null +++ b/docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.md5 @@ -0,0 +1 @@ +4e0bf4abdc48320e81cdb94b94059f25 \ No newline at end of file diff --git a/docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg b/docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg new file mode 100644 index 0000000..862bdd0 --- /dev/null +++ b/docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsps_wind_nuttall_f32 + + +Node1 + + +dsps_wind_nuttall_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg b/docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg new file mode 100644 index 0000000..fe85eb2 --- /dev/null +++ b/docs/html/dsps__wind__nuttall__f32_8c_a1219c05cd3c666e1b8c4ac96dbd9a3d9_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsps_wind_nuttall_f32 + + +Node1 + + +dsps_wind_nuttall_f32 + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/dsps__wind__nuttall__f32_8c_source.html b/docs/html/dsps__wind__nuttall__f32_8c_source.html new file mode 100644 index 0000000..05a3e4f --- /dev/null +++ b/docs/html/dsps__wind__nuttall__f32_8c_source.html @@ -0,0 +1,144 @@ + + + + + + + +ESP-IDF Firmware: dsps_wind_nuttall_f32.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsps_wind_nuttall_f32.c
+
+
+Go to the documentation of this file.
1// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#define _USE_MATH_DEFINES
+
16#include "dsps_wind_nuttall.h"
+
17#include <math.h>
+
18
+
+
19void dsps_wind_nuttall_f32(float *window, int len)
+
20{
+
21 const float a0 = 0.355768;
+
22 const float a1 = 0.487396;
+
23 const float a2 = 0.144232;
+
24 const float a3 = 0.012604;
+
25
+
26 float len_mult = 1 / (float)(len - 1);
+
27 for (int i = 0; i < len; i++) {
+
28 window[i] = a0
+
29 - a1 * cosf(i * 2 * M_PI * len_mult)
+
30 + a2 * cosf(i * 4 * M_PI * len_mult)
+
31 - a3 * cosf(i * 6 * M_PI * len_mult);
+
32 }
+
33}
+
+ +
void dsps_wind_nuttall_f32(float *window, int len)
Nuttall window.
+
#define M_PI
Definition esp_err.h:26
+
+
+
+ + + + diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js new file mode 100644 index 0000000..d89724e --- /dev/null +++ b/docs/html/dynsections.js @@ -0,0 +1,198 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); +} + +let dynsection = { + // helper function + updateStripes : function() { + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); + }, + + toggleVisibility : function(linkObj) { + const base = $(linkObj).attr('id'); + const summary = $('#'+base+'-summary'); + const content = $('#'+base+'-content'); + const trigger = $('#'+base+'-trigger'); + const src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.slideUp('fast'); + summary.show(); + $(linkObj).find('.arrowhead').addClass('closed').removeClass('opened'); + } else { + content.slideDown('fast'); + summary.hide(); + $(linkObj).find('.arrowhead').removeClass('closed').addClass('opened'); + } + return false; + }, + + toggleLevel : function(level) { + $('table.directory tr').each(function() { + const l = this.id.split('_').length-1; + const i = $('#img'+this.id.substring(3)); + const a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').addClass('plus').removeClass('minus'); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; +/* @license-end */ +$(function() { + $('.code,.codeRef').each(function() { + $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html()); + $.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ]; + $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true }); + }); +}); diff --git a/docs/html/ekf_8cpp.html b/docs/html/ekf_8cpp.html new file mode 100644 index 0000000..eac7ff2 --- /dev/null +++ b/docs/html/ekf_8cpp.html @@ -0,0 +1,192 @@ + + + + + + + +ESP-IDF Firmware: ekf.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf.cpp File Reference
+
+
+
#include "ekf.h"
+#include <cmath>
+#include <float.h>
+
+Include dependency graph for ekf.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define FLT_EPSILON   1.192092896e-07F
+ + +

+Functions

static float SIGN (float x)
+

Macro Definition Documentation

+ +

◆ FLT_EPSILON

+ +
+
+ + + + +
#define FLT_EPSILON   1.192092896e-07F
+
+ +

Definition at line 276 of file ekf.cpp.

+ +

Referenced by ekf::rotm2eul().

+ +
+
+

Function Documentation

+ +

◆ SIGN()

+ +
+
+ + + + + +
+ + + + + + + +
float SIGN (float x)
+
+inlinestatic
+
+ +

Definition at line 300 of file ekf.cpp.

+
301{
+
302 return (x >= 0.0f) ? +1.0f : -1.0f;
+
303}
+
float x[1024]
Definition test_fir.c:10
+
+

References x.

+ +

Referenced by ekf::rotm2quat().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/ekf_8cpp.js b/docs/html/ekf_8cpp.js new file mode 100644 index 0000000..7cdd19f --- /dev/null +++ b/docs/html/ekf_8cpp.js @@ -0,0 +1,5 @@ +var ekf_8cpp = +[ + [ "FLT_EPSILON", "ekf_8cpp.html#aafe5d2c4dc0edd9840f20e885dcae6ad", null ], + [ "SIGN", "ekf_8cpp.html#aeb6423a349aa1b3d900099b28eecc984", null ] +]; \ No newline at end of file diff --git a/docs/html/ekf_8cpp__incl.md5 b/docs/html/ekf_8cpp__incl.md5 new file mode 100644 index 0000000..605681b --- /dev/null +++ b/docs/html/ekf_8cpp__incl.md5 @@ -0,0 +1 @@ +c6cf17110c42624b00c1fc49c2c46296 \ No newline at end of file diff --git a/docs/html/ekf_8cpp__incl.svg b/docs/html/ekf_8cpp__incl.svg new file mode 100644 index 0000000..ad56fce --- /dev/null +++ b/docs/html/ekf_8cpp__incl.svg @@ -0,0 +1,191 @@ + + + + + + + + + + + + +ekf.cpp + + +Node1 + + +ekf.cpp + + + + + +Node2 + + +ekf.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +cmath + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +float.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +math.h + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +mat.h + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +iostream + + + + + +Node6->Node7 + + + + + + + + + + + + + diff --git a/docs/html/ekf_8cpp__incl_org.svg b/docs/html/ekf_8cpp__incl_org.svg new file mode 100644 index 0000000..058fd17 --- /dev/null +++ b/docs/html/ekf_8cpp__incl_org.svg @@ -0,0 +1,165 @@ + + + + + + +ekf.cpp + + +Node1 + + +ekf.cpp + + + + + +Node2 + + +ekf.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +cmath + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +float.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +math.h + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +mat.h + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +iostream + + + + + +Node6->Node7 + + + + + + + + diff --git a/docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph.md5 b/docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph.md5 new file mode 100644 index 0000000..009f817 --- /dev/null +++ b/docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph.md5 @@ -0,0 +1 @@ +869ccf53ebdbd37ff3afd72cefd2072f \ No newline at end of file diff --git a/docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph.svg b/docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph.svg new file mode 100644 index 0000000..badd5b7 --- /dev/null +++ b/docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +SIGN + + +Node1 + + +SIGN + + + + + +Node2 + + +ekf::rotm2quat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::TestFull + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph_org.svg b/docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph_org.svg new file mode 100644 index 0000000..3457557 --- /dev/null +++ b/docs/html/ekf_8cpp_aeb6423a349aa1b3d900099b28eecc984_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +SIGN + + +Node1 + + +SIGN + + + + + +Node2 + + +ekf::rotm2quat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states::TestFull + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/ekf_8cpp_source.html b/docs/html/ekf_8cpp_source.html new file mode 100644 index 0000000..31e9f84 --- /dev/null +++ b/docs/html/ekf_8cpp_source.html @@ -0,0 +1,601 @@ + + + + + + + +ESP-IDF Firmware: ekf.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020-2021 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "ekf.h"
+
16#include <cmath>
+
17#include <float.h>
+
18
+
+
19ekf::ekf(int x, int w) : NUMX(x),
+
20 NUMW(w),
+
21 X(*new dspm::Mat(x, 1)),
+
22
+
23 F(*new dspm::Mat(x, x)),
+
24 G(*new dspm::Mat(x, w)),
+
25 P(*new dspm::Mat(x, x)),
+
26 Q(*new dspm::Mat(w, w))
+
27{
+
28
+
29 this->P *= 0;
+
30 this->Q *= 0;
+
31 this->X *= 0;
+
32 this->X.data[0] = 1; // direction to 0
+
33 this->HP = new float[this->NUMX];
+
34 this->Km = new float[this->NUMX];
+
35 for (size_t i = 0; i < this->NUMX; i++) {
+
36 this->HP[i] = 0;
+
37 this->Km[i] = 0;
+
38 }
+
39}
+
+
40
+
+ +
42{
+
43 delete &X;
+
44 delete &F;
+
45 delete &G;
+
46 delete &P;
+
47 delete &Q;
+
48
+
49 delete this->HP;
+
50 delete this->Km;
+
51}
+
+
52
+
+
53void ekf::Process(float *u, float dt)
+
54{
+
55 this->LinearizeFG(this->X, (float *)u);
+
56 this->RungeKutta(this->X, u, dt);
+
57 this->CovariancePrediction(dt);
+
58}
+
+
59
+
+
60void ekf::RungeKutta(dspm::Mat &x, float *U, float dt)
+
61{
+
62
+
63 float dt2 = dt / 2.0f;
+
64
+
65 dspm::Mat Xlast = x; // make a working copy
+
66 dspm::Mat K1 = StateXdot(x, U); // k1 = f(x, u)
+
67 x = Xlast + (K1 * dt2);
+
68
+
69 dspm::Mat K2 = StateXdot(x, U); // k2 = f(x + 0.5*dT*k1, u)
+
70 x = Xlast + K2 * dt2;
+
71
+
72 dspm::Mat K3 = StateXdot(x, U); // k3 = f(x + 0.5*dT*k2, u)
+
73 x = Xlast + K3 * dt;
+
74
+
75 dspm::Mat K4 = StateXdot(x, U); // k4 = f(x + dT * k3, u)
+
76
+
77 // Xnew = X + dT * (k1 + 2 * k2 + 2 * k3 + k4) / 6
+
78 x = Xlast + (K1 + 2.0f * K2 + 2.0f * K3 + K4) * (dt / 6.0f);
+
79}
+
+
80
+
+ +
82{
+
83 //={ 0, -w[0], -w[1], -w[2],
+
84 // w[0], 0, w[2], -w[1],
+
85 // w[1], -w[2], 0, w[0],
+
86 // w[2], w[1], -w[0], 0 };
+
87
+
88 dspm::Mat result(4, 4);
+
89 result.data[0] = 0;
+
90 result.data[1] = -w[0];
+
91 result.data[2] = -w[1];
+
92 result.data[3] = -w[2];
+
93
+
94 result.data[4] = w[0];
+
95 result.data[5] = 0;
+
96 result.data[6] = w[2];
+
97 result.data[7] = -w[1];
+
98
+
99 result.data[8] = w[1];
+
100 result.data[9] = -w[2];
+
101 result.data[10] = 0;
+
102 result.data[11] = w[0];
+
103
+
104 result.data[12] = w[2];
+
105 result.data[13] = w[1];
+
106 result.data[14] = -w[0];
+
107 result.data[15] = 0;
+
108
+
109 return result;
+
110}
+
+
111
+
+ +
113{
+
114 dspm::Mat result(4, 4);
+
115
+
116 result.data[0] = q[0];
+
117 result.data[1] = -q[1];
+
118 result.data[2] = -q[2];
+
119 result.data[3] = -q[3];
+
120
+
121 result.data[4] = q[1];
+
122 result.data[5] = q[0];
+
123 result.data[6] = -q[3];
+
124 result.data[7] = q[2];
+
125
+
126 result.data[8] = q[2];
+
127 result.data[9] = q[3];
+
128 result.data[10] = q[0];
+
129 result.data[11] = -q[1];
+
130
+
131 result.data[12] = q[3];
+
132 result.data[13] = -q[2];
+
133 result.data[14] = q[1];
+
134 result.data[15] = q[0];
+
135
+
136 return result;
+
137}
+
+
138
+
+ +
140{
+
141 dspm::Mat f = this->F * dt;
+
142
+
143 f = f + dspm::Mat::eye(this->NUMX);
+
144
+
145 dspm::Mat f_t = f.t();
+
146 this->P = ((f * this->P) * f_t) + (dt * dt) * ((G * Q) * G.t());
+
147}
+
+
148
+
+
149void ekf::Update(dspm::Mat &H, float *measured, float *expected, float *R)
+
150{
+
151 float HPHR, Error;
+
152 dspm::Mat Y(measured, H.rows, 1);
+
153 dspm::Mat Z(expected, H.rows, 1);
+
154
+
155 for (int m = 0; m < H.rows; m++) {
+
156 for (int j = 0; j < this->NUMX; j++) {
+
157 // Find Hp = H*P
+
158 HP[j] = 0;
+
159 }
+
160 for (int k = 0; k < this->NUMX; k++) {
+
161 for (int j = 0; j < this->NUMX; j++) {
+
162 // Find Hp = H*P
+
163 HP[j] += H(m, k) * P(k, j);
+
164 }
+
165 }
+
166 HPHR = R[m]; // Find HPHR = H*P*H' + R
+
167 for (int k = 0; k < this->NUMX; k++) {
+
168 HPHR += HP[k] * H(m, k);
+
169 }
+
170 float invHPHR = 1.0f / HPHR;
+
171 for (int k = 0; k < this->NUMX; k++) {
+
172 Km[k] = HP[k] * invHPHR; // find K = HP/HPHR
+
173 }
+
174 for (int i = 0; i < this->NUMX; i++) {
+
175 // Find P(m)= P(m-1) + K*HP
+
176 for (int j = i; j < NUMX; j++) {
+
177 P(i, j) = P(j, i) = P(i, j) - Km[i] * HP[j];
+
178 }
+
179 }
+
180
+
181 Error = Y(m, 0) - Z(m, 0);
+
182 for (int i = 0; i < this->NUMX; i++) {
+
183 // Find X(m)= X(m-1) + K*Error
+
184 X(i, 0) = X(i, 0) + Km[i] * Error;
+
185 }
+
186 }
+
187}
+
+
188
+
+
189void ekf::UpdateRef(dspm::Mat &H, float *measured, float *expected, float *R)
+
190{
+
191 dspm::Mat h_t = H.t();
+
192 dspm::Mat S = H * P * h_t; // +diag(R);
+
193 for (size_t i = 0; i < H.rows; i++) {
+
194 S(i, i) += R[i];
+
195 }
+
196
+
197 dspm::Mat S_ = S.pinv(); // 1 / S
+
198
+
199 dspm::Mat K = (P * h_t) * S_;
+
200 this->P = (dspm::Mat::eye(this->NUMX) - K * H) * P;
+
201
+
202 dspm::Mat Y(measured, H.rows, 1);
+
203 dspm::Mat Z(expected, H.rows, 1);
+
204
+
205 dspm::Mat Err = Y - Z;
+
206 this->X += (K * Err);
+
207}
+
+
208
+
+ +
210{
+
211 float q0 = q[0];
+
212 float q1 = q[1];
+
213 float q2 = q[2];
+
214 float q3 = q[3];
+
215 dspm::Mat Rm(3, 3);
+
216
+
217 Rm(0, 0) = q0 * q0 + q1 * q1 - q2 * q2 - q3 * q3;
+
218 Rm(1, 0) = 2.0f * (q1 * q2 + q0 * q3);
+
219 Rm(2, 0) = 2.0f * (q1 * q3 - q0 * q2);
+
220 Rm(0, 1) = 2.0f * (q1 * q2 - q0 * q3);
+
221 Rm(1, 1) = (q0 * q0 - q1 * q1 + q2 * q2 - q3 * q3);
+
222 Rm(2, 1) = 2.0f * (q2 * q3 + q0 * q1);
+
223 Rm(0, 2) = 2.0f * (q1 * q3 + q0 * q2);
+
224 Rm(1, 2) = 2.0f * (q2 * q3 - q0 * q1);
+
225 Rm(2, 2) = (q0 * q0 - q1 * q1 - q2 * q2 + q3 * q3);
+
226
+
227 return Rm;
+
228}
+
+
229
+
+
230dspm::Mat ekf::quat2eul(const float q[4])
+
231{
+
232 dspm::Mat result(3, 1);
+
233 float R13, R11, R12, R23, R33;
+
234 float q0s = q[0] * q[0];
+
235 float q1s = q[1] * q[1];
+
236 float q2s = q[2] * q[2];
+
237 float q3s = q[3] * q[3];
+
238
+
239 R13 = 2.0f * (q[1] * q[3] + q[0] * q[2]);
+
240 R11 = q0s + q1s - q2s - q3s;
+
241 R12 = -2.0f * (q[1] * q[2] - q[0] * q[3]);
+
242 R23 = -2.0f * (q[2] * q[3] - q[0] * q[1]);
+
243 R33 = q0s - q1s - q2s + q3s;
+
244
+
245 result.data[1] = (asinf(R13));
+
246 result.data[2] = (atan2f(R12, R11));
+
247 result.data[0] = (atan2f(R23, R33));
+
248 return result;
+
249}
+
+
250
+
+ +
252{
+
253 dspm::Mat result(3, 3);
+
254 float Cx = std::cos(xyz[0]);
+
255 float Sx = std::sin(xyz[0]);
+
256 float Cy = std::cos(xyz[1]);
+
257 float Sy = std::sin(xyz[1]);
+
258 float Cz = std::cos(xyz[2]);
+
259 float Sz = std::sin(xyz[2]);
+
260
+
261 result(0, 0) = Cy * Cz;
+
262 result(0, 1) = -Cy * Sz;
+
263 result(0, 2) = Sy;
+
264
+
265 result(1, 0) = Cz * Sx * Sy + Cx * Sz;
+
266 result(1, 1) = Cx * Cz - Sx * Sy * Sz;
+
267 result(1, 2) = -Cy * Sx;
+
268
+
269 result(2, 0) = -Cx * Cz * Sy + Sx * Sz;
+
270 result(2, 1) = Cz * Sx + Cx * Sy * Sz;
+
271 result(2, 2) = Cx * Cy;
+
272 return result;
+
273}
+
+
274
+
275#ifndef FLT_EPSILON
+
276#define FLT_EPSILON 1.192092896e-07F
+
277#endif // FLT_EPSILON
+
278
+
+ +
280{
+
281 dspm::Mat result(3, 1);
+
282 float x, y, z;
+
283// float cy = sqrtf(rotm(2, 2) * rotm(2, 2) + rotm(2, 0) * rotm(2, 0));
+
284 float cy = sqrtf(rotm(2, 2) * rotm(2, 2) + rotm(1, 2) * rotm(1, 2));
+
285 if (cy > 16 * FLT_EPSILON) {
+
286 x = -atan2f(rotm(1, 2), rotm(2, 2));
+
287 y = -atan2f(-rotm(0, 2), (float)cy);
+
288 z = -atan2f(rotm(0, 1), rotm(0, 0));
+
289 } else {
+
290 z = -atan2f(-rotm(1, 0), rotm(1, 1));
+
291 y = -atan2f(-rotm(0, 2), (float)cy);
+
292 x = 0;
+
293 }
+
294 result(0, 0) = x;
+
295 result(1, 0) = y;
+
296 result(2, 0) = z;
+
297 return result;
+
298}
+
+
299
+
+
300static inline float SIGN(float x)
+
301{
+
302 return (x >= 0.0f) ? +1.0f : -1.0f;
+
303}
+
+
304
+
+ +
306{
+
307 float r11 = m(0, 0);
+
308 float r12 = m(0, 1);
+
309 float r13 = m(0, 2);
+
310 float r21 = m(1, 0);
+
311 float r22 = m(1, 1);
+
312 float r23 = m(1, 2);
+
313 float r31 = m(2, 0);
+
314 float r32 = m(2, 1);
+
315 float r33 = m(2, 2);
+
316 float q0 = (r11 + r22 + r33 + 1.0f) / 4.0f;
+
317 float q1 = (r11 - r22 - r33 + 1.0f) / 4.0f;
+
318 float q2 = (-r11 + r22 - r33 + 1.0f) / 4.0f;
+
319 float q3 = (-r11 - r22 + r33 + 1.0f) / 4.0f;
+
320 if (q0 < 0.0f) {
+
321 q0 = 0.0f;
+
322 }
+
323 if (q1 < 0.0f) {
+
324 q1 = 0.0f;
+
325 }
+
326 if (q2 < 0.0f) {
+
327 q2 = 0.0f;
+
328 }
+
329 if (q3 < 0.0f) {
+
330 q3 = 0.0f;
+
331 }
+
332 q0 = sqrt(q0);
+
333 q1 = sqrt(q1);
+
334 q2 = sqrt(q2);
+
335 q3 = sqrt(q3);
+
336 if (q0 >= q1 && q0 >= q2 && q0 >= q3) {
+
337 q0 *= +1.0f;
+
338 q1 *= SIGN(r32 - r23);
+
339 q2 *= SIGN(r13 - r31);
+
340 q3 *= SIGN(r21 - r12);
+
341 } else if (q1 >= q0 && q1 >= q2 && q1 >= q3) {
+
342 q0 *= SIGN(r32 - r23);
+
343 q1 *= +1.0f;
+
344 q2 *= SIGN(r21 + r12);
+
345 q3 *= SIGN(r13 + r31);
+
346 } else if (q2 >= q0 && q2 >= q1 && q2 >= q3) {
+
347 q0 *= SIGN(r13 - r31);
+
348 q1 *= SIGN(r21 + r12);
+
349 q2 *= +1.0f;
+
350 q3 *= SIGN(r32 + r23);
+
351 } else if (q3 >= q0 && q3 >= q1 && q3 >= q2) {
+
352 q0 *= SIGN(r21 - r12);
+
353 q1 *= SIGN(r31 + r13);
+
354 q2 *= SIGN(r32 + r23);
+
355 q3 *= +1.0f;
+
356 }
+
357
+
358 dspm::Mat res(4, 1);
+
359 res(0, 0) = q0;
+
360 res(1, 0) = q1;
+
361 res(2, 0) = q2;
+
362 res(3, 0) = q3;
+
363 res /= res.norm();
+
364 return res;
+
365}
+
+
366
+
+ +
368{
+
369 dspm::Mat result(3, 4);
+
370 result(0, 0) = q.data[0] * vector.data[0] - q.data[3] * vector.data[1] + q.data[2] * vector.data[2];
+
371 result(0, 1) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
372 result(0, 2) = -q.data[2] * vector.data[0] + q.data[1] * vector.data[1] + q.data[0] * vector.data[2];
+
373 result(0, 3) = -q.data[3] * vector.data[0] - q.data[0] * vector.data[1] + q.data[1] * vector.data[2];
+
374
+
375 result(1, 0) = q.data[3] * vector.data[0] + q.data[0] * vector.data[1] - q.data[1] * vector.data[2];
+
376 result(1, 1) = q.data[2] * vector.data[0] - q.data[1] * vector.data[1] - q.data[0] * vector.data[2];
+
377 result(1, 2) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
378 result(1, 3) = q.data[0] * vector.data[0] - q.data[3] * vector.data[1] + q.data[2] * vector.data[2];
+
379
+
380 result(2, 0) = -q.data[2] * vector.data[0] + q.data[1] * vector.data[1] + q.data[0] * vector.data[2];
+
381 result(2, 1) = q.data[3] * vector.data[0] + q.data[0] * vector.data[1] - q.data[1] * vector.data[2];
+
382 result(2, 2) = -q.data[0] * vector.data[0] + q.data[3] * vector.data[1] - q.data[2] * vector.data[2];
+
383 result(2, 3) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
384
+
385 result *= 2;
+
386 return result;
+
387}
+
+
388
+
+ +
390{
+
391 dspm::Mat result(3, 4);
+
392 result(0, 0) = q.data[0] * vector.data[0] + q.data[3] * vector.data[1] - q.data[2] * vector.data[2];
+
393 result(0, 1) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
394 result(0, 2) = -q.data[2] * vector.data[0] + q.data[1] * vector.data[1] - q.data[0] * vector.data[2];
+
395 result(0, 3) = -q.data[3] * vector.data[0] + q.data[0] * vector.data[1] + q.data[1] * vector.data[2];
+
396
+
397 result(1, 0) = -q.data[3] * vector.data[0] + q.data[0] * vector.data[1] + q.data[1] * vector.data[2];
+
398 result(1, 1) = q.data[2] * vector.data[0] - q.data[1] * vector.data[1] + q.data[0] * vector.data[2];
+
399 result(1, 2) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
400 result(1, 3) = -q.data[0] * vector.data[0] - q.data[3] * vector.data[1] + q.data[2] * vector.data[2];
+
401
+
402 result(2, 0) = q.data[2] * vector.data[0] - q.data[1] * vector.data[1] + q.data[0] * vector.data[2];
+
403 result(2, 1) = q.data[3] * vector.data[0] - q.data[0] * vector.data[1] - q.data[1] * vector.data[2];
+
404 result(2, 2) = q.data[0] * vector.data[0] + q.data[3] * vector.data[1] - q.data[2] * vector.data[2];
+
405 result(2, 3) = q.data[1] * vector.data[0] + q.data[2] * vector.data[1] + q.data[3] * vector.data[2];
+
406
+
407 result *= 2;
+
408 return result;
+
409}
+
+
410
+
+ +
412{
+
413 dspm::Mat U(u, this->G.cols, 1);
+
414 dspm::Mat Xdot = (this->F * x + this->G * U);
+
415 return Xdot;
+
416}
+
+
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
float norm(void)
Definition mat.cpp:456
+
Mat pinv()
Definition mat.cpp:707
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
Mat t()
Definition mat.cpp:383
+
virtual dspm::Mat StateXdot(dspm::Mat &x, float *u)
Definition ekf.cpp:411
+
int NUMW
Definition ekf.h:68
+
static dspm::Mat rotm2quat(dspm::Mat &R)
Definition ekf.cpp:305
+
static dspm::Mat dFdq(dspm::Mat &vector, dspm::Mat &quat)
Definition ekf.cpp:367
+
virtual void LinearizeFG(dspm::Mat &x, float *u)=0
+
dspm::Mat & F
Definition ekf.h:78
+
static dspm::Mat dFdq_inv(dspm::Mat &vector, dspm::Mat &quat)
Definition ekf.cpp:389
+
virtual void Process(float *u, float dt)
Definition ekf.cpp:53
+
ekf(int x, int w)
Definition ekf.cpp:19
+
virtual ~ekf()
Definition ekf.cpp:41
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
float * HP
Definition ekf.h:157
+
virtual void CovariancePrediction(float dt)
Definition ekf.cpp:139
+
int NUMX
Definition ekf.h:63
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
dspm::Mat & G
Definition ekf.h:82
+
virtual void Update(dspm::Mat &H, float *measured, float *expected, float *R)
Definition ekf.cpp:149
+
void RungeKutta(dspm::Mat &x, float *u, float dt)
Definition ekf.cpp:60
+
static dspm::Mat quat2eul(const float q[4])
Definition ekf.cpp:230
+
dspm::Mat & X
Definition ekf.h:73
+
virtual void UpdateRef(dspm::Mat &H, float *measured, float *expected, float *R)
Definition ekf.cpp:189
+
dspm::Mat & Q
Definition ekf.h:92
+
static dspm::Mat qProduct(float *q)
Definition ekf.cpp:112
+
dspm::Mat & P
Definition ekf.h:87
+
float * Km
Definition ekf.h:161
+
static dspm::Mat SkewSym4x4(float *w)
Definition ekf.cpp:81
+
#define FLT_EPSILON
Definition ekf.cpp:276
+
static float SIGN(float x)
Definition ekf.cpp:300
+ +
DSP matrix namespace.
Definition mat.h:24
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
const int m
Definition test_mmult.c:16
+
#define K
Definition test_mmult.c:14
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/ekf_8h.html b/docs/html/ekf_8h.html new file mode 100644 index 0000000..f062c61 --- /dev/null +++ b/docs/html/ekf_8h.html @@ -0,0 +1,134 @@ + + + + + + + +ESP-IDF Firmware: ekf.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf.h File Reference
+
+
+
#include <stdint.h>
+#include <stdbool.h>
+#include <math.h>
+#include <mat.h>
+
+Include dependency graph for ekf.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Data Structures

class  ekf
+
+
+ +
+ + + + diff --git a/docs/html/ekf_8h.js b/docs/html/ekf_8h.js new file mode 100644 index 0000000..0121044 --- /dev/null +++ b/docs/html/ekf_8h.js @@ -0,0 +1,4 @@ +var ekf_8h = +[ + [ "ekf", "classekf.html", "classekf" ] +]; \ No newline at end of file diff --git a/docs/html/ekf_8h__dep__incl.md5 b/docs/html/ekf_8h__dep__incl.md5 new file mode 100644 index 0000000..5ff28ea --- /dev/null +++ b/docs/html/ekf_8h__dep__incl.md5 @@ -0,0 +1 @@ +16911e39e47aa5455640df45b6772350 \ No newline at end of file diff --git a/docs/html/ekf_8h__dep__incl.svg b/docs/html/ekf_8h__dep__incl.svg new file mode 100644 index 0000000..73db53c --- /dev/null +++ b/docs/html/ekf_8h__dep__incl.svg @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf.h + + +Node1 + + +ekf.h + + + + + +Node2 + + +ekf.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +ekf_imu13states.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +graphics_support.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +graphics_support.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +graphics_support.h + + + + + +Node3->Node9 + + + + + + + + +Node11 + + +kalman_filter_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +kalman_filter_demo.cpp + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +kalman_filter_demo.cpp + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +kalman_filter_demo.cpp + + + + + +Node3->Node14 + + + + + + + + +Node6 + + +graphics_support.cpp + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +graphics_support.cpp + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +graphics_support.cpp + + + + + +Node9->Node10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/ekf_8h__dep__incl_org.svg b/docs/html/ekf_8h__dep__incl_org.svg new file mode 100644 index 0000000..a8af7d0 --- /dev/null +++ b/docs/html/ekf_8h__dep__incl_org.svg @@ -0,0 +1,255 @@ + + + + + + +ekf.h + + +Node1 + + +ekf.h + + + + + +Node2 + + +ekf.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf_imu13states.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +ekf_imu13states.cpp + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +graphics_support.h + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +graphics_support.h + + + + + +Node3->Node7 + + + + + + + + +Node9 + + +graphics_support.h + + + + + +Node3->Node9 + + + + + + + + +Node11 + + +kalman_filter_demo.cpp + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +kalman_filter_demo.cpp + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +kalman_filter_demo.cpp + + + + + +Node3->Node13 + + + + + + + + +Node14 + + +kalman_filter_demo.cpp + + + + + +Node3->Node14 + + + + + + + + +Node6 + + +graphics_support.cpp + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +graphics_support.cpp + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +graphics_support.cpp + + + + + +Node9->Node10 + + + + + + + + diff --git a/docs/html/ekf_8h__incl.md5 b/docs/html/ekf_8h__incl.md5 new file mode 100644 index 0000000..d5981bd --- /dev/null +++ b/docs/html/ekf_8h__incl.md5 @@ -0,0 +1 @@ +4b166b9d89bb15a4984d83b9d630c3a0 \ No newline at end of file diff --git a/docs/html/ekf_8h__incl.svg b/docs/html/ekf_8h__incl.svg new file mode 100644 index 0000000..4facef2 --- /dev/null +++ b/docs/html/ekf_8h__incl.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +ekf.h + + +Node1 + + +ekf.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdbool.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +math.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +mat.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +iostream + + + + + +Node5->Node6 + + + + + + + + + + + + + diff --git a/docs/html/ekf_8h__incl_org.svg b/docs/html/ekf_8h__incl_org.svg new file mode 100644 index 0000000..ee02f2c --- /dev/null +++ b/docs/html/ekf_8h__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +ekf.h + + +Node1 + + +ekf.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdbool.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +math.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +mat.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +iostream + + + + + +Node5->Node6 + + + + + + + + diff --git a/docs/html/ekf_8h_source.html b/docs/html/ekf_8h_source.html new file mode 100644 index 0000000..7613040 --- /dev/null +++ b/docs/html/ekf_8h_source.html @@ -0,0 +1,232 @@ + + + + + + + +ESP-IDF Firmware: ekf.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf.h
+
+
+Go to the documentation of this file.
1// Copyright 2020-2021 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15
+
16#ifndef _ekf_h_
+
17#define _ekf_h_
+
18
+
19#include <stdint.h>
+
20#include <stdbool.h>
+
21#include <math.h>
+
22#include <stdint.h>
+
23#include <mat.h>
+
24
+
+
29class ekf {
+
30public:
+
31
+
38 ekf(int x, int w);
+
39
+
40
+
44 virtual ~ekf();
+
51 virtual void Process(float *u, float dt);
+
52
+
53
+
58 virtual void Init() = 0;
+
63 int NUMX;
+
68 int NUMW;
+
69
+ +
74
+ + +
83
+ +
88
+ +
93
+
102 void RungeKutta(dspm::Mat &x, float *u, float dt);
+
103
+
104 // System Dependent methods:
+
105
+
115 virtual dspm::Mat StateXdot(dspm::Mat &x, float *u);
+
121 virtual void LinearizeFG(dspm::Mat &x, float *u) = 0;
+
122 //
+
123
+
124 // System independent methods
+
125
+
131 virtual void CovariancePrediction(float dt);
+
132
+
142 virtual void Update(dspm::Mat &H, float *measured, float *expected, float *R);
+
152 virtual void UpdateRef(dspm::Mat &H, float *measured, float *expected, float *R);
+
153
+
157 float *HP;
+
161 float *Km;
+
162
+
163public:
+
164 // Additional universal helper methods
+
172 static dspm::Mat quat2rotm(float q[4]);
+
173
+
181 static dspm::Mat rotm2quat(dspm::Mat &R);
+
182
+
190 static dspm::Mat quat2eul(const float q[4]);
+
198 static dspm::Mat eul2rotm(float xyz[3]);
+
199
+
207 static dspm::Mat rotm2eul(dspm::Mat &rotm);
+
208
+
217 static dspm::Mat dFdq(dspm::Mat &vector, dspm::Mat &quat);
+
218
+
227 static dspm::Mat dFdq_inv(dspm::Mat &vector, dspm::Mat &quat);
+
228
+
236 static dspm::Mat SkewSym4x4(float *w);
+
237
+
238 // q product
+
239 // Rl = [q(1) - q(2) - q(3) - q(4); ...
+
240 // q(2) q(1) - q(4) q(3); ...
+
241 // q(3) q(4) q(1) - q(2); ...
+
242 // q(4) - q(3) q(2) q(1); ...
+
243
+
251 static dspm::Mat qProduct(float *q);
+
252
+
253};
+
+
254
+
255#endif // _ekf_h_
+
Matrix.
Definition mat.h:30
+
virtual dspm::Mat StateXdot(dspm::Mat &x, float *u)
Definition ekf.cpp:411
+
int NUMW
Definition ekf.h:68
+
static dspm::Mat rotm2quat(dspm::Mat &R)
Definition ekf.cpp:305
+
static dspm::Mat dFdq(dspm::Mat &vector, dspm::Mat &quat)
Definition ekf.cpp:367
+
virtual void LinearizeFG(dspm::Mat &x, float *u)=0
+
dspm::Mat & F
Definition ekf.h:78
+
static dspm::Mat dFdq_inv(dspm::Mat &vector, dspm::Mat &quat)
Definition ekf.cpp:389
+
virtual void Process(float *u, float dt)
Definition ekf.cpp:53
+
ekf(int x, int w)
Definition ekf.cpp:19
+
virtual ~ekf()
Definition ekf.cpp:41
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
float * HP
Definition ekf.h:157
+
virtual void CovariancePrediction(float dt)
Definition ekf.cpp:139
+
int NUMX
Definition ekf.h:63
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
dspm::Mat & G
Definition ekf.h:82
+
virtual void Update(dspm::Mat &H, float *measured, float *expected, float *R)
Definition ekf.cpp:149
+
void RungeKutta(dspm::Mat &x, float *u, float dt)
Definition ekf.cpp:60
+
static dspm::Mat quat2eul(const float q[4])
Definition ekf.cpp:230
+
dspm::Mat & X
Definition ekf.h:73
+
virtual void UpdateRef(dspm::Mat &H, float *measured, float *expected, float *R)
Definition ekf.cpp:189
+
dspm::Mat & Q
Definition ekf.h:92
+
static dspm::Mat qProduct(float *q)
Definition ekf.cpp:112
+
virtual void Init()=0
+
dspm::Mat & P
Definition ekf.h:87
+
float * Km
Definition ekf.h:161
+
static dspm::Mat SkewSym4x4(float *w)
Definition ekf.cpp:81
+ +
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/ekf__imu13states_8cpp.html b/docs/html/ekf__imu13states_8cpp.html new file mode 100644 index 0000000..8c07d9d --- /dev/null +++ b/docs/html/ekf__imu13states_8cpp.html @@ -0,0 +1,122 @@ + + + + + + + +ESP-IDF Firmware: ekf_imu13states.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf_imu13states.cpp File Reference
+
+
+
#include "ekf_imu13states.h"
+#include <cmath>
+
+Include dependency graph for ekf_imu13states.cpp:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/ekf__imu13states_8cpp__incl.md5 b/docs/html/ekf__imu13states_8cpp__incl.md5 new file mode 100644 index 0000000..c49ce49 --- /dev/null +++ b/docs/html/ekf__imu13states_8cpp__incl.md5 @@ -0,0 +1 @@ +1e28d53ebcc9d669d2b46786619fb9df \ No newline at end of file diff --git a/docs/html/ekf__imu13states_8cpp__incl.svg b/docs/html/ekf__imu13states_8cpp__incl.svg new file mode 100644 index 0000000..891d18d --- /dev/null +++ b/docs/html/ekf__imu13states_8cpp__incl.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + +ekf_imu13states.cpp + + +Node1 + + +ekf_imu13states.cpp + + + + + +Node2 + + +ekf_imu13states.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +cmath + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +ekf.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdbool.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +math.h + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +mat.h + + + + + +Node3->Node7 + + + + + + + + + + + + + diff --git a/docs/html/ekf__imu13states_8cpp__incl_org.svg b/docs/html/ekf__imu13states_8cpp__incl_org.svg new file mode 100644 index 0000000..bb87c26 --- /dev/null +++ b/docs/html/ekf__imu13states_8cpp__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +ekf_imu13states.cpp + + +Node1 + + +ekf_imu13states.cpp + + + + + +Node2 + + +ekf_imu13states.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +cmath + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +ekf.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdbool.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +math.h + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +mat.h + + + + + +Node3->Node7 + + + + + + + + diff --git a/docs/html/ekf__imu13states_8cpp_source.html b/docs/html/ekf__imu13states_8cpp_source.html new file mode 100644 index 0000000..7ec65e8 --- /dev/null +++ b/docs/html/ekf__imu13states_8cpp_source.html @@ -0,0 +1,456 @@ + + + + + + + +ESP-IDF Firmware: ekf_imu13states.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf_imu13states.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2020-2021 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include "ekf_imu13states.h"
+
16#include <cmath>
+
17
+
+ +
19 mag0(3, 1),
+
20 accel0(3, 1)
+
21{
+
22 this->NUMU = 3;
+
23}
+
+
24
+ +
28
+
+ +
30{
+
31 mag0.data[0] = 1;
+
32 mag0.data[1] = 0;
+
33 mag0.data[2] = 0;
+
34
+
35 mag0 /= mag0.norm();
+
36
+
37 accel0.data[0] = 0;
+
38 accel0.data[1] = 0;
+
39 accel0.data[2] = 1;
+
40
+
41 accel0 /= accel0.norm();
+
42
+
43 this->Q.Copy(0.1 * dspm::Mat::eye(3), 0, 0);
+
44 this->Q.Copy(0.0001 * dspm::Mat::eye(3), 3, 3);
+
45 this->Q.Copy(0.0001 * dspm::Mat::eye(3), 6, 6);
+
46 this->Q.Copy(0.0001 * dspm::Mat::eye(3), 9, 9);
+
47 this->Q.Copy(0.00001 * dspm::Mat::eye(3), 12, 12);
+
48 this->Q.Copy(0.00001 * dspm::Mat::eye(3), 15, 15);
+
49
+
50 this->X.data[0] = 1; // Init quaternion
+
51 this->X.data[7] = 1; // Initial magnetometer vector
+
52}
+
+
53
+
+ +
55{
+
56 float wx = u[0] - x(4, 0); // subtract the biases on gyros
+
57 float wy = u[1] - x(5, 0);
+
58 float wz = u[2] - x(6, 0);
+
59
+
60 float w[] = {wx, wy, wz};
+
61 dspm::Mat q = dspm::Mat(x.data, 4, 1);
+
62
+
63 // qdot = Q * w
+
64 dspm::Mat Omega = 0.5 * SkewSym4x4(w);
+
65 dspm::Mat qdot = Omega * q;
+
66 dspm::Mat Xdot(this->NUMX, 1);
+
67 Xdot *= 0;
+
68 Xdot.Copy(qdot, 0, 0);
+
69 // dwbias = 0
+
70 // dMang_Ampl = 0
+
71 // dMang_offset = 0
+
72 return Xdot;
+
73}
+
+
74
+
+ +
76{
+
77 float w[3] = {(u[0] - x(4, 0)), (u[1] - x(5, 0)), (u[2] - x(6, 0))}; // subtract the biases on gyros
+
78 // float w[3] = {u[0], u[1], u[2]}; // subtract the biases on gyros
+
79
+
80 this->F *= 0; // Initialize F and G matrixes.
+
81 this->G *= 0;
+
82
+
83 // dqdot / dq - skey matrix
+
84 F.Copy(0.5 * ekf::SkewSym4x4(w), 0, 0);
+
85
+
86 // dqdot/dvector
+
87 dspm::Mat dq = -0.5 * qProduct(x.data);
+
88 dspm::Mat dq_q = dq.Get(0, 4, 1, 3);
+
89
+
90 // dqdot / dnw
+
91 G.Copy(dq_q, 0, 0);
+
92 // dqdot / dwbias
+
93 F.Copy(dq_q, 0, 4);
+
94
+
95 dspm::Mat rotm = -1 * this->quat2rotm(x.data); // Convert quat to rotation matrix
+
96
+
97 G.Copy(rotm, 7, 6);
+
98 G.Copy(dspm::Mat::eye(3), 4, 3); // random noise wbias
+
99 G.Copy(dspm::Mat::eye(3), 7, 12); // random noise magnetometer amplitude
+
100 G.Copy(dspm::Mat::eye(3), 10, 9); // magnetometer offset constant
+
101 G.Copy(dspm::Mat::eye(3), 10, 15); // random noise offset constant
+
102}
+
+
103
+
+ +
105{
+
106 dspm::Mat test_x(7, 1);
+
107 for (size_t i = 0; i < 7; i++) {
+
108 test_x(i, 0) = i;
+
109 }
+
110 printf("Allocate data = %i\n", this->NUMU);
+
111 float *test_u = new float[this->NUMU];
+
112 for (size_t i = 0; i < this->NUMU; i++) {
+
113 test_u[i] = i;
+
114 }
+
115 dspm::Mat result_StateXdot = StateXdot(test_x, test_u);
+
116 delete[] test_u;
+
117}
+
+
118
+
+
119void ekf_imu13states::TestFull(bool enable_att)
+
120{
+
121 int total_N = 2048;
+
122 float pi = std::atan(1) * 4;
+
123 float gyro_err_data[] = {0.1, 0.2, 0.3}; // static constatnt error
+
124 dspm::Mat gyro_err(gyro_err_data, 3, 1);
+
125 float R[10];
+
126 for (size_t i = 0; i < 10; i++) {
+
127 R[i] = 0.01;
+
128 }
+
129
+
130 float accel0_data[] = {0, 0, 1};
+
131 float magn0_data[] = {1, 0, 0};
+
132
+
133 dspm::Mat accel0(accel0_data, 3, 1);
+
134 dspm::Mat magn0(magn0_data, 3, 1);
+
135
+
136 float dt = 0.01;
+
137
+
138 dspm::Mat gyro_data(3, 1);
+
139 int count = 0;
+
140
+
141 // Initial rotation matrix
+ + +
144
+
145 gyro_err *= 1;
+
146
+
147 std::cout << "Gyro error: " << gyro_err.t() << std::endl;
+
148 for (size_t n = 1; n < total_N * 3; n++) {
+
149 if ((n % 1000) == 0) {
+
150 std::cout << "Loop " << n << " from " << total_N * 16;
+
151 std::cout << ", State data : " << this->X.t();
+
152 }
+
153 gyro_data *= 0; // reset gyro value
+
154 if ((n >= (total_N / 2)) && (n < total_N * 12)) {
+
155 gyro_data(0, 0) = 1 / pi * std::cos(-pi / 2 + pi / 2 * count * 2 / (total_N / 10));
+
156 gyro_data(1, 0) = 2 / pi * std::cos(-pi / 2 + pi / 2 * count * 2 / (total_N / 10));
+
157 gyro_data(2, 0) = 3 / pi * std::cos(-pi / 2 + pi / 2 * count * 2 / (total_N / 10));
+
158 count++;
+
159 }
+
160 dspm::Mat gyro_sample = gyro_data + gyro_err;
+
161
+
162 gyro_data *= dt;
+
163 Re = this->eul2rotm(gyro_data.data); // Calculate rotation to gyro angel
+
164 Rm = Rm * Re; // Rotate original matrix
+
165 dspm::Mat attitude = ekf::rotm2quat(Rm);
+
166 // We have to rotate accel and magn to the opposite direction
+
167 dspm::Mat accel_data = Rm.t() * accel0;
+
168 dspm::Mat magn_data = Rm.t() * magn0;
+
169
+
170 dspm::Mat accel_norm = accel_data / accel_data.norm();
+
171 dspm::Mat magn_norm = magn_data / magn_data.norm();
+
172
+
173 float input_u[] = {gyro_sample(0, 0), gyro_sample(1, 0), gyro_sample(2, 0)};
+
174 // Process input values to new state
+
175 this->Process(input_u, dt);
+
176 dspm::Mat q_norm(this->X.data, 4, 1);
+
177 q_norm /= q_norm.norm();
+
178
+
179 if (true == enable_att) {
+
180 this->UpdateRefMeasurement(accel_norm.data, magn_norm.data, attitude.data, R);
+
181 } else {
+
182 this->UpdateRefMeasurement(accel_norm.data, magn_norm.data, R);
+
183 }
+
184 }
+
185 std::cout << "Final State data : " << this->X.t() << std::endl;
+
186}
+
+
187
+
+
188void ekf_imu13states::UpdateRefMeasurement(float *accel_data, float *magn_data, float R[6])
+
189{
+
190 dspm::Mat quat(this->X.data, 4, 1);
+
191 dspm::Mat H = 0 * dspm::Mat(6, this->NUMX);
+
192 dspm::Mat Re = this->quat2rotm(quat.data).t();
+
193
+
194 // dAccel/dq
+
195 dspm::Mat dAccel_dq = ekf::dFdq_inv(this->accel0, quat);
+
196 H.Copy(dAccel_dq, 3, 0);
+
197
+
198 // dMagn/dq
+
199 dspm::Mat magn(&this->X.data[7], 3, 1);
+
200 dspm::Mat magn_offset(&this->X.data[10], 3, 1);
+
201 dspm::Mat dMagn_dq = ekf::dFdq_inv(magn, quat);
+
202 H.Copy(dMagn_dq, 0, 0);
+
203
+
204 dspm::Mat expected_magn = Re * magn + magn_offset;
+
205 dspm::Mat expected_accel = Re * this->accel0;
+
206
+
207 float measured_data[6];
+
208 float expected_data[6];
+
209 for (size_t i = 0; i < 3; i++) {
+
210 measured_data[i] = magn_data[i];
+
211 expected_data[i] = expected_magn.data[i];
+
212 measured_data[i + 3] = accel_data[i];
+
213 expected_data[i + 3] = expected_accel.data[i];
+
214 }
+
215
+
216 this->Update(H, measured_data, expected_data, R);
+
217 quat /= quat.norm();
+
218}
+
+
219
+
+
220void ekf_imu13states::UpdateRefMeasurementMagn(float *accel_data, float *magn_data, float R[6])
+
221{
+
222 dspm::Mat quat(this->X.data, 4, 1);
+
223 dspm::Mat H = 0 * dspm::Mat(6, this->NUMX);
+
224 dspm::Mat Re = this->quat2rotm(quat.data).t();
+
225
+
226 // We include these two line to update magnetometer initial state
+
227 H.Copy(Re, 0, 7);
+
228 H.Copy(dspm::Mat::eye(3), 0, 10);
+
229
+
230 // dAccel/dq
+
231 dspm::Mat dAccel_dq = ekf::dFdq_inv(this->accel0, quat);
+
232 H.Copy(dAccel_dq, 3, 0);
+
233
+
234 // dMagn/dq
+
235 dspm::Mat magn(&this->X.data[7], 3, 1);
+
236 dspm::Mat magn_offset(&this->X.data[10], 3, 1);
+
237 dspm::Mat dMagn_dq = ekf::dFdq_inv(magn, quat);
+
238 H.Copy(dMagn_dq, 0, 0);
+
239
+
240 dspm::Mat expected_magn = Re * magn + magn_offset;
+
241 dspm::Mat expected_accel = Re * this->accel0;
+
242
+
243 float measured_data[6];
+
244 float expected_data[6];
+
245 for (size_t i = 0; i < 3; i++) {
+
246 measured_data[i] = magn_data[i];
+
247 expected_data[i] = expected_magn.data[i];
+
248 measured_data[i + 3] = accel_data[i];
+
249 expected_data[i + 3] = expected_accel.data[i];
+
250 }
+
251
+
252 this->Update(H, measured_data, expected_data, R);
+
253 quat /= quat.norm();
+
254}
+
+
255
+
+
256void ekf_imu13states::UpdateRefMeasurement(float *accel_data, float *magn_data, float *attitude, float R[10])
+
257{
+
258 dspm::Mat quat(this->X.data, 4, 1);
+
259 dspm::Mat H = 0 * dspm::Mat(10, this->NUMX);
+
260 dspm::Mat Re = this->quat2rotm(quat.data).t();
+
261
+
262 H.Copy(Re, 0, 7);
+
263 H.Copy(dspm::Mat::eye(3), 0, 10);
+
264 // dAccel/dq
+
265 dspm::Mat dAccel_dq = ekf::dFdq_inv(this->accel0, quat);
+
266 H.Copy(dAccel_dq, 3, 0);
+
267 // dMagn/dq
+
268 dspm::Mat magn(&this->X.data[7], 3, 1);
+
269 dspm::Mat magn_offset(&this->X.data[10], 3, 1);
+
270 dspm::Mat dMagn_dq = ekf::dFdq_inv(magn, quat);
+
271 H.Copy(dMagn_dq, 0, 0);
+
272
+
273 // dq/dq
+
274 H.Copy(dspm::Mat::eye(4), 6, 1);
+
275
+
276 dspm::Mat expected_magn = Re * magn + magn_offset;
+
277 dspm::Mat expected_accel = Re * this->accel0;
+
278
+
279 float measured_data[10];
+
280 float expected_data[10];
+
281 for (size_t i = 0; i < 3; i++) {
+
282 measured_data[i] = magn_data[i];
+
283 expected_data[i] = expected_magn.data[i];
+
284 measured_data[i + 3] = accel_data[i];
+
285 expected_data[i + 3] = expected_accel.data[i];
+
286 }
+
287 for (size_t i = 0; i < 4; i++) {
+
288 measured_data[i + 6] = attitude[i];
+
289 expected_data[i + 6] = this->X.data[i];
+
290 }
+
291
+
292 this->Update(H, measured_data, expected_data, R);
+
293 quat /= quat.norm();
+
294}
+
+
Matrix.
Definition mat.h:30
+
Mat Get(int row_start, int row_size, int col_start, int col_size)
Definition mat.cpp:209
+
float * data
Definition mat.h:37
+
float norm(void)
Definition mat.cpp:456
+
static Mat eye(int size)
Definition mat.cpp:394
+
void Copy(const Mat &src, int row_pos, int col_pos)
Definition mat.cpp:168
+
Mat t()
Definition mat.cpp:383
+ + + +
void TestFull(bool enable_att)
+
virtual ~ekf_imu13states()
+
void UpdateRefMeasurement(float *accel_data, float *magn_data, float R[6])
+
virtual void LinearizeFG(dspm::Mat &x, float *u)
+ +
void UpdateRefMeasurementMagn(float *accel_data, float *magn_data, float R[6])
+ +
virtual dspm::Mat StateXdot(dspm::Mat &x, float *u)
+
virtual void Init()
+
static dspm::Mat rotm2quat(dspm::Mat &R)
Definition ekf.cpp:305
+
dspm::Mat & F
Definition ekf.h:78
+
static dspm::Mat dFdq_inv(dspm::Mat &vector, dspm::Mat &quat)
Definition ekf.cpp:389
+
virtual void Process(float *u, float dt)
Definition ekf.cpp:53
+
ekf(int x, int w)
Definition ekf.cpp:19
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
int NUMX
Definition ekf.h:63
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
dspm::Mat & G
Definition ekf.h:82
+
virtual void Update(dspm::Mat &H, float *measured, float *expected, float *R)
Definition ekf.cpp:149
+
dspm::Mat & X
Definition ekf.h:73
+
dspm::Mat & Q
Definition ekf.h:92
+
static dspm::Mat qProduct(float *q)
Definition ekf.cpp:112
+
static dspm::Mat SkewSym4x4(float *w)
Definition ekf.cpp:81
+ +
float x[1024]
Definition test_fir.c:10
+
const int n
Definition test_mmult.c:17
+
+
+
+ + + + diff --git a/docs/html/ekf__imu13states_8h.html b/docs/html/ekf__imu13states_8h.html new file mode 100644 index 0000000..1588cfc --- /dev/null +++ b/docs/html/ekf__imu13states_8h.html @@ -0,0 +1,132 @@ + + + + + + + +ESP-IDF Firmware: ekf_imu13states.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf_imu13states.h File Reference
+
+
+
#include "ekf.h"
+
+Include dependency graph for ekf_imu13states.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  ekf_imu13states
 This class is used to process and calculate attitude from imu sensors. More...
+
+
+ +
+ + + + diff --git a/docs/html/ekf__imu13states_8h.js b/docs/html/ekf__imu13states_8h.js new file mode 100644 index 0000000..6c1b1bb --- /dev/null +++ b/docs/html/ekf__imu13states_8h.js @@ -0,0 +1,4 @@ +var ekf__imu13states_8h = +[ + [ "ekf_imu13states", "classekf__imu13states.html", "classekf__imu13states" ] +]; \ No newline at end of file diff --git a/docs/html/ekf__imu13states_8h__dep__incl.md5 b/docs/html/ekf__imu13states_8h__dep__incl.md5 new file mode 100644 index 0000000..9545c7d --- /dev/null +++ b/docs/html/ekf__imu13states_8h__dep__incl.md5 @@ -0,0 +1 @@ +99350c8723cf3acd21e84df2efd22611 \ No newline at end of file diff --git a/docs/html/ekf__imu13states_8h__dep__incl.svg b/docs/html/ekf__imu13states_8h__dep__incl.svg new file mode 100644 index 0000000..929231c --- /dev/null +++ b/docs/html/ekf__imu13states_8h__dep__incl.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ekf_imu13states.h + + +Node1 + + +ekf_imu13states.h + + + + + +Node2 + + +ekf_imu13states.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +graphics_support.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +graphics_support.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +graphics_support.h + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +kalman_filter_demo.cpp + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +kalman_filter_demo.cpp + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +kalman_filter_demo.cpp + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_demo.cpp + + + + + +Node1->Node12 + + + + + + + + +Node4 + + +graphics_support.cpp + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +graphics_support.cpp + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +graphics_support.cpp + + + + + +Node7->Node8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/ekf__imu13states_8h__dep__incl_org.svg b/docs/html/ekf__imu13states_8h__dep__incl_org.svg new file mode 100644 index 0000000..63d2a3c --- /dev/null +++ b/docs/html/ekf__imu13states_8h__dep__incl_org.svg @@ -0,0 +1,219 @@ + + + + + + +ekf_imu13states.h + + +Node1 + + +ekf_imu13states.h + + + + + +Node2 + + +ekf_imu13states.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +graphics_support.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +graphics_support.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +graphics_support.h + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +kalman_filter_demo.cpp + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +kalman_filter_demo.cpp + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +kalman_filter_demo.cpp + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_demo.cpp + + + + + +Node1->Node12 + + + + + + + + +Node4 + + +graphics_support.cpp + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +graphics_support.cpp + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +graphics_support.cpp + + + + + +Node7->Node8 + + + + + + + + diff --git a/docs/html/ekf__imu13states_8h__incl.md5 b/docs/html/ekf__imu13states_8h__incl.md5 new file mode 100644 index 0000000..946fc61 --- /dev/null +++ b/docs/html/ekf__imu13states_8h__incl.md5 @@ -0,0 +1 @@ +cb3df38b1ae547d7df0c7a8b425b5fe9 \ No newline at end of file diff --git a/docs/html/ekf__imu13states_8h__incl.svg b/docs/html/ekf__imu13states_8h__incl.svg new file mode 100644 index 0000000..910cb55 --- /dev/null +++ b/docs/html/ekf__imu13states_8h__incl.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + +ekf_imu13states.h + + +Node1 + + +ekf_imu13states.h + + + + + +Node2 + + +ekf.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +math.h + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +mat.h + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +iostream + + + + + +Node6->Node7 + + + + + + + + + + + + + diff --git a/docs/html/ekf__imu13states_8h__incl_org.svg b/docs/html/ekf__imu13states_8h__incl_org.svg new file mode 100644 index 0000000..6c7e6b0 --- /dev/null +++ b/docs/html/ekf__imu13states_8h__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +ekf_imu13states.h + + +Node1 + + +ekf_imu13states.h + + + + + +Node2 + + +ekf.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +math.h + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +mat.h + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +iostream + + + + + +Node6->Node7 + + + + + + + + diff --git a/docs/html/ekf__imu13states_8h_source.html b/docs/html/ekf__imu13states_8h_source.html new file mode 100644 index 0000000..fc154df --- /dev/null +++ b/docs/html/ekf__imu13states_8h_source.html @@ -0,0 +1,169 @@ + + + + + + + +ESP-IDF Firmware: ekf_imu13states.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ekf_imu13states.h
+
+
+Go to the documentation of this file.
1// Copyright 2020-2021 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _ekf_imu13states_H_
+
16#define _ekf_imu13states_H_
+
17
+
18#include "ekf.h"
+
19
+
+
31class ekf_imu13states: public ekf {
+
32public:
+ +
34 virtual ~ekf_imu13states();
+
35 virtual void Init();
+
36
+
37 // Method calculates Xdot values depends on U
+
38 // U - gyroscope values in radian per seconds (rad/sec)
+
39 virtual dspm::Mat StateXdot(dspm::Mat &x, float *u);
+
40 virtual void LinearizeFG(dspm::Mat &x, float *u);
+
41
+
45 void Test();
+
51 void TestFull(bool enable_att);
+
52
+ + +
61
+
65 int NUMU;
+
66
+
76 void UpdateRefMeasurement(float *accel_data, float *magn_data, float R[6]);
+
85 void UpdateRefMeasurementMagn(float *accel_data, float *magn_data, float R[6]);
+
94 void UpdateRefMeasurement(float *accel_data, float *magn_data, float *attitude, float R[10]);
+
95
+
96};
+
+
97
+
98#endif // _ekf_imu13states_H_
+
Matrix.
Definition mat.h:30
+ + + +
void TestFull(bool enable_att)
+
virtual ~ekf_imu13states()
+
void UpdateRefMeasurement(float *accel_data, float *magn_data, float R[6])
+
virtual void LinearizeFG(dspm::Mat &x, float *u)
+ +
void UpdateRefMeasurementMagn(float *accel_data, float *magn_data, float R[6])
+ +
virtual dspm::Mat StateXdot(dspm::Mat &x, float *u)
+
virtual void Init()
+
ekf(int x, int w)
Definition ekf.cpp:19
+ +
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/esp__attr_8h.html b/docs/html/esp__attr_8h.html new file mode 100644 index 0000000..79e29e1 --- /dev/null +++ b/docs/html/esp__attr_8h.html @@ -0,0 +1,120 @@ + + + + + + + +ESP-IDF Firmware: esp_attr.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_attr.h File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/esp__attr_8h__dep__incl.md5 b/docs/html/esp__attr_8h__dep__incl.md5 new file mode 100644 index 0000000..9a1b83f --- /dev/null +++ b/docs/html/esp__attr_8h__dep__incl.md5 @@ -0,0 +1 @@ +46eab40db44e424fbc89eecf64914426 \ No newline at end of file diff --git a/docs/html/esp__attr_8h__dep__incl.svg b/docs/html/esp__attr_8h__dep__incl.svg new file mode 100644 index 0000000..731972d --- /dev/null +++ b/docs/html/esp__attr_8h__dep__incl.svg @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +esp_attr.h + + +Node1 + + +esp_attr.h + + + + + +Node2 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +main.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +vfs_tinyusb.c + + + + + +Node1->Node8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/esp__attr_8h__dep__incl_org.svg b/docs/html/esp__attr_8h__dep__incl_org.svg new file mode 100644 index 0000000..bb6862d --- /dev/null +++ b/docs/html/esp__attr_8h__dep__incl_org.svg @@ -0,0 +1,147 @@ + + + + + + +esp_attr.h + + +Node1 + + +esp_attr.h + + + + + +Node2 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +main.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +vfs_tinyusb.c + + + + + +Node1->Node8 + + + + + + + + diff --git a/docs/html/esp__attr_8h_source.html b/docs/html/esp__attr_8h_source.html new file mode 100644 index 0000000..5800c38 --- /dev/null +++ b/docs/html/esp__attr_8h_source.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: esp_attr.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_attr.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 spressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15// This file include defenitions that are emulate esp-idf error codes
+
16
+
17#ifndef _esp_attr_h_
+
18#define _esp_attr_h_
+
19
+
20
+
21#endif // _esp_attr_h_
+
+
+
+ + + + diff --git a/docs/html/esp__dsp_8h.html b/docs/html/esp__dsp_8h.html new file mode 100644 index 0000000..4add7a2 --- /dev/null +++ b/docs/html/esp__dsp_8h.html @@ -0,0 +1,148 @@ + + + + + + + +ESP-IDF Firmware: esp_dsp.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_dsp.h File Reference
+
+
+
#include "dsp_common.h"
+#include "dsp_types.h"
+#include "dsps_dotprod.h"
+#include "dsps_math.h"
+#include "dsps_fir.h"
+#include "dsps_resampler.h"
+#include "dsps_biquad.h"
+#include "dsps_biquad_gen.h"
+#include "dsps_wind.h"
+#include "dsps_conv.h"
+#include "dsps_corr.h"
+#include "dsps_d_gen.h"
+#include "dsps_h_gen.h"
+#include "dsps_tone_gen.h"
+#include "dsps_snr.h"
+#include "dsps_sfdr.h"
+#include "dsps_fft2r.h"
+#include "dsps_fft4r.h"
+#include "dsps_dct.h"
+#include "dspm_matrix.h"
+#include "dsps_view.h"
+#include "dspi_dotprod.h"
+#include "dspi_conv.h"
+
+Include dependency graph for esp_dsp.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/esp__dsp_8h__dep__incl.md5 b/docs/html/esp__dsp_8h__dep__incl.md5 new file mode 100644 index 0000000..06fa6d2 --- /dev/null +++ b/docs/html/esp__dsp_8h__dep__incl.md5 @@ -0,0 +1 @@ +c7da609d335dca924b748bddcac2b363 \ No newline at end of file diff --git a/docs/html/esp__dsp_8h__dep__incl.svg b/docs/html/esp__dsp_8h__dep__incl.svg new file mode 100644 index 0000000..f95734c --- /dev/null +++ b/docs/html/esp__dsp_8h__dep__incl.svg @@ -0,0 +1,698 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +esp_dsp.h + + +Node1 + + +esp_dsp.h + + + + + +Node2 + + +3d_graphics_demo.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +3d_kalman_demo.cpp + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +audio_amp_main.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +dsp_tests.h + + + + + +Node1->Node13 + + + + + + + + +Node20 + + +graphics_support.h + + + + + +Node1->Node20 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node1->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node1->Node24 + + + + + + + + +Node26 + + +init_display.c + + + + + +Node1->Node26 + + + + + + + + +Node27 + + +init_display.c + + + + + +Node1->Node27 + + + + + + + + +Node28 + + +kalman_filter_demo.cpp + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +kalman_filter_demo.cpp + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +main.c + + + + + +Node1->Node32 + + + + + + + + +Node33 + + +main.c + + + + + +Node1->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node1->Node34 + + + + + + + + +Node14 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dsps_fird_init_s16.c + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +dsps_firmr_f32_ansi.c + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +dsps_firmr_init_f32.c + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +dsps_firmr_init_s16.c + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +dsps_firmr_s16_ansi.c + + + + + +Node13->Node19 + + + + + + + + +Node21 + + +graphics_support.cpp + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/esp__dsp_8h__dep__incl_org.svg b/docs/html/esp__dsp_8h__dep__incl_org.svg new file mode 100644 index 0000000..ac859f8 --- /dev/null +++ b/docs/html/esp__dsp_8h__dep__incl_org.svg @@ -0,0 +1,615 @@ + + + + + + +esp_dsp.h + + +Node1 + + +esp_dsp.h + + + + + +Node2 + + +3d_graphics_demo.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +3d_kalman_demo.cpp + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +audio_amp_main.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +dsp_tests.h + + + + + +Node1->Node13 + + + + + + + + +Node20 + + +graphics_support.h + + + + + +Node1->Node20 + + + + + + + + +Node22 + + +graphics_support.h + + + + + +Node1->Node22 + + + + + + + + +Node24 + + +graphics_support.h + + + + + +Node1->Node24 + + + + + + + + +Node26 + + +init_display.c + + + + + +Node1->Node26 + + + + + + + + +Node27 + + +init_display.c + + + + + +Node1->Node27 + + + + + + + + +Node28 + + +kalman_filter_demo.cpp + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +kalman_filter_demo.cpp + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +kalman_filter_demo.cpp + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +kalman_filter_demo.cpp + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +main.c + + + + + +Node1->Node32 + + + + + + + + +Node33 + + +main.c + + + + + +Node1->Node33 + + + + + + + + +Node34 + + +main.c + + + + + +Node1->Node34 + + + + + + + + +Node14 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dsps_fird_init_s16.c + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +dsps_firmr_f32_ansi.c + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +dsps_firmr_init_f32.c + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +dsps_firmr_init_s16.c + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +dsps_firmr_s16_ansi.c + + + + + +Node13->Node19 + + + + + + + + +Node21 + + +graphics_support.cpp + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +graphics_support.cpp + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +graphics_support.cpp + + + + + +Node24->Node25 + + + + + + + + diff --git a/docs/html/esp__dsp_8h__incl.md5 b/docs/html/esp__dsp_8h__incl.md5 new file mode 100644 index 0000000..24ca83a --- /dev/null +++ b/docs/html/esp__dsp_8h__incl.md5 @@ -0,0 +1 @@ +10958e9e12fe7c89d78fbeb0920bcbcd \ No newline at end of file diff --git a/docs/html/esp__dsp_8h__incl.svg b/docs/html/esp__dsp_8h__incl.svg new file mode 100644 index 0000000..fb74631 --- /dev/null +++ b/docs/html/esp__dsp_8h__incl.svg @@ -0,0 +1,1888 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +esp_dsp.h + + +Node1 + + +esp_dsp.h + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsp_types.h + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +dsps_dotprod.h + + + + + +Node1->Node13 + + + + + + + + +Node17 + + +dsps_math.h + + + + + +Node1->Node17 + + + + + + + + +Node29 + + +dsps_fir.h + + + + + +Node1->Node29 + + + + + + + + +Node31 + + +dsps_resampler.h + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +dsps_biquad.h + + + + + +Node1->Node32 + + + + + + + + +Node34 + + +dsps_biquad_gen.h + + + + + +Node1->Node34 + + + + + + + + +Node35 + + +dsps_wind.h + + + + + +Node1->Node35 + + + + + + + + +Node42 + + +dsps_conv.h + + + + + +Node1->Node42 + + + + + + + + +Node44 + + +dsps_corr.h + + + + + +Node1->Node44 + + + + + + + + +Node45 + + +dsps_d_gen.h + + + + + +Node1->Node45 + + + + + + + + +Node46 + + +dsps_h_gen.h + + + + + +Node1->Node46 + + + + + + + + +Node47 + + +dsps_tone_gen.h + + + + + +Node1->Node47 + + + + + + + + +Node48 + + +dsps_snr.h + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +dsps_sfdr.h + + + + + +Node1->Node49 + + + + + + + + +Node50 + + +dsps_fft2r.h + + + + + +Node1->Node50 + + + + + + + + +Node53 + + +dsps_fft4r.h + + + + + +Node1->Node53 + + + + + + + + +Node55 + + +dsps_dct.h + + + + + +Node1->Node55 + + + + + + + + +Node56 + + +dspm_matrix.h + + + + + +Node1->Node56 + + + + + + + + +Node67 + + +dsps_view.h + + + + + +Node1->Node67 + + + + + + + + +Node68 + + +dspi_dotprod.h + + + + + +Node1->Node68 + + + + + + + + +Node70 + + +dspi_conv.h + + + + + +Node1->Node70 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7 + + +stdlib.h + + + + + +Node6->Node7 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +inttypes.h + + + + + +Node11->Node12 + + + + + + + + +Node13->Node5 + + + + + + + + +Node14 + + +esp_log.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dsps_dotprod_platform.h + + + + + +Node13->Node15 + + + + + + + + +Node14->Node7 + + + + + + + + +Node16 + + +sdkconfig.h + + + + + +Node15->Node16 + + + + + + + + +Node18 + + +dsps_add.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_sub.h + + + + + +Node17->Node20 + + + + + + + + +Node22 + + +dsps_mul.h + + + + + +Node17->Node22 + + + + + + + + +Node24 + + +dsps_addc.h + + + + + +Node17->Node24 + + + + + + + + +Node26 + + +dsps_mulc.h + + + + + +Node17->Node26 + + + + + + + + +Node28 + + +dsps_sqrt.h + + + + + +Node17->Node28 + + + + + + + + +Node18->Node5 + + + + + + + + +Node19 + + +dsps_add_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node19->Node16 + + + + + + + + +Node20->Node5 + + + + + + + + +Node21 + + +dsps_sub_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node16 + + + + + + + + +Node22->Node5 + + + + + + + + +Node23 + + +dsps_mul_platform.h + + + + + +Node22->Node23 + + + + + + + + +Node23->Node16 + + + + + + + + +Node24->Node5 + + + + + + + + +Node25 + + +dsps_addc_platform.h + + + + + +Node24->Node25 + + + + + + + + +Node25->Node16 + + + + + + + + +Node26->Node5 + + + + + + + + +Node27 + + +dsps_mulc_platform.h + + + + + +Node26->Node27 + + + + + + + + +Node27->Node16 + + + + + + + + +Node28->Node5 + + + + + + + + +Node29->Node2 + + + + + + + + +Node29->Node5 + + + + + + + + +Node30 + + +dsps_fir_platform.h + + + + + +Node29->Node30 + + + + + + + + +Node30->Node16 + + + + + + + + +Node31->Node5 + + + + + + + + +Node31->Node29 + + + + + + + + +Node32->Node5 + + + + + + + + +Node33 + + +dsps_biquad_platform.h + + + + + +Node32->Node33 + + + + + + + + +Node33->Node16 + + + + + + + + +Node34->Node5 + + + + + + + + +Node36 + + +dsps_wind_hann.h + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +dsps_wind_blackman.h + + + + + +Node35->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman +_harris.h + + + + + +Node35->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node35->Node39 + + + + + + + + +Node40 + + +dsps_wind_nuttall.h + + + + + +Node35->Node40 + + + + + + + + +Node41 + + +dsps_wind_flat_top.h + + + + + +Node35->Node41 + + + + + + + + +Node42->Node5 + + + + + + + + +Node43 + + +dsps_conv_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node16 + + + + + + + + +Node44->Node5 + + + + + + + + +Node44->Node43 + + + + + + + + +Node45->Node5 + + + + + + + + +Node46->Node5 + + + + + + + + +Node47->Node5 + + + + + + + + +Node48->Node5 + + + + + + + + +Node49->Node5 + + + + + + + + +Node50->Node5 + + + + + + + + +Node50->Node16 + + + + + + + + +Node51 + + +dsps_fft_tables.h + + + + + +Node50->Node51 + + + + + + + + +Node52 + + +dsps_fft2r_platform.h + + + + + +Node50->Node52 + + + + + + + + +Node52->Node16 + + + + + + + + +Node53->Node5 + + + + + + + + +Node53->Node16 + + + + + + + + +Node53->Node51 + + + + + + + + +Node54 + + +dsps_fft4r_platform.h + + + + + +Node53->Node54 + + + + + + + + +Node54->Node16 + + + + + + + + +Node55->Node5 + + + + + + + + +Node55->Node16 + + + + + + + + +Node57 + + +dspm_add.h + + + + + +Node56->Node57 + + + + + + + + +Node59 + + +dspm_addc.h + + + + + +Node56->Node59 + + + + + + + + +Node61 + + +dspm_mult.h + + + + + +Node56->Node61 + + + + + + + + +Node63 + + +dspm_mulc.h + + + + + +Node56->Node63 + + + + + + + + +Node65 + + +dspm_sub.h + + + + + +Node56->Node65 + + + + + + + + +Node57->Node5 + + + + + + + + +Node58 + + +dspm_add_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node16 + + + + + + + + +Node59->Node5 + + + + + + + + +Node60 + + +dspm_addc_platform.h + + + + + +Node59->Node60 + + + + + + + + +Node60->Node16 + + + + + + + + +Node61->Node5 + + + + + + + + +Node62 + + +dspm_mult_platform.h + + + + + +Node61->Node62 + + + + + + + + +Node62->Node16 + + + + + + + + +Node63->Node5 + + + + + + + + +Node64 + + +dspm_mulc_platform.h + + + + + +Node63->Node64 + + + + + + + + +Node64->Node16 + + + + + + + + +Node65->Node5 + + + + + + + + +Node66 + + +dspm_sub_platform.h + + + + + +Node65->Node66 + + + + + + + + +Node66->Node16 + + + + + + + + +Node67->Node5 + + + + + + + + +Node68->Node5 + + + + + + + + +Node68->Node11 + + + + + + + + +Node68->Node14 + + + + + + + + +Node69 + + +dspi_dotprod_platform.h + + + + + +Node68->Node69 + + + + + + + + +Node69->Node16 + + + + + + + + +Node70->Node5 + + + + + + + + +Node70->Node11 + + + + + + + + +Node70->Node43 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/esp__dsp_8h__incl_org.svg b/docs/html/esp__dsp_8h__incl_org.svg new file mode 100644 index 0000000..c97e8eb --- /dev/null +++ b/docs/html/esp__dsp_8h__incl_org.svg @@ -0,0 +1,1805 @@ + + + + + + +esp_dsp.h + + +Node1 + + +esp_dsp.h + + + + + +Node2 + + +dsp_common.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +dsp_types.h + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +dsps_dotprod.h + + + + + +Node1->Node13 + + + + + + + + +Node17 + + +dsps_math.h + + + + + +Node1->Node17 + + + + + + + + +Node29 + + +dsps_fir.h + + + + + +Node1->Node29 + + + + + + + + +Node31 + + +dsps_resampler.h + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +dsps_biquad.h + + + + + +Node1->Node32 + + + + + + + + +Node34 + + +dsps_biquad_gen.h + + + + + +Node1->Node34 + + + + + + + + +Node35 + + +dsps_wind.h + + + + + +Node1->Node35 + + + + + + + + +Node42 + + +dsps_conv.h + + + + + +Node1->Node42 + + + + + + + + +Node44 + + +dsps_corr.h + + + + + +Node1->Node44 + + + + + + + + +Node45 + + +dsps_d_gen.h + + + + + +Node1->Node45 + + + + + + + + +Node46 + + +dsps_h_gen.h + + + + + +Node1->Node46 + + + + + + + + +Node47 + + +dsps_tone_gen.h + + + + + +Node1->Node47 + + + + + + + + +Node48 + + +dsps_snr.h + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +dsps_sfdr.h + + + + + +Node1->Node49 + + + + + + + + +Node50 + + +dsps_fft2r.h + + + + + +Node1->Node50 + + + + + + + + +Node53 + + +dsps_fft4r.h + + + + + +Node1->Node53 + + + + + + + + +Node55 + + +dsps_dct.h + + + + + +Node1->Node55 + + + + + + + + +Node56 + + +dspm_matrix.h + + + + + +Node1->Node56 + + + + + + + + +Node67 + + +dsps_view.h + + + + + +Node1->Node67 + + + + + + + + +Node68 + + +dspi_dotprod.h + + + + + +Node1->Node68 + + + + + + + + +Node70 + + +dspi_conv.h + + + + + +Node1->Node70 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdbool.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dsp_err.h + + + + + +Node2->Node5 + + + + + + + + +Node9 + + +esp_idf_version.h + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +x86intrin.h + + + + + +Node2->Node10 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +esp_err.h + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +dsp_err_codes.h + + + + + +Node5->Node8 + + + + + + + + +Node7 + + +stdlib.h + + + + + +Node6->Node7 + + + + + + + + +Node11->Node3 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +inttypes.h + + + + + +Node11->Node12 + + + + + + + + +Node13->Node5 + + + + + + + + +Node14 + + +esp_log.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dsps_dotprod_platform.h + + + + + +Node13->Node15 + + + + + + + + +Node14->Node7 + + + + + + + + +Node16 + + +sdkconfig.h + + + + + +Node15->Node16 + + + + + + + + +Node18 + + +dsps_add.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_sub.h + + + + + +Node17->Node20 + + + + + + + + +Node22 + + +dsps_mul.h + + + + + +Node17->Node22 + + + + + + + + +Node24 + + +dsps_addc.h + + + + + +Node17->Node24 + + + + + + + + +Node26 + + +dsps_mulc.h + + + + + +Node17->Node26 + + + + + + + + +Node28 + + +dsps_sqrt.h + + + + + +Node17->Node28 + + + + + + + + +Node18->Node5 + + + + + + + + +Node19 + + +dsps_add_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node19->Node16 + + + + + + + + +Node20->Node5 + + + + + + + + +Node21 + + +dsps_sub_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node16 + + + + + + + + +Node22->Node5 + + + + + + + + +Node23 + + +dsps_mul_platform.h + + + + + +Node22->Node23 + + + + + + + + +Node23->Node16 + + + + + + + + +Node24->Node5 + + + + + + + + +Node25 + + +dsps_addc_platform.h + + + + + +Node24->Node25 + + + + + + + + +Node25->Node16 + + + + + + + + +Node26->Node5 + + + + + + + + +Node27 + + +dsps_mulc_platform.h + + + + + +Node26->Node27 + + + + + + + + +Node27->Node16 + + + + + + + + +Node28->Node5 + + + + + + + + +Node29->Node2 + + + + + + + + +Node29->Node5 + + + + + + + + +Node30 + + +dsps_fir_platform.h + + + + + +Node29->Node30 + + + + + + + + +Node30->Node16 + + + + + + + + +Node31->Node5 + + + + + + + + +Node31->Node29 + + + + + + + + +Node32->Node5 + + + + + + + + +Node33 + + +dsps_biquad_platform.h + + + + + +Node32->Node33 + + + + + + + + +Node33->Node16 + + + + + + + + +Node34->Node5 + + + + + + + + +Node36 + + +dsps_wind_hann.h + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +dsps_wind_blackman.h + + + + + +Node35->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman +_harris.h + + + + + +Node35->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node35->Node39 + + + + + + + + +Node40 + + +dsps_wind_nuttall.h + + + + + +Node35->Node40 + + + + + + + + +Node41 + + +dsps_wind_flat_top.h + + + + + +Node35->Node41 + + + + + + + + +Node42->Node5 + + + + + + + + +Node43 + + +dsps_conv_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node16 + + + + + + + + +Node44->Node5 + + + + + + + + +Node44->Node43 + + + + + + + + +Node45->Node5 + + + + + + + + +Node46->Node5 + + + + + + + + +Node47->Node5 + + + + + + + + +Node48->Node5 + + + + + + + + +Node49->Node5 + + + + + + + + +Node50->Node5 + + + + + + + + +Node50->Node16 + + + + + + + + +Node51 + + +dsps_fft_tables.h + + + + + +Node50->Node51 + + + + + + + + +Node52 + + +dsps_fft2r_platform.h + + + + + +Node50->Node52 + + + + + + + + +Node52->Node16 + + + + + + + + +Node53->Node5 + + + + + + + + +Node53->Node16 + + + + + + + + +Node53->Node51 + + + + + + + + +Node54 + + +dsps_fft4r_platform.h + + + + + +Node53->Node54 + + + + + + + + +Node54->Node16 + + + + + + + + +Node55->Node5 + + + + + + + + +Node55->Node16 + + + + + + + + +Node57 + + +dspm_add.h + + + + + +Node56->Node57 + + + + + + + + +Node59 + + +dspm_addc.h + + + + + +Node56->Node59 + + + + + + + + +Node61 + + +dspm_mult.h + + + + + +Node56->Node61 + + + + + + + + +Node63 + + +dspm_mulc.h + + + + + +Node56->Node63 + + + + + + + + +Node65 + + +dspm_sub.h + + + + + +Node56->Node65 + + + + + + + + +Node57->Node5 + + + + + + + + +Node58 + + +dspm_add_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node16 + + + + + + + + +Node59->Node5 + + + + + + + + +Node60 + + +dspm_addc_platform.h + + + + + +Node59->Node60 + + + + + + + + +Node60->Node16 + + + + + + + + +Node61->Node5 + + + + + + + + +Node62 + + +dspm_mult_platform.h + + + + + +Node61->Node62 + + + + + + + + +Node62->Node16 + + + + + + + + +Node63->Node5 + + + + + + + + +Node64 + + +dspm_mulc_platform.h + + + + + +Node63->Node64 + + + + + + + + +Node64->Node16 + + + + + + + + +Node65->Node5 + + + + + + + + +Node66 + + +dspm_sub_platform.h + + + + + +Node65->Node66 + + + + + + + + +Node66->Node16 + + + + + + + + +Node67->Node5 + + + + + + + + +Node68->Node5 + + + + + + + + +Node68->Node11 + + + + + + + + +Node68->Node14 + + + + + + + + +Node69 + + +dspi_dotprod_platform.h + + + + + +Node68->Node69 + + + + + + + + +Node69->Node16 + + + + + + + + +Node70->Node5 + + + + + + + + +Node70->Node11 + + + + + + + + +Node70->Node43 + + + + + + + + diff --git a/docs/html/esp__dsp_8h_source.html b/docs/html/esp__dsp_8h_source.html new file mode 100644 index 0000000..149ae79 --- /dev/null +++ b/docs/html/esp__dsp_8h_source.html @@ -0,0 +1,196 @@ + + + + + + + +ESP-IDF Firmware: esp_dsp.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_dsp.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2023 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _esp_dsp_H_
+
16#define _esp_dsp_H_
+
17
+
18#ifdef __cplusplus
+
19extern "C"
+
20{
+
21#endif
+
22
+
23// Common includes
+
24#include "dsp_common.h"
+
25#include "dsp_types.h"
+
26
+
27// Signal processing
+
28#include "dsps_dotprod.h"
+
29#include "dsps_math.h"
+
30#include "dsps_fir.h"
+
31#include "dsps_resampler.h"
+
32#include "dsps_biquad.h"
+
33#include "dsps_biquad_gen.h"
+
34#include "dsps_wind.h"
+
35#include "dsps_conv.h"
+
36#include "dsps_corr.h"
+
37
+
38#include "dsps_d_gen.h"
+
39#include "dsps_h_gen.h"
+
40#include "dsps_tone_gen.h"
+
41#include "dsps_snr.h"
+
42#include "dsps_sfdr.h"
+
43
+
44#include "dsps_fft2r.h"
+
45#include "dsps_fft4r.h"
+
46#include "dsps_dct.h"
+
47
+
48// Matrix operations
+
49#include "dspm_matrix.h"
+
50
+
51// Support functions
+
52#include "dsps_view.h"
+
53
+
54// Image processing functions:
+
55#include "dspi_dotprod.h"
+
56#include "dspi_conv.h"
+
57
+
58#ifdef __cplusplus
+
59}
+
60#endif
+
61
+
62#ifdef __cplusplus
+
63#include "mat.h"
+
64#endif
+
65
+
66#endif // _esp_dsp_H_
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + diff --git a/docs/html/esp__err_8h.html b/docs/html/esp__err_8h.html new file mode 100644 index 0000000..bee805a --- /dev/null +++ b/docs/html/esp__err_8h.html @@ -0,0 +1,190 @@ + + + + + + + +ESP-IDF Firmware: esp_err.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_err.h File Reference
+
+
+
#include <stdlib.h>
+
+Include dependency graph for esp_err.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Macros

#define ESP_OK   0
#define M_PI   3.14159265358979323846
+ + +

+Typedefs

typedef int esp_err_t
+

Macro Definition Documentation

+ +

◆ ESP_OK

+ +
+
+ + + + +
#define ESP_OK   0
+
+ +

Definition at line 23 of file esp_err.h.

+ +

Referenced by adc_calibration_init(), adc_fft_task(), alloc_obj(), app_fbm320_init(), app_fbm320_init(), app_fbm320_init(), app_fbm320_init(), app_mag3110_init(), app_mag3110_init(), app_mag3110_init(), app_mag3110_init(), apply_path(), bsp_enable_feature(), bsp_enable_feature(), bsp_i2c_init(), bsp_spi_init(), bsp_spi_init(), cdc_obj_check(), dsp_display_brightness_init(), dsp_display_brightness_init(), dsp_display_new(), dspi_conv_f32_ansi(), dspi_dotprod_f32_ansi(), dspi_dotprod_off_f32_ansi(), dspi_dotprod_off_s16_ansi(), dspi_dotprod_off_s8_ansi(), dspi_dotprod_off_u16_ansi(), dspi_dotprod_off_u8_ansi(), dspi_dotprod_s16_ansi(), dspi_dotprod_s8_ansi(), dspi_dotprod_u16_ansi(), dspi_dotprod_u8_ansi(), dspm_add_f32_ansi(), dspm_addc_f32_ansi(), dspm_mulc_f32_ansi(), dspm_mult_ex_f32_ansi(), dspm_mult_f32_ansi(), dspm_mult_s16_ansi(), dspm_sub_f32_ansi(), dsps_16_array_rev(), dsps_add_f32_ansi(), dsps_add_s16_ansi(), dsps_add_s8_ansi(), dsps_addc_f32_ansi(), dsps_biquad_f32_ansi(), dsps_biquad_gen_allpass180_f32(), dsps_biquad_gen_allpass360_f32(), dsps_biquad_gen_bpf0db_f32(), dsps_biquad_gen_bpf_f32(), dsps_biquad_gen_highShelf_f32(), dsps_biquad_gen_hpf_f32(), dsps_biquad_gen_lowShelf_f32(), dsps_biquad_gen_lpf_f32(), dsps_biquad_gen_notch_f32(), dsps_biquad_gen_peakingEQ_f32(), dsps_biquad_sf32_ansi(), dsps_bit_rev4r_direct_fc32_ansi(), dsps_bit_rev_fc32_ansi(), dsps_bit_rev_lookup_fc32_ansi(), dsps_bit_rev_sc16_ansi(), dsps_ccorr_f32_ansi(), dsps_conv_f32_ansi(), dsps_corr_f32_ansi(), dsps_cplx2real_fc32_ansi_(), dsps_cplx2real_sc16_ansi(), dsps_cplx2reC_fc32_ansi(), dsps_cplx2reC_sc16(), dsps_cplx_gen_ansi(), dsps_cplx_gen_freq_set(), dsps_cplx_gen_init(), dsps_cplx_gen_phase_set(), dsps_cplx_gen_set(), dsps_d_gen_f32(), dsps_dct_f32(), dsps_dct_f32_ref(), dsps_dct_inv_f32(), dsps_dct_inverce_f32_ref(), dsps_dctiv_f32(), dsps_dotprod_f32_ansi(), dsps_dotprod_s16_ansi(), dsps_dotprode_f32_ansi(), dsps_dstiv_f32(), dsps_fft2r_fc32_ansi_(), dsps_fft2r_init_fc32(), dsps_fft2r_init_sc16(), dsps_fft2r_sc16_ansi_(), dsps_fft4r_fc32_ansi_(), dsps_fft4r_init_fc32(), dsps_fir_f32_ansi(), dsps_fir_f32_free(), dsps_fir_init_f32(), dsps_fird_init_f32(), dsps_fird_init_s16(), dsps_fird_s16_aexx_free(), dsps_firmr_init_f32(), dsps_firmr_init_s16(), dsps_gen_bitrev2r_table(), dsps_gen_bitrev4r_table(), dsps_gen_w_r2_fc32(), dsps_gen_w_r2_sc16(), dsps_h_gen_f32(), dsps_mul_f32_ansi(), dsps_mul_s16_ansi(), dsps_mul_s8_ansi(), dsps_mulc_f32_ansi(), dsps_mulc_s16_ansi(), dsps_resampler_mr_init(), dsps_resampler_ph_init(), dsps_sqrt_f32_ansi(), dsps_sub_f32_ansi(), dsps_sub_s16_ansi(), dsps_sub_s8_ansi(), dsps_tone_gen_f32(), esp_tusb_deinit_console(), esp_tusb_init_console(), esp_vfs_tusb_cdc_register(), esp_vfs_tusb_cdc_unregister(), get_initial_pressure(), get_pressure_task(), get_pressure_task(), get_pressure_task(), get_pressure_task(), kalman_filter_calibration(), kalman_filter_calibration(), kalman_filter_calibration(), kalman_filter_calibration(), led_strip_new_rmt_device(), led_strip_new_rmt_device(), led_strip_new_spi_device(), led_strip_rmt_del(), led_strip_rmt_del(), led_strip_rmt_refresh(), led_strip_rmt_refresh(), led_strip_rmt_set_pixel(), led_strip_rmt_set_pixel(), led_strip_rmt_set_pixel_rgbw(), led_strip_spi_del(), led_strip_spi_refresh(), led_strip_spi_set_pixel(), led_strip_spi_set_pixel_rgbw(), microphone_read_task(), microphone_read_task(), mpu6050_init(), mpu6050_init(), mpu6050_init(), mpu6050_init(), read_from_rx_unread_to_buffer(), redirect_std_streams_to(), restore_std_streams(), ringbuf_mux_give(), ringbuf_mux_take(), rmt_del_led_strip_encoder(), rmt_led_strip_encoder_reset(), rmt_new_led_strip_encoder(), safe_cdcacm_write_flush(), sample_to_centered(), sample_to_volts(), save_state_vectors_task(), save_state_vectors_task(), save_state_vectors_task(), save_state_vectors_task(), test_iir_biquad(), tinyusb_cdc_deinit(), tinyusb_cdc_init(), tinyusb_cdcacm_read(), tinyusb_cdcacm_register_callback(), tinyusb_cdcacm_unregister_callback(), tinyusb_cdcacm_write_flush(), tinyusb_driver_install(), tusb_cdc_acm_init(), tusb_cdc_comm_init(), tusb_cdc_data_init(), tusb_cdc_deinit_comm(), tusb_cdc_deinit_data(), tusb_run_task(), tusb_stop_task(), wave_gen_init(), wave_gen_sdm_start(), wave_gen_sdm_stop(), wave_gen_start(), wave_gen_stop(), and wave_gen_task().

+ +
+
+ +

◆ M_PI

+ + +

Typedef Documentation

+ +

◆ esp_err_t

+ +
+
+ + + + +
typedef int esp_err_t
+
+ +

Definition at line 21 of file esp_err.h.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/esp__err_8h.js b/docs/html/esp__err_8h.js new file mode 100644 index 0000000..402d248 --- /dev/null +++ b/docs/html/esp__err_8h.js @@ -0,0 +1,6 @@ +var esp__err_8h = +[ + [ "ESP_OK", "esp__err_8h.html#abdbffa06442bc1fe3d65dbb8d17656d1", null ], + [ "M_PI", "esp__err_8h.html#ae71449b1cc6e6250b91f539153a7a0d3", null ], + [ "esp_err_t", "esp__err_8h.html#a8bc4f6626a2d4ebd67533c56064ccda8", null ] +]; \ No newline at end of file diff --git a/docs/html/esp__err_8h__dep__incl.md5 b/docs/html/esp__err_8h__dep__incl.md5 new file mode 100644 index 0000000..b746a16 --- /dev/null +++ b/docs/html/esp__err_8h__dep__incl.md5 @@ -0,0 +1 @@ +9acfb4f83c76118f3d983643a4f17b12 \ No newline at end of file diff --git a/docs/html/esp__err_8h__dep__incl.svg b/docs/html/esp__err_8h__dep__incl.svg new file mode 100644 index 0000000..2cb1848 --- /dev/null +++ b/docs/html/esp__err_8h__dep__incl.svg @@ -0,0 +1,1778 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +esp_err.h + + +Node1 + + +esp_err.h + + + + + +Node2 + + +cdc.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node48 + + +init_display.c + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +init_display.c + + + + + +Node1->Node49 + + + + + + + + +Node142 + + +led_strip.h + + + + + +Node1->Node142 + + + + + + + + +Node54 + + +main.c + + + + + +Node1->Node54 + + + + + + + + +Node147 + + +led_strip_interface.h + + + + + +Node1->Node147 + + + + + + + + +Node148 + + +led_strip_rmt.h + + + + + +Node1->Node148 + + + + + + + + +Node149 + + +led_strip_spi.h + + + + + +Node1->Node149 + + + + + + + + +Node55 + + +main.c + + + + + +Node1->Node55 + + + + + + + + +Node56 + + +main.c + + + + + +Node1->Node56 + + + + + + + + +Node150 + + +tinyusb.c + + + + + +Node1->Node150 + + + + + + + + +Node151 + + +tinyusb.h + + + + + +Node1->Node151 + + + + + + + + +Node153 + + +tusb_cdc_acm.c + + + + + +Node1->Node153 + + + + + + + + +Node157 + + +tusb_console.h + + + + + +Node1->Node157 + + + + + + + + +Node158 + + +tusb_tasks.h + + + + + +Node1->Node158 + + + + + + + + +Node159 + + +vfs_tinyusb.h + + + + + +Node1->Node159 + + + + + + + + +Node160 + + +wave_gen.h + + + + + +Node1->Node160 + + + + + + + + +Node4 + + +dsp_common.h + + + + + +Node3->Node4 + + + + + + + + +Node15 + + +dsps_fir.h + + + + + +Node3->Node15 + + + + + + + + +Node26 + + +dsps_resampler.h + + + + + +Node3->Node26 + + + + + + + + +Node58 + + +dsps_mem.h + + + + + +Node3->Node58 + + + + + + + + +Node65 + + +dspi_conv.h + + + + + +Node3->Node65 + + + + + + + + +Node67 + + +dspi_dotprod.h + + + + + +Node3->Node67 + + + + + + + + +Node78 + + +dspm_add.h + + + + + +Node3->Node78 + + + + + + + + +Node82 + + +dspm_addc.h + + + + + +Node3->Node82 + + + + + + + + +Node84 + + +dspm_mulc.h + + + + + +Node3->Node84 + + + + + + + + +Node86 + + +dspm_mult.h + + + + + +Node3->Node86 + + + + + + + + +Node90 + + +dspm_sub.h + + + + + +Node3->Node90 + + + + + + + + +Node92 + + +dsps_add.h + + + + + +Node3->Node92 + + + + + + + + +Node98 + + +dsps_addc.h + + + + + +Node3->Node98 + + + + + + + + +Node100 + + +dsps_biquad.h + + + + + +Node3->Node100 + + + + + + + + +Node103 + + +dsps_biquad_gen.h + + + + + +Node3->Node103 + + + + + + + + +Node105 + + +dsps_ccorr.h + + + + + +Node3->Node105 + + + + + + + + +Node106 + + +dsps_conv.h + + + + + +Node3->Node106 + + + + + + + + +Node109 + + +dsps_corr.h + + + + + +Node3->Node109 + + + + + + + + +Node111 + + +dsps_cplx_gen.h + + + + + +Node3->Node111 + + + + + + + + +Node113 + + +dsps_d_gen.h + + + + + +Node3->Node113 + + + + + + + + +Node115 + + +dsps_dct.h + + + + + +Node3->Node115 + + + + + + + + +Node116 + + +dsps_dotprod.h + + + + + +Node3->Node116 + + + + + + + + +Node120 + + +dsps_fft2r.h + + + + + +Node3->Node120 + + + + + + + + +Node121 + + +dsps_fft4r.h + + + + + +Node3->Node121 + + + + + + + + +Node122 + + +dsps_h_gen.h + + + + + +Node3->Node122 + + + + + + + + +Node124 + + +dsps_mul.h + + + + + +Node3->Node124 + + + + + + + + +Node128 + + +dsps_mulc.h + + + + + +Node3->Node128 + + + + + + + + +Node131 + + +dsps_sfdr.h + + + + + +Node3->Node131 + + + + + + + + +Node132 + + +dsps_snr.h + + + + + +Node3->Node132 + + + + + + + + +Node133 + + +dsps_sqrt.h + + + + + +Node3->Node133 + + + + + + + + +Node135 + + +dsps_sub.h + + + + + +Node3->Node135 + + + + + + + + +Node138 + + +dsps_tone_gen.h + + + + + +Node3->Node138 + + + + + + + + +Node140 + + +dsps_view.h + + + + + +Node3->Node140 + + + + + + + + +Node5 + + +aes3_tie_log.c + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_cplx_gen_init.c + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +dsps_dct_f32.c + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +dsps_dctiv_f32.c + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +dsps_dstiv_f32.c + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node4->Node14 + + + + + + + + +Node4->Node15 + + + + + + + + +Node22 + + +dsps_firmr_f32_ansi.c + + + + + +Node4->Node22 + + + + + + + + +Node23 + + +dsps_firmr_init_f32.c + + + + + +Node4->Node23 + + + + + + + + +Node24 + + +dsps_firmr_init_s16.c + + + + + +Node4->Node24 + + + + + + + + +Node25 + + +dsps_firmr_s16_ansi.c + + + + + +Node4->Node25 + + + + + + + + +Node4->Node58 + + + + + + + + +Node15->Node22 + + + + + + + + +Node15->Node23 + + + + + + + + +Node15->Node24 + + + + + + + + +Node15->Node25 + + + + + + + + +Node15->Node26 + + + + + + + + +Node111->Node6 + + + + + + + + +Node115->Node7 + + + + + + + + +Node115->Node8 + + + + + + + + +Node115->Node9 + + + + + + + + +Node120->Node7 + + + + + + + + +Node120->Node8 + + + + + + + + +Node120->Node9 + + + + + + + + +Node120->Node10 + + + + + + + + +Node120->Node11 + + + + + + + + +Node120->Node12 + + + + + + + + +Node120->Node13 + + + + + + + + +Node120->Node14 + + + + + + + + +Node121->Node13 + + + + + + + + +Node121->Node14 + + + + + + + + +Node143 + + +led_strip_api.c + + + + + +Node142->Node143 + + + + + + + + +Node144 + + +led_strip_rmt_dev.c + + + + + +Node142->Node144 + + + + + + + + +Node145 + + +led_strip_rmt_dev_idf4.c + + + + + +Node142->Node145 + + + + + + + + +Node146 + + +led_strip_spi_dev.c + + + + + +Node142->Node146 + + + + + + + + +Node142->Node54 + + + + + + + + +Node147->Node143 + + + + + + + + +Node147->Node144 + + + + + + + + +Node147->Node145 + + + + + + + + +Node147->Node146 + + + + + + + + +Node148->Node142 + + + + + + + + +Node149->Node142 + + + + + + + + +Node151->Node54 + + + + + + + + +Node151->Node150 + + + + + + + + +Node152 + + +tusb_cdc_acm.h + + + + + +Node151->Node152 + + + + + + + + +Node154 + + +vfs_tinyusb.c + + + + + +Node151->Node154 + + + + + + + + +Node155 + + +tusb_console.c + + + + + +Node151->Node155 + + + + + + + + +Node156 + + +tusb_tasks.c + + + + + +Node151->Node156 + + + + + + + + +Node152->Node54 + + + + + + + + +Node152->Node153 + + + + + + + + +Node152->Node154 + + + + + + + + +Node157->Node155 + + + + + + + + +Node158->Node150 + + + + + + + + +Node158->Node156 + + + + + + + + +Node159->Node154 + + + + + + + + +Node159->Node155 + + + + + + + + +Node161 + + +wave_gen.c + + + + + +Node160->Node161 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/esp__err_8h__dep__incl_org.svg b/docs/html/esp__err_8h__dep__incl_org.svg new file mode 100644 index 0000000..0873afb --- /dev/null +++ b/docs/html/esp__err_8h__dep__incl_org.svg @@ -0,0 +1,1695 @@ + + + + + + +esp_err.h + + +Node1 + + +esp_err.h + + + + + +Node2 + + +cdc.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node48 + + +init_display.c + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +init_display.c + + + + + +Node1->Node49 + + + + + + + + +Node142 + + +led_strip.h + + + + + +Node1->Node142 + + + + + + + + +Node54 + + +main.c + + + + + +Node1->Node54 + + + + + + + + +Node147 + + +led_strip_interface.h + + + + + +Node1->Node147 + + + + + + + + +Node148 + + +led_strip_rmt.h + + + + + +Node1->Node148 + + + + + + + + +Node149 + + +led_strip_spi.h + + + + + +Node1->Node149 + + + + + + + + +Node55 + + +main.c + + + + + +Node1->Node55 + + + + + + + + +Node56 + + +main.c + + + + + +Node1->Node56 + + + + + + + + +Node150 + + +tinyusb.c + + + + + +Node1->Node150 + + + + + + + + +Node151 + + +tinyusb.h + + + + + +Node1->Node151 + + + + + + + + +Node153 + + +tusb_cdc_acm.c + + + + + +Node1->Node153 + + + + + + + + +Node157 + + +tusb_console.h + + + + + +Node1->Node157 + + + + + + + + +Node158 + + +tusb_tasks.h + + + + + +Node1->Node158 + + + + + + + + +Node159 + + +vfs_tinyusb.h + + + + + +Node1->Node159 + + + + + + + + +Node160 + + +wave_gen.h + + + + + +Node1->Node160 + + + + + + + + +Node4 + + +dsp_common.h + + + + + +Node3->Node4 + + + + + + + + +Node15 + + +dsps_fir.h + + + + + +Node3->Node15 + + + + + + + + +Node26 + + +dsps_resampler.h + + + + + +Node3->Node26 + + + + + + + + +Node58 + + +dsps_mem.h + + + + + +Node3->Node58 + + + + + + + + +Node65 + + +dspi_conv.h + + + + + +Node3->Node65 + + + + + + + + +Node67 + + +dspi_dotprod.h + + + + + +Node3->Node67 + + + + + + + + +Node78 + + +dspm_add.h + + + + + +Node3->Node78 + + + + + + + + +Node82 + + +dspm_addc.h + + + + + +Node3->Node82 + + + + + + + + +Node84 + + +dspm_mulc.h + + + + + +Node3->Node84 + + + + + + + + +Node86 + + +dspm_mult.h + + + + + +Node3->Node86 + + + + + + + + +Node90 + + +dspm_sub.h + + + + + +Node3->Node90 + + + + + + + + +Node92 + + +dsps_add.h + + + + + +Node3->Node92 + + + + + + + + +Node98 + + +dsps_addc.h + + + + + +Node3->Node98 + + + + + + + + +Node100 + + +dsps_biquad.h + + + + + +Node3->Node100 + + + + + + + + +Node103 + + +dsps_biquad_gen.h + + + + + +Node3->Node103 + + + + + + + + +Node105 + + +dsps_ccorr.h + + + + + +Node3->Node105 + + + + + + + + +Node106 + + +dsps_conv.h + + + + + +Node3->Node106 + + + + + + + + +Node109 + + +dsps_corr.h + + + + + +Node3->Node109 + + + + + + + + +Node111 + + +dsps_cplx_gen.h + + + + + +Node3->Node111 + + + + + + + + +Node113 + + +dsps_d_gen.h + + + + + +Node3->Node113 + + + + + + + + +Node115 + + +dsps_dct.h + + + + + +Node3->Node115 + + + + + + + + +Node116 + + +dsps_dotprod.h + + + + + +Node3->Node116 + + + + + + + + +Node120 + + +dsps_fft2r.h + + + + + +Node3->Node120 + + + + + + + + +Node121 + + +dsps_fft4r.h + + + + + +Node3->Node121 + + + + + + + + +Node122 + + +dsps_h_gen.h + + + + + +Node3->Node122 + + + + + + + + +Node124 + + +dsps_mul.h + + + + + +Node3->Node124 + + + + + + + + +Node128 + + +dsps_mulc.h + + + + + +Node3->Node128 + + + + + + + + +Node131 + + +dsps_sfdr.h + + + + + +Node3->Node131 + + + + + + + + +Node132 + + +dsps_snr.h + + + + + +Node3->Node132 + + + + + + + + +Node133 + + +dsps_sqrt.h + + + + + +Node3->Node133 + + + + + + + + +Node135 + + +dsps_sub.h + + + + + +Node3->Node135 + + + + + + + + +Node138 + + +dsps_tone_gen.h + + + + + +Node3->Node138 + + + + + + + + +Node140 + + +dsps_view.h + + + + + +Node3->Node140 + + + + + + + + +Node5 + + +aes3_tie_log.c + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dsps_cplx_gen_init.c + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +dsps_dct_f32.c + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +dsps_dctiv_f32.c + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +dsps_dstiv_f32.c + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +dsps_fft2r_fc32_ae32.c + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +dsps_fft2r_sc16_ansi.c + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +dsps_fft4r_fc32_ae32.c + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node4->Node14 + + + + + + + + +Node4->Node15 + + + + + + + + +Node22 + + +dsps_firmr_f32_ansi.c + + + + + +Node4->Node22 + + + + + + + + +Node23 + + +dsps_firmr_init_f32.c + + + + + +Node4->Node23 + + + + + + + + +Node24 + + +dsps_firmr_init_s16.c + + + + + +Node4->Node24 + + + + + + + + +Node25 + + +dsps_firmr_s16_ansi.c + + + + + +Node4->Node25 + + + + + + + + +Node4->Node58 + + + + + + + + +Node15->Node22 + + + + + + + + +Node15->Node23 + + + + + + + + +Node15->Node24 + + + + + + + + +Node15->Node25 + + + + + + + + +Node15->Node26 + + + + + + + + +Node111->Node6 + + + + + + + + +Node115->Node7 + + + + + + + + +Node115->Node8 + + + + + + + + +Node115->Node9 + + + + + + + + +Node120->Node7 + + + + + + + + +Node120->Node8 + + + + + + + + +Node120->Node9 + + + + + + + + +Node120->Node10 + + + + + + + + +Node120->Node11 + + + + + + + + +Node120->Node12 + + + + + + + + +Node120->Node13 + + + + + + + + +Node120->Node14 + + + + + + + + +Node121->Node13 + + + + + + + + +Node121->Node14 + + + + + + + + +Node143 + + +led_strip_api.c + + + + + +Node142->Node143 + + + + + + + + +Node144 + + +led_strip_rmt_dev.c + + + + + +Node142->Node144 + + + + + + + + +Node145 + + +led_strip_rmt_dev_idf4.c + + + + + +Node142->Node145 + + + + + + + + +Node146 + + +led_strip_spi_dev.c + + + + + +Node142->Node146 + + + + + + + + +Node142->Node54 + + + + + + + + +Node147->Node143 + + + + + + + + +Node147->Node144 + + + + + + + + +Node147->Node145 + + + + + + + + +Node147->Node146 + + + + + + + + +Node148->Node142 + + + + + + + + +Node149->Node142 + + + + + + + + +Node151->Node54 + + + + + + + + +Node151->Node150 + + + + + + + + +Node152 + + +tusb_cdc_acm.h + + + + + +Node151->Node152 + + + + + + + + +Node154 + + +vfs_tinyusb.c + + + + + +Node151->Node154 + + + + + + + + +Node155 + + +tusb_console.c + + + + + +Node151->Node155 + + + + + + + + +Node156 + + +tusb_tasks.c + + + + + +Node151->Node156 + + + + + + + + +Node152->Node54 + + + + + + + + +Node152->Node153 + + + + + + + + +Node152->Node154 + + + + + + + + +Node157->Node155 + + + + + + + + +Node158->Node150 + + + + + + + + +Node158->Node156 + + + + + + + + +Node159->Node154 + + + + + + + + +Node159->Node155 + + + + + + + + +Node161 + + +wave_gen.c + + + + + +Node160->Node161 + + + + + + + + diff --git a/docs/html/esp__err_8h__incl.md5 b/docs/html/esp__err_8h__incl.md5 new file mode 100644 index 0000000..a3cbea8 --- /dev/null +++ b/docs/html/esp__err_8h__incl.md5 @@ -0,0 +1 @@ +a55f74bc61e8e92df45a2b78d719e892 \ No newline at end of file diff --git a/docs/html/esp__err_8h__incl.svg b/docs/html/esp__err_8h__incl.svg new file mode 100644 index 0000000..dccbdb3 --- /dev/null +++ b/docs/html/esp__err_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_err.h + + +Node1 + + +esp_err.h + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/esp__err_8h__incl_org.svg b/docs/html/esp__err_8h__incl_org.svg new file mode 100644 index 0000000..8c82824 --- /dev/null +++ b/docs/html/esp__err_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_err.h + + +Node1 + + +esp_err.h + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/esp__err_8h_source.html b/docs/html/esp__err_8h_source.html new file mode 100644 index 0000000..d1920b3 --- /dev/null +++ b/docs/html/esp__err_8h_source.html @@ -0,0 +1,136 @@ + + + + + + + +ESP-IDF Firmware: esp_err.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_err.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 spressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15// This file include defenitions that are emulate esp-idf error codes
+
16
+
17#ifndef _esp_err_h_
+
18#define _esp_err_h_
+
19
+
20#include <stdlib.h>
+
21typedef int esp_err_t;
+
22
+
23#define ESP_OK 0
+
24
+
25#ifndef M_PI
+
26#define M_PI 3.14159265358979323846
+
27#endif // M_PI
+
28
+
29#endif // _esp_err_h_
+
int esp_err_t
Definition esp_err.h:21
+
+
+
+ + + + diff --git a/docs/html/esp__log_8h.html b/docs/html/esp__log_8h.html new file mode 100644 index 0000000..71b5d67 --- /dev/null +++ b/docs/html/esp__log_8h.html @@ -0,0 +1,150 @@ + + + + + + + +ESP-IDF Firmware: esp_log.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_log.h File Reference
+
+
+
#include <stdlib.h>
+
+Include dependency graph for esp_log.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Macros

#define ESP_LOGD
+

Macro Definition Documentation

+ +

◆ ESP_LOGD

+ + +
+
+ +
+ + + + diff --git a/docs/html/esp__log_8h.js b/docs/html/esp__log_8h.js new file mode 100644 index 0000000..dc48a24 --- /dev/null +++ b/docs/html/esp__log_8h.js @@ -0,0 +1,4 @@ +var esp__log_8h = +[ + [ "ESP_LOGD", "esp__log_8h.html#a598a18d883b6edb5341dc445d56091e1", null ] +]; \ No newline at end of file diff --git a/docs/html/esp__log_8h__dep__incl.md5 b/docs/html/esp__log_8h__dep__incl.md5 new file mode 100644 index 0000000..479db33 --- /dev/null +++ b/docs/html/esp__log_8h__dep__incl.md5 @@ -0,0 +1 @@ +b7e9b5e1f32e3447227e1d73b26d1cef \ No newline at end of file diff --git a/docs/html/esp__log_8h__dep__incl.svg b/docs/html/esp__log_8h__dep__incl.svg new file mode 100644 index 0000000..2a5b67d --- /dev/null +++ b/docs/html/esp__log_8h__dep__incl.svg @@ -0,0 +1,1468 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +esp_log.h + + +Node1 + + +esp_log.h + + + + + +Node2 + + +3d_graphics_demo.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +3d_kalman_demo.cpp + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +audio_amp_main.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +cdc.c + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +descriptors_control.c + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +dspi_conv_f32_ansi.c + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +dspi_dotprod.h + + + + + +Node1->Node16 + + + + + + + + +Node41 + + +init_display.c + + + + + +Node1->Node41 + + + + + + + + +Node42 + + +init_display.c + + + + + +Node1->Node42 + + + + + + + + +Node43 + + +kalman_filter_demo.cpp + + + + + +Node1->Node43 + + + + + + + + +Node44 + + +kalman_filter_demo.cpp + + + + + +Node1->Node44 + + + + + + + + +Node45 + + +kalman_filter_demo.cpp + + + + + +Node1->Node45 + + + + + + + + +Node46 + + +kalman_filter_demo.cpp + + + + + +Node1->Node46 + + + + + + + + +Node47 + + +main.c + + + + + +Node1->Node47 + + + + + + + + +Node48 + + +main.c + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +main.c + + + + + +Node1->Node49 + + + + + + + + +Node50 + + +dsps_biquad_gen_f32.c + + + + + +Node1->Node50 + + + + + + + + +Node51 + + +dsps_ccorr_f32_ansi.c + + + + + +Node1->Node51 + + + + + + + + +Node52 + + +dsps_conv_f32_ansi.c + + + + + +Node1->Node52 + + + + + + + + +Node53 + + +dsps_cplx_gen_init.c + + + + + +Node1->Node53 + + + + + + + + +Node54 + + +dsps_dotprod.h + + + + + +Node1->Node54 + + + + + + + + +Node60 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node60 + + + + + + + + +Node61 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node61 + + + + + + + + +Node62 + + +dsps_sfdr_f32.cpp + + + + + +Node1->Node62 + + + + + + + + +Node63 + + +dsps_snr_f32.cpp + + + + + +Node1->Node63 + + + + + + + + +Node64 + + +dsps_view.cpp + + + + + +Node1->Node64 + + + + + + + + +Node65 + + +led_strip_api.c + + + + + +Node1->Node65 + + + + + + + + +Node66 + + +led_strip_rmt_dev.c + + + + + +Node1->Node66 + + + + + + + + +Node67 + + +led_strip_rmt_dev_idf4.c + + + + + +Node1->Node67 + + + + + + + + +Node68 + + +led_strip_spi_dev.c + + + + + +Node1->Node68 + + + + + + + + +Node69 + + +mat.cpp + + + + + +Node1->Node69 + + + + + + + + +Node70 + + +tinyusb.c + + + + + +Node1->Node70 + + + + + + + + +Node71 + + +tusb_cdc_acm.c + + + + + +Node1->Node71 + + + + + + + + +Node72 + + +tusb_console.c + + + + + +Node1->Node72 + + + + + + + + +Node73 + + +tusb_tasks.c + + + + + +Node1->Node73 + + + + + + + + +Node74 + + +vfs_tinyusb.c + + + + + +Node1->Node74 + + + + + + + + +Node75 + + +wave_gen.c + + + + + +Node1->Node75 + + + + + + + + +Node17 + + +dspi_dotprod_f32_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node23 + + +dspi_dotprod_s16_ansi.c + + + + + +Node16->Node23 + + + + + + + + +Node24 + + +dspi_dotprod_s8_ansi.c + + + + + +Node16->Node24 + + + + + + + + +Node25 + + +dspi_dotprod_u16_ansi.c + + + + + +Node16->Node25 + + + + + + + + +Node26 + + +dspi_dotprod_u8_ansi.c + + + + + +Node16->Node26 + + + + + + + + +Node27 + + +esp_dsp.h + + + + + +Node16->Node27 + + + + + + + + +Node27->Node2 + + + + + + + + +Node27->Node3 + + + + + + + + +Node27->Node4 + + + + + + + + +Node27->Node5 + + + + + + + + +Node27->Node6 + + + + + + + + +Node27->Node7 + + + + + + + + +Node27->Node8 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node10 + + + + + + + + +Node27->Node11 + + + + + + + + +Node27->Node12 + + + + + + + + +Node28 + + +dsp_tests.h + + + + + +Node27->Node28 + + + + + + + + +Node35 + + +graphics_support.h + + + + + +Node27->Node35 + + + + + + + + +Node37 + + +graphics_support.h + + + + + +Node27->Node37 + + + + + + + + +Node39 + + +graphics_support.h + + + + + +Node27->Node39 + + + + + + + + +Node27->Node41 + + + + + + + + +Node27->Node42 + + + + + + + + +Node27->Node43 + + + + + + + + +Node27->Node44 + + + + + + + + +Node27->Node45 + + + + + + + + +Node27->Node46 + + + + + + + + +Node27->Node47 + + + + + + + + +Node27->Node48 + + + + + + + + +Node27->Node49 + + + + + + + + +Node54->Node27 + + + + + + + + +Node55 + + +dspm_mult_f32_ansi.c + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dspm_mult_s16_ansi.c + + + + + +Node54->Node56 + + + + + + + + +Node57 + + +dsps_dotprod_f32_ansi.c + + + + + +Node54->Node57 + + + + + + + + +Node58 + + +dsps_dotprod_s16_ansi.c + + + + + +Node54->Node58 + + + + + + + + +Node59 + + +dsps_dotprode_f32_ansi.c + + + + + +Node54->Node59 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/esp__log_8h__dep__incl_org.svg b/docs/html/esp__log_8h__dep__incl_org.svg new file mode 100644 index 0000000..059a0db --- /dev/null +++ b/docs/html/esp__log_8h__dep__incl_org.svg @@ -0,0 +1,1385 @@ + + + + + + +esp_log.h + + +Node1 + + +esp_log.h + + + + + +Node2 + + +3d_graphics_demo.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +3d_graphics_demo.cpp + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +3d_graphics_demo.cpp + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +3d_graphics_demo.cpp + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +3d_graphics_demo.cpp + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +3d_graphics_demo.cpp + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +3d_kalman_demo.cpp + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +3d_kalman_demo.cpp + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +audio_amp_main.c + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +audio_amp_main.c + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +audio_amp_main.c + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +cdc.c + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +descriptors_control.c + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +dspi_conv_f32_ansi.c + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +dspi_dotprod.h + + + + + +Node1->Node16 + + + + + + + + +Node41 + + +init_display.c + + + + + +Node1->Node41 + + + + + + + + +Node42 + + +init_display.c + + + + + +Node1->Node42 + + + + + + + + +Node43 + + +kalman_filter_demo.cpp + + + + + +Node1->Node43 + + + + + + + + +Node44 + + +kalman_filter_demo.cpp + + + + + +Node1->Node44 + + + + + + + + +Node45 + + +kalman_filter_demo.cpp + + + + + +Node1->Node45 + + + + + + + + +Node46 + + +kalman_filter_demo.cpp + + + + + +Node1->Node46 + + + + + + + + +Node47 + + +main.c + + + + + +Node1->Node47 + + + + + + + + +Node48 + + +main.c + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +main.c + + + + + +Node1->Node49 + + + + + + + + +Node50 + + +dsps_biquad_gen_f32.c + + + + + +Node1->Node50 + + + + + + + + +Node51 + + +dsps_ccorr_f32_ansi.c + + + + + +Node1->Node51 + + + + + + + + +Node52 + + +dsps_conv_f32_ansi.c + + + + + +Node1->Node52 + + + + + + + + +Node53 + + +dsps_cplx_gen_init.c + + + + + +Node1->Node53 + + + + + + + + +Node54 + + +dsps_dotprod.h + + + + + +Node1->Node54 + + + + + + + + +Node60 + + +dsps_fft2r_fc32_ansi.c + + + + + +Node1->Node60 + + + + + + + + +Node61 + + +dsps_fft4r_fc32_ansi.c + + + + + +Node1->Node61 + + + + + + + + +Node62 + + +dsps_sfdr_f32.cpp + + + + + +Node1->Node62 + + + + + + + + +Node63 + + +dsps_snr_f32.cpp + + + + + +Node1->Node63 + + + + + + + + +Node64 + + +dsps_view.cpp + + + + + +Node1->Node64 + + + + + + + + +Node65 + + +led_strip_api.c + + + + + +Node1->Node65 + + + + + + + + +Node66 + + +led_strip_rmt_dev.c + + + + + +Node1->Node66 + + + + + + + + +Node67 + + +led_strip_rmt_dev_idf4.c + + + + + +Node1->Node67 + + + + + + + + +Node68 + + +led_strip_spi_dev.c + + + + + +Node1->Node68 + + + + + + + + +Node69 + + +mat.cpp + + + + + +Node1->Node69 + + + + + + + + +Node70 + + +tinyusb.c + + + + + +Node1->Node70 + + + + + + + + +Node71 + + +tusb_cdc_acm.c + + + + + +Node1->Node71 + + + + + + + + +Node72 + + +tusb_console.c + + + + + +Node1->Node72 + + + + + + + + +Node73 + + +tusb_tasks.c + + + + + +Node1->Node73 + + + + + + + + +Node74 + + +vfs_tinyusb.c + + + + + +Node1->Node74 + + + + + + + + +Node75 + + +wave_gen.c + + + + + +Node1->Node75 + + + + + + + + +Node17 + + +dspi_dotprod_f32_ansi.c + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +dspi_dotprod_off_f32 +_ansi.c + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +dspi_dotprod_off_s16 +_ansi.c + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +dspi_dotprod_off_s8 +_ansi.c + + + + + +Node16->Node20 + + + + + + + + +Node21 + + +dspi_dotprod_off_u16 +_ansi.c + + + + + +Node16->Node21 + + + + + + + + +Node22 + + +dspi_dotprod_off_u8 +_ansi.c + + + + + +Node16->Node22 + + + + + + + + +Node23 + + +dspi_dotprod_s16_ansi.c + + + + + +Node16->Node23 + + + + + + + + +Node24 + + +dspi_dotprod_s8_ansi.c + + + + + +Node16->Node24 + + + + + + + + +Node25 + + +dspi_dotprod_u16_ansi.c + + + + + +Node16->Node25 + + + + + + + + +Node26 + + +dspi_dotprod_u8_ansi.c + + + + + +Node16->Node26 + + + + + + + + +Node27 + + +esp_dsp.h + + + + + +Node16->Node27 + + + + + + + + +Node27->Node2 + + + + + + + + +Node27->Node3 + + + + + + + + +Node27->Node4 + + + + + + + + +Node27->Node5 + + + + + + + + +Node27->Node6 + + + + + + + + +Node27->Node7 + + + + + + + + +Node27->Node8 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node10 + + + + + + + + +Node27->Node11 + + + + + + + + +Node27->Node12 + + + + + + + + +Node28 + + +dsp_tests.h + + + + + +Node27->Node28 + + + + + + + + +Node35 + + +graphics_support.h + + + + + +Node27->Node35 + + + + + + + + +Node37 + + +graphics_support.h + + + + + +Node27->Node37 + + + + + + + + +Node39 + + +graphics_support.h + + + + + +Node27->Node39 + + + + + + + + +Node27->Node41 + + + + + + + + +Node27->Node42 + + + + + + + + +Node27->Node43 + + + + + + + + +Node27->Node44 + + + + + + + + +Node27->Node45 + + + + + + + + +Node27->Node46 + + + + + + + + +Node27->Node47 + + + + + + + + +Node27->Node48 + + + + + + + + +Node27->Node49 + + + + + + + + +Node54->Node27 + + + + + + + + +Node55 + + +dspm_mult_f32_ansi.c + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dspm_mult_s16_ansi.c + + + + + +Node54->Node56 + + + + + + + + +Node57 + + +dsps_dotprod_f32_ansi.c + + + + + +Node54->Node57 + + + + + + + + +Node58 + + +dsps_dotprod_s16_ansi.c + + + + + +Node54->Node58 + + + + + + + + +Node59 + + +dsps_dotprode_f32_ansi.c + + + + + +Node54->Node59 + + + + + + + + diff --git a/docs/html/esp__log_8h__incl.md5 b/docs/html/esp__log_8h__incl.md5 new file mode 100644 index 0000000..0643260 --- /dev/null +++ b/docs/html/esp__log_8h__incl.md5 @@ -0,0 +1 @@ +e9d70cb838f1f62452a9da74e10aa918 \ No newline at end of file diff --git a/docs/html/esp__log_8h__incl.svg b/docs/html/esp__log_8h__incl.svg new file mode 100644 index 0000000..d67c471 --- /dev/null +++ b/docs/html/esp__log_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_log.h + + +Node1 + + +esp_log.h + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/esp__log_8h__incl_org.svg b/docs/html/esp__log_8h__incl_org.svg new file mode 100644 index 0000000..0cf73f8 --- /dev/null +++ b/docs/html/esp__log_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_log.h + + +Node1 + + +esp_log.h + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/esp__log_8h_source.html b/docs/html/esp__log_8h_source.html new file mode 100644 index 0000000..fb7a1eb --- /dev/null +++ b/docs/html/esp__log_8h_source.html @@ -0,0 +1,130 @@ + + + + + + + +ESP-IDF Firmware: esp_log.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_log.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2020 spressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15// This file include defenitions that are emulate esp-idf error codes
+
16
+
17#ifndef _esp_log_h_
+
18#define _esp_log_h_
+
19
+
20#include <stdlib.h>
+
21
+
22#define ESP_LOGD
+
23
+
24#endif // _esp_log_h_
+
+
+
+ + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html new file mode 100644 index 0000000..9e1d7a5 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html @@ -0,0 +1,1397 @@ + + + + + + + +ESP-IDF Firmware: audio_amp_main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
audio_amp_main.c File Reference
+
+
+
#include <stdio.h>
+#include <inttypes.h>
+#include <sdkconfig.h>
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "freertos/queue.h"
+#include "esp_log.h"
+#include "esp_dsp.h"
+#include "bsp/esp-bsp.h"
+#include <stdint.h>
+#include <math.h>
+
+Include dependency graph for external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Macros

#define BUFFER_SIZE   (64)
#define SAMPLE_RATE   (16000)
#define DEFAULT_VOLUME   (100)
+ + +

+Typedefs

typedef enum audio_set audio_set_t
+ + +

+Enumerations

enum  audio_set { AUDIO_VOLUME +, AUDIO_BASS +, AUDIO_TREBLE + }
+ + + + + + + + + + +

+Functions

static void btn_handler (void *button_handle, void *usr_data)
struct __attribute__ ((packed))
static void buttons_process_task (void *arg)
static void audio_read_task (void *arg)
static void audio_process_task (void *arg)
static void convert_short2float (int16_t *int16_data, float *float_data, int len)
static void convert_float2short (float *float_data, int16_t *int16_data, int len)
void digitalLimiter (float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
void app_main (void)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

static const char * TAG = "example"
static QueueHandle_t audio_button_q = NULL
 dumb_wav_header_t
static esp_codec_dev_handle_t spk_codec_dev = NULL
static FILE * play_file = NULL
static const char play_filename [] = BSP_SPIFFS_MOUNT_POINT"/16bit_mono_44_1_khz.wav"
static dumb_wav_header_t wav_header
static audio_set_t current_set = AUDIO_VOLUME
float iir_coeffs_lpf [5]
float iir_w_lpf [5] = {0, 0}
float iir_coeffs_hpf [5]
float iir_w_hpf [5] = {0, 0}
float lpf_gain = 0
float lpf_qFactor = 0.5
float lpf_freq = 0.01
float hpf_gain = 0
float hpf_qFactor = 1
float hpf_freq = 0.15
float full_volume = 1
int full_volume_db = -12
float full_envelope = 0
float processing_audio_buffer [(64)] = {0}
int16_t triple_audio_buffer [3 *(64)] = {0}
int audio_buffer_write_index = 0
int audio_buffer_read_index = 0
static SemaphoreHandle_t sync_read_task
+

Macro Definition Documentation

+ +

◆ BUFFER_SIZE

+ +
+
+ + + + +
#define BUFFER_SIZE   (64)
+
+
+ +

◆ DEFAULT_VOLUME

+ +
+
+ + + + +
#define DEFAULT_VOLUME   (100)
+
+
+ +

◆ SAMPLE_RATE

+ +
+
+ + + + +
#define SAMPLE_RATE   (16000)
+
+
+

Typedef Documentation

+ +

◆ audio_set_t

+ +
+
+ + + + +
typedef enum audio_set audio_set_t
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ audio_set

+ +
+
+ + + + +
enum audio_set
+
+ + + + +
Enumerator
AUDIO_VOLUME 
AUDIO_BASS 
AUDIO_TREBLE 
+ +

Definition at line 50 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+ +
+
+

Function Documentation

+ +

◆ __attribute__()

+ +
+
+ + + + + + + +
struct __attribute__ ((packed) )
+
+ +

Definition at line 31 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
39{
+
40 uint8_t ignore_0[22];
+
41 uint16_t num_channels;
+
42 uint32_t sample_rate;
+
43 uint8_t ignore_1[6];
+
44 uint16_t bits_per_sample;
+
45 uint8_t ignore_2[4];
+
46 uint32_t data_size;
+
47 uint8_t data[];
+ + +
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References audio_button_q, and button_pressed.

+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 365 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
366{
+
367 ESP_ERROR_CHECK(bsp_spiffs_mount());
+
368
+
369 // Create FreeRTOS tasks and queues
+
370 audio_button_q = xQueueCreate(10, sizeof(int));
+
371 assert (audio_button_q != NULL);
+
372
+
373 BaseType_t ret = xTaskCreate(audio_process_task, "audio_process_task", 4096, NULL, 6, NULL);
+
374 assert(ret == pdPASS);
+
375
+
376 // Init audio buttons
+
377 button_handle_t btns[BSP_BUTTON_NUM];
+
378 ESP_ERROR_CHECK(bsp_iot_button_create(btns, NULL, BSP_BUTTON_NUM));
+
379 for (int i = 0; i < BSP_BUTTON_NUM; i++) {
+
380 ESP_ERROR_CHECK(iot_button_register_cb(btns[i], BUTTON_PRESS_DOWN, btn_handler, (void *) i));
+
381 }
+
382}
+
static QueueHandle_t audio_button_q
+
static void btn_handler(void *button_handle, void *usr_data)
+
static void audio_process_task(void *arg)
+
+

References audio_button_q, audio_process_task(), and btn_handler().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ audio_process_task()

+ +
+
+ + + + + +
+ + + + + + + +
void audio_process_task (void * arg)
+
+static
+
+ +

Definition at line 155 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
156{
+
157 // Init codeac and apply the initial volume to maximum
+
158 spk_codec_dev = bsp_audio_codec_speaker_init();
+
159 assert(spk_codec_dev);
+
160 esp_codec_dev_set_out_vol(spk_codec_dev, DEFAULT_VOLUME);
+
161
+
162 // Open file and het the WAV header to set up the sample frequency, amount of channels and resolution
+
163 play_file = fopen(play_filename, "rb");
+
164 if (play_file == NULL) {
+
165 ESP_LOGW(TAG, "%s file does not exist!", play_filename);
+
166 }
+
167 // Read WAV header
+
168 if (fread((void *)&wav_header, 1, sizeof(wav_header), play_file) != sizeof(wav_header)) {
+
169 ESP_LOGW(TAG, "Error in reading file");
+
170 return;
+
171 }
+
172
+
173 ESP_LOGI(TAG, "Number of channels: %" PRIu16 "", wav_header.num_channels);
+
174 ESP_LOGI(TAG, "Bits per sample: %" PRIu16 "", wav_header.bits_per_sample);
+
175 ESP_LOGI(TAG, "Sample rate: %" PRIu32 "", wav_header.sample_rate);
+
176 ESP_LOGI(TAG, "Data size: %" PRIu32 "", wav_header.data_size);
+
177 esp_codec_dev_sample_info_t fs = {
+
178 .sample_rate = wav_header.sample_rate,
+
179 .channel = wav_header.num_channels,
+
180 .bits_per_sample = wav_header.bits_per_sample,
+
181 };
+
182 if (spk_codec_dev != NULL) {
+
183 int result = esp_codec_dev_open(spk_codec_dev, &fs);
+
184 }
+
185 // Calculate initial volume value
+
186 full_volume = exp10f((float)full_volume_db / 20);
+
187 // Calculate initial state for LPF
+ +
189 // Calculate initial state for HPF
+ +
191
+
192 BaseType_t ret = xTaskCreate(buttons_process_task, "buttons_process_task", 4096, NULL, 4, NULL);
+
193 assert(ret == pdPASS);
+
194
+
195 sync_read_task = xSemaphoreCreateCounting(1, 0);
+
196
+
197 ret = xTaskCreate(audio_read_task, "audio_read_task", 4096, NULL, 7, NULL);
+
198 assert(ret == pdPASS);
+
199 vTaskDelay(1);
+
200
+
201 ESP_LOGW(TAG, "To select volume/bass/treble please use the 'Set' button. And adjust the value with +/- buttons.");
+
202
+
203 for (;;) {
+
204 /* Get data from SPIFFS and send it to codec */
+ +
206 // Write samples to audio codec
+
207 esp_codec_dev_write(spk_codec_dev, wav_bytes, BUFFER_SIZE * sizeof(int16_t));
+ +
209 if (audio_buffer_write_index >= 3) {
+ +
211 }
+
212 // Check the triple buffer overflow
+ +
214 // Call delay to switch the task to fill the buffer
+
215 vTaskDelay(1);
+
216 // Check and indicate overflow status
+ +
218 ESP_LOGW(TAG, "Audio buffer overflow!");
+
219 }
+
220 }
+
221 // Generate synt event to read task:
+
222 xSemaphoreGive(sync_read_task);
+
223 }
+
224}
+
static SemaphoreHandle_t sync_read_task
+ + + +
static void audio_read_task(void *arg)
+ + + + + +
static const char play_filename[]
+ + + + +
static void buttons_process_task(void *arg)
+
static dumb_wav_header_t wav_header
+ + + +
static esp_codec_dev_handle_t spk_codec_dev
+ +
esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor)
low shelf IIR filter coefficients
+
esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor)
high shelf IIR filter coefficients
+
static const char * TAG
Definition main/main.c:31
+
+

References audio_buffer_read_index, audio_buffer_write_index, audio_read_task(), BUFFER_SIZE, buttons_process_task(), DEFAULT_VOLUME, dsps_biquad_gen_highShelf_f32(), dsps_biquad_gen_lowShelf_f32(), full_volume, full_volume_db, hpf_freq, hpf_gain, hpf_qFactor, iir_coeffs_hpf, iir_coeffs_lpf, lpf_freq, lpf_gain, lpf_qFactor, play_file, play_filename, spk_codec_dev, sync_read_task, TAG, triple_audio_buffer, and wav_header.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ audio_read_task()

+ +
+
+ + + + + +
+ + + + + + + +
void audio_read_task (void * arg)
+
+static
+
+ +

Definition at line 229 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
230{
+
231 while (1) {
+
232 // Wait the sync semaphore
+
233 if (xSemaphoreTake(sync_read_task, 100)) {
+
234 // Get the pointer to the current audio buffer
+ +
236 // Read the data from the file
+
237 uint32_t bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
238 // Convert input samples from int16 to float for processing
+ +
240 // Apply bass
+ +
242 // Apply treble
+ +
244 // Apply voluve
+ +
246 // Apply limiter
+ +
248 // Convert from float to int16 for audio codec
+ +
250
+
251 if (bytes_read_from_spiffs != BUFFER_SIZE) {
+
252 // Rewind the file and read the WAV header
+
253 rewind(play_file);
+
254 fread((void *)&wav_header, 1, sizeof(wav_header), play_file);
+
255 // Read data to the audio buffer
+
256 bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
257 }
+ +
259 if (audio_buffer_read_index >= 3) {
+ +
261 }
+
262 } else {
+
263 // Error in case of timeout
+
264 ESP_LOGE(TAG, "Audio timeout!");
+
265 }
+
266 }
+
267}
+ + + + +
#define dsps_biquad_f32
Definition dsps_biquad.h:99
+
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+
void digitalLimiter(float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
+
static void convert_float2short(float *float_data, int16_t *int16_data, int len)
+
static void convert_short2float(int16_t *int16_data, float *float_data, int len)
+
+

References audio_buffer_read_index, BUFFER_SIZE, convert_float2short(), convert_short2float(), digitalLimiter(), dsps_biquad_f32, dsps_mulc_f32_ansi(), full_envelope, full_volume, iir_coeffs_hpf, iir_coeffs_lpf, iir_w_hpf, iir_w_lpf, play_file, processing_audio_buffer, sync_read_task, TAG, triple_audio_buffer, and wav_header.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ btn_handler()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void btn_handler (void * button_handle,
void * usr_data )
+
+static
+
+ +

Definition at line 31 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
32{
+
33 int button_pressed = (int)usr_data;
+
34 xQueueSend(audio_button_q, &button_pressed, 0);
+
35}
+ +
+
+
+ +

◆ buttons_process_task()

+ +
+
+ + + + + +
+ + + + + + + +
void buttons_process_task (void * arg)
+
+static
+
+ +

Definition at line 269 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
270{
+
271 while (1) {
+
272 int btn_index = 0;
+
273 if (xQueueReceive(audio_button_q, &btn_index, portMAX_DELAY) == pdTRUE) {
+
274 switch (btn_index) {
+
275 case BSP_BUTTON_SET: {
+
276 current_set += 1;
+
277 if (current_set > 2) {
+ +
279 }
+
280 switch (current_set) {
+
281 case AUDIO_VOLUME:
+
282 ESP_LOGW(TAG, "Select volume");
+
283 break;
+
284 case AUDIO_BASS:
+
285 ESP_LOGW(TAG, "Select bass");
+
286 break;
+
287 case AUDIO_TREBLE:
+
288 ESP_LOGW(TAG, "Select treble");
+
289 break;
+
290 default:
+
291 break;
+
292 }
+
293 break;
+
294 }
+
295 case BSP_BUTTON_VOLDOWN: {
+
296 switch (current_set) {
+
297 case AUDIO_VOLUME:
+
298 full_volume_db -= 3;
+
299 if (full_volume_db < -36) {
+
300 full_volume_db = -36;
+
301 }
+
302 full_volume = exp10f((float)full_volume_db / 20);
+
303 ESP_LOGI(TAG, "Volume Down: %i dB", full_volume_db);
+
304 break;
+
305 case AUDIO_BASS:
+
306 lpf_gain -= 1;
+
307 if (lpf_gain < -12) {
+
308 lpf_gain = -12;
+
309 }
+
310 ESP_LOGI(TAG, "Bass Down: %i", (int)lpf_gain);
+ +
312 break;
+
313 case AUDIO_TREBLE:
+
314 hpf_gain -= 1;
+
315 if (hpf_gain < -12) {
+
316 hpf_gain = -12;
+
317 }
+
318 ESP_LOGI(TAG, "Treble Down: %i", (int)hpf_gain);
+ +
320 break;
+
321 default:
+
322 break;
+
323 }
+
324 break;
+
325 }
+
326 case BSP_BUTTON_VOLUP: {
+
327 switch (current_set) {
+
328 case AUDIO_VOLUME:
+
329 full_volume_db += 3;
+
330 if (full_volume_db > 0) {
+
331 full_volume_db = 0;
+
332 }
+
333 full_volume = exp10f((float)full_volume_db / 20);
+
334 ESP_LOGI(TAG, "Volume Up: %i dB", full_volume_db);
+
335 break;
+
336 case AUDIO_BASS:
+
337 lpf_gain += 1;
+
338 if (lpf_gain > 12) {
+
339 lpf_gain = 12;
+
340 }
+
341 ESP_LOGI(TAG, "Bass Up: %i", (int)lpf_gain);
+ +
343 break;
+
344 case AUDIO_TREBLE:
+
345 hpf_gain += 1;
+
346 if (hpf_gain > 12) {
+
347 hpf_gain = 12;
+
348 }
+
349 ESP_LOGI(TAG, "Treble Up: %i", (int)hpf_gain);
+ +
351 break;
+
352 default:
+
353 break;
+
354 }
+
355 break;
+
356 }
+
357 default:
+
358 ESP_LOGI(TAG, "No function for this button");
+
359 break;
+
360 }
+
361 }
+
362 }
+
363}
+ +
+

References AUDIO_BASS, audio_button_q, AUDIO_TREBLE, AUDIO_VOLUME, current_set, dsps_biquad_gen_highShelf_f32(), dsps_biquad_gen_lowShelf_f32(), full_volume, full_volume_db, hpf_freq, hpf_gain, hpf_qFactor, iir_coeffs_hpf, iir_coeffs_lpf, lpf_freq, lpf_gain, lpf_qFactor, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ convert_float2short()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
void convert_float2short (float * float_data,
int16_t * int16_data,
int len )
+
+static
+
+ +

Definition at line 119 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
120{
+
121 float multiplier = (float)(INT16_MAX + 1);
+
122 for (int i = 0 ; i < len ; i++) {
+
123 int16_data[i] = (int16_t)((float)multiplier * (float)float_data[i]);
+
124 }
+
125}
+
+

Referenced by audio_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ convert_short2float()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
void convert_short2float (int16_t * int16_data,
float * float_data,
int len )
+
+static
+
+ +

Definition at line 110 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
111{
+
112 float multiplier = 1.0 / (float)(INT16_MAX + 1);
+
113 for (int i = 0 ; i < len ; i++) {
+
114 float_data[i] = (float)int16_data[i] * multiplier;
+
115 }
+
116}
+
+

Referenced by audio_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ digitalLimiter()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void digitalLimiter (float * input_signal,
float * output_signal,
int signal_length,
float threshold,
float attack_value,
float release_value,
float * in_envelope )
+
+ +

Definition at line 133 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
134{
+
135 float envelope = *in_envelope;
+
136 for (int i = 0; i < signal_length; i++) {
+
137 // Calculate envelope
+
138 float abs_input = fabsf(input_signal[i]);
+
139 if (abs_input > envelope) {
+
140 envelope = envelope * (1 - attack_value) + attack_value * abs_input;
+
141 } else {
+
142 envelope = envelope * (1 - release_value) + release_value * abs_input;
+
143 }
+
144
+
145 // Apply compression
+
146 if (envelope > threshold) {
+
147 output_signal[i] = input_signal[i] * (threshold / envelope);
+
148 } else {
+
149 output_signal[i] = input_signal[i];
+
150 }
+
151 }
+
152 *in_envelope = envelope;
+
153}
+
+

Referenced by audio_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ audio_buffer_read_index

+ +
+
+ + + + +
int audio_buffer_read_index = 0
+
+
+ +

◆ audio_buffer_write_index

+ +
+
+ + + + +
int audio_buffer_write_index = 0
+
+
+ +

◆ audio_button_q

+ +
+
+ + + + + +
+ + + + +
QueueHandle_t audio_button_q = NULL
+
+static
+
+
+ +

◆ current_set

+ +
+
+ + + + + +
+ + + + +
audio_set_t current_set = AUDIO_VOLUME
+
+static
+
+
+ +

◆ dumb_wav_header_t

+ +
+
+ + + + +
dumb_wav_header_t
+
+
+ +

◆ full_envelope

+ +
+
+ + + + +
float full_envelope = 0
+
+
+ +

◆ full_volume

+ +
+
+ + + + +
float full_volume = 1
+
+
+ +

◆ full_volume_db

+ +
+
+ + + + +
int full_volume_db = -12
+
+
+ +

◆ hpf_freq

+ +
+
+ + + + +
float hpf_freq = 0.15
+
+
+ +

◆ hpf_gain

+ +
+
+ + + + +
float hpf_gain = 0
+
+
+ +

◆ hpf_qFactor

+ +
+
+ + + + +
float hpf_qFactor = 1
+
+
+ +

◆ iir_coeffs_hpf

+ +
+
+ + + + +
float iir_coeffs_hpf[5]
+
+
+ +

◆ iir_coeffs_lpf

+ +
+
+ + + + +
float iir_coeffs_lpf[5]
+
+
+ +

◆ iir_w_hpf

+ +
+
+ + + + +
float iir_w_hpf[5] = {0, 0}
+
+ +

Definition at line 76 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
76{0, 0};
+
+
+
+ +

◆ iir_w_lpf

+ +
+
+ + + + +
float iir_w_lpf[5] = {0, 0}
+
+ +

Definition at line 73 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
73{0, 0};
+
+
+
+ +

◆ lpf_freq

+ +
+
+ + + + +
float lpf_freq = 0.01
+
+
+ +

◆ lpf_gain

+ +
+
+ + + + +
float lpf_gain = 0
+
+
+ +

◆ lpf_qFactor

+ +
+
+ + + + +
float lpf_qFactor = 0.5
+
+
+ +

◆ play_file

+ +
+
+ + + + + +
+ + + + +
FILE* play_file = NULL
+
+static
+
+
+ +

◆ play_filename

+ +
+
+ + + + + +
+ + + + +
const char play_filename[] = BSP_SPIFFS_MOUNT_POINT"/16bit_mono_44_1_khz.wav"
+
+static
+
+
+ +

◆ processing_audio_buffer

+ +
+
+ + + + +
float processing_audio_buffer[(64)] = {0}
+
+ +

Definition at line 97 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
97{0};
+
+
+
+ +

◆ spk_codec_dev

+ +
+
+ + + + + +
+ + + + +
esp_codec_dev_handle_t spk_codec_dev = NULL
+
+static
+
+
+ +

◆ sync_read_task

+ +
+
+ + + + + +
+ + + + +
SemaphoreHandle_t sync_read_task
+
+static
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "example"
+
+static
+
+
+ +

◆ triple_audio_buffer

+ +
+
+ + + + +
int16_t triple_audio_buffer[3 *(64)] = {0}
+
+ +

Definition at line 100 of file external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c.

+
100{0};
+
+
+
+ +

◆ wav_header

+ +
+
+ + + + + +
+ + + + +
dumb_wav_header_t wav_header
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.js b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.js new file mode 100644 index 0000000..1b6aaba --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.js @@ -0,0 +1,47 @@ +var external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c = +[ + [ "BUFFER_SIZE", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a6b20d41d6252e9871430c242cb1a56e7", null ], + [ "DEFAULT_VOLUME", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a2c0c52208e7308ae9eecd726fe8d94b9", null ], + [ "SAMPLE_RATE", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a4b76a0c2859cfd819a343a780070ee2b", null ], + [ "audio_set_t", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#aa88550699697fdf29720e2001ebb2dfa", null ], + [ "audio_set", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636", [ + [ "AUDIO_VOLUME", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636a7db21c3a9676776cbeb08d3d4d8cff26", null ], + [ "AUDIO_BASS", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636a8838dc83b8126cc7b822eeeb3c27549e", null ], + [ "AUDIO_TREBLE", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636aa31bb158eee95bcc6d353235eeccfc8d", null ] + ] ], + [ "__attribute__", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab898071398b359603a35c202e9c65f3b", null ], + [ "app_main", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a630544a7f0a2cc40d8a7fefab7e2fe70", null ], + [ "audio_process_task", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab091c1cbf0cdee1a9e75495e68236ab6", null ], + [ "audio_read_task", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a11a7e6affe758e24d45f22bade3f7ac3", null ], + [ "btn_handler", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a562facc4884e8a7bb96fe161d64a12da", null ], + [ "buttons_process_task", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a9b37162177a4acfc9abcc52ca620736c", null ], + [ "convert_float2short", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#ae8bef2245ac9fb55d56a7af6c4b5fe5d", null ], + [ "convert_short2float", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#aedfa0ee2b0d2e41a702707315faa5e10", null ], + [ "digitalLimiter", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a021b7404dd661c25c3fba8503b22d2d7", null ], + [ "audio_buffer_read_index", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#abf0a171fa05c9285f220a8a7c026ea78", null ], + [ "audio_buffer_write_index", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#ac4ce7486838450737f3407388be27eb1", null ], + [ "audio_button_q", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a2f9f737de08975b7c91db166e446e5ed", null ], + [ "current_set", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a0f4d8e352563fad11f630e3397b2a35e", null ], + [ "dumb_wav_header_t", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a6fb523d3374e90c95487a5856fe27e4d", null ], + [ "full_envelope", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#adb05d809ff35d5a84ac5c81e6ad029fa", null ], + [ "full_volume", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a473c835640976f08dd3c043cf45594f8", null ], + [ "full_volume_db", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a377a70f7d7888e69a7e59475fa56a64d", null ], + [ "hpf_freq", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a7de9a65dd6a82e5c3bef5c36ad9601ef", null ], + [ "hpf_gain", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a86d4f7276dc47c628790ae25cba8b392", null ], + [ "hpf_qFactor", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a0930702ca45368023f87e4174b354777", null ], + [ "iir_coeffs_hpf", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a218cca73ec4cafd56e29bd5d340dac7d", null ], + [ "iir_coeffs_lpf", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a09781b3eff0bdb87ac78d7cf8438c14f", null ], + [ "iir_w_hpf", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab1a44c64c14e4b4d396460ffc1251234", null ], + [ "iir_w_lpf", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a588993507c1c1661225d5088161f4662", null ], + [ "lpf_freq", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a292487b90ca105833138c5ff4ca13ed2", null ], + [ "lpf_gain", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a73023995ad1fb684def3089e5daa297e", null ], + [ "lpf_qFactor", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab1726f72aeeb2b5c71770a0418648ce9", null ], + [ "play_file", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a064e97adf9481d8a0c99fd365104a8ca", null ], + [ "play_filename", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a581468e92cddeed61e7312af79f18716", null ], + [ "processing_audio_buffer", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a827e26f8698590947b9f34455d4157b5", null ], + [ "spk_codec_dev", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#ad5b8a1d8b6ad98b17025c531aafe538b", null ], + [ "sync_read_task", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a0398e7777d8ed80fde3d926ece68d644", null ], + [ "TAG", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ], + [ "triple_audio_buffer", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#ae9ae3ea56c76edece8c7bf7b3c6adfc1", null ], + [ "wav_header", "external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c.html#aaa4fc915cb78785c7514677c6ec73df0", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 new file mode 100644 index 0000000..e5e8c59 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 @@ -0,0 +1 @@ +7be942ec435b23a222e43e38f8808047 \ No newline at end of file diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg new file mode 100644 index 0000000..90176ed --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg @@ -0,0 +1,1735 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +audio_amp_main.c + + +Node1 + + +audio_amp_main.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +inttypes.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/FreeRTOS.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +freertos/task.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +freertos/queue.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_log.h + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +esp_dsp.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node1->Node12 + + + + + + + + +Node76 + + +bsp/esp-bsp.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +math.h + + + + + +Node1->Node77 + + + + + + + + +Node9 + + +stdlib.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node10->Node11 + + + + + + + + +Node19 + + +dsp_types.h + + + + + +Node10->Node19 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node10->Node20 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node10->Node22 + + + + + + + + +Node34 + + +dsps_fir.h + + + + + +Node10->Node34 + + + + + + + + +Node36 + + +dsps_resampler.h + + + + + +Node10->Node36 + + + + + + + + +Node37 + + +dsps_biquad.h + + + + + +Node10->Node37 + + + + + + + + +Node39 + + +dsps_biquad_gen.h + + + + + +Node10->Node39 + + + + + + + + +Node40 + + +dsps_wind.h + + + + + +Node10->Node40 + + + + + + + + +Node47 + + +dsps_conv.h + + + + + +Node10->Node47 + + + + + + + + +Node49 + + +dsps_corr.h + + + + + +Node10->Node49 + + + + + + + + +Node50 + + +dsps_d_gen.h + + + + + +Node10->Node50 + + + + + + + + +Node51 + + +dsps_h_gen.h + + + + + +Node10->Node51 + + + + + + + + +Node52 + + +dsps_tone_gen.h + + + + + +Node10->Node52 + + + + + + + + +Node53 + + +dsps_snr.h + + + + + +Node10->Node53 + + + + + + + + +Node54 + + +dsps_sfdr.h + + + + + +Node10->Node54 + + + + + + + + +Node55 + + +dsps_fft2r.h + + + + + +Node10->Node55 + + + + + + + + +Node58 + + +dsps_fft4r.h + + + + + +Node10->Node58 + + + + + + + + +Node60 + + +dsps_dct.h + + + + + +Node10->Node60 + + + + + + + + +Node61 + + +dspm_matrix.h + + + + + +Node10->Node61 + + + + + + + + +Node72 + + +dsps_view.h + + + + + +Node10->Node72 + + + + + + + + +Node73 + + +dspi_dotprod.h + + + + + +Node10->Node73 + + + + + + + + +Node75 + + +dspi_conv.h + + + + + +Node10->Node75 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +dsp_err.h + + + + + +Node11->Node14 + + + + + + + + +Node17 + + +esp_idf_version.h + + + + + +Node11->Node17 + + + + + + + + +Node18 + + +x86intrin.h + + + + + +Node11->Node18 + + + + + + + + +Node14->Node12 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node12 + + + + + + + + +Node19->Node13 + + + + + + + + +Node20->Node8 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21 + + +dsps_dotprod_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node4 + + + + + + + + +Node23 + + +dsps_add.h + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +dsps_sub.h + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +dsps_mul.h + + + + + +Node22->Node27 + + + + + + + + +Node29 + + +dsps_addc.h + + + + + +Node22->Node29 + + + + + + + + +Node31 + + +dsps_mulc.h + + + + + +Node22->Node31 + + + + + + + + +Node33 + + +dsps_sqrt.h + + + + + +Node22->Node33 + + + + + + + + +Node23->Node14 + + + + + + + + +Node25->Node14 + + + + + + + + +Node27->Node14 + + + + + + + + +Node29->Node14 + + + + + + + + +Node31->Node14 + + + + + + + + +Node33->Node14 + + + + + + + + +Node34->Node11 + + + + + + + + +Node34->Node14 + + + + + + + + +Node35 + + +dsps_fir_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node4 + + + + + + + + +Node36->Node14 + + + + + + + + +Node36->Node34 + + + + + + + + +Node37->Node14 + + + + + + + + +Node38 + + +dsps_biquad_platform.h + + + + + +Node37->Node38 + + + + + + + + +Node38->Node4 + + + + + + + + +Node39->Node14 + + + + + + + + +Node41 + + +dsps_wind_hann.h + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman.h + + + + + +Node40->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_harris.h + + + + + +Node40->Node43 + + + + + + + + +Node44 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node40->Node44 + + + + + + + + +Node45 + + +dsps_wind_nuttall.h + + + + + +Node40->Node45 + + + + + + + + +Node46 + + +dsps_wind_flat_top.h + + + + + +Node40->Node46 + + + + + + + + +Node47->Node14 + + + + + + + + +Node48 + + +dsps_conv_platform.h + + + + + +Node47->Node48 + + + + + + + + +Node48->Node4 + + + + + + + + +Node49->Node14 + + + + + + + + +Node49->Node48 + + + + + + + + +Node50->Node14 + + + + + + + + +Node51->Node14 + + + + + + + + +Node52->Node14 + + + + + + + + +Node53->Node14 + + + + + + + + +Node54->Node14 + + + + + + + + +Node55->Node4 + + + + + + + + +Node55->Node14 + + + + + + + + +Node56 + + +dsps_fft_tables.h + + + + + +Node55->Node56 + + + + + + + + +Node57 + + +dsps_fft2r_platform.h + + + + + +Node55->Node57 + + + + + + + + +Node57->Node4 + + + + + + + + +Node58->Node4 + + + + + + + + +Node58->Node14 + + + + + + + + +Node58->Node56 + + + + + + + + +Node59 + + +dsps_fft4r_platform.h + + + + + +Node58->Node59 + + + + + + + + +Node59->Node4 + + + + + + + + +Node60->Node4 + + + + + + + + +Node60->Node14 + + + + + + + + +Node62 + + +dspm_add.h + + + + + +Node61->Node62 + + + + + + + + +Node64 + + +dspm_addc.h + + + + + +Node61->Node64 + + + + + + + + +Node66 + + +dspm_mult.h + + + + + +Node61->Node66 + + + + + + + + +Node68 + + +dspm_mulc.h + + + + + +Node61->Node68 + + + + + + + + +Node70 + + +dspm_sub.h + + + + + +Node61->Node70 + + + + + + + + +Node62->Node14 + + + + + + + + +Node64->Node14 + + + + + + + + +Node66->Node14 + + + + + + + + +Node68->Node14 + + + + + + + + +Node70->Node14 + + + + + + + + +Node72->Node14 + + + + + + + + +Node73->Node8 + + + + + + + + +Node73->Node14 + + + + + + + + +Node73->Node19 + + + + + + + + +Node74 + + +dspi_dotprod_platform.h + + + + + +Node73->Node74 + + + + + + + + +Node74->Node4 + + + + + + + + +Node75->Node14 + + + + + + + + +Node75->Node19 + + + + + + + + +Node75->Node48 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg new file mode 100644 index 0000000..e4d1434 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg @@ -0,0 +1,1652 @@ + + + + + + +audio_amp_main.c + + +Node1 + + +audio_amp_main.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +inttypes.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/FreeRTOS.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +freertos/task.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +freertos/queue.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_log.h + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +esp_dsp.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node1->Node12 + + + + + + + + +Node76 + + +bsp/esp-bsp.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +math.h + + + + + +Node1->Node77 + + + + + + + + +Node9 + + +stdlib.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node10->Node11 + + + + + + + + +Node19 + + +dsp_types.h + + + + + +Node10->Node19 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node10->Node20 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node10->Node22 + + + + + + + + +Node34 + + +dsps_fir.h + + + + + +Node10->Node34 + + + + + + + + +Node36 + + +dsps_resampler.h + + + + + +Node10->Node36 + + + + + + + + +Node37 + + +dsps_biquad.h + + + + + +Node10->Node37 + + + + + + + + +Node39 + + +dsps_biquad_gen.h + + + + + +Node10->Node39 + + + + + + + + +Node40 + + +dsps_wind.h + + + + + +Node10->Node40 + + + + + + + + +Node47 + + +dsps_conv.h + + + + + +Node10->Node47 + + + + + + + + +Node49 + + +dsps_corr.h + + + + + +Node10->Node49 + + + + + + + + +Node50 + + +dsps_d_gen.h + + + + + +Node10->Node50 + + + + + + + + +Node51 + + +dsps_h_gen.h + + + + + +Node10->Node51 + + + + + + + + +Node52 + + +dsps_tone_gen.h + + + + + +Node10->Node52 + + + + + + + + +Node53 + + +dsps_snr.h + + + + + +Node10->Node53 + + + + + + + + +Node54 + + +dsps_sfdr.h + + + + + +Node10->Node54 + + + + + + + + +Node55 + + +dsps_fft2r.h + + + + + +Node10->Node55 + + + + + + + + +Node58 + + +dsps_fft4r.h + + + + + +Node10->Node58 + + + + + + + + +Node60 + + +dsps_dct.h + + + + + +Node10->Node60 + + + + + + + + +Node61 + + +dspm_matrix.h + + + + + +Node10->Node61 + + + + + + + + +Node72 + + +dsps_view.h + + + + + +Node10->Node72 + + + + + + + + +Node73 + + +dspi_dotprod.h + + + + + +Node10->Node73 + + + + + + + + +Node75 + + +dspi_conv.h + + + + + +Node10->Node75 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +dsp_err.h + + + + + +Node11->Node14 + + + + + + + + +Node17 + + +esp_idf_version.h + + + + + +Node11->Node17 + + + + + + + + +Node18 + + +x86intrin.h + + + + + +Node11->Node18 + + + + + + + + +Node14->Node12 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node12 + + + + + + + + +Node19->Node13 + + + + + + + + +Node20->Node8 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21 + + +dsps_dotprod_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node4 + + + + + + + + +Node23 + + +dsps_add.h + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +dsps_sub.h + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +dsps_mul.h + + + + + +Node22->Node27 + + + + + + + + +Node29 + + +dsps_addc.h + + + + + +Node22->Node29 + + + + + + + + +Node31 + + +dsps_mulc.h + + + + + +Node22->Node31 + + + + + + + + +Node33 + + +dsps_sqrt.h + + + + + +Node22->Node33 + + + + + + + + +Node23->Node14 + + + + + + + + +Node25->Node14 + + + + + + + + +Node27->Node14 + + + + + + + + +Node29->Node14 + + + + + + + + +Node31->Node14 + + + + + + + + +Node33->Node14 + + + + + + + + +Node34->Node11 + + + + + + + + +Node34->Node14 + + + + + + + + +Node35 + + +dsps_fir_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node4 + + + + + + + + +Node36->Node14 + + + + + + + + +Node36->Node34 + + + + + + + + +Node37->Node14 + + + + + + + + +Node38 + + +dsps_biquad_platform.h + + + + + +Node37->Node38 + + + + + + + + +Node38->Node4 + + + + + + + + +Node39->Node14 + + + + + + + + +Node41 + + +dsps_wind_hann.h + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman.h + + + + + +Node40->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_harris.h + + + + + +Node40->Node43 + + + + + + + + +Node44 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node40->Node44 + + + + + + + + +Node45 + + +dsps_wind_nuttall.h + + + + + +Node40->Node45 + + + + + + + + +Node46 + + +dsps_wind_flat_top.h + + + + + +Node40->Node46 + + + + + + + + +Node47->Node14 + + + + + + + + +Node48 + + +dsps_conv_platform.h + + + + + +Node47->Node48 + + + + + + + + +Node48->Node4 + + + + + + + + +Node49->Node14 + + + + + + + + +Node49->Node48 + + + + + + + + +Node50->Node14 + + + + + + + + +Node51->Node14 + + + + + + + + +Node52->Node14 + + + + + + + + +Node53->Node14 + + + + + + + + +Node54->Node14 + + + + + + + + +Node55->Node4 + + + + + + + + +Node55->Node14 + + + + + + + + +Node56 + + +dsps_fft_tables.h + + + + + +Node55->Node56 + + + + + + + + +Node57 + + +dsps_fft2r_platform.h + + + + + +Node55->Node57 + + + + + + + + +Node57->Node4 + + + + + + + + +Node58->Node4 + + + + + + + + +Node58->Node14 + + + + + + + + +Node58->Node56 + + + + + + + + +Node59 + + +dsps_fft4r_platform.h + + + + + +Node58->Node59 + + + + + + + + +Node59->Node4 + + + + + + + + +Node60->Node4 + + + + + + + + +Node60->Node14 + + + + + + + + +Node62 + + +dspm_add.h + + + + + +Node61->Node62 + + + + + + + + +Node64 + + +dspm_addc.h + + + + + +Node61->Node64 + + + + + + + + +Node66 + + +dspm_mult.h + + + + + +Node61->Node66 + + + + + + + + +Node68 + + +dspm_mulc.h + + + + + +Node61->Node68 + + + + + + + + +Node70 + + +dspm_sub.h + + + + + +Node61->Node70 + + + + + + + + +Node62->Node14 + + + + + + + + +Node64->Node14 + + + + + + + + +Node66->Node14 + + + + + + + + +Node68->Node14 + + + + + + + + +Node70->Node14 + + + + + + + + +Node72->Node14 + + + + + + + + +Node73->Node8 + + + + + + + + +Node73->Node14 + + + + + + + + +Node73->Node19 + + + + + + + + +Node74 + + +dspi_dotprod_platform.h + + + + + +Node73->Node74 + + + + + + + + +Node74->Node4 + + + + + + + + +Node75->Node14 + + + + + + + + +Node75->Node19 + + + + + + + + +Node75->Node48 + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 new file mode 100644 index 0000000..453e595 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 @@ -0,0 +1 @@ +b273d3dc861a404c7fd093e7d3a41d7a \ No newline at end of file diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg new file mode 100644 index 0000000..000e71a --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +digitalLimiter + + +Node1 + + +digitalLimiter + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg new file mode 100644 index 0000000..40bb603 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +digitalLimiter + + +Node1 + + +digitalLimiter + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 new file mode 100644 index 0000000..064f3a8 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 @@ -0,0 +1 @@ +e74c1c5d78a3de84f48d67c2b6d35b12 \ No newline at end of file diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg new file mode 100644 index 0000000..91b5532 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +audio_read_task + + +Node1 + + +audio_read_task + + + + + +Node2 + + +convert_float2short + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +convert_short2float + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +digitalLimiter + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node5 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg new file mode 100644 index 0000000..e99ffc1 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +audio_read_task + + +Node1 + + +audio_read_task + + + + + +Node2 + + +convert_float2short + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +convert_short2float + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +digitalLimiter + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node5 + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 new file mode 100644 index 0000000..f321aba --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 @@ -0,0 +1 @@ +63e463e9ec6183c911201917dda71995 \ No newline at end of file diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg new file mode 100644 index 0000000..d85126b --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +btn_handler + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +audio_read_task + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +convert_float2short + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +convert_short2float + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +digitalLimiter + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +dsps_mulc_f32_ansi + + + + + +Node3->Node7 + + + + + + + + +Node8->Node9 + + + + + + + + +Node8->Node10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg new file mode 100644 index 0000000..5bcb075 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg @@ -0,0 +1,219 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +btn_handler + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +audio_read_task + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +convert_float2short + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +convert_short2float + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +digitalLimiter + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +dsps_mulc_f32_ansi + + + + + +Node3->Node7 + + + + + + + + +Node8->Node9 + + + + + + + + +Node8->Node10 + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 new file mode 100644 index 0000000..488e780 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 @@ -0,0 +1 @@ +af768cffde963741e7573c2290d82b55 \ No newline at end of file diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg new file mode 100644 index 0000000..b44f798 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +buttons_process_task + + +Node1 + + +buttons_process_task + + + + + +Node2 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg new file mode 100644 index 0000000..a21b6e3 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +buttons_process_task + + +Node1 + + +buttons_process_task + + + + + +Node2 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 new file mode 100644 index 0000000..f36e26c --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 @@ -0,0 +1 @@ +47cd52c93d34c5a0d8a133210d2b1343 \ No newline at end of file diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg new file mode 100644 index 0000000..ef7a576 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg @@ -0,0 +1,209 @@ + + + + + + + + + + + + +audio_process_task + + +Node1 + + +audio_process_task + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +convert_float2short + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +convert_short2float + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +digitalLimiter + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_mulc_f32_ansi + + + + + +Node2->Node6 + + + + + + + + +Node7->Node8 + + + + + + + + +Node7->Node9 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg new file mode 100644 index 0000000..9aa5079 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg @@ -0,0 +1,183 @@ + + + + + + +audio_process_task + + +Node1 + + +audio_process_task + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +convert_float2short + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +convert_short2float + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +digitalLimiter + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_mulc_f32_ansi + + + + + +Node2->Node6 + + + + + + + + +Node7->Node8 + + + + + + + + +Node7->Node9 + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 new file mode 100644 index 0000000..575639b --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 @@ -0,0 +1 @@ +8749a14549b7acaebc81a991956ae45b \ No newline at end of file diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg new file mode 100644 index 0000000..2df42d3 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +convert_float2short + + +Node1 + + +convert_float2short + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg new file mode 100644 index 0000000..3418e78 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +convert_float2short + + +Node1 + + +convert_float2short + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 new file mode 100644 index 0000000..21d888a --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 @@ -0,0 +1 @@ +60169fdc81dfc5ec92edd105eb54f6bb \ No newline at end of file diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg new file mode 100644 index 0000000..4f89ea0 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +convert_short2float + + +Node1 + + +convert_short2float + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg new file mode 100644 index 0000000..9c1b246 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +convert_short2float + + +Node1 + + +convert_short2float + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_source.html b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_source.html new file mode 100644 index 0000000..0889561 --- /dev/null +++ b/docs/html/external__examples_21fa4e38f_2lyrat__board__app_2main_2audio__amp__main_8c_source.html @@ -0,0 +1,560 @@ + + + + + + + +ESP-IDF Firmware: audio_amp_main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/1fa4e38f/lyrat_board_app/main/audio_amp_main.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: CC0-1.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include <inttypes.h>
+
9#include <sdkconfig.h>
+
10#include "freertos/FreeRTOS.h"
+
11#include "freertos/task.h"
+
12#include "freertos/queue.h"
+
13#include "esp_log.h"
+
14#include "esp_dsp.h"
+
15#include "bsp/esp-bsp.h"
+
16#include <stdint.h>
+
17#include <math.h>
+
18
+
19// Buffer for reading/writing to I2S driver. Same length as SPIFFS buffer and I2S buffer, for optimal read/write performance.
+
20// Recording audio data path:
+
21// I2S peripheral -> I2S buffer (DMA) -> App buffer (RAM) -> SPIFFS buffer -> External SPI Flash.
+
22// Vice versa for playback.
+
23#define BUFFER_SIZE (64)
+
24#define SAMPLE_RATE (16000) // For recording
+
25#define DEFAULT_VOLUME (100)
+
26
+
27// Globals
+
28static const char *TAG = "example";
+
29static QueueHandle_t audio_button_q = NULL;
+
30
+
+
31static void btn_handler(void *button_handle, void *usr_data)
+
32{
+
33 int button_pressed = (int)usr_data;
+
34 xQueueSend(audio_button_q, &button_pressed, 0);
+
35}
+
36
+
37// Very simple WAV header, ignores most fields
+
38typedef struct __attribute__((packed))
+
39{
+
40 uint8_t ignore_0[22];
+
41 uint16_t num_channels;
+
42 uint32_t sample_rate;
+
43 uint8_t ignore_1[6];
+
44 uint16_t bits_per_sample;
+
45 uint8_t ignore_2[4];
+
46 uint32_t data_size;
+
47 uint8_t data[];
+ +
+
49
+ +
55
+
56static esp_codec_dev_handle_t spk_codec_dev = NULL;
+
57static FILE *play_file = NULL;
+
58// Pointer to a file that is going to be played
+
59static const char play_filename[] = BSP_SPIFFS_MOUNT_POINT"/16bit_mono_44_1_khz.wav";
+
60
+
61// Definition for all tasks
+
62static void buttons_process_task(void *arg);
+
63static void audio_read_task(void *arg);
+
64static void audio_process_task(void *arg);
+
65
+
66
+
67// Wave file header
+ + +
70
+
71// Data for IIR filters
+ +
73float iir_w_lpf[5] = {0, 0};
+
74
+ +
76float iir_w_hpf[5] = {0, 0};
+
77
+
78// IIR filters parameters
+
79// Parameters for low-pass filter (LPF)
+
80float lpf_gain = 0;
+
81float lpf_qFactor = 0.5;
+
82float lpf_freq = 0.01;
+
83
+
84// Parameters for high-pass filter (HPF)
+
85float hpf_gain = 0;
+
86float hpf_qFactor = 1;
+
87float hpf_freq = 0.15;
+
88
+
89// Volume control definitions
+
90float full_volume = 1;
+
91// Volume in dB
+ +
93// Digital limiter envelope value
+
94float full_envelope = 0;
+
95
+
96// processing audio buffer
+ +
98
+
99// The triple_audio_buffer contains tree data arrays sizeof BUFFER_SIZE, for writing audio data to the codec
+ +
101// The write index shows the audio buffer that will be used to write data to the codec
+ +
103// The read index shows the audio buffer that will be used to fill data from the data source to the processing buffer
+ +
105
+
106// Semaphore to synchronize the read and write
+
107static SemaphoreHandle_t sync_read_task;
+
108
+
109// Convert input int16_t Q15 values array to the float values array
+
+
110static void convert_short2float(int16_t *int16_data, float *float_data, int len)
+
111{
+
112 float multiplier = 1.0 / (float)(INT16_MAX + 1);
+
113 for (int i = 0 ; i < len ; i++) {
+
114 float_data[i] = (float)int16_data[i] * multiplier;
+
115 }
+
116}
+
+
117
+
118// Convert input float values to the int16_t Q15 values array
+
+
119static void convert_float2short(float *float_data, int16_t *int16_data, int len)
+
120{
+
121 float multiplier = (float)(INT16_MAX + 1);
+
122 for (int i = 0 ; i < len ; i++) {
+
123 int16_data[i] = (int16_t)((float)multiplier * (float)float_data[i]);
+
124 }
+
125}
+
+
126
+
127// In the audio processing the valid output audio values for the floating point format should be in range +/- 1.0,
+
128// because these values will be converted to the 0x8000 and 0x7fff int16_t values, and will be accepted by the codec.
+
129// With additional amplification, for example bass, treble, and for other processing, it is possible that the audio
+
130// signal will reach the maximum values and will make an overflow at the DAC.
+
131// To avoid this situation the digital limiter analyze the output values and control the full amplification gain.
+
132//
+
+
133void digitalLimiter(float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
+
134{
+
135 float envelope = *in_envelope;
+
136 for (int i = 0; i < signal_length; i++) {
+
137 // Calculate envelope
+
138 float abs_input = fabsf(input_signal[i]);
+
139 if (abs_input > envelope) {
+
140 envelope = envelope * (1 - attack_value) + attack_value * abs_input;
+
141 } else {
+
142 envelope = envelope * (1 - release_value) + release_value * abs_input;
+
143 }
+
144
+
145 // Apply compression
+
146 if (envelope > threshold) {
+
147 output_signal[i] = input_signal[i] * (threshold / envelope);
+
148 } else {
+
149 output_signal[i] = input_signal[i];
+
150 }
+
151 }
+
152 *in_envelope = envelope;
+
153}
+
+
154
+
+
155static void audio_process_task(void *arg)
+
156{
+
157 // Init codeac and apply the initial volume to maximum
+
158 spk_codec_dev = bsp_audio_codec_speaker_init();
+
159 assert(spk_codec_dev);
+
160 esp_codec_dev_set_out_vol(spk_codec_dev, DEFAULT_VOLUME);
+
161
+
162 // Open file and het the WAV header to set up the sample frequency, amount of channels and resolution
+
163 play_file = fopen(play_filename, "rb");
+
164 if (play_file == NULL) {
+
165 ESP_LOGW(TAG, "%s file does not exist!", play_filename);
+
166 }
+
167 // Read WAV header
+
168 if (fread((void *)&wav_header, 1, sizeof(wav_header), play_file) != sizeof(wav_header)) {
+
169 ESP_LOGW(TAG, "Error in reading file");
+
170 return;
+
171 }
+
172
+
173 ESP_LOGI(TAG, "Number of channels: %" PRIu16 "", wav_header.num_channels);
+
174 ESP_LOGI(TAG, "Bits per sample: %" PRIu16 "", wav_header.bits_per_sample);
+
175 ESP_LOGI(TAG, "Sample rate: %" PRIu32 "", wav_header.sample_rate);
+
176 ESP_LOGI(TAG, "Data size: %" PRIu32 "", wav_header.data_size);
+
177 esp_codec_dev_sample_info_t fs = {
+
178 .sample_rate = wav_header.sample_rate,
+
179 .channel = wav_header.num_channels,
+
180 .bits_per_sample = wav_header.bits_per_sample,
+
181 };
+
182 if (spk_codec_dev != NULL) {
+
183 int result = esp_codec_dev_open(spk_codec_dev, &fs);
+
184 }
+
185 // Calculate initial volume value
+
186 full_volume = exp10f((float)full_volume_db / 20);
+
187 // Calculate initial state for LPF
+ +
189 // Calculate initial state for HPF
+ +
191
+
192 BaseType_t ret = xTaskCreate(buttons_process_task, "buttons_process_task", 4096, NULL, 4, NULL);
+
193 assert(ret == pdPASS);
+
194
+
195 sync_read_task = xSemaphoreCreateCounting(1, 0);
+
196
+
197 ret = xTaskCreate(audio_read_task, "audio_read_task", 4096, NULL, 7, NULL);
+
198 assert(ret == pdPASS);
+
199 vTaskDelay(1);
+
200
+
201 ESP_LOGW(TAG, "To select volume/bass/treble please use the 'Set' button. And adjust the value with +/- buttons.");
+
202
+
203 for (;;) {
+
204 /* Get data from SPIFFS and send it to codec */
+ +
206 // Write samples to audio codec
+
207 esp_codec_dev_write(spk_codec_dev, wav_bytes, BUFFER_SIZE * sizeof(int16_t));
+ +
209 if (audio_buffer_write_index >= 3) {
+ +
211 }
+
212 // Check the triple buffer overflow
+ +
214 // Call delay to switch the task to fill the buffer
+
215 vTaskDelay(1);
+
216 // Check and indicate overflow status
+ +
218 ESP_LOGW(TAG, "Audio buffer overflow!");
+
219 }
+
220 }
+
221 // Generate synt event to read task:
+
222 xSemaphoreGive(sync_read_task);
+
223 }
+
224}
+
+
225
+
226// The audio_read_task is responsible to read data from the file and fill it to the audio buffer.
+
227// The audio buffer is places inside of triple buffer, to avoid overflow situation in case if
+
228// the processing task busy for a while.
+
+
229static void audio_read_task(void *arg)
+
230{
+
231 while (1) {
+
232 // Wait the sync semaphore
+
233 if (xSemaphoreTake(sync_read_task, 100)) {
+
234 // Get the pointer to the current audio buffer
+ +
236 // Read the data from the file
+
237 uint32_t bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
238 // Convert input samples from int16 to float for processing
+ +
240 // Apply bass
+ +
242 // Apply treble
+ +
244 // Apply voluve
+ +
246 // Apply limiter
+ +
248 // Convert from float to int16 for audio codec
+ +
250
+
251 if (bytes_read_from_spiffs != BUFFER_SIZE) {
+
252 // Rewind the file and read the WAV header
+
253 rewind(play_file);
+
254 fread((void *)&wav_header, 1, sizeof(wav_header), play_file);
+
255 // Read data to the audio buffer
+
256 bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
257 }
+ +
259 if (audio_buffer_read_index >= 3) {
+ +
261 }
+
262 } else {
+
263 // Error in case of timeout
+
264 ESP_LOGE(TAG, "Audio timeout!");
+
265 }
+
266 }
+
267}
+
+
268
+
+
269static void buttons_process_task(void *arg)
+
270{
+
271 while (1) {
+
272 int btn_index = 0;
+
273 if (xQueueReceive(audio_button_q, &btn_index, portMAX_DELAY) == pdTRUE) {
+
274 switch (btn_index) {
+
275 case BSP_BUTTON_SET: {
+
276 current_set += 1;
+
277 if (current_set > 2) {
+ +
279 }
+
280 switch (current_set) {
+
281 case AUDIO_VOLUME:
+
282 ESP_LOGW(TAG, "Select volume");
+
283 break;
+
284 case AUDIO_BASS:
+
285 ESP_LOGW(TAG, "Select bass");
+
286 break;
+
287 case AUDIO_TREBLE:
+
288 ESP_LOGW(TAG, "Select treble");
+
289 break;
+
290 default:
+
291 break;
+
292 }
+
293 break;
+
294 }
+
295 case BSP_BUTTON_VOLDOWN: {
+
296 switch (current_set) {
+
297 case AUDIO_VOLUME:
+
298 full_volume_db -= 3;
+
299 if (full_volume_db < -36) {
+
300 full_volume_db = -36;
+
301 }
+
302 full_volume = exp10f((float)full_volume_db / 20);
+
303 ESP_LOGI(TAG, "Volume Down: %i dB", full_volume_db);
+
304 break;
+
305 case AUDIO_BASS:
+
306 lpf_gain -= 1;
+
307 if (lpf_gain < -12) {
+
308 lpf_gain = -12;
+
309 }
+
310 ESP_LOGI(TAG, "Bass Down: %i", (int)lpf_gain);
+ +
312 break;
+
313 case AUDIO_TREBLE:
+
314 hpf_gain -= 1;
+
315 if (hpf_gain < -12) {
+
316 hpf_gain = -12;
+
317 }
+
318 ESP_LOGI(TAG, "Treble Down: %i", (int)hpf_gain);
+ +
320 break;
+
321 default:
+
322 break;
+
323 }
+
324 break;
+
325 }
+
326 case BSP_BUTTON_VOLUP: {
+
327 switch (current_set) {
+
328 case AUDIO_VOLUME:
+
329 full_volume_db += 3;
+
330 if (full_volume_db > 0) {
+
331 full_volume_db = 0;
+
332 }
+
333 full_volume = exp10f((float)full_volume_db / 20);
+
334 ESP_LOGI(TAG, "Volume Up: %i dB", full_volume_db);
+
335 break;
+
336 case AUDIO_BASS:
+
337 lpf_gain += 1;
+
338 if (lpf_gain > 12) {
+
339 lpf_gain = 12;
+
340 }
+
341 ESP_LOGI(TAG, "Bass Up: %i", (int)lpf_gain);
+ +
343 break;
+
344 case AUDIO_TREBLE:
+
345 hpf_gain += 1;
+
346 if (hpf_gain > 12) {
+
347 hpf_gain = 12;
+
348 }
+
349 ESP_LOGI(TAG, "Treble Up: %i", (int)hpf_gain);
+ +
351 break;
+
352 default:
+
353 break;
+
354 }
+
355 break;
+
356 }
+
357 default:
+
358 ESP_LOGI(TAG, "No function for this button");
+
359 break;
+
360 }
+
361 }
+
362 }
+
363}
+
+
364
+
+
365void app_main(void)
+
366{
+
367 ESP_ERROR_CHECK(bsp_spiffs_mount());
+
368
+
369 // Create FreeRTOS tasks and queues
+
370 audio_button_q = xQueueCreate(10, sizeof(int));
+
371 assert (audio_button_q != NULL);
+
372
+
373 BaseType_t ret = xTaskCreate(audio_process_task, "audio_process_task", 4096, NULL, 6, NULL);
+
374 assert(ret == pdPASS);
+
375
+
376 // Init audio buttons
+
377 button_handle_t btns[BSP_BUTTON_NUM];
+
378 ESP_ERROR_CHECK(bsp_iot_button_create(btns, NULL, BSP_BUTTON_NUM));
+
379 for (int i = 0; i < BSP_BUTTON_NUM; i++) {
+
380 ESP_ERROR_CHECK(iot_button_register_cb(btns[i], BUTTON_PRESS_DOWN, btn_handler, (void *) i));
+
381 }
+
382}
+
+ +
static SemaphoreHandle_t sync_read_task
+ + + + +
static void audio_read_task(void *arg)
+ + + +
static QueueHandle_t audio_button_q
+ + +
static void btn_handler(void *button_handle, void *usr_data)
+
static const char play_filename[]
+ + + + + + + +
static void buttons_process_task(void *arg)
+
enum audio_set audio_set_t
+
static dumb_wav_header_t wav_header
+
static void audio_process_task(void *arg)
+ + + + +
static esp_codec_dev_handle_t spk_codec_dev
+ + + + + + +
#define dsps_biquad_f32
Definition dsps_biquad.h:99
+
esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor)
low shelf IIR filter coefficients
+
esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor)
high shelf IIR filter coefficients
+
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+ + +
void digitalLimiter(float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
+ +
static void btn_handler(void *button_handle, void *usr_data)
+ + + +
static void convert_float2short(float *float_data, int16_t *int16_data, int len)
+
static void convert_short2float(int16_t *int16_data, float *float_data, int len)
+
static const char * TAG
Definition main/main.c:31
+
struct __attribute__((packed))
Definition main/main.c:65
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html new file mode 100644 index 0000000..edea8c0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html @@ -0,0 +1,671 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include "esp_log.h"
+#include "ssd1306.h"
+#include "bsp/esp-bsp.h"
+#include "esp_dsp.h"
+#include "cube_matrix.h"
+#include "esp_logo.h"
+#include "esp_text.h"
+#include "graphics_support.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + +

+Functions

void app_main ()
static void init_3d_matrix_struct (image_3d_matrix_t *image)
 Initialize 3d image structure.
static void app_ssd1306_init (void)
 Initialize display.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void dispaly_esp_text (void)
 Display ESPRESSIF text.
static void draw_3d_image_task (void *arg)
 RTOS task to draw a 3d image.
+ + + + +

+Variables

static ssd1306_handle_t ssd1306_dev = NULL
static bool button_pressed = true
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
+

Function Documentation

+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 203 of file external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
204{
+
205 static bool button_prev_val = false;
+ + +
208 ekf13->Init();
+
209
+
210 // Init all board components
+
211 bsp_i2c_init();
+
212 app_ssd1306_init(); // display init
+
213 bsp_leds_init(); // LEDs init
+
214 bsp_i2c_set_clk_speed(I2C_CLK_600KHZ); // Set I2C to 600kHz
+
215
+ + +
218
+ +
220 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
221
+
222 xTaskCreate(draw_3d_image_task, "draw_3d_image", 2048, &image, 4, NULL);
+
223 ESP_LOGI("3D image demo", "Showing 3D image");
+
224
+
225 while (1) {
+
226 if (bsp_button_get()) {
+ +
228 }
+
229
+
230 if (button_prev_val != button_pressed) {
+
231 button_prev_val = button_pressed;
+
232 if (button_pressed) {
+
233 bsp_led_set(BSP_LED_AZURE, true);
+
234 } else {
+
235 bsp_led_set(BSP_LED_AZURE, false);
+
236 }
+
237 }
+
238 vTaskDelay(100 / portTICK_PERIOD_MS);
+
239 }
+
240}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + + +
This class is used to process and calculate attitude from imu sensors.
+ +
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+ +
+

References app_ssd1306_init(), bsp_i2c_init(), button_pressed, dispaly_esp_text(), draw_3d_image_task(), ekf13, image, init_3d_matrix_struct(), init_perspective_matrix(), and perspective_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ app_ssd1306_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_ssd1306_init (void )
+
+static
+
+ +

Initialize display.

+ +

Definition at line 53 of file external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
54{
+
55 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
56 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
57 ssd1306_refresh_gram(ssd1306_dev);
+
58}
+ +
+

References ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dispaly_esp_text()

+ +
+
+ + + + + +
+ + + + + + + +
void dispaly_esp_text (void )
+
+static
+
+ +

Display ESPRESSIF text.

+

To demonstrate usage of the translation and scaling matrices

+ +

Definition at line 96 of file external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
97{
+
98 image_3d_matrix_t esp_text;
+ +
100 esp_text.matrix_len = ((sizeof(image_3d_array_esp_text)) / sizeof(float)) / MATRIX_SIZE;
+
101 int16_t shift_x = -SSD1606_X_CENTER;
+
102
+
103 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
104 dspm::Mat transformed_image(esp_text.matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
105 dspm::Mat matrix_3d((float *)esp_text.matrix[0], esp_text.matrix_len, MATRIX_SIZE);
+
106
+
107 ESP_LOGI("3D image demo", "Showing ESP text");
+
108
+
109 for (int i = 0; i < 52; i++) {
+
110 update_translation_matrix(T, true, (float)shift_x, (float)SSD1606_Y_CENTER, 0);
+
111 transformed_image = matrix_3d * T;
+
112
+
113 ssd1306_clear_screen(ssd1306_dev, 0);
+
114 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
115 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
116 }
+
117 ssd1306_refresh_gram(ssd1306_dev);
+
118 vTaskDelay(50 / portTICK_PERIOD_MS);
+
119
+
120 shift_x += 5;
+
121 }
+
122
+
123 ssd1306_clear_screen(ssd1306_dev, 0);
+
124 ssd1306_draw_bitmap(ssd1306_dev, 0, 24, &image_bmp_array_esp_text[0], 128, 24);
+
125 ssd1306_refresh_gram(ssd1306_dev);
+
126
+ +
128 vTaskDelay(100 / portTICK_PERIOD_MS);
+
129
+
130 float scale = 1;
+
131 for (int i = 0; i < 20; i++) {
+
132 update_scaling_matrix(T, false, scale, scale, 1);
+
133 transformed_image = matrix_3d * T;
+
134
+
135 ssd1306_clear_screen(ssd1306_dev, 0);
+
136 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
137 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
138 }
+
139 ssd1306_refresh_gram(ssd1306_dev);
+
140 vTaskDelay(50 / portTICK_PERIOD_MS);
+
141
+
142 if (i < 10) {
+
143 scale -= 0.05;
+
144 } else {
+
145 scale += 0.05;
+
146 }
+
147 }
+
148}
+ + +
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+ + + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+ + +
+

References dspm::Mat::eye(), image_3d_array_esp_text, image_bmp_array_esp_text, image_3d_matrix_s::matrix, image_3d_matrix_s::matrix_len, MATRIX_SIZE, dspm::Mat::rows, ssd1306_dev, SSD1606_X_CENTER, SSD1606_Y_CENTER, update_scaling_matrix(), and update_translation_matrix().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 68 of file external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
69{
+
70 ssd1306_clear_screen(ssd1306_dev, 0);
+
71
+
72 if (OBJECT_3D_CUBE) {
+
73 // For the 3D cube, only the 6 points of the cube are transformed
+
74 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
75 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
76 ssd1306_draw_line(ssd1306_dev,
+
77 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
78 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
79 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
80 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
81 }
+
82 } else {
+
83 // Every other 3D image is drawn here pixel by pixel
+
84 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
85 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
86 }
+
87 }
+
88 ssd1306_refresh_gram(ssd1306_dev);
+
89}
+ + + + +
int rows
Definition mat.h:33
+
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, OBJECT_3D_CUBE, dspm::Mat::rows, and ssd1306_dev.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image_task()

+ +
+
+ + + + + +
+ + + + + + + +
void draw_3d_image_task (void * arg)
+
+static
+
+ +

RTOS task to draw a 3d image.

+

Updates 3d matrices, prepares the final 3d matrix to be displayed on the display

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 157 of file external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
158{
+
159 float rot_y = 0, rot_x = 0;
+
160 const float angle_increment = 4;
+ +
162
+
163 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
164 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
165 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
166 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
167
+
168 if (OBJECT_3D_CUBE) {
+
169 rot_x = 45;
+
170 }
+
171
+
172 while (1) {
+
173 if (button_pressed) {
+
174 rot_y += angle_increment;
+
175 if (rot_y >= 360) {
+
176 rot_y -= 360;
+
177 }
+
178 } else {
+
179 rot_y -= angle_increment;
+
180 if (rot_y <= 0) {
+
181 rot_y += 360;
+
182 }
+
183 }
+
184
+
185 // Apply rotation in all the axes to the transformation matrix
+
186 update_rotation_matrix(T, rot_x, rot_y, 0);
+
187 // Apply translation to the transformation matrix
+
188 update_translation_matrix(T, true, ((float)SSD1606_X_CENTER), ((float)SSD1606_Y_CENTER), 0);
+
189
+
190 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
191 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
192
+
193 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
194 transformed_image = matrix_3d * T;
+
195 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
196 projected_image = transformed_image * perspective_matrix;
+
197
+
198 display_3d_image(projected_image);
+
199 vTaskDelay(20 / portTICK_PERIOD_MS);
+
200 }
+
201}
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
+

References button_pressed, display_3d_image(), dspm::Mat::eye(), image, MATRIX_SIZE, OBJECT_3D_CUBE, perspective_matrix, SSD1606_X_CENTER, SSD1606_Y_CENTER, update_rotation_matrix(), and update_translation_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_t * image)
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + +
image3d image structure
+
+
+ +

Definition at line 33 of file external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
34{
+
35#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
37 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
38 ESP_LOGI("3D image demo", "Selected 3D image - ESP Logo");
+
39#elif CONFIG_3D_OBJECT_CUSTOM
+ +
41 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
42 ESP_LOGI("3D image demo", "Selected 3D image - User's custom image");
+
43#elif CONFIG_3D_OBJECT_CUBE
+
44 image->matrix = cube_vectors_3d;
+
45 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
46 ESP_LOGI("3D image demo", "Selected 3D image - 3D cube");
+
47#endif
+
48}
+ +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
+

References cube_vectors_3d, image, image_3d_matrix_esp_logo, image_to_3d_matrix_custom, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ button_pressed

+ +
+
+ + + + + +
+ + + + +
bool button_pressed = true
+
+static
+
+
+ +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ ssd1306_dev

+ +
+
+ + + + + +
+ + + + +
ssd1306_handle_t ssd1306_dev = NULL
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js new file mode 100644 index 0000000..7835e5f --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js @@ -0,0 +1,12 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp = +[ + [ "app_main", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "app_ssd1306_init", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#afac7c47eff81b6719e589256c8799d5e", null ], + [ "dispaly_esp_text", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a0edd8bfc49beafeacd3540ba291680c3", null ], + [ "display_3d_image", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image_task", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af3debef909dca35dbf0b6f842df6def3", null ], + [ "init_3d_matrix_struct", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a3340d28d7e9de0fd62d17e02ce70a52c", null ], + [ "button_pressed", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af23a0eb11ff9589330539e6b763badc8", null ], + [ "perspective_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "ssd1306_dev", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a001a4d44724bfb0668ac6de0d351ae75", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 new file mode 100644 index 0000000..43d1458 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +69f4872736eca28f0487ccf3e819fd6b \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg new file mode 100644 index 0000000..7751607 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg @@ -0,0 +1,1744 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +bsp/esp-bsp.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +esp_text.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +graphics_support.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +image_to_3d_matrix.h + + + + + +Node1->Node79 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node3 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..0819c57 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg @@ -0,0 +1,1661 @@ + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +bsp/esp-bsp.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +esp_text.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +graphics_support.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +image_to_3d_matrix.h + + + + + +Node1->Node79 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node3 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 new file mode 100644 index 0000000..ddfaf75 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 @@ -0,0 +1 @@ +14552d159a36a965afa4304797e7f116 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg new file mode 100644 index 0000000..b4bd648 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +update_scaling_matrix + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +update_translation +_matrix + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg new file mode 100644 index 0000000..4146521 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg @@ -0,0 +1,112 @@ + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +update_scaling_matrix + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +update_translation +_matrix + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 new file mode 100644 index 0000000..7c1ed8e --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 @@ -0,0 +1 @@ +0217fa1f3738567117044dc8a374aac7 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg new file mode 100644 index 0000000..c6545ed --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg new file mode 100644 index 0000000..eb72bf2 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 new file mode 100644 index 0000000..f705383 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 @@ -0,0 +1 @@ +2e8aae23b74f614d80c77889360607a3 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg new file mode 100644 index 0000000..4668cd8 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg new file mode 100644 index 0000000..88989c9 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..ce25e33 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +230c29f090e4c68e509c605c40be2504 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..853762c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..2dbf507 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..4815591 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +01726da19ef21a01a1426dadb50799d4 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..bbbc8fa --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_ssd1306_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +init_3d_matrix_struct + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +init_perspective_matrix + + + + + +Node1->Node16 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +update_scaling_matrix + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +ekf::eul2rotm + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dspm::Mat::t + + + + + +Node12->Node14 + + + + + + + + +Node14->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..59407cf --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,301 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_ssd1306_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +init_3d_matrix_struct + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +init_perspective_matrix + + + + + +Node1->Node16 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +update_scaling_matrix + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +ekf::eul2rotm + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dspm::Mat::t + + + + + +Node12->Node14 + + + + + + + + +Node14->Node6 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 new file mode 100644 index 0000000..bff984c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 @@ -0,0 +1 @@ +4790973b3fb4a2de682a0f23f061199e \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg new file mode 100644 index 0000000..f28bb6d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg new file mode 100644 index 0000000..a7a2dba --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg @@ -0,0 +1,175 @@ + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 new file mode 100644 index 0000000..2776ca0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 @@ -0,0 +1 @@ +e8f68c6aee907c85856b67507fdcffa3 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg new file mode 100644 index 0000000..ee15383 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg new file mode 100644 index 0000000..7c8dd63 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html new file mode 100644 index 0000000..4d3a155 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html @@ -0,0 +1,366 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include "esp_log.h"
+
9#include "ssd1306.h"
+
10#include "bsp/esp-bsp.h"
+
11#include "esp_dsp.h"
+
12#include "cube_matrix.h"
+
13#include "esp_logo.h"
+
14#include "esp_text.h"
+
15#include "graphics_support.h"
+
16#include "image_to_3d_matrix.h"
+
17
+
18static ssd1306_handle_t ssd1306_dev = NULL;
+
19static bool button_pressed = true;
+
20
+ +
22
+
23extern "C" void app_main();
+
24
+
+ +
34{
+
35#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
37 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
38 ESP_LOGI("3D image demo", "Selected 3D image - ESP Logo");
+
39#elif CONFIG_3D_OBJECT_CUSTOM
+ +
41 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
42 ESP_LOGI("3D image demo", "Selected 3D image - User's custom image");
+
43#elif CONFIG_3D_OBJECT_CUBE
+
44 image->matrix = cube_vectors_3d;
+
45 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
46 ESP_LOGI("3D image demo", "Selected 3D image - 3D cube");
+
47#endif
+
48}
+
+
49
+
+
53static void app_ssd1306_init(void)
+
54{
+
55 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
56 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
57 ssd1306_refresh_gram(ssd1306_dev);
+
58}
+
+
59
+
+
68static void display_3d_image(dspm::Mat projected_image)
+
69{
+
70 ssd1306_clear_screen(ssd1306_dev, 0);
+
71
+
72 if (OBJECT_3D_CUBE) {
+
73 // For the 3D cube, only the 6 points of the cube are transformed
+
74 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
75 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
76 ssd1306_draw_line(ssd1306_dev,
+
77 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
78 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
79 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
80 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
81 }
+
82 } else {
+
83 // Every other 3D image is drawn here pixel by pixel
+
84 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
85 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
86 }
+
87 }
+
88 ssd1306_refresh_gram(ssd1306_dev);
+
89}
+
+
90
+
+
96static void dispaly_esp_text(void)
+
97{
+
98 image_3d_matrix_t esp_text;
+ +
100 esp_text.matrix_len = ((sizeof(image_3d_array_esp_text)) / sizeof(float)) / MATRIX_SIZE;
+
101 int16_t shift_x = -SSD1606_X_CENTER;
+
102
+
103 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
104 dspm::Mat transformed_image(esp_text.matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
105 dspm::Mat matrix_3d((float *)esp_text.matrix[0], esp_text.matrix_len, MATRIX_SIZE);
+
106
+
107 ESP_LOGI("3D image demo", "Showing ESP text");
+
108
+
109 for (int i = 0; i < 52; i++) {
+
110 update_translation_matrix(T, true, (float)shift_x, (float)SSD1606_Y_CENTER, 0);
+
111 transformed_image = matrix_3d * T;
+
112
+
113 ssd1306_clear_screen(ssd1306_dev, 0);
+
114 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
115 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
116 }
+
117 ssd1306_refresh_gram(ssd1306_dev);
+
118 vTaskDelay(50 / portTICK_PERIOD_MS);
+
119
+
120 shift_x += 5;
+
121 }
+
122
+
123 ssd1306_clear_screen(ssd1306_dev, 0);
+
124 ssd1306_draw_bitmap(ssd1306_dev, 0, 24, &image_bmp_array_esp_text[0], 128, 24);
+
125 ssd1306_refresh_gram(ssd1306_dev);
+
126
+ +
128 vTaskDelay(100 / portTICK_PERIOD_MS);
+
129
+
130 float scale = 1;
+
131 for (int i = 0; i < 20; i++) {
+
132 update_scaling_matrix(T, false, scale, scale, 1);
+
133 transformed_image = matrix_3d * T;
+
134
+
135 ssd1306_clear_screen(ssd1306_dev, 0);
+
136 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
137 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
138 }
+
139 ssd1306_refresh_gram(ssd1306_dev);
+
140 vTaskDelay(50 / portTICK_PERIOD_MS);
+
141
+
142 if (i < 10) {
+
143 scale -= 0.05;
+
144 } else {
+
145 scale += 0.05;
+
146 }
+
147 }
+
148}
+
+
149
+
+
157static void draw_3d_image_task(void *arg)
+
158{
+
159 float rot_y = 0, rot_x = 0;
+
160 const float angle_increment = 4;
+ +
162
+
163 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
164 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
165 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
166 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
167
+
168 if (OBJECT_3D_CUBE) {
+
169 rot_x = 45;
+
170 }
+
171
+
172 while (1) {
+
173 if (button_pressed) {
+
174 rot_y += angle_increment;
+
175 if (rot_y >= 360) {
+
176 rot_y -= 360;
+
177 }
+
178 } else {
+
179 rot_y -= angle_increment;
+
180 if (rot_y <= 0) {
+
181 rot_y += 360;
+
182 }
+
183 }
+
184
+
185 // Apply rotation in all the axes to the transformation matrix
+
186 update_rotation_matrix(T, rot_x, rot_y, 0);
+
187 // Apply translation to the transformation matrix
+
188 update_translation_matrix(T, true, ((float)SSD1606_X_CENTER), ((float)SSD1606_Y_CENTER), 0);
+
189
+
190 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
191 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
192
+
193 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
194 transformed_image = matrix_3d * T;
+
195 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
196 projected_image = transformed_image * perspective_matrix;
+
197
+
198 display_3d_image(projected_image);
+
199 vTaskDelay(20 / portTICK_PERIOD_MS);
+
200 }
+
201}
+
+
202
+
+
203void app_main(void)
+
204{
+
205 static bool button_prev_val = false;
+ + +
208 ekf13->Init();
+
209
+
210 // Init all board components
+
211 bsp_i2c_init();
+
212 app_ssd1306_init(); // display init
+
213 bsp_leds_init(); // LEDs init
+
214 bsp_i2c_set_clk_speed(I2C_CLK_600KHZ); // Set I2C to 600kHz
+
215
+ + +
218
+ +
220 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
221
+
222 xTaskCreate(draw_3d_image_task, "draw_3d_image", 2048, &image, 4, NULL);
+
223 ESP_LOGI("3D image demo", "Showing 3D image");
+
224
+
225 while (1) {
+
226 if (bsp_button_get()) {
+ +
228 }
+
229
+
230 if (button_prev_val != button_pressed) {
+
231 button_prev_val = button_pressed;
+
232 if (button_pressed) {
+
233 bsp_led_set(BSP_LED_AZURE, true);
+
234 } else {
+
235 bsp_led_set(BSP_LED_AZURE, false);
+
236 }
+
237 }
+
238 vTaskDelay(100 / portTICK_PERIOD_MS);
+
239 }
+
240}
+
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+ + + + + +
const float image_3d_matrix_esp_logo[1427][4]
+ + +
const float image_to_3d_matrix_custom[1732][4]
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+ + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+ + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html new file mode 100644 index 0000000..56adb5e --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html @@ -0,0 +1,1478 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include <malloc.h>
+#include "mpu6050.h"
+#include "ssd1306.h"
+#include "mag3110.h"
+#include "fbm320.h"
+#include "bsp/esp-bsp.h"
+#include "esp_log.h"
+#include "esp_timer.h"
+#include "esp_idf_version.h"
+#include "nvs.h"
+#include "nvs_flash.h"
+#include "graphics_support.h"
+#include "cube_matrix.h"
+#include "esp_dsp.h"
+#include "ekf_imu13states.h"
+#include "esp_logo.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Macros

#define STORAGE_NAMESPACE   "kalman_filter"
#define USE_BAROMETER   0
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void app_main ()
static void app_mag3110_init (void)
 Initialize magnetometer.
static void app_ssd1306_init (void)
 Initialize display.
static void mpu6050_init (void)
 Initialize accelerometer and gyroscope.
static void app_fbm320_init (void)
 Initialize pressure sensor.
static void init_nvs_flash_memory (void)
 Initialize NVS flash memory.
static void init_3d_matrix_struct (image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
 Initialize 3d image structure.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void draw_3d_image (ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
 Draw a 3d image.
static void kalman_filter_task (void *arg)
 Kalman filter RTOS task (or ESP timer callback).
static void kalman_filter_calibration (image_3d_matrix_kalman_t *image)
 Kalman filter calibration procedure.
static void save_state_vectors_task (void *arg)
 RTOS task to periodically save the filter state.
static void get_pressure_task (void *arg)
 ROTS task to read a pressure.
float get_initial_pressure (void)
 read the initial value of pressure
+ + + + + + + + +

+Variables

static ssd1306_handle_t ssd1306_dev = NULL
static mpu6050_handle_t mpu6050_dev = NULL
static mag3110_handle_t mag3110_dev = NULL
static fbm320_handle_t fbm320_dev = NULL
static bool kalman_filter_calibrated = false
static bool board_inactive = true
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
+

Macro Definition Documentation

+ +

◆ STORAGE_NAMESPACE

+ +
+
+ + + + +
#define STORAGE_NAMESPACE   "kalman_filter"
+
+
+ +

◆ USE_BAROMETER

+ +
+
+ + + + +
#define USE_BAROMETER   0
+
+
+

Function Documentation

+ +

◆ app_fbm320_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_fbm320_init (void )
+
+static
+
+ +

Initialize pressure sensor.

+ +

Definition at line 78 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
79{
+
80 esp_err_t ret;
+
81 fbm320_dev = fbm320_create((i2c_port_t)BSP_I2C_NUM, FBM320_I2C_ADDRESS_1);
+
82 ret = fbm320_init(fbm320_dev);
+
83 assert(ESP_OK == ret);
+
84}
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK, and fbm320_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_mag3110_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_mag3110_init (void )
+
+static
+
+ +

Initialize magnetometer.

+ +

Definition at line 44 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
45{
+
46 esp_err_t ret;
+
47 mag3110_dev = mag3110_create((i2c_port_t)BSP_I2C_NUM);
+
48 mag3110_start_raw(mag3110_dev, MAG3110_DR_OS_80_16);
+
49 assert(ESP_OK == ret);
+
50}
+ +
+

References ESP_OK, and mag3110_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 575 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
576{
+ + +
579 ekf13->Init();
+
580
+
581 // Init all board components
+
582 bsp_i2c_init();
+
583 app_ssd1306_init(); // display init
+
584 mpu6050_init(); // gyro, acc init
+
585 app_mag3110_init(); // magnetometer init
+
586 app_fbm320_init(); // barometer init
+
587 bsp_leds_init(); // LEDs init
+
588 init_nvs_flash_memory(); // Non-Volatile Storage
+
589
+ + + +
593
+
594 // Use a barometer for measuring the altitude
+
595 if (USE_BAROMETER) {
+
596 float init_pressure = get_initial_pressure();
+
597 xTaskCreate(get_pressure_task, "get_pressure_task", 2048 * 4, &init_pressure, 4, NULL);
+
598 } else {
+
599 ESP_LOGI("Barometer", "disabled");
+
600 }
+
601
+
602 xTaskCreate(kalman_filter_task, "kalman_filter_task", 2048 * 4, &image, 5, NULL);
+
603 xTaskCreate(save_state_vectors_task, "save_state_vectors", 2048, ekf13, 6, NULL);
+
604
+
605 while (1) {
+
606 vTaskDelay(10000 / portTICK_PERIOD_MS);
+
607 }
+
608}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+ + + +
This class is used to process and calculate attitude from imu sensors.
+
static void mpu6050_init(void)
Initialize accelerometer and gyroscope.
+
static void kalman_filter_calibration(image_3d_matrix_kalman_t *image)
Kalman filter calibration procedure.
+ + + + +
static void init_3d_matrix_struct(image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
Initialize 3d image structure.
+ +
+

References app_fbm320_init(), app_mag3110_init(), app_ssd1306_init(), bsp_i2c_init(), ekf13, get_initial_pressure(), get_pressure_task(), image, init_3d_matrix_struct(), init_nvs_flash_memory(), init_perspective_matrix(), kalman_filter_calibration(), kalman_filter_task(), mpu6050_init(), perspective_matrix, save_state_vectors_task(), and USE_BAROMETER.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ app_ssd1306_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_ssd1306_init (void )
+
+static
+
+ +

Initialize display.

+ +

Definition at line 55 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
56{
+
57 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
58 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
59 ssd1306_refresh_gram(ssd1306_dev);
+
60}
+ +
+

References ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 136 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
137{
+
138 ssd1306_clear_screen(ssd1306_dev, 0);
+
139
+
140 if (OBJECT_3D_CUBE) {
+
141 // For the 3D cube, only the 6 points of the cube are transformed
+
142 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
143 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
144 ssd1306_draw_line(ssd1306_dev,
+
145 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
146 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
147 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
148 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
149 }
+
150 } else {
+
151 // Every other 3D image is drawn here pixel by pixel
+
152 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
153 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
154 }
+
155 }
+
156 ssd1306_refresh_gram(ssd1306_dev);
+
157}
+ + + + +
int rows
Definition mat.h:33
+
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, OBJECT_3D_CUBE, dspm::Mat::rows, and ssd1306_dev.

+ +

Referenced by draw_3d_image().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
void draw_3d_image (ekf_imu13states * ekf13,
dspm::Mat & transformed_image,
dspm::Mat & projected_image,
dspm::Mat & matrix_3d )
+
+static
+
+ +

Draw a 3d image.

+

Updates 3d matrices and prepares the final 3d matrix to be displayed on the display. Board inactivity check - decides which board mode to display (active or inactive), based on the board movements.

+
Parameters
+ + + + + +
ekf13kalman filter object
transformed_image3d matrix holding a 3d image after transformation
projected_image3d matrix holding a 3d image after projection
matrix_3d3d matrix holding the original 3d image, without any transformation
+
+
+ +

Definition at line 170 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
171{
+
172 static const float movement_treshold = 0.0001; // threshold to decide between Idle and Active state of the board
+
173 static float inactive_rotation = 0; // rotation angle (in degrees) for Idle state
+
174 static unsigned int inactivity_count = 0;
+
175 static const unsigned int inactivity_count_treshold = 75;
+
176 static unsigned int inactivity_check = 0; // activity of the board is being checked once in N calls of the function
+
177 static float prev_state_arr[3] = {0, 0, 0}; // holds the previous state of the Euler angles, to compare the diff
+
178
+
179 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
180 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data); // matrix(3x1) that holds x, y, z rotation data
+
181 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
182
+
183 // check if the board is active or not every N calls of the function
+
184 if (!(inactivity_check++ % 10)) {
+
185 dspm::Mat prev_state_mat(prev_state_arr, 3, 1);
+
186 dspm::Mat diff = eul_angles - prev_state_mat;
+
187 prev_state_mat = eul_angles;
+
188
+
189 float max_diff = fabs(diff(0, 0) * diff(1, 0) * diff(2, 0));
+
190
+
191 // wake-up the board if the current board movement crosses the threshold
+
192 if (board_inactive && (max_diff > movement_treshold)) {
+
193 board_inactive = false;
+
194 ESP_LOGI("Board status", "board put to active mode");
+
195 }
+
196
+
197 // if the board is awake, and the current movement of the board is lower than the threshold - the board is
+
198 // being moved with - run the inactivity_counter
+
199 // after some time (if the movement of the board has been lower than the threshold) put the board to idle mode
+
200 else if (!board_inactive && (max_diff < movement_treshold)) {
+
201 if (inactivity_count > inactivity_count_treshold) {
+
202 board_inactive = true;
+
203 inactivity_count = 0;
+
204 ESP_LOGI("Board status", "board put to idle mode");
+ +
206 }
+
207 inactivity_count++;
+
208 }
+
209
+
210 // if the board is awake and the current movement of the board is higher than the threshold clear the inactivity_counter
+
211 else if (!board_inactive && (max_diff >= movement_treshold)) {
+
212 inactivity_count = 0;
+
213 }
+
214 }
+
215
+
216 if (board_inactive) {
+
217 // board idle state - display a rotating cube
+
218 update_rotation_matrix(T, inactive_rotation += 3.0, 10.0, 10.0);
+
219 } else {
+
220 // board active state - 3D object follows movements of the board
+
221 eul_angles(2, 0) = -eul_angles(2, 0);
+
222 dspm::Mat R = ekf::eul2rotm(eul_angles.data);
+
223
+
224 // Enlarge rotation matrix from 3x3 to 4x4
+
225 // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
226 for (int row = 0; row < R.rows; row++) {
+
227 for (int col = 0; col < R.cols; col++) {
+
228 T(row, col) = R(row, col);
+
229 }
+
230 }
+
231 }
+
232
+
233 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
234 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
235
+
236 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
237 transformed_image = matrix_3d * T;
+
238 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
239 projected_image = transformed_image * perspective_matrix;
+
240 display_3d_image(projected_image);
+
241}
+ +
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
int cols
Definition mat.h:34
+
static Mat eye(int size)
Definition mat.cpp:394
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
+

References board_inactive, dspm::Mat::cols, dspm::Mat::data, display_3d_image(), ekf13, ekf::eul2rotm(), dspm::Mat::eye(), MATRIX_SIZE, perspective_matrix, ekf::quat2rotm(), ekf::rotm2eul(), dspm::Mat::rows, update_perspective_matrix(), and update_rotation_matrix().

+ +

Referenced by kalman_filter_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ get_initial_pressure()

+ +
+
+ + + + + + + +
float get_initial_pressure (void )
+
+ +

read the initial value of pressure

+ +

Definition at line 541 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
542{
+
543 float pressure;
+
544 int32_t real_p, real_t;
+
545 int averagning_loop_count = 500;
+
546
+
547 ESP_LOGI("Barometer", "Averagining initial barometer pressure");
+
548 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
549 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Barometer", 16, 1);
+
550 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"averaging", 16, 1);
+
551 ssd1306_refresh_gram(ssd1306_dev);
+
552
+
553 // take the first pressure measurement
+
554 while (1) {
+
555 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
556 pressure = ((float)real_p) / 1000.0; // pressure in kPa
+
557 break;
+
558 }
+
559 }
+
560
+
561 // average first N measurements
+
562 while (averagning_loop_count--) {
+
563 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
564 pressure = (0.999 * pressure) + (0.001 * ((float)real_p) / 1000.0);
+
565 vTaskDelay(100 / portTICK_PERIOD_MS);
+
566 }
+
567 }
+
568
+
569 ESP_LOGI("Barometer", "Initial value set");
+
570 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
571 ssd1306_refresh_gram(ssd1306_dev);
+
572 return (pressure);
+
573}
+
+

References ESP_OK, fbm320_dev, and ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ get_pressure_task()

+ +
+
+ + + + + +
+ + + + + + + +
void get_pressure_task (void * arg)
+
+static
+
+ +

ROTS task to read a pressure.

+

Pressure is measured periodically to better average out a stable value of pressure

+
Parameters
+ + +
argpointer to RTOS task arguments, pointer to the pressure variable in this case
+
+
+ +

Definition at line 497 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
498{
+
499 int32_t real_p, real_t;
+
500 float *pressure_ptr = (float *)arg;
+
501 float pressure_global = *pressure_ptr;
+
502
+
503 int call_count = 0;
+
504 int call_count1 = 0;
+
505 float pressure_initial = pressure_global;
+
506 float last_pressure = pressure_global;
+
507 float baro_image = pressure_global;
+
508 bool changed = false;
+
509
+
510 while (1) {
+
511 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
512 pressure_global = (0.999 * pressure_global) + (0.001 * ((float)real_p) / 1000.0);
+
513 call_count1++;
+
514 }
+
515
+
516 if (board_inactive) {
+
517 pressure_initial = pressure_global;
+
518 last_pressure = pressure_global;
+
519 baro_image = pressure_global;
+
520 } else {
+
521 call_count++;
+
522 if (fabs(pressure_global - last_pressure) > 0.0005) { // cahnge more than 0.5 Pa
+
523 last_pressure = pressure_global;
+
524 baro_image = (0.9 * baro_image) + (0.1 * last_pressure);
+
525 changed = true;
+
526 }
+
527
+
528 if ((!(call_count % 10)) && changed) {
+
529 float fov = 90 + (1000.0 * ((float)(pressure_initial - baro_image)));
+ +
531 changed = false;
+
532 }
+
533 }
+
534 vTaskDelay(100 / portTICK_PERIOD_MS);
+
535 }
+
536}
+
+

References board_inactive, ESP_OK, fbm320_dev, perspective_matrix, and update_perspective_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_kalman_t * image,
ekf_imu13states * ekf13 )
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + + +
imagepointer to 3d image structure
ekf13kalman filter object
+
+
+ +

Definition at line 110 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
111{
+
112#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
114 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
115 ESP_LOGI("Kalman filter demo", "Selected 3D image - ESP Logo");
+
116#elif CONFIG_3D_OBJECT_CUSTOM
+ +
118 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
119 ESP_LOGI("Kalman filter demo", "Selected 3D image - User's custom image");
+
120#elif CONFIG_3D_OBJECT_CUBE
+
121 image->matrix = cube_vectors_3d;
+
122 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
123 ESP_LOGI("Kalman filter demo", "Selected 3D image - 3D cube");
+
124#endif
+
125 image->ekf13 = ekf13;
+
126}
+ +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
+

References cube_vectors_3d, ekf13, image, image_3d_matrix_esp_logo, image_to_3d_matrix_custom, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ init_nvs_flash_memory()

+ +
+
+ + + + + +
+ + + + + + + +
void init_nvs_flash_memory (void )
+
+static
+
+ +

Initialize NVS flash memory.

+ +

Definition at line 89 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
90{
+
91 esp_err_t err = nvs_flash_init();
+
92 if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+
93 // NVS partition was truncated and needs to be erased
+
94 // Retry nvs_flash_init
+
95 ESP_ERROR_CHECK(nvs_flash_erase());
+
96 err = nvs_flash_init();
+
97 }
+
98 ESP_ERROR_CHECK( err );
+
99}
+
+

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ kalman_filter_calibration()

+ +
+
+ + + + + +
+ + + + + + + +
void kalman_filter_calibration (image_3d_matrix_kalman_t * image)
+
+static
+
+ +

Kalman filter calibration procedure.

+

The Kalman filter must be calibrated before the very first run. The state of the Kalman filter is saved into NVS after the calibration. The calibration is run, only if no Kalman filter state is saved in the NVS. Which occurs after erasing the flash memory. Power cycling the board does not remove the Kalman filter state from the NVS.

+
Parameters
+ + +
imagepointer to 3d image structure
+
+
+ +

Definition at line 326 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
327{
+
328 ekf_imu13states *ekf13 = image->ekf13;
+
329 esp_err_t ret;
+
330 nvs_handle_t nvs_handle_kalman;
+
331 size_t state_vectors_size = 13 * 14;
+
332 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
333
+
334 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
335 if (ret != ESP_OK) {
+
336 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
337 assert(ESP_OK == ret);
+
338 }
+
339
+
340 // Read previously saved blob, if available
+
341 size_t required_size = 0; // value will default to 0, if not set yet in NVS
+
342 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", NULL, &required_size);
+
343 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
344 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
345 assert(ESP_OK == ret);
+
346 }
+
347
+
348 if (required_size > 0) {
+
349 ESP_LOGI("Kalman filter demo", "Filter state vectors present in the NVS");
+
350 ESP_LOGI("Kalman filter demo", "Loading state vectors into the filter structure");
+
351
+
352 size_t state_vectors_size_addr = state_vectors_size * sizeof(float);
+
353 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", state_vectors, &state_vectors_size_addr);
+
354 if (ret != ESP_OK) {
+
355 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
356 assert(ESP_OK == ret);
+
357 }
+
358
+
359 for (int i = 0; i < state_vectors_size; i++) {
+
360 if (i < state_vectors_size - 13) {
+
361 ekf13->P.data[i] = state_vectors[i];
+
362 } else {
+
363 ekf13->X.data[i - (state_vectors_size - 13)] = state_vectors[i];
+
364 }
+
365 }
+
366
+
367 ESP_LOGI("Kalman filter demo", "State vectors loaded from the NVS");
+
368 nvs_close(nvs_handle_kalman);
+
369
+
370 } else {
+
371 ESP_LOGI("Kalman filter demo", "Filter state vectors not present in the NVS");
+
372 const float kalman_timer_period_us = 100000;
+
373
+
374 // ESP timer for the Kalman filter calibration
+
375 const esp_timer_create_args_t kalman_calibration_timer_config = {
+
376 .callback = kalman_filter_task,
+
377 .arg = image,
+
378 .dispatch_method = ESP_TIMER_TASK,
+
379 .name = "kalman_filter_calibration_timer",
+
380#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0)
+
381 .skip_unhandled_events = true,
+
382#endif
+
383 };
+
384
+
385 esp_timer_handle_t kalman_calibration_timer = NULL;
+
386 ret = esp_timer_create(&kalman_calibration_timer_config, &kalman_calibration_timer);
+
387 assert(ESP_OK == ret);
+
388 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
389
+
390 ESP_LOGI("Kalman filter demo", "Starting Kalman filter calibration loop");
+
391
+
392 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
393 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Kalman filter", 16, 1);
+
394 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"calibration", 16, 1);
+
395 ssd1306_refresh_gram(ssd1306_dev);
+
396
+
397 ret = esp_timer_start_periodic(kalman_calibration_timer, kalman_timer_period_us);
+
398 assert(ESP_OK == ret);
+
399 vTaskDelay(100000 / portTICK_PERIOD_MS);
+
400
+
401 ret = esp_timer_stop(kalman_calibration_timer);
+
402 assert(ESP_OK == ret);
+
403 ret = esp_timer_delete(kalman_calibration_timer);
+
404 assert(ESP_OK == ret);
+
405 ESP_LOGI("Kalman filter demo", "Exiting Kalman filter calibration loop");
+
406 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
407 ssd1306_refresh_gram(ssd1306_dev);
+
408 vTaskDelay(100 / portTICK_PERIOD_MS);
+
409
+
410 dspm::Mat estimated_error(&ekf13->X.data[4], 3, 1);
+
411
+
412 ESP_LOGI("Kalman filter demo", "Estimated gyroscope bias error [deg/sec]: %.6f\t%.6f\t%.6f",
+
413 estimated_error.data[0], estimated_error.data[1], estimated_error.data[2]);
+
414
+
415 for (int i = 0; i < state_vectors_size; i++) {
+
416 if (i < state_vectors_size - 13) {
+
417 state_vectors[i] = ekf13->P.data[i];
+
418 } else {
+
419 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
420 }
+
421 }
+
422
+
423 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
424 assert(ESP_OK == ret);
+
425 ret = nvs_commit(nvs_handle_kalman);
+
426 assert(ESP_OK == ret);
+
427 nvs_close(nvs_handle_kalman);
+
428 ESP_LOGI("Kalman filter demo", "State vectors saved to the NVS");
+
429 }
+
430 // Set the initial state of the X vector
+
431 ekf13->X(0, 0) = 1;
+
432 ekf13->X(0, 1) = 0;
+
433 ekf13->X(0, 2) = 0;
+
434 ekf13->X(0, 3) = 0;
+
435 free(state_vectors);
+ +
437}
+ + +
+

References dspm::Mat::data, ekf13, ESP_OK, image, kalman_filter_calibrated, kalman_filter_task(), ssd1306_dev, and STORAGE_NAMESPACE.

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ kalman_filter_task()

+ +
+
+ + + + + +
+ + + + + + + +
void kalman_filter_task (void * arg)
+
+static
+
+ +

Kalman filter RTOS task (or ESP timer callback).

+

Takes IMU sensors measurements to be processed by the Kalman filter Function is used as: RTOS task - during normal Kalman filter operation ESP Timer callback function - during Kalman filter calibration process

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 253 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
254{
+
255 mpu6050_acce_value_t acce_sample;
+
256 mpu6050_gyro_value_t gyro_sample;
+
257 mag3110_result_t mag_sample;
+
258
+
259 image_3d_matrix_kalman_t *kalman_filter_args = (image_3d_matrix_kalman_t *)arg;
+
260 ekf_imu13states *ekf13 = kalman_filter_args->ekf13;
+
261 dspm::Mat transformed_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
262 dspm::Mat projected_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
263 dspm::Mat matrix_3d((float *)kalman_filter_args->matrix[0], kalman_filter_args->matrix_len, MATRIX_SIZE);
+
264
+
265 // Covariance matrix for Kalman filter, set specifically for this development board IMU sensors
+
266 float R_m[10] = {0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.000001, 0.000001, 0.000001, 0.000001};
+ +
268
+
269 while (1) {
+
270 // dt calculation
+
271 static float prev_time = 0;
+
272 const float current_time = dsp_get_cpu_cycle_count();
+
273 float dt = 0;
+
274
+
275 // Crystal count difference conversion to Dt time constant
+
276 if (current_time > prev_time) {
+
277 dt = current_time - prev_time;
+
278 dt = dt / 240000000.0;
+
279 }
+
280 prev_time = current_time;
+
281
+
282 // Get all the sensors values
+
283 mpu6050_get_acce(mpu6050_dev, &acce_sample);
+
284 mpu6050_get_gyro(mpu6050_dev, &gyro_sample);
+
285 mag3110_get_magnetic_induction(mag3110_dev, &mag_sample);
+
286
+
287 // Make arrays from the sensors values
+
288 float gyro_input_arr[3] = {gyro_sample.gyro_x, gyro_sample.gyro_y, gyro_sample.gyro_z};
+
289 float accel_input_arr[3] = {acce_sample.acce_x, acce_sample.acce_y, acce_sample.acce_z};
+
290 float mag_input_arr[3] = {(float)mag_sample.x, (float)mag_sample.y, (float)mag_sample.z};
+
291
+
292 // Accel and Mag data to Mat class
+
293 dspm::Mat gyro_input_mat(gyro_input_arr, 3, 1);
+
294 dspm::Mat accel_input_mat(accel_input_arr, 3, 1);
+
295 dspm::Mat mag_input_mat(mag_input_arr, 3, 1);
+
296
+
297 // Normalize vectors
+
298 dspm::Mat accel_norm = accel_input_mat / accel_input_mat.norm();
+
299 dspm::Mat magn_norm = mag_input_mat / mag_input_mat.norm();
+
300 gyro_input_mat *= DEG_TO_RAD;
+
301
+
302 ekf13->Process(gyro_input_mat.data, dt);
+
303 ekf13->UpdateRefMeasurementMagn(accel_norm.data, magn_norm.data, R_m);
+
304
+ +
306 // Use the function as RTOS task for the filter calculation
+
307 draw_3d_image(ekf13, transformed_image, projected_image, matrix_3d);
+
308 vTaskDelay(20 / portTICK_PERIOD_MS);
+
309 } else {
+
310 // Use the function as a callback for kalman_filter_calibration_timer
+
311 break;
+
312 }
+
313 }
+
314}
+ + +
float norm(void)
Definition mat.cpp:456
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+
static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
Draw a 3d image.
+ + + +
+

References dspm::Mat::data, DEG_TO_RAD, draw_3d_image(), dsp_get_cpu_cycle_count, ekf13, image_3d_matrix_kalman_s::ekf13, kalman_filter_calibrated, mag3110_dev, image_3d_matrix_kalman_s::matrix, image_3d_matrix_kalman_s::matrix_len, MATRIX_SIZE, mpu6050_dev, dspm::Mat::norm(), perspective_matrix, and update_perspective_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ mpu6050_init()

+ +
+
+ + + + + +
+ + + + + + + +
void mpu6050_init (void )
+
+static
+
+ +

Initialize accelerometer and gyroscope.

+ +

Definition at line 65 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
66{
+
67 esp_err_t ret;
+
68 mpu6050_dev = mpu6050_create((i2c_port_t)BSP_I2C_NUM, MPU6050_I2C_ADDRESS);
+
69 ret = mpu6050_config(mpu6050_dev, ACCE_FS_8G, GYRO_FS_2000DPS);
+
70 assert(ESP_OK == ret);
+
71 ret = mpu6050_wake_up(mpu6050_dev);
+
72 assert(ESP_OK == ret);
+
73}
+
+

References ESP_OK, and mpu6050_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ save_state_vectors_task()

+ +
+
+ + + + + +
+ + + + + + + +
void save_state_vectors_task (void * arg)
+
+static
+
+ +

RTOS task to periodically save the filter state.

+

The Kalman filter state is periodically saved into the NVS, each 5 min. So a recent Kalman filter state could be loaded into the Kalman filter object after a power cycle.

+
Parameters
+ + +
argpointer to RTOS task arguments, Kalman filter object in this case
+
+
+ +

Definition at line 447 of file external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
448{
+
449 esp_err_t ret;
+
450 size_t state_vectors_size = 13 * 14;
+
451 nvs_handle_t nvs_handle_kalman;
+ +
453 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // 5min
+
454
+
455 while (1) {
+
456 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
457
+
458 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
459 if (ret != ESP_OK) {
+
460 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
461 assert(ESP_OK == ret);
+
462 }
+
463
+
464 for (int i = 0; i < state_vectors_size; i++) {
+
465 if (i < state_vectors_size - 13) {
+
466 state_vectors[i] = ekf13->P.data[i];
+
467 } else {
+
468 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
469 }
+
470 }
+
471
+
472 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
473 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
474 ESP_LOGE("NVS error", "(%s) writing data to NVS!\n", esp_err_to_name(ret));
+
475 assert(ESP_OK == ret);
+
476 }
+
477
+
478 ret = nvs_commit(nvs_handle_kalman);
+
479 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
480 ESP_LOGE("NVS error", "(%s) commiting data to NVS!\n", esp_err_to_name(ret));
+
481 assert(ESP_OK == ret);
+
482 }
+
483 nvs_close(nvs_handle_kalman);
+
484 ESP_LOGI("Kalman filter demo", "State vectors saved to NVS");
+
485 free(state_vectors);
+
486 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // Save the State vectors each 5 min
+
487 }
+
488}
+
+

References ekf13, ESP_OK, and STORAGE_NAMESPACE.

+ +
+
+

Variable Documentation

+ +

◆ board_inactive

+ +
+
+ + + + + +
+ + + + +
bool board_inactive = true
+
+static
+
+
+ +

◆ fbm320_dev

+ +
+
+ + + + + +
+ + + + +
fbm320_handle_t fbm320_dev = NULL
+
+static
+
+
+ +

◆ kalman_filter_calibrated

+ +
+
+ + + + + +
+ + + + +
bool kalman_filter_calibrated = false
+
+static
+
+
+ +

◆ mag3110_dev

+ +
+
+ + + + + +
+ + + + +
mag3110_handle_t mag3110_dev = NULL
+
+static
+
+
+ +

◆ mpu6050_dev

+ +
+
+ + + + + +
+ + + + +
mpu6050_handle_t mpu6050_dev = NULL
+
+static
+
+
+ +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ ssd1306_dev

+ +
+
+ + + + + +
+ + + + +
ssd1306_handle_t ssd1306_dev = NULL
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js new file mode 100644 index 0000000..8a934e2 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js @@ -0,0 +1,26 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp = +[ + [ "STORAGE_NAMESPACE", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a56bd385f1d47f204f712650694661d7c", null ], + [ "USE_BAROMETER", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a28a213aef1cec2da92d153aca74d5ff4", null ], + [ "app_fbm320_init", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#abf02d1479863a05aa4759131e408264e", null ], + [ "app_mag3110_init", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a944145b69708f61a94696cd081386d5a", null ], + [ "app_main", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "app_ssd1306_init", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#afac7c47eff81b6719e589256c8799d5e", null ], + [ "display_3d_image", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2955b9e77f5bd23f109feaaed1496af5", null ], + [ "get_initial_pressure", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2ccb3a970d903b791f523902ab06d694", null ], + [ "get_pressure_task", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a7cbec0bc78cfb4326f8b5c19d7f9a5bb", null ], + [ "init_3d_matrix_struct", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#af4bd9d0f6d48907b5fbbdbed6f06f20d", null ], + [ "init_nvs_flash_memory", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#aba35410bb6759629444f03a95bbd7c98", null ], + [ "kalman_filter_calibration", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a1967e917dafd16b5f02410c5b10c1d90", null ], + [ "kalman_filter_task", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#af43b34764385f3f1ad35ce1c00db220f", null ], + [ "mpu6050_init", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a0d450ba4dd28ea2acb105a3ece7db976", null ], + [ "save_state_vectors_task", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2f69aa0d08a5e85a5016ab08dbdc20fb", null ], + [ "board_inactive", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a0cb5fd0b779570c9bc7ca9ae81fb9f52", null ], + [ "fbm320_dev", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a7e278910e0d93695081edda9a0ff4891", null ], + [ "kalman_filter_calibrated", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a6165c3d5123b67289075877c26f707e6", null ], + [ "mag3110_dev", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#ae2eb1aa71f1392378fb30d571f9700e4", null ], + [ "mpu6050_dev", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a275b510afcb5dff24fa20de057c25293", null ], + [ "perspective_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "ssd1306_dev", "external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a001a4d44724bfb0668ac6de0d351ae75", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 new file mode 100644 index 0000000..ca910da --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +163cd7e45918432a7237f940c2f1e423 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg new file mode 100644 index 0000000..83dc36e --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg @@ -0,0 +1,1915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_demo.cpp + + +Node1 + + +kalman_filter_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +malloc.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mpu6050.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +mag3110.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +fbm320.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +bsp/esp-bsp.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +esp_timer.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +nvs.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +nvs_flash.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +graphics_support.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +cube_matrix.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node1->Node17 + + + + + + + + +Node84 + + +ekf_imu13states.h + + + + + +Node1->Node84 + + + + + + + + +Node89 + + +esp_logo.h + + + + + +Node1->Node89 + + + + + + + + +Node90 + + +image_to_3d_matrix.h + + + + + +Node1->Node90 + + + + + + + + +Node10 + + +stdlib.h + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +dsp_common.h + + + + + +Node17->Node18 + + + + + + + + +Node25 + + +dsp_types.h + + + + + +Node17->Node25 + + + + + + + + +Node27 + + +dsps_dotprod.h + + + + + +Node17->Node27 + + + + + + + + +Node30 + + +dsps_math.h + + + + + +Node17->Node30 + + + + + + + + +Node42 + + +dsps_fir.h + + + + + +Node17->Node42 + + + + + + + + +Node44 + + +dsps_resampler.h + + + + + +Node17->Node44 + + + + + + + + +Node45 + + +dsps_biquad.h + + + + + +Node17->Node45 + + + + + + + + +Node47 + + +dsps_biquad_gen.h + + + + + +Node17->Node47 + + + + + + + + +Node48 + + +dsps_wind.h + + + + + +Node17->Node48 + + + + + + + + +Node55 + + +dsps_conv.h + + + + + +Node17->Node55 + + + + + + + + +Node57 + + +dsps_corr.h + + + + + +Node17->Node57 + + + + + + + + +Node58 + + +dsps_d_gen.h + + + + + +Node17->Node58 + + + + + + + + +Node59 + + +dsps_h_gen.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dsps_tone_gen.h + + + + + +Node17->Node60 + + + + + + + + +Node61 + + +dsps_snr.h + + + + + +Node17->Node61 + + + + + + + + +Node62 + + +dsps_sfdr.h + + + + + +Node17->Node62 + + + + + + + + +Node63 + + +dsps_fft2r.h + + + + + +Node17->Node63 + + + + + + + + +Node66 + + +dsps_fft4r.h + + + + + +Node17->Node66 + + + + + + + + +Node68 + + +dsps_dct.h + + + + + +Node17->Node68 + + + + + + + + +Node69 + + +dspm_matrix.h + + + + + +Node17->Node69 + + + + + + + + +Node80 + + +dsps_view.h + + + + + +Node17->Node80 + + + + + + + + +Node81 + + +dspi_dotprod.h + + + + + +Node17->Node81 + + + + + + + + +Node83 + + +dspi_conv.h + + + + + +Node17->Node83 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +stdint.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +stdbool.h + + + + + +Node18->Node20 + + + + + + + + +Node21 + + +dsp_err.h + + + + + +Node18->Node21 + + + + + + + + +Node24 + + +x86intrin.h + + + + + +Node18->Node24 + + + + + + + + +Node21->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26 + + +inttypes.h + + + + + +Node25->Node26 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +dsps_dotprod_platform.h + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +sdkconfig.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_add.h + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +dsps_sub.h + + + + + +Node30->Node33 + + + + + + + + +Node35 + + +dsps_mul.h + + + + + +Node30->Node35 + + + + + + + + +Node37 + + +dsps_addc.h + + + + + +Node30->Node37 + + + + + + + + +Node39 + + +dsps_mulc.h + + + + + +Node30->Node39 + + + + + + + + +Node41 + + +dsps_sqrt.h + + + + + +Node30->Node41 + + + + + + + + +Node31->Node21 + + + + + + + + +Node33->Node21 + + + + + + + + +Node35->Node21 + + + + + + + + +Node37->Node21 + + + + + + + + +Node39->Node21 + + + + + + + + +Node41->Node21 + + + + + + + + +Node42->Node18 + + + + + + + + +Node42->Node21 + + + + + + + + +Node43 + + +dsps_fir_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node29 + + + + + + + + +Node44->Node21 + + + + + + + + +Node44->Node42 + + + + + + + + +Node45->Node21 + + + + + + + + +Node46 + + +dsps_biquad_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node29 + + + + + + + + +Node47->Node21 + + + + + + + + +Node49 + + +dsps_wind_hann.h + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman.h + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +dsps_wind_blackman +_harris.h + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node48->Node52 + + + + + + + + +Node53 + + +dsps_wind_nuttall.h + + + + + +Node48->Node53 + + + + + + + + +Node54 + + +dsps_wind_flat_top.h + + + + + +Node48->Node54 + + + + + + + + +Node55->Node21 + + + + + + + + +Node56 + + +dsps_conv_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node29 + + + + + + + + +Node57->Node21 + + + + + + + + +Node57->Node56 + + + + + + + + +Node58->Node21 + + + + + + + + +Node59->Node21 + + + + + + + + +Node60->Node21 + + + + + + + + +Node61->Node21 + + + + + + + + +Node62->Node21 + + + + + + + + +Node63->Node21 + + + + + + + + +Node63->Node29 + + + + + + + + +Node64 + + +dsps_fft_tables.h + + + + + +Node63->Node64 + + + + + + + + +Node65 + + +dsps_fft2r_platform.h + + + + + +Node63->Node65 + + + + + + + + +Node65->Node29 + + + + + + + + +Node66->Node21 + + + + + + + + +Node66->Node29 + + + + + + + + +Node66->Node64 + + + + + + + + +Node67 + + +dsps_fft4r_platform.h + + + + + +Node66->Node67 + + + + + + + + +Node67->Node29 + + + + + + + + +Node68->Node21 + + + + + + + + +Node68->Node29 + + + + + + + + +Node70 + + +dspm_add.h + + + + + +Node69->Node70 + + + + + + + + +Node72 + + +dspm_addc.h + + + + + +Node69->Node72 + + + + + + + + +Node74 + + +dspm_mult.h + + + + + +Node69->Node74 + + + + + + + + +Node76 + + +dspm_mulc.h + + + + + +Node69->Node76 + + + + + + + + +Node78 + + +dspm_sub.h + + + + + +Node69->Node78 + + + + + + + + +Node70->Node21 + + + + + + + + +Node72->Node21 + + + + + + + + +Node74->Node21 + + + + + + + + +Node76->Node21 + + + + + + + + +Node78->Node21 + + + + + + + + +Node80->Node21 + + + + + + + + +Node81->Node9 + + + + + + + + +Node81->Node21 + + + + + + + + +Node81->Node25 + + + + + + + + +Node82 + + +dspi_dotprod_platform.h + + + + + +Node81->Node82 + + + + + + + + +Node82->Node29 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node25 + + + + + + + + +Node83->Node56 + + + + + + + + +Node85 + + +ekf.h + + + + + +Node84->Node85 + + + + + + + + +Node85->Node19 + + + + + + + + +Node85->Node20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..8c6973a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg @@ -0,0 +1,1832 @@ + + + + + + +kalman_filter_demo.cpp + + +Node1 + + +kalman_filter_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +malloc.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mpu6050.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +mag3110.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +fbm320.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +bsp/esp-bsp.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +esp_timer.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +nvs.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +nvs_flash.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +graphics_support.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +cube_matrix.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node1->Node17 + + + + + + + + +Node84 + + +ekf_imu13states.h + + + + + +Node1->Node84 + + + + + + + + +Node89 + + +esp_logo.h + + + + + +Node1->Node89 + + + + + + + + +Node90 + + +image_to_3d_matrix.h + + + + + +Node1->Node90 + + + + + + + + +Node10 + + +stdlib.h + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +dsp_common.h + + + + + +Node17->Node18 + + + + + + + + +Node25 + + +dsp_types.h + + + + + +Node17->Node25 + + + + + + + + +Node27 + + +dsps_dotprod.h + + + + + +Node17->Node27 + + + + + + + + +Node30 + + +dsps_math.h + + + + + +Node17->Node30 + + + + + + + + +Node42 + + +dsps_fir.h + + + + + +Node17->Node42 + + + + + + + + +Node44 + + +dsps_resampler.h + + + + + +Node17->Node44 + + + + + + + + +Node45 + + +dsps_biquad.h + + + + + +Node17->Node45 + + + + + + + + +Node47 + + +dsps_biquad_gen.h + + + + + +Node17->Node47 + + + + + + + + +Node48 + + +dsps_wind.h + + + + + +Node17->Node48 + + + + + + + + +Node55 + + +dsps_conv.h + + + + + +Node17->Node55 + + + + + + + + +Node57 + + +dsps_corr.h + + + + + +Node17->Node57 + + + + + + + + +Node58 + + +dsps_d_gen.h + + + + + +Node17->Node58 + + + + + + + + +Node59 + + +dsps_h_gen.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dsps_tone_gen.h + + + + + +Node17->Node60 + + + + + + + + +Node61 + + +dsps_snr.h + + + + + +Node17->Node61 + + + + + + + + +Node62 + + +dsps_sfdr.h + + + + + +Node17->Node62 + + + + + + + + +Node63 + + +dsps_fft2r.h + + + + + +Node17->Node63 + + + + + + + + +Node66 + + +dsps_fft4r.h + + + + + +Node17->Node66 + + + + + + + + +Node68 + + +dsps_dct.h + + + + + +Node17->Node68 + + + + + + + + +Node69 + + +dspm_matrix.h + + + + + +Node17->Node69 + + + + + + + + +Node80 + + +dsps_view.h + + + + + +Node17->Node80 + + + + + + + + +Node81 + + +dspi_dotprod.h + + + + + +Node17->Node81 + + + + + + + + +Node83 + + +dspi_conv.h + + + + + +Node17->Node83 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +stdint.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +stdbool.h + + + + + +Node18->Node20 + + + + + + + + +Node21 + + +dsp_err.h + + + + + +Node18->Node21 + + + + + + + + +Node24 + + +x86intrin.h + + + + + +Node18->Node24 + + + + + + + + +Node21->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26 + + +inttypes.h + + + + + +Node25->Node26 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +dsps_dotprod_platform.h + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +sdkconfig.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_add.h + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +dsps_sub.h + + + + + +Node30->Node33 + + + + + + + + +Node35 + + +dsps_mul.h + + + + + +Node30->Node35 + + + + + + + + +Node37 + + +dsps_addc.h + + + + + +Node30->Node37 + + + + + + + + +Node39 + + +dsps_mulc.h + + + + + +Node30->Node39 + + + + + + + + +Node41 + + +dsps_sqrt.h + + + + + +Node30->Node41 + + + + + + + + +Node31->Node21 + + + + + + + + +Node33->Node21 + + + + + + + + +Node35->Node21 + + + + + + + + +Node37->Node21 + + + + + + + + +Node39->Node21 + + + + + + + + +Node41->Node21 + + + + + + + + +Node42->Node18 + + + + + + + + +Node42->Node21 + + + + + + + + +Node43 + + +dsps_fir_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node29 + + + + + + + + +Node44->Node21 + + + + + + + + +Node44->Node42 + + + + + + + + +Node45->Node21 + + + + + + + + +Node46 + + +dsps_biquad_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node29 + + + + + + + + +Node47->Node21 + + + + + + + + +Node49 + + +dsps_wind_hann.h + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman.h + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +dsps_wind_blackman +_harris.h + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node48->Node52 + + + + + + + + +Node53 + + +dsps_wind_nuttall.h + + + + + +Node48->Node53 + + + + + + + + +Node54 + + +dsps_wind_flat_top.h + + + + + +Node48->Node54 + + + + + + + + +Node55->Node21 + + + + + + + + +Node56 + + +dsps_conv_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node29 + + + + + + + + +Node57->Node21 + + + + + + + + +Node57->Node56 + + + + + + + + +Node58->Node21 + + + + + + + + +Node59->Node21 + + + + + + + + +Node60->Node21 + + + + + + + + +Node61->Node21 + + + + + + + + +Node62->Node21 + + + + + + + + +Node63->Node21 + + + + + + + + +Node63->Node29 + + + + + + + + +Node64 + + +dsps_fft_tables.h + + + + + +Node63->Node64 + + + + + + + + +Node65 + + +dsps_fft2r_platform.h + + + + + +Node63->Node65 + + + + + + + + +Node65->Node29 + + + + + + + + +Node66->Node21 + + + + + + + + +Node66->Node29 + + + + + + + + +Node66->Node64 + + + + + + + + +Node67 + + +dsps_fft4r_platform.h + + + + + +Node66->Node67 + + + + + + + + +Node67->Node29 + + + + + + + + +Node68->Node21 + + + + + + + + +Node68->Node29 + + + + + + + + +Node70 + + +dspm_add.h + + + + + +Node69->Node70 + + + + + + + + +Node72 + + +dspm_addc.h + + + + + +Node69->Node72 + + + + + + + + +Node74 + + +dspm_mult.h + + + + + +Node69->Node74 + + + + + + + + +Node76 + + +dspm_mulc.h + + + + + +Node69->Node76 + + + + + + + + +Node78 + + +dspm_sub.h + + + + + +Node69->Node78 + + + + + + + + +Node70->Node21 + + + + + + + + +Node72->Node21 + + + + + + + + +Node74->Node21 + + + + + + + + +Node76->Node21 + + + + + + + + +Node78->Node21 + + + + + + + + +Node80->Node21 + + + + + + + + +Node81->Node9 + + + + + + + + +Node81->Node21 + + + + + + + + +Node81->Node25 + + + + + + + + +Node82 + + +dspi_dotprod_platform.h + + + + + +Node81->Node82 + + + + + + + + +Node82->Node29 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node25 + + + + + + + + +Node83->Node56 + + + + + + + + +Node85 + + +ekf.h + + + + + +Node84->Node85 + + + + + + + + +Node85->Node19 + + + + + + + + +Node85->Node20 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 new file mode 100644 index 0000000..77c1277 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 @@ -0,0 +1 @@ +4ed08ecda47c9b099790e0de8fa64aa8 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg new file mode 100644 index 0000000..549e3ef --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +mpu6050_init + + +Node1 + + +mpu6050_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg new file mode 100644 index 0000000..3abfb65 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +mpu6050_init + + +Node1 + + +mpu6050_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 new file mode 100644 index 0000000..b372913 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 @@ -0,0 +1 @@ +e40c0de31645dbe2629932c4d9c79047 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg new file mode 100644 index 0000000..8434e42 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +update_perspective +_matrix + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +dspm::Mat::norm + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +display_3d_image + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ekf::eul2rotm + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +ekf::quat2rotm + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +ekf::rotm2eul + + + + + +Node3->Node10 + + + + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node3->Node12 + + + + + + + + +Node12->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg new file mode 100644 index 0000000..a354002 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg @@ -0,0 +1,220 @@ + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +update_perspective +_matrix + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +dspm::Mat::norm + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +display_3d_image + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ekf::eul2rotm + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +ekf::quat2rotm + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +ekf::rotm2eul + + + + + +Node3->Node10 + + + + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node3->Node12 + + + + + + + + +Node12->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 new file mode 100644 index 0000000..9e26c7b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 @@ -0,0 +1 @@ +42df08256eff9e94c3d79b462f85bc01 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg new file mode 100644 index 0000000..95d0d0b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg new file mode 100644 index 0000000..a39c962 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 new file mode 100644 index 0000000..0b0796d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 @@ -0,0 +1 @@ +d7a507ff20cc0f50d2ff4ea6d08a2265 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg new file mode 100644 index 0000000..30408c8 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::eul2rotm + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::eye + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::rotm2eul + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +update_perspective +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_rotation_matrix + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dspm::Mat::Mat + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dspm::Mat::allocate + + + + + +Node5->Node6 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm::Mat::t + + + + + +Node10->Node11 + + + + + + + + +Node11->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg new file mode 100644 index 0000000..be2ec8b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg @@ -0,0 +1,220 @@ + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::eul2rotm + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::eye + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::rotm2eul + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +update_perspective +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_rotation_matrix + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dspm::Mat::Mat + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dspm::Mat::allocate + + + + + +Node5->Node6 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm::Mat::t + + + + + +Node10->Node11 + + + + + + + + +Node11->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 new file mode 100644 index 0000000..2b68c82 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 @@ -0,0 +1 @@ +c83e41f84b499238daeea32d00f987ad \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg new file mode 100644 index 0000000..969731e --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg new file mode 100644 index 0000000..7814699 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 new file mode 100644 index 0000000..ddd3d05 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 @@ -0,0 +1 @@ +cc1923a5e429141bd0f4d1c2be434980 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg new file mode 100644 index 0000000..96b7225 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +get_initial_pressure + + +Node1 + + +get_initial_pressure + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg new file mode 100644 index 0000000..2c0fed4 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +get_initial_pressure + + +Node1 + + +get_initial_pressure + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..7aa7dce --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +189d5e1e7a3b53d018e587befab83e29 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..8e0d51b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..8fac169 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 new file mode 100644 index 0000000..19f9685 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 @@ -0,0 +1 @@ +ce05f3ba266be5216aacba74be538c5a \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg new file mode 100644 index 0000000..fc00805 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +update_perspective +_matrix + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg new file mode 100644 index 0000000..e9c7495 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +update_perspective +_matrix + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 new file mode 100644 index 0000000..014200a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 @@ -0,0 +1 @@ +dac8823dcb0781df2c469d7bf69bebf6 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg new file mode 100644 index 0000000..f4ea705 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_mag3110_init + + +Node1 + + +app_mag3110_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg new file mode 100644 index 0000000..523e3b8 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_mag3110_init + + +Node1 + + +app_mag3110_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 new file mode 100644 index 0000000..f96e911 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 @@ -0,0 +1 @@ +e9ee22e5e7f5d71f3d5b9bf78dec0087 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg new file mode 100644 index 0000000..06eb166 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_nvs_flash_memory + + +Node1 + + +init_nvs_flash_memory + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg new file mode 100644 index 0000000..11aa553 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_nvs_flash_memory + + +Node1 + + +init_nvs_flash_memory + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..df253ec --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +99d3299e9c7dadb0cd2f094231eb223b \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..647c01c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,420 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_fbm320_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_mag3110_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +app_ssd1306_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +get_initial_pressure + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +get_pressure_task + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +init_3d_matrix_struct + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +init_nvs_flash_memory + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +init_perspective_matrix + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_calibration + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node25 + + +mpu6050_init + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +save_state_vectors_task + + + + + +Node1->Node26 + + + + + + + + +Node8 + + +update_perspective +_matrix + + + + + +Node7->Node8 + + + + + + + + +Node12->Node13 + + + + + + + + +Node13->Node8 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node13->Node14 + + + + + + + + +Node24 + + +dspm::Mat::norm + + + + + +Node13->Node24 + + + + + + + + +Node14->Node8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..5da9720 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,337 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_fbm320_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_mag3110_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +app_ssd1306_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +get_initial_pressure + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +get_pressure_task + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +init_3d_matrix_struct + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +init_nvs_flash_memory + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +init_perspective_matrix + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_calibration + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node25 + + +mpu6050_init + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +save_state_vectors_task + + + + + +Node1->Node26 + + + + + + + + +Node8 + + +update_perspective +_matrix + + + + + +Node7->Node8 + + + + + + + + +Node12->Node13 + + + + + + + + +Node13->Node8 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node13->Node14 + + + + + + + + +Node24 + + +dspm::Mat::norm + + + + + +Node13->Node24 + + + + + + + + +Node14->Node8 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 new file mode 100644 index 0000000..ce97421 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 @@ -0,0 +1 @@ +1df193d60ccc2b1d5090441e98bc60e8 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg new file mode 100644 index 0000000..885a9be --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_fbm320_init + + +Node1 + + +app_fbm320_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg new file mode 100644 index 0000000..21d5caa --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_fbm320_init + + +Node1 + + +app_fbm320_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 new file mode 100644 index 0000000..27ea935 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 @@ -0,0 +1 @@ +2a1961b70a7ee9f819d2a0507e2bab31 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg new file mode 100644 index 0000000..dff815d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +update_perspective +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +dspm::Mat::norm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +display_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf::eul2rotm + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node2->Node11 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +dspm::Mat::t + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg new file mode 100644 index 0000000..0da17f5 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg @@ -0,0 +1,247 @@ + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +update_perspective +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +dspm::Mat::norm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +display_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf::eul2rotm + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node2->Node11 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +dspm::Mat::t + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 new file mode 100644 index 0000000..2b504ba --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 @@ -0,0 +1 @@ +e6ed97be08f010d771a3a900c3bca0e6 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg new file mode 100644 index 0000000..58ae354 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg new file mode 100644 index 0000000..c0c039b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 new file mode 100644 index 0000000..d2918b8 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 @@ -0,0 +1 @@ +11ac7200b20919a78dbc8989dd2c1b1c \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg new file mode 100644 index 0000000..9a5ead0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg new file mode 100644 index 0000000..e2397a6 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html new file mode 100644 index 0000000..2b4f233 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html @@ -0,0 +1,723 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include <malloc.h>
+
9#include "mpu6050.h"
+
10#include "ssd1306.h"
+
11#include "mag3110.h"
+
12#include "fbm320.h"
+
13#include "bsp/esp-bsp.h"
+
14#include "esp_log.h"
+
15#include "esp_timer.h"
+
16#include "esp_idf_version.h" // for backward compatibility of esp-timer
+
17#include "nvs.h"
+
18#include "nvs_flash.h"
+
19#include "graphics_support.h"
+
20#include "cube_matrix.h"
+
21#include "esp_dsp.h"
+
22#include "ekf_imu13states.h"
+
23#include "esp_logo.h"
+
24#include "image_to_3d_matrix.h"
+
25
+
26#define STORAGE_NAMESPACE "kalman_filter"
+
27#define USE_BAROMETER 0
+
28
+
29static ssd1306_handle_t ssd1306_dev = NULL;
+
30static mpu6050_handle_t mpu6050_dev = NULL;
+
31static mag3110_handle_t mag3110_dev = NULL;
+
32static fbm320_handle_t fbm320_dev = NULL;
+
33
+
34static bool kalman_filter_calibrated = false;
+
35static bool board_inactive = true;
+
36
+ +
38
+
39extern "C" void app_main();
+
40
+
+
44static void app_mag3110_init(void)
+
45{
+
46 esp_err_t ret;
+
47 mag3110_dev = mag3110_create((i2c_port_t)BSP_I2C_NUM);
+
48 mag3110_start_raw(mag3110_dev, MAG3110_DR_OS_80_16);
+
49 assert(ESP_OK == ret);
+
50}
+
+
51
+
+
55static void app_ssd1306_init(void)
+
56{
+
57 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
58 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
59 ssd1306_refresh_gram(ssd1306_dev);
+
60}
+
+
61
+
+
65static void mpu6050_init(void)
+
66{
+
67 esp_err_t ret;
+
68 mpu6050_dev = mpu6050_create((i2c_port_t)BSP_I2C_NUM, MPU6050_I2C_ADDRESS);
+
69 ret = mpu6050_config(mpu6050_dev, ACCE_FS_8G, GYRO_FS_2000DPS);
+
70 assert(ESP_OK == ret);
+
71 ret = mpu6050_wake_up(mpu6050_dev);
+
72 assert(ESP_OK == ret);
+
73}
+
+
74
+
+
78static void app_fbm320_init(void)
+
79{
+
80 esp_err_t ret;
+
81 fbm320_dev = fbm320_create((i2c_port_t)BSP_I2C_NUM, FBM320_I2C_ADDRESS_1);
+
82 ret = fbm320_init(fbm320_dev);
+
83 assert(ESP_OK == ret);
+
84}
+
+
85
+
+
89static void init_nvs_flash_memory(void)
+
90{
+
91 esp_err_t err = nvs_flash_init();
+
92 if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+
93 // NVS partition was truncated and needs to be erased
+
94 // Retry nvs_flash_init
+
95 ESP_ERROR_CHECK(nvs_flash_erase());
+
96 err = nvs_flash_init();
+
97 }
+
98 ESP_ERROR_CHECK( err );
+
99}
+
+
100
+
+ +
111{
+
112#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
114 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
115 ESP_LOGI("Kalman filter demo", "Selected 3D image - ESP Logo");
+
116#elif CONFIG_3D_OBJECT_CUSTOM
+ +
118 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
119 ESP_LOGI("Kalman filter demo", "Selected 3D image - User's custom image");
+
120#elif CONFIG_3D_OBJECT_CUBE
+
121 image->matrix = cube_vectors_3d;
+
122 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
123 ESP_LOGI("Kalman filter demo", "Selected 3D image - 3D cube");
+
124#endif
+
125 image->ekf13 = ekf13;
+
126}
+
+
127
+
+
136static void display_3d_image(dspm::Mat projected_image)
+
137{
+
138 ssd1306_clear_screen(ssd1306_dev, 0);
+
139
+
140 if (OBJECT_3D_CUBE) {
+
141 // For the 3D cube, only the 6 points of the cube are transformed
+
142 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
143 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
144 ssd1306_draw_line(ssd1306_dev,
+
145 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
146 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
147 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
148 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
149 }
+
150 } else {
+
151 // Every other 3D image is drawn here pixel by pixel
+
152 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
153 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
154 }
+
155 }
+
156 ssd1306_refresh_gram(ssd1306_dev);
+
157}
+
+
158
+
+
170static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
+
171{
+
172 static const float movement_treshold = 0.0001; // threshold to decide between Idle and Active state of the board
+
173 static float inactive_rotation = 0; // rotation angle (in degrees) for Idle state
+
174 static unsigned int inactivity_count = 0;
+
175 static const unsigned int inactivity_count_treshold = 75;
+
176 static unsigned int inactivity_check = 0; // activity of the board is being checked once in N calls of the function
+
177 static float prev_state_arr[3] = {0, 0, 0}; // holds the previous state of the Euler angles, to compare the diff
+
178
+
179 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
180 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data); // matrix(3x1) that holds x, y, z rotation data
+
181 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
182
+
183 // check if the board is active or not every N calls of the function
+
184 if (!(inactivity_check++ % 10)) {
+
185 dspm::Mat prev_state_mat(prev_state_arr, 3, 1);
+
186 dspm::Mat diff = eul_angles - prev_state_mat;
+
187 prev_state_mat = eul_angles;
+
188
+
189 float max_diff = fabs(diff(0, 0) * diff(1, 0) * diff(2, 0));
+
190
+
191 // wake-up the board if the current board movement crosses the threshold
+
192 if (board_inactive && (max_diff > movement_treshold)) {
+
193 board_inactive = false;
+
194 ESP_LOGI("Board status", "board put to active mode");
+
195 }
+
196
+
197 // if the board is awake, and the current movement of the board is lower than the threshold - the board is
+
198 // being moved with - run the inactivity_counter
+
199 // after some time (if the movement of the board has been lower than the threshold) put the board to idle mode
+
200 else if (!board_inactive && (max_diff < movement_treshold)) {
+
201 if (inactivity_count > inactivity_count_treshold) {
+
202 board_inactive = true;
+
203 inactivity_count = 0;
+
204 ESP_LOGI("Board status", "board put to idle mode");
+ +
206 }
+
207 inactivity_count++;
+
208 }
+
209
+
210 // if the board is awake and the current movement of the board is higher than the threshold clear the inactivity_counter
+
211 else if (!board_inactive && (max_diff >= movement_treshold)) {
+
212 inactivity_count = 0;
+
213 }
+
214 }
+
215
+
216 if (board_inactive) {
+
217 // board idle state - display a rotating cube
+
218 update_rotation_matrix(T, inactive_rotation += 3.0, 10.0, 10.0);
+
219 } else {
+
220 // board active state - 3D object follows movements of the board
+
221 eul_angles(2, 0) = -eul_angles(2, 0);
+
222 dspm::Mat R = ekf::eul2rotm(eul_angles.data);
+
223
+
224 // Enlarge rotation matrix from 3x3 to 4x4
+
225 // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
226 for (int row = 0; row < R.rows; row++) {
+
227 for (int col = 0; col < R.cols; col++) {
+
228 T(row, col) = R(row, col);
+
229 }
+
230 }
+
231 }
+
232
+
233 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
234 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
235
+
236 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
237 transformed_image = matrix_3d * T;
+
238 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
239 projected_image = transformed_image * perspective_matrix;
+
240 display_3d_image(projected_image);
+
241}
+
+
242
+
+
253static void kalman_filter_task(void *arg)
+
254{
+
255 mpu6050_acce_value_t acce_sample;
+
256 mpu6050_gyro_value_t gyro_sample;
+
257 mag3110_result_t mag_sample;
+
258
+
259 image_3d_matrix_kalman_t *kalman_filter_args = (image_3d_matrix_kalman_t *)arg;
+
260 ekf_imu13states *ekf13 = kalman_filter_args->ekf13;
+
261 dspm::Mat transformed_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
262 dspm::Mat projected_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
263 dspm::Mat matrix_3d((float *)kalman_filter_args->matrix[0], kalman_filter_args->matrix_len, MATRIX_SIZE);
+
264
+
265 // Covariance matrix for Kalman filter, set specifically for this development board IMU sensors
+
266 float R_m[10] = {0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.000001, 0.000001, 0.000001, 0.000001};
+ +
268
+
269 while (1) {
+
270 // dt calculation
+
271 static float prev_time = 0;
+
272 const float current_time = dsp_get_cpu_cycle_count();
+
273 float dt = 0;
+
274
+
275 // Crystal count difference conversion to Dt time constant
+
276 if (current_time > prev_time) {
+
277 dt = current_time - prev_time;
+
278 dt = dt / 240000000.0;
+
279 }
+
280 prev_time = current_time;
+
281
+
282 // Get all the sensors values
+
283 mpu6050_get_acce(mpu6050_dev, &acce_sample);
+
284 mpu6050_get_gyro(mpu6050_dev, &gyro_sample);
+
285 mag3110_get_magnetic_induction(mag3110_dev, &mag_sample);
+
286
+
287 // Make arrays from the sensors values
+
288 float gyro_input_arr[3] = {gyro_sample.gyro_x, gyro_sample.gyro_y, gyro_sample.gyro_z};
+
289 float accel_input_arr[3] = {acce_sample.acce_x, acce_sample.acce_y, acce_sample.acce_z};
+
290 float mag_input_arr[3] = {(float)mag_sample.x, (float)mag_sample.y, (float)mag_sample.z};
+
291
+
292 // Accel and Mag data to Mat class
+
293 dspm::Mat gyro_input_mat(gyro_input_arr, 3, 1);
+
294 dspm::Mat accel_input_mat(accel_input_arr, 3, 1);
+
295 dspm::Mat mag_input_mat(mag_input_arr, 3, 1);
+
296
+
297 // Normalize vectors
+
298 dspm::Mat accel_norm = accel_input_mat / accel_input_mat.norm();
+
299 dspm::Mat magn_norm = mag_input_mat / mag_input_mat.norm();
+
300 gyro_input_mat *= DEG_TO_RAD;
+
301
+
302 ekf13->Process(gyro_input_mat.data, dt);
+
303 ekf13->UpdateRefMeasurementMagn(accel_norm.data, magn_norm.data, R_m);
+
304
+ +
306 // Use the function as RTOS task for the filter calculation
+
307 draw_3d_image(ekf13, transformed_image, projected_image, matrix_3d);
+
308 vTaskDelay(20 / portTICK_PERIOD_MS);
+
309 } else {
+
310 // Use the function as a callback for kalman_filter_calibration_timer
+
311 break;
+
312 }
+
313 }
+
314}
+
+
315
+
+ +
327{
+
328 ekf_imu13states *ekf13 = image->ekf13;
+
329 esp_err_t ret;
+
330 nvs_handle_t nvs_handle_kalman;
+
331 size_t state_vectors_size = 13 * 14;
+
332 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
333
+
334 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
335 if (ret != ESP_OK) {
+
336 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
337 assert(ESP_OK == ret);
+
338 }
+
339
+
340 // Read previously saved blob, if available
+
341 size_t required_size = 0; // value will default to 0, if not set yet in NVS
+
342 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", NULL, &required_size);
+
343 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
344 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
345 assert(ESP_OK == ret);
+
346 }
+
347
+
348 if (required_size > 0) {
+
349 ESP_LOGI("Kalman filter demo", "Filter state vectors present in the NVS");
+
350 ESP_LOGI("Kalman filter demo", "Loading state vectors into the filter structure");
+
351
+
352 size_t state_vectors_size_addr = state_vectors_size * sizeof(float);
+
353 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", state_vectors, &state_vectors_size_addr);
+
354 if (ret != ESP_OK) {
+
355 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
356 assert(ESP_OK == ret);
+
357 }
+
358
+
359 for (int i = 0; i < state_vectors_size; i++) {
+
360 if (i < state_vectors_size - 13) {
+
361 ekf13->P.data[i] = state_vectors[i];
+
362 } else {
+
363 ekf13->X.data[i - (state_vectors_size - 13)] = state_vectors[i];
+
364 }
+
365 }
+
366
+
367 ESP_LOGI("Kalman filter demo", "State vectors loaded from the NVS");
+
368 nvs_close(nvs_handle_kalman);
+
369
+
370 } else {
+
371 ESP_LOGI("Kalman filter demo", "Filter state vectors not present in the NVS");
+
372 const float kalman_timer_period_us = 100000;
+
373
+
374 // ESP timer for the Kalman filter calibration
+
375 const esp_timer_create_args_t kalman_calibration_timer_config = {
+
376 .callback = kalman_filter_task,
+
377 .arg = image,
+
378 .dispatch_method = ESP_TIMER_TASK,
+
379 .name = "kalman_filter_calibration_timer",
+
380#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0)
+
381 .skip_unhandled_events = true,
+
382#endif
+
383 };
+
384
+
385 esp_timer_handle_t kalman_calibration_timer = NULL;
+
386 ret = esp_timer_create(&kalman_calibration_timer_config, &kalman_calibration_timer);
+
387 assert(ESP_OK == ret);
+
388 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
389
+
390 ESP_LOGI("Kalman filter demo", "Starting Kalman filter calibration loop");
+
391
+
392 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
393 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Kalman filter", 16, 1);
+
394 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"calibration", 16, 1);
+
395 ssd1306_refresh_gram(ssd1306_dev);
+
396
+
397 ret = esp_timer_start_periodic(kalman_calibration_timer, kalman_timer_period_us);
+
398 assert(ESP_OK == ret);
+
399 vTaskDelay(100000 / portTICK_PERIOD_MS);
+
400
+
401 ret = esp_timer_stop(kalman_calibration_timer);
+
402 assert(ESP_OK == ret);
+
403 ret = esp_timer_delete(kalman_calibration_timer);
+
404 assert(ESP_OK == ret);
+
405 ESP_LOGI("Kalman filter demo", "Exiting Kalman filter calibration loop");
+
406 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
407 ssd1306_refresh_gram(ssd1306_dev);
+
408 vTaskDelay(100 / portTICK_PERIOD_MS);
+
409
+
410 dspm::Mat estimated_error(&ekf13->X.data[4], 3, 1);
+
411
+
412 ESP_LOGI("Kalman filter demo", "Estimated gyroscope bias error [deg/sec]: %.6f\t%.6f\t%.6f",
+
413 estimated_error.data[0], estimated_error.data[1], estimated_error.data[2]);
+
414
+
415 for (int i = 0; i < state_vectors_size; i++) {
+
416 if (i < state_vectors_size - 13) {
+
417 state_vectors[i] = ekf13->P.data[i];
+
418 } else {
+
419 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
420 }
+
421 }
+
422
+
423 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
424 assert(ESP_OK == ret);
+
425 ret = nvs_commit(nvs_handle_kalman);
+
426 assert(ESP_OK == ret);
+
427 nvs_close(nvs_handle_kalman);
+
428 ESP_LOGI("Kalman filter demo", "State vectors saved to the NVS");
+
429 }
+
430 // Set the initial state of the X vector
+
431 ekf13->X(0, 0) = 1;
+
432 ekf13->X(0, 1) = 0;
+
433 ekf13->X(0, 2) = 0;
+
434 ekf13->X(0, 3) = 0;
+
435 free(state_vectors);
+ +
437}
+
+
438
+
+
447static void save_state_vectors_task(void *arg)
+
448{
+
449 esp_err_t ret;
+
450 size_t state_vectors_size = 13 * 14;
+
451 nvs_handle_t nvs_handle_kalman;
+ +
453 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // 5min
+
454
+
455 while (1) {
+
456 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
457
+
458 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
459 if (ret != ESP_OK) {
+
460 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
461 assert(ESP_OK == ret);
+
462 }
+
463
+
464 for (int i = 0; i < state_vectors_size; i++) {
+
465 if (i < state_vectors_size - 13) {
+
466 state_vectors[i] = ekf13->P.data[i];
+
467 } else {
+
468 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
469 }
+
470 }
+
471
+
472 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
473 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
474 ESP_LOGE("NVS error", "(%s) writing data to NVS!\n", esp_err_to_name(ret));
+
475 assert(ESP_OK == ret);
+
476 }
+
477
+
478 ret = nvs_commit(nvs_handle_kalman);
+
479 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
480 ESP_LOGE("NVS error", "(%s) commiting data to NVS!\n", esp_err_to_name(ret));
+
481 assert(ESP_OK == ret);
+
482 }
+
483 nvs_close(nvs_handle_kalman);
+
484 ESP_LOGI("Kalman filter demo", "State vectors saved to NVS");
+
485 free(state_vectors);
+
486 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // Save the State vectors each 5 min
+
487 }
+
488}
+
+
489
+
+
497static void get_pressure_task(void *arg)
+
498{
+
499 int32_t real_p, real_t;
+
500 float *pressure_ptr = (float *)arg;
+
501 float pressure_global = *pressure_ptr;
+
502
+
503 int call_count = 0;
+
504 int call_count1 = 0;
+
505 float pressure_initial = pressure_global;
+
506 float last_pressure = pressure_global;
+
507 float baro_image = pressure_global;
+
508 bool changed = false;
+
509
+
510 while (1) {
+
511 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
512 pressure_global = (0.999 * pressure_global) + (0.001 * ((float)real_p) / 1000.0);
+
513 call_count1++;
+
514 }
+
515
+
516 if (board_inactive) {
+
517 pressure_initial = pressure_global;
+
518 last_pressure = pressure_global;
+
519 baro_image = pressure_global;
+
520 } else {
+
521 call_count++;
+
522 if (fabs(pressure_global - last_pressure) > 0.0005) { // cahnge more than 0.5 Pa
+
523 last_pressure = pressure_global;
+
524 baro_image = (0.9 * baro_image) + (0.1 * last_pressure);
+
525 changed = true;
+
526 }
+
527
+
528 if ((!(call_count % 10)) && changed) {
+
529 float fov = 90 + (1000.0 * ((float)(pressure_initial - baro_image)));
+ +
531 changed = false;
+
532 }
+
533 }
+
534 vTaskDelay(100 / portTICK_PERIOD_MS);
+
535 }
+
536}
+
+
537
+
+ +
542{
+
543 float pressure;
+
544 int32_t real_p, real_t;
+
545 int averagning_loop_count = 500;
+
546
+
547 ESP_LOGI("Barometer", "Averagining initial barometer pressure");
+
548 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
549 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Barometer", 16, 1);
+
550 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"averaging", 16, 1);
+
551 ssd1306_refresh_gram(ssd1306_dev);
+
552
+
553 // take the first pressure measurement
+
554 while (1) {
+
555 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
556 pressure = ((float)real_p) / 1000.0; // pressure in kPa
+
557 break;
+
558 }
+
559 }
+
560
+
561 // average first N measurements
+
562 while (averagning_loop_count--) {
+
563 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
564 pressure = (0.999 * pressure) + (0.001 * ((float)real_p) / 1000.0);
+
565 vTaskDelay(100 / portTICK_PERIOD_MS);
+
566 }
+
567 }
+
568
+
569 ESP_LOGI("Barometer", "Initial value set");
+
570 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
571 ssd1306_refresh_gram(ssd1306_dev);
+
572 return (pressure);
+
573}
+
+
574
+
+
575void app_main(void)
+
576{
+ + +
579 ekf13->Init();
+
580
+
581 // Init all board components
+
582 bsp_i2c_init();
+
583 app_ssd1306_init(); // display init
+
584 mpu6050_init(); // gyro, acc init
+
585 app_mag3110_init(); // magnetometer init
+
586 app_fbm320_init(); // barometer init
+
587 bsp_leds_init(); // LEDs init
+
588 init_nvs_flash_memory(); // Non-Volatile Storage
+
589
+ + + +
593
+
594 // Use a barometer for measuring the altitude
+
595 if (USE_BAROMETER) {
+
596 float init_pressure = get_initial_pressure();
+
597 xTaskCreate(get_pressure_task, "get_pressure_task", 2048 * 4, &init_pressure, 4, NULL);
+
598 } else {
+
599 ESP_LOGI("Barometer", "disabled");
+
600 }
+
601
+
602 xTaskCreate(kalman_filter_task, "kalman_filter_task", 2048 * 4, &image, 5, NULL);
+
603 xTaskCreate(save_state_vectors_task, "save_state_vectors", 2048, ekf13, 6, NULL);
+
604
+
605 while (1) {
+
606 vTaskDelay(10000 / portTICK_PERIOD_MS);
+
607 }
+
608}
+
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ + + +
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+ + +
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+ + +
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+ + + + + +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + +
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+ + + +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
float norm(void)
Definition mat.cpp:456
+
int cols
Definition mat.h:34
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+ + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void mpu6050_init(void)
Initialize accelerometer and gyroscope.
+
static void kalman_filter_calibration(image_3d_matrix_kalman_t *image)
Kalman filter calibration procedure.
+
static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
Draw a 3d image.
+ +
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ + + + + +
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+
static void init_3d_matrix_struct(image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
Initialize 3d image structure.
+ + + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817.md5 new file mode 100644 index 0000000..10613e2 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817.md5 @@ -0,0 +1 @@ +4cc8fa67ed7e3c172438b2cd0c724976 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817.svg new file mode 100644 index 0000000..b52979c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +image_to_3d_matrix.c + + +Node1 + + +image_to_3d_matrix.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817_org.svg new file mode 100644 index 0000000..ce85d0d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix1cb1fe1deb600c29dec209d2c7a00817_org.svg @@ -0,0 +1,75 @@ + + + + + + +image_to_3d_matrix.c + + +Node1 + + +image_to_3d_matrix.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23.md5 new file mode 100644 index 0000000..ce5be1b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23.md5 @@ -0,0 +1 @@ +27313d73158c2e1ab145532871ca4cca \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23.svg new file mode 100644 index 0000000..60606e0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +graphics_support.cpp + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23_org.svg new file mode 100644 index 0000000..53ad077 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix81d8a4c02362a3a2d045efee0c3d0d23_org.svg @@ -0,0 +1,39 @@ + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +graphics_support.cpp + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1.md5 new file mode 100644 index 0000000..c47bcc0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1.md5 @@ -0,0 +1 @@ +f220a0c2d9ec084061edc671fba556af \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1.svg new file mode 100644 index 0000000..9c972c9 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1.svg @@ -0,0 +1,1672 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node1->Node4 + + + + + + + + +Node72 + + +ekf_imu13states.h + + + + + +Node1->Node72 + + + + + + + + +Node3 + + +dsp_common.h + + + + + +Node2->Node3 + + + + + + + + +Node12 + + +dsp_types.h + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +dsps_dotprod.h + + + + + +Node2->Node14 + + + + + + + + +Node18 + + +dsps_math.h + + + + + +Node2->Node18 + + + + + + + + +Node30 + + +dsps_fir.h + + + + + +Node2->Node30 + + + + + + + + +Node32 + + +dsps_resampler.h + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +dsps_biquad.h + + + + + +Node2->Node33 + + + + + + + + +Node35 + + +dsps_biquad_gen.h + + + + + +Node2->Node35 + + + + + + + + +Node36 + + +dsps_wind.h + + + + + +Node2->Node36 + + + + + + + + +Node43 + + +dsps_conv.h + + + + + +Node2->Node43 + + + + + + + + +Node45 + + +dsps_corr.h + + + + + +Node2->Node45 + + + + + + + + +Node46 + + +dsps_d_gen.h + + + + + +Node2->Node46 + + + + + + + + +Node47 + + +dsps_h_gen.h + + + + + +Node2->Node47 + + + + + + + + +Node48 + + +dsps_tone_gen.h + + + + + +Node2->Node48 + + + + + + + + +Node49 + + +dsps_snr.h + + + + + +Node2->Node49 + + + + + + + + +Node50 + + +dsps_sfdr.h + + + + + +Node2->Node50 + + + + + + + + +Node51 + + +dsps_fft2r.h + + + + + +Node2->Node51 + + + + + + + + +Node54 + + +dsps_fft4r.h + + + + + +Node2->Node54 + + + + + + + + +Node56 + + +dsps_dct.h + + + + + +Node2->Node56 + + + + + + + + +Node57 + + +dspm_matrix.h + + + + + +Node2->Node57 + + + + + + + + +Node68 + + +dsps_view.h + + + + + +Node2->Node68 + + + + + + + + +Node69 + + +dspi_dotprod.h + + + + + +Node2->Node69 + + + + + + + + +Node71 + + +dspi_conv.h + + + + + +Node2->Node71 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdbool.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dsp_err.h + + + + + +Node3->Node6 + + + + + + + + +Node10 + + +esp_idf_version.h + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +x86intrin.h + + + + + +Node3->Node11 + + + + + + + + +Node6->Node4 + + + + + + + + +Node12->Node4 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +inttypes.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node15 + + +esp_log.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_dotprod_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +sdkconfig.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_add.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_sub.h + + + + + +Node18->Node21 + + + + + + + + +Node23 + + +dsps_mul.h + + + + + +Node18->Node23 + + + + + + + + +Node25 + + +dsps_addc.h + + + + + +Node18->Node25 + + + + + + + + +Node27 + + +dsps_mulc.h + + + + + +Node18->Node27 + + + + + + + + +Node29 + + +dsps_sqrt.h + + + + + +Node18->Node29 + + + + + + + + +Node19->Node6 + + + + + + + + +Node21->Node6 + + + + + + + + +Node23->Node6 + + + + + + + + +Node25->Node6 + + + + + + + + +Node27->Node6 + + + + + + + + +Node29->Node6 + + + + + + + + +Node30->Node3 + + + + + + + + +Node30->Node6 + + + + + + + + +Node31 + + +dsps_fir_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node31->Node17 + + + + + + + + +Node32->Node6 + + + + + + + + +Node32->Node30 + + + + + + + + +Node33->Node6 + + + + + + + + +Node34 + + +dsps_biquad_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node17 + + + + + + + + +Node35->Node6 + + + + + + + + +Node37 + + +dsps_wind_hann.h + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman.h + + + + + +Node36->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_harris.h + + + + + +Node36->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +dsps_wind_nuttall.h + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +dsps_wind_flat_top.h + + + + + +Node36->Node42 + + + + + + + + +Node43->Node6 + + + + + + + + +Node44 + + +dsps_conv_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node6 + + + + + + + + +Node45->Node44 + + + + + + + + +Node46->Node6 + + + + + + + + +Node47->Node6 + + + + + + + + +Node48->Node6 + + + + + + + + +Node49->Node6 + + + + + + + + +Node50->Node6 + + + + + + + + +Node51->Node6 + + + + + + + + +Node51->Node17 + + + + + + + + +Node52 + + +dsps_fft_tables.h + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +dsps_fft2r_platform.h + + + + + +Node51->Node53 + + + + + + + + +Node53->Node17 + + + + + + + + +Node54->Node6 + + + + + + + + +Node54->Node17 + + + + + + + + +Node54->Node52 + + + + + + + + +Node55 + + +dsps_fft4r_platform.h + + + + + +Node54->Node55 + + + + + + + + +Node55->Node17 + + + + + + + + +Node56->Node6 + + + + + + + + +Node56->Node17 + + + + + + + + +Node58 + + +dspm_add.h + + + + + +Node57->Node58 + + + + + + + + +Node60 + + +dspm_addc.h + + + + + +Node57->Node60 + + + + + + + + +Node62 + + +dspm_mult.h + + + + + +Node57->Node62 + + + + + + + + +Node64 + + +dspm_mulc.h + + + + + +Node57->Node64 + + + + + + + + +Node66 + + +dspm_sub.h + + + + + +Node57->Node66 + + + + + + + + +Node58->Node6 + + + + + + + + +Node60->Node6 + + + + + + + + +Node62->Node6 + + + + + + + + +Node64->Node6 + + + + + + + + +Node66->Node6 + + + + + + + + +Node68->Node6 + + + + + + + + +Node69->Node6 + + + + + + + + +Node69->Node12 + + + + + + + + +Node69->Node15 + + + + + + + + +Node70 + + +dspi_dotprod_platform.h + + + + + +Node69->Node70 + + + + + + + + +Node70->Node17 + + + + + + + + +Node71->Node6 + + + + + + + + +Node71->Node12 + + + + + + + + +Node71->Node44 + + + + + + + + +Node73 + + +ekf.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node73->Node5 + + + + + + + + +Node74 + + +math.h + + + + + +Node73->Node74 + + + + + + + + +Node75 + + +mat.h + + + + + +Node73->Node75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1_org.svg new file mode 100644 index 0000000..dea979c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix8c3b4e56e245bf58384aec3414d5d8c1_org.svg @@ -0,0 +1,1589 @@ + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node1->Node4 + + + + + + + + +Node72 + + +ekf_imu13states.h + + + + + +Node1->Node72 + + + + + + + + +Node3 + + +dsp_common.h + + + + + +Node2->Node3 + + + + + + + + +Node12 + + +dsp_types.h + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +dsps_dotprod.h + + + + + +Node2->Node14 + + + + + + + + +Node18 + + +dsps_math.h + + + + + +Node2->Node18 + + + + + + + + +Node30 + + +dsps_fir.h + + + + + +Node2->Node30 + + + + + + + + +Node32 + + +dsps_resampler.h + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +dsps_biquad.h + + + + + +Node2->Node33 + + + + + + + + +Node35 + + +dsps_biquad_gen.h + + + + + +Node2->Node35 + + + + + + + + +Node36 + + +dsps_wind.h + + + + + +Node2->Node36 + + + + + + + + +Node43 + + +dsps_conv.h + + + + + +Node2->Node43 + + + + + + + + +Node45 + + +dsps_corr.h + + + + + +Node2->Node45 + + + + + + + + +Node46 + + +dsps_d_gen.h + + + + + +Node2->Node46 + + + + + + + + +Node47 + + +dsps_h_gen.h + + + + + +Node2->Node47 + + + + + + + + +Node48 + + +dsps_tone_gen.h + + + + + +Node2->Node48 + + + + + + + + +Node49 + + +dsps_snr.h + + + + + +Node2->Node49 + + + + + + + + +Node50 + + +dsps_sfdr.h + + + + + +Node2->Node50 + + + + + + + + +Node51 + + +dsps_fft2r.h + + + + + +Node2->Node51 + + + + + + + + +Node54 + + +dsps_fft4r.h + + + + + +Node2->Node54 + + + + + + + + +Node56 + + +dsps_dct.h + + + + + +Node2->Node56 + + + + + + + + +Node57 + + +dspm_matrix.h + + + + + +Node2->Node57 + + + + + + + + +Node68 + + +dsps_view.h + + + + + +Node2->Node68 + + + + + + + + +Node69 + + +dspi_dotprod.h + + + + + +Node2->Node69 + + + + + + + + +Node71 + + +dspi_conv.h + + + + + +Node2->Node71 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdbool.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dsp_err.h + + + + + +Node3->Node6 + + + + + + + + +Node10 + + +esp_idf_version.h + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +x86intrin.h + + + + + +Node3->Node11 + + + + + + + + +Node6->Node4 + + + + + + + + +Node12->Node4 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +inttypes.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node15 + + +esp_log.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_dotprod_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +sdkconfig.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_add.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_sub.h + + + + + +Node18->Node21 + + + + + + + + +Node23 + + +dsps_mul.h + + + + + +Node18->Node23 + + + + + + + + +Node25 + + +dsps_addc.h + + + + + +Node18->Node25 + + + + + + + + +Node27 + + +dsps_mulc.h + + + + + +Node18->Node27 + + + + + + + + +Node29 + + +dsps_sqrt.h + + + + + +Node18->Node29 + + + + + + + + +Node19->Node6 + + + + + + + + +Node21->Node6 + + + + + + + + +Node23->Node6 + + + + + + + + +Node25->Node6 + + + + + + + + +Node27->Node6 + + + + + + + + +Node29->Node6 + + + + + + + + +Node30->Node3 + + + + + + + + +Node30->Node6 + + + + + + + + +Node31 + + +dsps_fir_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node31->Node17 + + + + + + + + +Node32->Node6 + + + + + + + + +Node32->Node30 + + + + + + + + +Node33->Node6 + + + + + + + + +Node34 + + +dsps_biquad_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node17 + + + + + + + + +Node35->Node6 + + + + + + + + +Node37 + + +dsps_wind_hann.h + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman.h + + + + + +Node36->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_harris.h + + + + + +Node36->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +dsps_wind_nuttall.h + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +dsps_wind_flat_top.h + + + + + +Node36->Node42 + + + + + + + + +Node43->Node6 + + + + + + + + +Node44 + + +dsps_conv_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node6 + + + + + + + + +Node45->Node44 + + + + + + + + +Node46->Node6 + + + + + + + + +Node47->Node6 + + + + + + + + +Node48->Node6 + + + + + + + + +Node49->Node6 + + + + + + + + +Node50->Node6 + + + + + + + + +Node51->Node6 + + + + + + + + +Node51->Node17 + + + + + + + + +Node52 + + +dsps_fft_tables.h + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +dsps_fft2r_platform.h + + + + + +Node51->Node53 + + + + + + + + +Node53->Node17 + + + + + + + + +Node54->Node6 + + + + + + + + +Node54->Node17 + + + + + + + + +Node54->Node52 + + + + + + + + +Node55 + + +dsps_fft4r_platform.h + + + + + +Node54->Node55 + + + + + + + + +Node55->Node17 + + + + + + + + +Node56->Node6 + + + + + + + + +Node56->Node17 + + + + + + + + +Node58 + + +dspm_add.h + + + + + +Node57->Node58 + + + + + + + + +Node60 + + +dspm_addc.h + + + + + +Node57->Node60 + + + + + + + + +Node62 + + +dspm_mult.h + + + + + +Node57->Node62 + + + + + + + + +Node64 + + +dspm_mulc.h + + + + + +Node57->Node64 + + + + + + + + +Node66 + + +dspm_sub.h + + + + + +Node57->Node66 + + + + + + + + +Node58->Node6 + + + + + + + + +Node60->Node6 + + + + + + + + +Node62->Node6 + + + + + + + + +Node64->Node6 + + + + + + + + +Node66->Node6 + + + + + + + + +Node68->Node6 + + + + + + + + +Node69->Node6 + + + + + + + + +Node69->Node12 + + + + + + + + +Node69->Node15 + + + + + + + + +Node70 + + +dspi_dotprod_platform.h + + + + + +Node69->Node70 + + + + + + + + +Node70->Node17 + + + + + + + + +Node71->Node6 + + + + + + + + +Node71->Node12 + + + + + + + + +Node71->Node44 + + + + + + + + +Node73 + + +ekf.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node73->Node5 + + + + + + + + +Node74 + + +math.h + + + + + +Node73->Node74 + + + + + + + + +Node75 + + +mat.h + + + + + +Node73->Node75 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix914e932f5b873cea5635685522728c5b.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix914e932f5b873cea5635685522728c5b.html new file mode 100644 index 0000000..17070a0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix914e932f5b873cea5635685522728c5b.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image_to_3d_matrix.c File Reference
+
+
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix914e932f5b873cea5635685522728c5b_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix914e932f5b873cea5635685522728c5b_source.html new file mode 100644 index 0000000..fc9f5d8 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix914e932f5b873cea5635685522728c5b_source.html @@ -0,0 +1,447 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.c
+
+
+Go to the documentation of this file.
1// File generated by ImgTo3D.py
+
2// Image file converted to 3D matrix cpu_logo.png
+
3
+ +
5
+
6#ifdef CONFIG_3D_OBJECT_CUSTOM
+
7
+
8const uint8_t image_to_bmp_array_custom[512] = {
+
9
+
10 0x00, 0x00, 0x0e, 0x1c, 0x38, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
11 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
12 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
13 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
14 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
15 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
16 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
17 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
18 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
19 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe,
+
20 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff,
+
21 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0x00, 0x1e, 0x0f, 0xff, 0xff, 0xf0, 0x78, 0x00,
+
22 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00,
+
23 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfe, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff,
+
24 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff,
+
25 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfc, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00,
+
26 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfe,
+
27 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff,
+
28 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff, 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfe,
+
29 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00,
+
30 0x7f, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xfc, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff,
+
31 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff,
+
32 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
33 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
34 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
35 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
36 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
37 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
38 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
39 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
40 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
41 0x00, 0x00, 0x1e, 0x3c, 0x7c, 0x78, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1c, 0x38, 0x70, 0x00, 0x00
+
42
+
43};
+
44
+
45const float image_to_3d_matrix_custom[1732][4] = {
+
46
+
47 {-12.0, -32.0, 0, 1}, {-11.0, -32.0, 0, 1}, {-10.0, -32.0, 0, 1}, {-5.0, -32.0, 0, 1}, {-4.0, -32.0, 0, 1}, {-3.0, -32.0, 0, 1},
+
48 {2.0, -32.0, 0, 1}, {3.0, -32.0, 0, 1}, {4.0, -32.0, 0, 1}, {9.0, -32.0, 0, 1}, {10.0, -32.0, 0, 1}, {11.0, -32.0, 0, 1},
+
49 {-13.0, -31.0, 0, 1}, {-12.0, -31.0, 0, 1}, {-11.0, -31.0, 0, 1}, {-10.0, -31.0, 0, 1}, {-6.0, -31.0, 0, 1}, {-5.0, -31.0, 0, 1},
+
50 {-4.0, -31.0, 0, 1}, {-3.0, -31.0, 0, 1}, {-2.0, -31.0, 0, 1}, {1.0, -31.0, 0, 1}, {2.0, -31.0, 0, 1}, {3.0, -31.0, 0, 1},
+
51 {4.0, -31.0, 0, 1}, {5.0, -31.0, 0, 1}, {8.0, -31.0, 0, 1}, {9.0, -31.0, 0, 1}, {10.0, -31.0, 0, 1}, {11.0, -31.0, 0, 1},
+
52 {12.0, -31.0, 0, 1}, {-13.0, -30.0, 0, 1}, {-12.0, -30.0, 0, 1}, {-11.0, -30.0, 0, 1}, {-10.0, -30.0, 0, 1}, {-6.0, -30.0, 0, 1},
+
53 {-5.0, -30.0, 0, 1}, {-4.0, -30.0, 0, 1}, {-3.0, -30.0, 0, 1}, {-2.0, -30.0, 0, 1}, {1.0, -30.0, 0, 1}, {2.0, -30.0, 0, 1},
+
54 {3.0, -30.0, 0, 1}, {4.0, -30.0, 0, 1}, {5.0, -30.0, 0, 1}, {8.0, -30.0, 0, 1}, {9.0, -30.0, 0, 1}, {10.0, -30.0, 0, 1},
+
55 {11.0, -30.0, 0, 1}, {12.0, -30.0, 0, 1}, {-13.0, -29.0, 0, 1}, {-12.0, -29.0, 0, 1}, {-11.0, -29.0, 0, 1}, {-10.0, -29.0, 0, 1},
+
56 {-6.0, -29.0, 0, 1}, {-5.0, -29.0, 0, 1}, {-4.0, -29.0, 0, 1}, {-3.0, -29.0, 0, 1}, {-2.0, -29.0, 0, 1}, {1.0, -29.0, 0, 1},
+
57 {2.0, -29.0, 0, 1}, {3.0, -29.0, 0, 1}, {4.0, -29.0, 0, 1}, {5.0, -29.0, 0, 1}, {8.0, -29.0, 0, 1}, {9.0, -29.0, 0, 1},
+
58 {10.0, -29.0, 0, 1}, {11.0, -29.0, 0, 1}, {12.0, -29.0, 0, 1}, {-13.0, -28.0, 0, 1}, {-12.0, -28.0, 0, 1}, {-11.0, -28.0, 0, 1},
+
59 {-10.0, -28.0, 0, 1}, {-6.0, -28.0, 0, 1}, {-5.0, -28.0, 0, 1}, {-4.0, -28.0, 0, 1}, {-3.0, -28.0, 0, 1}, {-2.0, -28.0, 0, 1},
+
60 {1.0, -28.0, 0, 1}, {2.0, -28.0, 0, 1}, {3.0, -28.0, 0, 1}, {4.0, -28.0, 0, 1}, {5.0, -28.0, 0, 1}, {8.0, -28.0, 0, 1},
+
61 {9.0, -28.0, 0, 1}, {10.0, -28.0, 0, 1}, {11.0, -28.0, 0, 1}, {12.0, -28.0, 0, 1}, {-13.0, -27.0, 0, 1}, {-12.0, -27.0, 0, 1},
+
62 {-11.0, -27.0, 0, 1}, {-10.0, -27.0, 0, 1}, {-6.0, -27.0, 0, 1}, {-5.0, -27.0, 0, 1}, {-4.0, -27.0, 0, 1}, {-3.0, -27.0, 0, 1},
+
63 {-2.0, -27.0, 0, 1}, {1.0, -27.0, 0, 1}, {2.0, -27.0, 0, 1}, {3.0, -27.0, 0, 1}, {4.0, -27.0, 0, 1}, {5.0, -27.0, 0, 1},
+
64 {8.0, -27.0, 0, 1}, {9.0, -27.0, 0, 1}, {10.0, -27.0, 0, 1}, {11.0, -27.0, 0, 1}, {12.0, -27.0, 0, 1}, {-13.0, -26.0, 0, 1},
+
65 {-12.0, -26.0, 0, 1}, {-11.0, -26.0, 0, 1}, {-10.0, -26.0, 0, 1}, {-6.0, -26.0, 0, 1}, {-5.0, -26.0, 0, 1}, {-4.0, -26.0, 0, 1},
+
66 {-3.0, -26.0, 0, 1}, {-2.0, -26.0, 0, 1}, {1.0, -26.0, 0, 1}, {2.0, -26.0, 0, 1}, {3.0, -26.0, 0, 1}, {4.0, -26.0, 0, 1},
+
67 {5.0, -26.0, 0, 1}, {8.0, -26.0, 0, 1}, {9.0, -26.0, 0, 1}, {10.0, -26.0, 0, 1}, {11.0, -26.0, 0, 1}, {12.0, -26.0, 0, 1},
+
68 {-13.0, -25.0, 0, 1}, {-12.0, -25.0, 0, 1}, {-11.0, -25.0, 0, 1}, {-10.0, -25.0, 0, 1}, {-6.0, -25.0, 0, 1}, {-5.0, -25.0, 0, 1},
+
69 {-4.0, -25.0, 0, 1}, {-3.0, -25.0, 0, 1}, {-2.0, -25.0, 0, 1}, {1.0, -25.0, 0, 1}, {2.0, -25.0, 0, 1}, {3.0, -25.0, 0, 1},
+
70 {4.0, -25.0, 0, 1}, {5.0, -25.0, 0, 1}, {8.0, -25.0, 0, 1}, {9.0, -25.0, 0, 1}, {10.0, -25.0, 0, 1}, {11.0, -25.0, 0, 1},
+
71 {12.0, -25.0, 0, 1}, {-13.0, -24.0, 0, 1}, {-12.0, -24.0, 0, 1}, {-11.0, -24.0, 0, 1}, {-10.0, -24.0, 0, 1}, {-6.0, -24.0, 0, 1},
+
72 {-5.0, -24.0, 0, 1}, {-4.0, -24.0, 0, 1}, {-3.0, -24.0, 0, 1}, {-2.0, -24.0, 0, 1}, {1.0, -24.0, 0, 1}, {2.0, -24.0, 0, 1},
+
73 {3.0, -24.0, 0, 1}, {4.0, -24.0, 0, 1}, {5.0, -24.0, 0, 1}, {8.0, -24.0, 0, 1}, {9.0, -24.0, 0, 1}, {10.0, -24.0, 0, 1},
+
74 {11.0, -24.0, 0, 1}, {12.0, -24.0, 0, 1}, {-13.0, -23.0, 0, 1}, {-12.0, -23.0, 0, 1}, {-11.0, -23.0, 0, 1}, {-10.0, -23.0, 0, 1},
+
75 {-6.0, -23.0, 0, 1}, {-5.0, -23.0, 0, 1}, {-4.0, -23.0, 0, 1}, {-3.0, -23.0, 0, 1}, {-2.0, -23.0, 0, 1}, {1.0, -23.0, 0, 1},
+
76 {2.0, -23.0, 0, 1}, {3.0, -23.0, 0, 1}, {4.0, -23.0, 0, 1}, {5.0, -23.0, 0, 1}, {8.0, -23.0, 0, 1}, {9.0, -23.0, 0, 1},
+
77 {10.0, -23.0, 0, 1}, {11.0, -23.0, 0, 1}, {12.0, -23.0, 0, 1}, {-13.0, -22.0, 0, 1}, {-12.0, -22.0, 0, 1}, {-11.0, -22.0, 0, 1},
+
78 {-10.0, -22.0, 0, 1}, {-6.0, -22.0, 0, 1}, {-5.0, -22.0, 0, 1}, {-4.0, -22.0, 0, 1}, {-3.0, -22.0, 0, 1}, {-2.0, -22.0, 0, 1},
+
79 {1.0, -22.0, 0, 1}, {2.0, -22.0, 0, 1}, {3.0, -22.0, 0, 1}, {4.0, -22.0, 0, 1}, {5.0, -22.0, 0, 1}, {8.0, -22.0, 0, 1},
+
80 {9.0, -22.0, 0, 1}, {10.0, -22.0, 0, 1}, {11.0, -22.0, 0, 1}, {12.0, -22.0, 0, 1}, {-21.0, -21.0, 0, 1}, {-20.0, -21.0, 0, 1},
+
81 {-19.0, -21.0, 0, 1}, {-18.0, -21.0, 0, 1}, {-17.0, -21.0, 0, 1}, {-16.0, -21.0, 0, 1}, {-15.0, -21.0, 0, 1}, {-14.0, -21.0, 0, 1},
+
82 {-13.0, -21.0, 0, 1}, {-12.0, -21.0, 0, 1}, {-11.0, -21.0, 0, 1}, {-10.0, -21.0, 0, 1}, {-9.0, -21.0, 0, 1}, {-8.0, -21.0, 0, 1},
+
83 {-7.0, -21.0, 0, 1}, {-6.0, -21.0, 0, 1}, {-5.0, -21.0, 0, 1}, {-4.0, -21.0, 0, 1}, {-3.0, -21.0, 0, 1}, {-2.0, -21.0, 0, 1},
+
84 {-1.0, -21.0, 0, 1}, {0.0, -21.0, 0, 1}, {1.0, -21.0, 0, 1}, {2.0, -21.0, 0, 1}, {3.0, -21.0, 0, 1}, {4.0, -21.0, 0, 1},
+
85 {5.0, -21.0, 0, 1}, {6.0, -21.0, 0, 1}, {7.0, -21.0, 0, 1}, {8.0, -21.0, 0, 1}, {9.0, -21.0, 0, 1}, {10.0, -21.0, 0, 1},
+
86 {11.0, -21.0, 0, 1}, {12.0, -21.0, 0, 1}, {13.0, -21.0, 0, 1}, {14.0, -21.0, 0, 1}, {15.0, -21.0, 0, 1}, {16.0, -21.0, 0, 1},
+
87 {17.0, -21.0, 0, 1}, {18.0, -21.0, 0, 1}, {19.0, -21.0, 0, 1}, {20.0, -21.0, 0, 1}, {-21.0, -20.0, 0, 1}, {-20.0, -20.0, 0, 1},
+
88 {-19.0, -20.0, 0, 1}, {-18.0, -20.0, 0, 1}, {-17.0, -20.0, 0, 1}, {-16.0, -20.0, 0, 1}, {-15.0, -20.0, 0, 1}, {-14.0, -20.0, 0, 1},
+
89 {-13.0, -20.0, 0, 1}, {-12.0, -20.0, 0, 1}, {-11.0, -20.0, 0, 1}, {-10.0, -20.0, 0, 1}, {-9.0, -20.0, 0, 1}, {-8.0, -20.0, 0, 1},
+
90 {-7.0, -20.0, 0, 1}, {-6.0, -20.0, 0, 1}, {-5.0, -20.0, 0, 1}, {-4.0, -20.0, 0, 1}, {-3.0, -20.0, 0, 1}, {-2.0, -20.0, 0, 1},
+
91 {-1.0, -20.0, 0, 1}, {0.0, -20.0, 0, 1}, {1.0, -20.0, 0, 1}, {2.0, -20.0, 0, 1}, {3.0, -20.0, 0, 1}, {4.0, -20.0, 0, 1},
+
92 {5.0, -20.0, 0, 1}, {6.0, -20.0, 0, 1}, {7.0, -20.0, 0, 1}, {8.0, -20.0, 0, 1}, {9.0, -20.0, 0, 1}, {10.0, -20.0, 0, 1},
+
93 {11.0, -20.0, 0, 1}, {12.0, -20.0, 0, 1}, {13.0, -20.0, 0, 1}, {14.0, -20.0, 0, 1}, {15.0, -20.0, 0, 1}, {16.0, -20.0, 0, 1},
+
94 {17.0, -20.0, 0, 1}, {18.0, -20.0, 0, 1}, {19.0, -20.0, 0, 1}, {20.0, -20.0, 0, 1}, {-21.0, -19.0, 0, 1}, {-20.0, -19.0, 0, 1},
+
95 {-19.0, -19.0, 0, 1}, {-18.0, -19.0, 0, 1}, {-17.0, -19.0, 0, 1}, {-16.0, -19.0, 0, 1}, {-15.0, -19.0, 0, 1}, {-14.0, -19.0, 0, 1},
+
96 {-13.0, -19.0, 0, 1}, {-12.0, -19.0, 0, 1}, {-11.0, -19.0, 0, 1}, {-10.0, -19.0, 0, 1}, {-9.0, -19.0, 0, 1}, {-8.0, -19.0, 0, 1},
+
97 {-7.0, -19.0, 0, 1}, {-6.0, -19.0, 0, 1}, {-5.0, -19.0, 0, 1}, {-4.0, -19.0, 0, 1}, {-3.0, -19.0, 0, 1}, {-2.0, -19.0, 0, 1},
+
98 {-1.0, -19.0, 0, 1}, {0.0, -19.0, 0, 1}, {1.0, -19.0, 0, 1}, {2.0, -19.0, 0, 1}, {3.0, -19.0, 0, 1}, {4.0, -19.0, 0, 1},
+
99 {5.0, -19.0, 0, 1}, {6.0, -19.0, 0, 1}, {7.0, -19.0, 0, 1}, {8.0, -19.0, 0, 1}, {9.0, -19.0, 0, 1}, {10.0, -19.0, 0, 1},
+
100 {11.0, -19.0, 0, 1}, {12.0, -19.0, 0, 1}, {13.0, -19.0, 0, 1}, {14.0, -19.0, 0, 1}, {15.0, -19.0, 0, 1}, {16.0, -19.0, 0, 1},
+
101 {17.0, -19.0, 0, 1}, {18.0, -19.0, 0, 1}, {19.0, -19.0, 0, 1}, {20.0, -19.0, 0, 1}, {-21.0, -18.0, 0, 1}, {-20.0, -18.0, 0, 1},
+
102 {-19.0, -18.0, 0, 1}, {-18.0, -18.0, 0, 1}, {-17.0, -18.0, 0, 1}, {-16.0, -18.0, 0, 1}, {-15.0, -18.0, 0, 1}, {-14.0, -18.0, 0, 1},
+
103 {-13.0, -18.0, 0, 1}, {-12.0, -18.0, 0, 1}, {-11.0, -18.0, 0, 1}, {-10.0, -18.0, 0, 1}, {-9.0, -18.0, 0, 1}, {-8.0, -18.0, 0, 1},
+
104 {-7.0, -18.0, 0, 1}, {-6.0, -18.0, 0, 1}, {-5.0, -18.0, 0, 1}, {-4.0, -18.0, 0, 1}, {-3.0, -18.0, 0, 1}, {-2.0, -18.0, 0, 1},
+
105 {-1.0, -18.0, 0, 1}, {0.0, -18.0, 0, 1}, {1.0, -18.0, 0, 1}, {2.0, -18.0, 0, 1}, {3.0, -18.0, 0, 1}, {4.0, -18.0, 0, 1},
+
106 {5.0, -18.0, 0, 1}, {6.0, -18.0, 0, 1}, {7.0, -18.0, 0, 1}, {8.0, -18.0, 0, 1}, {9.0, -18.0, 0, 1}, {10.0, -18.0, 0, 1},
+
107 {11.0, -18.0, 0, 1}, {12.0, -18.0, 0, 1}, {13.0, -18.0, 0, 1}, {14.0, -18.0, 0, 1}, {15.0, -18.0, 0, 1}, {16.0, -18.0, 0, 1},
+
108 {17.0, -18.0, 0, 1}, {18.0, -18.0, 0, 1}, {19.0, -18.0, 0, 1}, {20.0, -18.0, 0, 1}, {-21.0, -17.0, 0, 1}, {-20.0, -17.0, 0, 1},
+
109 {-19.0, -17.0, 0, 1}, {-18.0, -17.0, 0, 1}, {17.0, -17.0, 0, 1}, {18.0, -17.0, 0, 1}, {19.0, -17.0, 0, 1}, {20.0, -17.0, 0, 1},
+
110 {-21.0, -16.0, 0, 1}, {-20.0, -16.0, 0, 1}, {-19.0, -16.0, 0, 1}, {-18.0, -16.0, 0, 1}, {17.0, -16.0, 0, 1}, {18.0, -16.0, 0, 1},
+
111 {19.0, -16.0, 0, 1}, {20.0, -16.0, 0, 1}, {-21.0, -15.0, 0, 1}, {-20.0, -15.0, 0, 1}, {-19.0, -15.0, 0, 1}, {-18.0, -15.0, 0, 1},
+
112 {17.0, -15.0, 0, 1}, {18.0, -15.0, 0, 1}, {19.0, -15.0, 0, 1}, {20.0, -15.0, 0, 1}, {-21.0, -14.0, 0, 1}, {-20.0, -14.0, 0, 1},
+
113 {-19.0, -14.0, 0, 1}, {-18.0, -14.0, 0, 1}, {17.0, -14.0, 0, 1}, {18.0, -14.0, 0, 1}, {19.0, -14.0, 0, 1}, {20.0, -14.0, 0, 1},
+
114 {-31.0, -13.0, 0, 1}, {-30.0, -13.0, 0, 1}, {-29.0, -13.0, 0, 1}, {-28.0, -13.0, 0, 1}, {-27.0, -13.0, 0, 1}, {-26.0, -13.0, 0, 1},
+
115 {-25.0, -13.0, 0, 1}, {-24.0, -13.0, 0, 1}, {-23.0, -13.0, 0, 1}, {-22.0, -13.0, 0, 1}, {-21.0, -13.0, 0, 1}, {-20.0, -13.0, 0, 1},
+
116 {-19.0, -13.0, 0, 1}, {-18.0, -13.0, 0, 1}, {17.0, -13.0, 0, 1}, {18.0, -13.0, 0, 1}, {19.0, -13.0, 0, 1}, {20.0, -13.0, 0, 1},
+
117 {21.0, -13.0, 0, 1}, {22.0, -13.0, 0, 1}, {23.0, -13.0, 0, 1}, {24.0, -13.0, 0, 1}, {25.0, -13.0, 0, 1}, {26.0, -13.0, 0, 1},
+
118 {27.0, -13.0, 0, 1}, {28.0, -13.0, 0, 1}, {29.0, -13.0, 0, 1}, {30.0, -13.0, 0, 1}, {-32.0, -12.0, 0, 1}, {-31.0, -12.0, 0, 1},
+
119 {-30.0, -12.0, 0, 1}, {-29.0, -12.0, 0, 1}, {-28.0, -12.0, 0, 1}, {-27.0, -12.0, 0, 1}, {-26.0, -12.0, 0, 1}, {-25.0, -12.0, 0, 1},
+
120 {-24.0, -12.0, 0, 1}, {-23.0, -12.0, 0, 1}, {-22.0, -12.0, 0, 1}, {-21.0, -12.0, 0, 1}, {-20.0, -12.0, 0, 1}, {-19.0, -12.0, 0, 1},
+
121 {-18.0, -12.0, 0, 1}, {-12.0, -12.0, 0, 1}, {-11.0, -12.0, 0, 1}, {-10.0, -12.0, 0, 1}, {-9.0, -12.0, 0, 1}, {-8.0, -12.0, 0, 1},
+
122 {-7.0, -12.0, 0, 1}, {-6.0, -12.0, 0, 1}, {-5.0, -12.0, 0, 1}, {-4.0, -12.0, 0, 1}, {-3.0, -12.0, 0, 1}, {-2.0, -12.0, 0, 1},
+
123 {-1.0, -12.0, 0, 1}, {0.0, -12.0, 0, 1}, {1.0, -12.0, 0, 1}, {2.0, -12.0, 0, 1}, {3.0, -12.0, 0, 1}, {4.0, -12.0, 0, 1},
+
124 {5.0, -12.0, 0, 1}, {6.0, -12.0, 0, 1}, {7.0, -12.0, 0, 1}, {8.0, -12.0, 0, 1}, {9.0, -12.0, 0, 1}, {10.0, -12.0, 0, 1},
+
125 {11.0, -12.0, 0, 1}, {17.0, -12.0, 0, 1}, {18.0, -12.0, 0, 1}, {19.0, -12.0, 0, 1}, {20.0, -12.0, 0, 1}, {21.0, -12.0, 0, 1},
+
126 {22.0, -12.0, 0, 1}, {23.0, -12.0, 0, 1}, {24.0, -12.0, 0, 1}, {25.0, -12.0, 0, 1}, {26.0, -12.0, 0, 1}, {27.0, -12.0, 0, 1},
+
127 {28.0, -12.0, 0, 1}, {29.0, -12.0, 0, 1}, {30.0, -12.0, 0, 1}, {31.0, -12.0, 0, 1}, {-32.0, -11.0, 0, 1}, {-31.0, -11.0, 0, 1},
+
128 {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1}, {-25.0, -11.0, 0, 1},
+
129 {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-21.0, -11.0, 0, 1}, {-20.0, -11.0, 0, 1}, {-19.0, -11.0, 0, 1},
+
130 {-18.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1}, {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1},
+
131 {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {-5.0, -11.0, 0, 1}, {-4.0, -11.0, 0, 1}, {-3.0, -11.0, 0, 1}, {-2.0, -11.0, 0, 1},
+
132 {-1.0, -11.0, 0, 1}, {0.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1}, {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1},
+
133 {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1}, {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1},
+
134 {11.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1}, {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1},
+
135 {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1}, {26.0, -11.0, 0, 1}, {27.0, -11.0, 0, 1},
+
136 {28.0, -11.0, 0, 1}, {29.0, -11.0, 0, 1}, {30.0, -11.0, 0, 1}, {31.0, -11.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1},
+
137 {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1}, {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1},
+
138 {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1}, {-21.0, -10.0, 0, 1}, {-20.0, -10.0, 0, 1}, {-19.0, -10.0, 0, 1},
+
139 {-18.0, -10.0, 0, 1}, {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1},
+
140 {-7.0, -10.0, 0, 1}, {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {-4.0, -10.0, 0, 1}, {-3.0, -10.0, 0, 1}, {-2.0, -10.0, 0, 1},
+
141 {-1.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1}, {4.0, -10.0, 0, 1},
+
142 {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1}, {10.0, -10.0, 0, 1},
+
143 {11.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1}, {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1},
+
144 {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1}, {26.0, -10.0, 0, 1}, {27.0, -10.0, 0, 1},
+
145 {28.0, -10.0, 0, 1}, {29.0, -10.0, 0, 1}, {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-20.0, -9.0, 0, 1},
+
146 {-19.0, -9.0, 0, 1}, {-18.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
147 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-4.0, -9.0, 0, 1}, {-3.0, -9.0, 0, 1},
+
148 {-2.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1}, {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1},
+
149 {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1}, {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1},
+
150 {10.0, -9.0, 0, 1}, {11.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1},
+
151 {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-19.0, -8.0, 0, 1}, {-18.0, -8.0, 0, 1}, {-12.0, -8.0, 0, 1}, {-11.0, -8.0, 0, 1},
+
152 {-10.0, -8.0, 0, 1}, {-9.0, -8.0, 0, 1}, {8.0, -8.0, 0, 1}, {9.0, -8.0, 0, 1}, {10.0, -8.0, 0, 1}, {11.0, -8.0, 0, 1},
+
153 {17.0, -8.0, 0, 1}, {18.0, -8.0, 0, 1}, {19.0, -8.0, 0, 1}, {20.0, -8.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1},
+
154 {-19.0, -7.0, 0, 1}, {-18.0, -7.0, 0, 1}, {-12.0, -7.0, 0, 1}, {-11.0, -7.0, 0, 1}, {-10.0, -7.0, 0, 1}, {-9.0, -7.0, 0, 1},
+
155 {8.0, -7.0, 0, 1}, {9.0, -7.0, 0, 1}, {10.0, -7.0, 0, 1}, {11.0, -7.0, 0, 1}, {17.0, -7.0, 0, 1}, {18.0, -7.0, 0, 1},
+
156 {19.0, -7.0, 0, 1}, {20.0, -7.0, 0, 1}, {-31.0, -6.0, 0, 1}, {-30.0, -6.0, 0, 1}, {-29.0, -6.0, 0, 1}, {-28.0, -6.0, 0, 1},
+
157 {-27.0, -6.0, 0, 1}, {-26.0, -6.0, 0, 1}, {-25.0, -6.0, 0, 1}, {-24.0, -6.0, 0, 1}, {-23.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1},
+
158 {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-19.0, -6.0, 0, 1}, {-18.0, -6.0, 0, 1}, {-12.0, -6.0, 0, 1}, {-11.0, -6.0, 0, 1},
+
159 {-10.0, -6.0, 0, 1}, {-9.0, -6.0, 0, 1}, {8.0, -6.0, 0, 1}, {9.0, -6.0, 0, 1}, {10.0, -6.0, 0, 1}, {11.0, -6.0, 0, 1},
+
160 {17.0, -6.0, 0, 1}, {18.0, -6.0, 0, 1}, {19.0, -6.0, 0, 1}, {20.0, -6.0, 0, 1}, {21.0, -6.0, 0, 1}, {22.0, -6.0, 0, 1},
+
161 {23.0, -6.0, 0, 1}, {24.0, -6.0, 0, 1}, {25.0, -6.0, 0, 1}, {26.0, -6.0, 0, 1}, {27.0, -6.0, 0, 1}, {28.0, -6.0, 0, 1},
+
162 {29.0, -6.0, 0, 1}, {30.0, -6.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1}, {-30.0, -5.0, 0, 1}, {-29.0, -5.0, 0, 1},
+
163 {-28.0, -5.0, 0, 1}, {-27.0, -5.0, 0, 1}, {-26.0, -5.0, 0, 1}, {-25.0, -5.0, 0, 1}, {-24.0, -5.0, 0, 1}, {-23.0, -5.0, 0, 1},
+
164 {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-19.0, -5.0, 0, 1}, {-18.0, -5.0, 0, 1}, {-12.0, -5.0, 0, 1},
+
165 {-11.0, -5.0, 0, 1}, {-10.0, -5.0, 0, 1}, {-9.0, -5.0, 0, 1}, {8.0, -5.0, 0, 1}, {9.0, -5.0, 0, 1}, {10.0, -5.0, 0, 1},
+
166 {11.0, -5.0, 0, 1}, {17.0, -5.0, 0, 1}, {18.0, -5.0, 0, 1}, {19.0, -5.0, 0, 1}, {20.0, -5.0, 0, 1}, {21.0, -5.0, 0, 1},
+
167 {22.0, -5.0, 0, 1}, {23.0, -5.0, 0, 1}, {24.0, -5.0, 0, 1}, {25.0, -5.0, 0, 1}, {26.0, -5.0, 0, 1}, {27.0, -5.0, 0, 1},
+
168 {28.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1}, {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
169 {-30.0, -4.0, 0, 1}, {-29.0, -4.0, 0, 1}, {-28.0, -4.0, 0, 1}, {-27.0, -4.0, 0, 1}, {-26.0, -4.0, 0, 1}, {-25.0, -4.0, 0, 1},
+
170 {-24.0, -4.0, 0, 1}, {-23.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-19.0, -4.0, 0, 1},
+
171 {-18.0, -4.0, 0, 1}, {-12.0, -4.0, 0, 1}, {-11.0, -4.0, 0, 1}, {-10.0, -4.0, 0, 1}, {-9.0, -4.0, 0, 1}, {8.0, -4.0, 0, 1},
+
172 {9.0, -4.0, 0, 1}, {10.0, -4.0, 0, 1}, {11.0, -4.0, 0, 1}, {17.0, -4.0, 0, 1}, {18.0, -4.0, 0, 1}, {19.0, -4.0, 0, 1},
+
173 {20.0, -4.0, 0, 1}, {21.0, -4.0, 0, 1}, {22.0, -4.0, 0, 1}, {23.0, -4.0, 0, 1}, {24.0, -4.0, 0, 1}, {25.0, -4.0, 0, 1},
+
174 {26.0, -4.0, 0, 1}, {27.0, -4.0, 0, 1}, {28.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1}, {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1},
+
175 {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1}, {-30.0, -3.0, 0, 1}, {-29.0, -3.0, 0, 1}, {-28.0, -3.0, 0, 1}, {-27.0, -3.0, 0, 1},
+
176 {-26.0, -3.0, 0, 1}, {-25.0, -3.0, 0, 1}, {-24.0, -3.0, 0, 1}, {-23.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1},
+
177 {-20.0, -3.0, 0, 1}, {-19.0, -3.0, 0, 1}, {-18.0, -3.0, 0, 1}, {-12.0, -3.0, 0, 1}, {-11.0, -3.0, 0, 1}, {-10.0, -3.0, 0, 1},
+
178 {-9.0, -3.0, 0, 1}, {8.0, -3.0, 0, 1}, {9.0, -3.0, 0, 1}, {10.0, -3.0, 0, 1}, {11.0, -3.0, 0, 1}, {17.0, -3.0, 0, 1},
+
179 {18.0, -3.0, 0, 1}, {19.0, -3.0, 0, 1}, {20.0, -3.0, 0, 1}, {21.0, -3.0, 0, 1}, {22.0, -3.0, 0, 1}, {23.0, -3.0, 0, 1},
+
180 {24.0, -3.0, 0, 1}, {25.0, -3.0, 0, 1}, {26.0, -3.0, 0, 1}, {27.0, -3.0, 0, 1}, {28.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
181 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-29.0, -2.0, 0, 1}, {-28.0, -2.0, 0, 1},
+
182 {-27.0, -2.0, 0, 1}, {-26.0, -2.0, 0, 1}, {-25.0, -2.0, 0, 1}, {-24.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1}, {-22.0, -2.0, 0, 1},
+
183 {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-19.0, -2.0, 0, 1}, {-18.0, -2.0, 0, 1}, {-12.0, -2.0, 0, 1}, {-11.0, -2.0, 0, 1},
+
184 {-10.0, -2.0, 0, 1}, {-9.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {10.0, -2.0, 0, 1}, {11.0, -2.0, 0, 1},
+
185 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
186 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {25.0, -2.0, 0, 1}, {26.0, -2.0, 0, 1}, {27.0, -2.0, 0, 1}, {28.0, -2.0, 0, 1},
+
187 {29.0, -2.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-19.0, -1.0, 0, 1}, {-18.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1},
+
188 {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1}, {-9.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {10.0, -1.0, 0, 1},
+
189 {11.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {-21.0, 0.0, 0, 1},
+
190 {-20.0, 0.0, 0, 1}, {-19.0, 0.0, 0, 1}, {-18.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1}, {-10.0, 0.0, 0, 1},
+
191 {-9.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {10.0, 0.0, 0, 1}, {11.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1},
+
192 {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
193 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
194 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-20.0, 1.0, 0, 1}, {-19.0, 1.0, 0, 1}, {-18.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1},
+
195 {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {8.0, 1.0, 0, 1}, {9.0, 1.0, 0, 1}, {10.0, 1.0, 0, 1},
+
196 {11.0, 1.0, 0, 1}, {17.0, 1.0, 0, 1}, {18.0, 1.0, 0, 1}, {19.0, 1.0, 0, 1}, {20.0, 1.0, 0, 1}, {21.0, 1.0, 0, 1},
+
197 {22.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1}, {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {27.0, 1.0, 0, 1},
+
198 {28.0, 1.0, 0, 1}, {29.0, 1.0, 0, 1}, {30.0, 1.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
199 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
200 {-23.0, 2.0, 0, 1}, {-22.0, 2.0, 0, 1}, {-21.0, 2.0, 0, 1}, {-20.0, 2.0, 0, 1}, {-19.0, 2.0, 0, 1}, {-18.0, 2.0, 0, 1},
+
201 {-12.0, 2.0, 0, 1}, {-11.0, 2.0, 0, 1}, {-10.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1}, {8.0, 2.0, 0, 1}, {9.0, 2.0, 0, 1},
+
202 {10.0, 2.0, 0, 1}, {11.0, 2.0, 0, 1}, {17.0, 2.0, 0, 1}, {18.0, 2.0, 0, 1}, {19.0, 2.0, 0, 1}, {20.0, 2.0, 0, 1},
+
203 {21.0, 2.0, 0, 1}, {22.0, 2.0, 0, 1}, {23.0, 2.0, 0, 1}, {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1},
+
204 {27.0, 2.0, 0, 1}, {28.0, 2.0, 0, 1}, {29.0, 2.0, 0, 1}, {30.0, 2.0, 0, 1}, {31.0, 2.0, 0, 1}, {-32.0, 3.0, 0, 1},
+
205 {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-29.0, 3.0, 0, 1}, {-28.0, 3.0, 0, 1}, {-27.0, 3.0, 0, 1}, {-26.0, 3.0, 0, 1},
+
206 {-25.0, 3.0, 0, 1}, {-24.0, 3.0, 0, 1}, {-23.0, 3.0, 0, 1}, {-22.0, 3.0, 0, 1}, {-21.0, 3.0, 0, 1}, {-20.0, 3.0, 0, 1},
+
207 {-19.0, 3.0, 0, 1}, {-18.0, 3.0, 0, 1}, {-12.0, 3.0, 0, 1}, {-11.0, 3.0, 0, 1}, {-10.0, 3.0, 0, 1}, {-9.0, 3.0, 0, 1},
+
208 {8.0, 3.0, 0, 1}, {9.0, 3.0, 0, 1}, {10.0, 3.0, 0, 1}, {11.0, 3.0, 0, 1}, {17.0, 3.0, 0, 1}, {18.0, 3.0, 0, 1},
+
209 {19.0, 3.0, 0, 1}, {20.0, 3.0, 0, 1}, {21.0, 3.0, 0, 1}, {22.0, 3.0, 0, 1}, {23.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1},
+
210 {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1}, {27.0, 3.0, 0, 1}, {28.0, 3.0, 0, 1}, {29.0, 3.0, 0, 1}, {30.0, 3.0, 0, 1},
+
211 {31.0, 3.0, 0, 1}, {-32.0, 4.0, 0, 1}, {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-29.0, 4.0, 0, 1}, {-28.0, 4.0, 0, 1},
+
212 {-27.0, 4.0, 0, 1}, {-26.0, 4.0, 0, 1}, {-25.0, 4.0, 0, 1}, {-24.0, 4.0, 0, 1}, {-23.0, 4.0, 0, 1}, {-22.0, 4.0, 0, 1},
+
213 {-21.0, 4.0, 0, 1}, {-20.0, 4.0, 0, 1}, {-19.0, 4.0, 0, 1}, {-18.0, 4.0, 0, 1}, {-12.0, 4.0, 0, 1}, {-11.0, 4.0, 0, 1},
+
214 {-10.0, 4.0, 0, 1}, {-9.0, 4.0, 0, 1}, {8.0, 4.0, 0, 1}, {9.0, 4.0, 0, 1}, {10.0, 4.0, 0, 1}, {11.0, 4.0, 0, 1},
+
215 {17.0, 4.0, 0, 1}, {18.0, 4.0, 0, 1}, {19.0, 4.0, 0, 1}, {20.0, 4.0, 0, 1}, {21.0, 4.0, 0, 1}, {22.0, 4.0, 0, 1},
+
216 {23.0, 4.0, 0, 1}, {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {27.0, 4.0, 0, 1}, {28.0, 4.0, 0, 1},
+
217 {29.0, 4.0, 0, 1}, {30.0, 4.0, 0, 1}, {31.0, 4.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-29.0, 5.0, 0, 1},
+
218 {-28.0, 5.0, 0, 1}, {-27.0, 5.0, 0, 1}, {-26.0, 5.0, 0, 1}, {-25.0, 5.0, 0, 1}, {-24.0, 5.0, 0, 1}, {-23.0, 5.0, 0, 1},
+
219 {-22.0, 5.0, 0, 1}, {-21.0, 5.0, 0, 1}, {-20.0, 5.0, 0, 1}, {-19.0, 5.0, 0, 1}, {-18.0, 5.0, 0, 1}, {-12.0, 5.0, 0, 1},
+
220 {-11.0, 5.0, 0, 1}, {-10.0, 5.0, 0, 1}, {-9.0, 5.0, 0, 1}, {8.0, 5.0, 0, 1}, {9.0, 5.0, 0, 1}, {10.0, 5.0, 0, 1},
+
221 {11.0, 5.0, 0, 1}, {17.0, 5.0, 0, 1}, {18.0, 5.0, 0, 1}, {19.0, 5.0, 0, 1}, {20.0, 5.0, 0, 1}, {21.0, 5.0, 0, 1},
+
222 {22.0, 5.0, 0, 1}, {23.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1}, {27.0, 5.0, 0, 1},
+
223 {28.0, 5.0, 0, 1}, {29.0, 5.0, 0, 1}, {30.0, 5.0, 0, 1}, {-21.0, 6.0, 0, 1}, {-20.0, 6.0, 0, 1}, {-19.0, 6.0, 0, 1},
+
224 {-18.0, 6.0, 0, 1}, {-12.0, 6.0, 0, 1}, {-11.0, 6.0, 0, 1}, {-10.0, 6.0, 0, 1}, {-9.0, 6.0, 0, 1}, {8.0, 6.0, 0, 1},
+
225 {9.0, 6.0, 0, 1}, {10.0, 6.0, 0, 1}, {11.0, 6.0, 0, 1}, {17.0, 6.0, 0, 1}, {18.0, 6.0, 0, 1}, {19.0, 6.0, 0, 1},
+
226 {20.0, 6.0, 0, 1}, {-21.0, 7.0, 0, 1}, {-20.0, 7.0, 0, 1}, {-19.0, 7.0, 0, 1}, {-18.0, 7.0, 0, 1}, {-12.0, 7.0, 0, 1},
+
227 {-11.0, 7.0, 0, 1}, {-10.0, 7.0, 0, 1}, {-9.0, 7.0, 0, 1}, {8.0, 7.0, 0, 1}, {9.0, 7.0, 0, 1}, {10.0, 7.0, 0, 1},
+
228 {11.0, 7.0, 0, 1}, {17.0, 7.0, 0, 1}, {18.0, 7.0, 0, 1}, {19.0, 7.0, 0, 1}, {20.0, 7.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
229 {-30.0, 8.0, 0, 1}, {-29.0, 8.0, 0, 1}, {-28.0, 8.0, 0, 1}, {-27.0, 8.0, 0, 1}, {-26.0, 8.0, 0, 1}, {-25.0, 8.0, 0, 1},
+
230 {-24.0, 8.0, 0, 1}, {-23.0, 8.0, 0, 1}, {-22.0, 8.0, 0, 1}, {-21.0, 8.0, 0, 1}, {-20.0, 8.0, 0, 1}, {-19.0, 8.0, 0, 1},
+
231 {-18.0, 8.0, 0, 1}, {-12.0, 8.0, 0, 1}, {-11.0, 8.0, 0, 1}, {-10.0, 8.0, 0, 1}, {-9.0, 8.0, 0, 1}, {-8.0, 8.0, 0, 1},
+
232 {-7.0, 8.0, 0, 1}, {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-3.0, 8.0, 0, 1}, {-2.0, 8.0, 0, 1},
+
233 {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1}, {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1},
+
234 {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1}, {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1},
+
235 {11.0, 8.0, 0, 1}, {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1},
+
236 {22.0, 8.0, 0, 1}, {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {27.0, 8.0, 0, 1},
+
237 {28.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-29.0, 9.0, 0, 1},
+
238 {-28.0, 9.0, 0, 1}, {-27.0, 9.0, 0, 1}, {-26.0, 9.0, 0, 1}, {-25.0, 9.0, 0, 1}, {-24.0, 9.0, 0, 1}, {-23.0, 9.0, 0, 1},
+
239 {-22.0, 9.0, 0, 1}, {-21.0, 9.0, 0, 1}, {-20.0, 9.0, 0, 1}, {-19.0, 9.0, 0, 1}, {-18.0, 9.0, 0, 1}, {-12.0, 9.0, 0, 1},
+
240 {-11.0, 9.0, 0, 1}, {-10.0, 9.0, 0, 1}, {-9.0, 9.0, 0, 1}, {-8.0, 9.0, 0, 1}, {-7.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1},
+
241 {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {-3.0, 9.0, 0, 1}, {-2.0, 9.0, 0, 1}, {-1.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1},
+
242 {1.0, 9.0, 0, 1}, {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1},
+
243 {7.0, 9.0, 0, 1}, {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {11.0, 9.0, 0, 1}, {17.0, 9.0, 0, 1},
+
244 {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1}, {23.0, 9.0, 0, 1},
+
245 {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {26.0, 9.0, 0, 1}, {27.0, 9.0, 0, 1}, {28.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1},
+
246 {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1}, {-29.0, 10.0, 0, 1},
+
247 {-28.0, 10.0, 0, 1}, {-27.0, 10.0, 0, 1}, {-26.0, 10.0, 0, 1}, {-25.0, 10.0, 0, 1}, {-24.0, 10.0, 0, 1}, {-23.0, 10.0, 0, 1},
+
248 {-22.0, 10.0, 0, 1}, {-21.0, 10.0, 0, 1}, {-20.0, 10.0, 0, 1}, {-19.0, 10.0, 0, 1}, {-18.0, 10.0, 0, 1}, {-12.0, 10.0, 0, 1},
+
249 {-11.0, 10.0, 0, 1}, {-10.0, 10.0, 0, 1}, {-9.0, 10.0, 0, 1}, {-8.0, 10.0, 0, 1}, {-7.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1},
+
250 {-5.0, 10.0, 0, 1}, {-4.0, 10.0, 0, 1}, {-3.0, 10.0, 0, 1}, {-2.0, 10.0, 0, 1}, {-1.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1},
+
251 {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1}, {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1},
+
252 {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1}, {11.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1},
+
253 {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1}, {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1},
+
254 {24.0, 10.0, 0, 1}, {25.0, 10.0, 0, 1}, {26.0, 10.0, 0, 1}, {27.0, 10.0, 0, 1}, {28.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
255 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {-32.0, 11.0, 0, 1}, {-31.0, 11.0, 0, 1}, {-30.0, 11.0, 0, 1}, {-29.0, 11.0, 0, 1},
+
256 {-28.0, 11.0, 0, 1}, {-27.0, 11.0, 0, 1}, {-26.0, 11.0, 0, 1}, {-25.0, 11.0, 0, 1}, {-24.0, 11.0, 0, 1}, {-23.0, 11.0, 0, 1},
+
257 {-22.0, 11.0, 0, 1}, {-21.0, 11.0, 0, 1}, {-20.0, 11.0, 0, 1}, {-19.0, 11.0, 0, 1}, {-18.0, 11.0, 0, 1}, {-12.0, 11.0, 0, 1},
+
258 {-11.0, 11.0, 0, 1}, {-10.0, 11.0, 0, 1}, {-9.0, 11.0, 0, 1}, {-8.0, 11.0, 0, 1}, {-7.0, 11.0, 0, 1}, {-6.0, 11.0, 0, 1},
+
259 {-5.0, 11.0, 0, 1}, {-4.0, 11.0, 0, 1}, {-3.0, 11.0, 0, 1}, {-2.0, 11.0, 0, 1}, {-1.0, 11.0, 0, 1}, {0.0, 11.0, 0, 1},
+
260 {1.0, 11.0, 0, 1}, {2.0, 11.0, 0, 1}, {3.0, 11.0, 0, 1}, {4.0, 11.0, 0, 1}, {5.0, 11.0, 0, 1}, {6.0, 11.0, 0, 1},
+
261 {7.0, 11.0, 0, 1}, {8.0, 11.0, 0, 1}, {9.0, 11.0, 0, 1}, {10.0, 11.0, 0, 1}, {11.0, 11.0, 0, 1}, {17.0, 11.0, 0, 1},
+
262 {18.0, 11.0, 0, 1}, {19.0, 11.0, 0, 1}, {20.0, 11.0, 0, 1}, {21.0, 11.0, 0, 1}, {22.0, 11.0, 0, 1}, {23.0, 11.0, 0, 1},
+
263 {24.0, 11.0, 0, 1}, {25.0, 11.0, 0, 1}, {26.0, 11.0, 0, 1}, {27.0, 11.0, 0, 1}, {28.0, 11.0, 0, 1}, {29.0, 11.0, 0, 1},
+
264 {30.0, 11.0, 0, 1}, {31.0, 11.0, 0, 1}, {-31.0, 12.0, 0, 1}, {-30.0, 12.0, 0, 1}, {-29.0, 12.0, 0, 1}, {-28.0, 12.0, 0, 1},
+
265 {-27.0, 12.0, 0, 1}, {-26.0, 12.0, 0, 1}, {-25.0, 12.0, 0, 1}, {-24.0, 12.0, 0, 1}, {-23.0, 12.0, 0, 1}, {-22.0, 12.0, 0, 1},
+
266 {-21.0, 12.0, 0, 1}, {-20.0, 12.0, 0, 1}, {-19.0, 12.0, 0, 1}, {-18.0, 12.0, 0, 1}, {17.0, 12.0, 0, 1}, {18.0, 12.0, 0, 1},
+
267 {19.0, 12.0, 0, 1}, {20.0, 12.0, 0, 1}, {21.0, 12.0, 0, 1}, {22.0, 12.0, 0, 1}, {23.0, 12.0, 0, 1}, {24.0, 12.0, 0, 1},
+
268 {25.0, 12.0, 0, 1}, {26.0, 12.0, 0, 1}, {27.0, 12.0, 0, 1}, {28.0, 12.0, 0, 1}, {29.0, 12.0, 0, 1}, {30.0, 12.0, 0, 1},
+
269 {-21.0, 13.0, 0, 1}, {-20.0, 13.0, 0, 1}, {-19.0, 13.0, 0, 1}, {-18.0, 13.0, 0, 1}, {17.0, 13.0, 0, 1}, {18.0, 13.0, 0, 1},
+
270 {19.0, 13.0, 0, 1}, {20.0, 13.0, 0, 1}, {-21.0, 14.0, 0, 1}, {-20.0, 14.0, 0, 1}, {-19.0, 14.0, 0, 1}, {-18.0, 14.0, 0, 1},
+
271 {17.0, 14.0, 0, 1}, {18.0, 14.0, 0, 1}, {19.0, 14.0, 0, 1}, {20.0, 14.0, 0, 1}, {-21.0, 15.0, 0, 1}, {-20.0, 15.0, 0, 1},
+
272 {-19.0, 15.0, 0, 1}, {-18.0, 15.0, 0, 1}, {17.0, 15.0, 0, 1}, {18.0, 15.0, 0, 1}, {19.0, 15.0, 0, 1}, {20.0, 15.0, 0, 1},
+
273 {-21.0, 16.0, 0, 1}, {-20.0, 16.0, 0, 1}, {-19.0, 16.0, 0, 1}, {-18.0, 16.0, 0, 1}, {17.0, 16.0, 0, 1}, {18.0, 16.0, 0, 1},
+
274 {19.0, 16.0, 0, 1}, {20.0, 16.0, 0, 1}, {-21.0, 17.0, 0, 1}, {-20.0, 17.0, 0, 1}, {-19.0, 17.0, 0, 1}, {-18.0, 17.0, 0, 1},
+
275 {-17.0, 17.0, 0, 1}, {-16.0, 17.0, 0, 1}, {-15.0, 17.0, 0, 1}, {-14.0, 17.0, 0, 1}, {-13.0, 17.0, 0, 1}, {-12.0, 17.0, 0, 1},
+
276 {-11.0, 17.0, 0, 1}, {-10.0, 17.0, 0, 1}, {-9.0, 17.0, 0, 1}, {-8.0, 17.0, 0, 1}, {-7.0, 17.0, 0, 1}, {-6.0, 17.0, 0, 1},
+
277 {-5.0, 17.0, 0, 1}, {-4.0, 17.0, 0, 1}, {-3.0, 17.0, 0, 1}, {-2.0, 17.0, 0, 1}, {-1.0, 17.0, 0, 1}, {0.0, 17.0, 0, 1},
+
278 {1.0, 17.0, 0, 1}, {2.0, 17.0, 0, 1}, {3.0, 17.0, 0, 1}, {4.0, 17.0, 0, 1}, {5.0, 17.0, 0, 1}, {6.0, 17.0, 0, 1},
+
279 {7.0, 17.0, 0, 1}, {8.0, 17.0, 0, 1}, {9.0, 17.0, 0, 1}, {10.0, 17.0, 0, 1}, {11.0, 17.0, 0, 1}, {12.0, 17.0, 0, 1},
+
280 {13.0, 17.0, 0, 1}, {14.0, 17.0, 0, 1}, {15.0, 17.0, 0, 1}, {16.0, 17.0, 0, 1}, {17.0, 17.0, 0, 1}, {18.0, 17.0, 0, 1},
+
281 {19.0, 17.0, 0, 1}, {20.0, 17.0, 0, 1}, {-21.0, 18.0, 0, 1}, {-20.0, 18.0, 0, 1}, {-19.0, 18.0, 0, 1}, {-18.0, 18.0, 0, 1},
+
282 {-17.0, 18.0, 0, 1}, {-16.0, 18.0, 0, 1}, {-15.0, 18.0, 0, 1}, {-14.0, 18.0, 0, 1}, {-13.0, 18.0, 0, 1}, {-12.0, 18.0, 0, 1},
+
283 {-11.0, 18.0, 0, 1}, {-10.0, 18.0, 0, 1}, {-9.0, 18.0, 0, 1}, {-8.0, 18.0, 0, 1}, {-7.0, 18.0, 0, 1}, {-6.0, 18.0, 0, 1},
+
284 {-5.0, 18.0, 0, 1}, {-4.0, 18.0, 0, 1}, {-3.0, 18.0, 0, 1}, {-2.0, 18.0, 0, 1}, {-1.0, 18.0, 0, 1}, {0.0, 18.0, 0, 1},
+
285 {1.0, 18.0, 0, 1}, {2.0, 18.0, 0, 1}, {3.0, 18.0, 0, 1}, {4.0, 18.0, 0, 1}, {5.0, 18.0, 0, 1}, {6.0, 18.0, 0, 1},
+
286 {7.0, 18.0, 0, 1}, {8.0, 18.0, 0, 1}, {9.0, 18.0, 0, 1}, {10.0, 18.0, 0, 1}, {11.0, 18.0, 0, 1}, {12.0, 18.0, 0, 1},
+
287 {13.0, 18.0, 0, 1}, {14.0, 18.0, 0, 1}, {15.0, 18.0, 0, 1}, {16.0, 18.0, 0, 1}, {17.0, 18.0, 0, 1}, {18.0, 18.0, 0, 1},
+
288 {19.0, 18.0, 0, 1}, {20.0, 18.0, 0, 1}, {-21.0, 19.0, 0, 1}, {-20.0, 19.0, 0, 1}, {-19.0, 19.0, 0, 1}, {-18.0, 19.0, 0, 1},
+
289 {-17.0, 19.0, 0, 1}, {-16.0, 19.0, 0, 1}, {-15.0, 19.0, 0, 1}, {-14.0, 19.0, 0, 1}, {-13.0, 19.0, 0, 1}, {-12.0, 19.0, 0, 1},
+
290 {-11.0, 19.0, 0, 1}, {-10.0, 19.0, 0, 1}, {-9.0, 19.0, 0, 1}, {-8.0, 19.0, 0, 1}, {-7.0, 19.0, 0, 1}, {-6.0, 19.0, 0, 1},
+
291 {-5.0, 19.0, 0, 1}, {-4.0, 19.0, 0, 1}, {-3.0, 19.0, 0, 1}, {-2.0, 19.0, 0, 1}, {-1.0, 19.0, 0, 1}, {0.0, 19.0, 0, 1},
+
292 {1.0, 19.0, 0, 1}, {2.0, 19.0, 0, 1}, {3.0, 19.0, 0, 1}, {4.0, 19.0, 0, 1}, {5.0, 19.0, 0, 1}, {6.0, 19.0, 0, 1},
+
293 {7.0, 19.0, 0, 1}, {8.0, 19.0, 0, 1}, {9.0, 19.0, 0, 1}, {10.0, 19.0, 0, 1}, {11.0, 19.0, 0, 1}, {12.0, 19.0, 0, 1},
+
294 {13.0, 19.0, 0, 1}, {14.0, 19.0, 0, 1}, {15.0, 19.0, 0, 1}, {16.0, 19.0, 0, 1}, {17.0, 19.0, 0, 1}, {18.0, 19.0, 0, 1},
+
295 {19.0, 19.0, 0, 1}, {20.0, 19.0, 0, 1}, {-21.0, 20.0, 0, 1}, {-20.0, 20.0, 0, 1}, {-19.0, 20.0, 0, 1}, {-18.0, 20.0, 0, 1},
+
296 {-17.0, 20.0, 0, 1}, {-16.0, 20.0, 0, 1}, {-15.0, 20.0, 0, 1}, {-14.0, 20.0, 0, 1}, {-13.0, 20.0, 0, 1}, {-12.0, 20.0, 0, 1},
+
297 {-11.0, 20.0, 0, 1}, {-10.0, 20.0, 0, 1}, {-9.0, 20.0, 0, 1}, {-8.0, 20.0, 0, 1}, {-7.0, 20.0, 0, 1}, {-6.0, 20.0, 0, 1},
+
298 {-5.0, 20.0, 0, 1}, {-4.0, 20.0, 0, 1}, {-3.0, 20.0, 0, 1}, {-2.0, 20.0, 0, 1}, {-1.0, 20.0, 0, 1}, {0.0, 20.0, 0, 1},
+
299 {1.0, 20.0, 0, 1}, {2.0, 20.0, 0, 1}, {3.0, 20.0, 0, 1}, {4.0, 20.0, 0, 1}, {5.0, 20.0, 0, 1}, {6.0, 20.0, 0, 1},
+
300 {7.0, 20.0, 0, 1}, {8.0, 20.0, 0, 1}, {9.0, 20.0, 0, 1}, {10.0, 20.0, 0, 1}, {11.0, 20.0, 0, 1}, {12.0, 20.0, 0, 1},
+
301 {13.0, 20.0, 0, 1}, {14.0, 20.0, 0, 1}, {15.0, 20.0, 0, 1}, {16.0, 20.0, 0, 1}, {17.0, 20.0, 0, 1}, {18.0, 20.0, 0, 1},
+
302 {19.0, 20.0, 0, 1}, {20.0, 20.0, 0, 1}, {-13.0, 21.0, 0, 1}, {-12.0, 21.0, 0, 1}, {-11.0, 21.0, 0, 1}, {-10.0, 21.0, 0, 1},
+
303 {-6.0, 21.0, 0, 1}, {-5.0, 21.0, 0, 1}, {-4.0, 21.0, 0, 1}, {-3.0, 21.0, 0, 1}, {-2.0, 21.0, 0, 1}, {1.0, 21.0, 0, 1},
+
304 {2.0, 21.0, 0, 1}, {3.0, 21.0, 0, 1}, {4.0, 21.0, 0, 1}, {5.0, 21.0, 0, 1}, {8.0, 21.0, 0, 1}, {9.0, 21.0, 0, 1},
+
305 {10.0, 21.0, 0, 1}, {11.0, 21.0, 0, 1}, {12.0, 21.0, 0, 1}, {-13.0, 22.0, 0, 1}, {-12.0, 22.0, 0, 1}, {-11.0, 22.0, 0, 1},
+
306 {-10.0, 22.0, 0, 1}, {-6.0, 22.0, 0, 1}, {-5.0, 22.0, 0, 1}, {-4.0, 22.0, 0, 1}, {-3.0, 22.0, 0, 1}, {-2.0, 22.0, 0, 1},
+
307 {1.0, 22.0, 0, 1}, {2.0, 22.0, 0, 1}, {3.0, 22.0, 0, 1}, {4.0, 22.0, 0, 1}, {5.0, 22.0, 0, 1}, {8.0, 22.0, 0, 1},
+
308 {9.0, 22.0, 0, 1}, {10.0, 22.0, 0, 1}, {11.0, 22.0, 0, 1}, {12.0, 22.0, 0, 1}, {-13.0, 23.0, 0, 1}, {-12.0, 23.0, 0, 1},
+
309 {-11.0, 23.0, 0, 1}, {-10.0, 23.0, 0, 1}, {-6.0, 23.0, 0, 1}, {-5.0, 23.0, 0, 1}, {-4.0, 23.0, 0, 1}, {-3.0, 23.0, 0, 1},
+
310 {-2.0, 23.0, 0, 1}, {1.0, 23.0, 0, 1}, {2.0, 23.0, 0, 1}, {3.0, 23.0, 0, 1}, {4.0, 23.0, 0, 1}, {5.0, 23.0, 0, 1},
+
311 {8.0, 23.0, 0, 1}, {9.0, 23.0, 0, 1}, {10.0, 23.0, 0, 1}, {11.0, 23.0, 0, 1}, {12.0, 23.0, 0, 1}, {-13.0, 24.0, 0, 1},
+
312 {-12.0, 24.0, 0, 1}, {-11.0, 24.0, 0, 1}, {-10.0, 24.0, 0, 1}, {-6.0, 24.0, 0, 1}, {-5.0, 24.0, 0, 1}, {-4.0, 24.0, 0, 1},
+
313 {-3.0, 24.0, 0, 1}, {-2.0, 24.0, 0, 1}, {1.0, 24.0, 0, 1}, {2.0, 24.0, 0, 1}, {3.0, 24.0, 0, 1}, {4.0, 24.0, 0, 1},
+
314 {5.0, 24.0, 0, 1}, {8.0, 24.0, 0, 1}, {9.0, 24.0, 0, 1}, {10.0, 24.0, 0, 1}, {11.0, 24.0, 0, 1}, {12.0, 24.0, 0, 1},
+
315 {-13.0, 25.0, 0, 1}, {-12.0, 25.0, 0, 1}, {-11.0, 25.0, 0, 1}, {-10.0, 25.0, 0, 1}, {-6.0, 25.0, 0, 1}, {-5.0, 25.0, 0, 1},
+
316 {-4.0, 25.0, 0, 1}, {-3.0, 25.0, 0, 1}, {-2.0, 25.0, 0, 1}, {1.0, 25.0, 0, 1}, {2.0, 25.0, 0, 1}, {3.0, 25.0, 0, 1},
+
317 {4.0, 25.0, 0, 1}, {5.0, 25.0, 0, 1}, {8.0, 25.0, 0, 1}, {9.0, 25.0, 0, 1}, {10.0, 25.0, 0, 1}, {11.0, 25.0, 0, 1},
+
318 {12.0, 25.0, 0, 1}, {-13.0, 26.0, 0, 1}, {-12.0, 26.0, 0, 1}, {-11.0, 26.0, 0, 1}, {-10.0, 26.0, 0, 1}, {-6.0, 26.0, 0, 1},
+
319 {-5.0, 26.0, 0, 1}, {-4.0, 26.0, 0, 1}, {-3.0, 26.0, 0, 1}, {-2.0, 26.0, 0, 1}, {1.0, 26.0, 0, 1}, {2.0, 26.0, 0, 1},
+
320 {3.0, 26.0, 0, 1}, {4.0, 26.0, 0, 1}, {5.0, 26.0, 0, 1}, {8.0, 26.0, 0, 1}, {9.0, 26.0, 0, 1}, {10.0, 26.0, 0, 1},
+
321 {11.0, 26.0, 0, 1}, {12.0, 26.0, 0, 1}, {-13.0, 27.0, 0, 1}, {-12.0, 27.0, 0, 1}, {-11.0, 27.0, 0, 1}, {-10.0, 27.0, 0, 1},
+
322 {-6.0, 27.0, 0, 1}, {-5.0, 27.0, 0, 1}, {-4.0, 27.0, 0, 1}, {-3.0, 27.0, 0, 1}, {-2.0, 27.0, 0, 1}, {1.0, 27.0, 0, 1},
+
323 {2.0, 27.0, 0, 1}, {3.0, 27.0, 0, 1}, {4.0, 27.0, 0, 1}, {5.0, 27.0, 0, 1}, {8.0, 27.0, 0, 1}, {9.0, 27.0, 0, 1},
+
324 {10.0, 27.0, 0, 1}, {11.0, 27.0, 0, 1}, {12.0, 27.0, 0, 1}, {-13.0, 28.0, 0, 1}, {-12.0, 28.0, 0, 1}, {-11.0, 28.0, 0, 1},
+
325 {-10.0, 28.0, 0, 1}, {-6.0, 28.0, 0, 1}, {-5.0, 28.0, 0, 1}, {-4.0, 28.0, 0, 1}, {-3.0, 28.0, 0, 1}, {-2.0, 28.0, 0, 1},
+
326 {1.0, 28.0, 0, 1}, {2.0, 28.0, 0, 1}, {3.0, 28.0, 0, 1}, {4.0, 28.0, 0, 1}, {5.0, 28.0, 0, 1}, {8.0, 28.0, 0, 1},
+
327 {9.0, 28.0, 0, 1}, {10.0, 28.0, 0, 1}, {11.0, 28.0, 0, 1}, {12.0, 28.0, 0, 1}, {-13.0, 29.0, 0, 1}, {-12.0, 29.0, 0, 1},
+
328 {-11.0, 29.0, 0, 1}, {-10.0, 29.0, 0, 1}, {-6.0, 29.0, 0, 1}, {-5.0, 29.0, 0, 1}, {-4.0, 29.0, 0, 1}, {-3.0, 29.0, 0, 1},
+
329 {-2.0, 29.0, 0, 1}, {1.0, 29.0, 0, 1}, {2.0, 29.0, 0, 1}, {3.0, 29.0, 0, 1}, {4.0, 29.0, 0, 1}, {5.0, 29.0, 0, 1},
+
330 {8.0, 29.0, 0, 1}, {9.0, 29.0, 0, 1}, {10.0, 29.0, 0, 1}, {11.0, 29.0, 0, 1}, {12.0, 29.0, 0, 1}, {-13.0, 30.0, 0, 1},
+
331 {-12.0, 30.0, 0, 1}, {-11.0, 30.0, 0, 1}, {-10.0, 30.0, 0, 1}, {-6.0, 30.0, 0, 1}, {-5.0, 30.0, 0, 1}, {-4.0, 30.0, 0, 1},
+
332 {-3.0, 30.0, 0, 1}, {1.0, 30.0, 0, 1}, {2.0, 30.0, 0, 1}, {3.0, 30.0, 0, 1}, {4.0, 30.0, 0, 1}, {5.0, 30.0, 0, 1},
+
333 {9.0, 30.0, 0, 1}, {10.0, 30.0, 0, 1}, {11.0, 30.0, 0, 1}, {12.0, 30.0, 0, 1}, {-12.0, 31.0, 0, 1}, {-11.0, 31.0, 0, 1},
+
334 {-10.0, 31.0, 0, 1}, {-5.0, 31.0, 0, 1}, {-4.0, 31.0, 0, 1}, {-3.0, 31.0, 0, 1}, {2.0, 31.0, 0, 1}, {3.0, 31.0, 0, 1},
+
335 {4.0, 31.0, 0, 1}, {9.0, 31.0, 0, 1}, {10.0, 31.0, 0, 1}, {11.0, 31.0, 0, 1}
+
336};
+
337
+
338#endif // CONFIG_3D_OBJECT_CUSTOM
+
const float image_to_3d_matrix_custom[1732][4]
+
const uint8_t image_to_bmp_array_custom[512]
+ +
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html new file mode 100644 index 0000000..bf63556 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html @@ -0,0 +1,275 @@ + + + + + + + +ESP-IDF Firmware: cube_matrix.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cube_matrix.h File Reference
+
+
+
#include <stdint.h>
+#include "graphics_support.h"
+#include "sdkconfig.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Macros

#define CUBE_POINTS   8
#define CUBE_EDGES   12
#define CUBE_SIDE   (SSD1606_Y_CENTER / 2)
#define OBJECT_3D_CUBE   0
+ + + + +

+Variables

const float cube_vectors_3d [8][MATRIX_SIZE]
const uint8_t cube_dict_line_begin [12] = {3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5}
const uint8_t cube_dict_line_end [12] = {1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4}
+

Macro Definition Documentation

+ +

◆ CUBE_EDGES

+ +
+
+ + + + +
#define CUBE_EDGES   12
+
+
+ +

◆ CUBE_POINTS

+ +
+
+ + + + +
#define CUBE_POINTS   8
+
+
+ +

◆ CUBE_SIDE

+ +
+
+ + + + +
#define CUBE_SIDE   (SSD1606_Y_CENTER / 2)
+
+
+ +

◆ OBJECT_3D_CUBE

+ +
+
+ + + + +
#define OBJECT_3D_CUBE   0
+
+
+

Variable Documentation

+ +

◆ cube_dict_line_begin

+ +
+
+ + + + +
const uint8_t cube_dict_line_begin[12] = {3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5}
+
+ +

Definition at line 40 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h.

+
40{3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5};
+
+
+
+ +

◆ cube_dict_line_end

+ +
+
+ + + + +
const uint8_t cube_dict_line_end[12] = {1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4}
+
+ +

Definition at line 41 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h.

+
41{1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4};
+
+
+
+ +

◆ cube_vectors_3d

+ +
+
+ + + + +
const float cube_vectors_3d[8][MATRIX_SIZE]
+
+Initial value:
=
+
+
{ {- (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{- (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1},
+
{- (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{- (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1}
+
}
+ +
+

Definition at line 23 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h.

+
24{ {-CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // -1, -1, -1
+
25 {-CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // -1, -1, 1
+
26 {-CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // -1, 1, -1
+
27 {-CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1}, // -1, 1, 1
+
28 { CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // 1, -1, -1
+
29 { CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // 1, -1, 1
+
30 { CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // 1, 1, -1
+
31 { CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1} // 1, 1, 1
+
32};
+ +
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js new file mode 100644 index 0000000..231b9cc --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js @@ -0,0 +1,10 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h = +[ + [ "CUBE_EDGES", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a1cb9c677d7b7ad59b4b6599b71fedfed", null ], + [ "CUBE_POINTS", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#ab5bf716bcd3251b5a4ec7133e6e66c87", null ], + [ "CUBE_SIDE", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a43df6fe9cd9f3c33482009f8203a8c84", null ], + [ "OBJECT_3D_CUBE", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#aa25bdff311063f492fd542bef921d064", null ], + [ "cube_dict_line_begin", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a1db8912a1003fad64b1007dee9100146", null ], + [ "cube_dict_line_end", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a760b44bf3eb48533edd79d1130602c07", null ], + [ "cube_vectors_3d", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a8aa62ff0adfa7629f7a3f606af7257aa", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 new file mode 100644 index 0000000..0a5507b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 @@ -0,0 +1 @@ +332f16a31aff67f6a37dd3471c2f5297 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg new file mode 100644 index 0000000..39df1b0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +cube_matrix.h + + +Node1 + + +cube_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +graphics_support.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg new file mode 100644 index 0000000..4e69b41 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +cube_matrix.h + + +Node1 + + +cube_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +graphics_support.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html new file mode 100644 index 0000000..25eda73 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html @@ -0,0 +1,166 @@ + + + + + + + +ESP-IDF Firmware: cube_matrix.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include <stdint.h>
+
10#include "graphics_support.h"
+
11#include "sdkconfig.h"
+
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
18#define CUBE_POINTS 8
+
19#define CUBE_EDGES 12
+
20#define CUBE_SIDE (SSD1606_Y_CENTER / 2)
+
21
+
22// X Y Z coordinates of the cube centered to (0, 0, 0)
+
+ +
24 // X Y Z W
+
25{ {-CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // -1, -1, -1
+
26 {-CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // -1, -1, 1
+
27 {-CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // -1, 1, -1
+
28 {-CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1}, // -1, 1, 1
+
29 { CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // 1, -1, -1
+
30 { CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // 1, -1, 1
+
31 { CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // 1, 1, -1
+
32 { CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1} // 1, 1, 1
+
33};
+
+
34
+
35// Dictionary for 3d cube edges displaying
+
36// Cube edges cube_vectors_3d[3] <-> cube_vectors_3d[1]
+
37// cube_vectors_3d[3] <-> cube_vectors_3d[7]
+
38// cube_vectors_3d[5] <-> cube_vectors_3d[7]
+
39// cube_vectors_3d[5] <-> cube_vectors_3d[1]....
+
40const uint8_t cube_dict_line_begin[CUBE_EDGES] = {3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5};
+
41const uint8_t cube_dict_line_end[CUBE_EDGES] = {1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4};
+
42
+
43#ifdef CONFIG_3D_OBJECT_CUBE
+
44#define OBJECT_3D_CUBE 1
+
45#else
+
46#define OBJECT_3D_CUBE 0
+
47#endif
+
48
+
49#ifdef __cplusplus
+
50}
+
51#endif
+ + + + + + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html new file mode 100644 index 0000000..60d2ab0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_logo.c File Reference
+
+
+
#include "esp_logo.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 new file mode 100644 index 0000000..1ff4bca --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 @@ -0,0 +1 @@ +0a7b3413ba86f2f26b7f5dbaaaced31c \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg new file mode 100644 index 0000000..d14e482 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +esp_logo.c + + +Node1 + + +esp_logo.c + + + + + +Node2 + + +esp_logo.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg new file mode 100644 index 0000000..130b087 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +esp_logo.c + + +Node1 + + +esp_logo.c + + + + + +Node2 + + +esp_logo.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html new file mode 100644 index 0000000..fb54c87 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html @@ -0,0 +1,399 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "esp_logo.h"
+
8
+
9#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+
10
+
11const uint8_t image_bmp_array_esp_logo[512] = {
+
12
+
13 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
14 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
15 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
16 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00,
+
17 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00,
+
18 0x00, 0x00, 0x0f, 0xc0, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x0c, 0x1f, 0xfc, 0x07, 0xfe, 0x00, 0x00,
+
19 0x00, 0x0c, 0x3f, 0xff, 0x03, 0xff, 0x00, 0x00, 0x00, 0x18, 0x7f, 0xff, 0xc0, 0xff, 0xc0, 0x00,
+
20 0x00, 0x38, 0x7f, 0xff, 0xf0, 0x7f, 0xe0, 0x00, 0x00, 0x70, 0x7f, 0xff, 0xf8, 0x3f, 0xe0, 0x00,
+
21 0x00, 0x60, 0x7f, 0xff, 0xfe, 0x0f, 0xf0, 0x00, 0x00, 0xe0, 0x01, 0xff, 0xff, 0x07, 0xf8, 0x00,
+
22 0x00, 0xc0, 0x00, 0x3f, 0xff, 0x83, 0xfc, 0x00, 0x01, 0xc0, 0x00, 0x07, 0xff, 0xe1, 0xfc, 0x00,
+
23 0x01, 0x81, 0xfc, 0x01, 0xff, 0xf0, 0xfe, 0x00, 0x01, 0x87, 0xff, 0xc0, 0x7f, 0xf8, 0xfe, 0x00,
+
24 0x03, 0x0f, 0xff, 0xf0, 0x3f, 0xf8, 0x7e, 0x00, 0x03, 0x1f, 0xff, 0xfc, 0x1f, 0xfc, 0x3f, 0x00,
+
25 0x03, 0x1f, 0xff, 0xff, 0x07, 0xfe, 0x1f, 0x00, 0x03, 0x3f, 0xff, 0xff, 0x83, 0xff, 0x1f, 0x00,
+
26 0x06, 0x3f, 0xff, 0xff, 0xc1, 0xff, 0x0f, 0x00, 0x06, 0x3f, 0xff, 0xff, 0xe0, 0xff, 0x8f, 0x80,
+
27 0x06, 0x7f, 0x83, 0xff, 0xf0, 0xff, 0xc7, 0x80, 0x06, 0x7f, 0x80, 0x7f, 0xf8, 0x7f, 0xc7, 0x80,
+
28 0x06, 0x7f, 0xc0, 0x1f, 0xfc, 0x3f, 0xe3, 0x80, 0x06, 0x3f, 0xfc, 0x0f, 0xfe, 0x3f, 0xe3, 0x80,
+
29 0x06, 0x3f, 0xff, 0x07, 0xff, 0x1f, 0xf1, 0x80, 0x06, 0x3f, 0xff, 0xc3, 0xff, 0x0f, 0xf0, 0x00,
+
30 0x06, 0x1f, 0xff, 0xe1, 0xff, 0x8f, 0xf0, 0x00, 0x07, 0x0f, 0xff, 0xf0, 0xff, 0x8f, 0xf8, 0x00,
+
31 0x03, 0x07, 0xff, 0xf8, 0x7f, 0xc7, 0xf8, 0x00, 0x03, 0x01, 0xff, 0xfc, 0x3f, 0xc7, 0xf8, 0x00,
+
32 0x03, 0x00, 0x3f, 0xfe, 0x3f, 0xc7, 0xf8, 0x00, 0x01, 0x80, 0x07, 0xfe, 0x1f, 0xe3, 0xfc, 0x00,
+
33 0x01, 0x80, 0x03, 0xff, 0x1f, 0xe3, 0xfc, 0x00, 0x01, 0xc0, 0x01, 0xff, 0x1f, 0xe3, 0xfc, 0x00,
+
34 0x00, 0xc0, 0x78, 0xff, 0x0f, 0xe3, 0xfc, 0x00, 0x00, 0xe0, 0xfc, 0x7f, 0x8f, 0xf1, 0xf8, 0x00,
+
35 0x00, 0x61, 0xfc, 0x7f, 0x8f, 0xf1, 0xf0, 0x00, 0x00, 0x71, 0xfc, 0x7f, 0x8f, 0xf1, 0xf0, 0x00,
+
36 0x00, 0x39, 0xfc, 0x7f, 0x8f, 0xf1, 0xe0, 0x00, 0x00, 0x19, 0xfc, 0x7f, 0x8f, 0xf0, 0x00, 0x00,
+
37 0x00, 0x1c, 0xf8, 0x7f, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x7f, 0x8f, 0xf0, 0x10, 0x00,
+
38 0x00, 0x07, 0x00, 0x7f, 0x8f, 0xf0, 0x38, 0x00, 0x00, 0x03, 0xc0, 0xff, 0x0f, 0xe0, 0x70, 0x00,
+
39 0x00, 0x01, 0xe0, 0x7f, 0x0f, 0xc0, 0xe0, 0x00, 0x00, 0x00, 0x78, 0x1f, 0x00, 0x03, 0xc0, 0x00,
+
40 0x00, 0x00, 0x3e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x7e, 0x00, 0x00,
+
41 0x00, 0x00, 0x03, 0xfc, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x00,
+
42 0x00, 0x00, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
43 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
44 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
45
+
46};
+
47
+
48const float image_3d_matrix_esp_logo[1427][4] = {
+
49
+
50 {-2.0, -25.0, 0, 1}, {-1.0, -25.0, 0, 1}, {0.0, -25.0, 0, 1}, {1.0, -25.0, 0, 1}, {2.0, -25.0, 0, 1}, {3.0, -25.0, 0, 1},
+
51 {4.0, -25.0, 0, 1}, {5.0, -25.0, 0, 1}, {6.0, -25.0, 0, 1}, {-2.0, -24.0, 0, 1}, {-1.0, -24.0, 0, 1}, {0.0, -24.0, 0, 1},
+
52 {1.0, -24.0, 0, 1}, {2.0, -24.0, 0, 1}, {3.0, -24.0, 0, 1}, {4.0, -24.0, 0, 1}, {5.0, -24.0, 0, 1}, {6.0, -24.0, 0, 1},
+
53 {7.0, -24.0, 0, 1}, {8.0, -24.0, 0, 1}, {9.0, -24.0, 0, 1}, {1.0, -23.0, 0, 1}, {2.0, -23.0, 0, 1}, {3.0, -23.0, 0, 1},
+
54 {4.0, -23.0, 0, 1}, {5.0, -23.0, 0, 1}, {6.0, -23.0, 0, 1}, {7.0, -23.0, 0, 1}, {8.0, -23.0, 0, 1}, {9.0, -23.0, 0, 1},
+
55 {10.0, -23.0, 0, 1}, {11.0, -23.0, 0, 1}, {-12.0, -22.0, 0, 1}, {-11.0, -22.0, 0, 1}, {-10.0, -22.0, 0, 1}, {-9.0, -22.0, 0, 1},
+
56 {-8.0, -22.0, 0, 1}, {-7.0, -22.0, 0, 1}, {3.0, -22.0, 0, 1}, {4.0, -22.0, 0, 1}, {5.0, -22.0, 0, 1}, {6.0, -22.0, 0, 1},
+
57 {7.0, -22.0, 0, 1}, {8.0, -22.0, 0, 1}, {9.0, -22.0, 0, 1}, {10.0, -22.0, 0, 1}, {11.0, -22.0, 0, 1}, {12.0, -22.0, 0, 1},
+
58 {13.0, -22.0, 0, 1}, {-20.0, -21.0, 0, 1}, {-19.0, -21.0, 0, 1}, {-13.0, -21.0, 0, 1}, {-12.0, -21.0, 0, 1}, {-11.0, -21.0, 0, 1},
+
59 {-10.0, -21.0, 0, 1}, {-9.0, -21.0, 0, 1}, {-8.0, -21.0, 0, 1}, {-7.0, -21.0, 0, 1}, {-6.0, -21.0, 0, 1}, {-5.0, -21.0, 0, 1},
+
60 {-4.0, -21.0, 0, 1}, {-3.0, -21.0, 0, 1}, {5.0, -21.0, 0, 1}, {6.0, -21.0, 0, 1}, {7.0, -21.0, 0, 1}, {8.0, -21.0, 0, 1},
+
61 {9.0, -21.0, 0, 1}, {10.0, -21.0, 0, 1}, {11.0, -21.0, 0, 1}, {12.0, -21.0, 0, 1}, {13.0, -21.0, 0, 1}, {14.0, -21.0, 0, 1},
+
62 {-20.0, -20.0, 0, 1}, {-19.0, -20.0, 0, 1}, {-14.0, -20.0, 0, 1}, {-13.0, -20.0, 0, 1}, {-12.0, -20.0, 0, 1}, {-11.0, -20.0, 0, 1},
+
63 {-10.0, -20.0, 0, 1}, {-9.0, -20.0, 0, 1}, {-8.0, -20.0, 0, 1}, {-7.0, -20.0, 0, 1}, {-6.0, -20.0, 0, 1}, {-5.0, -20.0, 0, 1},
+
64 {-4.0, -20.0, 0, 1}, {-3.0, -20.0, 0, 1}, {-2.0, -20.0, 0, 1}, {-1.0, -20.0, 0, 1}, {6.0, -20.0, 0, 1}, {7.0, -20.0, 0, 1},
+
65 {8.0, -20.0, 0, 1}, {9.0, -20.0, 0, 1}, {10.0, -20.0, 0, 1}, {11.0, -20.0, 0, 1}, {12.0, -20.0, 0, 1}, {13.0, -20.0, 0, 1},
+
66 {14.0, -20.0, 0, 1}, {15.0, -20.0, 0, 1}, {-21.0, -19.0, 0, 1}, {-20.0, -19.0, 0, 1}, {-15.0, -19.0, 0, 1}, {-14.0, -19.0, 0, 1},
+
67 {-13.0, -19.0, 0, 1}, {-12.0, -19.0, 0, 1}, {-11.0, -19.0, 0, 1}, {-10.0, -19.0, 0, 1}, {-9.0, -19.0, 0, 1}, {-8.0, -19.0, 0, 1},
+
68 {-7.0, -19.0, 0, 1}, {-6.0, -19.0, 0, 1}, {-5.0, -19.0, 0, 1}, {-4.0, -19.0, 0, 1}, {-3.0, -19.0, 0, 1}, {-2.0, -19.0, 0, 1},
+
69 {-1.0, -19.0, 0, 1}, {0.0, -19.0, 0, 1}, {1.0, -19.0, 0, 1}, {8.0, -19.0, 0, 1}, {9.0, -19.0, 0, 1}, {10.0, -19.0, 0, 1},
+
70 {11.0, -19.0, 0, 1}, {12.0, -19.0, 0, 1}, {13.0, -19.0, 0, 1}, {14.0, -19.0, 0, 1}, {15.0, -19.0, 0, 1}, {16.0, -19.0, 0, 1},
+
71 {17.0, -19.0, 0, 1}, {-22.0, -18.0, 0, 1}, {-21.0, -18.0, 0, 1}, {-20.0, -18.0, 0, 1}, {-15.0, -18.0, 0, 1}, {-14.0, -18.0, 0, 1},
+
72 {-13.0, -18.0, 0, 1}, {-12.0, -18.0, 0, 1}, {-11.0, -18.0, 0, 1}, {-10.0, -18.0, 0, 1}, {-9.0, -18.0, 0, 1}, {-8.0, -18.0, 0, 1},
+
73 {-7.0, -18.0, 0, 1}, {-6.0, -18.0, 0, 1}, {-5.0, -18.0, 0, 1}, {-4.0, -18.0, 0, 1}, {-3.0, -18.0, 0, 1}, {-2.0, -18.0, 0, 1},
+
74 {-1.0, -18.0, 0, 1}, {0.0, -18.0, 0, 1}, {1.0, -18.0, 0, 1}, {2.0, -18.0, 0, 1}, {3.0, -18.0, 0, 1}, {9.0, -18.0, 0, 1},
+
75 {10.0, -18.0, 0, 1}, {11.0, -18.0, 0, 1}, {12.0, -18.0, 0, 1}, {13.0, -18.0, 0, 1}, {14.0, -18.0, 0, 1}, {15.0, -18.0, 0, 1},
+
76 {16.0, -18.0, 0, 1}, {17.0, -18.0, 0, 1}, {18.0, -18.0, 0, 1}, {-23.0, -17.0, 0, 1}, {-22.0, -17.0, 0, 1}, {-21.0, -17.0, 0, 1},
+
77 {-15.0, -17.0, 0, 1}, {-14.0, -17.0, 0, 1}, {-13.0, -17.0, 0, 1}, {-12.0, -17.0, 0, 1}, {-11.0, -17.0, 0, 1}, {-10.0, -17.0, 0, 1},
+
78 {-9.0, -17.0, 0, 1}, {-8.0, -17.0, 0, 1}, {-7.0, -17.0, 0, 1}, {-6.0, -17.0, 0, 1}, {-5.0, -17.0, 0, 1}, {-4.0, -17.0, 0, 1},
+
79 {-3.0, -17.0, 0, 1}, {-2.0, -17.0, 0, 1}, {-1.0, -17.0, 0, 1}, {0.0, -17.0, 0, 1}, {1.0, -17.0, 0, 1}, {2.0, -17.0, 0, 1},
+
80 {3.0, -17.0, 0, 1}, {4.0, -17.0, 0, 1}, {10.0, -17.0, 0, 1}, {11.0, -17.0, 0, 1}, {12.0, -17.0, 0, 1}, {13.0, -17.0, 0, 1},
+
81 {14.0, -17.0, 0, 1}, {15.0, -17.0, 0, 1}, {16.0, -17.0, 0, 1}, {17.0, -17.0, 0, 1}, {18.0, -17.0, 0, 1}, {-23.0, -16.0, 0, 1},
+
82 {-22.0, -16.0, 0, 1}, {-15.0, -16.0, 0, 1}, {-14.0, -16.0, 0, 1}, {-13.0, -16.0, 0, 1}, {-12.0, -16.0, 0, 1}, {-11.0, -16.0, 0, 1},
+
83 {-10.0, -16.0, 0, 1}, {-9.0, -16.0, 0, 1}, {-8.0, -16.0, 0, 1}, {-7.0, -16.0, 0, 1}, {-6.0, -16.0, 0, 1}, {-5.0, -16.0, 0, 1},
+
84 {-4.0, -16.0, 0, 1}, {-3.0, -16.0, 0, 1}, {-2.0, -16.0, 0, 1}, {-1.0, -16.0, 0, 1}, {0.0, -16.0, 0, 1}, {1.0, -16.0, 0, 1},
+
85 {2.0, -16.0, 0, 1}, {3.0, -16.0, 0, 1}, {4.0, -16.0, 0, 1}, {5.0, -16.0, 0, 1}, {6.0, -16.0, 0, 1}, {12.0, -16.0, 0, 1},
+
86 {13.0, -16.0, 0, 1}, {14.0, -16.0, 0, 1}, {15.0, -16.0, 0, 1}, {16.0, -16.0, 0, 1}, {17.0, -16.0, 0, 1}, {18.0, -16.0, 0, 1},
+
87 {19.0, -16.0, 0, 1}, {-24.0, -15.0, 0, 1}, {-23.0, -15.0, 0, 1}, {-22.0, -15.0, 0, 1}, {-9.0, -15.0, 0, 1}, {-8.0, -15.0, 0, 1},
+
88 {-7.0, -15.0, 0, 1}, {-6.0, -15.0, 0, 1}, {-5.0, -15.0, 0, 1}, {-4.0, -15.0, 0, 1}, {-3.0, -15.0, 0, 1}, {-2.0, -15.0, 0, 1},
+
89 {-1.0, -15.0, 0, 1}, {0.0, -15.0, 0, 1}, {1.0, -15.0, 0, 1}, {2.0, -15.0, 0, 1}, {3.0, -15.0, 0, 1}, {4.0, -15.0, 0, 1},
+
90 {5.0, -15.0, 0, 1}, {6.0, -15.0, 0, 1}, {7.0, -15.0, 0, 1}, {13.0, -15.0, 0, 1}, {14.0, -15.0, 0, 1}, {15.0, -15.0, 0, 1},
+
91 {16.0, -15.0, 0, 1}, {17.0, -15.0, 0, 1}, {18.0, -15.0, 0, 1}, {19.0, -15.0, 0, 1}, {20.0, -15.0, 0, 1}, {-24.0, -14.0, 0, 1},
+
92 {-23.0, -14.0, 0, 1}, {-6.0, -14.0, 0, 1}, {-5.0, -14.0, 0, 1}, {-4.0, -14.0, 0, 1}, {-3.0, -14.0, 0, 1}, {-2.0, -14.0, 0, 1},
+
93 {-1.0, -14.0, 0, 1}, {0.0, -14.0, 0, 1}, {1.0, -14.0, 0, 1}, {2.0, -14.0, 0, 1}, {3.0, -14.0, 0, 1}, {4.0, -14.0, 0, 1},
+
94 {5.0, -14.0, 0, 1}, {6.0, -14.0, 0, 1}, {7.0, -14.0, 0, 1}, {8.0, -14.0, 0, 1}, {14.0, -14.0, 0, 1}, {15.0, -14.0, 0, 1},
+
95 {16.0, -14.0, 0, 1}, {17.0, -14.0, 0, 1}, {18.0, -14.0, 0, 1}, {19.0, -14.0, 0, 1}, {20.0, -14.0, 0, 1}, {21.0, -14.0, 0, 1},
+
96 {-25.0, -13.0, 0, 1}, {-24.0, -13.0, 0, 1}, {-23.0, -13.0, 0, 1}, {-3.0, -13.0, 0, 1}, {-2.0, -13.0, 0, 1}, {-1.0, -13.0, 0, 1},
+
97 {0.0, -13.0, 0, 1}, {1.0, -13.0, 0, 1}, {2.0, -13.0, 0, 1}, {3.0, -13.0, 0, 1}, {4.0, -13.0, 0, 1}, {5.0, -13.0, 0, 1},
+
98 {6.0, -13.0, 0, 1}, {7.0, -13.0, 0, 1}, {8.0, -13.0, 0, 1}, {9.0, -13.0, 0, 1}, {10.0, -13.0, 0, 1}, {15.0, -13.0, 0, 1},
+
99 {16.0, -13.0, 0, 1}, {17.0, -13.0, 0, 1}, {18.0, -13.0, 0, 1}, {19.0, -13.0, 0, 1}, {20.0, -13.0, 0, 1}, {21.0, -13.0, 0, 1},
+
100 {-25.0, -12.0, 0, 1}, {-24.0, -12.0, 0, 1}, {-17.0, -12.0, 0, 1}, {-16.0, -12.0, 0, 1}, {-15.0, -12.0, 0, 1}, {-14.0, -12.0, 0, 1},
+
101 {-13.0, -12.0, 0, 1}, {-12.0, -12.0, 0, 1}, {-11.0, -12.0, 0, 1}, {-1.0, -12.0, 0, 1}, {0.0, -12.0, 0, 1}, {1.0, -12.0, 0, 1},
+
102 {2.0, -12.0, 0, 1}, {3.0, -12.0, 0, 1}, {4.0, -12.0, 0, 1}, {5.0, -12.0, 0, 1}, {6.0, -12.0, 0, 1}, {7.0, -12.0, 0, 1},
+
103 {8.0, -12.0, 0, 1}, {9.0, -12.0, 0, 1}, {10.0, -12.0, 0, 1}, {11.0, -12.0, 0, 1}, {16.0, -12.0, 0, 1}, {17.0, -12.0, 0, 1},
+
104 {18.0, -12.0, 0, 1}, {19.0, -12.0, 0, 1}, {20.0, -12.0, 0, 1}, {21.0, -12.0, 0, 1}, {22.0, -12.0, 0, 1}, {-25.0, -11.0, 0, 1},
+
105 {-24.0, -11.0, 0, 1}, {-19.0, -11.0, 0, 1}, {-18.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1}, {-15.0, -11.0, 0, 1},
+
106 {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1}, {-9.0, -11.0, 0, 1},
+
107 {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1}, {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1},
+
108 {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1}, {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1},
+
109 {11.0, -11.0, 0, 1}, {12.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
110 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-20.0, -10.0, 0, 1},
+
111 {-19.0, -10.0, 0, 1}, {-18.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1},
+
112 {-13.0, -10.0, 0, 1}, {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1},
+
113 {-7.0, -10.0, 0, 1}, {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1}, {4.0, -10.0, 0, 1},
+
114 {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1}, {10.0, -10.0, 0, 1},
+
115 {11.0, -10.0, 0, 1}, {12.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1}, {20.0, -10.0, 0, 1},
+
116 {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-20.0, -9.0, 0, 1},
+
117 {-19.0, -9.0, 0, 1}, {-18.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1}, {-14.0, -9.0, 0, 1},
+
118 {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1}, {-8.0, -9.0, 0, 1},
+
119 {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-4.0, -9.0, 0, 1}, {-3.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1},
+
120 {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1}, {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1},
+
121 {10.0, -9.0, 0, 1}, {11.0, -9.0, 0, 1}, {12.0, -9.0, 0, 1}, {13.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1},
+
122 {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1}, {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {-26.0, -8.0, 0, 1}, {-25.0, -8.0, 0, 1},
+
123 {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-19.0, -8.0, 0, 1}, {-18.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1},
+
124 {-15.0, -8.0, 0, 1}, {-14.0, -8.0, 0, 1}, {-13.0, -8.0, 0, 1}, {-12.0, -8.0, 0, 1}, {-11.0, -8.0, 0, 1}, {-10.0, -8.0, 0, 1},
+
125 {-9.0, -8.0, 0, 1}, {-8.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-4.0, -8.0, 0, 1},
+
126 {-3.0, -8.0, 0, 1}, {-2.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {5.0, -8.0, 0, 1}, {6.0, -8.0, 0, 1}, {7.0, -8.0, 0, 1},
+
127 {8.0, -8.0, 0, 1}, {9.0, -8.0, 0, 1}, {10.0, -8.0, 0, 1}, {11.0, -8.0, 0, 1}, {12.0, -8.0, 0, 1}, {13.0, -8.0, 0, 1},
+
128 {14.0, -8.0, 0, 1}, {19.0, -8.0, 0, 1}, {20.0, -8.0, 0, 1}, {21.0, -8.0, 0, 1}, {22.0, -8.0, 0, 1}, {23.0, -8.0, 0, 1},
+
129 {-26.0, -7.0, 0, 1}, {-25.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-19.0, -7.0, 0, 1},
+
130 {-18.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1}, {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-13.0, -7.0, 0, 1},
+
131 {-12.0, -7.0, 0, 1}, {-11.0, -7.0, 0, 1}, {-10.0, -7.0, 0, 1}, {-9.0, -7.0, 0, 1}, {-8.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1},
+
132 {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-4.0, -7.0, 0, 1}, {-3.0, -7.0, 0, 1}, {-2.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
133 {0.0, -7.0, 0, 1}, {6.0, -7.0, 0, 1}, {7.0, -7.0, 0, 1}, {8.0, -7.0, 0, 1}, {9.0, -7.0, 0, 1}, {10.0, -7.0, 0, 1},
+
134 {11.0, -7.0, 0, 1}, {12.0, -7.0, 0, 1}, {13.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {19.0, -7.0, 0, 1},
+
135 {20.0, -7.0, 0, 1}, {21.0, -7.0, 0, 1}, {22.0, -7.0, 0, 1}, {23.0, -7.0, 0, 1}, {-27.0, -6.0, 0, 1}, {-26.0, -6.0, 0, 1},
+
136 {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-19.0, -6.0, 0, 1}, {-18.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1},
+
137 {-16.0, -6.0, 0, 1}, {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-13.0, -6.0, 0, 1}, {-12.0, -6.0, 0, 1}, {-11.0, -6.0, 0, 1},
+
138 {-10.0, -6.0, 0, 1}, {-9.0, -6.0, 0, 1}, {-8.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1},
+
139 {-4.0, -6.0, 0, 1}, {-3.0, -6.0, 0, 1}, {-2.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1}, {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1},
+
140 {7.0, -6.0, 0, 1}, {8.0, -6.0, 0, 1}, {9.0, -6.0, 0, 1}, {10.0, -6.0, 0, 1}, {11.0, -6.0, 0, 1}, {12.0, -6.0, 0, 1},
+
141 {13.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {20.0, -6.0, 0, 1}, {21.0, -6.0, 0, 1}, {22.0, -6.0, 0, 1},
+
142 {23.0, -6.0, 0, 1}, {-27.0, -5.0, 0, 1}, {-26.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1},
+
143 {-19.0, -5.0, 0, 1}, {-18.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1}, {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1},
+
144 {-13.0, -5.0, 0, 1}, {-12.0, -5.0, 0, 1}, {-11.0, -5.0, 0, 1}, {-10.0, -5.0, 0, 1}, {-9.0, -5.0, 0, 1}, {-8.0, -5.0, 0, 1},
+
145 {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-4.0, -5.0, 0, 1}, {-3.0, -5.0, 0, 1}, {-2.0, -5.0, 0, 1},
+
146 {-1.0, -5.0, 0, 1}, {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {2.0, -5.0, 0, 1}, {8.0, -5.0, 0, 1}, {9.0, -5.0, 0, 1},
+
147 {10.0, -5.0, 0, 1}, {11.0, -5.0, 0, 1}, {12.0, -5.0, 0, 1}, {13.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1},
+
148 {16.0, -5.0, 0, 1}, {20.0, -5.0, 0, 1}, {21.0, -5.0, 0, 1}, {22.0, -5.0, 0, 1}, {23.0, -5.0, 0, 1}, {24.0, -5.0, 0, 1},
+
149 {-27.0, -4.0, 0, 1}, {-26.0, -4.0, 0, 1}, {-23.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1},
+
150 {-19.0, -4.0, 0, 1}, {-18.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1}, {-10.0, -4.0, 0, 1}, {-9.0, -4.0, 0, 1},
+
151 {-8.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-4.0, -4.0, 0, 1}, {-3.0, -4.0, 0, 1},
+
152 {-2.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1}, {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {2.0, -4.0, 0, 1}, {3.0, -4.0, 0, 1},
+
153 {8.0, -4.0, 0, 1}, {9.0, -4.0, 0, 1}, {10.0, -4.0, 0, 1}, {11.0, -4.0, 0, 1}, {12.0, -4.0, 0, 1}, {13.0, -4.0, 0, 1},
+
154 {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {17.0, -4.0, 0, 1}, {21.0, -4.0, 0, 1}, {22.0, -4.0, 0, 1},
+
155 {23.0, -4.0, 0, 1}, {24.0, -4.0, 0, 1}, {-27.0, -3.0, 0, 1}, {-26.0, -3.0, 0, 1}, {-23.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1},
+
156 {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-19.0, -3.0, 0, 1}, {-18.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
157 {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-4.0, -3.0, 0, 1}, {-3.0, -3.0, 0, 1}, {-2.0, -3.0, 0, 1},
+
158 {-1.0, -3.0, 0, 1}, {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {2.0, -3.0, 0, 1}, {3.0, -3.0, 0, 1}, {4.0, -3.0, 0, 1},
+
159 {9.0, -3.0, 0, 1}, {10.0, -3.0, 0, 1}, {11.0, -3.0, 0, 1}, {12.0, -3.0, 0, 1}, {13.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1},
+
160 {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {17.0, -3.0, 0, 1}, {21.0, -3.0, 0, 1}, {22.0, -3.0, 0, 1}, {23.0, -3.0, 0, 1},
+
161 {24.0, -3.0, 0, 1}, {-27.0, -2.0, 0, 1}, {-26.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1}, {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1},
+
162 {-20.0, -2.0, 0, 1}, {-19.0, -2.0, 0, 1}, {-18.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
163 {-5.0, -2.0, 0, 1}, {-4.0, -2.0, 0, 1}, {-3.0, -2.0, 0, 1}, {-2.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
164 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {10.0, -2.0, 0, 1},
+
165 {11.0, -2.0, 0, 1}, {12.0, -2.0, 0, 1}, {13.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
166 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1}, {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {-27.0, -1.0, 0, 1},
+
167 {-26.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-19.0, -1.0, 0, 1}, {-18.0, -1.0, 0, 1},
+
168 {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1}, {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1},
+
169 {-11.0, -1.0, 0, 1}, {-4.0, -1.0, 0, 1}, {-3.0, -1.0, 0, 1}, {-2.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1}, {0.0, -1.0, 0, 1},
+
170 {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1}, {6.0, -1.0, 0, 1},
+
171 {10.0, -1.0, 0, 1}, {11.0, -1.0, 0, 1}, {12.0, -1.0, 0, 1}, {13.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
172 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1},
+
173 {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-20.0, 0.0, 0, 1}, {-19.0, 0.0, 0, 1},
+
174 {-18.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1}, {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1},
+
175 {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1}, {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-3.0, 0.0, 0, 1}, {-2.0, 0.0, 0, 1},
+
176 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
177 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {11.0, 0.0, 0, 1}, {12.0, 0.0, 0, 1}, {13.0, 0.0, 0, 1},
+
178 {14.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1}, {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1},
+
179 {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1},
+
180 {-20.0, 1.0, 0, 1}, {-19.0, 1.0, 0, 1}, {-18.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1},
+
181 {-14.0, 1.0, 0, 1}, {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1},
+
182 {-8.0, 1.0, 0, 1}, {-7.0, 1.0, 0, 1}, {-2.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1},
+
183 {2.0, 1.0, 0, 1}, {3.0, 1.0, 0, 1}, {4.0, 1.0, 0, 1}, {5.0, 1.0, 0, 1}, {6.0, 1.0, 0, 1}, {7.0, 1.0, 0, 1},
+
184 {12.0, 1.0, 0, 1}, {13.0, 1.0, 0, 1}, {14.0, 1.0, 0, 1}, {15.0, 1.0, 0, 1}, {16.0, 1.0, 0, 1}, {17.0, 1.0, 0, 1},
+
185 {18.0, 1.0, 0, 1}, {19.0, 1.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-21.0, 2.0, 0, 1}, {-20.0, 2.0, 0, 1},
+
186 {-19.0, 2.0, 0, 1}, {-18.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1},
+
187 {-13.0, 2.0, 0, 1}, {-12.0, 2.0, 0, 1}, {-11.0, 2.0, 0, 1}, {-10.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1}, {-8.0, 2.0, 0, 1},
+
188 {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1}, {2.0, 2.0, 0, 1},
+
189 {3.0, 2.0, 0, 1}, {4.0, 2.0, 0, 1}, {5.0, 2.0, 0, 1}, {6.0, 2.0, 0, 1}, {7.0, 2.0, 0, 1}, {8.0, 2.0, 0, 1},
+
190 {12.0, 2.0, 0, 1}, {13.0, 2.0, 0, 1}, {14.0, 2.0, 0, 1}, {15.0, 2.0, 0, 1}, {16.0, 2.0, 0, 1}, {17.0, 2.0, 0, 1},
+
191 {18.0, 2.0, 0, 1}, {19.0, 2.0, 0, 1}, {-27.0, 3.0, 0, 1}, {-26.0, 3.0, 0, 1}, {-25.0, 3.0, 0, 1}, {-20.0, 3.0, 0, 1},
+
192 {-19.0, 3.0, 0, 1}, {-18.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1}, {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1},
+
193 {-13.0, 3.0, 0, 1}, {-12.0, 3.0, 0, 1}, {-11.0, 3.0, 0, 1}, {-10.0, 3.0, 0, 1}, {-9.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1},
+
194 {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1}, {-5.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {2.0, 3.0, 0, 1},
+
195 {3.0, 3.0, 0, 1}, {4.0, 3.0, 0, 1}, {5.0, 3.0, 0, 1}, {6.0, 3.0, 0, 1}, {7.0, 3.0, 0, 1}, {8.0, 3.0, 0, 1},
+
196 {12.0, 3.0, 0, 1}, {13.0, 3.0, 0, 1}, {14.0, 3.0, 0, 1}, {15.0, 3.0, 0, 1}, {16.0, 3.0, 0, 1}, {17.0, 3.0, 0, 1},
+
197 {18.0, 3.0, 0, 1}, {19.0, 3.0, 0, 1}, {20.0, 3.0, 0, 1}, {-26.0, 4.0, 0, 1}, {-25.0, 4.0, 0, 1}, {-19.0, 4.0, 0, 1},
+
198 {-18.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1}, {-13.0, 4.0, 0, 1},
+
199 {-12.0, 4.0, 0, 1}, {-11.0, 4.0, 0, 1}, {-10.0, 4.0, 0, 1}, {-9.0, 4.0, 0, 1}, {-8.0, 4.0, 0, 1}, {-7.0, 4.0, 0, 1},
+
200 {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-4.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1}, {2.0, 4.0, 0, 1}, {3.0, 4.0, 0, 1},
+
201 {4.0, 4.0, 0, 1}, {5.0, 4.0, 0, 1}, {6.0, 4.0, 0, 1}, {7.0, 4.0, 0, 1}, {8.0, 4.0, 0, 1}, {9.0, 4.0, 0, 1},
+
202 {13.0, 4.0, 0, 1}, {14.0, 4.0, 0, 1}, {15.0, 4.0, 0, 1}, {16.0, 4.0, 0, 1}, {17.0, 4.0, 0, 1}, {18.0, 4.0, 0, 1},
+
203 {19.0, 4.0, 0, 1}, {20.0, 4.0, 0, 1}, {-26.0, 5.0, 0, 1}, {-25.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1}, {-16.0, 5.0, 0, 1},
+
204 {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-13.0, 5.0, 0, 1}, {-12.0, 5.0, 0, 1}, {-11.0, 5.0, 0, 1}, {-10.0, 5.0, 0, 1},
+
205 {-9.0, 5.0, 0, 1}, {-8.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1}, {-4.0, 5.0, 0, 1},
+
206 {-3.0, 5.0, 0, 1}, {2.0, 5.0, 0, 1}, {3.0, 5.0, 0, 1}, {4.0, 5.0, 0, 1}, {5.0, 5.0, 0, 1}, {6.0, 5.0, 0, 1},
+
207 {7.0, 5.0, 0, 1}, {8.0, 5.0, 0, 1}, {9.0, 5.0, 0, 1}, {13.0, 5.0, 0, 1}, {14.0, 5.0, 0, 1}, {15.0, 5.0, 0, 1},
+
208 {16.0, 5.0, 0, 1}, {17.0, 5.0, 0, 1}, {18.0, 5.0, 0, 1}, {19.0, 5.0, 0, 1}, {20.0, 5.0, 0, 1}, {-26.0, 6.0, 0, 1},
+
209 {-25.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1}, {-13.0, 6.0, 0, 1}, {-12.0, 6.0, 0, 1}, {-11.0, 6.0, 0, 1}, {-10.0, 6.0, 0, 1},
+
210 {-9.0, 6.0, 0, 1}, {-8.0, 6.0, 0, 1}, {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-4.0, 6.0, 0, 1},
+
211 {-3.0, 6.0, 0, 1}, {-2.0, 6.0, 0, 1}, {2.0, 6.0, 0, 1}, {3.0, 6.0, 0, 1}, {4.0, 6.0, 0, 1}, {5.0, 6.0, 0, 1},
+
212 {6.0, 6.0, 0, 1}, {7.0, 6.0, 0, 1}, {8.0, 6.0, 0, 1}, {9.0, 6.0, 0, 1}, {13.0, 6.0, 0, 1}, {14.0, 6.0, 0, 1},
+
213 {15.0, 6.0, 0, 1}, {16.0, 6.0, 0, 1}, {17.0, 6.0, 0, 1}, {18.0, 6.0, 0, 1}, {19.0, 6.0, 0, 1}, {20.0, 6.0, 0, 1},
+
214 {-25.0, 7.0, 0, 1}, {-24.0, 7.0, 0, 1}, {-11.0, 7.0, 0, 1}, {-10.0, 7.0, 0, 1}, {-9.0, 7.0, 0, 1}, {-8.0, 7.0, 0, 1},
+
215 {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1}, {-4.0, 7.0, 0, 1}, {-3.0, 7.0, 0, 1}, {-2.0, 7.0, 0, 1},
+
216 {3.0, 7.0, 0, 1}, {4.0, 7.0, 0, 1}, {5.0, 7.0, 0, 1}, {6.0, 7.0, 0, 1}, {7.0, 7.0, 0, 1}, {8.0, 7.0, 0, 1},
+
217 {9.0, 7.0, 0, 1}, {10.0, 7.0, 0, 1}, {14.0, 7.0, 0, 1}, {15.0, 7.0, 0, 1}, {16.0, 7.0, 0, 1}, {17.0, 7.0, 0, 1},
+
218 {18.0, 7.0, 0, 1}, {19.0, 7.0, 0, 1}, {20.0, 7.0, 0, 1}, {21.0, 7.0, 0, 1}, {-25.0, 8.0, 0, 1}, {-24.0, 8.0, 0, 1},
+
219 {-10.0, 8.0, 0, 1}, {-9.0, 8.0, 0, 1}, {-8.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1}, {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1},
+
220 {-4.0, 8.0, 0, 1}, {-3.0, 8.0, 0, 1}, {-2.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1},
+
221 {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1}, {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1},
+
222 {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1}, {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1},
+
223 {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {-25.0, 9.0, 0, 1}, {-24.0, 9.0, 0, 1}, {-23.0, 9.0, 0, 1}, {-9.0, 9.0, 0, 1},
+
224 {-8.0, 9.0, 0, 1}, {-7.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {-3.0, 9.0, 0, 1},
+
225 {-2.0, 9.0, 0, 1}, {-1.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1},
+
226 {7.0, 9.0, 0, 1}, {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1},
+
227 {16.0, 9.0, 0, 1}, {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1},
+
228 {-24.0, 10.0, 0, 1}, {-23.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-13.0, 10.0, 0, 1}, {-12.0, 10.0, 0, 1},
+
229 {-8.0, 10.0, 0, 1}, {-7.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1}, {-4.0, 10.0, 0, 1}, {-3.0, 10.0, 0, 1},
+
230 {-2.0, 10.0, 0, 1}, {-1.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1}, {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1},
+
231 {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1}, {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1},
+
232 {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1}, {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {-24.0, 11.0, 0, 1},
+
233 {-23.0, 11.0, 0, 1}, {-22.0, 11.0, 0, 1}, {-16.0, 11.0, 0, 1}, {-15.0, 11.0, 0, 1}, {-14.0, 11.0, 0, 1}, {-13.0, 11.0, 0, 1},
+
234 {-12.0, 11.0, 0, 1}, {-11.0, 11.0, 0, 1}, {-7.0, 11.0, 0, 1}, {-6.0, 11.0, 0, 1}, {-5.0, 11.0, 0, 1}, {-4.0, 11.0, 0, 1},
+
235 {-3.0, 11.0, 0, 1}, {-2.0, 11.0, 0, 1}, {-1.0, 11.0, 0, 1}, {0.0, 11.0, 0, 1}, {4.0, 11.0, 0, 1}, {5.0, 11.0, 0, 1},
+
236 {6.0, 11.0, 0, 1}, {7.0, 11.0, 0, 1}, {8.0, 11.0, 0, 1}, {9.0, 11.0, 0, 1}, {10.0, 11.0, 0, 1}, {11.0, 11.0, 0, 1},
+
237 {15.0, 11.0, 0, 1}, {16.0, 11.0, 0, 1}, {17.0, 11.0, 0, 1}, {18.0, 11.0, 0, 1}, {19.0, 11.0, 0, 1}, {20.0, 11.0, 0, 1},
+
238 {-23.0, 12.0, 0, 1}, {-22.0, 12.0, 0, 1}, {-17.0, 12.0, 0, 1}, {-16.0, 12.0, 0, 1}, {-15.0, 12.0, 0, 1}, {-14.0, 12.0, 0, 1},
+
239 {-13.0, 12.0, 0, 1}, {-12.0, 12.0, 0, 1}, {-11.0, 12.0, 0, 1}, {-7.0, 12.0, 0, 1}, {-6.0, 12.0, 0, 1}, {-5.0, 12.0, 0, 1},
+
240 {-4.0, 12.0, 0, 1}, {-3.0, 12.0, 0, 1}, {-2.0, 12.0, 0, 1}, {-1.0, 12.0, 0, 1}, {0.0, 12.0, 0, 1}, {4.0, 12.0, 0, 1},
+
241 {5.0, 12.0, 0, 1}, {6.0, 12.0, 0, 1}, {7.0, 12.0, 0, 1}, {8.0, 12.0, 0, 1}, {9.0, 12.0, 0, 1}, {10.0, 12.0, 0, 1},
+
242 {11.0, 12.0, 0, 1}, {15.0, 12.0, 0, 1}, {16.0, 12.0, 0, 1}, {17.0, 12.0, 0, 1}, {18.0, 12.0, 0, 1}, {19.0, 12.0, 0, 1},
+
243 {-23.0, 13.0, 0, 1}, {-22.0, 13.0, 0, 1}, {-21.0, 13.0, 0, 1}, {-17.0, 13.0, 0, 1}, {-16.0, 13.0, 0, 1}, {-15.0, 13.0, 0, 1},
+
244 {-14.0, 13.0, 0, 1}, {-13.0, 13.0, 0, 1}, {-12.0, 13.0, 0, 1}, {-11.0, 13.0, 0, 1}, {-7.0, 13.0, 0, 1}, {-6.0, 13.0, 0, 1},
+
245 {-5.0, 13.0, 0, 1}, {-4.0, 13.0, 0, 1}, {-3.0, 13.0, 0, 1}, {-2.0, 13.0, 0, 1}, {-1.0, 13.0, 0, 1}, {0.0, 13.0, 0, 1},
+
246 {4.0, 13.0, 0, 1}, {5.0, 13.0, 0, 1}, {6.0, 13.0, 0, 1}, {7.0, 13.0, 0, 1}, {8.0, 13.0, 0, 1}, {9.0, 13.0, 0, 1},
+
247 {10.0, 13.0, 0, 1}, {11.0, 13.0, 0, 1}, {15.0, 13.0, 0, 1}, {16.0, 13.0, 0, 1}, {17.0, 13.0, 0, 1}, {18.0, 13.0, 0, 1},
+
248 {19.0, 13.0, 0, 1}, {-22.0, 14.0, 0, 1}, {-21.0, 14.0, 0, 1}, {-20.0, 14.0, 0, 1}, {-17.0, 14.0, 0, 1}, {-16.0, 14.0, 0, 1},
+
249 {-15.0, 14.0, 0, 1}, {-14.0, 14.0, 0, 1}, {-13.0, 14.0, 0, 1}, {-12.0, 14.0, 0, 1}, {-11.0, 14.0, 0, 1}, {-7.0, 14.0, 0, 1},
+
250 {-6.0, 14.0, 0, 1}, {-5.0, 14.0, 0, 1}, {-4.0, 14.0, 0, 1}, {-3.0, 14.0, 0, 1}, {-2.0, 14.0, 0, 1}, {-1.0, 14.0, 0, 1},
+
251 {0.0, 14.0, 0, 1}, {4.0, 14.0, 0, 1}, {5.0, 14.0, 0, 1}, {6.0, 14.0, 0, 1}, {7.0, 14.0, 0, 1}, {8.0, 14.0, 0, 1},
+
252 {9.0, 14.0, 0, 1}, {10.0, 14.0, 0, 1}, {11.0, 14.0, 0, 1}, {15.0, 14.0, 0, 1}, {16.0, 14.0, 0, 1}, {17.0, 14.0, 0, 1},
+
253 {18.0, 14.0, 0, 1}, {-21.0, 15.0, 0, 1}, {-20.0, 15.0, 0, 1}, {-17.0, 15.0, 0, 1}, {-16.0, 15.0, 0, 1}, {-15.0, 15.0, 0, 1},
+
254 {-14.0, 15.0, 0, 1}, {-13.0, 15.0, 0, 1}, {-12.0, 15.0, 0, 1}, {-11.0, 15.0, 0, 1}, {-7.0, 15.0, 0, 1}, {-6.0, 15.0, 0, 1},
+
255 {-5.0, 15.0, 0, 1}, {-4.0, 15.0, 0, 1}, {-3.0, 15.0, 0, 1}, {-2.0, 15.0, 0, 1}, {-1.0, 15.0, 0, 1}, {0.0, 15.0, 0, 1},
+
256 {4.0, 15.0, 0, 1}, {5.0, 15.0, 0, 1}, {6.0, 15.0, 0, 1}, {7.0, 15.0, 0, 1}, {8.0, 15.0, 0, 1}, {9.0, 15.0, 0, 1},
+
257 {10.0, 15.0, 0, 1}, {11.0, 15.0, 0, 1}, {-21.0, 16.0, 0, 1}, {-20.0, 16.0, 0, 1}, {-19.0, 16.0, 0, 1}, {-16.0, 16.0, 0, 1},
+
258 {-15.0, 16.0, 0, 1}, {-14.0, 16.0, 0, 1}, {-13.0, 16.0, 0, 1}, {-12.0, 16.0, 0, 1}, {-7.0, 16.0, 0, 1}, {-6.0, 16.0, 0, 1},
+
259 {-5.0, 16.0, 0, 1}, {-4.0, 16.0, 0, 1}, {-3.0, 16.0, 0, 1}, {-2.0, 16.0, 0, 1}, {-1.0, 16.0, 0, 1}, {0.0, 16.0, 0, 1},
+
260 {4.0, 16.0, 0, 1}, {5.0, 16.0, 0, 1}, {6.0, 16.0, 0, 1}, {7.0, 16.0, 0, 1}, {8.0, 16.0, 0, 1}, {9.0, 16.0, 0, 1},
+
261 {10.0, 16.0, 0, 1}, {11.0, 16.0, 0, 1}, {-20.0, 17.0, 0, 1}, {-19.0, 17.0, 0, 1}, {-18.0, 17.0, 0, 1}, {-7.0, 17.0, 0, 1},
+
262 {-6.0, 17.0, 0, 1}, {-5.0, 17.0, 0, 1}, {-4.0, 17.0, 0, 1}, {-3.0, 17.0, 0, 1}, {-2.0, 17.0, 0, 1}, {-1.0, 17.0, 0, 1},
+
263 {0.0, 17.0, 0, 1}, {4.0, 17.0, 0, 1}, {5.0, 17.0, 0, 1}, {6.0, 17.0, 0, 1}, {7.0, 17.0, 0, 1}, {8.0, 17.0, 0, 1},
+
264 {9.0, 17.0, 0, 1}, {10.0, 17.0, 0, 1}, {11.0, 17.0, 0, 1}, {19.0, 17.0, 0, 1}, {-19.0, 18.0, 0, 1}, {-18.0, 18.0, 0, 1},
+
265 {-17.0, 18.0, 0, 1}, {-7.0, 18.0, 0, 1}, {-6.0, 18.0, 0, 1}, {-5.0, 18.0, 0, 1}, {-4.0, 18.0, 0, 1}, {-3.0, 18.0, 0, 1},
+
266 {-2.0, 18.0, 0, 1}, {-1.0, 18.0, 0, 1}, {0.0, 18.0, 0, 1}, {4.0, 18.0, 0, 1}, {5.0, 18.0, 0, 1}, {6.0, 18.0, 0, 1},
+
267 {7.0, 18.0, 0, 1}, {8.0, 18.0, 0, 1}, {9.0, 18.0, 0, 1}, {10.0, 18.0, 0, 1}, {11.0, 18.0, 0, 1}, {18.0, 18.0, 0, 1},
+
268 {19.0, 18.0, 0, 1}, {20.0, 18.0, 0, 1}, {-18.0, 19.0, 0, 1}, {-17.0, 19.0, 0, 1}, {-16.0, 19.0, 0, 1}, {-15.0, 19.0, 0, 1},
+
269 {-8.0, 19.0, 0, 1}, {-7.0, 19.0, 0, 1}, {-6.0, 19.0, 0, 1}, {-5.0, 19.0, 0, 1}, {-4.0, 19.0, 0, 1}, {-3.0, 19.0, 0, 1},
+
270 {-2.0, 19.0, 0, 1}, {-1.0, 19.0, 0, 1}, {4.0, 19.0, 0, 1}, {5.0, 19.0, 0, 1}, {6.0, 19.0, 0, 1}, {7.0, 19.0, 0, 1},
+
271 {8.0, 19.0, 0, 1}, {9.0, 19.0, 0, 1}, {10.0, 19.0, 0, 1}, {17.0, 19.0, 0, 1}, {18.0, 19.0, 0, 1}, {19.0, 19.0, 0, 1},
+
272 {-17.0, 20.0, 0, 1}, {-16.0, 20.0, 0, 1}, {-15.0, 20.0, 0, 1}, {-14.0, 20.0, 0, 1}, {-7.0, 20.0, 0, 1}, {-6.0, 20.0, 0, 1},
+
273 {-5.0, 20.0, 0, 1}, {-4.0, 20.0, 0, 1}, {-3.0, 20.0, 0, 1}, {-2.0, 20.0, 0, 1}, {-1.0, 20.0, 0, 1}, {4.0, 20.0, 0, 1},
+
274 {5.0, 20.0, 0, 1}, {6.0, 20.0, 0, 1}, {7.0, 20.0, 0, 1}, {8.0, 20.0, 0, 1}, {9.0, 20.0, 0, 1}, {16.0, 20.0, 0, 1},
+
275 {17.0, 20.0, 0, 1}, {18.0, 20.0, 0, 1}, {-15.0, 21.0, 0, 1}, {-14.0, 21.0, 0, 1}, {-13.0, 21.0, 0, 1}, {-12.0, 21.0, 0, 1},
+
276 {-5.0, 21.0, 0, 1}, {-4.0, 21.0, 0, 1}, {-3.0, 21.0, 0, 1}, {-2.0, 21.0, 0, 1}, {-1.0, 21.0, 0, 1}, {14.0, 21.0, 0, 1},
+
277 {15.0, 21.0, 0, 1}, {16.0, 21.0, 0, 1}, {17.0, 21.0, 0, 1}, {-14.0, 22.0, 0, 1}, {-13.0, 22.0, 0, 1}, {-12.0, 22.0, 0, 1},
+
278 {-11.0, 22.0, 0, 1}, {-10.0, 22.0, 0, 1}, {12.0, 22.0, 0, 1}, {13.0, 22.0, 0, 1}, {14.0, 22.0, 0, 1}, {15.0, 22.0, 0, 1},
+
279 {-12.0, 23.0, 0, 1}, {-11.0, 23.0, 0, 1}, {-10.0, 23.0, 0, 1}, {-9.0, 23.0, 0, 1}, {-8.0, 23.0, 0, 1}, {9.0, 23.0, 0, 1},
+
280 {10.0, 23.0, 0, 1}, {11.0, 23.0, 0, 1}, {12.0, 23.0, 0, 1}, {13.0, 23.0, 0, 1}, {14.0, 23.0, 0, 1}, {-10.0, 24.0, 0, 1},
+
281 {-9.0, 24.0, 0, 1}, {-8.0, 24.0, 0, 1}, {-7.0, 24.0, 0, 1}, {-6.0, 24.0, 0, 1}, {-5.0, 24.0, 0, 1}, {-4.0, 24.0, 0, 1},
+
282 {-3.0, 24.0, 0, 1}, {5.0, 24.0, 0, 1}, {6.0, 24.0, 0, 1}, {7.0, 24.0, 0, 1}, {8.0, 24.0, 0, 1}, {9.0, 24.0, 0, 1},
+
283 {10.0, 24.0, 0, 1}, {11.0, 24.0, 0, 1}, {12.0, 24.0, 0, 1}, {-7.0, 25.0, 0, 1}, {-6.0, 25.0, 0, 1}, {-5.0, 25.0, 0, 1},
+
284 {-4.0, 25.0, 0, 1}, {-3.0, 25.0, 0, 1}, {-2.0, 25.0, 0, 1}, {-1.0, 25.0, 0, 1}, {0.0, 25.0, 0, 1}, {1.0, 25.0, 0, 1},
+
285 {2.0, 25.0, 0, 1}, {3.0, 25.0, 0, 1}, {4.0, 25.0, 0, 1}, {5.0, 25.0, 0, 1}, {6.0, 25.0, 0, 1}, {7.0, 25.0, 0, 1},
+
286 {8.0, 25.0, 0, 1}, {9.0, 25.0, 0, 1}, {-3.0, 26.0, 0, 1}, {-2.0, 26.0, 0, 1}, {-1.0, 26.0, 0, 1}, {0.0, 26.0, 0, 1},
+
287 {1.0, 26.0, 0, 1}, {2.0, 26.0, 0, 1}, {3.0, 26.0, 0, 1}, {4.0, 26.0, 0, 1}, {5.0, 26.0, 0, 1}
+
288};
+
289
+
290#endif // CONFIG_3D_OBJECT_ESP_LOGO
+
const float image_3d_matrix_esp_logo[1427][4]
+
const uint8_t image_bmp_array_esp_logo[512]
+ +
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html new file mode 100644 index 0000000..4bca5ae --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html @@ -0,0 +1,178 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_logo.h File Reference
+
+
+
#include <stdint.h>
+#include "sdkconfig.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_bmp_array_esp_logo [512]
const float image_3d_matrix_esp_logo [1427][4]
+

Variable Documentation

+ +

◆ image_3d_matrix_esp_logo

+ +
+
+ + + + + +
+ + + + +
const float image_3d_matrix_esp_logo[1427][4]
+
+extern
+
+ +
+
+ +

◆ image_bmp_array_esp_logo

+ +
+
+ + + + + +
+ + + + +
const uint8_t image_bmp_array_esp_logo[512]
+
+extern
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js new file mode 100644 index 0000000..65bbeb9 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js @@ -0,0 +1,5 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h = +[ + [ "image_3d_matrix_esp_logo", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html#a0c1bdae97dd97515fb28975af15f88a5", null ], + [ "image_bmp_array_esp_logo", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html#a77aa593659d7ef40813818a0537f1f97", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 new file mode 100644 index 0000000..9e9733e --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 @@ -0,0 +1 @@ +54a62fe9d2776b6c495f18a09d5c80cf \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg new file mode 100644 index 0000000..74a6857 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +esp_logo.c + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg new file mode 100644 index 0000000..704a6c3 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +esp_logo.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 new file mode 100644 index 0000000..ed0784a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 @@ -0,0 +1 @@ +923a451f92992b11e32e5a175abbdc9d \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg new file mode 100644 index 0000000..c3361d5 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg new file mode 100644 index 0000000..2791e65 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html new file mode 100644 index 0000000..1ece8c2 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include <stdint.h>
+
10#include "sdkconfig.h"
+
11
+
12#ifdef __cplusplus
+
13extern "C" {
+
14#endif
+
15
+
16extern const uint8_t image_bmp_array_esp_logo[512];
+
17extern const float image_3d_matrix_esp_logo[1427][4];
+
18
+
19#ifdef __cplusplus
+
20}
+
21#endif
+
const float image_3d_matrix_esp_logo[1427][4]
+
const uint8_t image_bmp_array_esp_logo[512]
+
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html new file mode 100644 index 0000000..5f6bb8f --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html @@ -0,0 +1,431 @@ + + + + + + + +ESP-IDF Firmware: esp_text.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_text.c File Reference
+
+
+
#include "esp_text.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_bmp_array_esp_text [384]
const float image_3d_array_esp_text [1271][4]
+

Variable Documentation

+ +

◆ image_3d_array_esp_text

+ +
+
+ + + + +
const float image_3d_array_esp_text[1271][4]
+
+ +

Definition at line 38 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
38 {
+
39
+
40 {-62.0, -11.0, 0, 1}, {-61.0, -11.0, 0, 1}, {-60.0, -11.0, 0, 1}, {-59.0, -11.0, 0, 1}, {-58.0, -11.0, 0, 1}, {-57.0, -11.0, 0, 1},
+
41 {-56.0, -11.0, 0, 1}, {-55.0, -11.0, 0, 1}, {-54.0, -11.0, 0, 1}, {-53.0, -11.0, 0, 1}, {-52.0, -11.0, 0, 1}, {-47.0, -11.0, 0, 1},
+
42 {-46.0, -11.0, 0, 1}, {-45.0, -11.0, 0, 1}, {-44.0, -11.0, 0, 1}, {-43.0, -11.0, 0, 1}, {-42.0, -11.0, 0, 1}, {-41.0, -11.0, 0, 1},
+
43 {-40.0, -11.0, 0, 1}, {-39.0, -11.0, 0, 1}, {-38.0, -11.0, 0, 1}, {-37.0, -11.0, 0, 1}, {-33.0, -11.0, 0, 1}, {-32.0, -11.0, 0, 1},
+
44 {-31.0, -11.0, 0, 1}, {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1},
+
45 {-25.0, -11.0, 0, 1}, {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1},
+
46 {-15.0, -11.0, 0, 1}, {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1},
+
47 {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1},
+
48 {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1}, {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1},
+
49 {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
50 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1},
+
51 {31.0, -11.0, 0, 1}, {32.0, -11.0, 0, 1}, {33.0, -11.0, 0, 1}, {34.0, -11.0, 0, 1}, {35.0, -11.0, 0, 1}, {36.0, -11.0, 0, 1},
+
52 {37.0, -11.0, 0, 1}, {38.0, -11.0, 0, 1}, {39.0, -11.0, 0, 1}, {40.0, -11.0, 0, 1}, {41.0, -11.0, 0, 1}, {45.0, -11.0, 0, 1},
+
53 {46.0, -11.0, 0, 1}, {47.0, -11.0, 0, 1}, {53.0, -11.0, 0, 1}, {54.0, -11.0, 0, 1}, {55.0, -11.0, 0, 1}, {56.0, -11.0, 0, 1},
+
54 {57.0, -11.0, 0, 1}, {58.0, -11.0, 0, 1}, {59.0, -11.0, 0, 1}, {60.0, -11.0, 0, 1}, {61.0, -11.0, 0, 1}, {62.0, -11.0, 0, 1},
+
55 {-63.0, -10.0, 0, 1}, {-62.0, -10.0, 0, 1}, {-61.0, -10.0, 0, 1}, {-60.0, -10.0, 0, 1}, {-59.0, -10.0, 0, 1}, {-58.0, -10.0, 0, 1},
+
56 {-57.0, -10.0, 0, 1}, {-56.0, -10.0, 0, 1}, {-55.0, -10.0, 0, 1}, {-54.0, -10.0, 0, 1}, {-53.0, -10.0, 0, 1}, {-52.0, -10.0, 0, 1},
+
57 {-48.0, -10.0, 0, 1}, {-47.0, -10.0, 0, 1}, {-46.0, -10.0, 0, 1}, {-45.0, -10.0, 0, 1}, {-44.0, -10.0, 0, 1}, {-43.0, -10.0, 0, 1},
+
58 {-42.0, -10.0, 0, 1}, {-41.0, -10.0, 0, 1}, {-40.0, -10.0, 0, 1}, {-39.0, -10.0, 0, 1}, {-38.0, -10.0, 0, 1}, {-37.0, -10.0, 0, 1},
+
59 {-33.0, -10.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1}, {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1},
+
60 {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1},
+
61 {-21.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1}, {-13.0, -10.0, 0, 1},
+
62 {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1}, {-7.0, -10.0, 0, 1},
+
63 {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1},
+
64 {4.0, -10.0, 0, 1}, {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1},
+
65 {10.0, -10.0, 0, 1}, {15.0, -10.0, 0, 1}, {16.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1},
+
66 {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1},
+
67 {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {32.0, -10.0, 0, 1}, {33.0, -10.0, 0, 1}, {34.0, -10.0, 0, 1}, {35.0, -10.0, 0, 1},
+
68 {36.0, -10.0, 0, 1}, {37.0, -10.0, 0, 1}, {38.0, -10.0, 0, 1}, {39.0, -10.0, 0, 1}, {40.0, -10.0, 0, 1}, {41.0, -10.0, 0, 1},
+
69 {45.0, -10.0, 0, 1}, {46.0, -10.0, 0, 1}, {47.0, -10.0, 0, 1}, {52.0, -10.0, 0, 1}, {53.0, -10.0, 0, 1}, {54.0, -10.0, 0, 1},
+
70 {55.0, -10.0, 0, 1}, {56.0, -10.0, 0, 1}, {57.0, -10.0, 0, 1}, {58.0, -10.0, 0, 1}, {59.0, -10.0, 0, 1}, {60.0, -10.0, 0, 1},
+
71 {61.0, -10.0, 0, 1}, {62.0, -10.0, 0, 1}, {-63.0, -9.0, 0, 1}, {-62.0, -9.0, 0, 1}, {-61.0, -9.0, 0, 1}, {-60.0, -9.0, 0, 1},
+
72 {-59.0, -9.0, 0, 1}, {-58.0, -9.0, 0, 1}, {-57.0, -9.0, 0, 1}, {-56.0, -9.0, 0, 1}, {-55.0, -9.0, 0, 1}, {-54.0, -9.0, 0, 1},
+
73 {-53.0, -9.0, 0, 1}, {-52.0, -9.0, 0, 1}, {-48.0, -9.0, 0, 1}, {-47.0, -9.0, 0, 1}, {-46.0, -9.0, 0, 1}, {-45.0, -9.0, 0, 1},
+
74 {-44.0, -9.0, 0, 1}, {-43.0, -9.0, 0, 1}, {-42.0, -9.0, 0, 1}, {-41.0, -9.0, 0, 1}, {-40.0, -9.0, 0, 1}, {-39.0, -9.0, 0, 1},
+
75 {-38.0, -9.0, 0, 1}, {-37.0, -9.0, 0, 1}, {-33.0, -9.0, 0, 1}, {-32.0, -9.0, 0, 1}, {-31.0, -9.0, 0, 1}, {-30.0, -9.0, 0, 1},
+
76 {-29.0, -9.0, 0, 1}, {-28.0, -9.0, 0, 1}, {-27.0, -9.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-24.0, -9.0, 0, 1},
+
77 {-23.0, -9.0, 0, 1}, {-22.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1},
+
78 {-14.0, -9.0, 0, 1}, {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
79 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1},
+
80 {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1}, {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1},
+
81 {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1}, {10.0, -9.0, 0, 1}, {14.0, -9.0, 0, 1}, {15.0, -9.0, 0, 1},
+
82 {16.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1},
+
83 {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {24.0, -9.0, 0, 1}, {25.0, -9.0, 0, 1}, {30.0, -9.0, 0, 1}, {31.0, -9.0, 0, 1},
+
84 {32.0, -9.0, 0, 1}, {33.0, -9.0, 0, 1}, {34.0, -9.0, 0, 1}, {35.0, -9.0, 0, 1}, {36.0, -9.0, 0, 1}, {37.0, -9.0, 0, 1},
+
85 {38.0, -9.0, 0, 1}, {39.0, -9.0, 0, 1}, {40.0, -9.0, 0, 1}, {41.0, -9.0, 0, 1}, {45.0, -9.0, 0, 1}, {46.0, -9.0, 0, 1},
+
86 {47.0, -9.0, 0, 1}, {51.0, -9.0, 0, 1}, {52.0, -9.0, 0, 1}, {53.0, -9.0, 0, 1}, {54.0, -9.0, 0, 1}, {55.0, -9.0, 0, 1},
+
87 {56.0, -9.0, 0, 1}, {57.0, -9.0, 0, 1}, {58.0, -9.0, 0, 1}, {59.0, -9.0, 0, 1}, {60.0, -9.0, 0, 1}, {61.0, -9.0, 0, 1},
+
88 {62.0, -9.0, 0, 1}, {-63.0, -8.0, 0, 1}, {-62.0, -8.0, 0, 1}, {-61.0, -8.0, 0, 1}, {-48.0, -8.0, 0, 1}, {-47.0, -8.0, 0, 1},
+
89 {-46.0, -8.0, 0, 1}, {-33.0, -8.0, 0, 1}, {-32.0, -8.0, 0, 1}, {-31.0, -8.0, 0, 1}, {-30.0, -8.0, 0, 1}, {-23.0, -8.0, 0, 1},
+
90 {-22.0, -8.0, 0, 1}, {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1}, {-15.0, -8.0, 0, 1},
+
91 {-14.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {0.0, -8.0, 0, 1},
+
92 {1.0, -8.0, 0, 1}, {14.0, -8.0, 0, 1}, {15.0, -8.0, 0, 1}, {16.0, -8.0, 0, 1}, {29.0, -8.0, 0, 1}, {30.0, -8.0, 0, 1},
+
93 {31.0, -8.0, 0, 1}, {32.0, -8.0, 0, 1}, {45.0, -8.0, 0, 1}, {46.0, -8.0, 0, 1}, {47.0, -8.0, 0, 1}, {51.0, -8.0, 0, 1},
+
94 {52.0, -8.0, 0, 1}, {53.0, -8.0, 0, 1}, {54.0, -8.0, 0, 1}, {-63.0, -7.0, 0, 1}, {-62.0, -7.0, 0, 1}, {-61.0, -7.0, 0, 1},
+
95 {-48.0, -7.0, 0, 1}, {-47.0, -7.0, 0, 1}, {-46.0, -7.0, 0, 1}, {-33.0, -7.0, 0, 1}, {-32.0, -7.0, 0, 1}, {-31.0, -7.0, 0, 1},
+
96 {-30.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1},
+
97 {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1}, {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
98 {0.0, -7.0, 0, 1}, {1.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {16.0, -7.0, 0, 1}, {29.0, -7.0, 0, 1},
+
99 {30.0, -7.0, 0, 1}, {31.0, -7.0, 0, 1}, {32.0, -7.0, 0, 1}, {45.0, -7.0, 0, 1}, {46.0, -7.0, 0, 1}, {47.0, -7.0, 0, 1},
+
100 {51.0, -7.0, 0, 1}, {52.0, -7.0, 0, 1}, {53.0, -7.0, 0, 1}, {-63.0, -6.0, 0, 1}, {-62.0, -6.0, 0, 1}, {-61.0, -6.0, 0, 1},
+
101 {-48.0, -6.0, 0, 1}, {-47.0, -6.0, 0, 1}, {-46.0, -6.0, 0, 1}, {-33.0, -6.0, 0, 1}, {-32.0, -6.0, 0, 1}, {-31.0, -6.0, 0, 1},
+
102 {-30.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1}, {-16.0, -6.0, 0, 1},
+
103 {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1},
+
104 {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {16.0, -6.0, 0, 1}, {29.0, -6.0, 0, 1},
+
105 {30.0, -6.0, 0, 1}, {31.0, -6.0, 0, 1}, {32.0, -6.0, 0, 1}, {45.0, -6.0, 0, 1}, {46.0, -6.0, 0, 1}, {47.0, -6.0, 0, 1},
+
106 {51.0, -6.0, 0, 1}, {52.0, -6.0, 0, 1}, {53.0, -6.0, 0, 1}, {-63.0, -5.0, 0, 1}, {-62.0, -5.0, 0, 1}, {-61.0, -5.0, 0, 1},
+
107 {-48.0, -5.0, 0, 1}, {-47.0, -5.0, 0, 1}, {-46.0, -5.0, 0, 1}, {-33.0, -5.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1},
+
108 {-30.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1},
+
109 {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1}, {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-1.0, -5.0, 0, 1},
+
110 {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1}, {16.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1},
+
111 {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {32.0, -5.0, 0, 1}, {45.0, -5.0, 0, 1}, {46.0, -5.0, 0, 1}, {47.0, -5.0, 0, 1},
+
112 {51.0, -5.0, 0, 1}, {52.0, -5.0, 0, 1}, {53.0, -5.0, 0, 1}, {-63.0, -4.0, 0, 1}, {-62.0, -4.0, 0, 1}, {-61.0, -4.0, 0, 1},
+
113 {-48.0, -4.0, 0, 1}, {-47.0, -4.0, 0, 1}, {-46.0, -4.0, 0, 1}, {-33.0, -4.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
114 {-30.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1},
+
115 {-15.0, -4.0, 0, 1}, {-14.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1},
+
116 {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1},
+
117 {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1}, {32.0, -4.0, 0, 1}, {45.0, -4.0, 0, 1}, {46.0, -4.0, 0, 1}, {47.0, -4.0, 0, 1},
+
118 {51.0, -4.0, 0, 1}, {52.0, -4.0, 0, 1}, {53.0, -4.0, 0, 1}, {-63.0, -3.0, 0, 1}, {-62.0, -3.0, 0, 1}, {-61.0, -3.0, 0, 1},
+
119 {-48.0, -3.0, 0, 1}, {-47.0, -3.0, 0, 1}, {-46.0, -3.0, 0, 1}, {-33.0, -3.0, 0, 1}, {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1},
+
120 {-30.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
121 {-15.0, -3.0, 0, 1}, {-14.0, -3.0, 0, 1}, {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-1.0, -3.0, 0, 1},
+
122 {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1}, {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
123 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {32.0, -3.0, 0, 1}, {45.0, -3.0, 0, 1}, {46.0, -3.0, 0, 1}, {47.0, -3.0, 0, 1},
+
124 {51.0, -3.0, 0, 1}, {52.0, -3.0, 0, 1}, {53.0, -3.0, 0, 1}, {-63.0, -2.0, 0, 1}, {-62.0, -2.0, 0, 1}, {-61.0, -2.0, 0, 1},
+
125 {-60.0, -2.0, 0, 1}, {-59.0, -2.0, 0, 1}, {-58.0, -2.0, 0, 1}, {-57.0, -2.0, 0, 1}, {-56.0, -2.0, 0, 1}, {-55.0, -2.0, 0, 1},
+
126 {-54.0, -2.0, 0, 1}, {-53.0, -2.0, 0, 1}, {-48.0, -2.0, 0, 1}, {-47.0, -2.0, 0, 1}, {-46.0, -2.0, 0, 1}, {-45.0, -2.0, 0, 1},
+
127 {-44.0, -2.0, 0, 1}, {-43.0, -2.0, 0, 1}, {-42.0, -2.0, 0, 1}, {-41.0, -2.0, 0, 1}, {-40.0, -2.0, 0, 1}, {-39.0, -2.0, 0, 1},
+
128 {-38.0, -2.0, 0, 1}, {-33.0, -2.0, 0, 1}, {-32.0, -2.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1},
+
129 {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
130 {-14.0, -2.0, 0, 1}, {-7.0, -2.0, 0, 1}, {-6.0, -2.0, 0, 1}, {-5.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
131 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {6.0, -2.0, 0, 1},
+
132 {7.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
133 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
134 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {30.0, -2.0, 0, 1}, {31.0, -2.0, 0, 1}, {32.0, -2.0, 0, 1}, {33.0, -2.0, 0, 1},
+
135 {34.0, -2.0, 0, 1}, {35.0, -2.0, 0, 1}, {36.0, -2.0, 0, 1}, {37.0, -2.0, 0, 1}, {38.0, -2.0, 0, 1}, {39.0, -2.0, 0, 1},
+
136 {40.0, -2.0, 0, 1}, {45.0, -2.0, 0, 1}, {46.0, -2.0, 0, 1}, {47.0, -2.0, 0, 1}, {51.0, -2.0, 0, 1}, {52.0, -2.0, 0, 1},
+
137 {53.0, -2.0, 0, 1}, {54.0, -2.0, 0, 1}, {55.0, -2.0, 0, 1}, {56.0, -2.0, 0, 1}, {57.0, -2.0, 0, 1}, {58.0, -2.0, 0, 1},
+
138 {59.0, -2.0, 0, 1}, {60.0, -2.0, 0, 1}, {61.0, -2.0, 0, 1}, {-63.0, -1.0, 0, 1}, {-62.0, -1.0, 0, 1}, {-61.0, -1.0, 0, 1},
+
139 {-60.0, -1.0, 0, 1}, {-59.0, -1.0, 0, 1}, {-58.0, -1.0, 0, 1}, {-57.0, -1.0, 0, 1}, {-56.0, -1.0, 0, 1}, {-55.0, -1.0, 0, 1},
+
140 {-54.0, -1.0, 0, 1}, {-53.0, -1.0, 0, 1}, {-48.0, -1.0, 0, 1}, {-47.0, -1.0, 0, 1}, {-46.0, -1.0, 0, 1}, {-45.0, -1.0, 0, 1},
+
141 {-44.0, -1.0, 0, 1}, {-43.0, -1.0, 0, 1}, {-42.0, -1.0, 0, 1}, {-41.0, -1.0, 0, 1}, {-40.0, -1.0, 0, 1}, {-39.0, -1.0, 0, 1},
+
142 {-38.0, -1.0, 0, 1}, {-37.0, -1.0, 0, 1}, {-33.0, -1.0, 0, 1}, {-32.0, -1.0, 0, 1}, {-31.0, -1.0, 0, 1}, {-30.0, -1.0, 0, 1},
+
143 {-29.0, -1.0, 0, 1}, {-28.0, -1.0, 0, 1}, {-27.0, -1.0, 0, 1}, {-26.0, -1.0, 0, 1}, {-25.0, -1.0, 0, 1}, {-24.0, -1.0, 0, 1},
+
144 {-23.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1},
+
145 {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1}, {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1},
+
146 {-9.0, -1.0, 0, 1}, {-8.0, -1.0, 0, 1}, {-7.0, -1.0, 0, 1}, {-6.0, -1.0, 0, 1}, {-5.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1},
+
147 {0.0, -1.0, 0, 1}, {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1},
+
148 {6.0, -1.0, 0, 1}, {7.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
149 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {21.0, -1.0, 0, 1},
+
150 {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1}, {25.0, -1.0, 0, 1}, {30.0, -1.0, 0, 1}, {31.0, -1.0, 0, 1},
+
151 {32.0, -1.0, 0, 1}, {33.0, -1.0, 0, 1}, {34.0, -1.0, 0, 1}, {35.0, -1.0, 0, 1}, {36.0, -1.0, 0, 1}, {37.0, -1.0, 0, 1},
+
152 {38.0, -1.0, 0, 1}, {39.0, -1.0, 0, 1}, {40.0, -1.0, 0, 1}, {41.0, -1.0, 0, 1}, {45.0, -1.0, 0, 1}, {46.0, -1.0, 0, 1},
+
153 {47.0, -1.0, 0, 1}, {51.0, -1.0, 0, 1}, {52.0, -1.0, 0, 1}, {53.0, -1.0, 0, 1}, {54.0, -1.0, 0, 1}, {55.0, -1.0, 0, 1},
+
154 {56.0, -1.0, 0, 1}, {57.0, -1.0, 0, 1}, {58.0, -1.0, 0, 1}, {59.0, -1.0, 0, 1}, {60.0, -1.0, 0, 1}, {61.0, -1.0, 0, 1},
+
155 {-63.0, 0.0, 0, 1}, {-62.0, 0.0, 0, 1}, {-61.0, 0.0, 0, 1}, {-60.0, 0.0, 0, 1}, {-59.0, 0.0, 0, 1}, {-58.0, 0.0, 0, 1},
+
156 {-57.0, 0.0, 0, 1}, {-56.0, 0.0, 0, 1}, {-55.0, 0.0, 0, 1}, {-54.0, 0.0, 0, 1}, {-53.0, 0.0, 0, 1}, {-47.0, 0.0, 0, 1},
+
157 {-46.0, 0.0, 0, 1}, {-45.0, 0.0, 0, 1}, {-44.0, 0.0, 0, 1}, {-43.0, 0.0, 0, 1}, {-42.0, 0.0, 0, 1}, {-41.0, 0.0, 0, 1},
+
158 {-40.0, 0.0, 0, 1}, {-39.0, 0.0, 0, 1}, {-38.0, 0.0, 0, 1}, {-37.0, 0.0, 0, 1}, {-33.0, 0.0, 0, 1}, {-32.0, 0.0, 0, 1},
+
159 {-31.0, 0.0, 0, 1}, {-30.0, 0.0, 0, 1}, {-29.0, 0.0, 0, 1}, {-28.0, 0.0, 0, 1}, {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1},
+
160 {-25.0, 0.0, 0, 1}, {-24.0, 0.0, 0, 1}, {-23.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1},
+
161 {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1},
+
162 {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-8.0, 0.0, 0, 1}, {-7.0, 0.0, 0, 1}, {-6.0, 0.0, 0, 1}, {-5.0, 0.0, 0, 1},
+
163 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
164 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1},
+
165 {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {21.0, 0.0, 0, 1},
+
166 {22.0, 0.0, 0, 1}, {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {25.0, 0.0, 0, 1}, {26.0, 0.0, 0, 1}, {31.0, 0.0, 0, 1},
+
167 {32.0, 0.0, 0, 1}, {33.0, 0.0, 0, 1}, {34.0, 0.0, 0, 1}, {35.0, 0.0, 0, 1}, {36.0, 0.0, 0, 1}, {37.0, 0.0, 0, 1},
+
168 {38.0, 0.0, 0, 1}, {39.0, 0.0, 0, 1}, {40.0, 0.0, 0, 1}, {41.0, 0.0, 0, 1}, {45.0, 0.0, 0, 1}, {46.0, 0.0, 0, 1},
+
169 {47.0, 0.0, 0, 1}, {51.0, 0.0, 0, 1}, {52.0, 0.0, 0, 1}, {53.0, 0.0, 0, 1}, {54.0, 0.0, 0, 1}, {55.0, 0.0, 0, 1},
+
170 {56.0, 0.0, 0, 1}, {57.0, 0.0, 0, 1}, {58.0, 0.0, 0, 1}, {59.0, 0.0, 0, 1}, {60.0, 0.0, 0, 1}, {61.0, 0.0, 0, 1},
+
171 {-63.0, 1.0, 0, 1}, {-62.0, 1.0, 0, 1}, {-61.0, 1.0, 0, 1}, {-39.0, 1.0, 0, 1}, {-38.0, 1.0, 0, 1}, {-37.0, 1.0, 0, 1},
+
172 {-36.0, 1.0, 0, 1}, {-33.0, 1.0, 0, 1}, {-32.0, 1.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
173 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
174 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1}, {-14.0, 1.0, 0, 1},
+
175 {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {-8.0, 1.0, 0, 1},
+
176 {-7.0, 1.0, 0, 1}, {-6.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1},
+
177 {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {38.0, 1.0, 0, 1}, {39.0, 1.0, 0, 1}, {40.0, 1.0, 0, 1},
+
178 {41.0, 1.0, 0, 1}, {45.0, 1.0, 0, 1}, {46.0, 1.0, 0, 1}, {47.0, 1.0, 0, 1}, {51.0, 1.0, 0, 1}, {52.0, 1.0, 0, 1},
+
179 {53.0, 1.0, 0, 1}, {-63.0, 2.0, 0, 1}, {-62.0, 2.0, 0, 1}, {-61.0, 2.0, 0, 1}, {-39.0, 2.0, 0, 1}, {-38.0, 2.0, 0, 1},
+
180 {-37.0, 2.0, 0, 1}, {-36.0, 2.0, 0, 1}, {-33.0, 2.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
181 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
182 {-23.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1},
+
183 {-8.0, 2.0, 0, 1}, {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1},
+
184 {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1}, {39.0, 2.0, 0, 1}, {40.0, 2.0, 0, 1}, {41.0, 2.0, 0, 1},
+
185 {45.0, 2.0, 0, 1}, {46.0, 2.0, 0, 1}, {47.0, 2.0, 0, 1}, {51.0, 2.0, 0, 1}, {52.0, 2.0, 0, 1}, {53.0, 2.0, 0, 1},
+
186 {-63.0, 3.0, 0, 1}, {-62.0, 3.0, 0, 1}, {-61.0, 3.0, 0, 1}, {-39.0, 3.0, 0, 1}, {-38.0, 3.0, 0, 1}, {-37.0, 3.0, 0, 1},
+
187 {-36.0, 3.0, 0, 1}, {-33.0, 3.0, 0, 1}, {-32.0, 3.0, 0, 1}, {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1},
+
188 {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1}, {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1},
+
189 {-1.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1}, {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1},
+
190 {39.0, 3.0, 0, 1}, {40.0, 3.0, 0, 1}, {41.0, 3.0, 0, 1}, {45.0, 3.0, 0, 1}, {46.0, 3.0, 0, 1}, {47.0, 3.0, 0, 1},
+
191 {51.0, 3.0, 0, 1}, {52.0, 3.0, 0, 1}, {53.0, 3.0, 0, 1}, {-63.0, 4.0, 0, 1}, {-62.0, 4.0, 0, 1}, {-61.0, 4.0, 0, 1},
+
192 {-39.0, 4.0, 0, 1}, {-38.0, 4.0, 0, 1}, {-37.0, 4.0, 0, 1}, {-36.0, 4.0, 0, 1}, {-33.0, 4.0, 0, 1}, {-32.0, 4.0, 0, 1},
+
193 {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1},
+
194 {-7.0, 4.0, 0, 1}, {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-1.0, 4.0, 0, 1}, {0.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1},
+
195 {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {39.0, 4.0, 0, 1}, {40.0, 4.0, 0, 1}, {41.0, 4.0, 0, 1},
+
196 {45.0, 4.0, 0, 1}, {46.0, 4.0, 0, 1}, {47.0, 4.0, 0, 1}, {51.0, 4.0, 0, 1}, {52.0, 4.0, 0, 1}, {53.0, 4.0, 0, 1},
+
197 {-63.0, 5.0, 0, 1}, {-62.0, 5.0, 0, 1}, {-61.0, 5.0, 0, 1}, {-39.0, 5.0, 0, 1}, {-38.0, 5.0, 0, 1}, {-37.0, 5.0, 0, 1},
+
198 {-36.0, 5.0, 0, 1}, {-33.0, 5.0, 0, 1}, {-32.0, 5.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1},
+
199 {-16.0, 5.0, 0, 1}, {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1},
+
200 {-1.0, 5.0, 0, 1}, {0.0, 5.0, 0, 1}, {1.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1},
+
201 {39.0, 5.0, 0, 1}, {40.0, 5.0, 0, 1}, {41.0, 5.0, 0, 1}, {45.0, 5.0, 0, 1}, {46.0, 5.0, 0, 1}, {47.0, 5.0, 0, 1},
+
202 {51.0, 5.0, 0, 1}, {52.0, 5.0, 0, 1}, {53.0, 5.0, 0, 1}, {-63.0, 6.0, 0, 1}, {-62.0, 6.0, 0, 1}, {-61.0, 6.0, 0, 1},
+
203 {-39.0, 6.0, 0, 1}, {-38.0, 6.0, 0, 1}, {-37.0, 6.0, 0, 1}, {-36.0, 6.0, 0, 1}, {-33.0, 6.0, 0, 1}, {-32.0, 6.0, 0, 1},
+
204 {-31.0, 6.0, 0, 1}, {-30.0, 6.0, 0, 1}, {-17.0, 6.0, 0, 1}, {-16.0, 6.0, 0, 1}, {-15.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1},
+
205 {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-1.0, 6.0, 0, 1}, {0.0, 6.0, 0, 1}, {1.0, 6.0, 0, 1},
+
206 {24.0, 6.0, 0, 1}, {25.0, 6.0, 0, 1}, {26.0, 6.0, 0, 1}, {39.0, 6.0, 0, 1}, {40.0, 6.0, 0, 1}, {41.0, 6.0, 0, 1},
+
207 {45.0, 6.0, 0, 1}, {46.0, 6.0, 0, 1}, {47.0, 6.0, 0, 1}, {51.0, 6.0, 0, 1}, {52.0, 6.0, 0, 1}, {53.0, 6.0, 0, 1},
+
208 {-63.0, 7.0, 0, 1}, {-62.0, 7.0, 0, 1}, {-61.0, 7.0, 0, 1}, {-39.0, 7.0, 0, 1}, {-38.0, 7.0, 0, 1}, {-37.0, 7.0, 0, 1},
+
209 {-36.0, 7.0, 0, 1}, {-33.0, 7.0, 0, 1}, {-32.0, 7.0, 0, 1}, {-31.0, 7.0, 0, 1}, {-30.0, 7.0, 0, 1}, {-17.0, 7.0, 0, 1},
+
210 {-16.0, 7.0, 0, 1}, {-15.0, 7.0, 0, 1}, {-14.0, 7.0, 0, 1}, {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1},
+
211 {-1.0, 7.0, 0, 1}, {0.0, 7.0, 0, 1}, {1.0, 7.0, 0, 1}, {24.0, 7.0, 0, 1}, {25.0, 7.0, 0, 1}, {26.0, 7.0, 0, 1},
+
212 {39.0, 7.0, 0, 1}, {40.0, 7.0, 0, 1}, {41.0, 7.0, 0, 1}, {45.0, 7.0, 0, 1}, {46.0, 7.0, 0, 1}, {47.0, 7.0, 0, 1},
+
213 {51.0, 7.0, 0, 1}, {52.0, 7.0, 0, 1}, {53.0, 7.0, 0, 1}, {-63.0, 8.0, 0, 1}, {-62.0, 8.0, 0, 1}, {-61.0, 8.0, 0, 1},
+
214 {-60.0, 8.0, 0, 1}, {-59.0, 8.0, 0, 1}, {-58.0, 8.0, 0, 1}, {-57.0, 8.0, 0, 1}, {-56.0, 8.0, 0, 1}, {-55.0, 8.0, 0, 1},
+
215 {-54.0, 8.0, 0, 1}, {-53.0, 8.0, 0, 1}, {-52.0, 8.0, 0, 1}, {-48.0, 8.0, 0, 1}, {-47.0, 8.0, 0, 1}, {-46.0, 8.0, 0, 1},
+
216 {-45.0, 8.0, 0, 1}, {-44.0, 8.0, 0, 1}, {-43.0, 8.0, 0, 1}, {-42.0, 8.0, 0, 1}, {-41.0, 8.0, 0, 1}, {-40.0, 8.0, 0, 1},
+
217 {-39.0, 8.0, 0, 1}, {-38.0, 8.0, 0, 1}, {-37.0, 8.0, 0, 1}, {-33.0, 8.0, 0, 1}, {-32.0, 8.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
218 {-30.0, 8.0, 0, 1}, {-17.0, 8.0, 0, 1}, {-16.0, 8.0, 0, 1}, {-15.0, 8.0, 0, 1}, {-14.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1},
+
219 {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1},
+
220 {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1}, {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1},
+
221 {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1}, {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1},
+
222 {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {22.0, 8.0, 0, 1},
+
223 {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {30.0, 8.0, 0, 1},
+
224 {31.0, 8.0, 0, 1}, {32.0, 8.0, 0, 1}, {33.0, 8.0, 0, 1}, {34.0, 8.0, 0, 1}, {35.0, 8.0, 0, 1}, {36.0, 8.0, 0, 1},
+
225 {37.0, 8.0, 0, 1}, {38.0, 8.0, 0, 1}, {39.0, 8.0, 0, 1}, {40.0, 8.0, 0, 1}, {41.0, 8.0, 0, 1}, {45.0, 8.0, 0, 1},
+
226 {46.0, 8.0, 0, 1}, {47.0, 8.0, 0, 1}, {51.0, 8.0, 0, 1}, {52.0, 8.0, 0, 1}, {53.0, 8.0, 0, 1}, {-63.0, 9.0, 0, 1},
+
227 {-62.0, 9.0, 0, 1}, {-61.0, 9.0, 0, 1}, {-60.0, 9.0, 0, 1}, {-59.0, 9.0, 0, 1}, {-58.0, 9.0, 0, 1}, {-57.0, 9.0, 0, 1},
+
228 {-56.0, 9.0, 0, 1}, {-55.0, 9.0, 0, 1}, {-54.0, 9.0, 0, 1}, {-53.0, 9.0, 0, 1}, {-52.0, 9.0, 0, 1}, {-48.0, 9.0, 0, 1},
+
229 {-47.0, 9.0, 0, 1}, {-46.0, 9.0, 0, 1}, {-45.0, 9.0, 0, 1}, {-44.0, 9.0, 0, 1}, {-43.0, 9.0, 0, 1}, {-42.0, 9.0, 0, 1},
+
230 {-41.0, 9.0, 0, 1}, {-40.0, 9.0, 0, 1}, {-39.0, 9.0, 0, 1}, {-38.0, 9.0, 0, 1}, {-37.0, 9.0, 0, 1}, {-33.0, 9.0, 0, 1},
+
231 {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-17.0, 9.0, 0, 1}, {-16.0, 9.0, 0, 1}, {-15.0, 9.0, 0, 1},
+
232 {-14.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1}, {1.0, 9.0, 0, 1},
+
233 {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1}, {7.0, 9.0, 0, 1},
+
234 {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1}, {16.0, 9.0, 0, 1},
+
235 {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1},
+
236 {23.0, 9.0, 0, 1}, {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1}, {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1},
+
237 {32.0, 9.0, 0, 1}, {33.0, 9.0, 0, 1}, {34.0, 9.0, 0, 1}, {35.0, 9.0, 0, 1}, {36.0, 9.0, 0, 1}, {37.0, 9.0, 0, 1},
+
238 {38.0, 9.0, 0, 1}, {39.0, 9.0, 0, 1}, {40.0, 9.0, 0, 1}, {41.0, 9.0, 0, 1}, {45.0, 9.0, 0, 1}, {46.0, 9.0, 0, 1},
+
239 {47.0, 9.0, 0, 1}, {51.0, 9.0, 0, 1}, {52.0, 9.0, 0, 1}, {53.0, 9.0, 0, 1}, {-62.0, 10.0, 0, 1}, {-61.0, 10.0, 0, 1},
+
240 {-60.0, 10.0, 0, 1}, {-59.0, 10.0, 0, 1}, {-58.0, 10.0, 0, 1}, {-57.0, 10.0, 0, 1}, {-56.0, 10.0, 0, 1}, {-55.0, 10.0, 0, 1},
+
241 {-54.0, 10.0, 0, 1}, {-53.0, 10.0, 0, 1}, {-52.0, 10.0, 0, 1}, {-48.0, 10.0, 0, 1}, {-47.0, 10.0, 0, 1}, {-46.0, 10.0, 0, 1},
+
242 {-45.0, 10.0, 0, 1}, {-44.0, 10.0, 0, 1}, {-43.0, 10.0, 0, 1}, {-42.0, 10.0, 0, 1}, {-41.0, 10.0, 0, 1}, {-40.0, 10.0, 0, 1},
+
243 {-39.0, 10.0, 0, 1}, {-38.0, 10.0, 0, 1}, {-33.0, 10.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1},
+
244 {-17.0, 10.0, 0, 1}, {-16.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1},
+
245 {-4.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1}, {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1},
+
246 {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1},
+
247 {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1},
+
248 {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1}, {24.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
249 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {32.0, 10.0, 0, 1}, {33.0, 10.0, 0, 1}, {34.0, 10.0, 0, 1}, {35.0, 10.0, 0, 1},
+
250 {36.0, 10.0, 0, 1}, {37.0, 10.0, 0, 1}, {38.0, 10.0, 0, 1}, {39.0, 10.0, 0, 1}, {40.0, 10.0, 0, 1}, {45.0, 10.0, 0, 1},
+
251 {46.0, 10.0, 0, 1}, {47.0, 10.0, 0, 1}, {51.0, 10.0, 0, 1}, {52.0, 10.0, 0, 1}, {53.0, 10.0, 0, 1}
+
252};
+
+
+
+ +

◆ image_bmp_array_esp_text

+ +
+
+ + + + +
const uint8_t image_bmp_array_esp_text[384]
+
+Initial value:
= {
+
+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+
}
+
+

Definition at line 9 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
9 {
+
10
+
11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
12 0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
13 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
14 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
15 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
16 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
17 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
18 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
19 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
20 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
21 0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
22 0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
23 0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
24 0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
25 0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
26 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
27 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
28 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
29 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
30 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
31 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
32 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
33 0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
35
+
36};
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js new file mode 100644 index 0000000..e912461 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js @@ -0,0 +1,5 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c = +[ + [ "image_3d_array_esp_text", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html#aca921c7ba529f39acf0b48eddef96266", null ], + [ "image_bmp_array_esp_text", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html#ace7ab8bb5752781ce55ed3b3f7b01c06", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 new file mode 100644 index 0000000..61b833f --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 @@ -0,0 +1 @@ +c09adfd0c3c8e9679dbde85b92d29fe1 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg new file mode 100644 index 0000000..7ceb66d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +esp_text.c + + +Node1 + + +esp_text.c + + + + + +Node2 + + +esp_text.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg new file mode 100644 index 0000000..a9e69a2 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +esp_text.c + + +Node1 + + +esp_text.c + + + + + +Node2 + + +esp_text.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html new file mode 100644 index 0000000..5169c9b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html @@ -0,0 +1,365 @@ + + + + + + + +ESP-IDF Firmware: esp_text.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "esp_text.h"
+
8
+
+
9const uint8_t image_bmp_array_esp_text[384] = {
+
10
+
11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
12 0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
13 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
14 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
15 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
16 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
17 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
18 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
19 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
20 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
21 0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
22 0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
23 0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
24 0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
25 0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
26 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
27 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
28 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
29 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
30 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
31 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
32 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
33 0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
35
+
36};
+
+
37
+
+
38const float image_3d_array_esp_text[1271][4] = {
+
39
+
40 {-62.0, -11.0, 0, 1}, {-61.0, -11.0, 0, 1}, {-60.0, -11.0, 0, 1}, {-59.0, -11.0, 0, 1}, {-58.0, -11.0, 0, 1}, {-57.0, -11.0, 0, 1},
+
41 {-56.0, -11.0, 0, 1}, {-55.0, -11.0, 0, 1}, {-54.0, -11.0, 0, 1}, {-53.0, -11.0, 0, 1}, {-52.0, -11.0, 0, 1}, {-47.0, -11.0, 0, 1},
+
42 {-46.0, -11.0, 0, 1}, {-45.0, -11.0, 0, 1}, {-44.0, -11.0, 0, 1}, {-43.0, -11.0, 0, 1}, {-42.0, -11.0, 0, 1}, {-41.0, -11.0, 0, 1},
+
43 {-40.0, -11.0, 0, 1}, {-39.0, -11.0, 0, 1}, {-38.0, -11.0, 0, 1}, {-37.0, -11.0, 0, 1}, {-33.0, -11.0, 0, 1}, {-32.0, -11.0, 0, 1},
+
44 {-31.0, -11.0, 0, 1}, {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1},
+
45 {-25.0, -11.0, 0, 1}, {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1},
+
46 {-15.0, -11.0, 0, 1}, {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1},
+
47 {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1},
+
48 {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1}, {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1},
+
49 {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
50 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1},
+
51 {31.0, -11.0, 0, 1}, {32.0, -11.0, 0, 1}, {33.0, -11.0, 0, 1}, {34.0, -11.0, 0, 1}, {35.0, -11.0, 0, 1}, {36.0, -11.0, 0, 1},
+
52 {37.0, -11.0, 0, 1}, {38.0, -11.0, 0, 1}, {39.0, -11.0, 0, 1}, {40.0, -11.0, 0, 1}, {41.0, -11.0, 0, 1}, {45.0, -11.0, 0, 1},
+
53 {46.0, -11.0, 0, 1}, {47.0, -11.0, 0, 1}, {53.0, -11.0, 0, 1}, {54.0, -11.0, 0, 1}, {55.0, -11.0, 0, 1}, {56.0, -11.0, 0, 1},
+
54 {57.0, -11.0, 0, 1}, {58.0, -11.0, 0, 1}, {59.0, -11.0, 0, 1}, {60.0, -11.0, 0, 1}, {61.0, -11.0, 0, 1}, {62.0, -11.0, 0, 1},
+
55 {-63.0, -10.0, 0, 1}, {-62.0, -10.0, 0, 1}, {-61.0, -10.0, 0, 1}, {-60.0, -10.0, 0, 1}, {-59.0, -10.0, 0, 1}, {-58.0, -10.0, 0, 1},
+
56 {-57.0, -10.0, 0, 1}, {-56.0, -10.0, 0, 1}, {-55.0, -10.0, 0, 1}, {-54.0, -10.0, 0, 1}, {-53.0, -10.0, 0, 1}, {-52.0, -10.0, 0, 1},
+
57 {-48.0, -10.0, 0, 1}, {-47.0, -10.0, 0, 1}, {-46.0, -10.0, 0, 1}, {-45.0, -10.0, 0, 1}, {-44.0, -10.0, 0, 1}, {-43.0, -10.0, 0, 1},
+
58 {-42.0, -10.0, 0, 1}, {-41.0, -10.0, 0, 1}, {-40.0, -10.0, 0, 1}, {-39.0, -10.0, 0, 1}, {-38.0, -10.0, 0, 1}, {-37.0, -10.0, 0, 1},
+
59 {-33.0, -10.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1}, {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1},
+
60 {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1},
+
61 {-21.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1}, {-13.0, -10.0, 0, 1},
+
62 {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1}, {-7.0, -10.0, 0, 1},
+
63 {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1},
+
64 {4.0, -10.0, 0, 1}, {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1},
+
65 {10.0, -10.0, 0, 1}, {15.0, -10.0, 0, 1}, {16.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1},
+
66 {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1},
+
67 {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {32.0, -10.0, 0, 1}, {33.0, -10.0, 0, 1}, {34.0, -10.0, 0, 1}, {35.0, -10.0, 0, 1},
+
68 {36.0, -10.0, 0, 1}, {37.0, -10.0, 0, 1}, {38.0, -10.0, 0, 1}, {39.0, -10.0, 0, 1}, {40.0, -10.0, 0, 1}, {41.0, -10.0, 0, 1},
+
69 {45.0, -10.0, 0, 1}, {46.0, -10.0, 0, 1}, {47.0, -10.0, 0, 1}, {52.0, -10.0, 0, 1}, {53.0, -10.0, 0, 1}, {54.0, -10.0, 0, 1},
+
70 {55.0, -10.0, 0, 1}, {56.0, -10.0, 0, 1}, {57.0, -10.0, 0, 1}, {58.0, -10.0, 0, 1}, {59.0, -10.0, 0, 1}, {60.0, -10.0, 0, 1},
+
71 {61.0, -10.0, 0, 1}, {62.0, -10.0, 0, 1}, {-63.0, -9.0, 0, 1}, {-62.0, -9.0, 0, 1}, {-61.0, -9.0, 0, 1}, {-60.0, -9.0, 0, 1},
+
72 {-59.0, -9.0, 0, 1}, {-58.0, -9.0, 0, 1}, {-57.0, -9.0, 0, 1}, {-56.0, -9.0, 0, 1}, {-55.0, -9.0, 0, 1}, {-54.0, -9.0, 0, 1},
+
73 {-53.0, -9.0, 0, 1}, {-52.0, -9.0, 0, 1}, {-48.0, -9.0, 0, 1}, {-47.0, -9.0, 0, 1}, {-46.0, -9.0, 0, 1}, {-45.0, -9.0, 0, 1},
+
74 {-44.0, -9.0, 0, 1}, {-43.0, -9.0, 0, 1}, {-42.0, -9.0, 0, 1}, {-41.0, -9.0, 0, 1}, {-40.0, -9.0, 0, 1}, {-39.0, -9.0, 0, 1},
+
75 {-38.0, -9.0, 0, 1}, {-37.0, -9.0, 0, 1}, {-33.0, -9.0, 0, 1}, {-32.0, -9.0, 0, 1}, {-31.0, -9.0, 0, 1}, {-30.0, -9.0, 0, 1},
+
76 {-29.0, -9.0, 0, 1}, {-28.0, -9.0, 0, 1}, {-27.0, -9.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-24.0, -9.0, 0, 1},
+
77 {-23.0, -9.0, 0, 1}, {-22.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1},
+
78 {-14.0, -9.0, 0, 1}, {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
79 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1},
+
80 {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1}, {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1},
+
81 {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1}, {10.0, -9.0, 0, 1}, {14.0, -9.0, 0, 1}, {15.0, -9.0, 0, 1},
+
82 {16.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1},
+
83 {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {24.0, -9.0, 0, 1}, {25.0, -9.0, 0, 1}, {30.0, -9.0, 0, 1}, {31.0, -9.0, 0, 1},
+
84 {32.0, -9.0, 0, 1}, {33.0, -9.0, 0, 1}, {34.0, -9.0, 0, 1}, {35.0, -9.0, 0, 1}, {36.0, -9.0, 0, 1}, {37.0, -9.0, 0, 1},
+
85 {38.0, -9.0, 0, 1}, {39.0, -9.0, 0, 1}, {40.0, -9.0, 0, 1}, {41.0, -9.0, 0, 1}, {45.0, -9.0, 0, 1}, {46.0, -9.0, 0, 1},
+
86 {47.0, -9.0, 0, 1}, {51.0, -9.0, 0, 1}, {52.0, -9.0, 0, 1}, {53.0, -9.0, 0, 1}, {54.0, -9.0, 0, 1}, {55.0, -9.0, 0, 1},
+
87 {56.0, -9.0, 0, 1}, {57.0, -9.0, 0, 1}, {58.0, -9.0, 0, 1}, {59.0, -9.0, 0, 1}, {60.0, -9.0, 0, 1}, {61.0, -9.0, 0, 1},
+
88 {62.0, -9.0, 0, 1}, {-63.0, -8.0, 0, 1}, {-62.0, -8.0, 0, 1}, {-61.0, -8.0, 0, 1}, {-48.0, -8.0, 0, 1}, {-47.0, -8.0, 0, 1},
+
89 {-46.0, -8.0, 0, 1}, {-33.0, -8.0, 0, 1}, {-32.0, -8.0, 0, 1}, {-31.0, -8.0, 0, 1}, {-30.0, -8.0, 0, 1}, {-23.0, -8.0, 0, 1},
+
90 {-22.0, -8.0, 0, 1}, {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1}, {-15.0, -8.0, 0, 1},
+
91 {-14.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {0.0, -8.0, 0, 1},
+
92 {1.0, -8.0, 0, 1}, {14.0, -8.0, 0, 1}, {15.0, -8.0, 0, 1}, {16.0, -8.0, 0, 1}, {29.0, -8.0, 0, 1}, {30.0, -8.0, 0, 1},
+
93 {31.0, -8.0, 0, 1}, {32.0, -8.0, 0, 1}, {45.0, -8.0, 0, 1}, {46.0, -8.0, 0, 1}, {47.0, -8.0, 0, 1}, {51.0, -8.0, 0, 1},
+
94 {52.0, -8.0, 0, 1}, {53.0, -8.0, 0, 1}, {54.0, -8.0, 0, 1}, {-63.0, -7.0, 0, 1}, {-62.0, -7.0, 0, 1}, {-61.0, -7.0, 0, 1},
+
95 {-48.0, -7.0, 0, 1}, {-47.0, -7.0, 0, 1}, {-46.0, -7.0, 0, 1}, {-33.0, -7.0, 0, 1}, {-32.0, -7.0, 0, 1}, {-31.0, -7.0, 0, 1},
+
96 {-30.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1},
+
97 {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1}, {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
98 {0.0, -7.0, 0, 1}, {1.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {16.0, -7.0, 0, 1}, {29.0, -7.0, 0, 1},
+
99 {30.0, -7.0, 0, 1}, {31.0, -7.0, 0, 1}, {32.0, -7.0, 0, 1}, {45.0, -7.0, 0, 1}, {46.0, -7.0, 0, 1}, {47.0, -7.0, 0, 1},
+
100 {51.0, -7.0, 0, 1}, {52.0, -7.0, 0, 1}, {53.0, -7.0, 0, 1}, {-63.0, -6.0, 0, 1}, {-62.0, -6.0, 0, 1}, {-61.0, -6.0, 0, 1},
+
101 {-48.0, -6.0, 0, 1}, {-47.0, -6.0, 0, 1}, {-46.0, -6.0, 0, 1}, {-33.0, -6.0, 0, 1}, {-32.0, -6.0, 0, 1}, {-31.0, -6.0, 0, 1},
+
102 {-30.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1}, {-16.0, -6.0, 0, 1},
+
103 {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1},
+
104 {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {16.0, -6.0, 0, 1}, {29.0, -6.0, 0, 1},
+
105 {30.0, -6.0, 0, 1}, {31.0, -6.0, 0, 1}, {32.0, -6.0, 0, 1}, {45.0, -6.0, 0, 1}, {46.0, -6.0, 0, 1}, {47.0, -6.0, 0, 1},
+
106 {51.0, -6.0, 0, 1}, {52.0, -6.0, 0, 1}, {53.0, -6.0, 0, 1}, {-63.0, -5.0, 0, 1}, {-62.0, -5.0, 0, 1}, {-61.0, -5.0, 0, 1},
+
107 {-48.0, -5.0, 0, 1}, {-47.0, -5.0, 0, 1}, {-46.0, -5.0, 0, 1}, {-33.0, -5.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1},
+
108 {-30.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1},
+
109 {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1}, {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-1.0, -5.0, 0, 1},
+
110 {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1}, {16.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1},
+
111 {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {32.0, -5.0, 0, 1}, {45.0, -5.0, 0, 1}, {46.0, -5.0, 0, 1}, {47.0, -5.0, 0, 1},
+
112 {51.0, -5.0, 0, 1}, {52.0, -5.0, 0, 1}, {53.0, -5.0, 0, 1}, {-63.0, -4.0, 0, 1}, {-62.0, -4.0, 0, 1}, {-61.0, -4.0, 0, 1},
+
113 {-48.0, -4.0, 0, 1}, {-47.0, -4.0, 0, 1}, {-46.0, -4.0, 0, 1}, {-33.0, -4.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
114 {-30.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1},
+
115 {-15.0, -4.0, 0, 1}, {-14.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1},
+
116 {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1},
+
117 {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1}, {32.0, -4.0, 0, 1}, {45.0, -4.0, 0, 1}, {46.0, -4.0, 0, 1}, {47.0, -4.0, 0, 1},
+
118 {51.0, -4.0, 0, 1}, {52.0, -4.0, 0, 1}, {53.0, -4.0, 0, 1}, {-63.0, -3.0, 0, 1}, {-62.0, -3.0, 0, 1}, {-61.0, -3.0, 0, 1},
+
119 {-48.0, -3.0, 0, 1}, {-47.0, -3.0, 0, 1}, {-46.0, -3.0, 0, 1}, {-33.0, -3.0, 0, 1}, {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1},
+
120 {-30.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
121 {-15.0, -3.0, 0, 1}, {-14.0, -3.0, 0, 1}, {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-1.0, -3.0, 0, 1},
+
122 {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1}, {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
123 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {32.0, -3.0, 0, 1}, {45.0, -3.0, 0, 1}, {46.0, -3.0, 0, 1}, {47.0, -3.0, 0, 1},
+
124 {51.0, -3.0, 0, 1}, {52.0, -3.0, 0, 1}, {53.0, -3.0, 0, 1}, {-63.0, -2.0, 0, 1}, {-62.0, -2.0, 0, 1}, {-61.0, -2.0, 0, 1},
+
125 {-60.0, -2.0, 0, 1}, {-59.0, -2.0, 0, 1}, {-58.0, -2.0, 0, 1}, {-57.0, -2.0, 0, 1}, {-56.0, -2.0, 0, 1}, {-55.0, -2.0, 0, 1},
+
126 {-54.0, -2.0, 0, 1}, {-53.0, -2.0, 0, 1}, {-48.0, -2.0, 0, 1}, {-47.0, -2.0, 0, 1}, {-46.0, -2.0, 0, 1}, {-45.0, -2.0, 0, 1},
+
127 {-44.0, -2.0, 0, 1}, {-43.0, -2.0, 0, 1}, {-42.0, -2.0, 0, 1}, {-41.0, -2.0, 0, 1}, {-40.0, -2.0, 0, 1}, {-39.0, -2.0, 0, 1},
+
128 {-38.0, -2.0, 0, 1}, {-33.0, -2.0, 0, 1}, {-32.0, -2.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1},
+
129 {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
130 {-14.0, -2.0, 0, 1}, {-7.0, -2.0, 0, 1}, {-6.0, -2.0, 0, 1}, {-5.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
131 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {6.0, -2.0, 0, 1},
+
132 {7.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
133 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
134 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {30.0, -2.0, 0, 1}, {31.0, -2.0, 0, 1}, {32.0, -2.0, 0, 1}, {33.0, -2.0, 0, 1},
+
135 {34.0, -2.0, 0, 1}, {35.0, -2.0, 0, 1}, {36.0, -2.0, 0, 1}, {37.0, -2.0, 0, 1}, {38.0, -2.0, 0, 1}, {39.0, -2.0, 0, 1},
+
136 {40.0, -2.0, 0, 1}, {45.0, -2.0, 0, 1}, {46.0, -2.0, 0, 1}, {47.0, -2.0, 0, 1}, {51.0, -2.0, 0, 1}, {52.0, -2.0, 0, 1},
+
137 {53.0, -2.0, 0, 1}, {54.0, -2.0, 0, 1}, {55.0, -2.0, 0, 1}, {56.0, -2.0, 0, 1}, {57.0, -2.0, 0, 1}, {58.0, -2.0, 0, 1},
+
138 {59.0, -2.0, 0, 1}, {60.0, -2.0, 0, 1}, {61.0, -2.0, 0, 1}, {-63.0, -1.0, 0, 1}, {-62.0, -1.0, 0, 1}, {-61.0, -1.0, 0, 1},
+
139 {-60.0, -1.0, 0, 1}, {-59.0, -1.0, 0, 1}, {-58.0, -1.0, 0, 1}, {-57.0, -1.0, 0, 1}, {-56.0, -1.0, 0, 1}, {-55.0, -1.0, 0, 1},
+
140 {-54.0, -1.0, 0, 1}, {-53.0, -1.0, 0, 1}, {-48.0, -1.0, 0, 1}, {-47.0, -1.0, 0, 1}, {-46.0, -1.0, 0, 1}, {-45.0, -1.0, 0, 1},
+
141 {-44.0, -1.0, 0, 1}, {-43.0, -1.0, 0, 1}, {-42.0, -1.0, 0, 1}, {-41.0, -1.0, 0, 1}, {-40.0, -1.0, 0, 1}, {-39.0, -1.0, 0, 1},
+
142 {-38.0, -1.0, 0, 1}, {-37.0, -1.0, 0, 1}, {-33.0, -1.0, 0, 1}, {-32.0, -1.0, 0, 1}, {-31.0, -1.0, 0, 1}, {-30.0, -1.0, 0, 1},
+
143 {-29.0, -1.0, 0, 1}, {-28.0, -1.0, 0, 1}, {-27.0, -1.0, 0, 1}, {-26.0, -1.0, 0, 1}, {-25.0, -1.0, 0, 1}, {-24.0, -1.0, 0, 1},
+
144 {-23.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1},
+
145 {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1}, {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1},
+
146 {-9.0, -1.0, 0, 1}, {-8.0, -1.0, 0, 1}, {-7.0, -1.0, 0, 1}, {-6.0, -1.0, 0, 1}, {-5.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1},
+
147 {0.0, -1.0, 0, 1}, {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1},
+
148 {6.0, -1.0, 0, 1}, {7.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
149 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {21.0, -1.0, 0, 1},
+
150 {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1}, {25.0, -1.0, 0, 1}, {30.0, -1.0, 0, 1}, {31.0, -1.0, 0, 1},
+
151 {32.0, -1.0, 0, 1}, {33.0, -1.0, 0, 1}, {34.0, -1.0, 0, 1}, {35.0, -1.0, 0, 1}, {36.0, -1.0, 0, 1}, {37.0, -1.0, 0, 1},
+
152 {38.0, -1.0, 0, 1}, {39.0, -1.0, 0, 1}, {40.0, -1.0, 0, 1}, {41.0, -1.0, 0, 1}, {45.0, -1.0, 0, 1}, {46.0, -1.0, 0, 1},
+
153 {47.0, -1.0, 0, 1}, {51.0, -1.0, 0, 1}, {52.0, -1.0, 0, 1}, {53.0, -1.0, 0, 1}, {54.0, -1.0, 0, 1}, {55.0, -1.0, 0, 1},
+
154 {56.0, -1.0, 0, 1}, {57.0, -1.0, 0, 1}, {58.0, -1.0, 0, 1}, {59.0, -1.0, 0, 1}, {60.0, -1.0, 0, 1}, {61.0, -1.0, 0, 1},
+
155 {-63.0, 0.0, 0, 1}, {-62.0, 0.0, 0, 1}, {-61.0, 0.0, 0, 1}, {-60.0, 0.0, 0, 1}, {-59.0, 0.0, 0, 1}, {-58.0, 0.0, 0, 1},
+
156 {-57.0, 0.0, 0, 1}, {-56.0, 0.0, 0, 1}, {-55.0, 0.0, 0, 1}, {-54.0, 0.0, 0, 1}, {-53.0, 0.0, 0, 1}, {-47.0, 0.0, 0, 1},
+
157 {-46.0, 0.0, 0, 1}, {-45.0, 0.0, 0, 1}, {-44.0, 0.0, 0, 1}, {-43.0, 0.0, 0, 1}, {-42.0, 0.0, 0, 1}, {-41.0, 0.0, 0, 1},
+
158 {-40.0, 0.0, 0, 1}, {-39.0, 0.0, 0, 1}, {-38.0, 0.0, 0, 1}, {-37.0, 0.0, 0, 1}, {-33.0, 0.0, 0, 1}, {-32.0, 0.0, 0, 1},
+
159 {-31.0, 0.0, 0, 1}, {-30.0, 0.0, 0, 1}, {-29.0, 0.0, 0, 1}, {-28.0, 0.0, 0, 1}, {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1},
+
160 {-25.0, 0.0, 0, 1}, {-24.0, 0.0, 0, 1}, {-23.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1},
+
161 {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1},
+
162 {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-8.0, 0.0, 0, 1}, {-7.0, 0.0, 0, 1}, {-6.0, 0.0, 0, 1}, {-5.0, 0.0, 0, 1},
+
163 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
164 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1},
+
165 {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {21.0, 0.0, 0, 1},
+
166 {22.0, 0.0, 0, 1}, {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {25.0, 0.0, 0, 1}, {26.0, 0.0, 0, 1}, {31.0, 0.0, 0, 1},
+
167 {32.0, 0.0, 0, 1}, {33.0, 0.0, 0, 1}, {34.0, 0.0, 0, 1}, {35.0, 0.0, 0, 1}, {36.0, 0.0, 0, 1}, {37.0, 0.0, 0, 1},
+
168 {38.0, 0.0, 0, 1}, {39.0, 0.0, 0, 1}, {40.0, 0.0, 0, 1}, {41.0, 0.0, 0, 1}, {45.0, 0.0, 0, 1}, {46.0, 0.0, 0, 1},
+
169 {47.0, 0.0, 0, 1}, {51.0, 0.0, 0, 1}, {52.0, 0.0, 0, 1}, {53.0, 0.0, 0, 1}, {54.0, 0.0, 0, 1}, {55.0, 0.0, 0, 1},
+
170 {56.0, 0.0, 0, 1}, {57.0, 0.0, 0, 1}, {58.0, 0.0, 0, 1}, {59.0, 0.0, 0, 1}, {60.0, 0.0, 0, 1}, {61.0, 0.0, 0, 1},
+
171 {-63.0, 1.0, 0, 1}, {-62.0, 1.0, 0, 1}, {-61.0, 1.0, 0, 1}, {-39.0, 1.0, 0, 1}, {-38.0, 1.0, 0, 1}, {-37.0, 1.0, 0, 1},
+
172 {-36.0, 1.0, 0, 1}, {-33.0, 1.0, 0, 1}, {-32.0, 1.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
173 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
174 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1}, {-14.0, 1.0, 0, 1},
+
175 {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {-8.0, 1.0, 0, 1},
+
176 {-7.0, 1.0, 0, 1}, {-6.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1},
+
177 {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {38.0, 1.0, 0, 1}, {39.0, 1.0, 0, 1}, {40.0, 1.0, 0, 1},
+
178 {41.0, 1.0, 0, 1}, {45.0, 1.0, 0, 1}, {46.0, 1.0, 0, 1}, {47.0, 1.0, 0, 1}, {51.0, 1.0, 0, 1}, {52.0, 1.0, 0, 1},
+
179 {53.0, 1.0, 0, 1}, {-63.0, 2.0, 0, 1}, {-62.0, 2.0, 0, 1}, {-61.0, 2.0, 0, 1}, {-39.0, 2.0, 0, 1}, {-38.0, 2.0, 0, 1},
+
180 {-37.0, 2.0, 0, 1}, {-36.0, 2.0, 0, 1}, {-33.0, 2.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
181 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
182 {-23.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1},
+
183 {-8.0, 2.0, 0, 1}, {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1},
+
184 {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1}, {39.0, 2.0, 0, 1}, {40.0, 2.0, 0, 1}, {41.0, 2.0, 0, 1},
+
185 {45.0, 2.0, 0, 1}, {46.0, 2.0, 0, 1}, {47.0, 2.0, 0, 1}, {51.0, 2.0, 0, 1}, {52.0, 2.0, 0, 1}, {53.0, 2.0, 0, 1},
+
186 {-63.0, 3.0, 0, 1}, {-62.0, 3.0, 0, 1}, {-61.0, 3.0, 0, 1}, {-39.0, 3.0, 0, 1}, {-38.0, 3.0, 0, 1}, {-37.0, 3.0, 0, 1},
+
187 {-36.0, 3.0, 0, 1}, {-33.0, 3.0, 0, 1}, {-32.0, 3.0, 0, 1}, {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1},
+
188 {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1}, {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1},
+
189 {-1.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1}, {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1},
+
190 {39.0, 3.0, 0, 1}, {40.0, 3.0, 0, 1}, {41.0, 3.0, 0, 1}, {45.0, 3.0, 0, 1}, {46.0, 3.0, 0, 1}, {47.0, 3.0, 0, 1},
+
191 {51.0, 3.0, 0, 1}, {52.0, 3.0, 0, 1}, {53.0, 3.0, 0, 1}, {-63.0, 4.0, 0, 1}, {-62.0, 4.0, 0, 1}, {-61.0, 4.0, 0, 1},
+
192 {-39.0, 4.0, 0, 1}, {-38.0, 4.0, 0, 1}, {-37.0, 4.0, 0, 1}, {-36.0, 4.0, 0, 1}, {-33.0, 4.0, 0, 1}, {-32.0, 4.0, 0, 1},
+
193 {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1},
+
194 {-7.0, 4.0, 0, 1}, {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-1.0, 4.0, 0, 1}, {0.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1},
+
195 {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {39.0, 4.0, 0, 1}, {40.0, 4.0, 0, 1}, {41.0, 4.0, 0, 1},
+
196 {45.0, 4.0, 0, 1}, {46.0, 4.0, 0, 1}, {47.0, 4.0, 0, 1}, {51.0, 4.0, 0, 1}, {52.0, 4.0, 0, 1}, {53.0, 4.0, 0, 1},
+
197 {-63.0, 5.0, 0, 1}, {-62.0, 5.0, 0, 1}, {-61.0, 5.0, 0, 1}, {-39.0, 5.0, 0, 1}, {-38.0, 5.0, 0, 1}, {-37.0, 5.0, 0, 1},
+
198 {-36.0, 5.0, 0, 1}, {-33.0, 5.0, 0, 1}, {-32.0, 5.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1},
+
199 {-16.0, 5.0, 0, 1}, {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1},
+
200 {-1.0, 5.0, 0, 1}, {0.0, 5.0, 0, 1}, {1.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1},
+
201 {39.0, 5.0, 0, 1}, {40.0, 5.0, 0, 1}, {41.0, 5.0, 0, 1}, {45.0, 5.0, 0, 1}, {46.0, 5.0, 0, 1}, {47.0, 5.0, 0, 1},
+
202 {51.0, 5.0, 0, 1}, {52.0, 5.0, 0, 1}, {53.0, 5.0, 0, 1}, {-63.0, 6.0, 0, 1}, {-62.0, 6.0, 0, 1}, {-61.0, 6.0, 0, 1},
+
203 {-39.0, 6.0, 0, 1}, {-38.0, 6.0, 0, 1}, {-37.0, 6.0, 0, 1}, {-36.0, 6.0, 0, 1}, {-33.0, 6.0, 0, 1}, {-32.0, 6.0, 0, 1},
+
204 {-31.0, 6.0, 0, 1}, {-30.0, 6.0, 0, 1}, {-17.0, 6.0, 0, 1}, {-16.0, 6.0, 0, 1}, {-15.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1},
+
205 {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-1.0, 6.0, 0, 1}, {0.0, 6.0, 0, 1}, {1.0, 6.0, 0, 1},
+
206 {24.0, 6.0, 0, 1}, {25.0, 6.0, 0, 1}, {26.0, 6.0, 0, 1}, {39.0, 6.0, 0, 1}, {40.0, 6.0, 0, 1}, {41.0, 6.0, 0, 1},
+
207 {45.0, 6.0, 0, 1}, {46.0, 6.0, 0, 1}, {47.0, 6.0, 0, 1}, {51.0, 6.0, 0, 1}, {52.0, 6.0, 0, 1}, {53.0, 6.0, 0, 1},
+
208 {-63.0, 7.0, 0, 1}, {-62.0, 7.0, 0, 1}, {-61.0, 7.0, 0, 1}, {-39.0, 7.0, 0, 1}, {-38.0, 7.0, 0, 1}, {-37.0, 7.0, 0, 1},
+
209 {-36.0, 7.0, 0, 1}, {-33.0, 7.0, 0, 1}, {-32.0, 7.0, 0, 1}, {-31.0, 7.0, 0, 1}, {-30.0, 7.0, 0, 1}, {-17.0, 7.0, 0, 1},
+
210 {-16.0, 7.0, 0, 1}, {-15.0, 7.0, 0, 1}, {-14.0, 7.0, 0, 1}, {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1},
+
211 {-1.0, 7.0, 0, 1}, {0.0, 7.0, 0, 1}, {1.0, 7.0, 0, 1}, {24.0, 7.0, 0, 1}, {25.0, 7.0, 0, 1}, {26.0, 7.0, 0, 1},
+
212 {39.0, 7.0, 0, 1}, {40.0, 7.0, 0, 1}, {41.0, 7.0, 0, 1}, {45.0, 7.0, 0, 1}, {46.0, 7.0, 0, 1}, {47.0, 7.0, 0, 1},
+
213 {51.0, 7.0, 0, 1}, {52.0, 7.0, 0, 1}, {53.0, 7.0, 0, 1}, {-63.0, 8.0, 0, 1}, {-62.0, 8.0, 0, 1}, {-61.0, 8.0, 0, 1},
+
214 {-60.0, 8.0, 0, 1}, {-59.0, 8.0, 0, 1}, {-58.0, 8.0, 0, 1}, {-57.0, 8.0, 0, 1}, {-56.0, 8.0, 0, 1}, {-55.0, 8.0, 0, 1},
+
215 {-54.0, 8.0, 0, 1}, {-53.0, 8.0, 0, 1}, {-52.0, 8.0, 0, 1}, {-48.0, 8.0, 0, 1}, {-47.0, 8.0, 0, 1}, {-46.0, 8.0, 0, 1},
+
216 {-45.0, 8.0, 0, 1}, {-44.0, 8.0, 0, 1}, {-43.0, 8.0, 0, 1}, {-42.0, 8.0, 0, 1}, {-41.0, 8.0, 0, 1}, {-40.0, 8.0, 0, 1},
+
217 {-39.0, 8.0, 0, 1}, {-38.0, 8.0, 0, 1}, {-37.0, 8.0, 0, 1}, {-33.0, 8.0, 0, 1}, {-32.0, 8.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
218 {-30.0, 8.0, 0, 1}, {-17.0, 8.0, 0, 1}, {-16.0, 8.0, 0, 1}, {-15.0, 8.0, 0, 1}, {-14.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1},
+
219 {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1},
+
220 {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1}, {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1},
+
221 {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1}, {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1},
+
222 {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {22.0, 8.0, 0, 1},
+
223 {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {30.0, 8.0, 0, 1},
+
224 {31.0, 8.0, 0, 1}, {32.0, 8.0, 0, 1}, {33.0, 8.0, 0, 1}, {34.0, 8.0, 0, 1}, {35.0, 8.0, 0, 1}, {36.0, 8.0, 0, 1},
+
225 {37.0, 8.0, 0, 1}, {38.0, 8.0, 0, 1}, {39.0, 8.0, 0, 1}, {40.0, 8.0, 0, 1}, {41.0, 8.0, 0, 1}, {45.0, 8.0, 0, 1},
+
226 {46.0, 8.0, 0, 1}, {47.0, 8.0, 0, 1}, {51.0, 8.0, 0, 1}, {52.0, 8.0, 0, 1}, {53.0, 8.0, 0, 1}, {-63.0, 9.0, 0, 1},
+
227 {-62.0, 9.0, 0, 1}, {-61.0, 9.0, 0, 1}, {-60.0, 9.0, 0, 1}, {-59.0, 9.0, 0, 1}, {-58.0, 9.0, 0, 1}, {-57.0, 9.0, 0, 1},
+
228 {-56.0, 9.0, 0, 1}, {-55.0, 9.0, 0, 1}, {-54.0, 9.0, 0, 1}, {-53.0, 9.0, 0, 1}, {-52.0, 9.0, 0, 1}, {-48.0, 9.0, 0, 1},
+
229 {-47.0, 9.0, 0, 1}, {-46.0, 9.0, 0, 1}, {-45.0, 9.0, 0, 1}, {-44.0, 9.0, 0, 1}, {-43.0, 9.0, 0, 1}, {-42.0, 9.0, 0, 1},
+
230 {-41.0, 9.0, 0, 1}, {-40.0, 9.0, 0, 1}, {-39.0, 9.0, 0, 1}, {-38.0, 9.0, 0, 1}, {-37.0, 9.0, 0, 1}, {-33.0, 9.0, 0, 1},
+
231 {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-17.0, 9.0, 0, 1}, {-16.0, 9.0, 0, 1}, {-15.0, 9.0, 0, 1},
+
232 {-14.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1}, {1.0, 9.0, 0, 1},
+
233 {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1}, {7.0, 9.0, 0, 1},
+
234 {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1}, {16.0, 9.0, 0, 1},
+
235 {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1},
+
236 {23.0, 9.0, 0, 1}, {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1}, {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1},
+
237 {32.0, 9.0, 0, 1}, {33.0, 9.0, 0, 1}, {34.0, 9.0, 0, 1}, {35.0, 9.0, 0, 1}, {36.0, 9.0, 0, 1}, {37.0, 9.0, 0, 1},
+
238 {38.0, 9.0, 0, 1}, {39.0, 9.0, 0, 1}, {40.0, 9.0, 0, 1}, {41.0, 9.0, 0, 1}, {45.0, 9.0, 0, 1}, {46.0, 9.0, 0, 1},
+
239 {47.0, 9.0, 0, 1}, {51.0, 9.0, 0, 1}, {52.0, 9.0, 0, 1}, {53.0, 9.0, 0, 1}, {-62.0, 10.0, 0, 1}, {-61.0, 10.0, 0, 1},
+
240 {-60.0, 10.0, 0, 1}, {-59.0, 10.0, 0, 1}, {-58.0, 10.0, 0, 1}, {-57.0, 10.0, 0, 1}, {-56.0, 10.0, 0, 1}, {-55.0, 10.0, 0, 1},
+
241 {-54.0, 10.0, 0, 1}, {-53.0, 10.0, 0, 1}, {-52.0, 10.0, 0, 1}, {-48.0, 10.0, 0, 1}, {-47.0, 10.0, 0, 1}, {-46.0, 10.0, 0, 1},
+
242 {-45.0, 10.0, 0, 1}, {-44.0, 10.0, 0, 1}, {-43.0, 10.0, 0, 1}, {-42.0, 10.0, 0, 1}, {-41.0, 10.0, 0, 1}, {-40.0, 10.0, 0, 1},
+
243 {-39.0, 10.0, 0, 1}, {-38.0, 10.0, 0, 1}, {-33.0, 10.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1},
+
244 {-17.0, 10.0, 0, 1}, {-16.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1},
+
245 {-4.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1}, {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1},
+
246 {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1},
+
247 {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1},
+
248 {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1}, {24.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
249 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {32.0, 10.0, 0, 1}, {33.0, 10.0, 0, 1}, {34.0, 10.0, 0, 1}, {35.0, 10.0, 0, 1},
+
250 {36.0, 10.0, 0, 1}, {37.0, 10.0, 0, 1}, {38.0, 10.0, 0, 1}, {39.0, 10.0, 0, 1}, {40.0, 10.0, 0, 1}, {45.0, 10.0, 0, 1},
+
251 {46.0, 10.0, 0, 1}, {47.0, 10.0, 0, 1}, {51.0, 10.0, 0, 1}, {52.0, 10.0, 0, 1}, {53.0, 10.0, 0, 1}
+
252};
+
+ + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html new file mode 100644 index 0000000..880583d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html @@ -0,0 +1,424 @@ + + + + + + + +ESP-IDF Firmware: esp_text.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_text.h File Reference
+
+
+
#include <stdint.h>
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_bmp_array_esp_text [384]
const float image_3d_array_esp_text [1271][4]
+

Variable Documentation

+ +

◆ image_3d_array_esp_text

+ +
+
+ + + + + +
+ + + + +
const float image_3d_array_esp_text[1271][4]
+
+extern
+
+ +

Definition at line 38 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
38 {
+
39
+
40 {-62.0, -11.0, 0, 1}, {-61.0, -11.0, 0, 1}, {-60.0, -11.0, 0, 1}, {-59.0, -11.0, 0, 1}, {-58.0, -11.0, 0, 1}, {-57.0, -11.0, 0, 1},
+
41 {-56.0, -11.0, 0, 1}, {-55.0, -11.0, 0, 1}, {-54.0, -11.0, 0, 1}, {-53.0, -11.0, 0, 1}, {-52.0, -11.0, 0, 1}, {-47.0, -11.0, 0, 1},
+
42 {-46.0, -11.0, 0, 1}, {-45.0, -11.0, 0, 1}, {-44.0, -11.0, 0, 1}, {-43.0, -11.0, 0, 1}, {-42.0, -11.0, 0, 1}, {-41.0, -11.0, 0, 1},
+
43 {-40.0, -11.0, 0, 1}, {-39.0, -11.0, 0, 1}, {-38.0, -11.0, 0, 1}, {-37.0, -11.0, 0, 1}, {-33.0, -11.0, 0, 1}, {-32.0, -11.0, 0, 1},
+
44 {-31.0, -11.0, 0, 1}, {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1},
+
45 {-25.0, -11.0, 0, 1}, {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1},
+
46 {-15.0, -11.0, 0, 1}, {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1},
+
47 {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1},
+
48 {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1}, {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1},
+
49 {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
50 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1},
+
51 {31.0, -11.0, 0, 1}, {32.0, -11.0, 0, 1}, {33.0, -11.0, 0, 1}, {34.0, -11.0, 0, 1}, {35.0, -11.0, 0, 1}, {36.0, -11.0, 0, 1},
+
52 {37.0, -11.0, 0, 1}, {38.0, -11.0, 0, 1}, {39.0, -11.0, 0, 1}, {40.0, -11.0, 0, 1}, {41.0, -11.0, 0, 1}, {45.0, -11.0, 0, 1},
+
53 {46.0, -11.0, 0, 1}, {47.0, -11.0, 0, 1}, {53.0, -11.0, 0, 1}, {54.0, -11.0, 0, 1}, {55.0, -11.0, 0, 1}, {56.0, -11.0, 0, 1},
+
54 {57.0, -11.0, 0, 1}, {58.0, -11.0, 0, 1}, {59.0, -11.0, 0, 1}, {60.0, -11.0, 0, 1}, {61.0, -11.0, 0, 1}, {62.0, -11.0, 0, 1},
+
55 {-63.0, -10.0, 0, 1}, {-62.0, -10.0, 0, 1}, {-61.0, -10.0, 0, 1}, {-60.0, -10.0, 0, 1}, {-59.0, -10.0, 0, 1}, {-58.0, -10.0, 0, 1},
+
56 {-57.0, -10.0, 0, 1}, {-56.0, -10.0, 0, 1}, {-55.0, -10.0, 0, 1}, {-54.0, -10.0, 0, 1}, {-53.0, -10.0, 0, 1}, {-52.0, -10.0, 0, 1},
+
57 {-48.0, -10.0, 0, 1}, {-47.0, -10.0, 0, 1}, {-46.0, -10.0, 0, 1}, {-45.0, -10.0, 0, 1}, {-44.0, -10.0, 0, 1}, {-43.0, -10.0, 0, 1},
+
58 {-42.0, -10.0, 0, 1}, {-41.0, -10.0, 0, 1}, {-40.0, -10.0, 0, 1}, {-39.0, -10.0, 0, 1}, {-38.0, -10.0, 0, 1}, {-37.0, -10.0, 0, 1},
+
59 {-33.0, -10.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1}, {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1},
+
60 {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1},
+
61 {-21.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1}, {-13.0, -10.0, 0, 1},
+
62 {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1}, {-7.0, -10.0, 0, 1},
+
63 {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1},
+
64 {4.0, -10.0, 0, 1}, {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1},
+
65 {10.0, -10.0, 0, 1}, {15.0, -10.0, 0, 1}, {16.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1},
+
66 {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1},
+
67 {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {32.0, -10.0, 0, 1}, {33.0, -10.0, 0, 1}, {34.0, -10.0, 0, 1}, {35.0, -10.0, 0, 1},
+
68 {36.0, -10.0, 0, 1}, {37.0, -10.0, 0, 1}, {38.0, -10.0, 0, 1}, {39.0, -10.0, 0, 1}, {40.0, -10.0, 0, 1}, {41.0, -10.0, 0, 1},
+
69 {45.0, -10.0, 0, 1}, {46.0, -10.0, 0, 1}, {47.0, -10.0, 0, 1}, {52.0, -10.0, 0, 1}, {53.0, -10.0, 0, 1}, {54.0, -10.0, 0, 1},
+
70 {55.0, -10.0, 0, 1}, {56.0, -10.0, 0, 1}, {57.0, -10.0, 0, 1}, {58.0, -10.0, 0, 1}, {59.0, -10.0, 0, 1}, {60.0, -10.0, 0, 1},
+
71 {61.0, -10.0, 0, 1}, {62.0, -10.0, 0, 1}, {-63.0, -9.0, 0, 1}, {-62.0, -9.0, 0, 1}, {-61.0, -9.0, 0, 1}, {-60.0, -9.0, 0, 1},
+
72 {-59.0, -9.0, 0, 1}, {-58.0, -9.0, 0, 1}, {-57.0, -9.0, 0, 1}, {-56.0, -9.0, 0, 1}, {-55.0, -9.0, 0, 1}, {-54.0, -9.0, 0, 1},
+
73 {-53.0, -9.0, 0, 1}, {-52.0, -9.0, 0, 1}, {-48.0, -9.0, 0, 1}, {-47.0, -9.0, 0, 1}, {-46.0, -9.0, 0, 1}, {-45.0, -9.0, 0, 1},
+
74 {-44.0, -9.0, 0, 1}, {-43.0, -9.0, 0, 1}, {-42.0, -9.0, 0, 1}, {-41.0, -9.0, 0, 1}, {-40.0, -9.0, 0, 1}, {-39.0, -9.0, 0, 1},
+
75 {-38.0, -9.0, 0, 1}, {-37.0, -9.0, 0, 1}, {-33.0, -9.0, 0, 1}, {-32.0, -9.0, 0, 1}, {-31.0, -9.0, 0, 1}, {-30.0, -9.0, 0, 1},
+
76 {-29.0, -9.0, 0, 1}, {-28.0, -9.0, 0, 1}, {-27.0, -9.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-24.0, -9.0, 0, 1},
+
77 {-23.0, -9.0, 0, 1}, {-22.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1},
+
78 {-14.0, -9.0, 0, 1}, {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
79 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1},
+
80 {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1}, {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1},
+
81 {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1}, {10.0, -9.0, 0, 1}, {14.0, -9.0, 0, 1}, {15.0, -9.0, 0, 1},
+
82 {16.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1},
+
83 {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {24.0, -9.0, 0, 1}, {25.0, -9.0, 0, 1}, {30.0, -9.0, 0, 1}, {31.0, -9.0, 0, 1},
+
84 {32.0, -9.0, 0, 1}, {33.0, -9.0, 0, 1}, {34.0, -9.0, 0, 1}, {35.0, -9.0, 0, 1}, {36.0, -9.0, 0, 1}, {37.0, -9.0, 0, 1},
+
85 {38.0, -9.0, 0, 1}, {39.0, -9.0, 0, 1}, {40.0, -9.0, 0, 1}, {41.0, -9.0, 0, 1}, {45.0, -9.0, 0, 1}, {46.0, -9.0, 0, 1},
+
86 {47.0, -9.0, 0, 1}, {51.0, -9.0, 0, 1}, {52.0, -9.0, 0, 1}, {53.0, -9.0, 0, 1}, {54.0, -9.0, 0, 1}, {55.0, -9.0, 0, 1},
+
87 {56.0, -9.0, 0, 1}, {57.0, -9.0, 0, 1}, {58.0, -9.0, 0, 1}, {59.0, -9.0, 0, 1}, {60.0, -9.0, 0, 1}, {61.0, -9.0, 0, 1},
+
88 {62.0, -9.0, 0, 1}, {-63.0, -8.0, 0, 1}, {-62.0, -8.0, 0, 1}, {-61.0, -8.0, 0, 1}, {-48.0, -8.0, 0, 1}, {-47.0, -8.0, 0, 1},
+
89 {-46.0, -8.0, 0, 1}, {-33.0, -8.0, 0, 1}, {-32.0, -8.0, 0, 1}, {-31.0, -8.0, 0, 1}, {-30.0, -8.0, 0, 1}, {-23.0, -8.0, 0, 1},
+
90 {-22.0, -8.0, 0, 1}, {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1}, {-15.0, -8.0, 0, 1},
+
91 {-14.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {0.0, -8.0, 0, 1},
+
92 {1.0, -8.0, 0, 1}, {14.0, -8.0, 0, 1}, {15.0, -8.0, 0, 1}, {16.0, -8.0, 0, 1}, {29.0, -8.0, 0, 1}, {30.0, -8.0, 0, 1},
+
93 {31.0, -8.0, 0, 1}, {32.0, -8.0, 0, 1}, {45.0, -8.0, 0, 1}, {46.0, -8.0, 0, 1}, {47.0, -8.0, 0, 1}, {51.0, -8.0, 0, 1},
+
94 {52.0, -8.0, 0, 1}, {53.0, -8.0, 0, 1}, {54.0, -8.0, 0, 1}, {-63.0, -7.0, 0, 1}, {-62.0, -7.0, 0, 1}, {-61.0, -7.0, 0, 1},
+
95 {-48.0, -7.0, 0, 1}, {-47.0, -7.0, 0, 1}, {-46.0, -7.0, 0, 1}, {-33.0, -7.0, 0, 1}, {-32.0, -7.0, 0, 1}, {-31.0, -7.0, 0, 1},
+
96 {-30.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1},
+
97 {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1}, {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
98 {0.0, -7.0, 0, 1}, {1.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {16.0, -7.0, 0, 1}, {29.0, -7.0, 0, 1},
+
99 {30.0, -7.0, 0, 1}, {31.0, -7.0, 0, 1}, {32.0, -7.0, 0, 1}, {45.0, -7.0, 0, 1}, {46.0, -7.0, 0, 1}, {47.0, -7.0, 0, 1},
+
100 {51.0, -7.0, 0, 1}, {52.0, -7.0, 0, 1}, {53.0, -7.0, 0, 1}, {-63.0, -6.0, 0, 1}, {-62.0, -6.0, 0, 1}, {-61.0, -6.0, 0, 1},
+
101 {-48.0, -6.0, 0, 1}, {-47.0, -6.0, 0, 1}, {-46.0, -6.0, 0, 1}, {-33.0, -6.0, 0, 1}, {-32.0, -6.0, 0, 1}, {-31.0, -6.0, 0, 1},
+
102 {-30.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1}, {-16.0, -6.0, 0, 1},
+
103 {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1},
+
104 {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {16.0, -6.0, 0, 1}, {29.0, -6.0, 0, 1},
+
105 {30.0, -6.0, 0, 1}, {31.0, -6.0, 0, 1}, {32.0, -6.0, 0, 1}, {45.0, -6.0, 0, 1}, {46.0, -6.0, 0, 1}, {47.0, -6.0, 0, 1},
+
106 {51.0, -6.0, 0, 1}, {52.0, -6.0, 0, 1}, {53.0, -6.0, 0, 1}, {-63.0, -5.0, 0, 1}, {-62.0, -5.0, 0, 1}, {-61.0, -5.0, 0, 1},
+
107 {-48.0, -5.0, 0, 1}, {-47.0, -5.0, 0, 1}, {-46.0, -5.0, 0, 1}, {-33.0, -5.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1},
+
108 {-30.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1},
+
109 {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1}, {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-1.0, -5.0, 0, 1},
+
110 {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1}, {16.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1},
+
111 {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {32.0, -5.0, 0, 1}, {45.0, -5.0, 0, 1}, {46.0, -5.0, 0, 1}, {47.0, -5.0, 0, 1},
+
112 {51.0, -5.0, 0, 1}, {52.0, -5.0, 0, 1}, {53.0, -5.0, 0, 1}, {-63.0, -4.0, 0, 1}, {-62.0, -4.0, 0, 1}, {-61.0, -4.0, 0, 1},
+
113 {-48.0, -4.0, 0, 1}, {-47.0, -4.0, 0, 1}, {-46.0, -4.0, 0, 1}, {-33.0, -4.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
114 {-30.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1},
+
115 {-15.0, -4.0, 0, 1}, {-14.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1},
+
116 {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1},
+
117 {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1}, {32.0, -4.0, 0, 1}, {45.0, -4.0, 0, 1}, {46.0, -4.0, 0, 1}, {47.0, -4.0, 0, 1},
+
118 {51.0, -4.0, 0, 1}, {52.0, -4.0, 0, 1}, {53.0, -4.0, 0, 1}, {-63.0, -3.0, 0, 1}, {-62.0, -3.0, 0, 1}, {-61.0, -3.0, 0, 1},
+
119 {-48.0, -3.0, 0, 1}, {-47.0, -3.0, 0, 1}, {-46.0, -3.0, 0, 1}, {-33.0, -3.0, 0, 1}, {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1},
+
120 {-30.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
121 {-15.0, -3.0, 0, 1}, {-14.0, -3.0, 0, 1}, {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-1.0, -3.0, 0, 1},
+
122 {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1}, {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
123 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {32.0, -3.0, 0, 1}, {45.0, -3.0, 0, 1}, {46.0, -3.0, 0, 1}, {47.0, -3.0, 0, 1},
+
124 {51.0, -3.0, 0, 1}, {52.0, -3.0, 0, 1}, {53.0, -3.0, 0, 1}, {-63.0, -2.0, 0, 1}, {-62.0, -2.0, 0, 1}, {-61.0, -2.0, 0, 1},
+
125 {-60.0, -2.0, 0, 1}, {-59.0, -2.0, 0, 1}, {-58.0, -2.0, 0, 1}, {-57.0, -2.0, 0, 1}, {-56.0, -2.0, 0, 1}, {-55.0, -2.0, 0, 1},
+
126 {-54.0, -2.0, 0, 1}, {-53.0, -2.0, 0, 1}, {-48.0, -2.0, 0, 1}, {-47.0, -2.0, 0, 1}, {-46.0, -2.0, 0, 1}, {-45.0, -2.0, 0, 1},
+
127 {-44.0, -2.0, 0, 1}, {-43.0, -2.0, 0, 1}, {-42.0, -2.0, 0, 1}, {-41.0, -2.0, 0, 1}, {-40.0, -2.0, 0, 1}, {-39.0, -2.0, 0, 1},
+
128 {-38.0, -2.0, 0, 1}, {-33.0, -2.0, 0, 1}, {-32.0, -2.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1},
+
129 {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
130 {-14.0, -2.0, 0, 1}, {-7.0, -2.0, 0, 1}, {-6.0, -2.0, 0, 1}, {-5.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
131 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {6.0, -2.0, 0, 1},
+
132 {7.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
133 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
134 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {30.0, -2.0, 0, 1}, {31.0, -2.0, 0, 1}, {32.0, -2.0, 0, 1}, {33.0, -2.0, 0, 1},
+
135 {34.0, -2.0, 0, 1}, {35.0, -2.0, 0, 1}, {36.0, -2.0, 0, 1}, {37.0, -2.0, 0, 1}, {38.0, -2.0, 0, 1}, {39.0, -2.0, 0, 1},
+
136 {40.0, -2.0, 0, 1}, {45.0, -2.0, 0, 1}, {46.0, -2.0, 0, 1}, {47.0, -2.0, 0, 1}, {51.0, -2.0, 0, 1}, {52.0, -2.0, 0, 1},
+
137 {53.0, -2.0, 0, 1}, {54.0, -2.0, 0, 1}, {55.0, -2.0, 0, 1}, {56.0, -2.0, 0, 1}, {57.0, -2.0, 0, 1}, {58.0, -2.0, 0, 1},
+
138 {59.0, -2.0, 0, 1}, {60.0, -2.0, 0, 1}, {61.0, -2.0, 0, 1}, {-63.0, -1.0, 0, 1}, {-62.0, -1.0, 0, 1}, {-61.0, -1.0, 0, 1},
+
139 {-60.0, -1.0, 0, 1}, {-59.0, -1.0, 0, 1}, {-58.0, -1.0, 0, 1}, {-57.0, -1.0, 0, 1}, {-56.0, -1.0, 0, 1}, {-55.0, -1.0, 0, 1},
+
140 {-54.0, -1.0, 0, 1}, {-53.0, -1.0, 0, 1}, {-48.0, -1.0, 0, 1}, {-47.0, -1.0, 0, 1}, {-46.0, -1.0, 0, 1}, {-45.0, -1.0, 0, 1},
+
141 {-44.0, -1.0, 0, 1}, {-43.0, -1.0, 0, 1}, {-42.0, -1.0, 0, 1}, {-41.0, -1.0, 0, 1}, {-40.0, -1.0, 0, 1}, {-39.0, -1.0, 0, 1},
+
142 {-38.0, -1.0, 0, 1}, {-37.0, -1.0, 0, 1}, {-33.0, -1.0, 0, 1}, {-32.0, -1.0, 0, 1}, {-31.0, -1.0, 0, 1}, {-30.0, -1.0, 0, 1},
+
143 {-29.0, -1.0, 0, 1}, {-28.0, -1.0, 0, 1}, {-27.0, -1.0, 0, 1}, {-26.0, -1.0, 0, 1}, {-25.0, -1.0, 0, 1}, {-24.0, -1.0, 0, 1},
+
144 {-23.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1},
+
145 {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1}, {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1},
+
146 {-9.0, -1.0, 0, 1}, {-8.0, -1.0, 0, 1}, {-7.0, -1.0, 0, 1}, {-6.0, -1.0, 0, 1}, {-5.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1},
+
147 {0.0, -1.0, 0, 1}, {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1},
+
148 {6.0, -1.0, 0, 1}, {7.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
149 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {21.0, -1.0, 0, 1},
+
150 {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1}, {25.0, -1.0, 0, 1}, {30.0, -1.0, 0, 1}, {31.0, -1.0, 0, 1},
+
151 {32.0, -1.0, 0, 1}, {33.0, -1.0, 0, 1}, {34.0, -1.0, 0, 1}, {35.0, -1.0, 0, 1}, {36.0, -1.0, 0, 1}, {37.0, -1.0, 0, 1},
+
152 {38.0, -1.0, 0, 1}, {39.0, -1.0, 0, 1}, {40.0, -1.0, 0, 1}, {41.0, -1.0, 0, 1}, {45.0, -1.0, 0, 1}, {46.0, -1.0, 0, 1},
+
153 {47.0, -1.0, 0, 1}, {51.0, -1.0, 0, 1}, {52.0, -1.0, 0, 1}, {53.0, -1.0, 0, 1}, {54.0, -1.0, 0, 1}, {55.0, -1.0, 0, 1},
+
154 {56.0, -1.0, 0, 1}, {57.0, -1.0, 0, 1}, {58.0, -1.0, 0, 1}, {59.0, -1.0, 0, 1}, {60.0, -1.0, 0, 1}, {61.0, -1.0, 0, 1},
+
155 {-63.0, 0.0, 0, 1}, {-62.0, 0.0, 0, 1}, {-61.0, 0.0, 0, 1}, {-60.0, 0.0, 0, 1}, {-59.0, 0.0, 0, 1}, {-58.0, 0.0, 0, 1},
+
156 {-57.0, 0.0, 0, 1}, {-56.0, 0.0, 0, 1}, {-55.0, 0.0, 0, 1}, {-54.0, 0.0, 0, 1}, {-53.0, 0.0, 0, 1}, {-47.0, 0.0, 0, 1},
+
157 {-46.0, 0.0, 0, 1}, {-45.0, 0.0, 0, 1}, {-44.0, 0.0, 0, 1}, {-43.0, 0.0, 0, 1}, {-42.0, 0.0, 0, 1}, {-41.0, 0.0, 0, 1},
+
158 {-40.0, 0.0, 0, 1}, {-39.0, 0.0, 0, 1}, {-38.0, 0.0, 0, 1}, {-37.0, 0.0, 0, 1}, {-33.0, 0.0, 0, 1}, {-32.0, 0.0, 0, 1},
+
159 {-31.0, 0.0, 0, 1}, {-30.0, 0.0, 0, 1}, {-29.0, 0.0, 0, 1}, {-28.0, 0.0, 0, 1}, {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1},
+
160 {-25.0, 0.0, 0, 1}, {-24.0, 0.0, 0, 1}, {-23.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1},
+
161 {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1},
+
162 {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-8.0, 0.0, 0, 1}, {-7.0, 0.0, 0, 1}, {-6.0, 0.0, 0, 1}, {-5.0, 0.0, 0, 1},
+
163 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
164 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1},
+
165 {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {21.0, 0.0, 0, 1},
+
166 {22.0, 0.0, 0, 1}, {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {25.0, 0.0, 0, 1}, {26.0, 0.0, 0, 1}, {31.0, 0.0, 0, 1},
+
167 {32.0, 0.0, 0, 1}, {33.0, 0.0, 0, 1}, {34.0, 0.0, 0, 1}, {35.0, 0.0, 0, 1}, {36.0, 0.0, 0, 1}, {37.0, 0.0, 0, 1},
+
168 {38.0, 0.0, 0, 1}, {39.0, 0.0, 0, 1}, {40.0, 0.0, 0, 1}, {41.0, 0.0, 0, 1}, {45.0, 0.0, 0, 1}, {46.0, 0.0, 0, 1},
+
169 {47.0, 0.0, 0, 1}, {51.0, 0.0, 0, 1}, {52.0, 0.0, 0, 1}, {53.0, 0.0, 0, 1}, {54.0, 0.0, 0, 1}, {55.0, 0.0, 0, 1},
+
170 {56.0, 0.0, 0, 1}, {57.0, 0.0, 0, 1}, {58.0, 0.0, 0, 1}, {59.0, 0.0, 0, 1}, {60.0, 0.0, 0, 1}, {61.0, 0.0, 0, 1},
+
171 {-63.0, 1.0, 0, 1}, {-62.0, 1.0, 0, 1}, {-61.0, 1.0, 0, 1}, {-39.0, 1.0, 0, 1}, {-38.0, 1.0, 0, 1}, {-37.0, 1.0, 0, 1},
+
172 {-36.0, 1.0, 0, 1}, {-33.0, 1.0, 0, 1}, {-32.0, 1.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
173 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
174 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1}, {-14.0, 1.0, 0, 1},
+
175 {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {-8.0, 1.0, 0, 1},
+
176 {-7.0, 1.0, 0, 1}, {-6.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1},
+
177 {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {38.0, 1.0, 0, 1}, {39.0, 1.0, 0, 1}, {40.0, 1.0, 0, 1},
+
178 {41.0, 1.0, 0, 1}, {45.0, 1.0, 0, 1}, {46.0, 1.0, 0, 1}, {47.0, 1.0, 0, 1}, {51.0, 1.0, 0, 1}, {52.0, 1.0, 0, 1},
+
179 {53.0, 1.0, 0, 1}, {-63.0, 2.0, 0, 1}, {-62.0, 2.0, 0, 1}, {-61.0, 2.0, 0, 1}, {-39.0, 2.0, 0, 1}, {-38.0, 2.0, 0, 1},
+
180 {-37.0, 2.0, 0, 1}, {-36.0, 2.0, 0, 1}, {-33.0, 2.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
181 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
182 {-23.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1},
+
183 {-8.0, 2.0, 0, 1}, {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1},
+
184 {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1}, {39.0, 2.0, 0, 1}, {40.0, 2.0, 0, 1}, {41.0, 2.0, 0, 1},
+
185 {45.0, 2.0, 0, 1}, {46.0, 2.0, 0, 1}, {47.0, 2.0, 0, 1}, {51.0, 2.0, 0, 1}, {52.0, 2.0, 0, 1}, {53.0, 2.0, 0, 1},
+
186 {-63.0, 3.0, 0, 1}, {-62.0, 3.0, 0, 1}, {-61.0, 3.0, 0, 1}, {-39.0, 3.0, 0, 1}, {-38.0, 3.0, 0, 1}, {-37.0, 3.0, 0, 1},
+
187 {-36.0, 3.0, 0, 1}, {-33.0, 3.0, 0, 1}, {-32.0, 3.0, 0, 1}, {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1},
+
188 {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1}, {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1},
+
189 {-1.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1}, {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1},
+
190 {39.0, 3.0, 0, 1}, {40.0, 3.0, 0, 1}, {41.0, 3.0, 0, 1}, {45.0, 3.0, 0, 1}, {46.0, 3.0, 0, 1}, {47.0, 3.0, 0, 1},
+
191 {51.0, 3.0, 0, 1}, {52.0, 3.0, 0, 1}, {53.0, 3.0, 0, 1}, {-63.0, 4.0, 0, 1}, {-62.0, 4.0, 0, 1}, {-61.0, 4.0, 0, 1},
+
192 {-39.0, 4.0, 0, 1}, {-38.0, 4.0, 0, 1}, {-37.0, 4.0, 0, 1}, {-36.0, 4.0, 0, 1}, {-33.0, 4.0, 0, 1}, {-32.0, 4.0, 0, 1},
+
193 {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1},
+
194 {-7.0, 4.0, 0, 1}, {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-1.0, 4.0, 0, 1}, {0.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1},
+
195 {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {39.0, 4.0, 0, 1}, {40.0, 4.0, 0, 1}, {41.0, 4.0, 0, 1},
+
196 {45.0, 4.0, 0, 1}, {46.0, 4.0, 0, 1}, {47.0, 4.0, 0, 1}, {51.0, 4.0, 0, 1}, {52.0, 4.0, 0, 1}, {53.0, 4.0, 0, 1},
+
197 {-63.0, 5.0, 0, 1}, {-62.0, 5.0, 0, 1}, {-61.0, 5.0, 0, 1}, {-39.0, 5.0, 0, 1}, {-38.0, 5.0, 0, 1}, {-37.0, 5.0, 0, 1},
+
198 {-36.0, 5.0, 0, 1}, {-33.0, 5.0, 0, 1}, {-32.0, 5.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1},
+
199 {-16.0, 5.0, 0, 1}, {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1},
+
200 {-1.0, 5.0, 0, 1}, {0.0, 5.0, 0, 1}, {1.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1},
+
201 {39.0, 5.0, 0, 1}, {40.0, 5.0, 0, 1}, {41.0, 5.0, 0, 1}, {45.0, 5.0, 0, 1}, {46.0, 5.0, 0, 1}, {47.0, 5.0, 0, 1},
+
202 {51.0, 5.0, 0, 1}, {52.0, 5.0, 0, 1}, {53.0, 5.0, 0, 1}, {-63.0, 6.0, 0, 1}, {-62.0, 6.0, 0, 1}, {-61.0, 6.0, 0, 1},
+
203 {-39.0, 6.0, 0, 1}, {-38.0, 6.0, 0, 1}, {-37.0, 6.0, 0, 1}, {-36.0, 6.0, 0, 1}, {-33.0, 6.0, 0, 1}, {-32.0, 6.0, 0, 1},
+
204 {-31.0, 6.0, 0, 1}, {-30.0, 6.0, 0, 1}, {-17.0, 6.0, 0, 1}, {-16.0, 6.0, 0, 1}, {-15.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1},
+
205 {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-1.0, 6.0, 0, 1}, {0.0, 6.0, 0, 1}, {1.0, 6.0, 0, 1},
+
206 {24.0, 6.0, 0, 1}, {25.0, 6.0, 0, 1}, {26.0, 6.0, 0, 1}, {39.0, 6.0, 0, 1}, {40.0, 6.0, 0, 1}, {41.0, 6.0, 0, 1},
+
207 {45.0, 6.0, 0, 1}, {46.0, 6.0, 0, 1}, {47.0, 6.0, 0, 1}, {51.0, 6.0, 0, 1}, {52.0, 6.0, 0, 1}, {53.0, 6.0, 0, 1},
+
208 {-63.0, 7.0, 0, 1}, {-62.0, 7.0, 0, 1}, {-61.0, 7.0, 0, 1}, {-39.0, 7.0, 0, 1}, {-38.0, 7.0, 0, 1}, {-37.0, 7.0, 0, 1},
+
209 {-36.0, 7.0, 0, 1}, {-33.0, 7.0, 0, 1}, {-32.0, 7.0, 0, 1}, {-31.0, 7.0, 0, 1}, {-30.0, 7.0, 0, 1}, {-17.0, 7.0, 0, 1},
+
210 {-16.0, 7.0, 0, 1}, {-15.0, 7.0, 0, 1}, {-14.0, 7.0, 0, 1}, {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1},
+
211 {-1.0, 7.0, 0, 1}, {0.0, 7.0, 0, 1}, {1.0, 7.0, 0, 1}, {24.0, 7.0, 0, 1}, {25.0, 7.0, 0, 1}, {26.0, 7.0, 0, 1},
+
212 {39.0, 7.0, 0, 1}, {40.0, 7.0, 0, 1}, {41.0, 7.0, 0, 1}, {45.0, 7.0, 0, 1}, {46.0, 7.0, 0, 1}, {47.0, 7.0, 0, 1},
+
213 {51.0, 7.0, 0, 1}, {52.0, 7.0, 0, 1}, {53.0, 7.0, 0, 1}, {-63.0, 8.0, 0, 1}, {-62.0, 8.0, 0, 1}, {-61.0, 8.0, 0, 1},
+
214 {-60.0, 8.0, 0, 1}, {-59.0, 8.0, 0, 1}, {-58.0, 8.0, 0, 1}, {-57.0, 8.0, 0, 1}, {-56.0, 8.0, 0, 1}, {-55.0, 8.0, 0, 1},
+
215 {-54.0, 8.0, 0, 1}, {-53.0, 8.0, 0, 1}, {-52.0, 8.0, 0, 1}, {-48.0, 8.0, 0, 1}, {-47.0, 8.0, 0, 1}, {-46.0, 8.0, 0, 1},
+
216 {-45.0, 8.0, 0, 1}, {-44.0, 8.0, 0, 1}, {-43.0, 8.0, 0, 1}, {-42.0, 8.0, 0, 1}, {-41.0, 8.0, 0, 1}, {-40.0, 8.0, 0, 1},
+
217 {-39.0, 8.0, 0, 1}, {-38.0, 8.0, 0, 1}, {-37.0, 8.0, 0, 1}, {-33.0, 8.0, 0, 1}, {-32.0, 8.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
218 {-30.0, 8.0, 0, 1}, {-17.0, 8.0, 0, 1}, {-16.0, 8.0, 0, 1}, {-15.0, 8.0, 0, 1}, {-14.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1},
+
219 {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1},
+
220 {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1}, {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1},
+
221 {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1}, {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1},
+
222 {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {22.0, 8.0, 0, 1},
+
223 {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {30.0, 8.0, 0, 1},
+
224 {31.0, 8.0, 0, 1}, {32.0, 8.0, 0, 1}, {33.0, 8.0, 0, 1}, {34.0, 8.0, 0, 1}, {35.0, 8.0, 0, 1}, {36.0, 8.0, 0, 1},
+
225 {37.0, 8.0, 0, 1}, {38.0, 8.0, 0, 1}, {39.0, 8.0, 0, 1}, {40.0, 8.0, 0, 1}, {41.0, 8.0, 0, 1}, {45.0, 8.0, 0, 1},
+
226 {46.0, 8.0, 0, 1}, {47.0, 8.0, 0, 1}, {51.0, 8.0, 0, 1}, {52.0, 8.0, 0, 1}, {53.0, 8.0, 0, 1}, {-63.0, 9.0, 0, 1},
+
227 {-62.0, 9.0, 0, 1}, {-61.0, 9.0, 0, 1}, {-60.0, 9.0, 0, 1}, {-59.0, 9.0, 0, 1}, {-58.0, 9.0, 0, 1}, {-57.0, 9.0, 0, 1},
+
228 {-56.0, 9.0, 0, 1}, {-55.0, 9.0, 0, 1}, {-54.0, 9.0, 0, 1}, {-53.0, 9.0, 0, 1}, {-52.0, 9.0, 0, 1}, {-48.0, 9.0, 0, 1},
+
229 {-47.0, 9.0, 0, 1}, {-46.0, 9.0, 0, 1}, {-45.0, 9.0, 0, 1}, {-44.0, 9.0, 0, 1}, {-43.0, 9.0, 0, 1}, {-42.0, 9.0, 0, 1},
+
230 {-41.0, 9.0, 0, 1}, {-40.0, 9.0, 0, 1}, {-39.0, 9.0, 0, 1}, {-38.0, 9.0, 0, 1}, {-37.0, 9.0, 0, 1}, {-33.0, 9.0, 0, 1},
+
231 {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-17.0, 9.0, 0, 1}, {-16.0, 9.0, 0, 1}, {-15.0, 9.0, 0, 1},
+
232 {-14.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1}, {1.0, 9.0, 0, 1},
+
233 {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1}, {7.0, 9.0, 0, 1},
+
234 {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1}, {16.0, 9.0, 0, 1},
+
235 {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1},
+
236 {23.0, 9.0, 0, 1}, {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1}, {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1},
+
237 {32.0, 9.0, 0, 1}, {33.0, 9.0, 0, 1}, {34.0, 9.0, 0, 1}, {35.0, 9.0, 0, 1}, {36.0, 9.0, 0, 1}, {37.0, 9.0, 0, 1},
+
238 {38.0, 9.0, 0, 1}, {39.0, 9.0, 0, 1}, {40.0, 9.0, 0, 1}, {41.0, 9.0, 0, 1}, {45.0, 9.0, 0, 1}, {46.0, 9.0, 0, 1},
+
239 {47.0, 9.0, 0, 1}, {51.0, 9.0, 0, 1}, {52.0, 9.0, 0, 1}, {53.0, 9.0, 0, 1}, {-62.0, 10.0, 0, 1}, {-61.0, 10.0, 0, 1},
+
240 {-60.0, 10.0, 0, 1}, {-59.0, 10.0, 0, 1}, {-58.0, 10.0, 0, 1}, {-57.0, 10.0, 0, 1}, {-56.0, 10.0, 0, 1}, {-55.0, 10.0, 0, 1},
+
241 {-54.0, 10.0, 0, 1}, {-53.0, 10.0, 0, 1}, {-52.0, 10.0, 0, 1}, {-48.0, 10.0, 0, 1}, {-47.0, 10.0, 0, 1}, {-46.0, 10.0, 0, 1},
+
242 {-45.0, 10.0, 0, 1}, {-44.0, 10.0, 0, 1}, {-43.0, 10.0, 0, 1}, {-42.0, 10.0, 0, 1}, {-41.0, 10.0, 0, 1}, {-40.0, 10.0, 0, 1},
+
243 {-39.0, 10.0, 0, 1}, {-38.0, 10.0, 0, 1}, {-33.0, 10.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1},
+
244 {-17.0, 10.0, 0, 1}, {-16.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1},
+
245 {-4.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1}, {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1},
+
246 {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1},
+
247 {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1},
+
248 {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1}, {24.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
249 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {32.0, 10.0, 0, 1}, {33.0, 10.0, 0, 1}, {34.0, 10.0, 0, 1}, {35.0, 10.0, 0, 1},
+
250 {36.0, 10.0, 0, 1}, {37.0, 10.0, 0, 1}, {38.0, 10.0, 0, 1}, {39.0, 10.0, 0, 1}, {40.0, 10.0, 0, 1}, {45.0, 10.0, 0, 1},
+
251 {46.0, 10.0, 0, 1}, {47.0, 10.0, 0, 1}, {51.0, 10.0, 0, 1}, {52.0, 10.0, 0, 1}, {53.0, 10.0, 0, 1}
+
252};
+
+
+
+ +

◆ image_bmp_array_esp_text

+ +
+
+ + + + + +
+ + + + +
const uint8_t image_bmp_array_esp_text[384]
+
+extern
+
+ +

Definition at line 9 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
9 {
+
10
+
11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
12 0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
13 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
14 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
15 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
16 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
17 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
18 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
19 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
20 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
21 0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
22 0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
23 0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
24 0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
25 0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
26 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
27 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
28 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
29 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
30 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
31 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
32 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
33 0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
35
+
36};
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js new file mode 100644 index 0000000..aead09a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js @@ -0,0 +1,5 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h = +[ + [ "image_3d_array_esp_text", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html#aca921c7ba529f39acf0b48eddef96266", null ], + [ "image_bmp_array_esp_text", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html#ace7ab8bb5752781ce55ed3b3f7b01c06", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 new file mode 100644 index 0000000..8596b23 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 @@ -0,0 +1 @@ +342c16fce128af29ff43ef07c6a78a9d \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg new file mode 100644 index 0000000..73d5d99 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +esp_text.c + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg new file mode 100644 index 0000000..c919366 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +esp_text.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 new file mode 100644 index 0000000..be5b932 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 @@ -0,0 +1 @@ +95b3e9fdb506061330e38f6b1c0d5574 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg new file mode 100644 index 0000000..a946a82 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg new file mode 100644 index 0000000..e377c9f --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html new file mode 100644 index 0000000..2813d92 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: esp_text.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.h
+
+
+Go to the documentation of this file.
1// File generated by image_to_3d_array.py
+
2
+
3#pragma once
+
4
+
5#include <stdint.h>
+
6
+
7#ifdef __cplusplus
+
8extern "C" {
+
9#endif
+
10
+
11extern const uint8_t image_bmp_array_esp_text[384];
+
12extern const float image_3d_array_esp_text[1271][4];
+
13
+
14#ifdef __cplusplus
+
15}
+
16#endif
+ + +
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html new file mode 100644 index 0000000..b5b823b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html @@ -0,0 +1,488 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics_support.cpp File Reference
+
+
+
#include <malloc.h>
+#include <math.h>
+#include "graphics_support.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

void init_perspective_matrix (dspm::Mat &P_m)
 initialize perspective projection matrix
void update_perspective_matrix (dspm::Mat &P_m, float fov)
 update perspective matrix
void update_scaling_matrix (dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
 update scaling matrix
void update_translation_matrix (dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
 update translation matrix
void update_rotation_matrix (dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
 update rotation matrix
void print_matrix (dspm::Mat matrix)
 printf matrix to the terminal output
+

Function Documentation

+ +

◆ init_perspective_matrix()

+ +
+
+ + + + + + + +
void init_perspective_matrix (dspm::Mat & P_m)
+
+ +

initialize perspective projection matrix

+

Function initializes Mat class object holding perspective projection matrix.

+
Parameters
+ + +
P_mperspective projection matrix object from the Mat class
+
+
+ +

Definition at line 12 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
13{
+
14 const float fov = 90; // field of view in degrees
+
15 const float near = 0.0001;
+
16 const float far = 1;
+
17
+
18 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
19
+
20 // Initialize matrix to zero
+
21 for (int row = 0; row < P_m.rows; row++) {
+
22 for (int col = 0; col < P_m.cols; col++) {
+
23 P_m(row, col) = 0;
+
24 }
+
25 }
+
26
+
27 P_m(0, 0) = S;
+
28 P_m(1, 1) = S;
+
29 P_m(2, 2) = -far / (far - near);
+
30 P_m(3, 2) = (-far * near) / (far - near);
+
31 P_m(2, 3) = -1;
+
32 P_m(3, 3) = 1;
+
33}
+ +
int cols
Definition mat.h:34
+
int rows
Definition mat.h:33
+
+

References dspm::Mat::cols, DEG_TO_RAD, and dspm::Mat::rows.

+ +
+
+ +

◆ print_matrix()

+ +
+
+ + + + + + + +
void print_matrix (dspm::Mat matrix)
+
+ +

printf matrix to the terminal output

+

Print matrix for debug purposes

+
Parameters
+ + +
matrixmatrix to be printed
+
+
+ +

Definition at line 105 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
106{
+
107 for (int rows = 0; rows < matrix.rows; rows++) {
+
108 for (int cols = 0; cols < matrix.cols; cols++) {
+
109 std::cout << matrix(rows, cols) << ", \t";
+
110 }
+
111 std::cout << std::endl;
+
112 }
+
113 std::cout << std::endl << std::endl;
+
114}
+
+

References dspm::Mat::cols, and dspm::Mat::rows.

+ +
+
+ +

◆ update_perspective_matrix()

+ +
+
+ + + + + + + + + + + +
void update_perspective_matrix (dspm::Mat & P_m,
float fov )
+
+ +

update perspective matrix

+

Function updates perspective matrix with a new value of field of view

+
Parameters
+ + + +
P_mperspective projection matrix object from the Mat class
fovfield of view in degrees
+
+
+ +

Definition at line 35 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
36{
+
37 const float near = 0.0001;
+
38 const float far = 1;
+
39
+
40 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
41
+
42 // Initialize matrix to zero
+
43 for (int row = 0; row < P_m.rows; row++) {
+
44 for (int col = 0; col < P_m.cols; col++) {
+
45 P_m(row, col) = 0;
+
46 }
+
47 }
+
48
+
49 P_m(0, 0) = S;
+
50 P_m(1, 1) = S;
+
51 P_m(2, 2) = -far / (far - near);
+
52 P_m(3, 2) = (-far * near) / (far - near);
+
53 P_m(2, 3) = -1;
+
54 P_m(3, 3) = 1;
+
55
+
56 P_m(3, 0) = (float)SSD1606_X_CENTER;
+
57 P_m(3, 1) = (float)SSD1606_Y_CENTER;
+
58}
+ + +
+

References dspm::Mat::cols, DEG_TO_RAD, dspm::Mat::rows, SSD1606_X_CENTER, and SSD1606_Y_CENTER.

+ +
+
+ +

◆ update_rotation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void update_rotation_matrix (dspm::Mat & T_m,
float rot_x,
float rot_y,
float rot_z )
+
+ +

update rotation matrix

+

Function updates rotation part of the tranformation matrix

+
Parameters
+ + + + + +
T_mtransformation matrix object from the Mat class
rot_xrotation angle for x direction of the vector
rot_yrotation angle for y direction of the vector
rot_zrotation angle for z direction of the vector
+
+
+ +

Definition at line 87 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
88{
+
89 dspm::Mat rotation_data(3, 1); // matrix(3x1) that holds x, y, z rotation data
+
90 rotation_data(0, 0) = DEG_TO_RAD * rot_x; // rotation data x
+
91 rotation_data(1, 0) = DEG_TO_RAD * rot_y; // rotation data y
+
92 rotation_data(2, 0) = DEG_TO_RAD * rot_z; // rotation data z
+
93
+
94 // Create and populate rotation matrix R(3x3). Then inverse it
+
95 dspm::Mat R = ekf::eul2rotm(rotation_data.data).t();
+
96
+
97 // Enlarge rotation matrix from 3x3 to 4x4
+
98 for (int row = 0; row < R.rows; row++) { // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
99 for (int col = 0; col < R.cols; col++) {
+
100 T_m(row, col) = R(row, col);
+
101 }
+
102 }
+
103}
+
Matrix.
Definition mat.h:30
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
+

References dspm::Mat::cols, dspm::Mat::data, DEG_TO_RAD, ekf::eul2rotm(), dspm::Mat::rows, and dspm::Mat::t().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ update_scaling_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_scaling_matrix (dspm::Mat & T_m,
bool keep_diagonal,
float scale_x,
float scale_y,
float scale_z )
+
+ +

update scaling matrix

+

Function updates scaling part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
keep_diagonalif true: diagonal row of the transformation matrix T_m will be mulitplied with the scaling values if false: diagonal row of the transformation matrix T_m will be substituted with new scaling values
scale_xscaling value for x coordinate of the vector
scale_yscaling value for y coordinate of the vector
scale_zscaling value for z coordinate of the vector
+
+
+ +

Definition at line 60 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
61{
+
62 if (keep_diagonal) { // Multiply the diagonal values of the transformation matrix with the scaling
+
63 T_m(0, 0) *= scale_x; // (in case a rotation is already applied)
+
64 T_m(1, 1) *= scale_y;
+
65 T_m(2, 2) *= scale_z;
+
66 } else {
+
67 T_m(0, 0) = scale_x;
+
68 T_m(1, 1) = scale_y;
+
69 T_m(2, 2) = scale_z;
+
70 }
+
71}
+
+
+
+ +

◆ update_translation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_translation_matrix (dspm::Mat & T_m,
bool row,
float move_x,
float move_y,
float move_z )
+
+ +

update translation matrix

+

Function updates translation part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
rowif true: translation values will be placed to the 3rd row of the transformation matrix T_m if false: translation values will be placed to the 3rd col of the transformation matrix T_m
move_xtranslation value for x coordinate of the vector
move_ytranslation value for y coordinate of the vector
move_ztranslation value for z coordinate of the vector
+
+
+ +

Definition at line 73 of file external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
74{
+
75 if (row) { // update values in 4-th row, if translation matrix is the second multiplier
+
76 T_m(3, 0) = move_x;
+
77 T_m(3, 1) = move_y;
+
78 T_m(3, 2) = move_z;
+
79 } else { // update values in 4-th collum, if translation matrix is the first multiplier
+
80 T_m(0, 3) = move_x;
+
81 T_m(1, 3) = move_y;
+
82 T_m(2, 3) = move_z;
+
83 }
+
84}
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js new file mode 100644 index 0000000..4c00c36 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js @@ -0,0 +1,9 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp = +[ + [ "init_perspective_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#ab5c13c601603a6d1b586b8ad9aa7ee98", null ], + [ "print_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a99863c33e6651eb83f8211d67ccc7f2e", null ], + [ "update_perspective_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a7361f858eac611923f3e090a2a4837c8", null ], + [ "update_rotation_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#abddf00a5f71e067190147e3ecdb49d3f", null ], + [ "update_scaling_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a7d3520bcf116c1dcaa67c1925e48b2d9", null ], + [ "update_translation_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a2f5dfc8616993b1485635978ec29513d", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 new file mode 100644 index 0000000..064f8e5 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 @@ -0,0 +1 @@ +1483069897a11440e85500ca78981929 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg new file mode 100644 index 0000000..e0b5c81 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::t + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg new file mode 100644 index 0000000..4b84755 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::t + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html new file mode 100644 index 0000000..e856916 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html @@ -0,0 +1,248 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <malloc.h>
+
8#include <math.h>
+
9#include "graphics_support.h"
+
10
+
11
+
+ +
13{
+
14 const float fov = 90; // field of view in degrees
+
15 const float near = 0.0001;
+
16 const float far = 1;
+
17
+
18 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
19
+
20 // Initialize matrix to zero
+
21 for (int row = 0; row < P_m.rows; row++) {
+
22 for (int col = 0; col < P_m.cols; col++) {
+
23 P_m(row, col) = 0;
+
24 }
+
25 }
+
26
+
27 P_m(0, 0) = S;
+
28 P_m(1, 1) = S;
+
29 P_m(2, 2) = -far / (far - near);
+
30 P_m(3, 2) = (-far * near) / (far - near);
+
31 P_m(2, 3) = -1;
+
32 P_m(3, 3) = 1;
+
33}
+
+
34
+
+ +
36{
+
37 const float near = 0.0001;
+
38 const float far = 1;
+
39
+
40 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
41
+
42 // Initialize matrix to zero
+
43 for (int row = 0; row < P_m.rows; row++) {
+
44 for (int col = 0; col < P_m.cols; col++) {
+
45 P_m(row, col) = 0;
+
46 }
+
47 }
+
48
+
49 P_m(0, 0) = S;
+
50 P_m(1, 1) = S;
+
51 P_m(2, 2) = -far / (far - near);
+
52 P_m(3, 2) = (-far * near) / (far - near);
+
53 P_m(2, 3) = -1;
+
54 P_m(3, 3) = 1;
+
55
+
56 P_m(3, 0) = (float)SSD1606_X_CENTER;
+
57 P_m(3, 1) = (float)SSD1606_Y_CENTER;
+
58}
+
+
59
+
+
60void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
+
61{
+
62 if (keep_diagonal) { // Multiply the diagonal values of the transformation matrix with the scaling
+
63 T_m(0, 0) *= scale_x; // (in case a rotation is already applied)
+
64 T_m(1, 1) *= scale_y;
+
65 T_m(2, 2) *= scale_z;
+
66 } else {
+
67 T_m(0, 0) = scale_x;
+
68 T_m(1, 1) = scale_y;
+
69 T_m(2, 2) = scale_z;
+
70 }
+
71}
+
+
72
+
+
73void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
+
74{
+
75 if (row) { // update values in 4-th row, if translation matrix is the second multiplier
+
76 T_m(3, 0) = move_x;
+
77 T_m(3, 1) = move_y;
+
78 T_m(3, 2) = move_z;
+
79 } else { // update values in 4-th collum, if translation matrix is the first multiplier
+
80 T_m(0, 3) = move_x;
+
81 T_m(1, 3) = move_y;
+
82 T_m(2, 3) = move_z;
+
83 }
+
84}
+
+
85
+
86
+
+
87void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
+
88{
+
89 dspm::Mat rotation_data(3, 1); // matrix(3x1) that holds x, y, z rotation data
+
90 rotation_data(0, 0) = DEG_TO_RAD * rot_x; // rotation data x
+
91 rotation_data(1, 0) = DEG_TO_RAD * rot_y; // rotation data y
+
92 rotation_data(2, 0) = DEG_TO_RAD * rot_z; // rotation data z
+
93
+
94 // Create and populate rotation matrix R(3x3). Then inverse it
+
95 dspm::Mat R = ekf::eul2rotm(rotation_data.data).t();
+
96
+
97 // Enlarge rotation matrix from 3x3 to 4x4
+
98 for (int row = 0; row < R.rows; row++) { // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
99 for (int col = 0; col < R.cols; col++) {
+
100 T_m(row, col) = R(row, col);
+
101 }
+
102 }
+
103}
+
+
104
+
+ +
106{
+
107 for (int rows = 0; rows < matrix.rows; rows++) {
+
108 for (int cols = 0; cols < matrix.cols; cols++) {
+
109 std::cout << matrix(rows, cols) << ", \t";
+
110 }
+
111 std::cout << std::endl;
+
112 }
+
113 std::cout << std::endl << std::endl;
+
114}
+
+ + + +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
int cols
Definition mat.h:34
+
int rows
Definition mat.h:33
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+ +
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html new file mode 100644 index 0000000..973249a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html @@ -0,0 +1,652 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics_support.h File Reference
+
+
+
#include "esp_dsp.h"
+#include "ekf_imu13states.h"
+#include <stdint.h>
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  image_3d_matrix_s
 Data struct of 3d image matrix. More...
struct  image_3d_matrix_kalman_s
 Data struct of 3d image matrix with kalman filter object. More...
+ + + + + + + + +

+Macros

#define DEG_TO_RAD   0.01745329252f
#define RAD_TO_DEG   57.29577951f
#define MATRIX_SIZE   4
#define SSD1306_WIDTH   128
#define SSD1306_HEIGHT   64
#define SSD1606_X_CENTER   (SSD1306_WIDTH / 2)
#define SSD1606_Y_CENTER   (SSD1306_HEIGHT / 2)
+ + + + + +

+Typedefs

typedef struct image_3d_matrix_s image_3d_matrix_t
 Data struct of 3d image matrix.
typedef struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
 Data struct of 3d image matrix with kalman filter object.
+ + + + + + + + + + + + + +

+Functions

void init_perspective_matrix (dspm::Mat &P_m)
 initialize perspective projection matrix
void update_scaling_matrix (dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
 update scaling matrix
void update_translation_matrix (dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
 update translation matrix
void update_rotation_matrix (dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
 update rotation matrix
void update_perspective_matrix (dspm::Mat &P_m, float fov)
 update perspective matrix
void print_matrix (dspm::Mat matrix)
 printf matrix to the terminal output
+

Macro Definition Documentation

+ +

◆ DEG_TO_RAD

+ +
+
+ + + + +
#define DEG_TO_RAD   0.01745329252f
+
+
+ +

◆ MATRIX_SIZE

+ +
+
+ + + + +
#define MATRIX_SIZE   4
+
+
+ +

◆ RAD_TO_DEG

+ +
+
+ + + + +
#define RAD_TO_DEG   57.29577951f
+
+
+ +

◆ SSD1306_HEIGHT

+ +
+
+ + + + +
#define SSD1306_HEIGHT   64
+
+
+ +

◆ SSD1306_WIDTH

+ +
+
+ + + + +
#define SSD1306_WIDTH   128
+
+
+ +

◆ SSD1606_X_CENTER

+ +
+
+ + + + +
#define SSD1606_X_CENTER   (SSD1306_WIDTH / 2)
+
+
+ +

◆ SSD1606_Y_CENTER

+ +
+
+ + + + +
#define SSD1606_Y_CENTER   (SSD1306_HEIGHT / 2)
+
+
+

Typedef Documentation

+ +

◆ image_3d_matrix_kalman_t

+ +
+
+ +

Data struct of 3d image matrix with kalman filter object.

+

This structure is used to hold a 3d coordinates of a monochromatic image centered to the origin of the cartesian space (0, 0, 0), that has ben processed by the image_to_3d_array.py. Kalman filter object is added to the matrix, for the purpose of RTOS task arguments.

+ +
+
+ +

◆ image_3d_matrix_t

+ +
+
+ + + + +
typedef struct image_3d_matrix_s image_3d_matrix_t
+
+ +

Data struct of 3d image matrix.

+

This structure is used to hold a 3d coordinates of a monochromatic image centered to the origin of the cartesian space (0, 0, 0), that has ben processed by the image_to_3d_array.py.

+ +
+
+

Function Documentation

+ +

◆ init_perspective_matrix()

+ +
+
+ + + + + + + +
void init_perspective_matrix (dspm::Mat & P_m)
+
+ +

initialize perspective projection matrix

+

Function initializes Mat class object holding perspective projection matrix.

+
Parameters
+ + +
P_mperspective projection matrix object from the Mat class
+
+
+ +

Definition at line 12 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
13{
+
14 const float fov = 90; // field of view in degrees
+
15 const float near = 0.0001;
+
16 const float far = 1;
+
17
+
18 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
19
+
20 // Initialize matrix to zero
+
21 for (int row = 0; row < P_m.rows; row++) {
+
22 for (int col = 0; col < P_m.cols; col++) {
+
23 P_m(row, col) = 0;
+
24 }
+
25 }
+
26
+
27 P_m(0, 0) = S;
+
28 P_m(1, 1) = S;
+
29 P_m(2, 2) = -far / (far - near);
+
30 P_m(3, 2) = (-far * near) / (far - near);
+
31 P_m(2, 3) = -1;
+
32 P_m(3, 3) = 1;
+
33}
+ +
int cols
Definition mat.h:34
+
int rows
Definition mat.h:33
+
+
+
+ +

◆ print_matrix()

+ +
+
+ + + + + + + +
void print_matrix (dspm::Mat matrix)
+
+ +

printf matrix to the terminal output

+

Print matrix for debug purposes

+
Parameters
+ + +
matrixmatrix to be printed
+
+
+ +

Definition at line 105 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
106{
+
107 for (int rows = 0; rows < matrix.rows; rows++) {
+
108 for (int cols = 0; cols < matrix.cols; cols++) {
+
109 std::cout << matrix(rows, cols) << ", \t";
+
110 }
+
111 std::cout << std::endl;
+
112 }
+
113 std::cout << std::endl << std::endl;
+
114}
+
+
+
+ +

◆ update_perspective_matrix()

+ +
+
+ + + + + + + + + + + +
void update_perspective_matrix (dspm::Mat & P_m,
float fov )
+
+ +

update perspective matrix

+

Function updates perspective matrix with a new value of field of view

+
Parameters
+ + + +
P_mperspective projection matrix object from the Mat class
fovfield of view in degrees
+
+
+ +

Definition at line 35 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
36{
+
37 const float near = 0.0001;
+
38 const float far = 1;
+
39
+
40 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
41
+
42 // Initialize matrix to zero
+
43 for (int row = 0; row < P_m.rows; row++) {
+
44 for (int col = 0; col < P_m.cols; col++) {
+
45 P_m(row, col) = 0;
+
46 }
+
47 }
+
48
+
49 P_m(0, 0) = S;
+
50 P_m(1, 1) = S;
+
51 P_m(2, 2) = -far / (far - near);
+
52 P_m(3, 2) = (-far * near) / (far - near);
+
53 P_m(2, 3) = -1;
+
54 P_m(3, 3) = 1;
+
55
+
56 P_m(3, 0) = (float)SSD1606_X_CENTER;
+
57 P_m(3, 1) = (float)SSD1606_Y_CENTER;
+
58}
+ + +
+
+
+ +

◆ update_rotation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void update_rotation_matrix (dspm::Mat & T_m,
float rot_x,
float rot_y,
float rot_z )
+
+ +

update rotation matrix

+

Function updates rotation part of the tranformation matrix

+
Parameters
+ + + + + +
T_mtransformation matrix object from the Mat class
rot_xrotation angle for x direction of the vector
rot_yrotation angle for y direction of the vector
rot_zrotation angle for z direction of the vector
+
+
+ +

Definition at line 87 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
88{
+
89 dspm::Mat rotation_data(3, 1); // matrix(3x1) that holds x, y, z rotation data
+
90 rotation_data(0, 0) = DEG_TO_RAD * rot_x; // rotation data x
+
91 rotation_data(1, 0) = DEG_TO_RAD * rot_y; // rotation data y
+
92 rotation_data(2, 0) = DEG_TO_RAD * rot_z; // rotation data z
+
93
+
94 // Create and populate rotation matrix R(3x3). Then inverse it
+
95 dspm::Mat R = ekf::eul2rotm(rotation_data.data).t();
+
96
+
97 // Enlarge rotation matrix from 3x3 to 4x4
+
98 for (int row = 0; row < R.rows; row++) { // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
99 for (int col = 0; col < R.cols; col++) {
+
100 T_m(row, col) = R(row, col);
+
101 }
+
102 }
+
103}
+
Matrix.
Definition mat.h:30
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
+
+
+ +

◆ update_scaling_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_scaling_matrix (dspm::Mat & T_m,
bool keep_diagonal,
float scale_x,
float scale_y,
float scale_z )
+
+ +

update scaling matrix

+

Function updates scaling part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
keep_diagonalif true: diagonal row of the transformation matrix T_m will be mulitplied with the scaling values if false: diagonal row of the transformation matrix T_m will be substituted with new scaling values
scale_xscaling value for x coordinate of the vector
scale_yscaling value for y coordinate of the vector
scale_zscaling value for z coordinate of the vector
+
+
+ +

Definition at line 60 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
61{
+
62 if (keep_diagonal) { // Multiply the diagonal values of the transformation matrix with the scaling
+
63 T_m(0, 0) *= scale_x; // (in case a rotation is already applied)
+
64 T_m(1, 1) *= scale_y;
+
65 T_m(2, 2) *= scale_z;
+
66 } else {
+
67 T_m(0, 0) = scale_x;
+
68 T_m(1, 1) = scale_y;
+
69 T_m(2, 2) = scale_z;
+
70 }
+
71}
+
+
+
+ +

◆ update_translation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_translation_matrix (dspm::Mat & T_m,
bool row,
float move_x,
float move_y,
float move_z )
+
+ +

update translation matrix

+

Function updates translation part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
rowif true: translation values will be placed to the 3rd row of the transformation matrix T_m if false: translation values will be placed to the 3rd col of the transformation matrix T_m
move_xtranslation value for x coordinate of the vector
move_ytranslation value for y coordinate of the vector
move_ztranslation value for z coordinate of the vector
+
+
+ +

Definition at line 73 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
74{
+
75 if (row) { // update values in 4-th row, if translation matrix is the second multiplier
+
76 T_m(3, 0) = move_x;
+
77 T_m(3, 1) = move_y;
+
78 T_m(3, 2) = move_z;
+
79 } else { // update values in 4-th collum, if translation matrix is the first multiplier
+
80 T_m(0, 3) = move_x;
+
81 T_m(1, 3) = move_y;
+
82 T_m(2, 3) = move_z;
+
83 }
+
84}
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js new file mode 100644 index 0000000..bac72d1 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js @@ -0,0 +1,20 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h = +[ + [ "image_3d_matrix_s", "structimage__3d__matrix__s.html", "structimage__3d__matrix__s" ], + [ "image_3d_matrix_kalman_s", "structimage__3d__matrix__kalman__s.html", "structimage__3d__matrix__kalman__s" ], + [ "DEG_TO_RAD", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a212460e743fecb084d717bb2180c5a56", null ], + [ "MATRIX_SIZE", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a2bd32349fcbeb6ee86434a65226cba1a", null ], + [ "RAD_TO_DEG", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a89e47af0449640d4f15191aba5ca24c6", null ], + [ "SSD1306_HEIGHT", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a4e9409448a0df95c1686670e09b457b7", null ], + [ "SSD1306_WIDTH", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#ae5a2aa8865dd03537b97fd1c9037371b", null ], + [ "SSD1606_X_CENTER", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a7e67b59980d1941c4973fdd5e9f58b4f", null ], + [ "SSD1606_Y_CENTER", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#ab905ba021420183fc79b4d8a71213b1d", null ], + [ "image_3d_matrix_kalman_t", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a85a113d368cff695e92112af79745f63", null ], + [ "image_3d_matrix_t", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#aef6b2b7c7e85607408b2328992dc4c92", null ], + [ "init_perspective_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#ab5c13c601603a6d1b586b8ad9aa7ee98", null ], + [ "print_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a99863c33e6651eb83f8211d67ccc7f2e", null ], + [ "update_perspective_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a7361f858eac611923f3e090a2a4837c8", null ], + [ "update_rotation_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#abddf00a5f71e067190147e3ecdb49d3f", null ], + [ "update_scaling_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a7d3520bcf116c1dcaa67c1925e48b2d9", null ], + [ "update_translation_matrix", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a2f5dfc8616993b1485635978ec29513d", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html new file mode 100644 index 0000000..3e8db84 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html @@ -0,0 +1,185 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include "esp_dsp.h"
+
10#include "ekf_imu13states.h"
+
11
+
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
18#include <stdint.h>
+
19
+
20#define DEG_TO_RAD 0.01745329252f // Degrees to radians conversion
+
21#define RAD_TO_DEG 57.29577951f // Radians to degrees conversion
+
22#define MATRIX_SIZE 4 // 4x4 matrices are used
+
23#define SSD1306_WIDTH 128 // Display widh in pixels
+
24#define SSD1306_HEIGHT 64 // DIsplay height
+
25#define SSD1606_X_CENTER (SSD1306_WIDTH / 2) // Width center point
+
26#define SSD1606_Y_CENTER (SSD1306_HEIGHT / 2) // Height center point
+
27
+
34typedef struct image_3d_matrix_s {
+
35 const float (*matrix)[MATRIX_SIZE];
+
36 uint32_t matrix_len;
+ +
38
+
46typedef struct image_3d_matrix_kalman_s {
+
47 const float (*matrix)[MATRIX_SIZE];
+
48 uint32_t matrix_len;
+
49 ekf_imu13states *ekf13;
+ +
51
+
52
+ +
61
+
62
+
75void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z);
+
76
+
77
+
90void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z);
+
91
+
92
+
103void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z);
+
104
+
105
+
114void update_perspective_matrix(dspm::Mat &P_m, float fov);
+
115
+
116
+
124void print_matrix(dspm::Mat matrix);
+
125
+
126#ifdef __cplusplus
+
127}
+
128#endif
+ +
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+
Matrix.
Definition mat.h:30
+ + +
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void print_matrix(dspm::Mat matrix)
printf matrix to the terminal output
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + + + + + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef.md5 new file mode 100644 index 0000000..94fcaac --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef.md5 @@ -0,0 +1 @@ +4c0f14b797821d1a5a5519103ab1b445 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef.svg new file mode 100644 index 0000000..7172da9 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef_org.svg new file mode 100644 index 0000000..6d44af1 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixa6ad551b59a70a03108379e6edc21aef_org.svg @@ -0,0 +1,57 @@ + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94.md5 new file mode 100644 index 0000000..81e0589 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94.md5 @@ -0,0 +1 @@ +ce5f812f4728d10f04a31f260f8bc3aa \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94.svg new file mode 100644 index 0000000..7f7923b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94.svg @@ -0,0 +1,716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +graphics_support.cpp + + +Node1 + + +graphics_support.cpp + + + + + +Node2 + + +malloc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +graphics_support.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node4->Node7 + + + + + + + + +Node75 + + +ekf_imu13states.h + + + + + +Node4->Node75 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node5->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node5->Node17 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node5->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node5->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node5->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node5->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node5->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node5->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node5->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node5->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node5->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node5->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node5->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node5->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node5->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node5->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node5->Node74 + + + + + + + + +Node6->Node7 + + + + + + + + +Node15->Node7 + + + + + + + + +Node33->Node6 + + + + + + + + +Node35->Node33 + + + + + + + + +Node72->Node15 + + + + + + + + +Node74->Node15 + + + + + + + + +Node76 + + +ekf.h + + + + + +Node75->Node76 + + + + + + + + +Node76->Node3 + + + + + + + + +Node76->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94_org.svg new file mode 100644 index 0000000..892b1ed --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixb5d34a92c4f429129664397133b80c94_org.svg @@ -0,0 +1,633 @@ + + + + + + +graphics_support.cpp + + +Node1 + + +graphics_support.cpp + + + + + +Node2 + + +malloc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +graphics_support.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node4->Node7 + + + + + + + + +Node75 + + +ekf_imu13states.h + + + + + +Node4->Node75 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node5->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node5->Node17 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node5->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node5->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node5->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node5->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node5->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node5->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node5->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node5->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node5->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node5->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node5->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node5->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node5->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node5->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node5->Node74 + + + + + + + + +Node6->Node7 + + + + + + + + +Node15->Node7 + + + + + + + + +Node33->Node6 + + + + + + + + +Node35->Node33 + + + + + + + + +Node72->Node15 + + + + + + + + +Node74->Node15 + + + + + + + + +Node76 + + +ekf.h + + + + + +Node75->Node76 + + + + + + + + +Node76->Node3 + + + + + + + + +Node76->Node7 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.md5 new file mode 100644 index 0000000..e394836 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.md5 @@ -0,0 +1 @@ +da365c185aa61e193cca8561067c6c86 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.svg new file mode 100644 index 0000000..2143499 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +image_to_3d_matrix.c + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c_org.svg new file mode 100644 index 0000000..6201314 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixd35b9eb5a80d44cc7e4bbf9e6c74961c_org.svg @@ -0,0 +1,39 @@ + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +image_to_3d_matrix.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.html new file mode 100644 index 0000000..f6a1ece --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.html @@ -0,0 +1,178 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image_to_3d_matrix.h File Reference
+
+
+
#include <stdint.h>
+#include "sdkconfig.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_to_bmp_array_custom [512]
const float image_to_3d_matrix_custom [1732][4]
+

Variable Documentation

+ +

◆ image_to_3d_matrix_custom

+ +
+
+ + + + + +
+ + + + +
const float image_to_3d_matrix_custom[1732][4]
+
+extern
+
+ +
+
+ +

◆ image_to_bmp_array_custom

+ +
+
+ + + + + +
+ + + + +
const uint8_t image_to_bmp_array_custom[512]
+
+extern
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.js new file mode 100644 index 0000000..fa94f4b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.js @@ -0,0 +1,5 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809 = +[ + [ "image_to_3d_matrix_custom", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.html#a721fe700ee8e1b1734407b4c6c1b74d0", null ], + [ "image_to_bmp_array_custom", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809.html#adbd688e9067b26602a73dad45dd9c275", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809_source.html new file mode 100644 index 0000000..89ff8a5 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_23d__matrix_23d__matrixf4c5eabf8e562dab5a785f82358bb809_source.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.h
+
+
+Go to the documentation of this file.
1// File generated by ImgTo3D.py
+
2// Image file converted to 3D matrix: cpu_logo.png
+
3
+
4#pragma once
+
5
+
6#include <stdint.h>
+
7#include "sdkconfig.h"
+
8
+
9#ifdef __cplusplus
+
10extern "C" {
+
11#endif
+
12
+
13extern const uint8_t image_to_bmp_array_custom[512];
+
14extern const float image_to_3d_matrix_custom[1732][4];
+
15
+
16#ifdef __cplusplus
+
17}
+
18#endif
+
const float image_to_3d_matrix_custom[1732][4]
+
const uint8_t image_to_bmp_array_custom[512]
+
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0.md5 new file mode 100644 index 0000000..dba0672 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0.md5 @@ -0,0 +1 @@ +020772f75f2fde487958097c75cc4df4 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0.svg new file mode 100644 index 0000000..e425bc6 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +template_img_to_3d.c + + +Node1 + + +template_img_to_3d.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0_org.svg new file mode 100644 index 0000000..13b7815 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t019bfb49dfd377e1ae1ca02507f86ab0_org.svg @@ -0,0 +1,39 @@ + + + + + + +template_img_to_3d.c + + +Node1 + + +template_img_to_3d.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.html new file mode 100644 index 0000000..28e50ea --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.html @@ -0,0 +1,173 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
template_img_to_3d.h File Reference
+
+
+
#include <stdint.h>
+#include "sdkconfig.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.h:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t TEMPLATE_ARRAY_BMP_IMAGE [NUM_OF_BYTES]
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX [NUM_OF_POINTS][4]
+

Variable Documentation

+ +

◆ TEMPLATE_ARRAY_BMP_IMAGE

+ +
+
+ + + + + +
+ + + + +
const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES]
+
+extern
+
+ +
+
+ +

◆ TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX

+ +
+
+ + + + + +
+ + + + +
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4]
+
+extern
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.js b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.js new file mode 100644 index 0000000..7c7c2a7 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.js @@ -0,0 +1,5 @@ +var external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8 = +[ + [ "TEMPLATE_ARRAY_BMP_IMAGE", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.html#a69c27a8cb01eba6e6385d526f4ab3e4f", null ], + [ "TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX", "external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8.html#a17d49aa03d0f1653f57cb840ba9b23ed", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8_source.html new file mode 100644 index 0000000..09a0ad0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2t9bb56f8ad4bae71a76185a8ad81e73a8_source.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.h
+
+
+Go to the documentation of this file.
1// template file - template_img_to_3d.h
+
2// arrays declarations will be modified by python script ImgTo3D.py
+
3
+
4#pragma once
+
5
+
6#include <stdint.h>
+
7#include "sdkconfig.h"
+
8
+
9#ifdef __cplusplus
+
10extern "C" {
+
11#endif
+
12
+
13extern const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES];
+
14extern const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4];
+
15
+
16#ifdef __cplusplus
+
17}
+
18#endif
+
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4]
+
const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES]
+
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2.md5 b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2.md5 new file mode 100644 index 0000000..db9a32d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2.md5 @@ -0,0 +1 @@ +7175bfbb6e58cf57fb08f01c1ecc0d00 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2.svg new file mode 100644 index 0000000..d4d5941 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +template_img_to_3d.h + + +Node1 + + +template_img_to_3d.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2_org.svg b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2_org.svg new file mode 100644 index 0000000..ac9f72b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tee747ba2a2f899669dbe249941fddbb2_org.svg @@ -0,0 +1,57 @@ + + + + + + +template_img_to_3d.h + + +Node1 + + +template_img_to_3d.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tf467054661c3b740731be32a4a2294d4.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tf467054661c3b740731be32a4a2294d4.html new file mode 100644 index 0000000..9a20aca --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tf467054661c3b740731be32a4a2294d4.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
template_img_to_3d.c File Reference
+
+
+
#include "image_to_3d_matrix.h"
+
+Include dependency graph for external_examples/b00f000e/applications/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tf467054661c3b740731be32a4a2294d4_source.html b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tf467054661c3b740731be32a4a2294d4_source.html new file mode 100644 index 0000000..c79c496 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2azure__board__apps_2graphics_2img__to__3d__matrix_2tf467054661c3b740731be32a4a2294d4_source.html @@ -0,0 +1,119 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.c
+
+
+Go to the documentation of this file.
1// template file - template_img_to_3d.c
+
2// arrays declarations will be modified by python script ImgTo3D.py
+
3
+
4#include "image_to_3d_matrix.h"
+
5
+
6#ifdef CONFIG_3D_OBJECT_CUSTOM
+
7
+
8const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES] = {};
+
9const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4] = {};
+
10
+
11#endif // CONFIG_3D_OBJECT_CUSTOM
+
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4]
+
const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES]
+
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html new file mode 100644 index 0000000..5bce451 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html @@ -0,0 +1,1397 @@ + + + + + + + +ESP-IDF Firmware: audio_amp_main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
audio_amp_main.c File Reference
+
+
+
#include <stdio.h>
+#include <inttypes.h>
+#include <sdkconfig.h>
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "freertos/queue.h"
+#include "esp_log.h"
+#include "esp_dsp.h"
+#include "bsp/esp-bsp.h"
+#include <stdint.h>
+#include <math.h>
+
+Include dependency graph for external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Macros

#define BUFFER_SIZE   (64)
#define SAMPLE_RATE   (16000)
#define DEFAULT_VOLUME   (100)
+ + +

+Typedefs

typedef enum audio_set audio_set_t
+ + +

+Enumerations

enum  audio_set { AUDIO_VOLUME +, AUDIO_BASS +, AUDIO_TREBLE + }
+ + + + + + + + + + +

+Functions

static void btn_handler (void *button_handle, void *usr_data)
struct __attribute__ ((packed))
static void buttons_process_task (void *arg)
static void audio_read_task (void *arg)
static void audio_process_task (void *arg)
static void convert_short2float (int16_t *int16_data, float *float_data, int len)
static void convert_float2short (float *float_data, int16_t *int16_data, int len)
void digitalLimiter (float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
void app_main (void)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

static const char * TAG = "example"
static QueueHandle_t audio_button_q = NULL
 dumb_wav_header_t
static esp_codec_dev_handle_t spk_codec_dev = NULL
static FILE * play_file = NULL
static const char play_filename [] = BSP_SPIFFS_MOUNT_POINT"/16bit_mono_44_1_khz.wav"
static dumb_wav_header_t wav_header
static audio_set_t current_set = AUDIO_VOLUME
float iir_coeffs_lpf [5]
float iir_w_lpf [5] = {0, 0}
float iir_coeffs_hpf [5]
float iir_w_hpf [5] = {0, 0}
float lpf_gain = 0
float lpf_qFactor = 0.5
float lpf_freq = 0.01
float hpf_gain = 0
float hpf_qFactor = 1
float hpf_freq = 0.15
float full_volume = 1
int full_volume_db = -12
float full_envelope = 0
float processing_audio_buffer [(64)] = {0}
int16_t triple_audio_buffer [3 *(64)] = {0}
int audio_buffer_write_index = 0
int audio_buffer_read_index = 0
static SemaphoreHandle_t sync_read_task
+

Macro Definition Documentation

+ +

◆ BUFFER_SIZE

+ +
+
+ + + + +
#define BUFFER_SIZE   (64)
+
+
+ +

◆ DEFAULT_VOLUME

+ +
+
+ + + + +
#define DEFAULT_VOLUME   (100)
+
+
+ +

◆ SAMPLE_RATE

+ +
+
+ + + + +
#define SAMPLE_RATE   (16000)
+
+
+

Typedef Documentation

+ +

◆ audio_set_t

+ +
+
+ + + + +
typedef enum audio_set audio_set_t
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ audio_set

+ +
+
+ + + + +
enum audio_set
+
+ + + + +
Enumerator
AUDIO_VOLUME 
AUDIO_BASS 
AUDIO_TREBLE 
+ +

Definition at line 50 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+ +
+
+

Function Documentation

+ +

◆ __attribute__()

+ +
+
+ + + + + + + +
struct __attribute__ ((packed) )
+
+ +

Definition at line 31 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+
39{
+
40 uint8_t ignore_0[22];
+
41 uint16_t num_channels;
+
42 uint32_t sample_rate;
+
43 uint8_t ignore_1[6];
+
44 uint16_t bits_per_sample;
+
45 uint8_t ignore_2[4];
+
46 uint32_t data_size;
+
47 uint8_t data[];
+ + +
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References audio_button_q, and button_pressed.

+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 365 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+
366{
+
367 ESP_ERROR_CHECK(bsp_spiffs_mount());
+
368
+
369 // Create FreeRTOS tasks and queues
+
370 audio_button_q = xQueueCreate(10, sizeof(int));
+
371 assert (audio_button_q != NULL);
+
372
+
373 BaseType_t ret = xTaskCreate(audio_process_task, "audio_process_task", 4096, NULL, 6, NULL);
+
374 assert(ret == pdPASS);
+
375
+
376 // Init audio buttons
+
377 button_handle_t btns[BSP_BUTTON_NUM];
+
378 ESP_ERROR_CHECK(bsp_iot_button_create(btns, NULL, BSP_BUTTON_NUM));
+
379 for (int i = 0; i < BSP_BUTTON_NUM; i++) {
+
380 ESP_ERROR_CHECK(iot_button_register_cb(btns[i], BUTTON_PRESS_DOWN, btn_handler, (void *) i));
+
381 }
+
382}
+
static QueueHandle_t audio_button_q
+
static void btn_handler(void *button_handle, void *usr_data)
+
static void audio_process_task(void *arg)
+
+

References audio_button_q, audio_process_task(), and btn_handler().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ audio_process_task()

+ +
+
+ + + + + +
+ + + + + + + +
void audio_process_task (void * arg)
+
+static
+
+ +

Definition at line 155 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+
156{
+
157 // Init codeac and apply the initial volume to maximum
+
158 spk_codec_dev = bsp_audio_codec_speaker_init();
+
159 assert(spk_codec_dev);
+
160 esp_codec_dev_set_out_vol(spk_codec_dev, DEFAULT_VOLUME);
+
161
+
162 // Open file and het the WAV header to set up the sample frequency, amount of channels and resolution
+
163 play_file = fopen(play_filename, "rb");
+
164 if (play_file == NULL) {
+
165 ESP_LOGW(TAG, "%s file does not exist!", play_filename);
+
166 }
+
167 // Read WAV header
+
168 if (fread((void *)&wav_header, 1, sizeof(wav_header), play_file) != sizeof(wav_header)) {
+
169 ESP_LOGW(TAG, "Error in reading file");
+
170 return;
+
171 }
+
172
+
173 ESP_LOGI(TAG, "Number of channels: %" PRIu16 "", wav_header.num_channels);
+
174 ESP_LOGI(TAG, "Bits per sample: %" PRIu16 "", wav_header.bits_per_sample);
+
175 ESP_LOGI(TAG, "Sample rate: %" PRIu32 "", wav_header.sample_rate);
+
176 ESP_LOGI(TAG, "Data size: %" PRIu32 "", wav_header.data_size);
+
177 esp_codec_dev_sample_info_t fs = {
+
178 .sample_rate = wav_header.sample_rate,
+
179 .channel = wav_header.num_channels,
+
180 .bits_per_sample = wav_header.bits_per_sample,
+
181 };
+
182 if (spk_codec_dev != NULL) {
+
183 int result = esp_codec_dev_open(spk_codec_dev, &fs);
+
184 }
+
185 // Calculate initial volume value
+
186 full_volume = exp10f((float)full_volume_db / 20);
+
187 // Calculate initial state for LPF
+ +
189 // Calculate initial state for HPF
+ +
191
+
192 BaseType_t ret = xTaskCreate(buttons_process_task, "buttons_process_task", 4096, NULL, 4, NULL);
+
193 assert(ret == pdPASS);
+
194
+
195 sync_read_task = xSemaphoreCreateCounting(1, 0);
+
196
+
197 ret = xTaskCreate(audio_read_task, "audio_read_task", 4096, NULL, 7, NULL);
+
198 assert(ret == pdPASS);
+
199 vTaskDelay(1);
+
200
+
201 ESP_LOGW(TAG, "To select volume/bass/treble please use the 'Set' button. And adjust the value with +/- buttons.");
+
202
+
203 for (;;) {
+
204 /* Get data from SPIFFS and send it to codec */
+ +
206 // Write samples to audio codec
+
207 esp_codec_dev_write(spk_codec_dev, wav_bytes, BUFFER_SIZE * sizeof(int16_t));
+ +
209 if (audio_buffer_write_index >= 3) {
+ +
211 }
+
212 // Check the triple buffer overflow
+ +
214 // Call delay to switch the task to fill the buffer
+
215 vTaskDelay(1);
+
216 // Check and indicate overflow status
+ +
218 ESP_LOGW(TAG, "Audio buffer overflow!");
+
219 }
+
220 }
+
221 // Generate synt event to read task:
+
222 xSemaphoreGive(sync_read_task);
+
223 }
+
224}
+
static SemaphoreHandle_t sync_read_task
+ + + +
static void audio_read_task(void *arg)
+ + + + + +
static const char play_filename[]
+ + + + +
static void buttons_process_task(void *arg)
+
static dumb_wav_header_t wav_header
+ + + +
static esp_codec_dev_handle_t spk_codec_dev
+ +
esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor)
low shelf IIR filter coefficients
+
esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor)
high shelf IIR filter coefficients
+
static const char * TAG
Definition main/main.c:31
+
+

References audio_buffer_read_index, audio_buffer_write_index, audio_read_task(), BUFFER_SIZE, buttons_process_task(), DEFAULT_VOLUME, dsps_biquad_gen_highShelf_f32(), dsps_biquad_gen_lowShelf_f32(), full_volume, full_volume_db, hpf_freq, hpf_gain, hpf_qFactor, iir_coeffs_hpf, iir_coeffs_lpf, lpf_freq, lpf_gain, lpf_qFactor, play_file, play_filename, spk_codec_dev, sync_read_task, TAG, triple_audio_buffer, and wav_header.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ audio_read_task()

+ +
+
+ + + + + +
+ + + + + + + +
void audio_read_task (void * arg)
+
+static
+
+ +

Definition at line 229 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+
230{
+
231 while (1) {
+
232 // Wait the sync semaphore
+
233 if (xSemaphoreTake(sync_read_task, 100)) {
+
234 // Get the pointer to the current audio buffer
+ +
236 // Read the data from the file
+
237 uint32_t bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
238 // Convert input samples from int16 to float for processing
+ +
240 // Apply bass
+ +
242 // Apply treble
+ +
244 // Apply voluve
+ +
246 // Apply limiter
+ +
248 // Convert from float to int16 for audio codec
+ +
250
+
251 if (bytes_read_from_spiffs != BUFFER_SIZE) {
+
252 // Rewind the file and read the WAV header
+
253 rewind(play_file);
+
254 fread((void *)&wav_header, 1, sizeof(wav_header), play_file);
+
255 // Read data to the audio buffer
+
256 bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
257 }
+ +
259 if (audio_buffer_read_index >= 3) {
+ +
261 }
+
262 } else {
+
263 // Error in case of timeout
+
264 ESP_LOGE(TAG, "Audio timeout!");
+
265 }
+
266 }
+
267}
+ + + + +
#define dsps_biquad_f32
Definition dsps_biquad.h:99
+
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+
void digitalLimiter(float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
+
static void convert_float2short(float *float_data, int16_t *int16_data, int len)
+
static void convert_short2float(int16_t *int16_data, float *float_data, int len)
+
+

References audio_buffer_read_index, BUFFER_SIZE, convert_float2short(), convert_short2float(), digitalLimiter(), dsps_biquad_f32, dsps_mulc_f32_ansi(), full_envelope, full_volume, iir_coeffs_hpf, iir_coeffs_lpf, iir_w_hpf, iir_w_lpf, play_file, processing_audio_buffer, sync_read_task, TAG, triple_audio_buffer, and wav_header.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ btn_handler()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void btn_handler (void * button_handle,
void * usr_data )
+
+static
+
+ +

Definition at line 31 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+
32{
+
33 int button_pressed = (int)usr_data;
+
34 xQueueSend(audio_button_q, &button_pressed, 0);
+
35}
+ +
+
+
+ +

◆ buttons_process_task()

+ +
+
+ + + + + +
+ + + + + + + +
void buttons_process_task (void * arg)
+
+static
+
+ +

Definition at line 269 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+
270{
+
271 while (1) {
+
272 int btn_index = 0;
+
273 if (xQueueReceive(audio_button_q, &btn_index, portMAX_DELAY) == pdTRUE) {
+
274 switch (btn_index) {
+
275 case BSP_BUTTON_SET: {
+
276 current_set += 1;
+
277 if (current_set > 2) {
+ +
279 }
+
280 switch (current_set) {
+
281 case AUDIO_VOLUME:
+
282 ESP_LOGW(TAG, "Select volume");
+
283 break;
+
284 case AUDIO_BASS:
+
285 ESP_LOGW(TAG, "Select bass");
+
286 break;
+
287 case AUDIO_TREBLE:
+
288 ESP_LOGW(TAG, "Select treble");
+
289 break;
+
290 default:
+
291 break;
+
292 }
+
293 break;
+
294 }
+
295 case BSP_BUTTON_VOLDOWN: {
+
296 switch (current_set) {
+
297 case AUDIO_VOLUME:
+
298 full_volume_db -= 3;
+
299 if (full_volume_db < -36) {
+
300 full_volume_db = -36;
+
301 }
+
302 full_volume = exp10f((float)full_volume_db / 20);
+
303 ESP_LOGI(TAG, "Volume Down: %i dB", full_volume_db);
+
304 break;
+
305 case AUDIO_BASS:
+
306 lpf_gain -= 1;
+
307 if (lpf_gain < -12) {
+
308 lpf_gain = -12;
+
309 }
+
310 ESP_LOGI(TAG, "Bass Down: %i", (int)lpf_gain);
+ +
312 break;
+
313 case AUDIO_TREBLE:
+
314 hpf_gain -= 1;
+
315 if (hpf_gain < -12) {
+
316 hpf_gain = -12;
+
317 }
+
318 ESP_LOGI(TAG, "Treble Down: %i", (int)hpf_gain);
+ +
320 break;
+
321 default:
+
322 break;
+
323 }
+
324 break;
+
325 }
+
326 case BSP_BUTTON_VOLUP: {
+
327 switch (current_set) {
+
328 case AUDIO_VOLUME:
+
329 full_volume_db += 3;
+
330 if (full_volume_db > 0) {
+
331 full_volume_db = 0;
+
332 }
+
333 full_volume = exp10f((float)full_volume_db / 20);
+
334 ESP_LOGI(TAG, "Volume Up: %i dB", full_volume_db);
+
335 break;
+
336 case AUDIO_BASS:
+
337 lpf_gain += 1;
+
338 if (lpf_gain > 12) {
+
339 lpf_gain = 12;
+
340 }
+
341 ESP_LOGI(TAG, "Bass Up: %i", (int)lpf_gain);
+ +
343 break;
+
344 case AUDIO_TREBLE:
+
345 hpf_gain += 1;
+
346 if (hpf_gain > 12) {
+
347 hpf_gain = 12;
+
348 }
+
349 ESP_LOGI(TAG, "Treble Up: %i", (int)hpf_gain);
+ +
351 break;
+
352 default:
+
353 break;
+
354 }
+
355 break;
+
356 }
+
357 default:
+
358 ESP_LOGI(TAG, "No function for this button");
+
359 break;
+
360 }
+
361 }
+
362 }
+
363}
+ +
+

References AUDIO_BASS, audio_button_q, AUDIO_TREBLE, AUDIO_VOLUME, current_set, dsps_biquad_gen_highShelf_f32(), dsps_biquad_gen_lowShelf_f32(), full_volume, full_volume_db, hpf_freq, hpf_gain, hpf_qFactor, iir_coeffs_hpf, iir_coeffs_lpf, lpf_freq, lpf_gain, lpf_qFactor, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ convert_float2short()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
void convert_float2short (float * float_data,
int16_t * int16_data,
int len )
+
+static
+
+ +

Definition at line 119 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+
120{
+
121 float multiplier = (float)(INT16_MAX + 1);
+
122 for (int i = 0 ; i < len ; i++) {
+
123 int16_data[i] = (int16_t)((float)multiplier * (float)float_data[i]);
+
124 }
+
125}
+
+

Referenced by audio_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ convert_short2float()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
void convert_short2float (int16_t * int16_data,
float * float_data,
int len )
+
+static
+
+ +

Definition at line 110 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+
111{
+
112 float multiplier = 1.0 / (float)(INT16_MAX + 1);
+
113 for (int i = 0 ; i < len ; i++) {
+
114 float_data[i] = (float)int16_data[i] * multiplier;
+
115 }
+
116}
+
+

Referenced by audio_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ digitalLimiter()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void digitalLimiter (float * input_signal,
float * output_signal,
int signal_length,
float threshold,
float attack_value,
float release_value,
float * in_envelope )
+
+ +

Definition at line 133 of file external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c.

+
134{
+
135 float envelope = *in_envelope;
+
136 for (int i = 0; i < signal_length; i++) {
+
137 // Calculate envelope
+
138 float abs_input = fabsf(input_signal[i]);
+
139 if (abs_input > envelope) {
+
140 envelope = envelope * (1 - attack_value) + attack_value * abs_input;
+
141 } else {
+
142 envelope = envelope * (1 - release_value) + release_value * abs_input;
+
143 }
+
144
+
145 // Apply compression
+
146 if (envelope > threshold) {
+
147 output_signal[i] = input_signal[i] * (threshold / envelope);
+
148 } else {
+
149 output_signal[i] = input_signal[i];
+
150 }
+
151 }
+
152 *in_envelope = envelope;
+
153}
+
+

Referenced by audio_read_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ audio_buffer_read_index

+ +
+
+ + + + +
int audio_buffer_read_index = 0
+
+
+ +

◆ audio_buffer_write_index

+ +
+
+ + + + +
int audio_buffer_write_index = 0
+
+
+ +

◆ audio_button_q

+ +
+
+ + + + + +
+ + + + +
QueueHandle_t audio_button_q = NULL
+
+static
+
+
+ +

◆ current_set

+ +
+
+ + + + + +
+ + + + +
audio_set_t current_set = AUDIO_VOLUME
+
+static
+
+
+ +

◆ dumb_wav_header_t

+ +
+
+ + + + +
dumb_wav_header_t
+
+
+ +

◆ full_envelope

+ +
+
+ + + + +
float full_envelope = 0
+
+
+ +

◆ full_volume

+ +
+
+ + + + +
float full_volume = 1
+
+
+ +

◆ full_volume_db

+ +
+
+ + + + +
int full_volume_db = -12
+
+
+ +

◆ hpf_freq

+ +
+
+ + + + +
float hpf_freq = 0.15
+
+
+ +

◆ hpf_gain

+ +
+
+ + + + +
float hpf_gain = 0
+
+
+ +

◆ hpf_qFactor

+ +
+
+ + + + +
float hpf_qFactor = 1
+
+
+ +

◆ iir_coeffs_hpf

+ +
+
+ + + + +
float iir_coeffs_hpf[5]
+
+
+ +

◆ iir_coeffs_lpf

+ +
+
+ + + + +
float iir_coeffs_lpf[5]
+
+
+ +

◆ iir_w_hpf

+ +
+
+ + + + +
float iir_w_hpf[5] = {0, 0}
+
+
+ +

◆ iir_w_lpf

+ +
+
+ + + + +
float iir_w_lpf[5] = {0, 0}
+
+
+ +

◆ lpf_freq

+ +
+
+ + + + +
float lpf_freq = 0.01
+
+
+ +

◆ lpf_gain

+ +
+
+ + + + +
float lpf_gain = 0
+
+
+ +

◆ lpf_qFactor

+ +
+
+ + + + +
float lpf_qFactor = 0.5
+
+
+ +

◆ play_file

+ +
+
+ + + + + +
+ + + + +
FILE* play_file = NULL
+
+static
+
+
+ +

◆ play_filename

+ +
+
+ + + + + +
+ + + + +
const char play_filename[] = BSP_SPIFFS_MOUNT_POINT"/16bit_mono_44_1_khz.wav"
+
+static
+
+
+ +

◆ processing_audio_buffer

+ +
+
+ + + + +
float processing_audio_buffer[(64)] = {0}
+
+
+ +

◆ spk_codec_dev

+ +
+
+ + + + + +
+ + + + +
esp_codec_dev_handle_t spk_codec_dev = NULL
+
+static
+
+
+ +

◆ sync_read_task

+ +
+
+ + + + + +
+ + + + +
SemaphoreHandle_t sync_read_task
+
+static
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "example"
+
+static
+
+
+ +

◆ triple_audio_buffer

+ +
+
+ + + + +
int16_t triple_audio_buffer[3 *(64)] = {0}
+
+
+ +

◆ wav_header

+ +
+
+ + + + + +
+ + + + +
dumb_wav_header_t wav_header
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.js b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.js new file mode 100644 index 0000000..66f4f6d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.js @@ -0,0 +1,47 @@ +var external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c = +[ + [ "BUFFER_SIZE", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a6b20d41d6252e9871430c242cb1a56e7", null ], + [ "DEFAULT_VOLUME", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a2c0c52208e7308ae9eecd726fe8d94b9", null ], + [ "SAMPLE_RATE", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a4b76a0c2859cfd819a343a780070ee2b", null ], + [ "audio_set_t", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aa88550699697fdf29720e2001ebb2dfa", null ], + [ "audio_set", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636", [ + [ "AUDIO_VOLUME", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636a7db21c3a9676776cbeb08d3d4d8cff26", null ], + [ "AUDIO_BASS", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636a8838dc83b8126cc7b822eeeb3c27549e", null ], + [ "AUDIO_TREBLE", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aeaa0f25112c14b1dff17b56ce7219636aa31bb158eee95bcc6d353235eeccfc8d", null ] + ] ], + [ "__attribute__", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab898071398b359603a35c202e9c65f3b", null ], + [ "app_main", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a630544a7f0a2cc40d8a7fefab7e2fe70", null ], + [ "audio_process_task", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab091c1cbf0cdee1a9e75495e68236ab6", null ], + [ "audio_read_task", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a11a7e6affe758e24d45f22bade3f7ac3", null ], + [ "btn_handler", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a562facc4884e8a7bb96fe161d64a12da", null ], + [ "buttons_process_task", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a9b37162177a4acfc9abcc52ca620736c", null ], + [ "convert_float2short", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ae8bef2245ac9fb55d56a7af6c4b5fe5d", null ], + [ "convert_short2float", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aedfa0ee2b0d2e41a702707315faa5e10", null ], + [ "digitalLimiter", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a021b7404dd661c25c3fba8503b22d2d7", null ], + [ "audio_buffer_read_index", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#abf0a171fa05c9285f220a8a7c026ea78", null ], + [ "audio_buffer_write_index", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ac4ce7486838450737f3407388be27eb1", null ], + [ "audio_button_q", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a2f9f737de08975b7c91db166e446e5ed", null ], + [ "current_set", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a0f4d8e352563fad11f630e3397b2a35e", null ], + [ "dumb_wav_header_t", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a6fb523d3374e90c95487a5856fe27e4d", null ], + [ "full_envelope", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#adb05d809ff35d5a84ac5c81e6ad029fa", null ], + [ "full_volume", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a473c835640976f08dd3c043cf45594f8", null ], + [ "full_volume_db", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a377a70f7d7888e69a7e59475fa56a64d", null ], + [ "hpf_freq", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a7de9a65dd6a82e5c3bef5c36ad9601ef", null ], + [ "hpf_gain", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a86d4f7276dc47c628790ae25cba8b392", null ], + [ "hpf_qFactor", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a0930702ca45368023f87e4174b354777", null ], + [ "iir_coeffs_hpf", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a218cca73ec4cafd56e29bd5d340dac7d", null ], + [ "iir_coeffs_lpf", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a09781b3eff0bdb87ac78d7cf8438c14f", null ], + [ "iir_w_hpf", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab1a44c64c14e4b4d396460ffc1251234", null ], + [ "iir_w_lpf", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a588993507c1c1661225d5088161f4662", null ], + [ "lpf_freq", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a292487b90ca105833138c5ff4ca13ed2", null ], + [ "lpf_gain", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a73023995ad1fb684def3089e5daa297e", null ], + [ "lpf_qFactor", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ab1726f72aeeb2b5c71770a0418648ce9", null ], + [ "play_file", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a064e97adf9481d8a0c99fd365104a8ca", null ], + [ "play_filename", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a581468e92cddeed61e7312af79f18716", null ], + [ "processing_audio_buffer", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a827e26f8698590947b9f34455d4157b5", null ], + [ "spk_codec_dev", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ad5b8a1d8b6ad98b17025c531aafe538b", null ], + [ "sync_read_task", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a0398e7777d8ed80fde3d926ece68d644", null ], + [ "TAG", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ], + [ "triple_audio_buffer", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#ae9ae3ea56c76edece8c7bf7b3c6adfc1", null ], + [ "wav_header", "external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c.html#aaa4fc915cb78785c7514677c6ec73df0", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 new file mode 100644 index 0000000..e5e8c59 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.md5 @@ -0,0 +1 @@ +7be942ec435b23a222e43e38f8808047 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg new file mode 100644 index 0000000..8bcfac7 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl.svg @@ -0,0 +1,1735 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +audio_amp_main.c + + +Node1 + + +audio_amp_main.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +inttypes.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/FreeRTOS.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +freertos/task.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +freertos/queue.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_log.h + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +esp_dsp.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node1->Node12 + + + + + + + + +Node76 + + +bsp/esp-bsp.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +math.h + + + + + +Node1->Node77 + + + + + + + + +Node9 + + +stdlib.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node10->Node11 + + + + + + + + +Node19 + + +dsp_types.h + + + + + +Node10->Node19 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node10->Node20 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node10->Node22 + + + + + + + + +Node34 + + +dsps_fir.h + + + + + +Node10->Node34 + + + + + + + + +Node36 + + +dsps_resampler.h + + + + + +Node10->Node36 + + + + + + + + +Node37 + + +dsps_biquad.h + + + + + +Node10->Node37 + + + + + + + + +Node39 + + +dsps_biquad_gen.h + + + + + +Node10->Node39 + + + + + + + + +Node40 + + +dsps_wind.h + + + + + +Node10->Node40 + + + + + + + + +Node47 + + +dsps_conv.h + + + + + +Node10->Node47 + + + + + + + + +Node49 + + +dsps_corr.h + + + + + +Node10->Node49 + + + + + + + + +Node50 + + +dsps_d_gen.h + + + + + +Node10->Node50 + + + + + + + + +Node51 + + +dsps_h_gen.h + + + + + +Node10->Node51 + + + + + + + + +Node52 + + +dsps_tone_gen.h + + + + + +Node10->Node52 + + + + + + + + +Node53 + + +dsps_snr.h + + + + + +Node10->Node53 + + + + + + + + +Node54 + + +dsps_sfdr.h + + + + + +Node10->Node54 + + + + + + + + +Node55 + + +dsps_fft2r.h + + + + + +Node10->Node55 + + + + + + + + +Node58 + + +dsps_fft4r.h + + + + + +Node10->Node58 + + + + + + + + +Node60 + + +dsps_dct.h + + + + + +Node10->Node60 + + + + + + + + +Node61 + + +dspm_matrix.h + + + + + +Node10->Node61 + + + + + + + + +Node72 + + +dsps_view.h + + + + + +Node10->Node72 + + + + + + + + +Node73 + + +dspi_dotprod.h + + + + + +Node10->Node73 + + + + + + + + +Node75 + + +dspi_conv.h + + + + + +Node10->Node75 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +dsp_err.h + + + + + +Node11->Node14 + + + + + + + + +Node17 + + +esp_idf_version.h + + + + + +Node11->Node17 + + + + + + + + +Node18 + + +x86intrin.h + + + + + +Node11->Node18 + + + + + + + + +Node14->Node12 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node12 + + + + + + + + +Node19->Node13 + + + + + + + + +Node20->Node8 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21 + + +dsps_dotprod_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node4 + + + + + + + + +Node23 + + +dsps_add.h + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +dsps_sub.h + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +dsps_mul.h + + + + + +Node22->Node27 + + + + + + + + +Node29 + + +dsps_addc.h + + + + + +Node22->Node29 + + + + + + + + +Node31 + + +dsps_mulc.h + + + + + +Node22->Node31 + + + + + + + + +Node33 + + +dsps_sqrt.h + + + + + +Node22->Node33 + + + + + + + + +Node23->Node14 + + + + + + + + +Node25->Node14 + + + + + + + + +Node27->Node14 + + + + + + + + +Node29->Node14 + + + + + + + + +Node31->Node14 + + + + + + + + +Node33->Node14 + + + + + + + + +Node34->Node11 + + + + + + + + +Node34->Node14 + + + + + + + + +Node35 + + +dsps_fir_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node4 + + + + + + + + +Node36->Node14 + + + + + + + + +Node36->Node34 + + + + + + + + +Node37->Node14 + + + + + + + + +Node38 + + +dsps_biquad_platform.h + + + + + +Node37->Node38 + + + + + + + + +Node38->Node4 + + + + + + + + +Node39->Node14 + + + + + + + + +Node41 + + +dsps_wind_hann.h + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman.h + + + + + +Node40->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_harris.h + + + + + +Node40->Node43 + + + + + + + + +Node44 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node40->Node44 + + + + + + + + +Node45 + + +dsps_wind_nuttall.h + + + + + +Node40->Node45 + + + + + + + + +Node46 + + +dsps_wind_flat_top.h + + + + + +Node40->Node46 + + + + + + + + +Node47->Node14 + + + + + + + + +Node48 + + +dsps_conv_platform.h + + + + + +Node47->Node48 + + + + + + + + +Node48->Node4 + + + + + + + + +Node49->Node14 + + + + + + + + +Node49->Node48 + + + + + + + + +Node50->Node14 + + + + + + + + +Node51->Node14 + + + + + + + + +Node52->Node14 + + + + + + + + +Node53->Node14 + + + + + + + + +Node54->Node14 + + + + + + + + +Node55->Node4 + + + + + + + + +Node55->Node14 + + + + + + + + +Node56 + + +dsps_fft_tables.h + + + + + +Node55->Node56 + + + + + + + + +Node57 + + +dsps_fft2r_platform.h + + + + + +Node55->Node57 + + + + + + + + +Node57->Node4 + + + + + + + + +Node58->Node4 + + + + + + + + +Node58->Node14 + + + + + + + + +Node58->Node56 + + + + + + + + +Node59 + + +dsps_fft4r_platform.h + + + + + +Node58->Node59 + + + + + + + + +Node59->Node4 + + + + + + + + +Node60->Node4 + + + + + + + + +Node60->Node14 + + + + + + + + +Node62 + + +dspm_add.h + + + + + +Node61->Node62 + + + + + + + + +Node64 + + +dspm_addc.h + + + + + +Node61->Node64 + + + + + + + + +Node66 + + +dspm_mult.h + + + + + +Node61->Node66 + + + + + + + + +Node68 + + +dspm_mulc.h + + + + + +Node61->Node68 + + + + + + + + +Node70 + + +dspm_sub.h + + + + + +Node61->Node70 + + + + + + + + +Node62->Node14 + + + + + + + + +Node64->Node14 + + + + + + + + +Node66->Node14 + + + + + + + + +Node68->Node14 + + + + + + + + +Node70->Node14 + + + + + + + + +Node72->Node14 + + + + + + + + +Node73->Node8 + + + + + + + + +Node73->Node14 + + + + + + + + +Node73->Node19 + + + + + + + + +Node74 + + +dspi_dotprod_platform.h + + + + + +Node73->Node74 + + + + + + + + +Node74->Node4 + + + + + + + + +Node75->Node14 + + + + + + + + +Node75->Node19 + + + + + + + + +Node75->Node48 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg new file mode 100644 index 0000000..e4d1434 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c__incl_org.svg @@ -0,0 +1,1652 @@ + + + + + + +audio_amp_main.c + + +Node1 + + +audio_amp_main.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +inttypes.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +freertos/FreeRTOS.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +freertos/task.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +freertos/queue.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_log.h + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +esp_dsp.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node1->Node12 + + + + + + + + +Node76 + + +bsp/esp-bsp.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +math.h + + + + + +Node1->Node77 + + + + + + + + +Node9 + + +stdlib.h + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +dsp_common.h + + + + + +Node10->Node11 + + + + + + + + +Node19 + + +dsp_types.h + + + + + +Node10->Node19 + + + + + + + + +Node20 + + +dsps_dotprod.h + + + + + +Node10->Node20 + + + + + + + + +Node22 + + +dsps_math.h + + + + + +Node10->Node22 + + + + + + + + +Node34 + + +dsps_fir.h + + + + + +Node10->Node34 + + + + + + + + +Node36 + + +dsps_resampler.h + + + + + +Node10->Node36 + + + + + + + + +Node37 + + +dsps_biquad.h + + + + + +Node10->Node37 + + + + + + + + +Node39 + + +dsps_biquad_gen.h + + + + + +Node10->Node39 + + + + + + + + +Node40 + + +dsps_wind.h + + + + + +Node10->Node40 + + + + + + + + +Node47 + + +dsps_conv.h + + + + + +Node10->Node47 + + + + + + + + +Node49 + + +dsps_corr.h + + + + + +Node10->Node49 + + + + + + + + +Node50 + + +dsps_d_gen.h + + + + + +Node10->Node50 + + + + + + + + +Node51 + + +dsps_h_gen.h + + + + + +Node10->Node51 + + + + + + + + +Node52 + + +dsps_tone_gen.h + + + + + +Node10->Node52 + + + + + + + + +Node53 + + +dsps_snr.h + + + + + +Node10->Node53 + + + + + + + + +Node54 + + +dsps_sfdr.h + + + + + +Node10->Node54 + + + + + + + + +Node55 + + +dsps_fft2r.h + + + + + +Node10->Node55 + + + + + + + + +Node58 + + +dsps_fft4r.h + + + + + +Node10->Node58 + + + + + + + + +Node60 + + +dsps_dct.h + + + + + +Node10->Node60 + + + + + + + + +Node61 + + +dspm_matrix.h + + + + + +Node10->Node61 + + + + + + + + +Node72 + + +dsps_view.h + + + + + +Node10->Node72 + + + + + + + + +Node73 + + +dspi_dotprod.h + + + + + +Node10->Node73 + + + + + + + + +Node75 + + +dspi_conv.h + + + + + +Node10->Node75 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +stdbool.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +dsp_err.h + + + + + +Node11->Node14 + + + + + + + + +Node17 + + +esp_idf_version.h + + + + + +Node11->Node17 + + + + + + + + +Node18 + + +x86intrin.h + + + + + +Node11->Node18 + + + + + + + + +Node14->Node12 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node12 + + + + + + + + +Node19->Node13 + + + + + + + + +Node20->Node8 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21 + + +dsps_dotprod_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node4 + + + + + + + + +Node23 + + +dsps_add.h + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +dsps_sub.h + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +dsps_mul.h + + + + + +Node22->Node27 + + + + + + + + +Node29 + + +dsps_addc.h + + + + + +Node22->Node29 + + + + + + + + +Node31 + + +dsps_mulc.h + + + + + +Node22->Node31 + + + + + + + + +Node33 + + +dsps_sqrt.h + + + + + +Node22->Node33 + + + + + + + + +Node23->Node14 + + + + + + + + +Node25->Node14 + + + + + + + + +Node27->Node14 + + + + + + + + +Node29->Node14 + + + + + + + + +Node31->Node14 + + + + + + + + +Node33->Node14 + + + + + + + + +Node34->Node11 + + + + + + + + +Node34->Node14 + + + + + + + + +Node35 + + +dsps_fir_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node4 + + + + + + + + +Node36->Node14 + + + + + + + + +Node36->Node34 + + + + + + + + +Node37->Node14 + + + + + + + + +Node38 + + +dsps_biquad_platform.h + + + + + +Node37->Node38 + + + + + + + + +Node38->Node4 + + + + + + + + +Node39->Node14 + + + + + + + + +Node41 + + +dsps_wind_hann.h + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman.h + + + + + +Node40->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_harris.h + + + + + +Node40->Node43 + + + + + + + + +Node44 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node40->Node44 + + + + + + + + +Node45 + + +dsps_wind_nuttall.h + + + + + +Node40->Node45 + + + + + + + + +Node46 + + +dsps_wind_flat_top.h + + + + + +Node40->Node46 + + + + + + + + +Node47->Node14 + + + + + + + + +Node48 + + +dsps_conv_platform.h + + + + + +Node47->Node48 + + + + + + + + +Node48->Node4 + + + + + + + + +Node49->Node14 + + + + + + + + +Node49->Node48 + + + + + + + + +Node50->Node14 + + + + + + + + +Node51->Node14 + + + + + + + + +Node52->Node14 + + + + + + + + +Node53->Node14 + + + + + + + + +Node54->Node14 + + + + + + + + +Node55->Node4 + + + + + + + + +Node55->Node14 + + + + + + + + +Node56 + + +dsps_fft_tables.h + + + + + +Node55->Node56 + + + + + + + + +Node57 + + +dsps_fft2r_platform.h + + + + + +Node55->Node57 + + + + + + + + +Node57->Node4 + + + + + + + + +Node58->Node4 + + + + + + + + +Node58->Node14 + + + + + + + + +Node58->Node56 + + + + + + + + +Node59 + + +dsps_fft4r_platform.h + + + + + +Node58->Node59 + + + + + + + + +Node59->Node4 + + + + + + + + +Node60->Node4 + + + + + + + + +Node60->Node14 + + + + + + + + +Node62 + + +dspm_add.h + + + + + +Node61->Node62 + + + + + + + + +Node64 + + +dspm_addc.h + + + + + +Node61->Node64 + + + + + + + + +Node66 + + +dspm_mult.h + + + + + +Node61->Node66 + + + + + + + + +Node68 + + +dspm_mulc.h + + + + + +Node61->Node68 + + + + + + + + +Node70 + + +dspm_sub.h + + + + + +Node61->Node70 + + + + + + + + +Node62->Node14 + + + + + + + + +Node64->Node14 + + + + + + + + +Node66->Node14 + + + + + + + + +Node68->Node14 + + + + + + + + +Node70->Node14 + + + + + + + + +Node72->Node14 + + + + + + + + +Node73->Node8 + + + + + + + + +Node73->Node14 + + + + + + + + +Node73->Node19 + + + + + + + + +Node74 + + +dspi_dotprod_platform.h + + + + + +Node73->Node74 + + + + + + + + +Node74->Node4 + + + + + + + + +Node75->Node14 + + + + + + + + +Node75->Node19 + + + + + + + + +Node75->Node48 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 new file mode 100644 index 0000000..bb3a344 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.md5 @@ -0,0 +1 @@ +4663b6d8b6d8b9e91bbd68f18f093144 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg new file mode 100644 index 0000000..0b00c68 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +digitalLimiter + + +Node1 + + +digitalLimiter + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg new file mode 100644 index 0000000..2de7638 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a021b7404dd661c25c3fba8503b22d2d7_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +digitalLimiter + + +Node1 + + +digitalLimiter + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 new file mode 100644 index 0000000..f643132 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.md5 @@ -0,0 +1 @@ +4e4ed3b48b8c2592c87b0c7a863a7583 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg new file mode 100644 index 0000000..647ab90 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +audio_read_task + + +Node1 + + +audio_read_task + + + + + +Node2 + + +convert_float2short + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +convert_short2float + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +digitalLimiter + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node5 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg new file mode 100644 index 0000000..383fac4 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a11a7e6affe758e24d45f22bade3f7ac3_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +audio_read_task + + +Node1 + + +audio_read_task + + + + + +Node2 + + +convert_float2short + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +convert_short2float + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +digitalLimiter + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dsps_mulc_f32_ansi + + + + + +Node1->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 new file mode 100644 index 0000000..f321aba --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 @@ -0,0 +1 @@ +63e463e9ec6183c911201917dda71995 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg new file mode 100644 index 0000000..08f0bc3 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +btn_handler + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +audio_read_task + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +convert_float2short + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +convert_short2float + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +digitalLimiter + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +dsps_mulc_f32_ansi + + + + + +Node3->Node7 + + + + + + + + +Node8->Node9 + + + + + + + + +Node8->Node10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg new file mode 100644 index 0000000..5bcb075 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg @@ -0,0 +1,219 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +audio_process_task + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +btn_handler + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +audio_read_task + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +buttons_process_task + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +convert_float2short + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +convert_short2float + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +digitalLimiter + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +dsps_mulc_f32_ansi + + + + + +Node3->Node7 + + + + + + + + +Node8->Node9 + + + + + + + + +Node8->Node10 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 new file mode 100644 index 0000000..488e780 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.md5 @@ -0,0 +1 @@ +af768cffde963741e7573c2290d82b55 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg new file mode 100644 index 0000000..b44f798 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +buttons_process_task + + +Node1 + + +buttons_process_task + + + + + +Node2 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg new file mode 100644 index 0000000..a21b6e3 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_a9b37162177a4acfc9abcc52ca620736c_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +buttons_process_task + + +Node1 + + +buttons_process_task + + + + + +Node2 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 new file mode 100644 index 0000000..f36e26c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.md5 @@ -0,0 +1 @@ +47cd52c93d34c5a0d8a133210d2b1343 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg new file mode 100644 index 0000000..ef7a576 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph.svg @@ -0,0 +1,209 @@ + + + + + + + + + + + + +audio_process_task + + +Node1 + + +audio_process_task + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +convert_float2short + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +convert_short2float + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +digitalLimiter + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_mulc_f32_ansi + + + + + +Node2->Node6 + + + + + + + + +Node7->Node8 + + + + + + + + +Node7->Node9 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg new file mode 100644 index 0000000..9aa5079 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ab091c1cbf0cdee1a9e75495e68236ab6_cgraph_org.svg @@ -0,0 +1,183 @@ + + + + + + +audio_process_task + + +Node1 + + +audio_process_task + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +buttons_process_task + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +dsps_biquad_gen_highShelf_f32 + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +dsps_biquad_gen_lowShelf_f32 + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +convert_float2short + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +convert_short2float + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +digitalLimiter + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dsps_mulc_f32_ansi + + + + + +Node2->Node6 + + + + + + + + +Node7->Node8 + + + + + + + + +Node7->Node9 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 new file mode 100644 index 0000000..0ca9b40 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.md5 @@ -0,0 +1 @@ +016ef619995e408b012881266cf878d5 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg new file mode 100644 index 0000000..4abec4d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +convert_float2short + + +Node1 + + +convert_float2short + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg new file mode 100644 index 0000000..e6c9120 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_ae8bef2245ac9fb55d56a7af6c4b5fe5d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +convert_float2short + + +Node1 + + +convert_float2short + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 new file mode 100644 index 0000000..20db88c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.md5 @@ -0,0 +1 @@ +4f55f88a9f17d64fadf3b2cc0b45982f \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg new file mode 100644 index 0000000..b9425ac --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +convert_short2float + + +Node1 + + +convert_short2float + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg new file mode 100644 index 0000000..87bddb6 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_aedfa0ee2b0d2e41a702707315faa5e10_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +convert_short2float + + +Node1 + + +convert_short2float + + + + + +Node2 + + +audio_read_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_source.html b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_source.html new file mode 100644 index 0000000..e5c9df9 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2lyrat__board__app_2main_2audio__amp__main_8c_source.html @@ -0,0 +1,560 @@ + + + + + + + +ESP-IDF Firmware: audio_amp_main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/lyrat_board_app/main/audio_amp_main.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: CC0-1.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include <inttypes.h>
+
9#include <sdkconfig.h>
+
10#include "freertos/FreeRTOS.h"
+
11#include "freertos/task.h"
+
12#include "freertos/queue.h"
+
13#include "esp_log.h"
+
14#include "esp_dsp.h"
+
15#include "bsp/esp-bsp.h"
+
16#include <stdint.h>
+
17#include <math.h>
+
18
+
19// Buffer for reading/writing to I2S driver. Same length as SPIFFS buffer and I2S buffer, for optimal read/write performance.
+
20// Recording audio data path:
+
21// I2S peripheral -> I2S buffer (DMA) -> App buffer (RAM) -> SPIFFS buffer -> External SPI Flash.
+
22// Vice versa for playback.
+
23#define BUFFER_SIZE (64)
+
24#define SAMPLE_RATE (16000) // For recording
+
25#define DEFAULT_VOLUME (100)
+
26
+
27// Globals
+
28static const char *TAG = "example";
+
29static QueueHandle_t audio_button_q = NULL;
+
30
+
+
31static void btn_handler(void *button_handle, void *usr_data)
+
32{
+
33 int button_pressed = (int)usr_data;
+
34 xQueueSend(audio_button_q, &button_pressed, 0);
+
35}
+
36
+
37// Very simple WAV header, ignores most fields
+
38typedef struct __attribute__((packed))
+
39{
+
40 uint8_t ignore_0[22];
+
41 uint16_t num_channels;
+
42 uint32_t sample_rate;
+
43 uint8_t ignore_1[6];
+
44 uint16_t bits_per_sample;
+
45 uint8_t ignore_2[4];
+
46 uint32_t data_size;
+
47 uint8_t data[];
+ +
+
49
+ +
55
+
56static esp_codec_dev_handle_t spk_codec_dev = NULL;
+
57static FILE *play_file = NULL;
+
58// Pointer to a file that is going to be played
+
59static const char play_filename[] = BSP_SPIFFS_MOUNT_POINT"/16bit_mono_44_1_khz.wav";
+
60
+
61// Definition for all tasks
+
62static void buttons_process_task(void *arg);
+
63static void audio_read_task(void *arg);
+
64static void audio_process_task(void *arg);
+
65
+
66
+
67// Wave file header
+ + +
70
+
71// Data for IIR filters
+ +
73float iir_w_lpf[5] = {0, 0};
+
74
+ +
76float iir_w_hpf[5] = {0, 0};
+
77
+
78// IIR filters parameters
+
79// Parameters for low-pass filter (LPF)
+
80float lpf_gain = 0;
+
81float lpf_qFactor = 0.5;
+
82float lpf_freq = 0.01;
+
83
+
84// Parameters for high-pass filter (HPF)
+
85float hpf_gain = 0;
+
86float hpf_qFactor = 1;
+
87float hpf_freq = 0.15;
+
88
+
89// Volume control definitions
+
90float full_volume = 1;
+
91// Volume in dB
+ +
93// Digital limiter envelope value
+
94float full_envelope = 0;
+
95
+
96// processing audio buffer
+ +
98
+
99// The triple_audio_buffer contains tree data arrays sizeof BUFFER_SIZE, for writing audio data to the codec
+ +
101// The write index shows the audio buffer that will be used to write data to the codec
+ +
103// The read index shows the audio buffer that will be used to fill data from the data source to the processing buffer
+ +
105
+
106// Semaphore to synchronize the read and write
+
107static SemaphoreHandle_t sync_read_task;
+
108
+
109// Convert input int16_t Q15 values array to the float values array
+
+
110static void convert_short2float(int16_t *int16_data, float *float_data, int len)
+
111{
+
112 float multiplier = 1.0 / (float)(INT16_MAX + 1);
+
113 for (int i = 0 ; i < len ; i++) {
+
114 float_data[i] = (float)int16_data[i] * multiplier;
+
115 }
+
116}
+
+
117
+
118// Convert input float values to the int16_t Q15 values array
+
+
119static void convert_float2short(float *float_data, int16_t *int16_data, int len)
+
120{
+
121 float multiplier = (float)(INT16_MAX + 1);
+
122 for (int i = 0 ; i < len ; i++) {
+
123 int16_data[i] = (int16_t)((float)multiplier * (float)float_data[i]);
+
124 }
+
125}
+
+
126
+
127// In the audio processing the valid output audio values for the floating point format should be in range +/- 1.0,
+
128// because these values will be converted to the 0x8000 and 0x7fff int16_t values, and will be accepted by the codec.
+
129// With additional amplification, for example bass, treble, and for other processing, it is possible that the audio
+
130// signal will reach the maximum values and will make an overflow at the DAC.
+
131// To avoid this situation the digital limiter analyze the output values and control the full amplification gain.
+
132//
+
+
133void digitalLimiter(float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
+
134{
+
135 float envelope = *in_envelope;
+
136 for (int i = 0; i < signal_length; i++) {
+
137 // Calculate envelope
+
138 float abs_input = fabsf(input_signal[i]);
+
139 if (abs_input > envelope) {
+
140 envelope = envelope * (1 - attack_value) + attack_value * abs_input;
+
141 } else {
+
142 envelope = envelope * (1 - release_value) + release_value * abs_input;
+
143 }
+
144
+
145 // Apply compression
+
146 if (envelope > threshold) {
+
147 output_signal[i] = input_signal[i] * (threshold / envelope);
+
148 } else {
+
149 output_signal[i] = input_signal[i];
+
150 }
+
151 }
+
152 *in_envelope = envelope;
+
153}
+
+
154
+
+
155static void audio_process_task(void *arg)
+
156{
+
157 // Init codeac and apply the initial volume to maximum
+
158 spk_codec_dev = bsp_audio_codec_speaker_init();
+
159 assert(spk_codec_dev);
+
160 esp_codec_dev_set_out_vol(spk_codec_dev, DEFAULT_VOLUME);
+
161
+
162 // Open file and het the WAV header to set up the sample frequency, amount of channels and resolution
+
163 play_file = fopen(play_filename, "rb");
+
164 if (play_file == NULL) {
+
165 ESP_LOGW(TAG, "%s file does not exist!", play_filename);
+
166 }
+
167 // Read WAV header
+
168 if (fread((void *)&wav_header, 1, sizeof(wav_header), play_file) != sizeof(wav_header)) {
+
169 ESP_LOGW(TAG, "Error in reading file");
+
170 return;
+
171 }
+
172
+
173 ESP_LOGI(TAG, "Number of channels: %" PRIu16 "", wav_header.num_channels);
+
174 ESP_LOGI(TAG, "Bits per sample: %" PRIu16 "", wav_header.bits_per_sample);
+
175 ESP_LOGI(TAG, "Sample rate: %" PRIu32 "", wav_header.sample_rate);
+
176 ESP_LOGI(TAG, "Data size: %" PRIu32 "", wav_header.data_size);
+
177 esp_codec_dev_sample_info_t fs = {
+
178 .sample_rate = wav_header.sample_rate,
+
179 .channel = wav_header.num_channels,
+
180 .bits_per_sample = wav_header.bits_per_sample,
+
181 };
+
182 if (spk_codec_dev != NULL) {
+
183 int result = esp_codec_dev_open(spk_codec_dev, &fs);
+
184 }
+
185 // Calculate initial volume value
+
186 full_volume = exp10f((float)full_volume_db / 20);
+
187 // Calculate initial state for LPF
+ +
189 // Calculate initial state for HPF
+ +
191
+
192 BaseType_t ret = xTaskCreate(buttons_process_task, "buttons_process_task", 4096, NULL, 4, NULL);
+
193 assert(ret == pdPASS);
+
194
+
195 sync_read_task = xSemaphoreCreateCounting(1, 0);
+
196
+
197 ret = xTaskCreate(audio_read_task, "audio_read_task", 4096, NULL, 7, NULL);
+
198 assert(ret == pdPASS);
+
199 vTaskDelay(1);
+
200
+
201 ESP_LOGW(TAG, "To select volume/bass/treble please use the 'Set' button. And adjust the value with +/- buttons.");
+
202
+
203 for (;;) {
+
204 /* Get data from SPIFFS and send it to codec */
+ +
206 // Write samples to audio codec
+
207 esp_codec_dev_write(spk_codec_dev, wav_bytes, BUFFER_SIZE * sizeof(int16_t));
+ +
209 if (audio_buffer_write_index >= 3) {
+ +
211 }
+
212 // Check the triple buffer overflow
+ +
214 // Call delay to switch the task to fill the buffer
+
215 vTaskDelay(1);
+
216 // Check and indicate overflow status
+ +
218 ESP_LOGW(TAG, "Audio buffer overflow!");
+
219 }
+
220 }
+
221 // Generate synt event to read task:
+
222 xSemaphoreGive(sync_read_task);
+
223 }
+
224}
+
+
225
+
226// The audio_read_task is responsible to read data from the file and fill it to the audio buffer.
+
227// The audio buffer is places inside of triple buffer, to avoid overflow situation in case if
+
228// the processing task busy for a while.
+
+
229static void audio_read_task(void *arg)
+
230{
+
231 while (1) {
+
232 // Wait the sync semaphore
+
233 if (xSemaphoreTake(sync_read_task, 100)) {
+
234 // Get the pointer to the current audio buffer
+ +
236 // Read the data from the file
+
237 uint32_t bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
238 // Convert input samples from int16 to float for processing
+ +
240 // Apply bass
+ +
242 // Apply treble
+ +
244 // Apply voluve
+ +
246 // Apply limiter
+ +
248 // Convert from float to int16 for audio codec
+ +
250
+
251 if (bytes_read_from_spiffs != BUFFER_SIZE) {
+
252 // Rewind the file and read the WAV header
+
253 rewind(play_file);
+
254 fread((void *)&wav_header, 1, sizeof(wav_header), play_file);
+
255 // Read data to the audio buffer
+
256 bytes_read_from_spiffs = fread(wav_buffer, sizeof(int16_t), BUFFER_SIZE, play_file);
+
257 }
+ +
259 if (audio_buffer_read_index >= 3) {
+ +
261 }
+
262 } else {
+
263 // Error in case of timeout
+
264 ESP_LOGE(TAG, "Audio timeout!");
+
265 }
+
266 }
+
267}
+
+
268
+
+
269static void buttons_process_task(void *arg)
+
270{
+
271 while (1) {
+
272 int btn_index = 0;
+
273 if (xQueueReceive(audio_button_q, &btn_index, portMAX_DELAY) == pdTRUE) {
+
274 switch (btn_index) {
+
275 case BSP_BUTTON_SET: {
+
276 current_set += 1;
+
277 if (current_set > 2) {
+ +
279 }
+
280 switch (current_set) {
+
281 case AUDIO_VOLUME:
+
282 ESP_LOGW(TAG, "Select volume");
+
283 break;
+
284 case AUDIO_BASS:
+
285 ESP_LOGW(TAG, "Select bass");
+
286 break;
+
287 case AUDIO_TREBLE:
+
288 ESP_LOGW(TAG, "Select treble");
+
289 break;
+
290 default:
+
291 break;
+
292 }
+
293 break;
+
294 }
+
295 case BSP_BUTTON_VOLDOWN: {
+
296 switch (current_set) {
+
297 case AUDIO_VOLUME:
+
298 full_volume_db -= 3;
+
299 if (full_volume_db < -36) {
+
300 full_volume_db = -36;
+
301 }
+
302 full_volume = exp10f((float)full_volume_db / 20);
+
303 ESP_LOGI(TAG, "Volume Down: %i dB", full_volume_db);
+
304 break;
+
305 case AUDIO_BASS:
+
306 lpf_gain -= 1;
+
307 if (lpf_gain < -12) {
+
308 lpf_gain = -12;
+
309 }
+
310 ESP_LOGI(TAG, "Bass Down: %i", (int)lpf_gain);
+ +
312 break;
+
313 case AUDIO_TREBLE:
+
314 hpf_gain -= 1;
+
315 if (hpf_gain < -12) {
+
316 hpf_gain = -12;
+
317 }
+
318 ESP_LOGI(TAG, "Treble Down: %i", (int)hpf_gain);
+ +
320 break;
+
321 default:
+
322 break;
+
323 }
+
324 break;
+
325 }
+
326 case BSP_BUTTON_VOLUP: {
+
327 switch (current_set) {
+
328 case AUDIO_VOLUME:
+
329 full_volume_db += 3;
+
330 if (full_volume_db > 0) {
+
331 full_volume_db = 0;
+
332 }
+
333 full_volume = exp10f((float)full_volume_db / 20);
+
334 ESP_LOGI(TAG, "Volume Up: %i dB", full_volume_db);
+
335 break;
+
336 case AUDIO_BASS:
+
337 lpf_gain += 1;
+
338 if (lpf_gain > 12) {
+
339 lpf_gain = 12;
+
340 }
+
341 ESP_LOGI(TAG, "Bass Up: %i", (int)lpf_gain);
+ +
343 break;
+
344 case AUDIO_TREBLE:
+
345 hpf_gain += 1;
+
346 if (hpf_gain > 12) {
+
347 hpf_gain = 12;
+
348 }
+
349 ESP_LOGI(TAG, "Treble Up: %i", (int)hpf_gain);
+ +
351 break;
+
352 default:
+
353 break;
+
354 }
+
355 break;
+
356 }
+
357 default:
+
358 ESP_LOGI(TAG, "No function for this button");
+
359 break;
+
360 }
+
361 }
+
362 }
+
363}
+
+
364
+
+
365void app_main(void)
+
366{
+
367 ESP_ERROR_CHECK(bsp_spiffs_mount());
+
368
+
369 // Create FreeRTOS tasks and queues
+
370 audio_button_q = xQueueCreate(10, sizeof(int));
+
371 assert (audio_button_q != NULL);
+
372
+
373 BaseType_t ret = xTaskCreate(audio_process_task, "audio_process_task", 4096, NULL, 6, NULL);
+
374 assert(ret == pdPASS);
+
375
+
376 // Init audio buttons
+
377 button_handle_t btns[BSP_BUTTON_NUM];
+
378 ESP_ERROR_CHECK(bsp_iot_button_create(btns, NULL, BSP_BUTTON_NUM));
+
379 for (int i = 0; i < BSP_BUTTON_NUM; i++) {
+
380 ESP_ERROR_CHECK(iot_button_register_cb(btns[i], BUTTON_PRESS_DOWN, btn_handler, (void *) i));
+
381 }
+
382}
+
+ +
static SemaphoreHandle_t sync_read_task
+ + + + +
static void audio_read_task(void *arg)
+ + + +
static QueueHandle_t audio_button_q
+ + +
static void btn_handler(void *button_handle, void *usr_data)
+
static const char play_filename[]
+ + + + + + + +
static void buttons_process_task(void *arg)
+
enum audio_set audio_set_t
+
static dumb_wav_header_t wav_header
+
static void audio_process_task(void *arg)
+ + + + +
static esp_codec_dev_handle_t spk_codec_dev
+ + + + + + +
#define dsps_biquad_f32
Definition dsps_biquad.h:99
+
esp_err_t dsps_biquad_gen_lowShelf_f32(float *coeffs, float f, float gain, float qFactor)
low shelf IIR filter coefficients
+
esp_err_t dsps_biquad_gen_highShelf_f32(float *coeffs, float f, float gain, float qFactor)
high shelf IIR filter coefficients
+
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+ + +
void digitalLimiter(float *input_signal, float *output_signal, int signal_length, float threshold, float attack_value, float release_value, float *in_envelope)
+ +
static void btn_handler(void *button_handle, void *usr_data)
+ + + +
static void convert_float2short(float *float_data, int16_t *int16_data, int len)
+
static void convert_short2float(int16_t *int16_data, float *float_data, int len)
+
static const char * TAG
Definition main/main.c:31
+
struct __attribute__((packed))
Definition main/main.c:65
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html new file mode 100644 index 0000000..6d527c5 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html @@ -0,0 +1,549 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include "sdkconfig.h"
+#include "esp_log.h"
+#include "bsp/m5stack_core_s3.h"
+#include "esp_dsp.h"
+#include "cube_matrix.h"
+#include "esp_logo.h"
+#include "image_to_3d_matrix.h"
+#include "esp_lcd_types.h"
+
+Include dependency graph for external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

void app_main ()
static void init_3d_matrix_struct (image_3d_matrix_t *image)
 Initialize 3d image structure.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void draw_3d_image_task (void *arg)
 RTOS task to draw a 3d image.
lv_display_t * display_init (void)
+ + + + + + +

+Variables

static const char * TAG = "3D image demo"
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
image_3d_matrix_t image
lv_display_t * display = NULL
lv_color16_t color_data [BSP_LCD_H_RES *BSP_LCD_V_RES]
+

Function Documentation

+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 117 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
118{
+
119 ESP_LOGI(TAG, "Start the 3D graphics application");
+ +
121 ekf13->Init();
+
122
+ + +
125
+
126 // Init the display
+ +
128
+
129 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
130
+
131 xTaskCreate(draw_3d_image_task, "draw_3d_image", 16384, &image, 3, NULL);
+
132 ESP_LOGI(TAG, "Showing 3D image");
+
133}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+ + + +
This class is used to process and calculate attitude from imu sensors.
+
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+ +
static const char * TAG
Definition main/main.c:31
+
+

References display, display_init(), draw_3d_image_task(), ekf13, image, init_3d_matrix_struct(), init_perspective_matrix(), perspective_matrix, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

Fill the display buffer with points from Logo matrix

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 49 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
50{
+
51 for (int i = 0 ; i < projected_image.rows ; i++) {
+
52 int x = projected_image(i, 0);
+
53 int y = projected_image(i, 1);
+
54
+
55 for (size_t xx = 0; xx < 4; xx++) {
+
56 for (size_t yy = 0; yy < 4; yy++) {
+
57 int index = (y + yy) * BSP_LCD_H_RES + (x + xx);
+
58 color_data[index].blue = 0x00;
+
59 color_data[index].red = 0x1f;
+
60 color_data[index].green = 0x00;
+
61 }
+
62 }
+
63 }
+
64}
+
lv_color16_t color_data[BSP_LCD_H_RES *BSP_LCD_V_RES]
+
int rows
Definition mat.h:33
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+

References color_data, dspm::Mat::rows, x, and y.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_init()

+ +
+
+ + + + + + + +
lv_display_t * display_init (void )
+
+ +

Definition at line 288 of file applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
289{
+
290 bsp_display_cfg_t cfg = {
+
291 .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(),
+
292 .buffer_size = BSP_LCD_DRAW_BUFF_SIZE,
+
293 .double_buffer = BSP_LCD_DRAW_BUFF_DOUBLE,
+
294 .flags = {
+
295 .buff_dma = true,
+
296 .buff_spiram = false,
+
297 }
+
298 };
+
299 cfg.lvgl_port_cfg.task_affinity = 1; /* For camera */
+ +
301}
+
static lv_display_t * dsp_display_start_with_config(const bsp_display_cfg_t *cfg)
+
+

References dsp_display_start_with_config().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image_task()

+ +
+
+ + + + + +
+ + + + + + + +
void draw_3d_image_task (void * arg)
+
+static
+
+ +

RTOS task to draw a 3d image.

+

Updates 3d matrices, prepares the final 3d matrix to be displayed on the display

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 74 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
75{
+
76 float rot_y = 0;
+
77 const float angle_increment_y = 4;
+ +
79
+
80 dspm::Mat T0 = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
81 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
82 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
83 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
84
+
85 esp_lcd_panel_handle_t panel_handle = (esp_lcd_panel_handle_t)lv_display_get_user_data(display);
+
86 int size = BSP_LCD_H_RES * BSP_LCD_V_RES;
+
87
+
88 while (1) {
+
89
+
90 rot_y -= angle_increment_y;
+
91 if (rot_y <= 0) {
+
92 rot_y += 360;
+
93 }
+
94
+
95 // Apply rotation in all the axes to the transformation matrix
+
96 update_rotation_matrix(T0, 0, rot_y, 0);
+
97 // Scale input matrix to fit the display
+
98 update_scaling_matrix(T0, true, 4, 4, 1);
+
99 // Apply translation to the transformation matrix
+
100 update_translation_matrix(T0, true, ((float)BSP_LCD_H_RES / 2), ((float)BSP_LCD_V_RES / 2), 0);
+
101
+
102 dspm::Mat result_image = matrix_3d * T0 * perspective_matrix;
+
103 // Clear buffer before update
+
104 memset(color_data, 0xff, size * 2);
+
105 // Fill the display buffer with result matrix data
+
106 display_3d_image(result_image);
+
107 // Swap colors to the display format
+
108 lv_draw_sw_rgb565_swap(color_data, size);
+
109 // Update the display
+
110 esp_lcd_panel_draw_bitmap(panel_handle, 0, 0, BSP_LCD_H_RES, BSP_LCD_V_RES, color_data);
+
111 vTaskDelay(20 / portTICK_PERIOD_MS);
+
112 }
+
113}
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
+

References color_data, display, display_3d_image(), dspm::Mat::eye(), image, MATRIX_SIZE, perspective_matrix, update_rotation_matrix(), update_scaling_matrix(), and update_translation_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_t * image)
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure

+
Parameters
+ + +
image3d image structure
+
+
+ +

Definition at line 32 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
33{
+ +
35 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
36 ESP_LOGI(TAG, "Selected 3D image - ESP Logo");
+
37}
+
const float image_3d_matrix_esp_logo[1427][4]
+
+

References image, image_3d_matrix_esp_logo, MATRIX_SIZE, and TAG.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ color_data

+ +
+
+ + + + +
lv_color16_t color_data[BSP_LCD_H_RES *BSP_LCD_V_RES]
+
+
+ +

◆ display

+ +
+
+ + + + +
lv_display_t* display = NULL
+
+
+ +

◆ image

+ + + +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "3D image demo"
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js new file mode 100644 index 0000000..7ca675b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js @@ -0,0 +1,13 @@ +var external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp = +[ + [ "app_main", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "display_3d_image", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "display_init", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af2392dd06c1a7e0f317d26309d9e0d18", null ], + [ "draw_3d_image_task", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af3debef909dca35dbf0b6f842df6def3", null ], + [ "init_3d_matrix_struct", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a3340d28d7e9de0fd62d17e02ce70a52c", null ], + [ "color_data", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a379686c37cdcf19146cc64955aad7553", null ], + [ "display", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a94cee89137dc23941cca5f855cc1140c", null ], + [ "image", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af643ed4087a70fb8ad4885eadf1fd862", null ], + [ "perspective_matrix", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "TAG", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 new file mode 100644 index 0000000..9c0f8a7 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +b190e8b8e20fae01b0aaa0a07ae77d47 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg new file mode 100644 index 0000000..6bf0ab3 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg @@ -0,0 +1,1735 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_dsp.h + + + + + +Node1->Node8 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +image_to_3d_matrix.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +esp_lcd_types.h + + + + + +Node1->Node78 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +dsp_common.h + + + + + +Node8->Node9 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node8->Node17 + + + + + + + + +Node19 + + +dsps_dotprod.h + + + + + +Node8->Node19 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node8->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node8->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node8->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node8->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node8->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node8->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node8->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node8->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node8->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node8->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node8->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node8->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node8->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node8->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node8->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node8->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node8->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node8->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node8->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node8->Node74 + + + + + + + + +Node10 + + +stdint.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +dsp_err.h + + + + + +Node9->Node12 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node9->Node15 + + + + + + + + +Node16 + + +x86intrin.h + + + + + +Node9->Node16 + + + + + + + + +Node12->Node10 + + + + + + + + +Node17->Node10 + + + + + + + + +Node17->Node11 + + + + + + + + +Node18 + + +inttypes.h + + + + + +Node17->Node18 + + + + + + + + +Node19->Node5 + + + + + + + + +Node19->Node12 + + + + + + + + +Node20 + + +dsps_dotprod_platform.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node12 + + + + + + + + +Node24->Node12 + + + + + + + + +Node26->Node12 + + + + + + + + +Node28->Node12 + + + + + + + + +Node30->Node12 + + + + + + + + +Node32->Node12 + + + + + + + + +Node33->Node9 + + + + + + + + +Node33->Node12 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node4 + + + + + + + + +Node35->Node12 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node12 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node4 + + + + + + + + +Node38->Node12 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node12 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node4 + + + + + + + + +Node48->Node12 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node12 + + + + + + + + +Node50->Node12 + + + + + + + + +Node51->Node12 + + + + + + + + +Node52->Node12 + + + + + + + + +Node53->Node12 + + + + + + + + +Node54->Node4 + + + + + + + + +Node54->Node12 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node4 + + + + + + + + +Node57->Node4 + + + + + + + + +Node57->Node12 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node4 + + + + + + + + +Node59->Node4 + + + + + + + + +Node59->Node12 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node12 + + + + + + + + +Node63->Node12 + + + + + + + + +Node65->Node12 + + + + + + + + +Node67->Node12 + + + + + + + + +Node69->Node12 + + + + + + + + +Node71->Node12 + + + + + + + + +Node72->Node5 + + + + + + + + +Node72->Node12 + + + + + + + + +Node72->Node17 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node74->Node12 + + + + + + + + +Node74->Node17 + + + + + + + + +Node74->Node47 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..73a2cdc --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg @@ -0,0 +1,1652 @@ + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_dsp.h + + + + + +Node1->Node8 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +image_to_3d_matrix.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +esp_lcd_types.h + + + + + +Node1->Node78 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +dsp_common.h + + + + + +Node8->Node9 + + + + + + + + +Node17 + + +dsp_types.h + + + + + +Node8->Node17 + + + + + + + + +Node19 + + +dsps_dotprod.h + + + + + +Node8->Node19 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node8->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node8->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node8->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node8->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node8->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node8->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node8->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node8->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node8->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node8->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node8->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node8->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node8->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node8->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node8->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node8->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node8->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node8->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node8->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node8->Node74 + + + + + + + + +Node10 + + +stdint.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +stdbool.h + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +dsp_err.h + + + + + +Node9->Node12 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node9->Node15 + + + + + + + + +Node16 + + +x86intrin.h + + + + + +Node9->Node16 + + + + + + + + +Node12->Node10 + + + + + + + + +Node17->Node10 + + + + + + + + +Node17->Node11 + + + + + + + + +Node18 + + +inttypes.h + + + + + +Node17->Node18 + + + + + + + + +Node19->Node5 + + + + + + + + +Node19->Node12 + + + + + + + + +Node20 + + +dsps_dotprod_platform.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node12 + + + + + + + + +Node24->Node12 + + + + + + + + +Node26->Node12 + + + + + + + + +Node28->Node12 + + + + + + + + +Node30->Node12 + + + + + + + + +Node32->Node12 + + + + + + + + +Node33->Node9 + + + + + + + + +Node33->Node12 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node4 + + + + + + + + +Node35->Node12 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node12 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node4 + + + + + + + + +Node38->Node12 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node12 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node4 + + + + + + + + +Node48->Node12 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node12 + + + + + + + + +Node50->Node12 + + + + + + + + +Node51->Node12 + + + + + + + + +Node52->Node12 + + + + + + + + +Node53->Node12 + + + + + + + + +Node54->Node4 + + + + + + + + +Node54->Node12 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node4 + + + + + + + + +Node57->Node4 + + + + + + + + +Node57->Node12 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node4 + + + + + + + + +Node59->Node4 + + + + + + + + +Node59->Node12 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node12 + + + + + + + + +Node63->Node12 + + + + + + + + +Node65->Node12 + + + + + + + + +Node67->Node12 + + + + + + + + +Node69->Node12 + + + + + + + + +Node71->Node12 + + + + + + + + +Node72->Node5 + + + + + + + + +Node72->Node12 + + + + + + + + +Node72->Node17 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node74->Node12 + + + + + + + + +Node74->Node17 + + + + + + + + +Node74->Node47 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 new file mode 100644 index 0000000..fecac1c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 @@ -0,0 +1 @@ +d113551e9cacf51ad53568f5b5ec5292 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg new file mode 100644 index 0000000..6ff6843 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg new file mode 100644 index 0000000..a9cfee9 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..78ac082 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +f4b9700e706969024165e665a49ae99b \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..101c73a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..cf512d3 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..d966a0b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +bf277f2f91b8c177e1e9d909a120e132 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..558d464 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +display_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node19 + + +init_3d_matrix_struct + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +init_perspective_matrix + + + + + +Node1->Node20 + + + + + + + + +Node3 + + +dsp_display_start_with +_config + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_display_lcd_init + + + + + +Node3->Node4 + + + + + + + + +Node9 + + +dsp_display_brightness_init + + + + + +Node3->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +dspm::Mat::eye + + + + + +Node10->Node12 + + + + + + + + +Node15 + + +update_rotation_matrix + + + + + +Node10->Node15 + + + + + + + + +Node18 + + +update_translation +_matrix + + + + + +Node10->Node18 + + + + + + + + +Node13 + + +dspm::Mat::Mat + + + + + +Node12->Node13 + + + + + + + + +Node16 + + +ekf::eul2rotm + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dspm::Mat::t + + + + + +Node15->Node17 + + + + + + + + +Node17->Node13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..5355eab --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,284 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +display_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node19 + + +init_3d_matrix_struct + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +init_perspective_matrix + + + + + +Node1->Node20 + + + + + + + + +Node3 + + +dsp_display_start_with +_config + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_display_lcd_init + + + + + +Node3->Node4 + + + + + + + + +Node9 + + +dsp_display_brightness_init + + + + + +Node3->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +dspm::Mat::eye + + + + + +Node10->Node12 + + + + + + + + +Node15 + + +update_rotation_matrix + + + + + +Node10->Node15 + + + + + + + + +Node18 + + +update_translation +_matrix + + + + + +Node10->Node18 + + + + + + + + +Node13 + + +dspm::Mat::Mat + + + + + +Node12->Node13 + + + + + + + + +Node16 + + +ekf::eul2rotm + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +dspm::Mat::t + + + + + +Node15->Node17 + + + + + + + + +Node17->Node13 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 new file mode 100644 index 0000000..330b4cf --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 @@ -0,0 +1 @@ +f4c35b0e5ce9f4b9552d648316994002 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg new file mode 100644 index 0000000..2354d94 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsp_display_brightness_init + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +dsp_display_new + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_i2c_init + + + + + +Node8->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg new file mode 100644 index 0000000..284d842 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg @@ -0,0 +1,112 @@ + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsp_display_brightness_init + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +dsp_display_new + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_i2c_init + + + + + +Node8->Node6 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 new file mode 100644 index 0000000..af10df9 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 @@ -0,0 +1 @@ +bb2ce8da2e1338efd2a97c273f7178ab \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg new file mode 100644 index 0000000..d017595 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg new file mode 100644 index 0000000..3f4d6c6 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 new file mode 100644 index 0000000..bad7491 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 @@ -0,0 +1 @@ +9f80508c01ab82fd68292ad2f8c734c6 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg new file mode 100644 index 0000000..c72a181 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_scaling_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_translation +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg new file mode 100644 index 0000000..04a1bf3 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg @@ -0,0 +1,193 @@ + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_scaling_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_translation +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html new file mode 100644 index 0000000..f5f81e1 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html @@ -0,0 +1,254 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/3d_graphics_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include <string.h>
+
9#include "sdkconfig.h"
+
10#include "esp_log.h"
+
11#include "bsp/m5stack_core_s3.h"
+
12#include "esp_dsp.h"
+
13#include "cube_matrix.h"
+
14#include "esp_logo.h"
+
15#include "image_to_3d_matrix.h"
+
16#include "esp_lcd_types.h"
+
17
+
18
+
19static const char *TAG = "3D image demo";
+ + +
22
+
23extern "C" void app_main();
+
24
+
+ +
33{
+ +
35 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
36 ESP_LOGI(TAG, "Selected 3D image - ESP Logo");
+
37}
+
+
38
+
39lv_display_t *display = NULL;
+
40lv_color16_t color_data[BSP_LCD_H_RES * BSP_LCD_V_RES];
+
41
+
+
49static void display_3d_image(dspm::Mat projected_image)
+
50{
+
51 for (int i = 0 ; i < projected_image.rows ; i++) {
+
52 int x = projected_image(i, 0);
+
53 int y = projected_image(i, 1);
+
54
+
55 for (size_t xx = 0; xx < 4; xx++) {
+
56 for (size_t yy = 0; yy < 4; yy++) {
+
57 int index = (y + yy) * BSP_LCD_H_RES + (x + xx);
+
58 color_data[index].blue = 0x00;
+
59 color_data[index].red = 0x1f;
+
60 color_data[index].green = 0x00;
+
61 }
+
62 }
+
63 }
+
64}
+
+
65
+
73
+
+
74static void draw_3d_image_task(void *arg)
+
75{
+
76 float rot_y = 0;
+
77 const float angle_increment_y = 4;
+ +
79
+
80 dspm::Mat T0 = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
81 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
82 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
83 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
84
+
85 esp_lcd_panel_handle_t panel_handle = (esp_lcd_panel_handle_t)lv_display_get_user_data(display);
+
86 int size = BSP_LCD_H_RES * BSP_LCD_V_RES;
+
87
+
88 while (1) {
+
89
+
90 rot_y -= angle_increment_y;
+
91 if (rot_y <= 0) {
+
92 rot_y += 360;
+
93 }
+
94
+
95 // Apply rotation in all the axes to the transformation matrix
+
96 update_rotation_matrix(T0, 0, rot_y, 0);
+
97 // Scale input matrix to fit the display
+
98 update_scaling_matrix(T0, true, 4, 4, 1);
+
99 // Apply translation to the transformation matrix
+
100 update_translation_matrix(T0, true, ((float)BSP_LCD_H_RES / 2), ((float)BSP_LCD_V_RES / 2), 0);
+
101
+
102 dspm::Mat result_image = matrix_3d * T0 * perspective_matrix;
+
103 // Clear buffer before update
+
104 memset(color_data, 0xff, size * 2);
+
105 // Fill the display buffer with result matrix data
+
106 display_3d_image(result_image);
+
107 // Swap colors to the display format
+
108 lv_draw_sw_rgb565_swap(color_data, size);
+
109 // Update the display
+
110 esp_lcd_panel_draw_bitmap(panel_handle, 0, 0, BSP_LCD_H_RES, BSP_LCD_V_RES, color_data);
+
111 vTaskDelay(20 / portTICK_PERIOD_MS);
+
112 }
+
113}
+
+
114
+
115extern "C" lv_display_t *display_init(void);
+
116
+
+
117void app_main(void)
+
118{
+
119 ESP_LOGI(TAG, "Start the 3D graphics application");
+ +
121 ekf13->Init();
+
122
+ + +
125
+
126 // Init the display
+ +
128
+
129 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
130
+
131 xTaskCreate(draw_3d_image_task, "draw_3d_image", 16384, &image, 3, NULL);
+
132 ESP_LOGI(TAG, "Showing 3D image");
+
133}
+
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
const float image_3d_matrix_esp_logo[1427][4]
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+
lv_color16_t color_data[BSP_LCD_H_RES *BSP_LCD_V_RES]
+ + + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+ + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ + +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
static const char * TAG
Definition main/main.c:31
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html new file mode 100644 index 0000000..8de1bc8 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html @@ -0,0 +1,1207 @@ + + + + + + + +ESP-IDF Firmware: init_display.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
init_display.c File Reference
+
+
+
#include "bsp/m5stack_core_s3.h"
+#include "esp_log.h"
+#include "esp_dsp.h"
+#include "esp_lcd_ili9341.h"
+#include "esp_err.h"
+
+Include dependency graph for external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + +

+Macros

#define BSP_AXP2101_ADDR   0x34
#define BSP_AW9523_ADDR   0x58
#define BSP_ERROR_CHECK_RETURN_ERR(x)
#define ESP_RETURN_ON_ERROR(x, log_tag, format, ...)
#define BSP_ERROR_CHECK_RETURN_NULL(x)
#define BSP_NULL_CHECK(x, ret)
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format, ...)
#define LCD_CMD_BITS   8
#define LCD_PARAM_BITS   8
#define LCD_LEDC_CH   CONFIG_BSP_DISPLAY_BRIGHTNESS_LEDC_CH
+ + +

+Enumerations

enum  bsp_feature_t {
+  BSP_FEATURE_LCD +, BSP_FEATURE_TOUCH +, BSP_FEATURE_SD +, BSP_FEATURE_SPEAKER +,
+  BSP_FEATURE_CAMERA +
+ }
+ + + + + + + + + +

+Functions

esp_err_t bsp_i2c_init (void)
static esp_err_t dsp_display_brightness_init (void)
static esp_err_t bsp_spi_init (uint32_t max_transfer_sz)
static esp_err_t bsp_enable_feature (bsp_feature_t feature)
esp_err_t dsp_display_new (const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io)
static lv_display_t * bsp_display_lcd_init (const bsp_display_cfg_t *cfg)
static lv_display_t * dsp_display_start_with_config (const bsp_display_cfg_t *cfg)
lv_display_t * display_init (void)
+ + + + + + + + +

+Variables

static i2c_master_bus_handle_t i2c_handle = NULL
static bool i2c_initialized = false
static i2c_master_dev_handle_t axp2101_h = NULL
static i2c_master_dev_handle_t aw9523_h = NULL
static bool spi_initialized = false
static const char * TAG = "3d-graphics"
static lv_display_t * disp
+

Macro Definition Documentation

+ +

◆ BSP_AW9523_ADDR

+ +
+
+ + + + +
#define BSP_AW9523_ADDR   0x58
+
+
+ +

◆ BSP_AXP2101_ADDR

+ +
+
+ + + + +
#define BSP_AXP2101_ADDR   0x34
+
+
+ +

◆ BSP_ERROR_CHECK_RETURN_ERR

+ +
+
+ + + + + + + +
#define BSP_ERROR_CHECK_RETURN_ERR( x)
+
+Value:
do { \
+
esp_err_t err_rc_ = (x); \
+
if (unlikely(err_rc_ != ESP_OK)) { \
+
return err_rc_; \
+
} \
+
} while(0)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
float x[1024]
Definition test_fir.c:10
+
+

Definition at line 21 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
21#define BSP_ERROR_CHECK_RETURN_ERR(x) do { \
+
22 esp_err_t err_rc_ = (x); \
+
23 if (unlikely(err_rc_ != ESP_OK)) { \
+
24 return err_rc_; \
+
25 } \
+
26} while(0)
+
+

Referenced by bsp_enable_feature(), bsp_i2c_init(), dsp_display_brightness_init(), and dsp_display_new().

+ +
+
+ +

◆ BSP_ERROR_CHECK_RETURN_NULL

+ +
+
+ + + + + + + +
#define BSP_ERROR_CHECK_RETURN_NULL( x)
+
+Value:
do { \
+
if (unlikely((x) != ESP_OK)) { \
+
return NULL; \
+
} \
+
} while(0)
+
+

Definition at line 37 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
37#define BSP_ERROR_CHECK_RETURN_NULL(x) do { \
+
38 if (unlikely((x) != ESP_OK)) { \
+
39 return NULL; \
+
40 } \
+
41} while(0)
+
+

Referenced by bsp_display_lcd_init(), and dsp_display_start_with_config().

+ +
+
+ +

◆ BSP_NULL_CHECK

+ +
+
+ + + + + + + + + + + +
#define BSP_NULL_CHECK( x,
ret )
+
+Value:
do { \
+
if ((x) == NULL) { \
+
return ret; \
+
} \
+
} while(0)
+
+

Definition at line 43 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
43#define BSP_NULL_CHECK(x, ret) do { \
+
44 if ((x) == NULL) { \
+
45 return ret; \
+
46 } \
+
47} while(0)
+
+

Referenced by dsp_display_start_with_config().

+ +
+
+ +

◆ ESP_GOTO_ON_ERROR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
#define ESP_GOTO_ON_ERROR( x,
goto_tag,
log_tag,
format,
... )
+
+Value:
do { \
+
esp_err_t err_rc_ = (x); \
+
if (unlikely(err_rc_ != ESP_OK)) { \
+
ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
ret = err_rc_; \
+
goto goto_tag; \
+
} \
+
} while(0)
+
+

Definition at line 49 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
49#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format, ...) do { \
+
50 esp_err_t err_rc_ = (x); \
+
51 if (unlikely(err_rc_ != ESP_OK)) { \
+
52 ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
53 ret = err_rc_; \
+
54 goto goto_tag; \
+
55 } \
+
56} while(0)
+
+

Referenced by dsp_display_new().

+ +
+
+ +

◆ ESP_RETURN_ON_ERROR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
#define ESP_RETURN_ON_ERROR( x,
log_tag,
format,
... )
+
+Value:
do { \
+
esp_err_t err_rc_ = (x); \
+
if (unlikely(err_rc_ != ESP_OK)) { \
+
ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
return err_rc_; \
+
} \
+
} while(0)
+
+

Definition at line 29 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
29#define ESP_RETURN_ON_ERROR(x, log_tag, format, ...) do { \
+
30 esp_err_t err_rc_ = (x); \
+
31 if (unlikely(err_rc_ != ESP_OK)) { \
+
32 ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
33 return err_rc_; \
+
34 } \
+
35} while(0)
+
+

Referenced by bsp_spi_init(), dsp_display_brightness_init(), and dsp_display_new().

+ +
+
+ +

◆ LCD_CMD_BITS

+ +
+
+ + + + +
#define LCD_CMD_BITS   8
+
+
+ +

◆ LCD_LEDC_CH

+ +
+
+ + + + +
#define LCD_LEDC_CH   CONFIG_BSP_DISPLAY_BRIGHTNESS_LEDC_CH
+
+
+ +

◆ LCD_PARAM_BITS

+ +
+
+ + + + +
#define LCD_PARAM_BITS   8
+
+
+

Enumeration Type Documentation

+ +

◆ bsp_feature_t

+ + +

Function Documentation

+ +

◆ bsp_display_lcd_init()

+ +
+
+ + + + + +
+ + + + + + + +
lv_display_t * bsp_display_lcd_init (const bsp_display_cfg_t * cfg)
+
+static
+
+ +

Definition at line 253 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
254{
+
255 assert(cfg != NULL);
+
256 esp_lcd_panel_io_handle_t io_handle = NULL;
+
257 esp_lcd_panel_handle_t panel_handle = NULL;
+
258 const bsp_display_config_t bsp_disp_cfg = {
+
259 .max_transfer_sz = BSP_LCD_DRAW_BUFF_SIZE * sizeof(uint16_t),
+
260 };
+
261 BSP_ERROR_CHECK_RETURN_NULL(dsp_display_new(&bsp_disp_cfg, &panel_handle, &io_handle));
+
262
+
263 esp_lcd_panel_disp_on_off(panel_handle, true);
+
264
+
265 lv_display_t *display = lv_display_create(BSP_LCD_H_RES, BSP_LCD_V_RES);
+
266
+
267 lv_display_set_user_data(display, panel_handle);
+
268 // set color depth
+
269 lv_display_set_color_format(display, LV_COLOR_FORMAT_RGB565);
+
270
+
271 return display;
+
272}
+ +
esp_err_t dsp_display_new(const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io)
+ +
+

References BSP_ERROR_CHECK_RETURN_NULL, display, and dsp_display_new().

+ +

Referenced by dsp_display_start_with_config().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ bsp_enable_feature()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t bsp_enable_feature (bsp_feature_t feature)
+
+static
+
+ +

Definition at line 139 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
140{
+
141 esp_err_t err = ESP_OK;
+
142 static uint8_t aw9523_P0 = 0b10;
+
143 static uint8_t aw9523_P1 = 0b10100000;
+
144 uint8_t data[2];
+
145
+
146 /* Initilize I2C */
+ +
148
+
149 switch (feature) {
+
150 case BSP_FEATURE_LCD:
+
151 /* Enable LCD */
+
152 aw9523_P1 |= (1 << 1);
+
153 break;
+ +
155 /* Enable Touch */
+
156 aw9523_P0 |= (1);
+
157 break;
+
158 case BSP_FEATURE_SD:
+
159 /* AXP ALDO4 voltage / SD Card / 3V3 */
+
160 data[0] = 0x95;
+
161 data[1] = 0b00011100; //3V3
+
162 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
163 /* Enable SD */
+
164 aw9523_P0 |= (1 << 4);
+
165 break;
+ +
167 /* AXP ALDO1 voltage / PA PVDD / 1V8 */
+
168 data[0] = 0x92;
+
169 data[1] = 0b00001101; //1V8
+
170 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
171 /* AXP ALDO2 voltage / Codec / 3V3 */
+
172 data[0] = 0x93;
+
173 data[1] = 0b00011100; //3V3
+
174 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
175 /* AXP ALDO3 voltage / Codec+Mic / 3V3 */
+
176 data[0] = 0x94;
+
177 data[1] = 0b00011100; //3V3
+
178 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
179 /* AW9523 P0 is in push-pull mode */
+
180 data[0] = 0x11;
+
181 data[1] = 0x10;
+
182 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
183 /* Enable Codec AW88298 */
+
184 aw9523_P0 |= (1 << 2);
+
185 break;
+ +
187 /* Enable Camera */
+
188 aw9523_P1 |= (1);
+
189 break;
+
190 }
+
191
+
192 data[0] = 0x02;
+
193 data[1] = aw9523_P0;
+
194 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
195
+
196 data[0] = 0x03;
+
197 data[1] = aw9523_P1;
+
198 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
199
+
200 return err;
+
201}
+ + + + +
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References aw9523_h, axp2101_h, BSP_ERROR_CHECK_RETURN_ERR, BSP_FEATURE_CAMERA, BSP_FEATURE_LCD, BSP_FEATURE_SD, BSP_FEATURE_SPEAKER, BSP_FEATURE_TOUCH, bsp_i2c_init(), data, and ESP_OK.

+ +

Referenced by dsp_display_new().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ bsp_i2c_init()

+ +
+
+ + + + + + + +
esp_err_t bsp_i2c_init (void )
+
+ +

Definition at line 60 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
61{
+
62 /* I2C was initialized before */
+
63 if (i2c_initialized) {
+
64 return ESP_OK;
+
65 }
+
66
+
67 const i2c_master_bus_config_t i2c_config = {
+
68 .i2c_port = BSP_I2C_NUM,
+
69 .sda_io_num = BSP_I2C_SDA,
+
70 .scl_io_num = BSP_I2C_SCL,
+
71 .clk_source = 1,
+
72 };
+
73 BSP_ERROR_CHECK_RETURN_ERR(i2c_new_master_bus(&i2c_config, &i2c_handle));
+
74
+
75 // AXP2101 and AW9523 are managed by this BSP
+
76 const i2c_device_config_t axp2101_config = {
+
77 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
78 .device_address = BSP_AXP2101_ADDR,
+
79 .scl_speed_hz = 400000,
+
80 };
+
81 BSP_ERROR_CHECK_RETURN_ERR(i2c_master_bus_add_device(i2c_handle, &axp2101_config, &axp2101_h));
+
82 const i2c_device_config_t aw9523_config = {
+
83 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
84 .device_address = BSP_AW9523_ADDR,
+
85 .scl_speed_hz = 400000,
+
86 };
+
87 BSP_ERROR_CHECK_RETURN_ERR(i2c_master_bus_add_device(i2c_handle, &aw9523_config, &aw9523_h));
+
88
+
89 i2c_initialized = true;
+
90 return ESP_OK;
+
91}
+
static i2c_master_bus_handle_t i2c_handle
+ + + +
+

References aw9523_h, axp2101_h, BSP_AW9523_ADDR, BSP_AXP2101_ADDR, BSP_ERROR_CHECK_RETURN_ERR, ESP_OK, i2c_handle, and i2c_initialized.

+ +

Referenced by bsp_enable_feature(), and dsp_display_brightness_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ bsp_spi_init()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t bsp_spi_init (uint32_t max_transfer_sz)
+
+static
+
+ +

Definition at line 107 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
108{
+
109 /* SPI was initialized before */
+
110 if (spi_initialized) {
+
111 return ESP_OK;
+
112 }
+
113
+
114 ESP_LOGD(TAG, "Initialize SPI bus");
+
115 const spi_bus_config_t buscfg = {
+
116 .sclk_io_num = BSP_LCD_PCLK,
+
117 .mosi_io_num = BSP_LCD_MOSI,
+
118 .miso_io_num = BSP_LCD_MISO,
+
119 .quadwp_io_num = GPIO_NUM_NC,
+
120 .quadhd_io_num = GPIO_NUM_NC,
+
121 .max_transfer_sz = max_transfer_sz,
+
122 };
+
123 ESP_RETURN_ON_ERROR(spi_bus_initialize(BSP_LCD_SPI_NUM, &buscfg, SPI_DMA_CH_AUTO), TAG, "SPI init failed");
+
124
+
125 spi_initialized = true;
+
126
+
127 return ESP_OK;
+
128}
+ +
#define ESP_LOGD
Definition esp_log.h:22
+ +
static const char * TAG
Definition main/main.c:31
+
+

References ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, spi_initialized, and TAG.

+ +

Referenced by dsp_display_new().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_init()

+ +
+
+ + + + + + + +
lv_display_t * display_init (void )
+
+ +

Definition at line 288 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
289{
+
290 bsp_display_cfg_t cfg = {
+
291 .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(),
+
292 .buffer_size = BSP_LCD_DRAW_BUFF_SIZE,
+
293 .double_buffer = BSP_LCD_DRAW_BUFF_DOUBLE,
+
294 .flags = {
+
295 .buff_dma = true,
+
296 .buff_spiram = false,
+
297 }
+
298 };
+
299 cfg.lvgl_port_cfg.task_affinity = 1; /* For camera */
+ +
301}
+
static lv_display_t * dsp_display_start_with_config(const bsp_display_cfg_t *cfg)
+
+

References dsp_display_start_with_config(), and dsp_display_start_with_config().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsp_display_brightness_init()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t dsp_display_brightness_init (void )
+
+static
+
+ +

Definition at line 93 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
94{
+
95 /* Initilize I2C */
+ +
97
+
98 const uint8_t lcd_bl_en[] = { 0x90, 0xBF }; // AXP DLDO1 Enable
+
99 ESP_RETURN_ON_ERROR(i2c_master_transmit(axp2101_h, lcd_bl_en, sizeof(lcd_bl_en), 1000), TAG, "I2C write failed");
+
100 const uint8_t lcd_bl_val[] = { 0x99, 0b00011000 }; // AXP DLDO1 voltage
+
101 ESP_RETURN_ON_ERROR(i2c_master_transmit(axp2101_h, lcd_bl_val, sizeof(lcd_bl_val), 1000), TAG, "I2C write failed");
+
102
+
103 return ESP_OK;
+
104}
+
+

References axp2101_h, BSP_ERROR_CHECK_RETURN_ERR, bsp_i2c_init(), ESP_OK, ESP_RETURN_ON_ERROR, and TAG.

+ +

Referenced by dsp_display_start_with_config().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsp_display_new()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t dsp_display_new (const bsp_display_config_t * config,
esp_lcd_panel_handle_t * ret_panel,
esp_lcd_panel_io_handle_t * ret_io )
+
+ +

Definition at line 207 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
208{
+
209 esp_err_t ret = ESP_OK;
+
210 assert(config != NULL && config->max_transfer_sz > 0);
+
211
+ +
213
+
214 /* Initialize SPI */
+
215 ESP_RETURN_ON_ERROR(bsp_spi_init(config->max_transfer_sz), TAG, "");
+
216
+
217 ESP_LOGD(TAG, "Install panel IO");
+
218 const esp_lcd_panel_io_spi_config_t io_config = {
+
219 .dc_gpio_num = BSP_LCD_DC,
+
220 .cs_gpio_num = BSP_LCD_CS,
+
221 .pclk_hz = BSP_LCD_PIXEL_CLOCK_HZ,
+
222 .lcd_cmd_bits = LCD_CMD_BITS,
+
223 .lcd_param_bits = LCD_PARAM_BITS,
+
224 .spi_mode = 0,
+
225 .trans_queue_depth = 10,
+
226 };
+
227 ESP_GOTO_ON_ERROR(esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)BSP_LCD_SPI_NUM, &io_config, ret_io), err, TAG, "New panel IO failed");
+
228
+
229 ESP_LOGD(TAG, "Install LCD driver");
+
230 const esp_lcd_panel_dev_config_t panel_config = {
+
231 .reset_gpio_num = BSP_LCD_RST, // Shared with Touch reset
+
232 .color_space = BSP_LCD_COLOR_SPACE,
+
233 .bits_per_pixel = BSP_LCD_BITS_PER_PIXEL,
+
234 };
+
235 ESP_GOTO_ON_ERROR(esp_lcd_new_panel_ili9341(*ret_io, &panel_config, ret_panel), err, TAG, "New panel failed");
+
236
+
237 esp_lcd_panel_reset(*ret_panel);
+
238 esp_lcd_panel_init(*ret_panel);
+
239 esp_lcd_panel_invert_color(*ret_panel, true);
+
240 return ret;
+
241
+
242err:
+
243 if (*ret_panel) {
+
244 esp_lcd_panel_del(*ret_panel);
+
245 }
+
246 if (*ret_io) {
+
247 esp_lcd_panel_io_del(*ret_io);
+
248 }
+
249 spi_bus_free(BSP_LCD_SPI_NUM);
+
250 return ret;
+
251}
+ + + + + +
+

References bsp_enable_feature(), BSP_ERROR_CHECK_RETURN_ERR, BSP_FEATURE_LCD, bsp_spi_init(), ESP_GOTO_ON_ERROR, ESP_LOGD, ESP_OK, ESP_RETURN_ON_ERROR, LCD_CMD_BITS, LCD_PARAM_BITS, and TAG.

+ +

Referenced by bsp_display_lcd_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dsp_display_start_with_config()

+ +
+
+ + + + + +
+ + + + + + + +
lv_display_t * dsp_display_start_with_config (const bsp_display_cfg_t * cfg)
+
+static
+
+ +

Definition at line 276 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c.

+
277{
+
278 assert(cfg != NULL);
+
279 BSP_ERROR_CHECK_RETURN_NULL(lvgl_port_init(&cfg->lvgl_port_cfg));
+
280
+ +
282
+ +
284
+
285 return disp;
+
286}
+ +
static lv_display_t * bsp_display_lcd_init(const bsp_display_cfg_t *cfg)
+ + +
+

References bsp_display_lcd_init(), BSP_ERROR_CHECK_RETURN_NULL, BSP_NULL_CHECK, disp, and dsp_display_brightness_init().

+ +

Referenced by display_init().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ aw9523_h

+ +
+
+ + + + + +
+ + + + +
i2c_master_dev_handle_t aw9523_h = NULL
+
+static
+
+
+ +

◆ axp2101_h

+ +
+
+ + + + + +
+ + + + +
i2c_master_dev_handle_t axp2101_h = NULL
+
+static
+
+
+ +

◆ disp

+ +
+
+ + + + + +
+ + + + +
lv_display_t* disp
+
+static
+
+
+ +

◆ i2c_handle

+ +
+
+ + + + + +
+ + + + +
i2c_master_bus_handle_t i2c_handle = NULL
+
+static
+
+
+ +

◆ i2c_initialized

+ +
+
+ + + + + +
+ + + + +
bool i2c_initialized = false
+
+static
+
+
+ +

◆ spi_initialized

+ +
+
+ + + + + +
+ + + + +
bool spi_initialized = false
+
+static
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "3d-graphics"
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.js b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.js new file mode 100644 index 0000000..5170f7a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.js @@ -0,0 +1,35 @@ +var external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c = +[ + [ "BSP_AW9523_ADDR", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#af26a1317243d1c4836855a12c97963c1", null ], + [ "BSP_AXP2101_ADDR", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ac7f42f3ac0330fd8b18a0b9b91e75405", null ], + [ "BSP_ERROR_CHECK_RETURN_ERR", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a61088fe7ad2d295829742a6ec0e19b1a", null ], + [ "BSP_ERROR_CHECK_RETURN_NULL", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ae1234d6b90fa48eec75a6d7e0c57fda7", null ], + [ "BSP_NULL_CHECK", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a7fd051982b5301efc6858cd719d1ec27", null ], + [ "ESP_GOTO_ON_ERROR", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ac3e1c009ea90e132ccb81365e1416efd", null ], + [ "ESP_RETURN_ON_ERROR", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ac36d5544986130fd34797e69253b5788", null ], + [ "LCD_CMD_BITS", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a970dd1ec4cf86ef299ba32369eb49ce2", null ], + [ "LCD_LEDC_CH", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ac3368a2115f9a8a758510b974eb12743", null ], + [ "LCD_PARAM_BITS", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#aeaa4b9f3aa7437180455e8da8e37c11f", null ], + [ "bsp_feature_t", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0", [ + [ "BSP_FEATURE_LCD", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0aa223485cede138815d7de224aa7535c5", null ], + [ "BSP_FEATURE_TOUCH", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0a4b4ea988f1b58458d7ae99beec7e9397", null ], + [ "BSP_FEATURE_SD", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0afe8e34c6a6af478efafeeb153bcb86ba", null ], + [ "BSP_FEATURE_SPEAKER", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0a01a1c9f8cc4f9cafbccdcb9355e5fabc", null ], + [ "BSP_FEATURE_CAMERA", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#adbba8b65de8c74725ff2c632e3f56dd0a10cffa066e9775cf06f05e3006583d3e", null ] + ] ], + [ "bsp_display_lcd_init", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a042e5da5d3336dd10ebda5674ec495c3", null ], + [ "bsp_enable_feature", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ad7f56c5752f2747c0774a27b5622674b", null ], + [ "bsp_i2c_init", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#afb504c284aa8a47f2ffee89038bd5b98", null ], + [ "bsp_spi_init", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ab742706b828d976fd293882d63d561a7", null ], + [ "display_init", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#af2392dd06c1a7e0f317d26309d9e0d18", null ], + [ "dsp_display_brightness_init", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#ae0e932afc1e59f18ce869a88e5954baf", null ], + [ "dsp_display_new", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#acbf166af6a0c6f9ee069922e14c83023", null ], + [ "dsp_display_start_with_config", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#aea76cb12d19d5676634c1a78817fa316", null ], + [ "aw9523_h", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a8b7f1a963c7ba13f9173bdbad24ab08c", null ], + [ "axp2101_h", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a423b0e2878a0a50ee3732437255dd7fb", null ], + [ "disp", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a647e5f267167a38dcd0e6fe55dfcfc61", null ], + [ "i2c_handle", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a721c9ecee4307bc707d56f8289af4bfb", null ], + [ "i2c_initialized", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a95927f9862fd820b287d27c4f9465da7", null ], + [ "spi_initialized", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a90589f9cd41f89c868ea376bc091ad9d", null ], + [ "TAG", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.md5 new file mode 100644 index 0000000..dd63080 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.md5 @@ -0,0 +1 @@ +e3a46ea5fde015c87a8cf569213445ba \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.svg new file mode 100644 index 0000000..2a9896e --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl.svg @@ -0,0 +1,1672 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +init_display.c + + +Node1 + + +init_display.c + + + + + +Node2 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node1->Node5 + + + + + + + + +Node10 + + +esp_err.h + + + + + +Node1->Node10 + + + + + + + + +Node73 + + +esp_lcd_ili9341.h + + + + + +Node1->Node73 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node14 + + +dsp_types.h + + + + + +Node5->Node14 + + + + + + + + +Node16 + + +dsps_dotprod.h + + + + + +Node5->Node16 + + + + + + + + +Node19 + + +dsps_math.h + + + + + +Node5->Node19 + + + + + + + + +Node31 + + +dsps_fir.h + + + + + +Node5->Node31 + + + + + + + + +Node33 + + +dsps_resampler.h + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +dsps_biquad.h + + + + + +Node5->Node34 + + + + + + + + +Node36 + + +dsps_biquad_gen.h + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +dsps_wind.h + + + + + +Node5->Node37 + + + + + + + + +Node44 + + +dsps_conv.h + + + + + +Node5->Node44 + + + + + + + + +Node46 + + +dsps_corr.h + + + + + +Node5->Node46 + + + + + + + + +Node47 + + +dsps_d_gen.h + + + + + +Node5->Node47 + + + + + + + + +Node48 + + +dsps_h_gen.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_tone_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_snr.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_sfdr.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_fft2r.h + + + + + +Node5->Node52 + + + + + + + + +Node55 + + +dsps_fft4r.h + + + + + +Node5->Node55 + + + + + + + + +Node57 + + +dsps_dct.h + + + + + +Node5->Node57 + + + + + + + + +Node58 + + +dspm_matrix.h + + + + + +Node5->Node58 + + + + + + + + +Node69 + + +dsps_view.h + + + + + +Node5->Node69 + + + + + + + + +Node70 + + +dspi_dotprod.h + + + + + +Node5->Node70 + + + + + + + + +Node72 + + +dspi_conv.h + + + + + +Node5->Node72 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +stdbool.h + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +dsp_err.h + + + + + +Node6->Node9 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node6->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node6->Node13 + + + + + + + + +Node9->Node7 + + + + + + + + +Node9->Node10 + + + + + + + + +Node10->Node4 + + + + + + + + +Node14->Node7 + + + + + + + + +Node14->Node8 + + + + + + + + +Node15 + + +inttypes.h + + + + + +Node14->Node15 + + + + + + + + +Node16->Node3 + + + + + + + + +Node16->Node9 + + + + + + + + +Node17 + + +dsps_dotprod_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +sdkconfig.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_add.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_sub.h + + + + + +Node19->Node22 + + + + + + + + +Node24 + + +dsps_mul.h + + + + + +Node19->Node24 + + + + + + + + +Node26 + + +dsps_addc.h + + + + + +Node19->Node26 + + + + + + + + +Node28 + + +dsps_mulc.h + + + + + +Node19->Node28 + + + + + + + + +Node30 + + +dsps_sqrt.h + + + + + +Node19->Node30 + + + + + + + + +Node20->Node9 + + + + + + + + +Node22->Node9 + + + + + + + + +Node24->Node9 + + + + + + + + +Node26->Node9 + + + + + + + + +Node28->Node9 + + + + + + + + +Node30->Node9 + + + + + + + + +Node31->Node6 + + + + + + + + +Node31->Node9 + + + + + + + + +Node32 + + +dsps_fir_platform.h + + + + + +Node31->Node32 + + + + + + + + +Node32->Node18 + + + + + + + + +Node33->Node9 + + + + + + + + +Node33->Node31 + + + + + + + + +Node34->Node9 + + + + + + + + +Node35 + + +dsps_biquad_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node18 + + + + + + + + +Node36->Node9 + + + + + + + + +Node38 + + +dsps_wind_hann.h + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman.h + + + + + +Node37->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_harris.h + + + + + +Node37->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node37->Node41 + + + + + + + + +Node42 + + +dsps_wind_nuttall.h + + + + + +Node37->Node42 + + + + + + + + +Node43 + + +dsps_wind_flat_top.h + + + + + +Node37->Node43 + + + + + + + + +Node44->Node9 + + + + + + + + +Node45 + + +dsps_conv_platform.h + + + + + +Node44->Node45 + + + + + + + + +Node45->Node18 + + + + + + + + +Node46->Node9 + + + + + + + + +Node46->Node45 + + + + + + + + +Node47->Node9 + + + + + + + + +Node48->Node9 + + + + + + + + +Node49->Node9 + + + + + + + + +Node50->Node9 + + + + + + + + +Node51->Node9 + + + + + + + + +Node52->Node9 + + + + + + + + +Node52->Node18 + + + + + + + + +Node53 + + +dsps_fft_tables.h + + + + + +Node52->Node53 + + + + + + + + +Node54 + + +dsps_fft2r_platform.h + + + + + +Node52->Node54 + + + + + + + + +Node54->Node18 + + + + + + + + +Node55->Node9 + + + + + + + + +Node55->Node18 + + + + + + + + +Node55->Node53 + + + + + + + + +Node56 + + +dsps_fft4r_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node18 + + + + + + + + +Node57->Node9 + + + + + + + + +Node57->Node18 + + + + + + + + +Node59 + + +dspm_add.h + + + + + +Node58->Node59 + + + + + + + + +Node61 + + +dspm_addc.h + + + + + +Node58->Node61 + + + + + + + + +Node63 + + +dspm_mult.h + + + + + +Node58->Node63 + + + + + + + + +Node65 + + +dspm_mulc.h + + + + + +Node58->Node65 + + + + + + + + +Node67 + + +dspm_sub.h + + + + + +Node58->Node67 + + + + + + + + +Node59->Node9 + + + + + + + + +Node61->Node9 + + + + + + + + +Node63->Node9 + + + + + + + + +Node65->Node9 + + + + + + + + +Node67->Node9 + + + + + + + + +Node69->Node9 + + + + + + + + +Node70->Node3 + + + + + + + + +Node70->Node9 + + + + + + + + +Node70->Node14 + + + + + + + + +Node71 + + +dspi_dotprod_platform.h + + + + + +Node70->Node71 + + + + + + + + +Node71->Node18 + + + + + + + + +Node72->Node9 + + + + + + + + +Node72->Node14 + + + + + + + + +Node72->Node45 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl_org.svg new file mode 100644 index 0000000..2847e1d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c__incl_org.svg @@ -0,0 +1,1589 @@ + + + + + + +init_display.c + + +Node1 + + +init_display.c + + + + + +Node2 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node1->Node5 + + + + + + + + +Node10 + + +esp_err.h + + + + + +Node1->Node10 + + + + + + + + +Node73 + + +esp_lcd_ili9341.h + + + + + +Node1->Node73 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node14 + + +dsp_types.h + + + + + +Node5->Node14 + + + + + + + + +Node16 + + +dsps_dotprod.h + + + + + +Node5->Node16 + + + + + + + + +Node19 + + +dsps_math.h + + + + + +Node5->Node19 + + + + + + + + +Node31 + + +dsps_fir.h + + + + + +Node5->Node31 + + + + + + + + +Node33 + + +dsps_resampler.h + + + + + +Node5->Node33 + + + + + + + + +Node34 + + +dsps_biquad.h + + + + + +Node5->Node34 + + + + + + + + +Node36 + + +dsps_biquad_gen.h + + + + + +Node5->Node36 + + + + + + + + +Node37 + + +dsps_wind.h + + + + + +Node5->Node37 + + + + + + + + +Node44 + + +dsps_conv.h + + + + + +Node5->Node44 + + + + + + + + +Node46 + + +dsps_corr.h + + + + + +Node5->Node46 + + + + + + + + +Node47 + + +dsps_d_gen.h + + + + + +Node5->Node47 + + + + + + + + +Node48 + + +dsps_h_gen.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_tone_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_snr.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_sfdr.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_fft2r.h + + + + + +Node5->Node52 + + + + + + + + +Node55 + + +dsps_fft4r.h + + + + + +Node5->Node55 + + + + + + + + +Node57 + + +dsps_dct.h + + + + + +Node5->Node57 + + + + + + + + +Node58 + + +dspm_matrix.h + + + + + +Node5->Node58 + + + + + + + + +Node69 + + +dsps_view.h + + + + + +Node5->Node69 + + + + + + + + +Node70 + + +dspi_dotprod.h + + + + + +Node5->Node70 + + + + + + + + +Node72 + + +dspi_conv.h + + + + + +Node5->Node72 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +stdbool.h + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +dsp_err.h + + + + + +Node6->Node9 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node6->Node12 + + + + + + + + +Node13 + + +x86intrin.h + + + + + +Node6->Node13 + + + + + + + + +Node9->Node7 + + + + + + + + +Node9->Node10 + + + + + + + + +Node10->Node4 + + + + + + + + +Node14->Node7 + + + + + + + + +Node14->Node8 + + + + + + + + +Node15 + + +inttypes.h + + + + + +Node14->Node15 + + + + + + + + +Node16->Node3 + + + + + + + + +Node16->Node9 + + + + + + + + +Node17 + + +dsps_dotprod_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +sdkconfig.h + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +dsps_add.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_sub.h + + + + + +Node19->Node22 + + + + + + + + +Node24 + + +dsps_mul.h + + + + + +Node19->Node24 + + + + + + + + +Node26 + + +dsps_addc.h + + + + + +Node19->Node26 + + + + + + + + +Node28 + + +dsps_mulc.h + + + + + +Node19->Node28 + + + + + + + + +Node30 + + +dsps_sqrt.h + + + + + +Node19->Node30 + + + + + + + + +Node20->Node9 + + + + + + + + +Node22->Node9 + + + + + + + + +Node24->Node9 + + + + + + + + +Node26->Node9 + + + + + + + + +Node28->Node9 + + + + + + + + +Node30->Node9 + + + + + + + + +Node31->Node6 + + + + + + + + +Node31->Node9 + + + + + + + + +Node32 + + +dsps_fir_platform.h + + + + + +Node31->Node32 + + + + + + + + +Node32->Node18 + + + + + + + + +Node33->Node9 + + + + + + + + +Node33->Node31 + + + + + + + + +Node34->Node9 + + + + + + + + +Node35 + + +dsps_biquad_platform.h + + + + + +Node34->Node35 + + + + + + + + +Node35->Node18 + + + + + + + + +Node36->Node9 + + + + + + + + +Node38 + + +dsps_wind_hann.h + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman.h + + + + + +Node37->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_harris.h + + + + + +Node37->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node37->Node41 + + + + + + + + +Node42 + + +dsps_wind_nuttall.h + + + + + +Node37->Node42 + + + + + + + + +Node43 + + +dsps_wind_flat_top.h + + + + + +Node37->Node43 + + + + + + + + +Node44->Node9 + + + + + + + + +Node45 + + +dsps_conv_platform.h + + + + + +Node44->Node45 + + + + + + + + +Node45->Node18 + + + + + + + + +Node46->Node9 + + + + + + + + +Node46->Node45 + + + + + + + + +Node47->Node9 + + + + + + + + +Node48->Node9 + + + + + + + + +Node49->Node9 + + + + + + + + +Node50->Node9 + + + + + + + + +Node51->Node9 + + + + + + + + +Node52->Node9 + + + + + + + + +Node52->Node18 + + + + + + + + +Node53 + + +dsps_fft_tables.h + + + + + +Node52->Node53 + + + + + + + + +Node54 + + +dsps_fft2r_platform.h + + + + + +Node52->Node54 + + + + + + + + +Node54->Node18 + + + + + + + + +Node55->Node9 + + + + + + + + +Node55->Node18 + + + + + + + + +Node55->Node53 + + + + + + + + +Node56 + + +dsps_fft4r_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node18 + + + + + + + + +Node57->Node9 + + + + + + + + +Node57->Node18 + + + + + + + + +Node59 + + +dspm_add.h + + + + + +Node58->Node59 + + + + + + + + +Node61 + + +dspm_addc.h + + + + + +Node58->Node61 + + + + + + + + +Node63 + + +dspm_mult.h + + + + + +Node58->Node63 + + + + + + + + +Node65 + + +dspm_mulc.h + + + + + +Node58->Node65 + + + + + + + + +Node67 + + +dspm_sub.h + + + + + +Node58->Node67 + + + + + + + + +Node59->Node9 + + + + + + + + +Node61->Node9 + + + + + + + + +Node63->Node9 + + + + + + + + +Node65->Node9 + + + + + + + + +Node67->Node9 + + + + + + + + +Node69->Node9 + + + + + + + + +Node70->Node3 + + + + + + + + +Node70->Node9 + + + + + + + + +Node70->Node14 + + + + + + + + +Node71 + + +dspi_dotprod_platform.h + + + + + +Node70->Node71 + + + + + + + + +Node71->Node18 + + + + + + + + +Node72->Node9 + + + + + + + + +Node72->Node14 + + + + + + + + +Node72->Node45 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.md5 new file mode 100644 index 0000000..546b6e4 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.md5 @@ -0,0 +1 @@ +0851222f9b70481562a74801983b2632 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.svg new file mode 100644 index 0000000..7e21481 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +bsp_display_lcd_init + + +Node1 + + +bsp_display_lcd_init + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_enable_feature + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +bsp_spi_init + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +bsp_i2c_init + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph_org.svg new file mode 100644 index 0000000..2e76a9e --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +bsp_display_lcd_init + + +Node1 + + +bsp_display_lcd_init + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_enable_feature + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +bsp_spi_init + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +bsp_i2c_init + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.md5 new file mode 100644 index 0000000..6e04d7d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.md5 @@ -0,0 +1 @@ +f3f6526199dd7c930cc91f014047057f \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.svg new file mode 100644 index 0000000..2dbe3f1 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +bsp_display_lcd_init + + +Node1 + + +bsp_display_lcd_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +display_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph_org.svg new file mode 100644 index 0000000..7be2fa8 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_a042e5da5d3336dd10ebda5674ec495c3_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +bsp_display_lcd_init + + +Node1 + + +bsp_display_lcd_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +display_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.md5 new file mode 100644 index 0000000..e91fc6f --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.md5 @@ -0,0 +1 @@ +e8386706d05b54d437e464790c20f556 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.svg new file mode 100644 index 0000000..f12f026 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +bsp_spi_init + + +Node1 + + +bsp_spi_init + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_display_start_with +_config + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph_org.svg new file mode 100644 index 0000000..4c52d0a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ab742706b828d976fd293882d63d561a7_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +bsp_spi_init + + +Node1 + + +bsp_spi_init + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_display_start_with +_config + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.md5 new file mode 100644 index 0000000..0c7340b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.md5 @@ -0,0 +1 @@ +0918608fab7b684009936d26973ee227 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.svg new file mode 100644 index 0000000..7753923 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +dsp_display_new + + +Node1 + + +dsp_display_new + + + + + +Node2 + + +bsp_enable_feature + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +bsp_spi_init + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph_org.svg new file mode 100644 index 0000000..bb12001 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_cgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +dsp_display_new + + +Node1 + + +dsp_display_new + + + + + +Node2 + + +bsp_enable_feature + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +bsp_spi_init + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.md5 new file mode 100644 index 0000000..c66dd55 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.md5 @@ -0,0 +1 @@ +f6f17ebeaa5772cfb38b63e98a499c89 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.svg new file mode 100644 index 0000000..7a60fe5 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +dsp_display_new + + +Node1 + + +dsp_display_new + + + + + +Node2 + + +bsp_display_lcd_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_display_start_with +_config + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +display_init + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph_org.svg new file mode 100644 index 0000000..24b057a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_acbf166af6a0c6f9ee069922e14c83023_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +dsp_display_new + + +Node1 + + +dsp_display_new + + + + + +Node2 + + +bsp_display_lcd_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dsp_display_start_with +_config + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +display_init + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.md5 new file mode 100644 index 0000000..89a936a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.md5 @@ -0,0 +1 @@ +d544b87102c39b62dfd1ab5f990786ef \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.svg new file mode 100644 index 0000000..5e1f637 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +bsp_enable_feature + + +Node1 + + +bsp_enable_feature + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph_org.svg new file mode 100644 index 0000000..65fb7ab --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +bsp_enable_feature + + +Node1 + + +bsp_enable_feature + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.md5 new file mode 100644 index 0000000..6567cb0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.md5 @@ -0,0 +1 @@ +2615a4de5424030e287f7315a133d44b \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.svg new file mode 100644 index 0000000..a3284f0 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph.svg @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +bsp_enable_feature + + +Node1 + + +bsp_enable_feature + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_display_start_with +_config + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph_org.svg new file mode 100644 index 0000000..265ff96 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ad7f56c5752f2747c0774a27b5622674b_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +bsp_enable_feature + + +Node1 + + +bsp_enable_feature + + + + + +Node2 + + +dsp_display_new + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dsp_display_start_with +_config + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.md5 new file mode 100644 index 0000000..099a733 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.md5 @@ -0,0 +1 @@ +2d54753aaacd744242dedef15a6838b4 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.svg new file mode 100644 index 0000000..169ae5f --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dsp_display_brightness_init + + +Node1 + + +dsp_display_brightness_init + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph_org.svg new file mode 100644 index 0000000..7dfbdde --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dsp_display_brightness_init + + +Node1 + + +dsp_display_brightness_init + + + + + +Node2 + + +bsp_i2c_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.md5 new file mode 100644 index 0000000..3e53acc --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.md5 @@ -0,0 +1 @@ +b1e4983e163cfcfe1db85aed69e54861 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.svg new file mode 100644 index 0000000..3189705 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +dsp_display_brightness_init + + +Node1 + + +dsp_display_brightness_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +display_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph_org.svg new file mode 100644 index 0000000..95e5b1e --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_ae0e932afc1e59f18ce869a88e5954baf_icgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +dsp_display_brightness_init + + +Node1 + + +dsp_display_brightness_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +display_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.md5 new file mode 100644 index 0000000..56b1691 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.md5 @@ -0,0 +1 @@ +1934ede267d737ed4716a0f8766e2b31 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.svg new file mode 100644 index 0000000..c8c62c4 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph.svg @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dsp_display_start_with_config + + +Node1 + + +dsp_display_start_with +_config + + + + + +Node2 + + +bsp_display_lcd_init + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsp_display_brightness_init + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +dsp_display_new + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_enable_feature + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_spi_init + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node4->Node5 + + + + + + + + +Node7->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph_org.svg new file mode 100644 index 0000000..2ef1a3b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_cgraph_org.svg @@ -0,0 +1,139 @@ + + + + + + +dsp_display_start_with_config + + +Node1 + + +dsp_display_start_with +_config + + + + + +Node2 + + +bsp_display_lcd_init + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +dsp_display_brightness_init + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +dsp_display_new + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_enable_feature + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_spi_init + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node4->Node5 + + + + + + + + +Node7->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.md5 new file mode 100644 index 0000000..94442a2 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.md5 @@ -0,0 +1 @@ +e15ba4929afc7e98ee575a959fba279b \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.svg new file mode 100644 index 0000000..b9b5ee1 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +dsp_display_start_with_config + + +Node1 + + +dsp_display_start_with +_config + + + + + +Node2 + + +display_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph_org.svg new file mode 100644 index 0000000..ce8658b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_aea76cb12d19d5676634c1a78817fa316_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +dsp_display_start_with_config + + +Node1 + + +dsp_display_start_with +_config + + + + + +Node2 + + +display_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 new file mode 100644 index 0000000..195f46b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.md5 @@ -0,0 +1 @@ +6db943c182f741e3d0ac4bb82071cd23 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg new file mode 100644 index 0000000..ee8ae04 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph.svg @@ -0,0 +1,286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +dsp_display_start_with +_config + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsp_display_brightness_init + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +dsp_display_new + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_i2c_init + + + + + +Node8->Node6 + + + + + + + + +Node10 + + +bsp_display_lcd_init + + + + + +Node9->Node10 + + + + + + + + +Node15 + + +dsp_display_brightness_init + + + + + +Node9->Node15 + + + + + + + + +Node11 + + +dsp_display_new + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +bsp_i2c_init + + + + + +Node15->Node13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg new file mode 100644 index 0000000..50da36c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_cgraph_org.svg @@ -0,0 +1,203 @@ + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +dsp_display_start_with +_config + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +dsp_display_start_with +_config + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +bsp_display_lcd_init + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +dsp_display_brightness_init + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +dsp_display_new + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +bsp_i2c_init + + + + + +Node8->Node6 + + + + + + + + +Node10 + + +bsp_display_lcd_init + + + + + +Node9->Node10 + + + + + + + + +Node15 + + +dsp_display_brightness_init + + + + + +Node9->Node15 + + + + + + + + +Node11 + + +dsp_display_new + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +bsp_i2c_init + + + + + +Node15->Node13 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 new file mode 100644 index 0000000..d90b552 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.md5 @@ -0,0 +1 @@ +af8232b033464037f3ef044bd734346f \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg new file mode 100644 index 0000000..3631eaa --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg new file mode 100644 index 0000000..8ba5406 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_af2392dd06c1a7e0f317d26309d9e0d18_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_init + + +Node1 + + +display_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.md5 new file mode 100644 index 0000000..395a13f --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.md5 @@ -0,0 +1 @@ +80406f9afb5ade31b8d6edbef87f8008 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.svg new file mode 100644 index 0000000..dc3dcab --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +bsp_i2c_init + + +Node1 + + +bsp_i2c_init + + + + + +Node2 + + +bsp_enable_feature + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +dsp_display_brightness_init + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_display_new + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_display_lcd_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dsp_display_start_with +_config + + + + + +Node4->Node5 + + + + + + + + +Node8->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph_org.svg new file mode 100644 index 0000000..8d7ff4f --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_afb504c284aa8a47f2ffee89038bd5b98_icgraph_org.svg @@ -0,0 +1,121 @@ + + + + + + +bsp_i2c_init + + +Node1 + + +bsp_i2c_init + + + + + +Node2 + + +bsp_enable_feature + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +dsp_display_brightness_init + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +dsp_display_new + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +bsp_display_lcd_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dsp_display_start_with +_config + + + + + +Node4->Node5 + + + + + + + + +Node8->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_source.html b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_source.html new file mode 100644 index 0000000..0253367 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_23d__graphics_2main_2init__display_8c_source.html @@ -0,0 +1,473 @@ + + + + + + + +ESP-IDF Firmware: init_display.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c
+
+
+Go to the documentation of this file.
1
+
2
+
3#include "bsp/m5stack_core_s3.h"
+
4#include "esp_log.h"
+
5#include "esp_dsp.h"
+
6#include "esp_lcd_ili9341.h"
+
7#include "esp_err.h"
+
8
+
9
+
10static i2c_master_bus_handle_t i2c_handle = NULL;
+
11static bool i2c_initialized = false;
+
12static i2c_master_dev_handle_t axp2101_h = NULL;
+
13static i2c_master_dev_handle_t aw9523_h = NULL;
+
14static bool spi_initialized = false;
+
15
+
16static const char *TAG = "3d-graphics";
+
17
+
18#define BSP_AXP2101_ADDR 0x34
+
19#define BSP_AW9523_ADDR 0x58
+
20
+
+
21#define BSP_ERROR_CHECK_RETURN_ERR(x) do { \
+
22 esp_err_t err_rc_ = (x); \
+
23 if (unlikely(err_rc_ != ESP_OK)) { \
+
24 return err_rc_; \
+
25 } \
+
26} while(0)
+
+
27
+
28
+
+
29#define ESP_RETURN_ON_ERROR(x, log_tag, format, ...) do { \
+
30 esp_err_t err_rc_ = (x); \
+
31 if (unlikely(err_rc_ != ESP_OK)) { \
+
32 ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
33 return err_rc_; \
+
34 } \
+
35} while(0)
+
+
36
+
+
37#define BSP_ERROR_CHECK_RETURN_NULL(x) do { \
+
38 if (unlikely((x) != ESP_OK)) { \
+
39 return NULL; \
+
40 } \
+
41} while(0)
+
+
42
+
+
43#define BSP_NULL_CHECK(x, ret) do { \
+
44 if ((x) == NULL) { \
+
45 return ret; \
+
46 } \
+
47} while(0)
+
+
48
+
+
49#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format, ...) do { \
+
50 esp_err_t err_rc_ = (x); \
+
51 if (unlikely(err_rc_ != ESP_OK)) { \
+
52 ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+
53 ret = err_rc_; \
+
54 goto goto_tag; \
+
55 } \
+
56} while(0)
+
+
57
+
58
+
59
+
+ +
61{
+
62 /* I2C was initialized before */
+
63 if (i2c_initialized) {
+
64 return ESP_OK;
+
65 }
+
66
+
67 const i2c_master_bus_config_t i2c_config = {
+
68 .i2c_port = BSP_I2C_NUM,
+
69 .sda_io_num = BSP_I2C_SDA,
+
70 .scl_io_num = BSP_I2C_SCL,
+
71 .clk_source = 1,
+
72 };
+
73 BSP_ERROR_CHECK_RETURN_ERR(i2c_new_master_bus(&i2c_config, &i2c_handle));
+
74
+
75 // AXP2101 and AW9523 are managed by this BSP
+
76 const i2c_device_config_t axp2101_config = {
+
77 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
78 .device_address = BSP_AXP2101_ADDR,
+
79 .scl_speed_hz = 400000,
+
80 };
+
81 BSP_ERROR_CHECK_RETURN_ERR(i2c_master_bus_add_device(i2c_handle, &axp2101_config, &axp2101_h));
+
82 const i2c_device_config_t aw9523_config = {
+
83 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
84 .device_address = BSP_AW9523_ADDR,
+
85 .scl_speed_hz = 400000,
+
86 };
+
87 BSP_ERROR_CHECK_RETURN_ERR(i2c_master_bus_add_device(i2c_handle, &aw9523_config, &aw9523_h));
+
88
+
89 i2c_initialized = true;
+
90 return ESP_OK;
+
91}
+
+
92
+
+ +
94{
+
95 /* Initilize I2C */
+ +
97
+
98 const uint8_t lcd_bl_en[] = { 0x90, 0xBF }; // AXP DLDO1 Enable
+
99 ESP_RETURN_ON_ERROR(i2c_master_transmit(axp2101_h, lcd_bl_en, sizeof(lcd_bl_en), 1000), TAG, "I2C write failed");
+
100 const uint8_t lcd_bl_val[] = { 0x99, 0b00011000 }; // AXP DLDO1 voltage
+
101 ESP_RETURN_ON_ERROR(i2c_master_transmit(axp2101_h, lcd_bl_val, sizeof(lcd_bl_val), 1000), TAG, "I2C write failed");
+
102
+
103 return ESP_OK;
+
104}
+
+
105
+
106
+
+
107static esp_err_t bsp_spi_init(uint32_t max_transfer_sz)
+
108{
+
109 /* SPI was initialized before */
+
110 if (spi_initialized) {
+
111 return ESP_OK;
+
112 }
+
113
+
114 ESP_LOGD(TAG, "Initialize SPI bus");
+
115 const spi_bus_config_t buscfg = {
+
116 .sclk_io_num = BSP_LCD_PCLK,
+
117 .mosi_io_num = BSP_LCD_MOSI,
+
118 .miso_io_num = BSP_LCD_MISO,
+
119 .quadwp_io_num = GPIO_NUM_NC,
+
120 .quadhd_io_num = GPIO_NUM_NC,
+
121 .max_transfer_sz = max_transfer_sz,
+
122 };
+
123 ESP_RETURN_ON_ERROR(spi_bus_initialize(BSP_LCD_SPI_NUM, &buscfg, SPI_DMA_CH_AUTO), TAG, "SPI init failed");
+
124
+
125 spi_initialized = true;
+
126
+
127 return ESP_OK;
+
128}
+
+
129
+
130/* Features */
+ +
138
+
+ +
140{
+
141 esp_err_t err = ESP_OK;
+
142 static uint8_t aw9523_P0 = 0b10;
+
143 static uint8_t aw9523_P1 = 0b10100000;
+
144 uint8_t data[2];
+
145
+
146 /* Initilize I2C */
+ +
148
+
149 switch (feature) {
+
150 case BSP_FEATURE_LCD:
+
151 /* Enable LCD */
+
152 aw9523_P1 |= (1 << 1);
+
153 break;
+ +
155 /* Enable Touch */
+
156 aw9523_P0 |= (1);
+
157 break;
+
158 case BSP_FEATURE_SD:
+
159 /* AXP ALDO4 voltage / SD Card / 3V3 */
+
160 data[0] = 0x95;
+
161 data[1] = 0b00011100; //3V3
+
162 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
163 /* Enable SD */
+
164 aw9523_P0 |= (1 << 4);
+
165 break;
+ +
167 /* AXP ALDO1 voltage / PA PVDD / 1V8 */
+
168 data[0] = 0x92;
+
169 data[1] = 0b00001101; //1V8
+
170 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
171 /* AXP ALDO2 voltage / Codec / 3V3 */
+
172 data[0] = 0x93;
+
173 data[1] = 0b00011100; //3V3
+
174 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
175 /* AXP ALDO3 voltage / Codec+Mic / 3V3 */
+
176 data[0] = 0x94;
+
177 data[1] = 0b00011100; //3V3
+
178 err |= i2c_master_transmit(axp2101_h, data, sizeof(data), 1000);
+
179 /* AW9523 P0 is in push-pull mode */
+
180 data[0] = 0x11;
+
181 data[1] = 0x10;
+
182 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
183 /* Enable Codec AW88298 */
+
184 aw9523_P0 |= (1 << 2);
+
185 break;
+ +
187 /* Enable Camera */
+
188 aw9523_P1 |= (1);
+
189 break;
+
190 }
+
191
+
192 data[0] = 0x02;
+
193 data[1] = aw9523_P0;
+
194 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
195
+
196 data[0] = 0x03;
+
197 data[1] = aw9523_P1;
+
198 err |= i2c_master_transmit(aw9523_h, data, sizeof(data), 1000);
+
199
+
200 return err;
+
201}
+
+
202
+
203#define LCD_CMD_BITS 8
+
204#define LCD_PARAM_BITS 8
+
205#define LCD_LEDC_CH CONFIG_BSP_DISPLAY_BRIGHTNESS_LEDC_CH
+
206
+
+
207esp_err_t dsp_display_new(const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io)
+
208{
+
209 esp_err_t ret = ESP_OK;
+
210 assert(config != NULL && config->max_transfer_sz > 0);
+
211
+ +
213
+
214 /* Initialize SPI */
+
215 ESP_RETURN_ON_ERROR(bsp_spi_init(config->max_transfer_sz), TAG, "");
+
216
+
217 ESP_LOGD(TAG, "Install panel IO");
+
218 const esp_lcd_panel_io_spi_config_t io_config = {
+
219 .dc_gpio_num = BSP_LCD_DC,
+
220 .cs_gpio_num = BSP_LCD_CS,
+
221 .pclk_hz = BSP_LCD_PIXEL_CLOCK_HZ,
+
222 .lcd_cmd_bits = LCD_CMD_BITS,
+
223 .lcd_param_bits = LCD_PARAM_BITS,
+
224 .spi_mode = 0,
+
225 .trans_queue_depth = 10,
+
226 };
+
227 ESP_GOTO_ON_ERROR(esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)BSP_LCD_SPI_NUM, &io_config, ret_io), err, TAG, "New panel IO failed");
+
228
+
229 ESP_LOGD(TAG, "Install LCD driver");
+
230 const esp_lcd_panel_dev_config_t panel_config = {
+
231 .reset_gpio_num = BSP_LCD_RST, // Shared with Touch reset
+
232 .color_space = BSP_LCD_COLOR_SPACE,
+
233 .bits_per_pixel = BSP_LCD_BITS_PER_PIXEL,
+
234 };
+
235 ESP_GOTO_ON_ERROR(esp_lcd_new_panel_ili9341(*ret_io, &panel_config, ret_panel), err, TAG, "New panel failed");
+
236
+
237 esp_lcd_panel_reset(*ret_panel);
+
238 esp_lcd_panel_init(*ret_panel);
+
239 esp_lcd_panel_invert_color(*ret_panel, true);
+
240 return ret;
+
241
+
242err:
+
243 if (*ret_panel) {
+
244 esp_lcd_panel_del(*ret_panel);
+
245 }
+
246 if (*ret_io) {
+
247 esp_lcd_panel_io_del(*ret_io);
+
248 }
+
249 spi_bus_free(BSP_LCD_SPI_NUM);
+
250 return ret;
+
251}
+
+
252
+
+
253static lv_display_t *bsp_display_lcd_init(const bsp_display_cfg_t *cfg)
+
254{
+
255 assert(cfg != NULL);
+
256 esp_lcd_panel_io_handle_t io_handle = NULL;
+
257 esp_lcd_panel_handle_t panel_handle = NULL;
+
258 const bsp_display_config_t bsp_disp_cfg = {
+
259 .max_transfer_sz = BSP_LCD_DRAW_BUFF_SIZE * sizeof(uint16_t),
+
260 };
+
261 BSP_ERROR_CHECK_RETURN_NULL(dsp_display_new(&bsp_disp_cfg, &panel_handle, &io_handle));
+
262
+
263 esp_lcd_panel_disp_on_off(panel_handle, true);
+
264
+
265 lv_display_t *display = lv_display_create(BSP_LCD_H_RES, BSP_LCD_V_RES);
+
266
+
267 lv_display_set_user_data(display, panel_handle);
+
268 // set color depth
+
269 lv_display_set_color_format(display, LV_COLOR_FORMAT_RGB565);
+
270
+
271 return display;
+
272}
+
+
273
+
274static lv_display_t *disp;
+
275
+
+
276static lv_display_t *dsp_display_start_with_config(const bsp_display_cfg_t *cfg)
+
277{
+
278 assert(cfg != NULL);
+
279 BSP_ERROR_CHECK_RETURN_NULL(lvgl_port_init(&cfg->lvgl_port_cfg));
+
280
+ +
282
+ +
284
+
285 return disp;
+
286}
+
+
287
+
+
288lv_display_t *display_init(void)
+
289{
+
290 bsp_display_cfg_t cfg = {
+
291 .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(),
+
292 .buffer_size = BSP_LCD_DRAW_BUFF_SIZE,
+
293 .double_buffer = BSP_LCD_DRAW_BUFF_DOUBLE,
+
294 .flags = {
+
295 .buff_dma = true,
+
296 .buff_spiram = false,
+
297 }
+
298 };
+
299 cfg.lvgl_port_cfg.task_affinity = 1; /* For camera */
+ +
301}
+
+ + + +
static i2c_master_bus_handle_t i2c_handle
+ + + + + + + + + + + + + + + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
#define ESP_LOGD
Definition esp_log.h:22
+
static lv_display_t * bsp_display_lcd_init(const bsp_display_cfg_t *cfg)
+ + + + + +
esp_err_t dsp_display_new(const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io)
+ + + +
static lv_display_t * dsp_display_start_with_config(const bsp_display_cfg_t *cfg)
+ + +
static const char * TAG
Definition main/main.c:31
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html new file mode 100644 index 0000000..7afbbe7 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html @@ -0,0 +1,1750 @@ + + + + + + + +ESP-IDF Firmware: 3d_kalman_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_kalman_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include "esp_log.h"
+#include "bsp/m5stack_core_s3.h"
+#include "esp_dsp.h"
+#include "cube_matrix.h"
+#include "esp_logo.h"
+#include "esp_text.h"
+#include "graphics_support.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define M5_CUBE_SIDE   (BSP_LCD_V_RES / 4)
#define BSP_BMI270_ADDR   0x69
#define BSP_BMM150_ADDR   0x10
#define BMI270_IF_CONF   0x6B
#define BMI270_AUX_DEV_ID   0x4B
#define BMI270_PWR_CONF   0x7C
#define BMI270_PWR_CTRL   0x7D
#define BMI270_CMD   0x7E
#define BMI270_AUX_IF_CONFIG   0x4C
#define BMI270_AUX_READ_ADDR   0x4D
#define BMI270_AUX_WRITE_ADDR   0x4E
#define BMI270_AUX_WRITE_DATA   0x4F
#define BMI270_AUX_STATUS   0x03
#define BMI270_AUX_DATA0   0x04
#define BMI270_ACC_DATA0   0x0C
#define BMI270_GYR_DATA0   0x12
#define BMI270_ACC_CONF   0x40
#define BMI270_ACC_RANGE   0x41
#define BMI270_GYR_CONF   0x42
#define BMI270_GYR_RANGE   0x43
#define BMI270_AUX_CONF   0x44
#define BMI270_INIT_CTRL   0x59
#define BMI270_INIT_DATA   0x5e
#define BMI270_INTERNAL_STATUS   0x21
#define BMM150_REG_POWER_CONTROL   0x4B
#define BMM150_SHIP_ID   0x40
#define BMM150_DATA0   0x42
+ + + + + + + + + + + + + + + + +

+Functions

void app_main ()
static void init_3d_matrix_struct (image_3d_matrix_t *image)
 Initialize 3d image structure.
esp_err_t read_bmm150_data (uint8_t addr, uint8_t *data, int length)
esp_err_t write_bmm150_data (uint8_t addr, uint8_t *data, int length)
esp_err_t write_bmi270_data (uint8_t addr, uint8_t *data, int length)
esp_err_t read_bmi270_data (uint8_t addr, uint8_t *data, int length)
esp_err_t write_bmi270_reg (uint8_t addr, uint8_t data)
uint8_t read_bmi270_reg (uint8_t addr, esp_err_t *err)
static void app_init (void)
 Initialize the application.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void draw_3d_image_task (void *arg)
 RTOS task to draw a 3d image.
+ + + + + + + + + + + + + + + + + + + +

+Variables

static const char * TAG = "3d-kalman"
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
const float m5_cube_vectors_3d [CUBE_POINTS][MATRIX_SIZE]
lv_style_t style_red
lv_style_t style_blue
lv_display_t * display = NULL
lv_obj_t ** objs
 Initialize display.
lv_point_precise_t * points
static i2c_master_bus_handle_t i2c_handle
static i2c_master_dev_handle_t bmi270_h = NULL
static uint8_t i2c_read_buffer [32]
static uint8_t i2c_write_buffer [32]
uint8_t bmi270_context_config_file []
const int bmi270_context_config_file_size
int16_t sensors_data [32]
ekf_imu13statesekf13 = NULL
image_3d_matrix_t image
+

Macro Definition Documentation

+ +

◆ BMI270_ACC_CONF

+ +
+
+ + + + +
#define BMI270_ACC_CONF   0x40
+
+
+ +

◆ BMI270_ACC_DATA0

+ +
+
+ + + + +
#define BMI270_ACC_DATA0   0x0C
+
+
+ +

◆ BMI270_ACC_RANGE

+ +
+
+ + + + +
#define BMI270_ACC_RANGE   0x41
+
+
+ +

◆ BMI270_AUX_CONF

+ +
+
+ + + + +
#define BMI270_AUX_CONF   0x44
+
+
+ +

◆ BMI270_AUX_DATA0

+ +
+
+ + + + +
#define BMI270_AUX_DATA0   0x04
+
+
+ +

◆ BMI270_AUX_DEV_ID

+ +
+
+ + + + +
#define BMI270_AUX_DEV_ID   0x4B
+
+
+ +

◆ BMI270_AUX_IF_CONFIG

+ +
+
+ + + + +
#define BMI270_AUX_IF_CONFIG   0x4C
+
+
+ +

◆ BMI270_AUX_READ_ADDR

+ +
+
+ + + + +
#define BMI270_AUX_READ_ADDR   0x4D
+
+
+ +

◆ BMI270_AUX_STATUS

+ +
+
+ + + + +
#define BMI270_AUX_STATUS   0x03
+
+
+ +

◆ BMI270_AUX_WRITE_ADDR

+ +
+
+ + + + +
#define BMI270_AUX_WRITE_ADDR   0x4E
+
+
+ +

◆ BMI270_AUX_WRITE_DATA

+ +
+
+ + + + +
#define BMI270_AUX_WRITE_DATA   0x4F
+
+
+ +

◆ BMI270_CMD

+ +
+
+ + + + +
#define BMI270_CMD   0x7E
+
+
+ +

◆ BMI270_GYR_CONF

+ +
+
+ + + + +
#define BMI270_GYR_CONF   0x42
+
+
+ +

◆ BMI270_GYR_DATA0

+ +
+
+ + + + +
#define BMI270_GYR_DATA0   0x12
+
+
+ +

◆ BMI270_GYR_RANGE

+ +
+
+ + + + +
#define BMI270_GYR_RANGE   0x43
+
+
+ +

◆ BMI270_IF_CONF

+ +
+
+ + + + +
#define BMI270_IF_CONF   0x6B
+
+
+ +

◆ BMI270_INIT_CTRL

+ +
+
+ + + + +
#define BMI270_INIT_CTRL   0x59
+
+
+ +

◆ BMI270_INIT_DATA

+ +
+
+ + + + +
#define BMI270_INIT_DATA   0x5e
+
+
+ +

◆ BMI270_INTERNAL_STATUS

+ +
+
+ + + + +
#define BMI270_INTERNAL_STATUS   0x21
+
+
+ +

◆ BMI270_PWR_CONF

+ +
+
+ + + + +
#define BMI270_PWR_CONF   0x7C
+
+
+ +

◆ BMI270_PWR_CTRL

+ +
+
+ + + + +
#define BMI270_PWR_CTRL   0x7D
+
+
+ +

◆ BMM150_DATA0

+ +
+
+ + + + +
#define BMM150_DATA0   0x42
+
+
+ +

◆ BMM150_REG_POWER_CONTROL

+ +
+
+ + + + +
#define BMM150_REG_POWER_CONTROL   0x4B
+
+
+ +

◆ BMM150_SHIP_ID

+ +
+
+ + + + +
#define BMM150_SHIP_ID   0x40
+
+
+ +

◆ BSP_BMI270_ADDR

+ +
+
+ + + + +
#define BSP_BMI270_ADDR   0x69
+
+
+ +

◆ BSP_BMM150_ADDR

+ +
+
+ + + + +
#define BSP_BMM150_ADDR   0x10
+
+
+ +

◆ M5_CUBE_SIDE

+ +
+
+ + + + +
#define M5_CUBE_SIDE   (BSP_LCD_V_RES / 4)
+
+
+

Function Documentation

+ +

◆ app_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_init (void )
+
+static
+
+ +

Initialize the application.

+

This function initialize the display 3D points and chips: mbi270 and bmm150

+ +

Definition at line 186 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
187{
+
188 lv_style_init(&style_red);
+
189 lv_style_init(&style_blue);
+
190
+
191 lv_style_set_line_color(&style_red, lv_palette_main(LV_PALETTE_RED));
+
192 lv_style_set_line_width(&style_red, 10);
+
193 lv_style_set_line_rounded(&style_red, false);
+
194 lv_style_set_line_color(&style_blue, lv_palette_main(LV_PALETTE_BLUE));
+
195 lv_style_set_line_width(&style_blue, 10);
+
196 lv_style_set_line_rounded(&style_blue, false);
+
197
+
198 objs = (lv_obj_t **)malloc(CUBE_EDGES * sizeof(lv_obj_t *));
+
199 points = (lv_point_precise_t *)malloc(CUBE_EDGES * 2 * sizeof(lv_point_precise_t));
+
200
+
201 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES / 2; cube_point++) {
+
202
+
203 objs[cube_point] = lv_line_create(lv_screen_active());
+
204 lv_obj_add_style(objs[cube_point], &style_red, 0);
+
205 }
+
206 for (uint8_t cube_point = CUBE_EDGES / 2; cube_point < CUBE_EDGES; cube_point++) {
+
207
+
208 objs[cube_point] = lv_line_create(lv_screen_active());
+
209 lv_obj_add_style(objs[cube_point], &style_blue, 0);
+
210 }
+
211
+
212 // Init the bmi270 and bmm150 chips
+
213 esp_err_t err = i2c_master_get_bus_handle(CONFIG_BSP_I2C_NUM, &i2c_handle);
+
214
+
215 const i2c_device_config_t bmi270_config = {
+
216 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
217 .device_address = BSP_BMI270_ADDR,
+
218 .scl_speed_hz = 400000,
+
219 };
+
220 err = i2c_master_bus_add_device(i2c_handle, &bmi270_config, &bmi270_h);
+
221 vTaskDelay(10);
+
222 // Read chip ID to check the connection
+
223 i2c_write_buffer[0] = 0x00;
+
224 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
225 ESP_LOGI(TAG, "bmi270 ChipID = 0x%2.2x (should be 0x24), err = %2.2x", i2c_read_buffer[0], err);
+
226
+ +
228 i2c_write_buffer[1] = 0x20;
+
229 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
230
+ +
232 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
233
+ +
235 i2c_write_buffer[1] = 0x0f;
+
236 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
237
+ +
239 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
240
+ +
242 i2c_write_buffer[1] = 0x80;
+
243 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
244
+ +
246 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
247 // vTaskDelay(1);
+
248
+ +
250 i2c_read_buffer[0] = 1;
+ + +
253 vTaskDelay(1);
+
254
+ +
256 ESP_LOGI(TAG, "bmm150 chip ID = 0x%2.2x (should be 0x32), err = %2.2x", i2c_read_buffer[0], err);
+
257
+
258 err = read_bmm150_data(0x4c, i2c_read_buffer, 1);
+
259 i2c_read_buffer[0] = 0x3 << 3;
+ +
261 err = read_bmm150_data(0x4c, i2c_read_buffer, 1);
+
262 vTaskDelay(1);
+
263
+ +
265 ESP_LOGI(TAG, "bmi270 status = %2.2x", read_bmi270_reg(BMI270_INTERNAL_STATUS, &err));
+
266 vTaskDelay(10 / portTICK_PERIOD_MS);
+
267
+ + + +
271 ESP_LOGI(TAG, "bmi270 status = %2.2x", read_bmi270_reg(BMI270_INTERNAL_STATUS, &err));
+
272
+ + + + + + + +
280
+ +
282 i2c_write_buffer[1] = 0x00;
+
283 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
284
+ + +
287 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
288
+ +
290 i2c_write_buffer[1] = 0x20;
+
291 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
292
+ +
294 i2c_write_buffer[1] = 0x03;
+
295 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
296
+
297 ESP_LOGI(TAG, "bmi270 initialization is done");
+
298}
+ +
static i2c_master_bus_handle_t i2c_handle
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
int esp_err_t
Definition esp_err.h:21
+ + + + + +
static const char * TAG
Definition main/main.c:31
+
+

References BMI270_ACC_CONF, BMI270_ACC_RANGE, BMI270_AUX_CONF, BMI270_AUX_IF_CONFIG, BMI270_AUX_READ_ADDR, bmi270_context_config_file, bmi270_context_config_file_size, BMI270_GYR_CONF, BMI270_GYR_RANGE, bmi270_h, BMI270_IF_CONF, BMI270_INIT_CTRL, BMI270_INIT_DATA, BMI270_INTERNAL_STATUS, BMI270_PWR_CONF, BMI270_PWR_CTRL, BMM150_DATA0, BMM150_REG_POWER_CONTROL, BMM150_SHIP_ID, BSP_BMI270_ADDR, CUBE_EDGES, i2c_handle, i2c_read_buffer, i2c_write_buffer, objs, points, read_bmi270_reg(), read_bmm150_data(), style_blue, style_red, TAG, write_bmi270_data(), write_bmi270_reg(), and write_bmm150_data().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 421 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
422{
+
423 ekf13 = new ekf_imu13states();
+
424 ekf13->Init();
+
425
+
426 // Init all board components
+
427 display = bsp_display_start();
+ + +
430 app_init();
+
431
+
432 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
433
+
434 xTaskCreate(draw_3d_image_task, "draw_3d_image", 16384, &image, 4, NULL);
+
435 ESP_LOGI(TAG, "Showing 3D image");
+
436
+
437}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+ + + +
This class is used to process and calculate attitude from imu sensors.
+
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+ +
+

References app_init(), display, draw_3d_image_task(), ekf13, image, init_3d_matrix_struct(), init_perspective_matrix(), perspective_matrix, and TAG.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 308 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
309{
+
310 // For the 3D cube, only the 6 points of the cube are transformed
+
311 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
312 bsp_display_lock(10000);
+
313 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
314 points[cube_point * 2 + 0].x = (int16_t)projected_image(cube_dict_line_begin[cube_point], 0);
+
315 points[cube_point * 2 + 0].y = (int16_t)projected_image(cube_dict_line_begin[cube_point], 1);
+
316 points[cube_point * 2 + 1].x = (int16_t)projected_image(cube_dict_line_end[cube_point], 0);
+
317 points[cube_point * 2 + 1].y = (int16_t)projected_image(cube_dict_line_end[cube_point], 1);
+
318 lv_line_set_points(objs[cube_point], &points[cube_point * 2 + 0], 2);
+
319 lv_obj_set_pos(objs[cube_point], 0, 0);
+
320 }
+
321 bsp_display_unlock();
+
322}
+ + +
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, objs, and points.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image_task()

+ +
+
+ + + + + +
+ + + + + + + +
void draw_3d_image_task (void * arg)
+
+static
+
+ +

RTOS task to draw a 3d image.

+

Updates 3d matrices, prepares the final 3d matrix to be displayed on the display

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 333 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
334{
+ +
336
+
337 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
338 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
339 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
340
+
341 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
342
+
343 float dt = 0;
+
344 static float prev_time = 0;
+
345 float current_time = dsp_get_cpu_cycle_count();
+
346 float R_m[6] = {0.01, 0.01, 0.01, 0.01, 0.01, 0.01};
+
347
+
348 float magn_norm = 1;
+
349 while (1) {
+
350
+
351 esp_err_t err;
+
352
+
353 // Calculate dt for kalman filter
+
354 current_time = dsp_get_cpu_cycle_count();
+
355 if (current_time > prev_time) {
+
356 dt = current_time - prev_time;
+
357 dt = dt / 240000000.0;
+
358 }
+
359 prev_time = current_time;
+
360
+
361
+
362 // Read and convert data from bmi270 and bmm150 sensors
+
363 err = read_bmi270_data(BMI270_AUX_DATA0, (uint8_t *)sensors_data, 20);
+
364 float accel[3];
+
365 float gyro[3];
+
366 float magn[3];
+
367 for (size_t i = 0; i < 3; i++) {
+
368 magn[i] = sensors_data[i];
+
369 accel[i] = sensors_data[4 + i];
+
370 gyro[i] = sensors_data[7 + i];
+
371 /* code */
+
372 }
+
373
+
374 // We have to apply this because initial direction of sensors
+
375 magn[1] = -magn[1];
+
376 accel[1] = -accel[1];
+
377 gyro[1] = -gyro[1];
+
378
+
379 magn[2] = -magn[2];
+
380 accel[2] = -accel[2];
+
381 gyro[2] = -gyro[2];
+
382
+
383 dspm::Mat gyro_input_mat(gyro, 3, 1);
+
384 dspm::Mat accel_input_mat(accel, 3, 1);
+
385 dspm::Mat mag_input_mat(magn, 3, 1);
+
386
+
387 // Accelerometer has 166 max range fit to the int16 value
+
388 accel_input_mat = accel_input_mat / 32768 * 16;
+
389 if (magn_norm < mag_input_mat.norm()) {
+
390 magn_norm = mag_input_mat.norm();
+
391 }
+
392 mag_input_mat = (1 / magn_norm) * mag_input_mat;
+
393
+
394 // range 2000 gedree/sec fit to the int16 range
+
395 gyro_input_mat *= (2000 * DEG_TO_RAD / 32768);
+
396
+
397 ekf13->Process(gyro_input_mat.data, dt);
+
398 ekf13->UpdateRefMeasurementMagn(accel_input_mat.data, mag_input_mat.data, R_m);
+
399
+
400 // Convert directin quaternion to rotation matrix
+
401 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data).t(); // matrix(3x1) that holds x, y, z rotation data
+
402 // Convert rotation matrix to Euler angels
+
403 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
404 // Apply radian to degree
+
405 eul_angles *= RAD_TO_DEG;
+
406 // Apply rotation in all the axes to the transformation matrix
+
407 update_rotation_matrix(T, eul_angles(0, 0), eul_angles(1, 0), eul_angles(2, 0));
+
408 // Apply translation to the transformation matrix
+
409 update_translation_matrix(T, true, ((float)BSP_LCD_H_RES / 2), ((float)BSP_LCD_V_RES / 2), 0);
+
410
+
411 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
412 transformed_image = matrix_3d * T;
+
413 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
414 projected_image = transformed_image * perspective_matrix;
+
415
+
416 display_3d_image(projected_image);
+
417 vTaskDelay(5 / portTICK_PERIOD_MS);
+
418 }
+
419}
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+ +
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
+

References BMI270_AUX_DATA0, dspm::Mat::data, DEG_TO_RAD, display_3d_image(), dsp_get_cpu_cycle_count, ekf13, dspm::Mat::eye(), image, MATRIX_SIZE, dspm::Mat::norm(), perspective_matrix, ekf::quat2rotm(), RAD_TO_DEG, read_bmi270_data(), ekf::rotm2eul(), sensors_data, dspm::Mat::t(), update_rotation_matrix(), and update_translation_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_t * image)
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + +
image3d image structure
+
+
+ +

Definition at line 46 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
47{
+
48 image->matrix = m5_cube_vectors_3d;
+
49 image->matrix_len = ((sizeof(m5_cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
50}
+
const float m5_cube_vectors_3d[CUBE_POINTS][MATRIX_SIZE]
+
+

References image, m5_cube_vectors_3d, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ read_bmi270_data()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t read_bmi270_data (uint8_t addr,
uint8_t * data,
int length )
+
+ +

Definition at line 149 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
150{
+
151
+
152 i2c_write_buffer[0] = addr;
+
153 esp_err_t err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
154 return err;
+
155}
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ read_bmi270_reg()

+ +
+
+ + + + + + + + + + + +
uint8_t read_bmi270_reg (uint8_t addr,
esp_err_t * err )
+
+ +

Definition at line 166 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
167{
+
168
+
169 i2c_write_buffer[0] = addr;
+
170 *err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, &i2c_write_buffer[16], 1, 1000);
+
171 return i2c_write_buffer[16];
+
172}
+
+

References bmi270_h, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ read_bmm150_data()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t read_bmm150_data (uint8_t addr,
uint8_t * data,
int length )
+
+ +

Definition at line 100 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
101{
+ +
103 i2c_write_buffer[1] = addr;
+
104 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
105
+ +
107 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
108
+ +
110 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
111 return err;
+
112}
+ +
+

References BMI270_AUX_DATA0, BMI270_AUX_READ_ADDR, BMI270_AUX_STATUS, bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ write_bmi270_data()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t write_bmi270_data (uint8_t addr,
uint8_t * data,
int length )
+
+ +

Definition at line 127 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
128{
+
129 if (length < 32) {
+ +
131 for (size_t i = 0; i < length; i++) {
+
132 i2c_write_buffer[1 + i] = data[i];
+
133 }
+
134 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 1 + length, 1000);
+
135 return err;
+
136 }
+
137
+
138 uint8_t *temp_data = (uint8_t *)malloc(length + 4);
+
139 for (size_t i = 0; i < length; i++) {
+
140 temp_data[1 + i] = data[i];
+
141 }
+
142 temp_data[0] = addr;
+
143
+
144 esp_err_t err = i2c_master_transmit(bmi270_h, temp_data, 1 + length, 1000);
+
145 free(temp_data);
+
146 return err;
+
147}
+ +
+

References BMI270_AUX_WRITE_DATA, bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ write_bmi270_reg()

+ +
+
+ + + + + + + + + + + +
esp_err_t write_bmi270_reg (uint8_t addr,
uint8_t data )
+
+ +

Definition at line 157 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
158{
+
159
+
160 i2c_write_buffer[0] = addr;
+ +
162 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
163 return err;
+
164}
+
+

References bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ write_bmm150_data()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t write_bmm150_data (uint8_t addr,
uint8_t * data,
int length )
+
+ +

Definition at line 114 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
115{
+ +
117 i2c_write_buffer[1] = data[0];
+
118 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
119
+ +
121 i2c_write_buffer[1] = addr;
+
122 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
123
+
124 return err;
+
125}
+ +
+

References BMI270_AUX_WRITE_ADDR, BMI270_AUX_WRITE_DATA, bmi270_h, data, and i2c_write_buffer.

+ +

Referenced by app_init().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ bmi270_context_config_file

+ +
+
+ + + + +
uint8_t bmi270_context_config_file[]
+
+
+ +

◆ bmi270_context_config_file_size

+ +
+
+ + + + +
const int bmi270_context_config_file_size
+
+
+ +

◆ bmi270_h

+ +
+
+ + + + + +
+ + + + +
i2c_master_dev_handle_t bmi270_h = NULL
+
+static
+
+
+ +

◆ display

+ +
+
+ + + + +
lv_display_t* display = NULL
+
+
+ +

◆ ekf13

+ + + +

◆ i2c_handle

+ +
+
+ + + + + +
+ + + + +
i2c_master_bus_handle_t i2c_handle
+
+static
+
+
+ +

◆ i2c_read_buffer

+ +
+
+ + + + + +
+ + + + +
uint8_t i2c_read_buffer[32]
+
+static
+
+
+ +

◆ i2c_write_buffer

+ +
+
+ + + + + +
+ + + + +
uint8_t i2c_write_buffer[32]
+
+static
+
+
+ +

◆ image

+ + + +

◆ m5_cube_vectors_3d

+ +
+
+ + + + +
const float m5_cube_vectors_3d[CUBE_POINTS][MATRIX_SIZE]
+
+Initial value:
=
+
+
{ {- (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , 1},
+
{- (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , 1},
+
{- (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , 1},
+
{- (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , 1},
+
{ (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , 1},
+
{ (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , 1},
+
{ (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , - (BSP_LCD_V_RES / 4) , 1},
+
{ (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , (BSP_LCD_V_RES / 4) , 1}
+
}
+
+

Definition at line 26 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp.

+
27{ {-M5_CUBE_SIDE, -M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // -1, -1, -1
+
28 {-M5_CUBE_SIDE, -M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // -1, -1, 1
+
29 {-M5_CUBE_SIDE, M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // -1, 1, -1
+
30 {-M5_CUBE_SIDE, M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // -1, 1, 1
+
31 { M5_CUBE_SIDE, -M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // 1, -1, -1
+
32 { M5_CUBE_SIDE, -M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // 1, -1, 1
+
33 { M5_CUBE_SIDE, M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // 1, 1, -1
+
34 { M5_CUBE_SIDE, M5_CUBE_SIDE, M5_CUBE_SIDE, 1} // 1, 1, 1
+
35};
+ +
+
+
+ +

◆ objs

+ +
+
+ + + + +
lv_obj_t** objs
+
+
+ +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ points

+ +
+
+ + + + +
lv_point_precise_t* points
+
+
+ +

◆ sensors_data

+ +
+
+ + + + +
int16_t sensors_data[32]
+
+
+ +

◆ style_blue

+ +
+
+ + + + +
lv_style_t style_blue
+
+
+ +

◆ style_red

+ +
+
+ + + + +
lv_style_t style_red
+
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "3d-kalman"
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.js b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.js new file mode 100644 index 0000000..5b0b28a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.js @@ -0,0 +1,58 @@ +var external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp = +[ + [ "BMI270_ACC_CONF", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a302ab862a12aea554841bf879c800d69", null ], + [ "BMI270_ACC_DATA0", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a13f9a96bb100fae787aed5ecb048920e", null ], + [ "BMI270_ACC_RANGE", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#ad339f43519ef728071749fa5bf24a94c", null ], + [ "BMI270_AUX_CONF", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a431740815383893f193f7e325faed96f", null ], + [ "BMI270_AUX_DATA0", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5f6e3ac399a1db2466e076baf53617ed", null ], + [ "BMI270_AUX_DEV_ID", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5761489077fac77ccfb8343b5e81dc54", null ], + [ "BMI270_AUX_IF_CONFIG", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a2f979fbaaf88c2ea93b2c802ccd77829", null ], + [ "BMI270_AUX_READ_ADDR", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a72aff8db236db27c6fae0622ec41637b", null ], + [ "BMI270_AUX_STATUS", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a316c3dcb9642aa09d7a476a47e10d374", null ], + [ "BMI270_AUX_WRITE_ADDR", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a704fbcf64829ea456f71ae401b8431fd", null ], + [ "BMI270_AUX_WRITE_DATA", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#ac28e035e6810d0aca652a2a913a9e95c", null ], + [ "BMI270_CMD", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aff410faa3b939ca283bba65dde31c481", null ], + [ "BMI270_GYR_CONF", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#ace9258df23dc2c6acf1253557d852cfb", null ], + [ "BMI270_GYR_DATA0", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a61ea8948e21792e9ba6c4f78ca7cd72c", null ], + [ "BMI270_GYR_RANGE", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a20e904c9db43a5e1f17e5e99850e459d", null ], + [ "BMI270_IF_CONF", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a2ed960fd2445023c703ed7db07352246", null ], + [ "BMI270_INIT_CTRL", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5975395053a058a51536904ffdabd2d5", null ], + [ "BMI270_INIT_DATA", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a59f0ba6db98757f8b5b58382839401f4", null ], + [ "BMI270_INTERNAL_STATUS", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a8417736c4f6f8a47c9d87ba0ec47d5bf", null ], + [ "BMI270_PWR_CONF", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a131c2843948b849fb984ed7965c0c82a", null ], + [ "BMI270_PWR_CTRL", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aaf34db37b8cce607713bbd3a792708de", null ], + [ "BMM150_DATA0", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a768e0293eb6e69dbbdb113e4439ca8f0", null ], + [ "BMM150_REG_POWER_CONTROL", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#adc1ea0dc872e8f5770a1a450d7d5876b", null ], + [ "BMM150_SHIP_ID", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5b4fec38edca346abc26b88eb7377d5c", null ], + [ "BSP_BMI270_ADDR", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a29e62dd1ad24d04a89c53d9bd14a0066", null ], + [ "BSP_BMM150_ADDR", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#af08fe3c9790efb2c5ce75b1821e35f8b", null ], + [ "M5_CUBE_SIDE", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a79dd3de696f1f190ada50dd2b957b5d7", null ], + [ "app_init", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#ad6cae3f4505c3e369a1ac0d3c3b60f42", null ], + [ "app_main", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "display_3d_image", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image_task", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#af3debef909dca35dbf0b6f842df6def3", null ], + [ "init_3d_matrix_struct", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a3340d28d7e9de0fd62d17e02ce70a52c", null ], + [ "read_bmi270_data", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a0eb4c2dc5d13163ccfd6157eadb637e5", null ], + [ "read_bmi270_reg", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#af738e0476293a8e7822b85ba126ba159", null ], + [ "read_bmm150_data", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aaa70e24a0cabfe8a2f7b4d1a8cb38915", null ], + [ "write_bmi270_data", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a3bbb9efa771a4f9e06817a8cb0d14501", null ], + [ "write_bmi270_reg", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a41d4e2f025faabb41f47bc054cf3d92a", null ], + [ "write_bmm150_data", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a3ea8f747686c9736edb1c30a2bf5d3ca", null ], + [ "bmi270_context_config_file", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a841b02d0c8bb3bdea76038e60aa6d76f", null ], + [ "bmi270_context_config_file_size", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aaed4743b4089675e78e99c4e70acee64", null ], + [ "bmi270_h", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#aec9920416991f6e1ed23dfcdcfced7f4", null ], + [ "display", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a94cee89137dc23941cca5f855cc1140c", null ], + [ "ekf13", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a1a1d8c3374e1c88601f520bceeb0e8d7", null ], + [ "i2c_handle", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a721c9ecee4307bc707d56f8289af4bfb", null ], + [ "i2c_read_buffer", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#affe417de6fa5765dee1c825c3d89b407", null ], + [ "i2c_write_buffer", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a773df93a11da89f8b675eca97e5a6e84", null ], + [ "image", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#af643ed4087a70fb8ad4885eadf1fd862", null ], + [ "m5_cube_vectors_3d", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a21f4cd7ce8be87b679a464bd16a3e6b9", null ], + [ "objs", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a6a758a9d57bc160314df99d17c57ee34", null ], + [ "perspective_matrix", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "points", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a04c6fdadd11e089581037007e9406763", null ], + [ "sensors_data", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a7ccbd63f9db1fc2533bcad702b77628f", null ], + [ "style_blue", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a4acacc55f9f20c7b359cfdb5673d94c4", null ], + [ "style_red", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a6de19fc49a7e5b192f007a32602bb9e4", null ], + [ "TAG", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.md5 new file mode 100644 index 0000000..d5a7d4d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +57a1c14e0fa1769dbc4d8fcf54be4e70 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.svg new file mode 100644 index 0000000..bd4a5fe --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl.svg @@ -0,0 +1,1726 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3d_kalman_demo.cpp + + +Node1 + + +3d_kalman_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_dsp.h + + + + + +Node1->Node6 + + + + + + + + +Node74 + + +cube_matrix.h + + + + + +Node1->Node74 + + + + + + + + +Node75 + + +esp_logo.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_text.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +graphics_support.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +image_to_3d_matrix.h + + + + + +Node1->Node78 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +dsp_common.h + + + + + +Node6->Node7 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node6->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node6->Node17 + + + + + + + + +Node20 + + +dsps_math.h + + + + + +Node6->Node20 + + + + + + + + +Node32 + + +dsps_fir.h + + + + + +Node6->Node32 + + + + + + + + +Node34 + + +dsps_resampler.h + + + + + +Node6->Node34 + + + + + + + + +Node35 + + +dsps_biquad.h + + + + + +Node6->Node35 + + + + + + + + +Node37 + + +dsps_biquad_gen.h + + + + + +Node6->Node37 + + + + + + + + +Node38 + + +dsps_wind.h + + + + + +Node6->Node38 + + + + + + + + +Node45 + + +dsps_conv.h + + + + + +Node6->Node45 + + + + + + + + +Node47 + + +dsps_corr.h + + + + + +Node6->Node47 + + + + + + + + +Node48 + + +dsps_d_gen.h + + + + + +Node6->Node48 + + + + + + + + +Node49 + + +dsps_h_gen.h + + + + + +Node6->Node49 + + + + + + + + +Node50 + + +dsps_tone_gen.h + + + + + +Node6->Node50 + + + + + + + + +Node51 + + +dsps_snr.h + + + + + +Node6->Node51 + + + + + + + + +Node52 + + +dsps_sfdr.h + + + + + +Node6->Node52 + + + + + + + + +Node53 + + +dsps_fft2r.h + + + + + +Node6->Node53 + + + + + + + + +Node56 + + +dsps_fft4r.h + + + + + +Node6->Node56 + + + + + + + + +Node58 + + +dsps_dct.h + + + + + +Node6->Node58 + + + + + + + + +Node59 + + +dspm_matrix.h + + + + + +Node6->Node59 + + + + + + + + +Node70 + + +dsps_view.h + + + + + +Node6->Node70 + + + + + + + + +Node71 + + +dspi_dotprod.h + + + + + +Node6->Node71 + + + + + + + + +Node73 + + +dspi_conv.h + + + + + +Node6->Node73 + + + + + + + + +Node8 + + +stdint.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +stdbool.h + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +dsp_err.h + + + + + +Node7->Node10 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node7->Node14 + + + + + + + + +Node10->Node8 + + + + + + + + +Node15->Node8 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + +Node17->Node3 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18 + + +dsps_dotprod_platform.h + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +sdkconfig.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_add.h + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +dsps_sub.h + + + + + +Node20->Node23 + + + + + + + + +Node25 + + +dsps_mul.h + + + + + +Node20->Node25 + + + + + + + + +Node27 + + +dsps_addc.h + + + + + +Node20->Node27 + + + + + + + + +Node29 + + +dsps_mulc.h + + + + + +Node20->Node29 + + + + + + + + +Node31 + + +dsps_sqrt.h + + + + + +Node20->Node31 + + + + + + + + +Node21->Node10 + + + + + + + + +Node23->Node10 + + + + + + + + +Node25->Node10 + + + + + + + + +Node27->Node10 + + + + + + + + +Node29->Node10 + + + + + + + + +Node31->Node10 + + + + + + + + +Node32->Node7 + + + + + + + + +Node32->Node10 + + + + + + + + +Node33 + + +dsps_fir_platform.h + + + + + +Node32->Node33 + + + + + + + + +Node33->Node19 + + + + + + + + +Node34->Node10 + + + + + + + + +Node34->Node32 + + + + + + + + +Node35->Node10 + + + + + + + + +Node36 + + +dsps_biquad_platform.h + + + + + +Node35->Node36 + + + + + + + + +Node36->Node19 + + + + + + + + +Node37->Node10 + + + + + + + + +Node39 + + +dsps_wind_hann.h + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman.h + + + + + +Node38->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman +_harris.h + + + + + +Node38->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node38->Node42 + + + + + + + + +Node43 + + +dsps_wind_nuttall.h + + + + + +Node38->Node43 + + + + + + + + +Node44 + + +dsps_wind_flat_top.h + + + + + +Node38->Node44 + + + + + + + + +Node45->Node10 + + + + + + + + +Node46 + + +dsps_conv_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node19 + + + + + + + + +Node47->Node10 + + + + + + + + +Node47->Node46 + + + + + + + + +Node48->Node10 + + + + + + + + +Node49->Node10 + + + + + + + + +Node50->Node10 + + + + + + + + +Node51->Node10 + + + + + + + + +Node52->Node10 + + + + + + + + +Node53->Node10 + + + + + + + + +Node53->Node19 + + + + + + + + +Node54 + + +dsps_fft_tables.h + + + + + +Node53->Node54 + + + + + + + + +Node55 + + +dsps_fft2r_platform.h + + + + + +Node53->Node55 + + + + + + + + +Node55->Node19 + + + + + + + + +Node56->Node10 + + + + + + + + +Node56->Node19 + + + + + + + + +Node56->Node54 + + + + + + + + +Node57 + + +dsps_fft4r_platform.h + + + + + +Node56->Node57 + + + + + + + + +Node57->Node19 + + + + + + + + +Node58->Node10 + + + + + + + + +Node58->Node19 + + + + + + + + +Node60 + + +dspm_add.h + + + + + +Node59->Node60 + + + + + + + + +Node62 + + +dspm_addc.h + + + + + +Node59->Node62 + + + + + + + + +Node64 + + +dspm_mult.h + + + + + +Node59->Node64 + + + + + + + + +Node66 + + +dspm_mulc.h + + + + + +Node59->Node66 + + + + + + + + +Node68 + + +dspm_sub.h + + + + + +Node59->Node68 + + + + + + + + +Node60->Node10 + + + + + + + + +Node62->Node10 + + + + + + + + +Node64->Node10 + + + + + + + + +Node66->Node10 + + + + + + + + +Node68->Node10 + + + + + + + + +Node70->Node10 + + + + + + + + +Node71->Node3 + + + + + + + + +Node71->Node10 + + + + + + + + +Node71->Node15 + + + + + + + + +Node72 + + +dspi_dotprod_platform.h + + + + + +Node71->Node72 + + + + + + + + +Node72->Node19 + + + + + + + + +Node73->Node10 + + + + + + + + +Node73->Node15 + + + + + + + + +Node73->Node46 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..811a559 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp__incl_org.svg @@ -0,0 +1,1643 @@ + + + + + + +3d_kalman_demo.cpp + + +Node1 + + +3d_kalman_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +bsp/m5stack_core_s3.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_dsp.h + + + + + +Node1->Node6 + + + + + + + + +Node74 + + +cube_matrix.h + + + + + +Node1->Node74 + + + + + + + + +Node75 + + +esp_logo.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_text.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +graphics_support.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +image_to_3d_matrix.h + + + + + +Node1->Node78 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +dsp_common.h + + + + + +Node6->Node7 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node6->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node6->Node17 + + + + + + + + +Node20 + + +dsps_math.h + + + + + +Node6->Node20 + + + + + + + + +Node32 + + +dsps_fir.h + + + + + +Node6->Node32 + + + + + + + + +Node34 + + +dsps_resampler.h + + + + + +Node6->Node34 + + + + + + + + +Node35 + + +dsps_biquad.h + + + + + +Node6->Node35 + + + + + + + + +Node37 + + +dsps_biquad_gen.h + + + + + +Node6->Node37 + + + + + + + + +Node38 + + +dsps_wind.h + + + + + +Node6->Node38 + + + + + + + + +Node45 + + +dsps_conv.h + + + + + +Node6->Node45 + + + + + + + + +Node47 + + +dsps_corr.h + + + + + +Node6->Node47 + + + + + + + + +Node48 + + +dsps_d_gen.h + + + + + +Node6->Node48 + + + + + + + + +Node49 + + +dsps_h_gen.h + + + + + +Node6->Node49 + + + + + + + + +Node50 + + +dsps_tone_gen.h + + + + + +Node6->Node50 + + + + + + + + +Node51 + + +dsps_snr.h + + + + + +Node6->Node51 + + + + + + + + +Node52 + + +dsps_sfdr.h + + + + + +Node6->Node52 + + + + + + + + +Node53 + + +dsps_fft2r.h + + + + + +Node6->Node53 + + + + + + + + +Node56 + + +dsps_fft4r.h + + + + + +Node6->Node56 + + + + + + + + +Node58 + + +dsps_dct.h + + + + + +Node6->Node58 + + + + + + + + +Node59 + + +dspm_matrix.h + + + + + +Node6->Node59 + + + + + + + + +Node70 + + +dsps_view.h + + + + + +Node6->Node70 + + + + + + + + +Node71 + + +dspi_dotprod.h + + + + + +Node6->Node71 + + + + + + + + +Node73 + + +dspi_conv.h + + + + + +Node6->Node73 + + + + + + + + +Node8 + + +stdint.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +stdbool.h + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +dsp_err.h + + + + + +Node7->Node10 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node7->Node13 + + + + + + + + +Node14 + + +x86intrin.h + + + + + +Node7->Node14 + + + + + + + + +Node10->Node8 + + + + + + + + +Node15->Node8 + + + + + + + + +Node15->Node9 + + + + + + + + +Node16 + + +inttypes.h + + + + + +Node15->Node16 + + + + + + + + +Node17->Node3 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18 + + +dsps_dotprod_platform.h + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +sdkconfig.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_add.h + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +dsps_sub.h + + + + + +Node20->Node23 + + + + + + + + +Node25 + + +dsps_mul.h + + + + + +Node20->Node25 + + + + + + + + +Node27 + + +dsps_addc.h + + + + + +Node20->Node27 + + + + + + + + +Node29 + + +dsps_mulc.h + + + + + +Node20->Node29 + + + + + + + + +Node31 + + +dsps_sqrt.h + + + + + +Node20->Node31 + + + + + + + + +Node21->Node10 + + + + + + + + +Node23->Node10 + + + + + + + + +Node25->Node10 + + + + + + + + +Node27->Node10 + + + + + + + + +Node29->Node10 + + + + + + + + +Node31->Node10 + + + + + + + + +Node32->Node7 + + + + + + + + +Node32->Node10 + + + + + + + + +Node33 + + +dsps_fir_platform.h + + + + + +Node32->Node33 + + + + + + + + +Node33->Node19 + + + + + + + + +Node34->Node10 + + + + + + + + +Node34->Node32 + + + + + + + + +Node35->Node10 + + + + + + + + +Node36 + + +dsps_biquad_platform.h + + + + + +Node35->Node36 + + + + + + + + +Node36->Node19 + + + + + + + + +Node37->Node10 + + + + + + + + +Node39 + + +dsps_wind_hann.h + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman.h + + + + + +Node38->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman +_harris.h + + + + + +Node38->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node38->Node42 + + + + + + + + +Node43 + + +dsps_wind_nuttall.h + + + + + +Node38->Node43 + + + + + + + + +Node44 + + +dsps_wind_flat_top.h + + + + + +Node38->Node44 + + + + + + + + +Node45->Node10 + + + + + + + + +Node46 + + +dsps_conv_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node19 + + + + + + + + +Node47->Node10 + + + + + + + + +Node47->Node46 + + + + + + + + +Node48->Node10 + + + + + + + + +Node49->Node10 + + + + + + + + +Node50->Node10 + + + + + + + + +Node51->Node10 + + + + + + + + +Node52->Node10 + + + + + + + + +Node53->Node10 + + + + + + + + +Node53->Node19 + + + + + + + + +Node54 + + +dsps_fft_tables.h + + + + + +Node53->Node54 + + + + + + + + +Node55 + + +dsps_fft2r_platform.h + + + + + +Node53->Node55 + + + + + + + + +Node55->Node19 + + + + + + + + +Node56->Node10 + + + + + + + + +Node56->Node19 + + + + + + + + +Node56->Node54 + + + + + + + + +Node57 + + +dsps_fft4r_platform.h + + + + + +Node56->Node57 + + + + + + + + +Node57->Node19 + + + + + + + + +Node58->Node10 + + + + + + + + +Node58->Node19 + + + + + + + + +Node60 + + +dspm_add.h + + + + + +Node59->Node60 + + + + + + + + +Node62 + + +dspm_addc.h + + + + + +Node59->Node62 + + + + + + + + +Node64 + + +dspm_mult.h + + + + + +Node59->Node64 + + + + + + + + +Node66 + + +dspm_mulc.h + + + + + +Node59->Node66 + + + + + + + + +Node68 + + +dspm_sub.h + + + + + +Node59->Node68 + + + + + + + + +Node60->Node10 + + + + + + + + +Node62->Node10 + + + + + + + + +Node64->Node10 + + + + + + + + +Node66->Node10 + + + + + + + + +Node68->Node10 + + + + + + + + +Node70->Node10 + + + + + + + + +Node71->Node3 + + + + + + + + +Node71->Node10 + + + + + + + + +Node71->Node15 + + + + + + + + +Node72 + + +dspi_dotprod_platform.h + + + + + +Node71->Node72 + + + + + + + + +Node72->Node19 + + + + + + + + +Node73->Node10 + + + + + + + + +Node73->Node15 + + + + + + + + +Node73->Node46 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 new file mode 100644 index 0000000..ad9bfce --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.md5 @@ -0,0 +1 @@ +a67ee0029c761fd689d8753087ea83b5 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.svg new file mode 100644 index 0000000..39af4ad --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +read_bmi270_data + + +Node1 + + +read_bmi270_data + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph_org.svg new file mode 100644 index 0000000..ad71766 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a0eb4c2dc5d13163ccfd6157eadb637e5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +read_bmi270_data + + +Node1 + + +read_bmi270_data + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 new file mode 100644 index 0000000..93d2df9 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 @@ -0,0 +1 @@ +5bdbfe0081116b8330b9bcb4a8b4b0e8 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg new file mode 100644 index 0000000..12724db --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg new file mode 100644 index 0000000..ea0d713 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.md5 new file mode 100644 index 0000000..044815a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.md5 @@ -0,0 +1 @@ +94515999e5392f9ec234ea56a1c1e959 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.svg new file mode 100644 index 0000000..249a548 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +write_bmi270_data + + +Node1 + + +write_bmi270_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph_org.svg new file mode 100644 index 0000000..3b2e8a3 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3bbb9efa771a4f9e06817a8cb0d14501_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +write_bmi270_data + + +Node1 + + +write_bmi270_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 new file mode 100644 index 0000000..b71d7f7 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.md5 @@ -0,0 +1 @@ +25a3f86194a371b274642cee3eeb6cfe \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.svg new file mode 100644 index 0000000..435d7a5 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +write_bmm150_data + + +Node1 + + +write_bmm150_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph_org.svg new file mode 100644 index 0000000..2aa053d --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a3ea8f747686c9736edb1c30a2bf5d3ca_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +write_bmm150_data + + +Node1 + + +write_bmm150_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 new file mode 100644 index 0000000..dbc5512 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.md5 @@ -0,0 +1 @@ +ce951e3e491217eda1dd8ea8d28c018a \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.svg new file mode 100644 index 0000000..3802712 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +write_bmi270_reg + + +Node1 + + +write_bmi270_reg + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph_org.svg new file mode 100644 index 0000000..ee74425 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a41d4e2f025faabb41f47bc054cf3d92a_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +write_bmi270_reg + + +Node1 + + +write_bmi270_reg + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..4253901 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +4078158f3a4f4e6b62e7df5ed119ffb2 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..69a525c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..8131d2b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 new file mode 100644 index 0000000..0f461dc --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.md5 @@ -0,0 +1 @@ +bd3eb1348fbd113456d98de556ad5c8e \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg new file mode 100644 index 0000000..3f3181c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +read_bmm150_data + + +Node1 + + +read_bmm150_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg new file mode 100644 index 0000000..93255e7 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_aaa70e24a0cabfe8a2f7b4d1a8cb38915_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +read_bmm150_data + + +Node1 + + +read_bmm150_data + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..75d79c3 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +2ff4bef5ad0105323672446acabb2db5 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..60d4890 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,402 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +draw_3d_image_task + + + + + +Node1->Node8 + + + + + + + + +Node17 + + +init_3d_matrix_struct + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +init_perspective_matrix + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +read_bmi270_reg + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +read_bmm150_data + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +write_bmi270_data + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +write_bmi270_reg + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +write_bmm150_data + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +display_3d_image + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dspm::Mat::eye + + + + + +Node8->Node10 + + + + + + + + +Node13 + + +update_rotation_matrix + + + + + +Node8->Node13 + + + + + + + + +Node16 + + +update_translation +_matrix + + + + + +Node8->Node16 + + + + + + + + +Node11 + + +dspm::Mat::Mat + + + + + +Node10->Node11 + + + + + + + + +Node14 + + +ekf::eul2rotm + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dspm::Mat::t + + + + + +Node13->Node15 + + + + + + + + +Node15->Node11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..68c48ff --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,319 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +draw_3d_image_task + + + + + +Node1->Node8 + + + + + + + + +Node17 + + +init_3d_matrix_struct + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +init_perspective_matrix + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +read_bmi270_reg + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +read_bmm150_data + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +write_bmi270_data + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +write_bmi270_reg + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +write_bmm150_data + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +display_3d_image + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +dspm::Mat::eye + + + + + +Node8->Node10 + + + + + + + + +Node13 + + +update_rotation_matrix + + + + + +Node8->Node13 + + + + + + + + +Node16 + + +update_translation +_matrix + + + + + +Node8->Node16 + + + + + + + + +Node11 + + +dspm::Mat::Mat + + + + + +Node10->Node11 + + + + + + + + +Node14 + + +ekf::eul2rotm + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +dspm::Mat::t + + + + + +Node13->Node15 + + + + + + + + +Node15->Node11 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 new file mode 100644 index 0000000..ef12520 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.md5 @@ -0,0 +1 @@ +19c72820f3c953e62b279c90c10bf1cf \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg new file mode 100644 index 0000000..2bb7aca --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +app_init + + +Node1 + + +app_init + + + + + +Node2 + + +read_bmi270_reg + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +read_bmm150_data + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +write_bmi270_data + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +write_bmi270_reg + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +write_bmm150_data + + + + + +Node1->Node6 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg new file mode 100644 index 0000000..40f9b75 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_cgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +app_init + + +Node1 + + +app_init + + + + + +Node2 + + +read_bmi270_reg + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +read_bmm150_data + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +write_bmi270_data + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +write_bmi270_reg + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +write_bmm150_data + + + + + +Node1->Node6 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 new file mode 100644 index 0000000..a4feb0b --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.md5 @@ -0,0 +1 @@ +9144bc5c489c35262315b00b802ab9db \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg new file mode 100644 index 0000000..25079ec --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_init + + +Node1 + + +app_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg new file mode 100644 index 0000000..982799a --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_ad6cae3f4505c3e369a1ac0d3c3b60f42_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_init + + +Node1 + + +app_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 new file mode 100644 index 0000000..5940720 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 @@ -0,0 +1 @@ +4a2c43df9c4f6b79b518419a27627a54 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg new file mode 100644 index 0000000..05363c4 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +dspm::Mat::norm + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +read_bmi270_data + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::t + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +update_translation +_matrix + + + + + +Node1->Node13 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +ekf::eul2rotm + + + + + +Node11->Node12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg new file mode 100644 index 0000000..a6d9e10 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg @@ -0,0 +1,256 @@ + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +dspm::Mat::norm + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +read_bmi270_data + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +dspm::Mat::t + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +update_translation +_matrix + + + + + +Node1->Node13 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +ekf::eul2rotm + + + + + +Node11->Node12 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.md5 new file mode 100644 index 0000000..6070366 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.md5 @@ -0,0 +1 @@ +9ca131f3606c970f9747cab03c19649a \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.svg new file mode 100644 index 0000000..56a3757 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +read_bmi270_reg + + +Node1 + + +read_bmi270_reg + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph_org.svg new file mode 100644 index 0000000..e1243f5 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_af738e0476293a8e7822b85ba126ba159_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +read_bmi270_reg + + +Node1 + + +read_bmi270_reg + + + + + +Node2 + + +app_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_source.html b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_source.html new file mode 100644 index 0000000..3e78eba --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_23d__kalman__demo_8cpp_source.html @@ -0,0 +1,611 @@ + + + + + + + +ESP-IDF Firmware: 3d_kalman_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include "esp_log.h"
+
9#include "bsp/m5stack_core_s3.h"
+
10#include "esp_dsp.h"
+
11#include "cube_matrix.h"
+
12#include "esp_logo.h"
+
13#include "esp_text.h"
+
14#include "graphics_support.h"
+
15#include "image_to_3d_matrix.h"
+
16
+
17static const char *TAG = "3d-kalman";
+
18
+ +
20
+
21extern "C" void app_main();
+
22
+
23#define M5_CUBE_SIDE (BSP_LCD_V_RES / 4)
+
24
+
25// X Y Z coordinates of the cube centered to (0, 0, 0)
+
+ +
27 // X Y Z W
+
28{ {-M5_CUBE_SIDE, -M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // -1, -1, -1
+
29 {-M5_CUBE_SIDE, -M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // -1, -1, 1
+
30 {-M5_CUBE_SIDE, M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // -1, 1, -1
+
31 {-M5_CUBE_SIDE, M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // -1, 1, 1
+
32 { M5_CUBE_SIDE, -M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // 1, -1, -1
+
33 { M5_CUBE_SIDE, -M5_CUBE_SIDE, M5_CUBE_SIDE, 1}, // 1, -1, 1
+
34 { M5_CUBE_SIDE, M5_CUBE_SIDE, -M5_CUBE_SIDE, 1}, // 1, 1, -1
+
35 { M5_CUBE_SIDE, M5_CUBE_SIDE, M5_CUBE_SIDE, 1} // 1, 1, 1
+
36};
+
+
37
+
+ +
47{
+
48 image->matrix = m5_cube_vectors_3d;
+
49 image->matrix_len = ((sizeof(m5_cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
50}
+
+
51
+
52lv_style_t style_red;
+
53lv_style_t style_blue;
+
54lv_display_t *display = NULL;
+
58lv_obj_t **objs;
+
59lv_point_precise_t *points;
+
60
+
61
+
62static i2c_master_bus_handle_t i2c_handle;
+
63static i2c_master_dev_handle_t bmi270_h = NULL;
+
64#define BSP_BMI270_ADDR 0x69
+
65#define BSP_BMM150_ADDR 0x10
+
66
+
67// i2c read/write buffers
+
68static uint8_t i2c_read_buffer[32];
+
69static uint8_t i2c_write_buffer[32];
+
70
+
71// Definitions for bmi270 registers
+
72#define BMI270_IF_CONF 0x6B // Auxiliary I2C
+
73#define BMI270_AUX_DEV_ID 0x4B // Auxiliary I2C Device address
+
74#define BMI270_PWR_CONF 0x7C
+
75#define BMI270_PWR_CTRL 0x7D // Auxiliary I2C Device address
+
76#define BMI270_CMD 0x7E // CMD
+
77#define BMI270_AUX_IF_CONFIG 0x4C // Auxiliary I2C configuration register
+
78#define BMI270_AUX_READ_ADDR 0x4D // Read from auxiliary device
+
79#define BMI270_AUX_WRITE_ADDR 0x4E // Write to auxiliary device
+
80#define BMI270_AUX_WRITE_DATA 0x4F // Write to auxiliary device
+
81#define BMI270_AUX_STATUS 0x03
+
82#define BMI270_AUX_DATA0 0x04
+
83#define BMI270_ACC_DATA0 0x0C
+
84#define BMI270_GYR_DATA0 0x12
+
85#define BMI270_ACC_CONF 0x40
+
86#define BMI270_ACC_RANGE 0x41
+
87#define BMI270_GYR_CONF 0x42
+
88#define BMI270_GYR_RANGE 0x43
+
89#define BMI270_AUX_CONF 0x44
+
90#define BMI270_INIT_CTRL 0x59
+
91#define BMI270_INIT_DATA 0x5e
+
92#define BMI270_INTERNAL_STATUS 0x21
+
93
+
94// Definitions for bmi150 registers
+
95#define BMM150_REG_POWER_CONTROL 0x4B
+
96#define BMM150_SHIP_ID 0x40
+
97#define BMM150_DATA0 0x42
+
98
+
99// Basic fuctions to access bmi270 and bmm150
+
+
100esp_err_t read_bmm150_data(uint8_t addr, uint8_t *data, int length)
+
101{
+ +
103 i2c_write_buffer[1] = addr;
+
104 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
105
+ +
107 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
108
+ +
110 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
111 return err;
+
112}
+
+
113
+
+
114esp_err_t write_bmm150_data(uint8_t addr, uint8_t *data, int length)
+
115{
+ +
117 i2c_write_buffer[1] = data[0];
+
118 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
119
+ +
121 i2c_write_buffer[1] = addr;
+
122 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
123
+
124 return err;
+
125}
+
+
126
+
+
127esp_err_t write_bmi270_data(uint8_t addr, uint8_t *data, int length)
+
128{
+
129 if (length < 32) {
+ +
131 for (size_t i = 0; i < length; i++) {
+
132 i2c_write_buffer[1 + i] = data[i];
+
133 }
+
134 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 1 + length, 1000);
+
135 return err;
+
136 }
+
137
+
138 uint8_t *temp_data = (uint8_t *)malloc(length + 4);
+
139 for (size_t i = 0; i < length; i++) {
+
140 temp_data[1 + i] = data[i];
+
141 }
+
142 temp_data[0] = addr;
+
143
+
144 esp_err_t err = i2c_master_transmit(bmi270_h, temp_data, 1 + length, 1000);
+
145 free(temp_data);
+
146 return err;
+
147}
+
+
148
+
+
149esp_err_t read_bmi270_data(uint8_t addr, uint8_t *data, int length)
+
150{
+
151
+
152 i2c_write_buffer[0] = addr;
+
153 esp_err_t err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, data, length, 1000);
+
154 return err;
+
155}
+
+
156
+
+
157esp_err_t write_bmi270_reg(uint8_t addr, uint8_t data)
+
158{
+
159
+
160 i2c_write_buffer[0] = addr;
+ +
162 esp_err_t err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
163 return err;
+
164}
+
+
165
+
+
166uint8_t read_bmi270_reg(uint8_t addr, esp_err_t *err)
+
167{
+
168
+
169 i2c_write_buffer[0] = addr;
+
170 *err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, &i2c_write_buffer[16], 1, 1000);
+
171 return i2c_write_buffer[16];
+
172}
+
+
173
+
174extern "C" uint8_t bmi270_context_config_file[];
+ +
176
+
177int16_t sensors_data[32];
+
178
+
185
+
+
186static void app_init(void)
+
187{
+
188 lv_style_init(&style_red);
+
189 lv_style_init(&style_blue);
+
190
+
191 lv_style_set_line_color(&style_red, lv_palette_main(LV_PALETTE_RED));
+
192 lv_style_set_line_width(&style_red, 10);
+
193 lv_style_set_line_rounded(&style_red, false);
+
194 lv_style_set_line_color(&style_blue, lv_palette_main(LV_PALETTE_BLUE));
+
195 lv_style_set_line_width(&style_blue, 10);
+
196 lv_style_set_line_rounded(&style_blue, false);
+
197
+
198 objs = (lv_obj_t **)malloc(CUBE_EDGES * sizeof(lv_obj_t *));
+
199 points = (lv_point_precise_t *)malloc(CUBE_EDGES * 2 * sizeof(lv_point_precise_t));
+
200
+
201 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES / 2; cube_point++) {
+
202
+
203 objs[cube_point] = lv_line_create(lv_screen_active());
+
204 lv_obj_add_style(objs[cube_point], &style_red, 0);
+
205 }
+
206 for (uint8_t cube_point = CUBE_EDGES / 2; cube_point < CUBE_EDGES; cube_point++) {
+
207
+
208 objs[cube_point] = lv_line_create(lv_screen_active());
+
209 lv_obj_add_style(objs[cube_point], &style_blue, 0);
+
210 }
+
211
+
212 // Init the bmi270 and bmm150 chips
+
213 esp_err_t err = i2c_master_get_bus_handle(CONFIG_BSP_I2C_NUM, &i2c_handle);
+
214
+
215 const i2c_device_config_t bmi270_config = {
+
216 .dev_addr_length = I2C_ADDR_BIT_LEN_7,
+
217 .device_address = BSP_BMI270_ADDR,
+
218 .scl_speed_hz = 400000,
+
219 };
+
220 err = i2c_master_bus_add_device(i2c_handle, &bmi270_config, &bmi270_h);
+
221 vTaskDelay(10);
+
222 // Read chip ID to check the connection
+
223 i2c_write_buffer[0] = 0x00;
+
224 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
225 ESP_LOGI(TAG, "bmi270 ChipID = 0x%2.2x (should be 0x24), err = %2.2x", i2c_read_buffer[0], err);
+
226
+ +
228 i2c_write_buffer[1] = 0x20;
+
229 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
230
+ +
232 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
233
+ +
235 i2c_write_buffer[1] = 0x0f;
+
236 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
237
+ +
239 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
240
+ +
242 i2c_write_buffer[1] = 0x80;
+
243 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
244
+ +
246 err = i2c_master_transmit_receive(bmi270_h, i2c_write_buffer, 1, i2c_read_buffer, 1, 1000);
+
247 // vTaskDelay(1);
+
248
+ +
250 i2c_read_buffer[0] = 1;
+ + +
253 vTaskDelay(1);
+
254
+ +
256 ESP_LOGI(TAG, "bmm150 chip ID = 0x%2.2x (should be 0x32), err = %2.2x", i2c_read_buffer[0], err);
+
257
+
258 err = read_bmm150_data(0x4c, i2c_read_buffer, 1);
+
259 i2c_read_buffer[0] = 0x3 << 3;
+ +
261 err = read_bmm150_data(0x4c, i2c_read_buffer, 1);
+
262 vTaskDelay(1);
+
263
+ +
265 ESP_LOGI(TAG, "bmi270 status = %2.2x", read_bmi270_reg(BMI270_INTERNAL_STATUS, &err));
+
266 vTaskDelay(10 / portTICK_PERIOD_MS);
+
267
+ + + +
271 ESP_LOGI(TAG, "bmi270 status = %2.2x", read_bmi270_reg(BMI270_INTERNAL_STATUS, &err));
+
272
+ + + + + + + +
280
+ +
282 i2c_write_buffer[1] = 0x00;
+
283 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
284
+ + +
287 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
288
+ +
290 i2c_write_buffer[1] = 0x20;
+
291 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
292
+ +
294 i2c_write_buffer[1] = 0x03;
+
295 err = i2c_master_transmit(bmi270_h, i2c_write_buffer, 2, 1000);
+
296
+
297 ESP_LOGI(TAG, "bmi270 initialization is done");
+
298}
+
+
299
+
+
308static void display_3d_image(dspm::Mat projected_image)
+
309{
+
310 // For the 3D cube, only the 6 points of the cube are transformed
+
311 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
312 bsp_display_lock(10000);
+
313 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
314 points[cube_point * 2 + 0].x = (int16_t)projected_image(cube_dict_line_begin[cube_point], 0);
+
315 points[cube_point * 2 + 0].y = (int16_t)projected_image(cube_dict_line_begin[cube_point], 1);
+
316 points[cube_point * 2 + 1].x = (int16_t)projected_image(cube_dict_line_end[cube_point], 0);
+
317 points[cube_point * 2 + 1].y = (int16_t)projected_image(cube_dict_line_end[cube_point], 1);
+
318 lv_line_set_points(objs[cube_point], &points[cube_point * 2 + 0], 2);
+
319 lv_obj_set_pos(objs[cube_point], 0, 0);
+
320 }
+
321 bsp_display_unlock();
+
322}
+
+
323
+ +
325
+
+
333static void draw_3d_image_task(void *arg)
+
334{
+ +
336
+
337 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
338 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
339 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
340
+
341 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
342
+
343 float dt = 0;
+
344 static float prev_time = 0;
+
345 float current_time = dsp_get_cpu_cycle_count();
+
346 float R_m[6] = {0.01, 0.01, 0.01, 0.01, 0.01, 0.01};
+
347
+
348 float magn_norm = 1;
+
349 while (1) {
+
350
+
351 esp_err_t err;
+
352
+
353 // Calculate dt for kalman filter
+
354 current_time = dsp_get_cpu_cycle_count();
+
355 if (current_time > prev_time) {
+
356 dt = current_time - prev_time;
+
357 dt = dt / 240000000.0;
+
358 }
+
359 prev_time = current_time;
+
360
+
361
+
362 // Read and convert data from bmi270 and bmm150 sensors
+
363 err = read_bmi270_data(BMI270_AUX_DATA0, (uint8_t *)sensors_data, 20);
+
364 float accel[3];
+
365 float gyro[3];
+
366 float magn[3];
+
367 for (size_t i = 0; i < 3; i++) {
+
368 magn[i] = sensors_data[i];
+
369 accel[i] = sensors_data[4 + i];
+
370 gyro[i] = sensors_data[7 + i];
+
371 /* code */
+
372 }
+
373
+
374 // We have to apply this because initial direction of sensors
+
375 magn[1] = -magn[1];
+
376 accel[1] = -accel[1];
+
377 gyro[1] = -gyro[1];
+
378
+
379 magn[2] = -magn[2];
+
380 accel[2] = -accel[2];
+
381 gyro[2] = -gyro[2];
+
382
+
383 dspm::Mat gyro_input_mat(gyro, 3, 1);
+
384 dspm::Mat accel_input_mat(accel, 3, 1);
+
385 dspm::Mat mag_input_mat(magn, 3, 1);
+
386
+
387 // Accelerometer has 166 max range fit to the int16 value
+
388 accel_input_mat = accel_input_mat / 32768 * 16;
+
389 if (magn_norm < mag_input_mat.norm()) {
+
390 magn_norm = mag_input_mat.norm();
+
391 }
+
392 mag_input_mat = (1 / magn_norm) * mag_input_mat;
+
393
+
394 // range 2000 gedree/sec fit to the int16 range
+
395 gyro_input_mat *= (2000 * DEG_TO_RAD / 32768);
+
396
+
397 ekf13->Process(gyro_input_mat.data, dt);
+
398 ekf13->UpdateRefMeasurementMagn(accel_input_mat.data, mag_input_mat.data, R_m);
+
399
+
400 // Convert directin quaternion to rotation matrix
+
401 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data).t(); // matrix(3x1) that holds x, y, z rotation data
+
402 // Convert rotation matrix to Euler angels
+
403 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
404 // Apply radian to degree
+
405 eul_angles *= RAD_TO_DEG;
+
406 // Apply rotation in all the axes to the transformation matrix
+
407 update_rotation_matrix(T, eul_angles(0, 0), eul_angles(1, 0), eul_angles(2, 0));
+
408 // Apply translation to the transformation matrix
+
409 update_translation_matrix(T, true, ((float)BSP_LCD_H_RES / 2), ((float)BSP_LCD_V_RES / 2), 0);
+
410
+
411 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
412 transformed_image = matrix_3d * T;
+
413 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
414 projected_image = transformed_image * perspective_matrix;
+
415
+
416 display_3d_image(projected_image);
+
417 vTaskDelay(5 / portTICK_PERIOD_MS);
+
418 }
+
419}
+
+ +
+
421void app_main(void)
+
422{
+
423 ekf13 = new ekf_imu13states();
+
424 ekf13->Init();
+
425
+
426 // Init all board components
+
427 display = bsp_display_start();
+ + +
430 app_init();
+
431
+
432 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
433
+
434 xTaskCreate(draw_3d_image_task, "draw_3d_image", 16384, &image, 4, NULL);
+
435 ESP_LOGI(TAG, "Showing 3D image");
+
436
+
437}
+
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+ + + + +
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + +
static i2c_master_bus_handle_t i2c_handle
+ + + + +
const float m5_cube_vectors_3d[CUBE_POINTS][MATRIX_SIZE]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
float norm(void)
Definition mat.cpp:456
+
static Mat eye(int size)
Definition mat.cpp:394
+
Mat t()
Definition mat.cpp:383
+
This class is used to process and calculate attitude from imu sensors.
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+ +
int esp_err_t
Definition esp_err.h:21
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+ + + +
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ + + +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+ +
static const char * TAG
Definition main/main.c:31
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html new file mode 100644 index 0000000..d85f261 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html @@ -0,0 +1,594 @@ + + + + + + + +ESP-IDF Firmware: bmi270_context.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
bmi270_context.c File Reference
+
+
+
#include <stdint.h>
+
+Include dependency graph for external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/bmi270_context.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t bmi270_context_config_file []
const int bmi270_context_config_file_size = sizeof(bmi270_context_config_file)
+

Variable Documentation

+ +

◆ bmi270_context_config_file

+ +
+
+ + + + +
const uint8_t bmi270_context_config_file[]
+
+ +

Definition at line 9 of file external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/bmi270_context.c.

+
9 {
+
10 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0x00, 0xb0, 0xc8, 0x2e, 0x00, 0x2e, 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0xc9,
+
11 0x01, 0x80, 0x2e, 0xe2, 0x00, 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0x77, 0xb0, 0x50, 0x30, 0x21, 0x2e, 0x59, 0xf5,
+
12 0x10, 0x30, 0x21, 0x2e, 0x6a, 0xf5, 0x80, 0x2e, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x01, 0x00, 0x22,
+
13 0x00, 0x76, 0x00, 0x00, 0x10, 0x00, 0x10, 0xd1, 0x00, 0xcb, 0xa7, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
14 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
15 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
16 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
17 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
18 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
19 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
20 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
21 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
22 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0xfd, 0x2d, 0x2c, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
23 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00,
+
24 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
25 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
26 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
27 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
28 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x24, 0x22, 0x00, 0x80, 0x2e, 0x48, 0x02, 0x01, 0x2e, 0x49,
+
29 0xf1, 0x0b, 0xbc, 0x10, 0x50, 0x0f, 0xb8, 0x00, 0x90, 0xfb, 0x7f, 0x07, 0x2f, 0x03, 0x2e, 0x21, 0xf2, 0x02, 0x31,
+
30 0x4a, 0x0a, 0x23, 0x2e, 0x21, 0xf2, 0x09, 0x2c, 0x00, 0x30, 0x98, 0x2e, 0x0e, 0xc7, 0x03, 0x2e, 0x21, 0xf2, 0xf2,
+
31 0x3e, 0x4a, 0x08, 0x23, 0x2e, 0x21, 0xf2, 0xfb, 0x6f, 0xf0, 0x5f, 0xb8, 0x2e, 0x13, 0x52, 0x00, 0x2e, 0x60, 0x40,
+
32 0x41, 0x40, 0x0d, 0xbc, 0x98, 0xbc, 0xc0, 0x2e, 0x01, 0x0a, 0x0f, 0xb8, 0x43, 0x86, 0x25, 0x40, 0x04, 0x40, 0xd8,
+
33 0xbe, 0x2c, 0x0b, 0x22, 0x11, 0x54, 0x42, 0x03, 0x80, 0x4b, 0x0e, 0xf6, 0x2f, 0xb8, 0x2e, 0x20, 0x50, 0xe7, 0x7f,
+
34 0xf6, 0x7f, 0x46, 0x30, 0x0f, 0x2e, 0xa4, 0xf1, 0xbe, 0x09, 0x80, 0xb3, 0x06, 0x2f, 0x0d, 0x2e, 0x84, 0x00, 0x84,
+
35 0xaf, 0x02, 0x2f, 0x16, 0x30, 0x2d, 0x2e, 0x7b, 0x00, 0x86, 0x30, 0x2d, 0x2e, 0x60, 0xf5, 0xf6, 0x6f, 0xe7, 0x6f,
+
36 0xe0, 0x5f, 0xc8, 0x2e, 0x80, 0x2e, 0xfb, 0x00, 0x00, 0x30, 0xc0, 0x2e, 0x21, 0x2e, 0x8d, 0x00, 0x44, 0x47, 0x99,
+
37 0x00, 0xff, 0x3f, 0x00, 0x0c, 0xff, 0x0f, 0x00, 0x04, 0xc0, 0x00, 0x5b, 0xf5, 0x90, 0x00, 0x1e, 0xf2, 0xfd, 0xf5,
+
38 0x8e, 0x00, 0x96, 0x00, 0x96, 0x00, 0xe0, 0x00, 0x19, 0xf4, 0x66, 0xf5, 0x00, 0x18, 0x64, 0xf5, 0x9d, 0x00, 0x7f,
+
39 0x00, 0x81, 0x00, 0xae, 0x00, 0xff, 0xfb, 0x21, 0x02, 0x00, 0x10, 0x00, 0x40, 0xff, 0x00, 0x00, 0x80, 0xff, 0x7f,
+
40 0x54, 0x0f, 0xeb, 0x00, 0x7f, 0xff, 0xc2, 0xf5, 0x68, 0xf7, 0xb3, 0xf1, 0x4e, 0x0f, 0x42, 0x0f, 0x48, 0x0f, 0x80,
+
41 0x00, 0x67, 0x0f, 0x58, 0xf7, 0x5b, 0xf7, 0x6a, 0x0f, 0x86, 0x00, 0x59, 0x0f, 0x6c, 0x0f, 0xc6, 0xf1, 0x66, 0x0f,
+
42 0x6c, 0xf7, 0x00, 0xe0, 0x00, 0xff, 0xd1, 0xf5, 0x6e, 0x0f, 0x71, 0x0f, 0xff, 0x03, 0x00, 0xfc, 0xf0, 0x3f, 0xb9,
+
43 0x00, 0x2d, 0xf5, 0xca, 0xf5, 0x8a, 0x00, 0x00, 0x08, 0x71, 0x7d, 0xfe, 0xc0, 0x03, 0x3f, 0x05, 0x3e, 0x49, 0x01,
+
44 0x92, 0x02, 0xf5, 0xd6, 0xe8, 0x63, 0xd3, 0xf8, 0x2e, 0x07, 0x5c, 0xce, 0xa5, 0x67, 0x28, 0x02, 0x4e, 0x01, 0x00,
+
45 0xf0, 0x33, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
47 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
48 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
49 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
50 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x50, 0x10,
+
55 0x50, 0x17, 0x52, 0x05, 0x2e, 0x7d, 0x00, 0xfb, 0x7f, 0x00, 0x2e, 0x13, 0x40, 0x93, 0x42, 0x41, 0x0e, 0xfb, 0x2f,
+
56 0x98, 0x2e, 0x91, 0x03, 0x98, 0x2e, 0x87, 0xcf, 0x01, 0x2e, 0x89, 0x00, 0x00, 0xb2, 0x08, 0x2f, 0x01, 0x2e, 0x69,
+
57 0xf7, 0xb1, 0x3f, 0x01, 0x08, 0x01, 0x30, 0x23, 0x2e, 0x89, 0x00, 0x21, 0x2e, 0x69, 0xf7, 0xfb, 0x6f, 0xf0, 0x5f,
+
58 0xb8, 0x2e, 0xa0, 0x50, 0x80, 0x7f, 0xe7, 0x7f, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0xa2, 0x7f, 0x91, 0x7f, 0xf6,
+
59 0x7f, 0x7b, 0x7f, 0x00, 0x2e, 0x01, 0x2e, 0x60, 0xf5, 0x60, 0x7f, 0x98, 0x2e, 0xce, 0x00, 0x62, 0x6f, 0x01, 0x32,
+
60 0x91, 0x08, 0x80, 0xb2, 0x11, 0x2f, 0x00, 0xb2, 0x03, 0x2f, 0x05, 0x2e, 0x18, 0x00, 0x80, 0x90, 0x09, 0x2f, 0x60,
+
61 0x7f, 0x98, 0x2e, 0xf9, 0x00, 0x23, 0x50, 0x01, 0x32, 0x01, 0x42, 0x02, 0x86, 0x60, 0x6f, 0x02, 0x30, 0xc2, 0x42,
+
62 0x23, 0x2e, 0x60, 0xf5, 0x00, 0x90, 0x00, 0x30, 0x01, 0x2f, 0x21, 0x2e, 0x7a, 0x00, 0xf6, 0x6f, 0x91, 0x6f, 0xa2,
+
63 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0xe7, 0x6f, 0x7b, 0x6f, 0x80, 0x6f, 0x60, 0x5f, 0xc8, 0x2e, 0x00, 0x00,
+
64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x01, 0xd4, 0x7b, 0x3b,
+
65 0x01, 0xdb, 0x7a, 0x04, 0x00, 0x3f, 0x7b, 0xcd, 0x6c, 0xc3, 0x04, 0x85, 0x09, 0xc3, 0x04, 0xec, 0xe6, 0x0c, 0x46,
+
66 0x01, 0x00, 0x27, 0x00, 0x19, 0x00, 0x96, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x0c, 0x00, 0xf0, 0x3c, 0x00, 0x01, 0x01,
+
67 0x00, 0x03, 0x00, 0x01, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
68 0x00, 0x00, 0x01, 0x00, 0xe1, 0x06, 0x66, 0x0a, 0x0a, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
70 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
71 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x50, 0x98, 0x2e, 0xd7, 0x0e, 0x50, 0x32, 0x98, 0x2e,
+
72 0x48, 0x03, 0x10, 0x30, 0x21, 0x2e, 0x21, 0xf2, 0x00, 0x30, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0x00, 0x2e, 0x01,
+
73 0x80, 0x06, 0xa2, 0xfb, 0x2f, 0x01, 0x2e, 0x9c, 0x00, 0x00, 0xb2, 0x10, 0x2f, 0x01, 0x2e, 0x18, 0x00, 0x00, 0xb2,
+
74 0x0c, 0x2f, 0x01, 0x54, 0x03, 0x52, 0x01, 0x50, 0x98, 0x2e, 0xc2, 0xc0, 0x98, 0x2e, 0xf5, 0xb0, 0x01, 0x50, 0x98,
+
75 0x2e, 0xd5, 0xb6, 0x10, 0x30, 0x21, 0x2e, 0x19, 0x00, 0x01, 0x2e, 0x84, 0x00, 0x04, 0xae, 0x0b, 0x2f, 0x01, 0x2e,
+
76 0x9c, 0x00, 0x00, 0xb2, 0x07, 0x2f, 0x01, 0x52, 0x98, 0x2e, 0x8e, 0x0e, 0x00, 0xb2, 0x02, 0x2f, 0x10, 0x30, 0x21,
+
77 0x2e, 0x79, 0x00, 0x01, 0x2e, 0x79, 0x00, 0x00, 0x90, 0x90, 0x2e, 0x14, 0x03, 0x01, 0x2e, 0x87, 0x00, 0x00, 0xb2,
+
78 0x04, 0x2f, 0x98, 0x2e, 0x2f, 0x0e, 0x00, 0x30, 0x21, 0x2e, 0x7b, 0x00, 0x01, 0x2e, 0x7b, 0x00, 0x00, 0xb2, 0x12,
+
79 0x2f, 0x01, 0x2e, 0x84, 0x00, 0x00, 0x90, 0x02, 0x2f, 0x98, 0x2e, 0x1f, 0x0e, 0x09, 0x2d, 0x98, 0x2e, 0x81, 0x0d,
+
80 0x01, 0x2e, 0x84, 0x00, 0x04, 0x90, 0x02, 0x2f, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x7b,
+
81 0x00, 0x01, 0x2e, 0x78, 0x00, 0x00, 0xb2, 0x90, 0x2e, 0x2c, 0x03, 0x01, 0x2e, 0x78, 0x00, 0x81, 0x30, 0x01, 0x08,
+
82 0x00, 0xb2, 0x61, 0x2f, 0x03, 0x2e, 0x24, 0x02, 0x01, 0x2e, 0x84, 0x00, 0x98, 0xbc, 0x98, 0xb8, 0x05, 0xb2, 0x0d,
+
83 0x58, 0x23, 0x2f, 0x07, 0x90, 0x07, 0x54, 0x00, 0x30, 0x37, 0x2f, 0x15, 0x41, 0x04, 0x41, 0xdc, 0xbe, 0x44, 0xbe,
+
84 0xdc, 0xba, 0x2c, 0x01, 0x61, 0x00, 0x0d, 0x56, 0x4a, 0x0f, 0x0c, 0x2f, 0xd1, 0x42, 0x94, 0xb8, 0xc1, 0x42, 0x11,
+
85 0x30, 0x05, 0x2e, 0x6a, 0xf7, 0x2c, 0xbd, 0x2f, 0xb9, 0x80, 0xb2, 0x08, 0x22, 0x98, 0x2e, 0xaf, 0x03, 0x21, 0x2d,
+
86 0x61, 0x30, 0x23, 0x2e, 0x84, 0x00, 0x98, 0x2e, 0xaf, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x5a, 0xf5, 0x18, 0x2d, 0xf1,
+
87 0x7f, 0x50, 0x30, 0x98, 0x2e, 0x48, 0x03, 0x0d, 0x52, 0x05, 0x50, 0x50, 0x42, 0x70, 0x30, 0x0b, 0x54, 0x42, 0x42,
+
88 0x7e, 0x82, 0xf2, 0x6f, 0x80, 0xb2, 0x42, 0x42, 0x05, 0x2f, 0x21, 0x2e, 0x84, 0x00, 0x10, 0x30, 0x98, 0x2e, 0xaf,
+
89 0x03, 0x03, 0x2d, 0x60, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x01, 0x2e, 0x84, 0x00, 0x06, 0x90, 0x18, 0x2f, 0x01, 0x2e,
+
90 0x77, 0x00, 0x09, 0x54, 0x05, 0x52, 0xf0, 0x7f, 0x98, 0x2e, 0x7a, 0xc1, 0xf1, 0x6f, 0x08, 0x1a, 0x40, 0x30, 0x08,
+
91 0x2f, 0x21, 0x2e, 0x84, 0x00, 0x20, 0x30, 0x98, 0x2e, 0x9b, 0x03, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x05, 0x2d,
+
92 0x98, 0x2e, 0x38, 0x0e, 0x00, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x00, 0x30, 0x21, 0x2e, 0x78, 0x00, 0x18, 0x2d, 0x01,
+
93 0x2e, 0x84, 0x00, 0x03, 0xaa, 0x01, 0x2f, 0x98, 0x2e, 0x45, 0x0e, 0x01, 0x2e, 0x84, 0x00, 0x3f, 0x80, 0x03, 0xa2,
+
94 0x01, 0x2f, 0x00, 0x2e, 0x02, 0x2d, 0x98, 0x2e, 0x5b, 0x0e, 0x30, 0x30, 0x98, 0x2e, 0xba, 0x03, 0x00, 0x30, 0x21,
+
95 0x2e, 0x79, 0x00, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x01, 0x2e, 0x19, 0x00, 0x00, 0xb2, 0x10, 0x2f, 0x01, 0x2e,
+
96 0x85, 0x00, 0x21, 0x2e, 0x90, 0x00, 0x0f, 0x52, 0x7e, 0x82, 0x11, 0x50, 0x41, 0x40, 0x18, 0xb9, 0x11, 0x42, 0x02,
+
97 0x42, 0x02, 0x80, 0x00, 0x2e, 0x01, 0x40, 0x01, 0x42, 0x98, 0x2e, 0xaa, 0x01, 0x00, 0x30, 0x21, 0x2e, 0x19, 0x00,
+
98 0x21, 0x2e, 0x9c, 0x00, 0x80, 0x2e, 0x52, 0x02, 0x21, 0x2e, 0x59, 0xf5, 0x10, 0x30, 0xc0, 0x2e, 0x21, 0x2e, 0x4a,
+
99 0xf1, 0x80, 0x2e, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x01,
+
100 0x34, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
101 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
102 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
104 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
106 0x00, 0x00, 0x03, 0x2e, 0x7d, 0x00, 0x16, 0xb8, 0x02, 0x34, 0x4a, 0x0c, 0x21, 0x2e, 0x2d, 0xf5, 0xc0, 0x2e, 0x23,
+
107 0x2e, 0x7d, 0x00, 0x03, 0xbc, 0x21, 0x2e, 0x85, 0x00, 0x03, 0x2e, 0x85, 0x00, 0x40, 0xb2, 0x10, 0x30, 0x21, 0x2e,
+
108 0x19, 0x00, 0x01, 0x30, 0x05, 0x2f, 0x05, 0x2e, 0x88, 0x00, 0x80, 0x90, 0x01, 0x2f, 0x23, 0x2e, 0x6f, 0xf5, 0xc0,
+
109 0x2e, 0x21, 0x2e, 0x89, 0x00, 0x11, 0x30, 0x81, 0x08, 0x01, 0x2e, 0x6a, 0xf7, 0x71, 0x3f, 0x23, 0xbd, 0x01, 0x08,
+
110 0x02, 0x0a, 0xc0, 0x2e, 0x21, 0x2e, 0x6a, 0xf7, 0x30, 0x25, 0x00, 0x30, 0x21, 0x2e, 0x5a, 0xf5, 0x10, 0x50, 0x21,
+
111 0x2e, 0x7b, 0x00, 0x21, 0x2e, 0x78, 0x00, 0xfb, 0x7f, 0x98, 0x2e, 0xaf, 0x03, 0x40, 0x30, 0x21, 0x2e, 0x84, 0x00,
+
112 0xfb, 0x6f, 0xf0, 0x5f, 0x03, 0x25, 0x80, 0x2e, 0x9b, 0x03, 0x0b, 0x00, 0x94, 0x02, 0x14, 0x24, 0x80, 0x00, 0x04,
+
113 0x00, 0x04, 0x30, 0x08, 0xb8, 0x94, 0x02, 0xc0, 0x2e, 0x28, 0xbd, 0x02, 0x0a, 0x0d, 0x82, 0x02, 0x30, 0x12, 0x42,
+
114 0x41, 0x0e, 0xfc, 0x2f, 0xb8, 0x2e, 0x95, 0x50, 0xc0, 0x2e, 0x21, 0x2e, 0xa9, 0x01, 0x02, 0x30, 0x02, 0x2c, 0x41,
+
115 0x00, 0x12, 0x42, 0x41, 0x0e, 0xfc, 0x2f, 0xb8, 0x2e, 0x13, 0x82, 0x02, 0x30, 0x12, 0x42, 0x41, 0x0e, 0xfc, 0x2f,
+
116 0x3f, 0x80, 0xa1, 0x30, 0xc0, 0x2e, 0x01, 0x42, 0x00, 0x2e, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
117 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0xc0, 0x50, 0xe7, 0x7f,
+
118 0xf6, 0x7f, 0x26, 0x30, 0x0f, 0x2e, 0x61, 0xf5, 0x2f, 0x2e, 0x78, 0x00, 0x0f, 0x2e, 0x78, 0x00, 0xbe, 0x09, 0xa2,
+
119 0x7f, 0x80, 0x7f, 0x80, 0xb3, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0x91, 0x7f, 0x7b, 0x7f, 0x0b, 0x2f, 0x19, 0x50,
+
120 0x1a, 0x25, 0x12, 0x40, 0x42, 0x7f, 0x74, 0x82, 0x12, 0x40, 0x52, 0x7f, 0x00, 0x2e, 0x00, 0x40, 0x60, 0x7f, 0x98,
+
121 0x2e, 0x6a, 0xd6, 0x81, 0x30, 0x01, 0x2e, 0x78, 0x00, 0x01, 0x08, 0x00, 0xb2, 0x42, 0x2f, 0x03, 0x2e, 0x24, 0x02,
+
122 0x01, 0x2e, 0x24, 0x02, 0x97, 0xbc, 0x06, 0xbc, 0x9f, 0xb8, 0x0f, 0xb8, 0x00, 0x90, 0x23, 0x2e, 0x88, 0x00, 0x10,
+
123 0x30, 0x01, 0x30, 0x2a, 0x2f, 0x03, 0x2e, 0x84, 0x00, 0x44, 0xb2, 0x05, 0x2f, 0x47, 0xb2, 0x00, 0x30, 0x2d, 0x2f,
+
124 0x21, 0x2e, 0x78, 0x00, 0x2b, 0x2d, 0x03, 0x2e, 0xfd, 0xf5, 0x9e, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x14, 0x2f, 0x03,
+
125 0x2e, 0xfc, 0xf5, 0x99, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x0e, 0x2f, 0x03, 0x2e, 0x49, 0xf1, 0x1b, 0x54, 0x4a, 0x08,
+
126 0x40, 0x90, 0x08, 0x2f, 0x98, 0x2e, 0xce, 0x00, 0x00, 0xb2, 0x10, 0x30, 0x03, 0x2f, 0x50, 0x30, 0x21, 0x2e, 0x84,
+
127 0x00, 0x10, 0x2d, 0x98, 0x2e, 0x9b, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x78, 0x00, 0x0a, 0x2d, 0x05, 0x2e, 0x69, 0xf7,
+
128 0x2d, 0xbd, 0x2f, 0xb9, 0x80, 0xb2, 0x01, 0x2f, 0x21, 0x2e, 0x79, 0x00, 0x23, 0x2e, 0x78, 0x00, 0xe0, 0x31, 0x21,
+
129 0x2e, 0x61, 0xf5, 0xf6, 0x6f, 0xe7, 0x6f, 0x80, 0x6f, 0xa2, 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0x7b, 0x6f,
+
130 0x91, 0x6f, 0x40, 0x5f, 0xc8, 0x2e, 0x90, 0x50, 0xf7, 0x7f, 0xe6, 0x7f, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0xa1,
+
131 0x7f, 0x90, 0x7f, 0x82, 0x7f, 0x7b, 0x7f, 0x98, 0x2e, 0xce, 0x00, 0x00, 0xb2, 0x10, 0x30, 0x49, 0x2f, 0x05, 0x2e,
+
132 0x21, 0x02, 0x03, 0x2e, 0x2d, 0x02, 0x21, 0x56, 0x08, 0x08, 0x93, 0x08, 0x90, 0x0a, 0x25, 0x2e, 0x18, 0x00, 0x05,
+
133 0x2e, 0xc1, 0xf5, 0x2e, 0xbc, 0x05, 0x2e, 0x84, 0x00, 0x84, 0xa2, 0x0e, 0xb8, 0x31, 0x30, 0x88, 0x04, 0x03, 0x2f,
+
134 0x01, 0x2e, 0x18, 0x00, 0x00, 0xb2, 0x0c, 0x2f, 0x1d, 0x50, 0x01, 0x52, 0x98, 0x2e, 0xd7, 0x00, 0x05, 0x2e, 0x7a,
+
135 0x00, 0x80, 0x90, 0x02, 0x2f, 0x10, 0x30, 0x21, 0x2e, 0x7a, 0x00, 0x25, 0x2e, 0x9c, 0x00, 0x05, 0x2e, 0x18, 0x00,
+
136 0x80, 0xb2, 0x20, 0x2f, 0x01, 0x2e, 0xc0, 0xf5, 0xf2, 0x30, 0x02, 0x08, 0x07, 0xaa, 0x73, 0x30, 0x03, 0x2e, 0x7c,
+
137 0x00, 0x18, 0x22, 0x41, 0x1a, 0x05, 0x2f, 0x03, 0x2e, 0x66, 0xf5, 0x9f, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x0c, 0x2f,
+
138 0x1f, 0x52, 0x03, 0x30, 0x53, 0x42, 0x2b, 0x30, 0x90, 0x04, 0x5b, 0x42, 0x21, 0x2e, 0x7c, 0x00, 0x24, 0xbd, 0x7e,
+
139 0x80, 0x81, 0x84, 0x43, 0x42, 0x02, 0x42, 0x02, 0x32, 0x25, 0x2e, 0x62, 0xf5, 0x05, 0x2e, 0x86, 0x00, 0x81, 0x84,
+
140 0x25, 0x2e, 0x86, 0x00, 0x02, 0x31, 0x25, 0x2e, 0x60, 0xf5, 0x05, 0x2e, 0x25, 0x02, 0x10, 0x30, 0x90, 0x08, 0x80,
+
141 0xb2, 0x0b, 0x2f, 0x05, 0x2e, 0xca, 0xf5, 0xf0, 0x3e, 0x90, 0x08, 0x25, 0x2e, 0xca, 0xf5, 0x05, 0x2e, 0x59, 0xf5,
+
142 0xe0, 0x3f, 0x90, 0x08, 0x25, 0x2e, 0x59, 0xf5, 0x90, 0x6f, 0xa1, 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0xe6,
+
143 0x6f, 0xf7, 0x6f, 0x7b, 0x6f, 0x82, 0x6f, 0x70, 0x5f, 0xc8, 0x2e, 0x2f, 0x52, 0x90, 0x50, 0x53, 0x40, 0x4a, 0x25,
+
144 0x40, 0x40, 0x39, 0x8b, 0xfb, 0x7f, 0x0c, 0xbc, 0x21, 0x52, 0x37, 0x89, 0x0b, 0x30, 0x59, 0x08, 0x0c, 0xb8, 0xe0,
+
145 0x7f, 0x8b, 0x7f, 0x4b, 0x43, 0x0b, 0x43, 0x40, 0xb2, 0xd1, 0x7f, 0x6e, 0x2f, 0x01, 0x2e, 0x83, 0x00, 0x00, 0xb2,
+
146 0x0e, 0x2f, 0x25, 0x52, 0x01, 0x2e, 0x7e, 0x00, 0xc3, 0x7f, 0xb4, 0x7f, 0xa5, 0x7f, 0x98, 0x2e, 0xbb, 0xcc, 0x05,
+
147 0x30, 0x2b, 0x2e, 0x83, 0x00, 0xc3, 0x6f, 0xd1, 0x6f, 0xb4, 0x6f, 0xa5, 0x6f, 0x36, 0xbc, 0x06, 0xb9, 0x35, 0xbc,
+
148 0x0f, 0xb8, 0x94, 0xb0, 0xc6, 0x7f, 0x00, 0xb2, 0x0c, 0x2f, 0x27, 0x50, 0x29, 0x56, 0x0b, 0x30, 0x05, 0x2e, 0x21,
+
149 0x02, 0x2d, 0x5c, 0x1b, 0x42, 0xdb, 0x42, 0x96, 0x08, 0x25, 0x2e, 0x21, 0x02, 0x0b, 0x42, 0xcb, 0x42, 0x00, 0x2e,
+
150 0x31, 0x56, 0xcb, 0x08, 0x25, 0x52, 0x01, 0x2e, 0x7e, 0x00, 0x01, 0x54, 0x2b, 0x5c, 0x98, 0x2e, 0x06, 0xcd, 0xd2,
+
151 0x6f, 0x27, 0x5a, 0x94, 0x6f, 0xa4, 0xbc, 0x53, 0x41, 0x00, 0xb3, 0x1f, 0xb8, 0x44, 0x41, 0x01, 0x30, 0xd5, 0x7f,
+
152 0x05, 0x2f, 0x00, 0xb2, 0x03, 0x2f, 0x29, 0x5c, 0x11, 0x30, 0x93, 0x43, 0x84, 0x43, 0x23, 0xbd, 0x2f, 0xb9, 0x80,
+
153 0xb2, 0x1c, 0x2f, 0x72, 0x6f, 0xda, 0x00, 0x82, 0x6f, 0x22, 0x03, 0x44, 0x43, 0x00, 0x90, 0x27, 0x2e, 0x7f, 0x00,
+
154 0x29, 0x5a, 0x12, 0x2f, 0x29, 0x54, 0x00, 0x2e, 0x90, 0x40, 0x82, 0x40, 0x18, 0x04, 0xa2, 0x06, 0x80, 0xaa, 0x04,
+
155 0x2f, 0x80, 0x90, 0x08, 0x2f, 0xc2, 0x6f, 0x50, 0x0f, 0x05, 0x2f, 0xc0, 0x6f, 0x00, 0xb2, 0x02, 0x2f, 0x53, 0x43,
+
156 0x44, 0x43, 0x11, 0x30, 0xe0, 0x6f, 0x98, 0x2e, 0x95, 0xcf, 0xd1, 0x6f, 0x15, 0x5a, 0x09, 0x2e, 0x7f, 0x00, 0x41,
+
157 0x40, 0x54, 0x43, 0x08, 0x2c, 0x41, 0x43, 0x15, 0x30, 0x2b, 0x2e, 0x83, 0x00, 0x01, 0x30, 0xe0, 0x6f, 0x98, 0x2e,
+
158 0x95, 0xcf, 0x00, 0x2e, 0xfb, 0x6f, 0x70, 0x5f, 0xb8, 0x2e, 0x50, 0x86, 0xcd, 0x88, 0x34, 0x85, 0xc5, 0x40, 0x91,
+
159 0x40, 0x8c, 0x80, 0x06, 0x41, 0x13, 0x40, 0x50, 0x50, 0x6e, 0x01, 0x82, 0x40, 0x04, 0x40, 0x34, 0x8c, 0xfb, 0x7f,
+
160 0x98, 0x2e, 0xce, 0x03, 0xe0, 0x7f, 0x00, 0x2e, 0x91, 0x41, 0x8c, 0x81, 0x82, 0x41, 0x13, 0x40, 0x04, 0x40, 0x34,
+
161 0x8e, 0x98, 0x2e, 0xce, 0x03, 0xc0, 0x7f, 0xd5, 0x7f, 0x13, 0x24, 0xff, 0x00, 0xd6, 0x41, 0xcc, 0x83, 0xc2, 0x41,
+
162 0x57, 0x40, 0x74, 0x80, 0x44, 0x40, 0x11, 0x40, 0x0c, 0x8a, 0xf7, 0x01, 0x94, 0x03, 0x12, 0x24, 0x80, 0x00, 0x3a,
+
163 0x01, 0x02, 0x30, 0xb2, 0x03, 0xce, 0x17, 0xfb, 0x08, 0x23, 0x01, 0xb2, 0x02, 0x48, 0xbb, 0x28, 0xbd, 0xf2, 0x0b,
+
164 0x53, 0x41, 0x02, 0x40, 0x44, 0x41, 0x74, 0x8d, 0xb7, 0x7f, 0x98, 0x2e, 0xce, 0x03, 0x50, 0x25, 0x91, 0x41, 0x8c,
+
165 0x81, 0x82, 0x41, 0x13, 0x40, 0x04, 0x40, 0x34, 0x8e, 0x98, 0x2e, 0xce, 0x03, 0x60, 0x25, 0xd1, 0x41, 0xcc, 0x81,
+
166 0xc2, 0x41, 0x13, 0x40, 0x04, 0x40, 0x98, 0x2e, 0xce, 0x03, 0x11, 0x24, 0xb3, 0x00, 0x71, 0x0e, 0xd3, 0x6f, 0xe1,
+
167 0x6f, 0x33, 0x2f, 0x12, 0x24, 0xdd, 0x00, 0xda, 0x0f, 0x2b, 0x2f, 0x12, 0x24, 0x8c, 0x00, 0x5a, 0x0e, 0x09, 0x2f,
+
168 0x10, 0x24, 0x83, 0x05, 0x48, 0x0e, 0x11, 0x24, 0x7f, 0x22, 0x10, 0x24, 0x18, 0x32, 0x08, 0x22, 0x80, 0x2e, 0xd7,
+
169 0xb4, 0x13, 0x24, 0xf4, 0x00, 0x73, 0x0e, 0x0f, 0x2f, 0x10, 0x24, 0x11, 0x10, 0x68, 0x0e, 0x10, 0x24, 0xa2, 0x30,
+
170 0x13, 0x24, 0x97, 0x23, 0x03, 0x22, 0x13, 0x24, 0x3b, 0x04, 0x4b, 0x0e, 0x11, 0x24, 0x0f, 0x30, 0x01, 0x22, 0x80,
+
171 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x53, 0x02, 0x41, 0x0e, 0x11, 0x24, 0xe7, 0x31, 0x10, 0x24, 0xfc, 0x25, 0x08, 0x22,
+
172 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xe8, 0x40, 0x80, 0x2e, 0xd7, 0xb4, 0xf2, 0x37, 0x5a, 0x0e, 0x90, 0x2e, 0x50,
+
173 0xb3, 0x12, 0x24, 0xea, 0x00, 0x4a, 0x0e, 0x90, 0x2e, 0xc7, 0xb2, 0xc2, 0x6f, 0x14, 0x24, 0x4c, 0x0b, 0x54, 0x0e,
+
174 0x90, 0x2e, 0xab, 0xb2, 0x14, 0x24, 0x9b, 0x00, 0x5c, 0x0e, 0x90, 0x2e, 0xa1, 0xb2, 0x14, 0x24, 0x22, 0x01, 0x4c,
+
175 0x0e, 0x70, 0x2f, 0x82, 0xa3, 0x5e, 0x2f, 0x11, 0x24, 0xba, 0x0b, 0x51, 0x0e, 0x35, 0x2f, 0x11, 0x24, 0x03, 0x08,
+
176 0x69, 0x0e, 0x2d, 0x2f, 0xb1, 0x6f, 0x14, 0x24, 0x90, 0x00, 0x0c, 0x0e, 0x24, 0x2f, 0x11, 0x24, 0x31, 0x08, 0x69,
+
177 0x0e, 0x16, 0x2f, 0x11, 0x24, 0x7d, 0x01, 0x59, 0x0e, 0x0e, 0x2f, 0x11, 0x24, 0xd7, 0x0c, 0x51, 0x0e, 0x11, 0x24,
+
178 0x9f, 0x44, 0x13, 0x24, 0x41, 0x57, 0x4b, 0x22, 0x93, 0x35, 0x43, 0x0e, 0x10, 0x24, 0xbd, 0x42, 0x08, 0x22, 0x80,
+
179 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x1c, 0x42, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x47, 0x01, 0x59, 0x0e, 0x11, 0x24,
+
180 0xa2, 0x45, 0x10, 0x24, 0x31, 0x51, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x80, 0x41, 0x80, 0x2e, 0xd7,
+
181 0xb4, 0x10, 0x24, 0x67, 0x54, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x8c, 0x08, 0xe9, 0x0f, 0x10, 0x24, 0x0a, 0x48,
+
182 0x90, 0x2e, 0xd7, 0xb4, 0xb1, 0x6f, 0x13, 0x24, 0xe8, 0x03, 0x8b, 0x0f, 0x10, 0x24, 0xcd, 0x57, 0x90, 0x2e, 0xd7,
+
183 0xb4, 0x73, 0x35, 0x8b, 0x0f, 0x10, 0x24, 0x6f, 0x42, 0x90, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa0, 0xfe, 0x08, 0x0e,
+
184 0x10, 0x24, 0x38, 0x54, 0x13, 0x24, 0xa3, 0x46, 0x03, 0x22, 0x13, 0x24, 0x45, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0x04,
+
185 0x43, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xb1, 0x6f, 0x00, 0x3a, 0x08, 0x0e, 0x11, 0x24, 0x3d, 0x45, 0x10, 0x24,
+
186 0x52, 0x54, 0x48, 0x22, 0x10, 0x24, 0x8f, 0x01, 0x58, 0x0e, 0x10, 0x24, 0x48, 0x44, 0x01, 0x22, 0x80, 0x2e, 0xd7,
+
187 0xb4, 0xb1, 0x6f, 0x13, 0x24, 0xfa, 0x03, 0x0b, 0x0e, 0x11, 0x24, 0x85, 0x43, 0x13, 0x24, 0x35, 0x55, 0x4b, 0x22,
+
188 0x11, 0xa2, 0x10, 0x24, 0xf6, 0x57, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xa4, 0x0a, 0x69, 0x0e, 0x11,
+
189 0x24, 0x7b, 0x5a, 0x10, 0x24, 0x5e, 0x20, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x0f, 0x01, 0x59, 0x0e,
+
190 0x0d, 0x2f, 0x18, 0xa2, 0x11, 0x24, 0x2b, 0x47, 0x10, 0x24, 0xf4, 0x55, 0x48, 0x22, 0x10, 0x24, 0x16, 0x0b, 0x50,
+
191 0x0e, 0x10, 0x24, 0xc7, 0x51, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x72, 0x0a, 0x51, 0x0e, 0x11, 0x24,
+
192 0x85, 0x55, 0x10, 0x24, 0xb2, 0x47, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x83, 0x00, 0x48, 0x0e, 0x53,
+
193 0x2f, 0x11, 0x24, 0xe1, 0x07, 0x69, 0x0e, 0x2d, 0x2f, 0x95, 0xaf, 0x27, 0x2f, 0x82, 0xaf, 0x21, 0x2f, 0x11, 0x24,
+
194 0xd7, 0x00, 0x59, 0x0e, 0x19, 0x2f, 0xb1, 0x6f, 0x10, 0x24, 0xcc, 0x03, 0x88, 0x0f, 0x10, 0x2f, 0x10, 0x24, 0xe8,
+
195 0xfe, 0x08, 0x0e, 0x11, 0x24, 0x7e, 0x56, 0x10, 0x24, 0x94, 0x45, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0x06, 0x0b,
+
196 0x43, 0x0e, 0x10, 0x24, 0x2f, 0x51, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xde, 0x51, 0x80, 0x2e, 0xd7,
+
197 0xb4, 0x10, 0x24, 0xe8, 0x54, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa4, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24,
+
198 0xd0, 0x44, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xb8, 0x00, 0xd9, 0x0f, 0x19, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xe7,
+
199 0x0c, 0xc8, 0x0f, 0x10, 0x2f, 0x11, 0x24, 0xc7, 0x07, 0x69, 0x0e, 0x11, 0x24, 0xf6, 0x52, 0x10, 0x24, 0x7a, 0x12,
+
200 0x48, 0x22, 0xb0, 0x6f, 0x13, 0x24, 0x5d, 0x02, 0x03, 0x0e, 0x10, 0x24, 0x7c, 0x54, 0x01, 0x22, 0x80, 0x2e, 0xd7,
+
201 0xb4, 0x10, 0x24, 0x8d, 0x51, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x28, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24,
+
202 0xd2, 0x07, 0xe8, 0x0f, 0x28, 0x2f, 0x10, 0x24, 0xb0, 0x00, 0xd8, 0x0f, 0x20, 0x2f, 0x10, 0x24, 0xc6, 0x07, 0x68,
+
203 0x0e, 0x18, 0x2f, 0x50, 0x35, 0x48, 0x0e, 0x11, 0x2f, 0xb1, 0x6f, 0x10, 0x24, 0xf4, 0x01, 0x08, 0x0e, 0x11, 0x24,
+
204 0x35, 0x51, 0x10, 0x24, 0x22, 0x12, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0xe0, 0x0c, 0x43, 0x0e, 0x10, 0x24, 0x7b,
+
205 0x50, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x81, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x3b, 0x53,
+
206 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x63, 0x51, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x27, 0x51, 0x80, 0x2e, 0xd7,
+
207 0xb4, 0x18, 0xa2, 0x90, 0x2e, 0xdb, 0xb3, 0x12, 0x24, 0x08, 0x02, 0x4a, 0x0e, 0x37, 0x2f, 0x12, 0x24, 0x2a, 0x09,
+
208 0x6a, 0x0e, 0x1d, 0x2f, 0x13, 0x24, 0x8e, 0x00, 0x73, 0x0e, 0x09, 0x2f, 0x11, 0x24, 0xa5, 0x01, 0x41, 0x0e, 0x11,
+
209 0x24, 0x76, 0x32, 0x10, 0x24, 0x12, 0x25, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa9, 0x0d, 0x68, 0x0e,
+
210 0x10, 0x24, 0x04, 0x27, 0x13, 0x24, 0x73, 0x20, 0x03, 0x22, 0x13, 0x24, 0x14, 0x04, 0x4b, 0x0e, 0x11, 0x24, 0x15,
+
211 0x2c, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xae, 0x08, 0x69, 0x0e, 0x08, 0x2f, 0xa1, 0x35, 0x71, 0x0e,
+
212 0x11, 0x24, 0x8b, 0x2b, 0x10, 0x24, 0x07, 0x35, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x91, 0x34, 0x59, 0x0e, 0x11,
+
213 0x24, 0x7b, 0x19, 0x10, 0x24, 0x50, 0x59, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x62, 0x32, 0x42, 0x0e, 0x22, 0x2f,
+
214 0xa2, 0x32, 0x5a, 0x0e, 0x1b, 0x2f, 0x12, 0x24, 0x0b, 0x08, 0x6a, 0x0e, 0x0e, 0x2f, 0xa3, 0x34, 0x43, 0x0e, 0x10,
+
215 0x24, 0x28, 0x2b, 0x13, 0x24, 0x20, 0x23, 0x03, 0x22, 0x13, 0x24, 0x8d, 0x01, 0x4b, 0x0e, 0x11, 0x24, 0x5c, 0x21,
+
216 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x31, 0x36, 0x59, 0x0e, 0x11, 0x24, 0x43, 0x25, 0x10, 0x24, 0xfa, 0x49, 0x08,
+
217 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xc7, 0x2a, 0x80, 0x2e, 0xd7, 0xb4, 0x40, 0x36, 0x58, 0x0e, 0x09, 0x2f,
+
218 0x11, 0x24, 0x9e, 0x08, 0x69, 0x0e, 0x11, 0x24, 0xe3, 0x54, 0x10, 0x24, 0x73, 0x22, 0x08, 0x22, 0x80, 0x2e, 0xd7,
+
219 0xb4, 0x10, 0x24, 0x38, 0x01, 0xc8, 0x0f, 0x10, 0x2f, 0x11, 0x24, 0x11, 0x08, 0x69, 0x0e, 0x11, 0x24, 0x6e, 0x48,
+
220 0x10, 0x24, 0x2b, 0x28, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0xc1, 0x0a, 0x43, 0x0e, 0x10, 0x24, 0x0f, 0x23, 0x08,
+
221 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xd0, 0x1a, 0x80, 0x2e, 0xd7, 0xb4, 0xe2, 0x33, 0x5a, 0x0e, 0x77, 0x2f,
+
222 0x12, 0x24, 0x0c, 0x08, 0x6a, 0x0e, 0x2a, 0x2f, 0x12, 0x24, 0xc5, 0x00, 0x4a, 0x0e, 0x08, 0x2f, 0x11, 0x36, 0x59,
+
223 0x0e, 0x11, 0x24, 0xfd, 0x18, 0x10, 0x24, 0x75, 0x58, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xc2, 0x34, 0x5a, 0x0e,
+
224 0x0d, 0x2f, 0x11, 0x24, 0x36, 0x08, 0x69, 0x0e, 0x11, 0x24, 0x08, 0x58, 0x13, 0x24, 0x3b, 0x54, 0x4b, 0x22, 0x01,
+
225 0xa2, 0x10, 0x24, 0xc6, 0x52, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xb3, 0x36, 0x4b, 0x0e, 0x11, 0x24, 0x0e, 0x24,
+
226 0x13, 0x24, 0x7b, 0x50, 0x59, 0x22, 0x0e, 0xa2, 0x10, 0x24, 0xf7, 0x56, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xc2,
+
227 0x35, 0x5a, 0x0e, 0x12, 0x2f, 0x01, 0xa2, 0x0c, 0x2f, 0x84, 0xa3, 0x10, 0x24, 0xd4, 0x58, 0x13, 0x24, 0x76, 0x56,
+
228 0x03, 0x22, 0x73, 0x36, 0x4b, 0x0e, 0x11, 0x24, 0xeb, 0x52, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x87,
+
229 0x16, 0x80, 0x2e, 0xd7, 0xb4, 0xb0, 0x6f, 0x13, 0x24, 0x02, 0xfd, 0x03, 0x0e, 0x29, 0x2f, 0x84, 0xa3, 0xc0, 0x6f,
+
230 0x09, 0x2f, 0x11, 0x24, 0xe4, 0x0a, 0x41, 0x0e, 0x11, 0x24, 0x5d, 0x44, 0x10, 0x24, 0x2f, 0x5a, 0x08, 0x22, 0x80,
+
231 0x2e, 0xd7, 0xb4, 0x13, 0x24, 0x96, 0x0c, 0x43, 0x0e, 0x0e, 0x2f, 0x40, 0x33, 0x48, 0x0e, 0x10, 0x24, 0xf2, 0x18,
+
232 0x13, 0x24, 0x31, 0x49, 0x03, 0x22, 0x13, 0x24, 0x99, 0x00, 0x4b, 0x0e, 0x11, 0x24, 0xab, 0x18, 0x01, 0x22, 0x80,
+
233 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xc6, 0x07, 0x69, 0x0e, 0x11, 0x24, 0xb0, 0x49, 0x10, 0x24, 0xbf, 0x17, 0x08, 0x22,
+
234 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x03, 0x15, 0x80, 0x2e, 0xd7, 0xb4, 0xb0, 0x32, 0x48, 0x0e, 0x57, 0x2f, 0xa0,
+
235 0x37, 0x48, 0x0e, 0x13, 0x2f, 0x83, 0xa3, 0x08, 0x2f, 0x10, 0x24, 0xe0, 0x00, 0x48, 0x0e, 0x11, 0x24, 0xf6, 0x25,
+
236 0x10, 0x24, 0x75, 0x17, 0x71, 0x2c, 0x08, 0x22, 0x10, 0x24, 0xa0, 0x00, 0x48, 0x0e, 0x11, 0x24, 0x7f, 0x18, 0x10,
+
237 0x24, 0xa6, 0x13, 0x68, 0x2c, 0x08, 0x22, 0x11, 0x24, 0xf9, 0x07, 0x69, 0x0e, 0x0d, 0x2f, 0x11, 0x24, 0x10, 0x08,
+
238 0x69, 0x0e, 0x11, 0x24, 0xb1, 0x14, 0x10, 0x24, 0x8e, 0x58, 0x48, 0x22, 0x90, 0x32, 0x58, 0x0e, 0x10, 0x24, 0x6d,
+
239 0x14, 0x56, 0x2c, 0x01, 0x22, 0xc1, 0x6f, 0x10, 0x24, 0x68, 0x0c, 0x48, 0x0e, 0xb1, 0x6f, 0x0c, 0x2f, 0xcd, 0xa2,
+
240 0x10, 0x24, 0x23, 0x14, 0x13, 0x24, 0x8d, 0x42, 0x03, 0x22, 0x13, 0x24, 0x2a, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0x53,
+
241 0x12, 0x43, 0x2c, 0x08, 0x22, 0x10, 0x24, 0xcc, 0x07, 0x68, 0x0e, 0x0e, 0x2f, 0x10, 0x24, 0x08, 0xfd, 0x08, 0x0e,
+
242 0x10, 0x24, 0x08, 0x16, 0x13, 0x24, 0x83, 0x45, 0x03, 0x22, 0x13, 0x24, 0xa1, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0xa6,
+
243 0x14, 0x30, 0x2c, 0x01, 0x22, 0x10, 0x24, 0x5b, 0x01, 0x08, 0x0e, 0x11, 0x24, 0x2f, 0x12, 0x10, 0x24, 0xdd, 0x44,
+
244 0x27, 0x2c, 0x08, 0x22, 0xdb, 0xa2, 0x0f, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xb2, 0x0b, 0x48, 0x0e, 0x11, 0x24, 0x21,
+
245 0x55, 0x10, 0x24, 0xc8, 0x14, 0x48, 0x22, 0x10, 0x24, 0x4c, 0x08, 0x68, 0x0e, 0x10, 0x24, 0xe4, 0x57, 0x15, 0x2c,
+
246 0x01, 0x22, 0x44, 0xa2, 0x0f, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xcb, 0x0b, 0x48, 0x0e, 0x11, 0x24, 0x09, 0x58, 0x10,
+
247 0x24, 0xe4, 0x10, 0x48, 0x22, 0x10, 0x24, 0x4d, 0x08, 0x68, 0x0e, 0x10, 0x24, 0x1a, 0x12, 0x03, 0x2c, 0x01, 0x22,
+
248 0x10, 0x24, 0x0c, 0x10, 0xfb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0xa3, 0x32, 0xc3, 0x00, 0x60, 0x51, 0xc2, 0x40, 0x81,
+
249 0x84, 0xd3, 0x7f, 0xd2, 0x42, 0xe0, 0x7f, 0x00, 0x30, 0xc4, 0x40, 0x20, 0x02, 0xc3, 0x7f, 0xd0, 0x42, 0x42, 0x3d,
+
250 0xc0, 0x40, 0x01, 0x80, 0xc0, 0x42, 0xda, 0x00, 0x93, 0x7f, 0xb1, 0x7f, 0xab, 0x7f, 0x98, 0x2e, 0xb3, 0xc0, 0x91,
+
251 0x6f, 0xf3, 0x32, 0x40, 0x42, 0x00, 0xac, 0x8b, 0x00, 0x02, 0x2f, 0xe1, 0x6f, 0x39, 0x56, 0x43, 0x42, 0xa1, 0x82,
+
252 0x91, 0x7f, 0x33, 0x33, 0x4b, 0x00, 0x81, 0x7f, 0x13, 0x3c, 0x4b, 0x00, 0x80, 0x40, 0x53, 0x34, 0xb5, 0x6f, 0x8b,
+
253 0x00, 0x0d, 0xb0, 0x43, 0x87, 0x76, 0x7f, 0xb2, 0x7f, 0x63, 0x7f, 0x65, 0x25, 0xb5, 0x6f, 0x92, 0x41, 0x63, 0x41,
+
254 0x64, 0x41, 0x44, 0x81, 0x56, 0x7f, 0x41, 0x7f, 0x00, 0x2e, 0x26, 0x40, 0x27, 0x40, 0x45, 0x41, 0xf7, 0x7f, 0xb0,
+
255 0x7f, 0x98, 0x2e, 0x67, 0xcc, 0x81, 0x6f, 0x0f, 0xa4, 0x43, 0x40, 0x72, 0x6f, 0x94, 0x6f, 0x05, 0x30, 0x01, 0x2f,
+
256 0xc0, 0xa0, 0x03, 0x2f, 0x31, 0xac, 0x07, 0x2f, 0xc0, 0xa4, 0x05, 0x2f, 0xa2, 0x00, 0xeb, 0x04, 0x80, 0x40, 0x01,
+
257 0x80, 0x43, 0x42, 0x80, 0x42, 0x41, 0x86, 0x56, 0x6f, 0x62, 0x6f, 0x41, 0x6f, 0x42, 0x82, 0x72, 0x0e, 0x83, 0x7f,
+
258 0xd5, 0x2f, 0x53, 0x32, 0x8b, 0x00, 0xa1, 0x86, 0x56, 0x25, 0xf0, 0x82, 0x82, 0x40, 0x8d, 0xb0, 0x52, 0x40, 0xde,
+
259 0x00, 0x91, 0x7f, 0xb3, 0x7f, 0x85, 0x7f, 0xb3, 0x30, 0x7b, 0x52, 0x98, 0x2e, 0x5a, 0xca, 0x1a, 0x25, 0x83, 0x6f,
+
260 0x6d, 0x82, 0xfd, 0x88, 0x50, 0x7f, 0x71, 0x7f, 0x81, 0x7f, 0x05, 0x30, 0x83, 0x30, 0x00, 0x30, 0x11, 0x41, 0x52,
+
261 0x6f, 0x25, 0x7f, 0x30, 0x7f, 0x44, 0x7f, 0x98, 0x2e, 0x0f, 0xca, 0x73, 0x6f, 0x20, 0x25, 0x90, 0x6f, 0x7d, 0x52,
+
262 0xd2, 0x42, 0x73, 0x7f, 0x12, 0x7f, 0x98, 0x2e, 0x86, 0xb7, 0x93, 0x6f, 0x11, 0x6f, 0xd2, 0x40, 0x0a, 0x18, 0x31,
+
263 0x6f, 0x0e, 0x00, 0x93, 0x7f, 0x83, 0x30, 0x44, 0x6f, 0x21, 0x6f, 0x62, 0x6f, 0x62, 0x0e, 0x4f, 0x03, 0xe1, 0x2f,
+
264 0x33, 0x52, 0x01, 0x00, 0x01, 0x30, 0x69, 0x03, 0x3a, 0x25, 0xea, 0x82, 0x92, 0x6f, 0xf0, 0x86, 0xd1, 0xbe, 0x0f,
+
265 0xb8, 0xbd, 0x84, 0x94, 0x7f, 0x05, 0x0a, 0x23, 0x7f, 0x52, 0x7f, 0x40, 0x7f, 0x31, 0x7f, 0x71, 0x7f, 0xd3, 0x30,
+
266 0x84, 0x6f, 0x55, 0x6f, 0x10, 0x41, 0x52, 0x41, 0x41, 0x6f, 0x55, 0x7f, 0x10, 0x7f, 0x04, 0x7f, 0x98, 0x2e, 0x0f,
+
267 0xca, 0x11, 0x6f, 0x20, 0x25, 0x98, 0x2e, 0xfe, 0xc9, 0x31, 0x6f, 0x04, 0x6f, 0x50, 0x42, 0x31, 0x7f, 0xd3, 0x30,
+
268 0x21, 0x6f, 0x61, 0x0e, 0xea, 0x2f, 0xb1, 0x6f, 0x41, 0x84, 0x32, 0x25, 0x90, 0x40, 0x84, 0x40, 0x71, 0x6f, 0xb4,
+
269 0x7f, 0x72, 0x7f, 0x40, 0x7f, 0x33, 0x7f, 0x98, 0x2e, 0xb3, 0xc0, 0x53, 0x6f, 0xb1, 0x32, 0x99, 0x00, 0x83, 0xb9,
+
270 0x41, 0x6f, 0x4b, 0x00, 0xb0, 0x6f, 0x03, 0x30, 0xc3, 0x02, 0x84, 0x40, 0xb2, 0x7f, 0xa1, 0x84, 0x0d, 0xb1, 0x52,
+
271 0x7f, 0x56, 0x01, 0x74, 0x6f, 0x30, 0x6f, 0x92, 0x6f, 0x43, 0x8b, 0x03, 0x43, 0x01, 0x42, 0x95, 0x7f, 0xbd, 0x86,
+
272 0x51, 0x41, 0x41, 0x7f, 0x75, 0x7f, 0x00, 0x2e, 0xd1, 0x40, 0x42, 0x41, 0x32, 0x7f, 0x23, 0x7f, 0x98, 0x2e, 0x74,
+
273 0xc0, 0x41, 0x6f, 0xc8, 0x00, 0x90, 0x6f, 0x01, 0x30, 0x75, 0x6f, 0x32, 0x6f, 0x03, 0x42, 0x91, 0x02, 0x23, 0x6f,
+
274 0x61, 0x6f, 0x59, 0x0e, 0x62, 0x43, 0x95, 0x7f, 0xe7, 0x2f, 0xb2, 0x6f, 0x51, 0x6f, 0x82, 0x40, 0x8d, 0xb0, 0x8e,
+
275 0x00, 0xfd, 0x8a, 0xb2, 0x7f, 0x02, 0x30, 0x79, 0x52, 0x05, 0x25, 0x03, 0x30, 0x54, 0x40, 0xec, 0x01, 0x16, 0x40,
+
276 0x43, 0x89, 0xc7, 0x41, 0x37, 0x18, 0x3d, 0x8b, 0x96, 0x00, 0x44, 0x0e, 0xdf, 0x02, 0xf4, 0x2f, 0x09, 0x52, 0x51,
+
277 0x00, 0x02, 0x30, 0x9a, 0x02, 0xb5, 0x6f, 0x45, 0x87, 0x1b, 0xba, 0x25, 0xbc, 0x51, 0x6f, 0x4d, 0x8b, 0x7a, 0x82,
+
278 0xc6, 0x40, 0x20, 0x0a, 0x30, 0x00, 0xd0, 0x42, 0x2b, 0xb5, 0xc0, 0x40, 0x82, 0x02, 0x40, 0x34, 0x08, 0x00, 0xd2,
+
279 0x42, 0xb0, 0x7f, 0x75, 0x7f, 0x93, 0x7f, 0x00, 0x2e, 0xb5, 0x6f, 0xe2, 0x6f, 0x63, 0x41, 0x64, 0x41, 0x44, 0x8f,
+
280 0x82, 0x40, 0xe6, 0x41, 0xc0, 0x41, 0xc4, 0x8f, 0x45, 0x41, 0xf0, 0x7f, 0xb7, 0x7f, 0x61, 0x7f, 0x98, 0x2e, 0x67,
+
281 0xcc, 0x00, 0x18, 0x09, 0x52, 0x71, 0x00, 0x03, 0x30, 0xbb, 0x02, 0x1b, 0xba, 0x93, 0x6f, 0x25, 0xbc, 0x61, 0x6f,
+
282 0xc5, 0x40, 0x42, 0x82, 0x20, 0x0a, 0x28, 0x00, 0xd0, 0x42, 0x2b, 0xb9, 0xc0, 0x40, 0x82, 0x02, 0xd2, 0x42, 0x93,
+
283 0x7f, 0x00, 0x2e, 0x72, 0x6f, 0x5a, 0x0e, 0xd9, 0x2f, 0xb1, 0x6f, 0xf3, 0x3c, 0xcb, 0x00, 0xda, 0x82, 0xc3, 0x40,
+
284 0x41, 0x40, 0x59, 0x0e, 0x50, 0x2f, 0xe1, 0x6f, 0xe3, 0x32, 0xcb, 0x00, 0xb3, 0x7f, 0x22, 0x30, 0xc0, 0x40, 0x01,
+
285 0x80, 0xc0, 0x42, 0x02, 0xa2, 0x30, 0x2f, 0xc2, 0x42, 0x98, 0x2e, 0x83, 0xb1, 0xe1, 0x6f, 0xb3, 0x35, 0xcb, 0x00,
+
286 0x24, 0x3d, 0xc2, 0x40, 0xdc, 0x00, 0x84, 0x40, 0x00, 0x91, 0x93, 0x7f, 0x02, 0x2f, 0x00, 0x2e, 0x06, 0x2c, 0x0c,
+
287 0xb8, 0x30, 0x25, 0x00, 0x33, 0x48, 0x00, 0x98, 0x2e, 0xf6, 0xb6, 0x91, 0x6f, 0x90, 0x7f, 0x00, 0x2e, 0x44, 0x40,
+
288 0x20, 0x1a, 0x15, 0x2f, 0xd3, 0x6f, 0xc1, 0x6f, 0xc3, 0x40, 0x35, 0x5a, 0x42, 0x40, 0xd3, 0x7e, 0x08, 0xbc, 0x25,
+
289 0x09, 0xe2, 0x7e, 0xc4, 0x0a, 0x42, 0x82, 0xf3, 0x7e, 0xd1, 0x7f, 0x34, 0x30, 0x83, 0x6f, 0x82, 0x30, 0x31, 0x30,
+
290 0x98, 0x2e, 0xb3, 0x00, 0xd1, 0x6f, 0x93, 0x6f, 0x43, 0x42, 0xf0, 0x32, 0xb1, 0x6f, 0x41, 0x82, 0xe2, 0x6f, 0x43,
+
291 0x40, 0xc1, 0x86, 0xc2, 0xa2, 0x43, 0x42, 0x03, 0x30, 0x02, 0x2f, 0x90, 0x00, 0x00, 0x2e, 0x83, 0x42, 0x61, 0x88,
+
292 0x42, 0x40, 0x8d, 0xb0, 0x26, 0x00, 0x98, 0x2e, 0xd9, 0x03, 0x1c, 0x83, 0x00, 0x2e, 0x43, 0x42, 0x00, 0x2e, 0xab,
+
293 0x6f, 0xa0, 0x5e, 0xb8, 0x2e, 0xb1, 0x35, 0x40, 0x51, 0x41, 0x01, 0x02, 0x30, 0x1a, 0x25, 0x13, 0x30, 0x40, 0x25,
+
294 0x12, 0x42, 0x45, 0x0e, 0xfc, 0x2f, 0x65, 0x34, 0x28, 0x80, 0x25, 0x01, 0x13, 0x42, 0x44, 0x0e, 0xfc, 0x2f, 0x27,
+
295 0x80, 0x65, 0x56, 0x03, 0x42, 0x15, 0x80, 0xa3, 0x30, 0x03, 0x42, 0x04, 0x80, 0x4d, 0x56, 0x7f, 0x58, 0x13, 0x42,
+
296 0xd4, 0x7e, 0xc2, 0x7e, 0xf2, 0x7e, 0x6c, 0x8c, 0x81, 0x56, 0x83, 0x58, 0xe3, 0x7e, 0x04, 0x7f, 0x71, 0x8a, 0x97,
+
297 0x41, 0x17, 0x42, 0x75, 0x0e, 0xfb, 0x2f, 0x85, 0x5c, 0x87, 0x5e, 0x16, 0x7f, 0x36, 0x7f, 0x27, 0x7f, 0x00, 0x2e,
+
298 0x89, 0x5c, 0x8b, 0x5e, 0x46, 0x7f, 0x57, 0x7f, 0x76, 0x8c, 0x57, 0x41, 0x17, 0x42, 0x6e, 0x0e, 0xfb, 0x2f, 0x8d,
+
299 0x5a, 0x8f, 0x5e, 0x65, 0x7f, 0x87, 0x7f, 0x72, 0x7f, 0x00, 0x2e, 0x91, 0x5a, 0x93, 0x5e, 0x95, 0x7f, 0xa7, 0x7f,
+
300 0x7b, 0x8a, 0x97, 0x41, 0x17, 0x42, 0x75, 0x0e, 0xfb, 0x2f, 0x7f, 0x5c, 0xb2, 0x7f, 0xc6, 0x7f, 0xd3, 0x7f, 0xe2,
+
301 0x7f, 0xf4, 0x7f, 0x40, 0x82, 0x52, 0x41, 0x12, 0x42, 0x69, 0x0e, 0xfb, 0x2f, 0xc0, 0x5e, 0xb8, 0x2e, 0x03, 0x2e,
+
302 0x2d, 0x02, 0x9f, 0xbc, 0x9f, 0xb8, 0x20, 0x50, 0x40, 0xb2, 0x14, 0x2f, 0x10, 0x25, 0x01, 0x2e, 0x8d, 0x00, 0x00,
+
303 0x90, 0x0b, 0x2f, 0x97, 0x50, 0xf1, 0x7f, 0xeb, 0x7f, 0x98, 0x2e, 0x83, 0xb6, 0x01, 0x2e, 0x8d, 0x00, 0x01, 0x80,
+
304 0x21, 0x2e, 0x8d, 0x00, 0xf1, 0x6f, 0xeb, 0x6f, 0xe0, 0x5f, 0x97, 0x50, 0x80, 0x2e, 0xda, 0xb4, 0x00, 0x30, 0x21,
+
305 0x2e, 0x8d, 0x00, 0xe0, 0x5f, 0xb8, 0x2e, 0x41, 0x25, 0x42, 0x8a, 0x50, 0x50, 0x99, 0x52, 0x81, 0x80, 0x99, 0x09,
+
306 0xf5, 0x7f, 0x52, 0x25, 0x07, 0x52, 0x03, 0x8e, 0xd9, 0x08, 0x02, 0x40, 0x03, 0x81, 0x44, 0x83, 0x6c, 0xbb, 0xda,
+
307 0x0e, 0xe7, 0x7f, 0xdb, 0x7f, 0x20, 0x2f, 0x02, 0x41, 0x32, 0x1a, 0x1d, 0x2f, 0x42, 0x85, 0x00, 0x2e, 0x82, 0x40,
+
308 0xda, 0x0e, 0x03, 0x30, 0x05, 0x2f, 0xf1, 0x6f, 0x06, 0x30, 0x42, 0x40, 0x81, 0x84, 0x18, 0x2c, 0x42, 0x42, 0xbf,
+
309 0x85, 0x82, 0x00, 0x41, 0x40, 0x86, 0x40, 0x81, 0x8d, 0x86, 0x42, 0x20, 0x25, 0x13, 0x30, 0x06, 0x30, 0x97, 0x40,
+
310 0x81, 0x8d, 0xf9, 0x0f, 0x09, 0x2f, 0x85, 0xa3, 0xf9, 0x2f, 0x03, 0x30, 0x06, 0x2c, 0x06, 0x30, 0x9b, 0x52, 0xd9,
+
311 0x0e, 0x13, 0x30, 0x01, 0x30, 0xd9, 0x22, 0xc0, 0xb2, 0x12, 0x83, 0xc1, 0x7f, 0x03, 0x30, 0xb4, 0x7f, 0x06, 0x2f,
+
312 0x51, 0x30, 0x70, 0x25, 0x98, 0x2e, 0xe3, 0x03, 0xff, 0x81, 0x00, 0x2e, 0x03, 0x42, 0x43, 0x8b, 0xe0, 0x6f, 0xf1,
+
313 0x6f, 0x00, 0x40, 0x41, 0x40, 0xc8, 0x0f, 0x37, 0x2f, 0x00, 0x41, 0x80, 0xa7, 0x3c, 0x2f, 0x01, 0x83, 0x47, 0x8e,
+
314 0x42, 0x40, 0xfa, 0x01, 0x81, 0x84, 0x08, 0x89, 0x45, 0x41, 0x55, 0x0e, 0xc6, 0x43, 0x42, 0x42, 0xf4, 0x7f, 0x00,
+
315 0x2f, 0x43, 0x42, 0x51, 0x82, 0x70, 0x1a, 0x41, 0x40, 0x06, 0x2f, 0xc3, 0x6f, 0x41, 0x82, 0xc1, 0x42, 0xcd, 0x0e,
+
316 0x26, 0x2f, 0xc5, 0x42, 0x25, 0x2d, 0x7f, 0x82, 0x51, 0xbb, 0xa5, 0x00, 0xce, 0x0f, 0x12, 0x2f, 0x14, 0x30, 0x05,
+
317 0x30, 0xf7, 0x6f, 0x06, 0x30, 0x05, 0x2c, 0xe0, 0x7f, 0xd0, 0x41, 0x05, 0x1a, 0x23, 0x22, 0xb0, 0x01, 0x7a, 0x0e,
+
318 0xf9, 0x2f, 0x71, 0x0f, 0xe0, 0x6f, 0x28, 0x22, 0x41, 0x8b, 0x71, 0x22, 0x45, 0xa7, 0xee, 0x2f, 0xb3, 0x6f, 0xc2,
+
319 0x6f, 0xc0, 0x42, 0x81, 0x42, 0x08, 0x2d, 0x04, 0x25, 0xc4, 0x6f, 0x98, 0x2e, 0xea, 0x03, 0x00, 0x2e, 0x40, 0x41,
+
320 0x00, 0x43, 0x00, 0x30, 0xdb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0x10, 0x50, 0x03, 0x40, 0x19, 0x18, 0x37, 0x56, 0x19,
+
321 0x05, 0x36, 0x25, 0xf7, 0x7f, 0x4a, 0x17, 0x54, 0x18, 0xec, 0x18, 0x09, 0x17, 0x01, 0x30, 0x0c, 0x07, 0xe2, 0x18,
+
322 0xde, 0x00, 0xf2, 0x6f, 0x97, 0x02, 0x33, 0x58, 0xdc, 0x00, 0x91, 0x02, 0xbf, 0xb8, 0x21, 0xbd, 0x8a, 0x0a, 0xc0,
+
323 0x2e, 0x02, 0x42, 0xf0, 0x5f, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
324 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
325 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
326 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
327 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
328 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
329 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
330 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
331 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
332 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
333 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x01, 0x2e, 0x5d, 0xf7, 0x08, 0xbc, 0x80, 0xac, 0x0e, 0xbb, 0x02, 0x2f,
+
334 0x00, 0x30, 0x41, 0x04, 0x82, 0x06, 0xc0, 0xa4, 0x00, 0x30, 0x11, 0x2f, 0x40, 0xa9, 0x03, 0x2f, 0x40, 0x91, 0x0d,
+
335 0x2f, 0x00, 0xa7, 0x0b, 0x2f, 0x80, 0xb3, 0x33, 0x58, 0x02, 0x2f, 0x90, 0xa1, 0x26, 0x13, 0x20, 0x23, 0x80, 0x90,
+
336 0x10, 0x30, 0x01, 0x2f, 0xcc, 0x0e, 0x00, 0x2f, 0x00, 0x30, 0xb8, 0x2e, 0x35, 0x50, 0x18, 0x08, 0x08, 0xbc, 0x88,
+
337 0xb6, 0x0d, 0x17, 0xc6, 0xbd, 0x56, 0xbc, 0x37, 0x58, 0xda, 0xba, 0x04, 0x01, 0x1d, 0x0a, 0x10, 0x50, 0x05, 0x30,
+
338 0x32, 0x25, 0x45, 0x03, 0xfb, 0x7f, 0xf6, 0x30, 0x21, 0x25, 0x98, 0x2e, 0x37, 0xca, 0x16, 0xb5, 0x9a, 0xbc, 0x06,
+
339 0xb8, 0x80, 0xa8, 0x41, 0x0a, 0x0e, 0x2f, 0x80, 0x90, 0x02, 0x2f, 0x39, 0x50, 0x48, 0x0f, 0x09, 0x2f, 0xbf, 0xa0,
+
340 0x04, 0x2f, 0xbf, 0x90, 0x06, 0x2f, 0x37, 0x54, 0xca, 0x0f, 0x03, 0x2f, 0x00, 0x2e, 0x02, 0x2c, 0x37, 0x52, 0x39,
+
341 0x52, 0xf2, 0x33, 0x98, 0x2e, 0xd9, 0xc0, 0xfb, 0x6f, 0xf1, 0x37, 0xc0, 0x2e, 0x01, 0x08, 0xf0, 0x5f, 0x41, 0x56,
+
342 0x3b, 0x54, 0xd0, 0x40, 0xc4, 0x40, 0x0b, 0x2e, 0xfd, 0xf3, 0x41, 0x52, 0x90, 0x42, 0x94, 0x42, 0x95, 0x42, 0x05,
+
343 0x30, 0x43, 0x50, 0x0f, 0x88, 0x06, 0x40, 0x04, 0x41, 0x96, 0x42, 0xc5, 0x42, 0x48, 0xbe, 0x73, 0x30, 0x0d, 0x2e,
+
344 0x88, 0x00, 0x4f, 0xba, 0x84, 0x42, 0x03, 0x42, 0x81, 0xb3, 0x02, 0x2f, 0x2b, 0x2e, 0x6f, 0xf5, 0x06, 0x2d, 0x05,
+
345 0x2e, 0x77, 0xf7, 0x3f, 0x56, 0x93, 0x08, 0x25, 0x2e, 0x77, 0xf7, 0x3d, 0x54, 0x25, 0x2e, 0xc2, 0xf5, 0x07, 0x2e,
+
346 0xfd, 0xf3, 0x42, 0x30, 0xb4, 0x33, 0xda, 0x0a, 0x4c, 0x00, 0x27, 0x2e, 0xfd, 0xf3, 0x43, 0x40, 0xd4, 0x3f, 0xdc,
+
347 0x08, 0x43, 0x42, 0x00, 0x2e, 0x00, 0x2e, 0x43, 0x40, 0x24, 0x30, 0xdc, 0x0a, 0x43, 0x42, 0x04, 0x80, 0x03, 0x2e,
+
348 0xfd, 0xf3, 0x4a, 0x0a, 0x23, 0x2e, 0xfd, 0xf3, 0x61, 0x34, 0xc0, 0x2e, 0x01, 0x42, 0x00, 0x2e, 0x60, 0x50, 0x1a,
+
349 0x25, 0x7a, 0x86, 0xe0, 0x7f, 0xf3, 0x7f, 0x03, 0x25, 0x45, 0x52, 0x41, 0x84, 0xdb, 0x7f, 0x33, 0x30, 0x98, 0x2e,
+
350 0x16, 0xc2, 0x1a, 0x25, 0x7d, 0x82, 0xf0, 0x6f, 0xe2, 0x6f, 0x32, 0x25, 0x16, 0x40, 0x94, 0x40, 0x26, 0x01, 0x85,
+
351 0x40, 0x8e, 0x17, 0xc4, 0x42, 0x6e, 0x03, 0x95, 0x42, 0x41, 0x0e, 0xf4, 0x2f, 0xdb, 0x6f, 0xa0, 0x5f, 0xb8, 0x2e,
+
352 0xb0, 0x51, 0xfb, 0x7f, 0x98, 0x2e, 0xe8, 0x0d, 0x5a, 0x25, 0x98, 0x2e, 0x0f, 0x0e, 0x4f, 0x58, 0x32, 0x87, 0xc4,
+
353 0x7f, 0x65, 0x89, 0x6b, 0x8d, 0x47, 0x5a, 0x65, 0x7f, 0xe1, 0x7f, 0x83, 0x7f, 0xa6, 0x7f, 0x74, 0x7f, 0xd0, 0x7f,
+
354 0xb6, 0x7f, 0x94, 0x7f, 0x17, 0x30, 0x49, 0x52, 0x4b, 0x54, 0x51, 0x7f, 0x00, 0x2e, 0x85, 0x6f, 0x42, 0x7f, 0x00,
+
355 0x2e, 0x51, 0x41, 0x45, 0x81, 0x42, 0x41, 0x13, 0x40, 0x3b, 0x8a, 0x00, 0x40, 0x4b, 0x04, 0xd0, 0x06, 0xc0, 0xac,
+
356 0x85, 0x7f, 0x02, 0x2f, 0x02, 0x30, 0x51, 0x04, 0xd3, 0x06, 0x41, 0x84, 0x05, 0x30, 0x5d, 0x02, 0xc9, 0x16, 0xdf,
+
357 0x08, 0xd3, 0x00, 0x8d, 0x02, 0xaf, 0xbc, 0xb1, 0xb9, 0x59, 0x0a, 0x65, 0x6f, 0x11, 0x43, 0xa1, 0xb4, 0x52, 0x41,
+
358 0x53, 0x41, 0x01, 0x43, 0x34, 0x7f, 0x65, 0x7f, 0x26, 0x31, 0xe5, 0x6f, 0xd4, 0x6f, 0x98, 0x2e, 0x37, 0xca, 0x32,
+
359 0x6f, 0x75, 0x6f, 0x83, 0x40, 0x42, 0x41, 0x23, 0x7f, 0x12, 0x7f, 0xf6, 0x30, 0x40, 0x25, 0x51, 0x25, 0x98, 0x2e,
+
360 0x37, 0xca, 0x14, 0x6f, 0x20, 0x05, 0x70, 0x6f, 0x25, 0x6f, 0x69, 0x07, 0xa2, 0x6f, 0x31, 0x6f, 0x0b, 0x30, 0x04,
+
361 0x42, 0x9b, 0x42, 0x8b, 0x42, 0x55, 0x42, 0x32, 0x7f, 0x40, 0xa9, 0xc3, 0x6f, 0x71, 0x7f, 0x02, 0x30, 0xd0, 0x40,
+
362 0xc3, 0x7f, 0x03, 0x2f, 0x40, 0x91, 0x15, 0x2f, 0x00, 0xa7, 0x13, 0x2f, 0x00, 0xa4, 0x11, 0x2f, 0x84, 0xbd, 0x98,
+
363 0x2e, 0x79, 0xca, 0x55, 0x6f, 0x37, 0x54, 0x54, 0x41, 0x82, 0x00, 0xf3, 0x3f, 0x45, 0x41, 0xcb, 0x02, 0xf6, 0x30,
+
364 0x98, 0x2e, 0x37, 0xca, 0x35, 0x6f, 0xa4, 0x6f, 0x41, 0x43, 0x03, 0x2c, 0x00, 0x43, 0xa4, 0x6f, 0x35, 0x6f, 0x17,
+
365 0x30, 0x42, 0x6f, 0x51, 0x6f, 0x93, 0x40, 0x42, 0x82, 0x00, 0x41, 0xc3, 0x00, 0x03, 0x43, 0x51, 0x7f, 0x00, 0x2e,
+
366 0x94, 0x40, 0x41, 0x41, 0x4c, 0x02, 0xc4, 0x6f, 0x55, 0x56, 0x63, 0x0e, 0x74, 0x6f, 0x51, 0x43, 0xa5, 0x7f, 0x8a,
+
367 0x2f, 0x09, 0x2e, 0x88, 0x00, 0x01, 0xb3, 0x21, 0x2f, 0x4f, 0x58, 0x90, 0x6f, 0x13, 0x41, 0xb6, 0x6f, 0xe4, 0x7f,
+
368 0x00, 0x2e, 0x91, 0x41, 0x14, 0x40, 0x92, 0x41, 0x15, 0x40, 0x17, 0x2e, 0x6f, 0xf5, 0xb6, 0x7f, 0xd0, 0x7f, 0xcb,
+
369 0x7f, 0x98, 0x2e, 0x00, 0x0c, 0x07, 0x15, 0xc2, 0x6f, 0x14, 0x0b, 0x29, 0x2e, 0x6f, 0xf5, 0xc3, 0xa3, 0xc1, 0x8f,
+
370 0xe4, 0x6f, 0xd0, 0x6f, 0xe6, 0x2f, 0x14, 0x30, 0x05, 0x2e, 0x6f, 0xf5, 0x14, 0x0b, 0x29, 0x2e, 0x6f, 0xf5, 0x18,
+
371 0x2d, 0x51, 0x56, 0x04, 0x32, 0xb5, 0x6f, 0x1c, 0x01, 0x51, 0x41, 0x52, 0x41, 0xc3, 0x40, 0xb5, 0x7f, 0xe4, 0x7f,
+
372 0x98, 0x2e, 0x1f, 0x0c, 0xe4, 0x6f, 0x21, 0x87, 0x00, 0x43, 0x04, 0x32, 0x53, 0x54, 0x5a, 0x0e, 0xef, 0x2f, 0x4d,
+
373 0x54, 0x09, 0x2e, 0x77, 0xf7, 0x22, 0x0b, 0x29, 0x2e, 0x77, 0xf7, 0xfb, 0x6f, 0x50, 0x5e, 0xb8, 0x2e, 0x10, 0x50,
+
374 0x01, 0x2e, 0x84, 0x00, 0x00, 0xb2, 0xfb, 0x7f, 0x51, 0x2f, 0x01, 0xb2, 0x48, 0x2f, 0x02, 0xb2, 0x42, 0x2f, 0x03,
+
375 0x90, 0x56, 0x2f, 0x5b, 0x52, 0x79, 0x80, 0x42, 0x40, 0x81, 0x84, 0x00, 0x40, 0x42, 0x42, 0x98, 0x2e, 0x93, 0x0c,
+
376 0x5d, 0x54, 0x5b, 0x50, 0xa1, 0x40, 0x98, 0xbd, 0x82, 0x40, 0x3e, 0x82, 0xda, 0x0a, 0x44, 0x40, 0x8b, 0x16, 0xe3,
+
377 0x00, 0x53, 0x42, 0x00, 0x2e, 0x43, 0x40, 0x9a, 0x02, 0x52, 0x42, 0x00, 0x2e, 0x41, 0x40, 0x4d, 0x54, 0x4a, 0x0e,
+
378 0x3a, 0x2f, 0x3a, 0x82, 0x00, 0x30, 0x41, 0x40, 0x21, 0x2e, 0x6c, 0x0f, 0x40, 0xb2, 0x0a, 0x2f, 0x98, 0x2e, 0xb1,
+
379 0x0c, 0x98, 0x2e, 0x45, 0x0e, 0x98, 0x2e, 0x5b, 0x0e, 0xfb, 0x6f, 0xf0, 0x5f, 0x00, 0x30, 0x80, 0x2e, 0xba, 0x03,
+
380 0x61, 0x52, 0x57, 0x54, 0x42, 0x42, 0x4f, 0x84, 0x73, 0x30, 0x5f, 0x52, 0x83, 0x42, 0x1b, 0x30, 0x6b, 0x42, 0x23,
+
381 0x30, 0x27, 0x2e, 0x87, 0x00, 0x37, 0x2e, 0x84, 0x00, 0x21, 0x2e, 0x86, 0x00, 0x7a, 0x84, 0x17, 0x2c, 0x42, 0x42,
+
382 0x30, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x12, 0x2d, 0x21, 0x30, 0x00, 0x30, 0x23, 0x2e, 0x84, 0x00, 0x21, 0x2e, 0x7b,
+
383 0xf7, 0x0b, 0x2d, 0x17, 0x30, 0x98, 0x2e, 0x51, 0x0c, 0x59, 0x50, 0x0c, 0x82, 0x72, 0x30, 0x2f, 0x2e, 0x84, 0x00,
+
384 0x25, 0x2e, 0x7b, 0xf7, 0x40, 0x42, 0x00, 0x2e, 0xfb, 0x6f, 0xf0, 0x5f, 0xb8, 0x2e, 0x70, 0x50, 0x0a, 0x25, 0x39,
+
385 0x86, 0xfb, 0x7f, 0xe1, 0x32, 0x62, 0x30, 0x98, 0x2e, 0xc2, 0xc4, 0x35, 0x56, 0xa5, 0x6f, 0xab, 0x08, 0x91, 0x6f,
+
386 0x4b, 0x08, 0x63, 0x56, 0xc4, 0x6f, 0x23, 0x09, 0x4d, 0xba, 0x93, 0xbc, 0x8c, 0x0b, 0xd1, 0x6f, 0x0b, 0x09, 0x4f,
+
387 0x52, 0x65, 0x5e, 0x56, 0x42, 0xaf, 0x09, 0x4d, 0xba, 0x23, 0xbd, 0x94, 0x0a, 0xe5, 0x6f, 0x68, 0xbb, 0xeb, 0x08,
+
388 0xbd, 0xb9, 0x63, 0xbe, 0xfb, 0x6f, 0x52, 0x42, 0xe3, 0x0a, 0xc0, 0x2e, 0x43, 0x42, 0x90, 0x5f, 0x55, 0x50, 0x03,
+
389 0x2e, 0x25, 0xf3, 0x13, 0x40, 0x00, 0x40, 0x9b, 0xbc, 0x9b, 0xb4, 0x08, 0xbd, 0xb8, 0xb9, 0x98, 0xbc, 0xda, 0x0a,
+
390 0x08, 0xb6, 0x89, 0x16, 0xc0, 0x2e, 0x19, 0x00, 0x62, 0x02, 0x10, 0x50, 0xfb, 0x7f, 0x98, 0x2e, 0x81, 0x0d, 0x01,
+
391 0x2e, 0x84, 0x00, 0x31, 0x30, 0x08, 0x04, 0xfb, 0x6f, 0x01, 0x30, 0xf0, 0x5f, 0x23, 0x2e, 0x86, 0x00, 0x21, 0x2e,
+
392 0x87, 0x00, 0xb8, 0x2e, 0x01, 0x2e, 0x87, 0x00, 0x03, 0x2e, 0x86, 0x00, 0x48, 0x0e, 0x01, 0x2f, 0x80, 0x2e, 0x1f,
+
393 0x0e, 0xb8, 0x2e, 0x67, 0x50, 0x21, 0x34, 0x01, 0x42, 0x82, 0x30, 0xc1, 0x32, 0x25, 0x2e, 0x62, 0xf5, 0x01, 0x00,
+
394 0x22, 0x30, 0x01, 0x40, 0x4a, 0x0a, 0x01, 0x42, 0xb8, 0x2e, 0x67, 0x54, 0xf0, 0x3b, 0x83, 0x40, 0xd8, 0x08, 0x69,
+
395 0x52, 0x83, 0x42, 0x00, 0x30, 0x83, 0x30, 0x50, 0x42, 0xc4, 0x32, 0x27, 0x2e, 0x64, 0xf5, 0x94, 0x00, 0x50, 0x42,
+
396 0x40, 0x42, 0xd3, 0x3f, 0x84, 0x40, 0x7d, 0x82, 0xe3, 0x08, 0x40, 0x42, 0x83, 0x42, 0xb8, 0x2e, 0x61, 0x52, 0x00,
+
397 0x30, 0x40, 0x42, 0x7c, 0x86, 0x3b, 0x52, 0x09, 0x2e, 0x57, 0x0f, 0x41, 0x54, 0xc4, 0x42, 0xd3, 0x86, 0x54, 0x40,
+
398 0x55, 0x40, 0x94, 0x42, 0x85, 0x42, 0x21, 0x2e, 0x87, 0x00, 0x42, 0x40, 0x25, 0x2e, 0xfd, 0xf3, 0xc0, 0x42, 0x7e,
+
399 0x82, 0x05, 0x2e, 0x79, 0x00, 0x80, 0xb2, 0x14, 0x2f, 0x05, 0x2e, 0x24, 0x02, 0x27, 0xbd, 0x2f, 0xb9, 0x80, 0x90,
+
400 0x02, 0x2f, 0x21, 0x2e, 0x6f, 0xf5, 0x0c, 0x2d, 0x07, 0x2e, 0x58, 0x0f, 0x14, 0x30, 0x1c, 0x09, 0x05, 0x2e, 0x77,
+
401 0xf7, 0x3f, 0x56, 0x47, 0xbe, 0x93, 0x08, 0x94, 0x0a, 0x25, 0x2e, 0x77, 0xf7, 0x6b, 0x54, 0x50, 0x42, 0x4a, 0x0e,
+
402 0xfc, 0x2f, 0xb8, 0x2e, 0x50, 0x50, 0x02, 0x30, 0x43, 0x86, 0x69, 0x50, 0xfb, 0x7f, 0xe3, 0x7f, 0xd2, 0x7f, 0xc0,
+
403 0x7f, 0xb1, 0x7f, 0x00, 0x2e, 0x41, 0x40, 0x00, 0x40, 0x48, 0x04, 0x98, 0x2e, 0x74, 0xc0, 0x1e, 0xaa, 0xd3, 0x6f,
+
404 0x14, 0x30, 0xb1, 0x6f, 0xe3, 0x22, 0xc0, 0x6f, 0x52, 0x40, 0xe4, 0x6f, 0x4c, 0x0e, 0x12, 0x42, 0xd3, 0x7f, 0xeb,
+
405 0x2f, 0x03, 0x2e, 0x6d, 0x0f, 0x40, 0x90, 0x11, 0x30, 0x03, 0x2f, 0x23, 0x2e, 0x6d, 0x0f, 0x02, 0x2c, 0x00, 0x30,
+
406 0xd0, 0x6f, 0xfb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0x40, 0x50, 0xf1, 0x7f, 0x0a, 0x25, 0x3c, 0x86, 0xeb, 0x7f, 0x41,
+
407 0x33, 0x22, 0x30, 0x98, 0x2e, 0xc2, 0xc4, 0xd3, 0x6f, 0xf4, 0x30, 0xdc, 0x09, 0x6f, 0x58, 0xc2, 0x6f, 0x94, 0x09,
+
408 0x71, 0x58, 0x6a, 0xbb, 0xdc, 0x08, 0xb4, 0xb9, 0xb1, 0xbd, 0x6d, 0x5a, 0x95, 0x08, 0x21, 0xbd, 0xf6, 0xbf, 0x77,
+
409 0x0b, 0x51, 0xbe, 0xf1, 0x6f, 0xeb, 0x6f, 0x52, 0x42, 0x54, 0x42, 0xc0, 0x2e, 0x43, 0x42, 0xc0, 0x5f, 0x50, 0x50,
+
410 0x75, 0x52, 0x93, 0x30, 0x53, 0x42, 0xfb, 0x7f, 0x7b, 0x30, 0x4b, 0x42, 0x13, 0x30, 0x42, 0x82, 0x20, 0x33, 0x43,
+
411 0x42, 0xc8, 0x00, 0x01, 0x2e, 0x80, 0x03, 0x05, 0x2e, 0x7d, 0x00, 0x19, 0x52, 0xe2, 0x7f, 0xd0, 0x7f, 0xc3, 0x7f,
+
412 0x98, 0x2e, 0xb6, 0x0e, 0xd1, 0x6f, 0x48, 0x0a, 0xd1, 0x7f, 0x3a, 0x25, 0xfb, 0x86, 0x01, 0x33, 0x12, 0x30, 0x98,
+
413 0x2e, 0xc2, 0xc4, 0xd1, 0x6f, 0x48, 0x0a, 0x40, 0xb2, 0x0d, 0x2f, 0xe0, 0x6f, 0x03, 0x2e, 0x80, 0x03, 0x53, 0x30,
+
414 0x07, 0x80, 0x27, 0x2e, 0x21, 0xf2, 0x98, 0xbc, 0x01, 0x42, 0x98, 0x2e, 0x91, 0x03, 0x00, 0x2e, 0x00, 0x2e, 0xd0,
+
415 0x2e, 0xb1, 0x6f, 0x9b, 0xb8, 0x07, 0x2e, 0x1b, 0x00, 0x19, 0x1a, 0xb1, 0x7f, 0x71, 0x30, 0x04, 0x2f, 0x23, 0x2e,
+
416 0x21, 0xf2, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0x98, 0x2e, 0x6d, 0xc0, 0x98, 0x2e, 0x5d, 0xc0, 0x98, 0x2e, 0xdf,
+
417 0x03, 0x20, 0x26, 0xc1, 0x6f, 0x02, 0x31, 0x52, 0x42, 0xab, 0x30, 0x4b, 0x42, 0x20, 0x33, 0x77, 0x56, 0xf1, 0x37,
+
418 0xc4, 0x40, 0xa2, 0x0a, 0xc2, 0x42, 0xd8, 0x00, 0x01, 0x2e, 0x5e, 0xf7, 0x41, 0x08, 0x23, 0x2e, 0x94, 0x00, 0xe3,
+
419 0x7f, 0x98, 0x2e, 0xaa, 0x01, 0xe1, 0x6f, 0x83, 0x30, 0x43, 0x42, 0x03, 0x30, 0xfb, 0x6f, 0x73, 0x50, 0x02, 0x30,
+
420 0x00, 0x2e, 0x00, 0x2e, 0x81, 0x84, 0x50, 0x0e, 0xfa, 0x2f, 0x43, 0x42, 0x11, 0x30, 0xb0, 0x5f, 0x23, 0x2e, 0x21,
+
421 0xf2, 0xb8, 0x2e, 0xc1, 0x4a, 0x00, 0x00, 0x6d, 0x57, 0x00, 0x00, 0x77, 0x8e, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff,
+
422 0xd3, 0xff, 0xff, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xee, 0xe1, 0xff, 0xff, 0x7c, 0x13, 0x00, 0x00, 0x46, 0xe6, 0xff,
+
423 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
424 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
425 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
426 0x00, 0x00, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
427 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
428 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
429 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
430 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
431 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
432 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
433 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
434 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
435 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
436 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
437 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
438 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
439 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
440 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
441 0xc1, 0xfd, 0x2d
+
442};
+
+
+
+ +

◆ bmi270_context_config_file_size

+ +
+
+ + + + +
const int bmi270_context_config_file_size = sizeof(bmi270_context_config_file)
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.js b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.js new file mode 100644 index 0000000..9a2ac6e --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.js @@ -0,0 +1,5 @@ +var external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c = +[ + [ "bmi270_context_config_file", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html#a6ddd3db541b4dfe98c640a978a268874", null ], + [ "bmi270_context_config_file_size", "external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c.html#aaed4743b4089675e78e99c4e70acee64", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.md5 b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.md5 new file mode 100644 index 0000000..ef63a1c --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.md5 @@ -0,0 +1 @@ +d6ba9685f237c2a885bbc62cbd347235 \ No newline at end of file diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.svg new file mode 100644 index 0000000..b5e1cea --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +bmi270_context.c + + +Node1 + + +bmi270_context.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl_org.svg b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl_org.svg new file mode 100644 index 0000000..f29b884 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +bmi270_context.c + + +Node1 + + +bmi270_context.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c_source.html b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c_source.html new file mode 100644 index 0000000..a102d48 --- /dev/null +++ b/docs/html/external__examples_2b00f000e_2applications_2m5stack__core__s3_2apps_2kalman__filter_2main_2bmi270__context_8c_source.html @@ -0,0 +1,554 @@ + + + + + + + +ESP-IDF Firmware: bmi270_context.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/b00f000e/applications/m5stack_core_s3/apps/kalman_filter/main/bmi270_context.c
+
+
+Go to the documentation of this file.
1
+
2/*
+
3 * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
+
4 *
+
5 * SPDX-License-Identifier: Apache-2.0
+
6 */
+
7#include <stdint.h>
+
8
+
+
9const uint8_t bmi270_context_config_file[] = {
+
10 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0x00, 0xb0, 0xc8, 0x2e, 0x00, 0x2e, 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0xc9,
+
11 0x01, 0x80, 0x2e, 0xe2, 0x00, 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0x77, 0xb0, 0x50, 0x30, 0x21, 0x2e, 0x59, 0xf5,
+
12 0x10, 0x30, 0x21, 0x2e, 0x6a, 0xf5, 0x80, 0x2e, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x01, 0x00, 0x22,
+
13 0x00, 0x76, 0x00, 0x00, 0x10, 0x00, 0x10, 0xd1, 0x00, 0xcb, 0xa7, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
14 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
15 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
16 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
17 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
18 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
19 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
20 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
21 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
22 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0xfd, 0x2d, 0x2c, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
23 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00,
+
24 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
25 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
26 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
27 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
28 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x24, 0x22, 0x00, 0x80, 0x2e, 0x48, 0x02, 0x01, 0x2e, 0x49,
+
29 0xf1, 0x0b, 0xbc, 0x10, 0x50, 0x0f, 0xb8, 0x00, 0x90, 0xfb, 0x7f, 0x07, 0x2f, 0x03, 0x2e, 0x21, 0xf2, 0x02, 0x31,
+
30 0x4a, 0x0a, 0x23, 0x2e, 0x21, 0xf2, 0x09, 0x2c, 0x00, 0x30, 0x98, 0x2e, 0x0e, 0xc7, 0x03, 0x2e, 0x21, 0xf2, 0xf2,
+
31 0x3e, 0x4a, 0x08, 0x23, 0x2e, 0x21, 0xf2, 0xfb, 0x6f, 0xf0, 0x5f, 0xb8, 0x2e, 0x13, 0x52, 0x00, 0x2e, 0x60, 0x40,
+
32 0x41, 0x40, 0x0d, 0xbc, 0x98, 0xbc, 0xc0, 0x2e, 0x01, 0x0a, 0x0f, 0xb8, 0x43, 0x86, 0x25, 0x40, 0x04, 0x40, 0xd8,
+
33 0xbe, 0x2c, 0x0b, 0x22, 0x11, 0x54, 0x42, 0x03, 0x80, 0x4b, 0x0e, 0xf6, 0x2f, 0xb8, 0x2e, 0x20, 0x50, 0xe7, 0x7f,
+
34 0xf6, 0x7f, 0x46, 0x30, 0x0f, 0x2e, 0xa4, 0xf1, 0xbe, 0x09, 0x80, 0xb3, 0x06, 0x2f, 0x0d, 0x2e, 0x84, 0x00, 0x84,
+
35 0xaf, 0x02, 0x2f, 0x16, 0x30, 0x2d, 0x2e, 0x7b, 0x00, 0x86, 0x30, 0x2d, 0x2e, 0x60, 0xf5, 0xf6, 0x6f, 0xe7, 0x6f,
+
36 0xe0, 0x5f, 0xc8, 0x2e, 0x80, 0x2e, 0xfb, 0x00, 0x00, 0x30, 0xc0, 0x2e, 0x21, 0x2e, 0x8d, 0x00, 0x44, 0x47, 0x99,
+
37 0x00, 0xff, 0x3f, 0x00, 0x0c, 0xff, 0x0f, 0x00, 0x04, 0xc0, 0x00, 0x5b, 0xf5, 0x90, 0x00, 0x1e, 0xf2, 0xfd, 0xf5,
+
38 0x8e, 0x00, 0x96, 0x00, 0x96, 0x00, 0xe0, 0x00, 0x19, 0xf4, 0x66, 0xf5, 0x00, 0x18, 0x64, 0xf5, 0x9d, 0x00, 0x7f,
+
39 0x00, 0x81, 0x00, 0xae, 0x00, 0xff, 0xfb, 0x21, 0x02, 0x00, 0x10, 0x00, 0x40, 0xff, 0x00, 0x00, 0x80, 0xff, 0x7f,
+
40 0x54, 0x0f, 0xeb, 0x00, 0x7f, 0xff, 0xc2, 0xf5, 0x68, 0xf7, 0xb3, 0xf1, 0x4e, 0x0f, 0x42, 0x0f, 0x48, 0x0f, 0x80,
+
41 0x00, 0x67, 0x0f, 0x58, 0xf7, 0x5b, 0xf7, 0x6a, 0x0f, 0x86, 0x00, 0x59, 0x0f, 0x6c, 0x0f, 0xc6, 0xf1, 0x66, 0x0f,
+
42 0x6c, 0xf7, 0x00, 0xe0, 0x00, 0xff, 0xd1, 0xf5, 0x6e, 0x0f, 0x71, 0x0f, 0xff, 0x03, 0x00, 0xfc, 0xf0, 0x3f, 0xb9,
+
43 0x00, 0x2d, 0xf5, 0xca, 0xf5, 0x8a, 0x00, 0x00, 0x08, 0x71, 0x7d, 0xfe, 0xc0, 0x03, 0x3f, 0x05, 0x3e, 0x49, 0x01,
+
44 0x92, 0x02, 0xf5, 0xd6, 0xe8, 0x63, 0xd3, 0xf8, 0x2e, 0x07, 0x5c, 0xce, 0xa5, 0x67, 0x28, 0x02, 0x4e, 0x01, 0x00,
+
45 0xf0, 0x33, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
47 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
48 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
49 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
50 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x50, 0x10,
+
55 0x50, 0x17, 0x52, 0x05, 0x2e, 0x7d, 0x00, 0xfb, 0x7f, 0x00, 0x2e, 0x13, 0x40, 0x93, 0x42, 0x41, 0x0e, 0xfb, 0x2f,
+
56 0x98, 0x2e, 0x91, 0x03, 0x98, 0x2e, 0x87, 0xcf, 0x01, 0x2e, 0x89, 0x00, 0x00, 0xb2, 0x08, 0x2f, 0x01, 0x2e, 0x69,
+
57 0xf7, 0xb1, 0x3f, 0x01, 0x08, 0x01, 0x30, 0x23, 0x2e, 0x89, 0x00, 0x21, 0x2e, 0x69, 0xf7, 0xfb, 0x6f, 0xf0, 0x5f,
+
58 0xb8, 0x2e, 0xa0, 0x50, 0x80, 0x7f, 0xe7, 0x7f, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0xa2, 0x7f, 0x91, 0x7f, 0xf6,
+
59 0x7f, 0x7b, 0x7f, 0x00, 0x2e, 0x01, 0x2e, 0x60, 0xf5, 0x60, 0x7f, 0x98, 0x2e, 0xce, 0x00, 0x62, 0x6f, 0x01, 0x32,
+
60 0x91, 0x08, 0x80, 0xb2, 0x11, 0x2f, 0x00, 0xb2, 0x03, 0x2f, 0x05, 0x2e, 0x18, 0x00, 0x80, 0x90, 0x09, 0x2f, 0x60,
+
61 0x7f, 0x98, 0x2e, 0xf9, 0x00, 0x23, 0x50, 0x01, 0x32, 0x01, 0x42, 0x02, 0x86, 0x60, 0x6f, 0x02, 0x30, 0xc2, 0x42,
+
62 0x23, 0x2e, 0x60, 0xf5, 0x00, 0x90, 0x00, 0x30, 0x01, 0x2f, 0x21, 0x2e, 0x7a, 0x00, 0xf6, 0x6f, 0x91, 0x6f, 0xa2,
+
63 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0xe7, 0x6f, 0x7b, 0x6f, 0x80, 0x6f, 0x60, 0x5f, 0xc8, 0x2e, 0x00, 0x00,
+
64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x01, 0xd4, 0x7b, 0x3b,
+
65 0x01, 0xdb, 0x7a, 0x04, 0x00, 0x3f, 0x7b, 0xcd, 0x6c, 0xc3, 0x04, 0x85, 0x09, 0xc3, 0x04, 0xec, 0xe6, 0x0c, 0x46,
+
66 0x01, 0x00, 0x27, 0x00, 0x19, 0x00, 0x96, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x0c, 0x00, 0xf0, 0x3c, 0x00, 0x01, 0x01,
+
67 0x00, 0x03, 0x00, 0x01, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
68 0x00, 0x00, 0x01, 0x00, 0xe1, 0x06, 0x66, 0x0a, 0x0a, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
70 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
71 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x50, 0x98, 0x2e, 0xd7, 0x0e, 0x50, 0x32, 0x98, 0x2e,
+
72 0x48, 0x03, 0x10, 0x30, 0x21, 0x2e, 0x21, 0xf2, 0x00, 0x30, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0x00, 0x2e, 0x01,
+
73 0x80, 0x06, 0xa2, 0xfb, 0x2f, 0x01, 0x2e, 0x9c, 0x00, 0x00, 0xb2, 0x10, 0x2f, 0x01, 0x2e, 0x18, 0x00, 0x00, 0xb2,
+
74 0x0c, 0x2f, 0x01, 0x54, 0x03, 0x52, 0x01, 0x50, 0x98, 0x2e, 0xc2, 0xc0, 0x98, 0x2e, 0xf5, 0xb0, 0x01, 0x50, 0x98,
+
75 0x2e, 0xd5, 0xb6, 0x10, 0x30, 0x21, 0x2e, 0x19, 0x00, 0x01, 0x2e, 0x84, 0x00, 0x04, 0xae, 0x0b, 0x2f, 0x01, 0x2e,
+
76 0x9c, 0x00, 0x00, 0xb2, 0x07, 0x2f, 0x01, 0x52, 0x98, 0x2e, 0x8e, 0x0e, 0x00, 0xb2, 0x02, 0x2f, 0x10, 0x30, 0x21,
+
77 0x2e, 0x79, 0x00, 0x01, 0x2e, 0x79, 0x00, 0x00, 0x90, 0x90, 0x2e, 0x14, 0x03, 0x01, 0x2e, 0x87, 0x00, 0x00, 0xb2,
+
78 0x04, 0x2f, 0x98, 0x2e, 0x2f, 0x0e, 0x00, 0x30, 0x21, 0x2e, 0x7b, 0x00, 0x01, 0x2e, 0x7b, 0x00, 0x00, 0xb2, 0x12,
+
79 0x2f, 0x01, 0x2e, 0x84, 0x00, 0x00, 0x90, 0x02, 0x2f, 0x98, 0x2e, 0x1f, 0x0e, 0x09, 0x2d, 0x98, 0x2e, 0x81, 0x0d,
+
80 0x01, 0x2e, 0x84, 0x00, 0x04, 0x90, 0x02, 0x2f, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x7b,
+
81 0x00, 0x01, 0x2e, 0x78, 0x00, 0x00, 0xb2, 0x90, 0x2e, 0x2c, 0x03, 0x01, 0x2e, 0x78, 0x00, 0x81, 0x30, 0x01, 0x08,
+
82 0x00, 0xb2, 0x61, 0x2f, 0x03, 0x2e, 0x24, 0x02, 0x01, 0x2e, 0x84, 0x00, 0x98, 0xbc, 0x98, 0xb8, 0x05, 0xb2, 0x0d,
+
83 0x58, 0x23, 0x2f, 0x07, 0x90, 0x07, 0x54, 0x00, 0x30, 0x37, 0x2f, 0x15, 0x41, 0x04, 0x41, 0xdc, 0xbe, 0x44, 0xbe,
+
84 0xdc, 0xba, 0x2c, 0x01, 0x61, 0x00, 0x0d, 0x56, 0x4a, 0x0f, 0x0c, 0x2f, 0xd1, 0x42, 0x94, 0xb8, 0xc1, 0x42, 0x11,
+
85 0x30, 0x05, 0x2e, 0x6a, 0xf7, 0x2c, 0xbd, 0x2f, 0xb9, 0x80, 0xb2, 0x08, 0x22, 0x98, 0x2e, 0xaf, 0x03, 0x21, 0x2d,
+
86 0x61, 0x30, 0x23, 0x2e, 0x84, 0x00, 0x98, 0x2e, 0xaf, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x5a, 0xf5, 0x18, 0x2d, 0xf1,
+
87 0x7f, 0x50, 0x30, 0x98, 0x2e, 0x48, 0x03, 0x0d, 0x52, 0x05, 0x50, 0x50, 0x42, 0x70, 0x30, 0x0b, 0x54, 0x42, 0x42,
+
88 0x7e, 0x82, 0xf2, 0x6f, 0x80, 0xb2, 0x42, 0x42, 0x05, 0x2f, 0x21, 0x2e, 0x84, 0x00, 0x10, 0x30, 0x98, 0x2e, 0xaf,
+
89 0x03, 0x03, 0x2d, 0x60, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x01, 0x2e, 0x84, 0x00, 0x06, 0x90, 0x18, 0x2f, 0x01, 0x2e,
+
90 0x77, 0x00, 0x09, 0x54, 0x05, 0x52, 0xf0, 0x7f, 0x98, 0x2e, 0x7a, 0xc1, 0xf1, 0x6f, 0x08, 0x1a, 0x40, 0x30, 0x08,
+
91 0x2f, 0x21, 0x2e, 0x84, 0x00, 0x20, 0x30, 0x98, 0x2e, 0x9b, 0x03, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x05, 0x2d,
+
92 0x98, 0x2e, 0x38, 0x0e, 0x00, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x00, 0x30, 0x21, 0x2e, 0x78, 0x00, 0x18, 0x2d, 0x01,
+
93 0x2e, 0x84, 0x00, 0x03, 0xaa, 0x01, 0x2f, 0x98, 0x2e, 0x45, 0x0e, 0x01, 0x2e, 0x84, 0x00, 0x3f, 0x80, 0x03, 0xa2,
+
94 0x01, 0x2f, 0x00, 0x2e, 0x02, 0x2d, 0x98, 0x2e, 0x5b, 0x0e, 0x30, 0x30, 0x98, 0x2e, 0xba, 0x03, 0x00, 0x30, 0x21,
+
95 0x2e, 0x79, 0x00, 0x50, 0x32, 0x98, 0x2e, 0x48, 0x03, 0x01, 0x2e, 0x19, 0x00, 0x00, 0xb2, 0x10, 0x2f, 0x01, 0x2e,
+
96 0x85, 0x00, 0x21, 0x2e, 0x90, 0x00, 0x0f, 0x52, 0x7e, 0x82, 0x11, 0x50, 0x41, 0x40, 0x18, 0xb9, 0x11, 0x42, 0x02,
+
97 0x42, 0x02, 0x80, 0x00, 0x2e, 0x01, 0x40, 0x01, 0x42, 0x98, 0x2e, 0xaa, 0x01, 0x00, 0x30, 0x21, 0x2e, 0x19, 0x00,
+
98 0x21, 0x2e, 0x9c, 0x00, 0x80, 0x2e, 0x52, 0x02, 0x21, 0x2e, 0x59, 0xf5, 0x10, 0x30, 0xc0, 0x2e, 0x21, 0x2e, 0x4a,
+
99 0xf1, 0x80, 0x2e, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x01,
+
100 0x34, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
101 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
102 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
104 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
106 0x00, 0x00, 0x03, 0x2e, 0x7d, 0x00, 0x16, 0xb8, 0x02, 0x34, 0x4a, 0x0c, 0x21, 0x2e, 0x2d, 0xf5, 0xc0, 0x2e, 0x23,
+
107 0x2e, 0x7d, 0x00, 0x03, 0xbc, 0x21, 0x2e, 0x85, 0x00, 0x03, 0x2e, 0x85, 0x00, 0x40, 0xb2, 0x10, 0x30, 0x21, 0x2e,
+
108 0x19, 0x00, 0x01, 0x30, 0x05, 0x2f, 0x05, 0x2e, 0x88, 0x00, 0x80, 0x90, 0x01, 0x2f, 0x23, 0x2e, 0x6f, 0xf5, 0xc0,
+
109 0x2e, 0x21, 0x2e, 0x89, 0x00, 0x11, 0x30, 0x81, 0x08, 0x01, 0x2e, 0x6a, 0xf7, 0x71, 0x3f, 0x23, 0xbd, 0x01, 0x08,
+
110 0x02, 0x0a, 0xc0, 0x2e, 0x21, 0x2e, 0x6a, 0xf7, 0x30, 0x25, 0x00, 0x30, 0x21, 0x2e, 0x5a, 0xf5, 0x10, 0x50, 0x21,
+
111 0x2e, 0x7b, 0x00, 0x21, 0x2e, 0x78, 0x00, 0xfb, 0x7f, 0x98, 0x2e, 0xaf, 0x03, 0x40, 0x30, 0x21, 0x2e, 0x84, 0x00,
+
112 0xfb, 0x6f, 0xf0, 0x5f, 0x03, 0x25, 0x80, 0x2e, 0x9b, 0x03, 0x0b, 0x00, 0x94, 0x02, 0x14, 0x24, 0x80, 0x00, 0x04,
+
113 0x00, 0x04, 0x30, 0x08, 0xb8, 0x94, 0x02, 0xc0, 0x2e, 0x28, 0xbd, 0x02, 0x0a, 0x0d, 0x82, 0x02, 0x30, 0x12, 0x42,
+
114 0x41, 0x0e, 0xfc, 0x2f, 0xb8, 0x2e, 0x95, 0x50, 0xc0, 0x2e, 0x21, 0x2e, 0xa9, 0x01, 0x02, 0x30, 0x02, 0x2c, 0x41,
+
115 0x00, 0x12, 0x42, 0x41, 0x0e, 0xfc, 0x2f, 0xb8, 0x2e, 0x13, 0x82, 0x02, 0x30, 0x12, 0x42, 0x41, 0x0e, 0xfc, 0x2f,
+
116 0x3f, 0x80, 0xa1, 0x30, 0xc0, 0x2e, 0x01, 0x42, 0x00, 0x2e, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
117 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0xc0, 0x50, 0xe7, 0x7f,
+
118 0xf6, 0x7f, 0x26, 0x30, 0x0f, 0x2e, 0x61, 0xf5, 0x2f, 0x2e, 0x78, 0x00, 0x0f, 0x2e, 0x78, 0x00, 0xbe, 0x09, 0xa2,
+
119 0x7f, 0x80, 0x7f, 0x80, 0xb3, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0x91, 0x7f, 0x7b, 0x7f, 0x0b, 0x2f, 0x19, 0x50,
+
120 0x1a, 0x25, 0x12, 0x40, 0x42, 0x7f, 0x74, 0x82, 0x12, 0x40, 0x52, 0x7f, 0x00, 0x2e, 0x00, 0x40, 0x60, 0x7f, 0x98,
+
121 0x2e, 0x6a, 0xd6, 0x81, 0x30, 0x01, 0x2e, 0x78, 0x00, 0x01, 0x08, 0x00, 0xb2, 0x42, 0x2f, 0x03, 0x2e, 0x24, 0x02,
+
122 0x01, 0x2e, 0x24, 0x02, 0x97, 0xbc, 0x06, 0xbc, 0x9f, 0xb8, 0x0f, 0xb8, 0x00, 0x90, 0x23, 0x2e, 0x88, 0x00, 0x10,
+
123 0x30, 0x01, 0x30, 0x2a, 0x2f, 0x03, 0x2e, 0x84, 0x00, 0x44, 0xb2, 0x05, 0x2f, 0x47, 0xb2, 0x00, 0x30, 0x2d, 0x2f,
+
124 0x21, 0x2e, 0x78, 0x00, 0x2b, 0x2d, 0x03, 0x2e, 0xfd, 0xf5, 0x9e, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x14, 0x2f, 0x03,
+
125 0x2e, 0xfc, 0xf5, 0x99, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x0e, 0x2f, 0x03, 0x2e, 0x49, 0xf1, 0x1b, 0x54, 0x4a, 0x08,
+
126 0x40, 0x90, 0x08, 0x2f, 0x98, 0x2e, 0xce, 0x00, 0x00, 0xb2, 0x10, 0x30, 0x03, 0x2f, 0x50, 0x30, 0x21, 0x2e, 0x84,
+
127 0x00, 0x10, 0x2d, 0x98, 0x2e, 0x9b, 0x03, 0x00, 0x30, 0x21, 0x2e, 0x78, 0x00, 0x0a, 0x2d, 0x05, 0x2e, 0x69, 0xf7,
+
128 0x2d, 0xbd, 0x2f, 0xb9, 0x80, 0xb2, 0x01, 0x2f, 0x21, 0x2e, 0x79, 0x00, 0x23, 0x2e, 0x78, 0x00, 0xe0, 0x31, 0x21,
+
129 0x2e, 0x61, 0xf5, 0xf6, 0x6f, 0xe7, 0x6f, 0x80, 0x6f, 0xa2, 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0x7b, 0x6f,
+
130 0x91, 0x6f, 0x40, 0x5f, 0xc8, 0x2e, 0x90, 0x50, 0xf7, 0x7f, 0xe6, 0x7f, 0xd5, 0x7f, 0xc4, 0x7f, 0xb3, 0x7f, 0xa1,
+
131 0x7f, 0x90, 0x7f, 0x82, 0x7f, 0x7b, 0x7f, 0x98, 0x2e, 0xce, 0x00, 0x00, 0xb2, 0x10, 0x30, 0x49, 0x2f, 0x05, 0x2e,
+
132 0x21, 0x02, 0x03, 0x2e, 0x2d, 0x02, 0x21, 0x56, 0x08, 0x08, 0x93, 0x08, 0x90, 0x0a, 0x25, 0x2e, 0x18, 0x00, 0x05,
+
133 0x2e, 0xc1, 0xf5, 0x2e, 0xbc, 0x05, 0x2e, 0x84, 0x00, 0x84, 0xa2, 0x0e, 0xb8, 0x31, 0x30, 0x88, 0x04, 0x03, 0x2f,
+
134 0x01, 0x2e, 0x18, 0x00, 0x00, 0xb2, 0x0c, 0x2f, 0x1d, 0x50, 0x01, 0x52, 0x98, 0x2e, 0xd7, 0x00, 0x05, 0x2e, 0x7a,
+
135 0x00, 0x80, 0x90, 0x02, 0x2f, 0x10, 0x30, 0x21, 0x2e, 0x7a, 0x00, 0x25, 0x2e, 0x9c, 0x00, 0x05, 0x2e, 0x18, 0x00,
+
136 0x80, 0xb2, 0x20, 0x2f, 0x01, 0x2e, 0xc0, 0xf5, 0xf2, 0x30, 0x02, 0x08, 0x07, 0xaa, 0x73, 0x30, 0x03, 0x2e, 0x7c,
+
137 0x00, 0x18, 0x22, 0x41, 0x1a, 0x05, 0x2f, 0x03, 0x2e, 0x66, 0xf5, 0x9f, 0xbc, 0x9f, 0xb8, 0x40, 0x90, 0x0c, 0x2f,
+
138 0x1f, 0x52, 0x03, 0x30, 0x53, 0x42, 0x2b, 0x30, 0x90, 0x04, 0x5b, 0x42, 0x21, 0x2e, 0x7c, 0x00, 0x24, 0xbd, 0x7e,
+
139 0x80, 0x81, 0x84, 0x43, 0x42, 0x02, 0x42, 0x02, 0x32, 0x25, 0x2e, 0x62, 0xf5, 0x05, 0x2e, 0x86, 0x00, 0x81, 0x84,
+
140 0x25, 0x2e, 0x86, 0x00, 0x02, 0x31, 0x25, 0x2e, 0x60, 0xf5, 0x05, 0x2e, 0x25, 0x02, 0x10, 0x30, 0x90, 0x08, 0x80,
+
141 0xb2, 0x0b, 0x2f, 0x05, 0x2e, 0xca, 0xf5, 0xf0, 0x3e, 0x90, 0x08, 0x25, 0x2e, 0xca, 0xf5, 0x05, 0x2e, 0x59, 0xf5,
+
142 0xe0, 0x3f, 0x90, 0x08, 0x25, 0x2e, 0x59, 0xf5, 0x90, 0x6f, 0xa1, 0x6f, 0xb3, 0x6f, 0xc4, 0x6f, 0xd5, 0x6f, 0xe6,
+
143 0x6f, 0xf7, 0x6f, 0x7b, 0x6f, 0x82, 0x6f, 0x70, 0x5f, 0xc8, 0x2e, 0x2f, 0x52, 0x90, 0x50, 0x53, 0x40, 0x4a, 0x25,
+
144 0x40, 0x40, 0x39, 0x8b, 0xfb, 0x7f, 0x0c, 0xbc, 0x21, 0x52, 0x37, 0x89, 0x0b, 0x30, 0x59, 0x08, 0x0c, 0xb8, 0xe0,
+
145 0x7f, 0x8b, 0x7f, 0x4b, 0x43, 0x0b, 0x43, 0x40, 0xb2, 0xd1, 0x7f, 0x6e, 0x2f, 0x01, 0x2e, 0x83, 0x00, 0x00, 0xb2,
+
146 0x0e, 0x2f, 0x25, 0x52, 0x01, 0x2e, 0x7e, 0x00, 0xc3, 0x7f, 0xb4, 0x7f, 0xa5, 0x7f, 0x98, 0x2e, 0xbb, 0xcc, 0x05,
+
147 0x30, 0x2b, 0x2e, 0x83, 0x00, 0xc3, 0x6f, 0xd1, 0x6f, 0xb4, 0x6f, 0xa5, 0x6f, 0x36, 0xbc, 0x06, 0xb9, 0x35, 0xbc,
+
148 0x0f, 0xb8, 0x94, 0xb0, 0xc6, 0x7f, 0x00, 0xb2, 0x0c, 0x2f, 0x27, 0x50, 0x29, 0x56, 0x0b, 0x30, 0x05, 0x2e, 0x21,
+
149 0x02, 0x2d, 0x5c, 0x1b, 0x42, 0xdb, 0x42, 0x96, 0x08, 0x25, 0x2e, 0x21, 0x02, 0x0b, 0x42, 0xcb, 0x42, 0x00, 0x2e,
+
150 0x31, 0x56, 0xcb, 0x08, 0x25, 0x52, 0x01, 0x2e, 0x7e, 0x00, 0x01, 0x54, 0x2b, 0x5c, 0x98, 0x2e, 0x06, 0xcd, 0xd2,
+
151 0x6f, 0x27, 0x5a, 0x94, 0x6f, 0xa4, 0xbc, 0x53, 0x41, 0x00, 0xb3, 0x1f, 0xb8, 0x44, 0x41, 0x01, 0x30, 0xd5, 0x7f,
+
152 0x05, 0x2f, 0x00, 0xb2, 0x03, 0x2f, 0x29, 0x5c, 0x11, 0x30, 0x93, 0x43, 0x84, 0x43, 0x23, 0xbd, 0x2f, 0xb9, 0x80,
+
153 0xb2, 0x1c, 0x2f, 0x72, 0x6f, 0xda, 0x00, 0x82, 0x6f, 0x22, 0x03, 0x44, 0x43, 0x00, 0x90, 0x27, 0x2e, 0x7f, 0x00,
+
154 0x29, 0x5a, 0x12, 0x2f, 0x29, 0x54, 0x00, 0x2e, 0x90, 0x40, 0x82, 0x40, 0x18, 0x04, 0xa2, 0x06, 0x80, 0xaa, 0x04,
+
155 0x2f, 0x80, 0x90, 0x08, 0x2f, 0xc2, 0x6f, 0x50, 0x0f, 0x05, 0x2f, 0xc0, 0x6f, 0x00, 0xb2, 0x02, 0x2f, 0x53, 0x43,
+
156 0x44, 0x43, 0x11, 0x30, 0xe0, 0x6f, 0x98, 0x2e, 0x95, 0xcf, 0xd1, 0x6f, 0x15, 0x5a, 0x09, 0x2e, 0x7f, 0x00, 0x41,
+
157 0x40, 0x54, 0x43, 0x08, 0x2c, 0x41, 0x43, 0x15, 0x30, 0x2b, 0x2e, 0x83, 0x00, 0x01, 0x30, 0xe0, 0x6f, 0x98, 0x2e,
+
158 0x95, 0xcf, 0x00, 0x2e, 0xfb, 0x6f, 0x70, 0x5f, 0xb8, 0x2e, 0x50, 0x86, 0xcd, 0x88, 0x34, 0x85, 0xc5, 0x40, 0x91,
+
159 0x40, 0x8c, 0x80, 0x06, 0x41, 0x13, 0x40, 0x50, 0x50, 0x6e, 0x01, 0x82, 0x40, 0x04, 0x40, 0x34, 0x8c, 0xfb, 0x7f,
+
160 0x98, 0x2e, 0xce, 0x03, 0xe0, 0x7f, 0x00, 0x2e, 0x91, 0x41, 0x8c, 0x81, 0x82, 0x41, 0x13, 0x40, 0x04, 0x40, 0x34,
+
161 0x8e, 0x98, 0x2e, 0xce, 0x03, 0xc0, 0x7f, 0xd5, 0x7f, 0x13, 0x24, 0xff, 0x00, 0xd6, 0x41, 0xcc, 0x83, 0xc2, 0x41,
+
162 0x57, 0x40, 0x74, 0x80, 0x44, 0x40, 0x11, 0x40, 0x0c, 0x8a, 0xf7, 0x01, 0x94, 0x03, 0x12, 0x24, 0x80, 0x00, 0x3a,
+
163 0x01, 0x02, 0x30, 0xb2, 0x03, 0xce, 0x17, 0xfb, 0x08, 0x23, 0x01, 0xb2, 0x02, 0x48, 0xbb, 0x28, 0xbd, 0xf2, 0x0b,
+
164 0x53, 0x41, 0x02, 0x40, 0x44, 0x41, 0x74, 0x8d, 0xb7, 0x7f, 0x98, 0x2e, 0xce, 0x03, 0x50, 0x25, 0x91, 0x41, 0x8c,
+
165 0x81, 0x82, 0x41, 0x13, 0x40, 0x04, 0x40, 0x34, 0x8e, 0x98, 0x2e, 0xce, 0x03, 0x60, 0x25, 0xd1, 0x41, 0xcc, 0x81,
+
166 0xc2, 0x41, 0x13, 0x40, 0x04, 0x40, 0x98, 0x2e, 0xce, 0x03, 0x11, 0x24, 0xb3, 0x00, 0x71, 0x0e, 0xd3, 0x6f, 0xe1,
+
167 0x6f, 0x33, 0x2f, 0x12, 0x24, 0xdd, 0x00, 0xda, 0x0f, 0x2b, 0x2f, 0x12, 0x24, 0x8c, 0x00, 0x5a, 0x0e, 0x09, 0x2f,
+
168 0x10, 0x24, 0x83, 0x05, 0x48, 0x0e, 0x11, 0x24, 0x7f, 0x22, 0x10, 0x24, 0x18, 0x32, 0x08, 0x22, 0x80, 0x2e, 0xd7,
+
169 0xb4, 0x13, 0x24, 0xf4, 0x00, 0x73, 0x0e, 0x0f, 0x2f, 0x10, 0x24, 0x11, 0x10, 0x68, 0x0e, 0x10, 0x24, 0xa2, 0x30,
+
170 0x13, 0x24, 0x97, 0x23, 0x03, 0x22, 0x13, 0x24, 0x3b, 0x04, 0x4b, 0x0e, 0x11, 0x24, 0x0f, 0x30, 0x01, 0x22, 0x80,
+
171 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x53, 0x02, 0x41, 0x0e, 0x11, 0x24, 0xe7, 0x31, 0x10, 0x24, 0xfc, 0x25, 0x08, 0x22,
+
172 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xe8, 0x40, 0x80, 0x2e, 0xd7, 0xb4, 0xf2, 0x37, 0x5a, 0x0e, 0x90, 0x2e, 0x50,
+
173 0xb3, 0x12, 0x24, 0xea, 0x00, 0x4a, 0x0e, 0x90, 0x2e, 0xc7, 0xb2, 0xc2, 0x6f, 0x14, 0x24, 0x4c, 0x0b, 0x54, 0x0e,
+
174 0x90, 0x2e, 0xab, 0xb2, 0x14, 0x24, 0x9b, 0x00, 0x5c, 0x0e, 0x90, 0x2e, 0xa1, 0xb2, 0x14, 0x24, 0x22, 0x01, 0x4c,
+
175 0x0e, 0x70, 0x2f, 0x82, 0xa3, 0x5e, 0x2f, 0x11, 0x24, 0xba, 0x0b, 0x51, 0x0e, 0x35, 0x2f, 0x11, 0x24, 0x03, 0x08,
+
176 0x69, 0x0e, 0x2d, 0x2f, 0xb1, 0x6f, 0x14, 0x24, 0x90, 0x00, 0x0c, 0x0e, 0x24, 0x2f, 0x11, 0x24, 0x31, 0x08, 0x69,
+
177 0x0e, 0x16, 0x2f, 0x11, 0x24, 0x7d, 0x01, 0x59, 0x0e, 0x0e, 0x2f, 0x11, 0x24, 0xd7, 0x0c, 0x51, 0x0e, 0x11, 0x24,
+
178 0x9f, 0x44, 0x13, 0x24, 0x41, 0x57, 0x4b, 0x22, 0x93, 0x35, 0x43, 0x0e, 0x10, 0x24, 0xbd, 0x42, 0x08, 0x22, 0x80,
+
179 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x1c, 0x42, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x47, 0x01, 0x59, 0x0e, 0x11, 0x24,
+
180 0xa2, 0x45, 0x10, 0x24, 0x31, 0x51, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x80, 0x41, 0x80, 0x2e, 0xd7,
+
181 0xb4, 0x10, 0x24, 0x67, 0x54, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x8c, 0x08, 0xe9, 0x0f, 0x10, 0x24, 0x0a, 0x48,
+
182 0x90, 0x2e, 0xd7, 0xb4, 0xb1, 0x6f, 0x13, 0x24, 0xe8, 0x03, 0x8b, 0x0f, 0x10, 0x24, 0xcd, 0x57, 0x90, 0x2e, 0xd7,
+
183 0xb4, 0x73, 0x35, 0x8b, 0x0f, 0x10, 0x24, 0x6f, 0x42, 0x90, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa0, 0xfe, 0x08, 0x0e,
+
184 0x10, 0x24, 0x38, 0x54, 0x13, 0x24, 0xa3, 0x46, 0x03, 0x22, 0x13, 0x24, 0x45, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0x04,
+
185 0x43, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xb1, 0x6f, 0x00, 0x3a, 0x08, 0x0e, 0x11, 0x24, 0x3d, 0x45, 0x10, 0x24,
+
186 0x52, 0x54, 0x48, 0x22, 0x10, 0x24, 0x8f, 0x01, 0x58, 0x0e, 0x10, 0x24, 0x48, 0x44, 0x01, 0x22, 0x80, 0x2e, 0xd7,
+
187 0xb4, 0xb1, 0x6f, 0x13, 0x24, 0xfa, 0x03, 0x0b, 0x0e, 0x11, 0x24, 0x85, 0x43, 0x13, 0x24, 0x35, 0x55, 0x4b, 0x22,
+
188 0x11, 0xa2, 0x10, 0x24, 0xf6, 0x57, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xa4, 0x0a, 0x69, 0x0e, 0x11,
+
189 0x24, 0x7b, 0x5a, 0x10, 0x24, 0x5e, 0x20, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x0f, 0x01, 0x59, 0x0e,
+
190 0x0d, 0x2f, 0x18, 0xa2, 0x11, 0x24, 0x2b, 0x47, 0x10, 0x24, 0xf4, 0x55, 0x48, 0x22, 0x10, 0x24, 0x16, 0x0b, 0x50,
+
191 0x0e, 0x10, 0x24, 0xc7, 0x51, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0x72, 0x0a, 0x51, 0x0e, 0x11, 0x24,
+
192 0x85, 0x55, 0x10, 0x24, 0xb2, 0x47, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x83, 0x00, 0x48, 0x0e, 0x53,
+
193 0x2f, 0x11, 0x24, 0xe1, 0x07, 0x69, 0x0e, 0x2d, 0x2f, 0x95, 0xaf, 0x27, 0x2f, 0x82, 0xaf, 0x21, 0x2f, 0x11, 0x24,
+
194 0xd7, 0x00, 0x59, 0x0e, 0x19, 0x2f, 0xb1, 0x6f, 0x10, 0x24, 0xcc, 0x03, 0x88, 0x0f, 0x10, 0x2f, 0x10, 0x24, 0xe8,
+
195 0xfe, 0x08, 0x0e, 0x11, 0x24, 0x7e, 0x56, 0x10, 0x24, 0x94, 0x45, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0x06, 0x0b,
+
196 0x43, 0x0e, 0x10, 0x24, 0x2f, 0x51, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xde, 0x51, 0x80, 0x2e, 0xd7,
+
197 0xb4, 0x10, 0x24, 0xe8, 0x54, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa4, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24,
+
198 0xd0, 0x44, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xb8, 0x00, 0xd9, 0x0f, 0x19, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xe7,
+
199 0x0c, 0xc8, 0x0f, 0x10, 0x2f, 0x11, 0x24, 0xc7, 0x07, 0x69, 0x0e, 0x11, 0x24, 0xf6, 0x52, 0x10, 0x24, 0x7a, 0x12,
+
200 0x48, 0x22, 0xb0, 0x6f, 0x13, 0x24, 0x5d, 0x02, 0x03, 0x0e, 0x10, 0x24, 0x7c, 0x54, 0x01, 0x22, 0x80, 0x2e, 0xd7,
+
201 0xb4, 0x10, 0x24, 0x8d, 0x51, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x28, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24,
+
202 0xd2, 0x07, 0xe8, 0x0f, 0x28, 0x2f, 0x10, 0x24, 0xb0, 0x00, 0xd8, 0x0f, 0x20, 0x2f, 0x10, 0x24, 0xc6, 0x07, 0x68,
+
203 0x0e, 0x18, 0x2f, 0x50, 0x35, 0x48, 0x0e, 0x11, 0x2f, 0xb1, 0x6f, 0x10, 0x24, 0xf4, 0x01, 0x08, 0x0e, 0x11, 0x24,
+
204 0x35, 0x51, 0x10, 0x24, 0x22, 0x12, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0xe0, 0x0c, 0x43, 0x0e, 0x10, 0x24, 0x7b,
+
205 0x50, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x81, 0x52, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x3b, 0x53,
+
206 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x63, 0x51, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x27, 0x51, 0x80, 0x2e, 0xd7,
+
207 0xb4, 0x18, 0xa2, 0x90, 0x2e, 0xdb, 0xb3, 0x12, 0x24, 0x08, 0x02, 0x4a, 0x0e, 0x37, 0x2f, 0x12, 0x24, 0x2a, 0x09,
+
208 0x6a, 0x0e, 0x1d, 0x2f, 0x13, 0x24, 0x8e, 0x00, 0x73, 0x0e, 0x09, 0x2f, 0x11, 0x24, 0xa5, 0x01, 0x41, 0x0e, 0x11,
+
209 0x24, 0x76, 0x32, 0x10, 0x24, 0x12, 0x25, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xa9, 0x0d, 0x68, 0x0e,
+
210 0x10, 0x24, 0x04, 0x27, 0x13, 0x24, 0x73, 0x20, 0x03, 0x22, 0x13, 0x24, 0x14, 0x04, 0x4b, 0x0e, 0x11, 0x24, 0x15,
+
211 0x2c, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xae, 0x08, 0x69, 0x0e, 0x08, 0x2f, 0xa1, 0x35, 0x71, 0x0e,
+
212 0x11, 0x24, 0x8b, 0x2b, 0x10, 0x24, 0x07, 0x35, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x91, 0x34, 0x59, 0x0e, 0x11,
+
213 0x24, 0x7b, 0x19, 0x10, 0x24, 0x50, 0x59, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x62, 0x32, 0x42, 0x0e, 0x22, 0x2f,
+
214 0xa2, 0x32, 0x5a, 0x0e, 0x1b, 0x2f, 0x12, 0x24, 0x0b, 0x08, 0x6a, 0x0e, 0x0e, 0x2f, 0xa3, 0x34, 0x43, 0x0e, 0x10,
+
215 0x24, 0x28, 0x2b, 0x13, 0x24, 0x20, 0x23, 0x03, 0x22, 0x13, 0x24, 0x8d, 0x01, 0x4b, 0x0e, 0x11, 0x24, 0x5c, 0x21,
+
216 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x31, 0x36, 0x59, 0x0e, 0x11, 0x24, 0x43, 0x25, 0x10, 0x24, 0xfa, 0x49, 0x08,
+
217 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xc7, 0x2a, 0x80, 0x2e, 0xd7, 0xb4, 0x40, 0x36, 0x58, 0x0e, 0x09, 0x2f,
+
218 0x11, 0x24, 0x9e, 0x08, 0x69, 0x0e, 0x11, 0x24, 0xe3, 0x54, 0x10, 0x24, 0x73, 0x22, 0x08, 0x22, 0x80, 0x2e, 0xd7,
+
219 0xb4, 0x10, 0x24, 0x38, 0x01, 0xc8, 0x0f, 0x10, 0x2f, 0x11, 0x24, 0x11, 0x08, 0x69, 0x0e, 0x11, 0x24, 0x6e, 0x48,
+
220 0x10, 0x24, 0x2b, 0x28, 0x48, 0x22, 0xc0, 0x6f, 0x13, 0x24, 0xc1, 0x0a, 0x43, 0x0e, 0x10, 0x24, 0x0f, 0x23, 0x08,
+
221 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0xd0, 0x1a, 0x80, 0x2e, 0xd7, 0xb4, 0xe2, 0x33, 0x5a, 0x0e, 0x77, 0x2f,
+
222 0x12, 0x24, 0x0c, 0x08, 0x6a, 0x0e, 0x2a, 0x2f, 0x12, 0x24, 0xc5, 0x00, 0x4a, 0x0e, 0x08, 0x2f, 0x11, 0x36, 0x59,
+
223 0x0e, 0x11, 0x24, 0xfd, 0x18, 0x10, 0x24, 0x75, 0x58, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xc2, 0x34, 0x5a, 0x0e,
+
224 0x0d, 0x2f, 0x11, 0x24, 0x36, 0x08, 0x69, 0x0e, 0x11, 0x24, 0x08, 0x58, 0x13, 0x24, 0x3b, 0x54, 0x4b, 0x22, 0x01,
+
225 0xa2, 0x10, 0x24, 0xc6, 0x52, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xb3, 0x36, 0x4b, 0x0e, 0x11, 0x24, 0x0e, 0x24,
+
226 0x13, 0x24, 0x7b, 0x50, 0x59, 0x22, 0x0e, 0xa2, 0x10, 0x24, 0xf7, 0x56, 0x01, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0xc2,
+
227 0x35, 0x5a, 0x0e, 0x12, 0x2f, 0x01, 0xa2, 0x0c, 0x2f, 0x84, 0xa3, 0x10, 0x24, 0xd4, 0x58, 0x13, 0x24, 0x76, 0x56,
+
228 0x03, 0x22, 0x73, 0x36, 0x4b, 0x0e, 0x11, 0x24, 0xeb, 0x52, 0x08, 0x22, 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x87,
+
229 0x16, 0x80, 0x2e, 0xd7, 0xb4, 0xb0, 0x6f, 0x13, 0x24, 0x02, 0xfd, 0x03, 0x0e, 0x29, 0x2f, 0x84, 0xa3, 0xc0, 0x6f,
+
230 0x09, 0x2f, 0x11, 0x24, 0xe4, 0x0a, 0x41, 0x0e, 0x11, 0x24, 0x5d, 0x44, 0x10, 0x24, 0x2f, 0x5a, 0x08, 0x22, 0x80,
+
231 0x2e, 0xd7, 0xb4, 0x13, 0x24, 0x96, 0x0c, 0x43, 0x0e, 0x0e, 0x2f, 0x40, 0x33, 0x48, 0x0e, 0x10, 0x24, 0xf2, 0x18,
+
232 0x13, 0x24, 0x31, 0x49, 0x03, 0x22, 0x13, 0x24, 0x99, 0x00, 0x4b, 0x0e, 0x11, 0x24, 0xab, 0x18, 0x01, 0x22, 0x80,
+
233 0x2e, 0xd7, 0xb4, 0x11, 0x24, 0xc6, 0x07, 0x69, 0x0e, 0x11, 0x24, 0xb0, 0x49, 0x10, 0x24, 0xbf, 0x17, 0x08, 0x22,
+
234 0x80, 0x2e, 0xd7, 0xb4, 0x10, 0x24, 0x03, 0x15, 0x80, 0x2e, 0xd7, 0xb4, 0xb0, 0x32, 0x48, 0x0e, 0x57, 0x2f, 0xa0,
+
235 0x37, 0x48, 0x0e, 0x13, 0x2f, 0x83, 0xa3, 0x08, 0x2f, 0x10, 0x24, 0xe0, 0x00, 0x48, 0x0e, 0x11, 0x24, 0xf6, 0x25,
+
236 0x10, 0x24, 0x75, 0x17, 0x71, 0x2c, 0x08, 0x22, 0x10, 0x24, 0xa0, 0x00, 0x48, 0x0e, 0x11, 0x24, 0x7f, 0x18, 0x10,
+
237 0x24, 0xa6, 0x13, 0x68, 0x2c, 0x08, 0x22, 0x11, 0x24, 0xf9, 0x07, 0x69, 0x0e, 0x0d, 0x2f, 0x11, 0x24, 0x10, 0x08,
+
238 0x69, 0x0e, 0x11, 0x24, 0xb1, 0x14, 0x10, 0x24, 0x8e, 0x58, 0x48, 0x22, 0x90, 0x32, 0x58, 0x0e, 0x10, 0x24, 0x6d,
+
239 0x14, 0x56, 0x2c, 0x01, 0x22, 0xc1, 0x6f, 0x10, 0x24, 0x68, 0x0c, 0x48, 0x0e, 0xb1, 0x6f, 0x0c, 0x2f, 0xcd, 0xa2,
+
240 0x10, 0x24, 0x23, 0x14, 0x13, 0x24, 0x8d, 0x42, 0x03, 0x22, 0x13, 0x24, 0x2a, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0x53,
+
241 0x12, 0x43, 0x2c, 0x08, 0x22, 0x10, 0x24, 0xcc, 0x07, 0x68, 0x0e, 0x0e, 0x2f, 0x10, 0x24, 0x08, 0xfd, 0x08, 0x0e,
+
242 0x10, 0x24, 0x08, 0x16, 0x13, 0x24, 0x83, 0x45, 0x03, 0x22, 0x13, 0x24, 0xa1, 0xfd, 0x0b, 0x0e, 0x11, 0x24, 0xa6,
+
243 0x14, 0x30, 0x2c, 0x01, 0x22, 0x10, 0x24, 0x5b, 0x01, 0x08, 0x0e, 0x11, 0x24, 0x2f, 0x12, 0x10, 0x24, 0xdd, 0x44,
+
244 0x27, 0x2c, 0x08, 0x22, 0xdb, 0xa2, 0x0f, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xb2, 0x0b, 0x48, 0x0e, 0x11, 0x24, 0x21,
+
245 0x55, 0x10, 0x24, 0xc8, 0x14, 0x48, 0x22, 0x10, 0x24, 0x4c, 0x08, 0x68, 0x0e, 0x10, 0x24, 0xe4, 0x57, 0x15, 0x2c,
+
246 0x01, 0x22, 0x44, 0xa2, 0x0f, 0x2f, 0xc1, 0x6f, 0x10, 0x24, 0xcb, 0x0b, 0x48, 0x0e, 0x11, 0x24, 0x09, 0x58, 0x10,
+
247 0x24, 0xe4, 0x10, 0x48, 0x22, 0x10, 0x24, 0x4d, 0x08, 0x68, 0x0e, 0x10, 0x24, 0x1a, 0x12, 0x03, 0x2c, 0x01, 0x22,
+
248 0x10, 0x24, 0x0c, 0x10, 0xfb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0xa3, 0x32, 0xc3, 0x00, 0x60, 0x51, 0xc2, 0x40, 0x81,
+
249 0x84, 0xd3, 0x7f, 0xd2, 0x42, 0xe0, 0x7f, 0x00, 0x30, 0xc4, 0x40, 0x20, 0x02, 0xc3, 0x7f, 0xd0, 0x42, 0x42, 0x3d,
+
250 0xc0, 0x40, 0x01, 0x80, 0xc0, 0x42, 0xda, 0x00, 0x93, 0x7f, 0xb1, 0x7f, 0xab, 0x7f, 0x98, 0x2e, 0xb3, 0xc0, 0x91,
+
251 0x6f, 0xf3, 0x32, 0x40, 0x42, 0x00, 0xac, 0x8b, 0x00, 0x02, 0x2f, 0xe1, 0x6f, 0x39, 0x56, 0x43, 0x42, 0xa1, 0x82,
+
252 0x91, 0x7f, 0x33, 0x33, 0x4b, 0x00, 0x81, 0x7f, 0x13, 0x3c, 0x4b, 0x00, 0x80, 0x40, 0x53, 0x34, 0xb5, 0x6f, 0x8b,
+
253 0x00, 0x0d, 0xb0, 0x43, 0x87, 0x76, 0x7f, 0xb2, 0x7f, 0x63, 0x7f, 0x65, 0x25, 0xb5, 0x6f, 0x92, 0x41, 0x63, 0x41,
+
254 0x64, 0x41, 0x44, 0x81, 0x56, 0x7f, 0x41, 0x7f, 0x00, 0x2e, 0x26, 0x40, 0x27, 0x40, 0x45, 0x41, 0xf7, 0x7f, 0xb0,
+
255 0x7f, 0x98, 0x2e, 0x67, 0xcc, 0x81, 0x6f, 0x0f, 0xa4, 0x43, 0x40, 0x72, 0x6f, 0x94, 0x6f, 0x05, 0x30, 0x01, 0x2f,
+
256 0xc0, 0xa0, 0x03, 0x2f, 0x31, 0xac, 0x07, 0x2f, 0xc0, 0xa4, 0x05, 0x2f, 0xa2, 0x00, 0xeb, 0x04, 0x80, 0x40, 0x01,
+
257 0x80, 0x43, 0x42, 0x80, 0x42, 0x41, 0x86, 0x56, 0x6f, 0x62, 0x6f, 0x41, 0x6f, 0x42, 0x82, 0x72, 0x0e, 0x83, 0x7f,
+
258 0xd5, 0x2f, 0x53, 0x32, 0x8b, 0x00, 0xa1, 0x86, 0x56, 0x25, 0xf0, 0x82, 0x82, 0x40, 0x8d, 0xb0, 0x52, 0x40, 0xde,
+
259 0x00, 0x91, 0x7f, 0xb3, 0x7f, 0x85, 0x7f, 0xb3, 0x30, 0x7b, 0x52, 0x98, 0x2e, 0x5a, 0xca, 0x1a, 0x25, 0x83, 0x6f,
+
260 0x6d, 0x82, 0xfd, 0x88, 0x50, 0x7f, 0x71, 0x7f, 0x81, 0x7f, 0x05, 0x30, 0x83, 0x30, 0x00, 0x30, 0x11, 0x41, 0x52,
+
261 0x6f, 0x25, 0x7f, 0x30, 0x7f, 0x44, 0x7f, 0x98, 0x2e, 0x0f, 0xca, 0x73, 0x6f, 0x20, 0x25, 0x90, 0x6f, 0x7d, 0x52,
+
262 0xd2, 0x42, 0x73, 0x7f, 0x12, 0x7f, 0x98, 0x2e, 0x86, 0xb7, 0x93, 0x6f, 0x11, 0x6f, 0xd2, 0x40, 0x0a, 0x18, 0x31,
+
263 0x6f, 0x0e, 0x00, 0x93, 0x7f, 0x83, 0x30, 0x44, 0x6f, 0x21, 0x6f, 0x62, 0x6f, 0x62, 0x0e, 0x4f, 0x03, 0xe1, 0x2f,
+
264 0x33, 0x52, 0x01, 0x00, 0x01, 0x30, 0x69, 0x03, 0x3a, 0x25, 0xea, 0x82, 0x92, 0x6f, 0xf0, 0x86, 0xd1, 0xbe, 0x0f,
+
265 0xb8, 0xbd, 0x84, 0x94, 0x7f, 0x05, 0x0a, 0x23, 0x7f, 0x52, 0x7f, 0x40, 0x7f, 0x31, 0x7f, 0x71, 0x7f, 0xd3, 0x30,
+
266 0x84, 0x6f, 0x55, 0x6f, 0x10, 0x41, 0x52, 0x41, 0x41, 0x6f, 0x55, 0x7f, 0x10, 0x7f, 0x04, 0x7f, 0x98, 0x2e, 0x0f,
+
267 0xca, 0x11, 0x6f, 0x20, 0x25, 0x98, 0x2e, 0xfe, 0xc9, 0x31, 0x6f, 0x04, 0x6f, 0x50, 0x42, 0x31, 0x7f, 0xd3, 0x30,
+
268 0x21, 0x6f, 0x61, 0x0e, 0xea, 0x2f, 0xb1, 0x6f, 0x41, 0x84, 0x32, 0x25, 0x90, 0x40, 0x84, 0x40, 0x71, 0x6f, 0xb4,
+
269 0x7f, 0x72, 0x7f, 0x40, 0x7f, 0x33, 0x7f, 0x98, 0x2e, 0xb3, 0xc0, 0x53, 0x6f, 0xb1, 0x32, 0x99, 0x00, 0x83, 0xb9,
+
270 0x41, 0x6f, 0x4b, 0x00, 0xb0, 0x6f, 0x03, 0x30, 0xc3, 0x02, 0x84, 0x40, 0xb2, 0x7f, 0xa1, 0x84, 0x0d, 0xb1, 0x52,
+
271 0x7f, 0x56, 0x01, 0x74, 0x6f, 0x30, 0x6f, 0x92, 0x6f, 0x43, 0x8b, 0x03, 0x43, 0x01, 0x42, 0x95, 0x7f, 0xbd, 0x86,
+
272 0x51, 0x41, 0x41, 0x7f, 0x75, 0x7f, 0x00, 0x2e, 0xd1, 0x40, 0x42, 0x41, 0x32, 0x7f, 0x23, 0x7f, 0x98, 0x2e, 0x74,
+
273 0xc0, 0x41, 0x6f, 0xc8, 0x00, 0x90, 0x6f, 0x01, 0x30, 0x75, 0x6f, 0x32, 0x6f, 0x03, 0x42, 0x91, 0x02, 0x23, 0x6f,
+
274 0x61, 0x6f, 0x59, 0x0e, 0x62, 0x43, 0x95, 0x7f, 0xe7, 0x2f, 0xb2, 0x6f, 0x51, 0x6f, 0x82, 0x40, 0x8d, 0xb0, 0x8e,
+
275 0x00, 0xfd, 0x8a, 0xb2, 0x7f, 0x02, 0x30, 0x79, 0x52, 0x05, 0x25, 0x03, 0x30, 0x54, 0x40, 0xec, 0x01, 0x16, 0x40,
+
276 0x43, 0x89, 0xc7, 0x41, 0x37, 0x18, 0x3d, 0x8b, 0x96, 0x00, 0x44, 0x0e, 0xdf, 0x02, 0xf4, 0x2f, 0x09, 0x52, 0x51,
+
277 0x00, 0x02, 0x30, 0x9a, 0x02, 0xb5, 0x6f, 0x45, 0x87, 0x1b, 0xba, 0x25, 0xbc, 0x51, 0x6f, 0x4d, 0x8b, 0x7a, 0x82,
+
278 0xc6, 0x40, 0x20, 0x0a, 0x30, 0x00, 0xd0, 0x42, 0x2b, 0xb5, 0xc0, 0x40, 0x82, 0x02, 0x40, 0x34, 0x08, 0x00, 0xd2,
+
279 0x42, 0xb0, 0x7f, 0x75, 0x7f, 0x93, 0x7f, 0x00, 0x2e, 0xb5, 0x6f, 0xe2, 0x6f, 0x63, 0x41, 0x64, 0x41, 0x44, 0x8f,
+
280 0x82, 0x40, 0xe6, 0x41, 0xc0, 0x41, 0xc4, 0x8f, 0x45, 0x41, 0xf0, 0x7f, 0xb7, 0x7f, 0x61, 0x7f, 0x98, 0x2e, 0x67,
+
281 0xcc, 0x00, 0x18, 0x09, 0x52, 0x71, 0x00, 0x03, 0x30, 0xbb, 0x02, 0x1b, 0xba, 0x93, 0x6f, 0x25, 0xbc, 0x61, 0x6f,
+
282 0xc5, 0x40, 0x42, 0x82, 0x20, 0x0a, 0x28, 0x00, 0xd0, 0x42, 0x2b, 0xb9, 0xc0, 0x40, 0x82, 0x02, 0xd2, 0x42, 0x93,
+
283 0x7f, 0x00, 0x2e, 0x72, 0x6f, 0x5a, 0x0e, 0xd9, 0x2f, 0xb1, 0x6f, 0xf3, 0x3c, 0xcb, 0x00, 0xda, 0x82, 0xc3, 0x40,
+
284 0x41, 0x40, 0x59, 0x0e, 0x50, 0x2f, 0xe1, 0x6f, 0xe3, 0x32, 0xcb, 0x00, 0xb3, 0x7f, 0x22, 0x30, 0xc0, 0x40, 0x01,
+
285 0x80, 0xc0, 0x42, 0x02, 0xa2, 0x30, 0x2f, 0xc2, 0x42, 0x98, 0x2e, 0x83, 0xb1, 0xe1, 0x6f, 0xb3, 0x35, 0xcb, 0x00,
+
286 0x24, 0x3d, 0xc2, 0x40, 0xdc, 0x00, 0x84, 0x40, 0x00, 0x91, 0x93, 0x7f, 0x02, 0x2f, 0x00, 0x2e, 0x06, 0x2c, 0x0c,
+
287 0xb8, 0x30, 0x25, 0x00, 0x33, 0x48, 0x00, 0x98, 0x2e, 0xf6, 0xb6, 0x91, 0x6f, 0x90, 0x7f, 0x00, 0x2e, 0x44, 0x40,
+
288 0x20, 0x1a, 0x15, 0x2f, 0xd3, 0x6f, 0xc1, 0x6f, 0xc3, 0x40, 0x35, 0x5a, 0x42, 0x40, 0xd3, 0x7e, 0x08, 0xbc, 0x25,
+
289 0x09, 0xe2, 0x7e, 0xc4, 0x0a, 0x42, 0x82, 0xf3, 0x7e, 0xd1, 0x7f, 0x34, 0x30, 0x83, 0x6f, 0x82, 0x30, 0x31, 0x30,
+
290 0x98, 0x2e, 0xb3, 0x00, 0xd1, 0x6f, 0x93, 0x6f, 0x43, 0x42, 0xf0, 0x32, 0xb1, 0x6f, 0x41, 0x82, 0xe2, 0x6f, 0x43,
+
291 0x40, 0xc1, 0x86, 0xc2, 0xa2, 0x43, 0x42, 0x03, 0x30, 0x02, 0x2f, 0x90, 0x00, 0x00, 0x2e, 0x83, 0x42, 0x61, 0x88,
+
292 0x42, 0x40, 0x8d, 0xb0, 0x26, 0x00, 0x98, 0x2e, 0xd9, 0x03, 0x1c, 0x83, 0x00, 0x2e, 0x43, 0x42, 0x00, 0x2e, 0xab,
+
293 0x6f, 0xa0, 0x5e, 0xb8, 0x2e, 0xb1, 0x35, 0x40, 0x51, 0x41, 0x01, 0x02, 0x30, 0x1a, 0x25, 0x13, 0x30, 0x40, 0x25,
+
294 0x12, 0x42, 0x45, 0x0e, 0xfc, 0x2f, 0x65, 0x34, 0x28, 0x80, 0x25, 0x01, 0x13, 0x42, 0x44, 0x0e, 0xfc, 0x2f, 0x27,
+
295 0x80, 0x65, 0x56, 0x03, 0x42, 0x15, 0x80, 0xa3, 0x30, 0x03, 0x42, 0x04, 0x80, 0x4d, 0x56, 0x7f, 0x58, 0x13, 0x42,
+
296 0xd4, 0x7e, 0xc2, 0x7e, 0xf2, 0x7e, 0x6c, 0x8c, 0x81, 0x56, 0x83, 0x58, 0xe3, 0x7e, 0x04, 0x7f, 0x71, 0x8a, 0x97,
+
297 0x41, 0x17, 0x42, 0x75, 0x0e, 0xfb, 0x2f, 0x85, 0x5c, 0x87, 0x5e, 0x16, 0x7f, 0x36, 0x7f, 0x27, 0x7f, 0x00, 0x2e,
+
298 0x89, 0x5c, 0x8b, 0x5e, 0x46, 0x7f, 0x57, 0x7f, 0x76, 0x8c, 0x57, 0x41, 0x17, 0x42, 0x6e, 0x0e, 0xfb, 0x2f, 0x8d,
+
299 0x5a, 0x8f, 0x5e, 0x65, 0x7f, 0x87, 0x7f, 0x72, 0x7f, 0x00, 0x2e, 0x91, 0x5a, 0x93, 0x5e, 0x95, 0x7f, 0xa7, 0x7f,
+
300 0x7b, 0x8a, 0x97, 0x41, 0x17, 0x42, 0x75, 0x0e, 0xfb, 0x2f, 0x7f, 0x5c, 0xb2, 0x7f, 0xc6, 0x7f, 0xd3, 0x7f, 0xe2,
+
301 0x7f, 0xf4, 0x7f, 0x40, 0x82, 0x52, 0x41, 0x12, 0x42, 0x69, 0x0e, 0xfb, 0x2f, 0xc0, 0x5e, 0xb8, 0x2e, 0x03, 0x2e,
+
302 0x2d, 0x02, 0x9f, 0xbc, 0x9f, 0xb8, 0x20, 0x50, 0x40, 0xb2, 0x14, 0x2f, 0x10, 0x25, 0x01, 0x2e, 0x8d, 0x00, 0x00,
+
303 0x90, 0x0b, 0x2f, 0x97, 0x50, 0xf1, 0x7f, 0xeb, 0x7f, 0x98, 0x2e, 0x83, 0xb6, 0x01, 0x2e, 0x8d, 0x00, 0x01, 0x80,
+
304 0x21, 0x2e, 0x8d, 0x00, 0xf1, 0x6f, 0xeb, 0x6f, 0xe0, 0x5f, 0x97, 0x50, 0x80, 0x2e, 0xda, 0xb4, 0x00, 0x30, 0x21,
+
305 0x2e, 0x8d, 0x00, 0xe0, 0x5f, 0xb8, 0x2e, 0x41, 0x25, 0x42, 0x8a, 0x50, 0x50, 0x99, 0x52, 0x81, 0x80, 0x99, 0x09,
+
306 0xf5, 0x7f, 0x52, 0x25, 0x07, 0x52, 0x03, 0x8e, 0xd9, 0x08, 0x02, 0x40, 0x03, 0x81, 0x44, 0x83, 0x6c, 0xbb, 0xda,
+
307 0x0e, 0xe7, 0x7f, 0xdb, 0x7f, 0x20, 0x2f, 0x02, 0x41, 0x32, 0x1a, 0x1d, 0x2f, 0x42, 0x85, 0x00, 0x2e, 0x82, 0x40,
+
308 0xda, 0x0e, 0x03, 0x30, 0x05, 0x2f, 0xf1, 0x6f, 0x06, 0x30, 0x42, 0x40, 0x81, 0x84, 0x18, 0x2c, 0x42, 0x42, 0xbf,
+
309 0x85, 0x82, 0x00, 0x41, 0x40, 0x86, 0x40, 0x81, 0x8d, 0x86, 0x42, 0x20, 0x25, 0x13, 0x30, 0x06, 0x30, 0x97, 0x40,
+
310 0x81, 0x8d, 0xf9, 0x0f, 0x09, 0x2f, 0x85, 0xa3, 0xf9, 0x2f, 0x03, 0x30, 0x06, 0x2c, 0x06, 0x30, 0x9b, 0x52, 0xd9,
+
311 0x0e, 0x13, 0x30, 0x01, 0x30, 0xd9, 0x22, 0xc0, 0xb2, 0x12, 0x83, 0xc1, 0x7f, 0x03, 0x30, 0xb4, 0x7f, 0x06, 0x2f,
+
312 0x51, 0x30, 0x70, 0x25, 0x98, 0x2e, 0xe3, 0x03, 0xff, 0x81, 0x00, 0x2e, 0x03, 0x42, 0x43, 0x8b, 0xe0, 0x6f, 0xf1,
+
313 0x6f, 0x00, 0x40, 0x41, 0x40, 0xc8, 0x0f, 0x37, 0x2f, 0x00, 0x41, 0x80, 0xa7, 0x3c, 0x2f, 0x01, 0x83, 0x47, 0x8e,
+
314 0x42, 0x40, 0xfa, 0x01, 0x81, 0x84, 0x08, 0x89, 0x45, 0x41, 0x55, 0x0e, 0xc6, 0x43, 0x42, 0x42, 0xf4, 0x7f, 0x00,
+
315 0x2f, 0x43, 0x42, 0x51, 0x82, 0x70, 0x1a, 0x41, 0x40, 0x06, 0x2f, 0xc3, 0x6f, 0x41, 0x82, 0xc1, 0x42, 0xcd, 0x0e,
+
316 0x26, 0x2f, 0xc5, 0x42, 0x25, 0x2d, 0x7f, 0x82, 0x51, 0xbb, 0xa5, 0x00, 0xce, 0x0f, 0x12, 0x2f, 0x14, 0x30, 0x05,
+
317 0x30, 0xf7, 0x6f, 0x06, 0x30, 0x05, 0x2c, 0xe0, 0x7f, 0xd0, 0x41, 0x05, 0x1a, 0x23, 0x22, 0xb0, 0x01, 0x7a, 0x0e,
+
318 0xf9, 0x2f, 0x71, 0x0f, 0xe0, 0x6f, 0x28, 0x22, 0x41, 0x8b, 0x71, 0x22, 0x45, 0xa7, 0xee, 0x2f, 0xb3, 0x6f, 0xc2,
+
319 0x6f, 0xc0, 0x42, 0x81, 0x42, 0x08, 0x2d, 0x04, 0x25, 0xc4, 0x6f, 0x98, 0x2e, 0xea, 0x03, 0x00, 0x2e, 0x40, 0x41,
+
320 0x00, 0x43, 0x00, 0x30, 0xdb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0x10, 0x50, 0x03, 0x40, 0x19, 0x18, 0x37, 0x56, 0x19,
+
321 0x05, 0x36, 0x25, 0xf7, 0x7f, 0x4a, 0x17, 0x54, 0x18, 0xec, 0x18, 0x09, 0x17, 0x01, 0x30, 0x0c, 0x07, 0xe2, 0x18,
+
322 0xde, 0x00, 0xf2, 0x6f, 0x97, 0x02, 0x33, 0x58, 0xdc, 0x00, 0x91, 0x02, 0xbf, 0xb8, 0x21, 0xbd, 0x8a, 0x0a, 0xc0,
+
323 0x2e, 0x02, 0x42, 0xf0, 0x5f, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
324 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
325 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
326 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
327 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
328 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
329 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
330 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
331 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
332 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
333 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x01, 0x2e, 0x5d, 0xf7, 0x08, 0xbc, 0x80, 0xac, 0x0e, 0xbb, 0x02, 0x2f,
+
334 0x00, 0x30, 0x41, 0x04, 0x82, 0x06, 0xc0, 0xa4, 0x00, 0x30, 0x11, 0x2f, 0x40, 0xa9, 0x03, 0x2f, 0x40, 0x91, 0x0d,
+
335 0x2f, 0x00, 0xa7, 0x0b, 0x2f, 0x80, 0xb3, 0x33, 0x58, 0x02, 0x2f, 0x90, 0xa1, 0x26, 0x13, 0x20, 0x23, 0x80, 0x90,
+
336 0x10, 0x30, 0x01, 0x2f, 0xcc, 0x0e, 0x00, 0x2f, 0x00, 0x30, 0xb8, 0x2e, 0x35, 0x50, 0x18, 0x08, 0x08, 0xbc, 0x88,
+
337 0xb6, 0x0d, 0x17, 0xc6, 0xbd, 0x56, 0xbc, 0x37, 0x58, 0xda, 0xba, 0x04, 0x01, 0x1d, 0x0a, 0x10, 0x50, 0x05, 0x30,
+
338 0x32, 0x25, 0x45, 0x03, 0xfb, 0x7f, 0xf6, 0x30, 0x21, 0x25, 0x98, 0x2e, 0x37, 0xca, 0x16, 0xb5, 0x9a, 0xbc, 0x06,
+
339 0xb8, 0x80, 0xa8, 0x41, 0x0a, 0x0e, 0x2f, 0x80, 0x90, 0x02, 0x2f, 0x39, 0x50, 0x48, 0x0f, 0x09, 0x2f, 0xbf, 0xa0,
+
340 0x04, 0x2f, 0xbf, 0x90, 0x06, 0x2f, 0x37, 0x54, 0xca, 0x0f, 0x03, 0x2f, 0x00, 0x2e, 0x02, 0x2c, 0x37, 0x52, 0x39,
+
341 0x52, 0xf2, 0x33, 0x98, 0x2e, 0xd9, 0xc0, 0xfb, 0x6f, 0xf1, 0x37, 0xc0, 0x2e, 0x01, 0x08, 0xf0, 0x5f, 0x41, 0x56,
+
342 0x3b, 0x54, 0xd0, 0x40, 0xc4, 0x40, 0x0b, 0x2e, 0xfd, 0xf3, 0x41, 0x52, 0x90, 0x42, 0x94, 0x42, 0x95, 0x42, 0x05,
+
343 0x30, 0x43, 0x50, 0x0f, 0x88, 0x06, 0x40, 0x04, 0x41, 0x96, 0x42, 0xc5, 0x42, 0x48, 0xbe, 0x73, 0x30, 0x0d, 0x2e,
+
344 0x88, 0x00, 0x4f, 0xba, 0x84, 0x42, 0x03, 0x42, 0x81, 0xb3, 0x02, 0x2f, 0x2b, 0x2e, 0x6f, 0xf5, 0x06, 0x2d, 0x05,
+
345 0x2e, 0x77, 0xf7, 0x3f, 0x56, 0x93, 0x08, 0x25, 0x2e, 0x77, 0xf7, 0x3d, 0x54, 0x25, 0x2e, 0xc2, 0xf5, 0x07, 0x2e,
+
346 0xfd, 0xf3, 0x42, 0x30, 0xb4, 0x33, 0xda, 0x0a, 0x4c, 0x00, 0x27, 0x2e, 0xfd, 0xf3, 0x43, 0x40, 0xd4, 0x3f, 0xdc,
+
347 0x08, 0x43, 0x42, 0x00, 0x2e, 0x00, 0x2e, 0x43, 0x40, 0x24, 0x30, 0xdc, 0x0a, 0x43, 0x42, 0x04, 0x80, 0x03, 0x2e,
+
348 0xfd, 0xf3, 0x4a, 0x0a, 0x23, 0x2e, 0xfd, 0xf3, 0x61, 0x34, 0xc0, 0x2e, 0x01, 0x42, 0x00, 0x2e, 0x60, 0x50, 0x1a,
+
349 0x25, 0x7a, 0x86, 0xe0, 0x7f, 0xf3, 0x7f, 0x03, 0x25, 0x45, 0x52, 0x41, 0x84, 0xdb, 0x7f, 0x33, 0x30, 0x98, 0x2e,
+
350 0x16, 0xc2, 0x1a, 0x25, 0x7d, 0x82, 0xf0, 0x6f, 0xe2, 0x6f, 0x32, 0x25, 0x16, 0x40, 0x94, 0x40, 0x26, 0x01, 0x85,
+
351 0x40, 0x8e, 0x17, 0xc4, 0x42, 0x6e, 0x03, 0x95, 0x42, 0x41, 0x0e, 0xf4, 0x2f, 0xdb, 0x6f, 0xa0, 0x5f, 0xb8, 0x2e,
+
352 0xb0, 0x51, 0xfb, 0x7f, 0x98, 0x2e, 0xe8, 0x0d, 0x5a, 0x25, 0x98, 0x2e, 0x0f, 0x0e, 0x4f, 0x58, 0x32, 0x87, 0xc4,
+
353 0x7f, 0x65, 0x89, 0x6b, 0x8d, 0x47, 0x5a, 0x65, 0x7f, 0xe1, 0x7f, 0x83, 0x7f, 0xa6, 0x7f, 0x74, 0x7f, 0xd0, 0x7f,
+
354 0xb6, 0x7f, 0x94, 0x7f, 0x17, 0x30, 0x49, 0x52, 0x4b, 0x54, 0x51, 0x7f, 0x00, 0x2e, 0x85, 0x6f, 0x42, 0x7f, 0x00,
+
355 0x2e, 0x51, 0x41, 0x45, 0x81, 0x42, 0x41, 0x13, 0x40, 0x3b, 0x8a, 0x00, 0x40, 0x4b, 0x04, 0xd0, 0x06, 0xc0, 0xac,
+
356 0x85, 0x7f, 0x02, 0x2f, 0x02, 0x30, 0x51, 0x04, 0xd3, 0x06, 0x41, 0x84, 0x05, 0x30, 0x5d, 0x02, 0xc9, 0x16, 0xdf,
+
357 0x08, 0xd3, 0x00, 0x8d, 0x02, 0xaf, 0xbc, 0xb1, 0xb9, 0x59, 0x0a, 0x65, 0x6f, 0x11, 0x43, 0xa1, 0xb4, 0x52, 0x41,
+
358 0x53, 0x41, 0x01, 0x43, 0x34, 0x7f, 0x65, 0x7f, 0x26, 0x31, 0xe5, 0x6f, 0xd4, 0x6f, 0x98, 0x2e, 0x37, 0xca, 0x32,
+
359 0x6f, 0x75, 0x6f, 0x83, 0x40, 0x42, 0x41, 0x23, 0x7f, 0x12, 0x7f, 0xf6, 0x30, 0x40, 0x25, 0x51, 0x25, 0x98, 0x2e,
+
360 0x37, 0xca, 0x14, 0x6f, 0x20, 0x05, 0x70, 0x6f, 0x25, 0x6f, 0x69, 0x07, 0xa2, 0x6f, 0x31, 0x6f, 0x0b, 0x30, 0x04,
+
361 0x42, 0x9b, 0x42, 0x8b, 0x42, 0x55, 0x42, 0x32, 0x7f, 0x40, 0xa9, 0xc3, 0x6f, 0x71, 0x7f, 0x02, 0x30, 0xd0, 0x40,
+
362 0xc3, 0x7f, 0x03, 0x2f, 0x40, 0x91, 0x15, 0x2f, 0x00, 0xa7, 0x13, 0x2f, 0x00, 0xa4, 0x11, 0x2f, 0x84, 0xbd, 0x98,
+
363 0x2e, 0x79, 0xca, 0x55, 0x6f, 0x37, 0x54, 0x54, 0x41, 0x82, 0x00, 0xf3, 0x3f, 0x45, 0x41, 0xcb, 0x02, 0xf6, 0x30,
+
364 0x98, 0x2e, 0x37, 0xca, 0x35, 0x6f, 0xa4, 0x6f, 0x41, 0x43, 0x03, 0x2c, 0x00, 0x43, 0xa4, 0x6f, 0x35, 0x6f, 0x17,
+
365 0x30, 0x42, 0x6f, 0x51, 0x6f, 0x93, 0x40, 0x42, 0x82, 0x00, 0x41, 0xc3, 0x00, 0x03, 0x43, 0x51, 0x7f, 0x00, 0x2e,
+
366 0x94, 0x40, 0x41, 0x41, 0x4c, 0x02, 0xc4, 0x6f, 0x55, 0x56, 0x63, 0x0e, 0x74, 0x6f, 0x51, 0x43, 0xa5, 0x7f, 0x8a,
+
367 0x2f, 0x09, 0x2e, 0x88, 0x00, 0x01, 0xb3, 0x21, 0x2f, 0x4f, 0x58, 0x90, 0x6f, 0x13, 0x41, 0xb6, 0x6f, 0xe4, 0x7f,
+
368 0x00, 0x2e, 0x91, 0x41, 0x14, 0x40, 0x92, 0x41, 0x15, 0x40, 0x17, 0x2e, 0x6f, 0xf5, 0xb6, 0x7f, 0xd0, 0x7f, 0xcb,
+
369 0x7f, 0x98, 0x2e, 0x00, 0x0c, 0x07, 0x15, 0xc2, 0x6f, 0x14, 0x0b, 0x29, 0x2e, 0x6f, 0xf5, 0xc3, 0xa3, 0xc1, 0x8f,
+
370 0xe4, 0x6f, 0xd0, 0x6f, 0xe6, 0x2f, 0x14, 0x30, 0x05, 0x2e, 0x6f, 0xf5, 0x14, 0x0b, 0x29, 0x2e, 0x6f, 0xf5, 0x18,
+
371 0x2d, 0x51, 0x56, 0x04, 0x32, 0xb5, 0x6f, 0x1c, 0x01, 0x51, 0x41, 0x52, 0x41, 0xc3, 0x40, 0xb5, 0x7f, 0xe4, 0x7f,
+
372 0x98, 0x2e, 0x1f, 0x0c, 0xe4, 0x6f, 0x21, 0x87, 0x00, 0x43, 0x04, 0x32, 0x53, 0x54, 0x5a, 0x0e, 0xef, 0x2f, 0x4d,
+
373 0x54, 0x09, 0x2e, 0x77, 0xf7, 0x22, 0x0b, 0x29, 0x2e, 0x77, 0xf7, 0xfb, 0x6f, 0x50, 0x5e, 0xb8, 0x2e, 0x10, 0x50,
+
374 0x01, 0x2e, 0x84, 0x00, 0x00, 0xb2, 0xfb, 0x7f, 0x51, 0x2f, 0x01, 0xb2, 0x48, 0x2f, 0x02, 0xb2, 0x42, 0x2f, 0x03,
+
375 0x90, 0x56, 0x2f, 0x5b, 0x52, 0x79, 0x80, 0x42, 0x40, 0x81, 0x84, 0x00, 0x40, 0x42, 0x42, 0x98, 0x2e, 0x93, 0x0c,
+
376 0x5d, 0x54, 0x5b, 0x50, 0xa1, 0x40, 0x98, 0xbd, 0x82, 0x40, 0x3e, 0x82, 0xda, 0x0a, 0x44, 0x40, 0x8b, 0x16, 0xe3,
+
377 0x00, 0x53, 0x42, 0x00, 0x2e, 0x43, 0x40, 0x9a, 0x02, 0x52, 0x42, 0x00, 0x2e, 0x41, 0x40, 0x4d, 0x54, 0x4a, 0x0e,
+
378 0x3a, 0x2f, 0x3a, 0x82, 0x00, 0x30, 0x41, 0x40, 0x21, 0x2e, 0x6c, 0x0f, 0x40, 0xb2, 0x0a, 0x2f, 0x98, 0x2e, 0xb1,
+
379 0x0c, 0x98, 0x2e, 0x45, 0x0e, 0x98, 0x2e, 0x5b, 0x0e, 0xfb, 0x6f, 0xf0, 0x5f, 0x00, 0x30, 0x80, 0x2e, 0xba, 0x03,
+
380 0x61, 0x52, 0x57, 0x54, 0x42, 0x42, 0x4f, 0x84, 0x73, 0x30, 0x5f, 0x52, 0x83, 0x42, 0x1b, 0x30, 0x6b, 0x42, 0x23,
+
381 0x30, 0x27, 0x2e, 0x87, 0x00, 0x37, 0x2e, 0x84, 0x00, 0x21, 0x2e, 0x86, 0x00, 0x7a, 0x84, 0x17, 0x2c, 0x42, 0x42,
+
382 0x30, 0x30, 0x21, 0x2e, 0x84, 0x00, 0x12, 0x2d, 0x21, 0x30, 0x00, 0x30, 0x23, 0x2e, 0x84, 0x00, 0x21, 0x2e, 0x7b,
+
383 0xf7, 0x0b, 0x2d, 0x17, 0x30, 0x98, 0x2e, 0x51, 0x0c, 0x59, 0x50, 0x0c, 0x82, 0x72, 0x30, 0x2f, 0x2e, 0x84, 0x00,
+
384 0x25, 0x2e, 0x7b, 0xf7, 0x40, 0x42, 0x00, 0x2e, 0xfb, 0x6f, 0xf0, 0x5f, 0xb8, 0x2e, 0x70, 0x50, 0x0a, 0x25, 0x39,
+
385 0x86, 0xfb, 0x7f, 0xe1, 0x32, 0x62, 0x30, 0x98, 0x2e, 0xc2, 0xc4, 0x35, 0x56, 0xa5, 0x6f, 0xab, 0x08, 0x91, 0x6f,
+
386 0x4b, 0x08, 0x63, 0x56, 0xc4, 0x6f, 0x23, 0x09, 0x4d, 0xba, 0x93, 0xbc, 0x8c, 0x0b, 0xd1, 0x6f, 0x0b, 0x09, 0x4f,
+
387 0x52, 0x65, 0x5e, 0x56, 0x42, 0xaf, 0x09, 0x4d, 0xba, 0x23, 0xbd, 0x94, 0x0a, 0xe5, 0x6f, 0x68, 0xbb, 0xeb, 0x08,
+
388 0xbd, 0xb9, 0x63, 0xbe, 0xfb, 0x6f, 0x52, 0x42, 0xe3, 0x0a, 0xc0, 0x2e, 0x43, 0x42, 0x90, 0x5f, 0x55, 0x50, 0x03,
+
389 0x2e, 0x25, 0xf3, 0x13, 0x40, 0x00, 0x40, 0x9b, 0xbc, 0x9b, 0xb4, 0x08, 0xbd, 0xb8, 0xb9, 0x98, 0xbc, 0xda, 0x0a,
+
390 0x08, 0xb6, 0x89, 0x16, 0xc0, 0x2e, 0x19, 0x00, 0x62, 0x02, 0x10, 0x50, 0xfb, 0x7f, 0x98, 0x2e, 0x81, 0x0d, 0x01,
+
391 0x2e, 0x84, 0x00, 0x31, 0x30, 0x08, 0x04, 0xfb, 0x6f, 0x01, 0x30, 0xf0, 0x5f, 0x23, 0x2e, 0x86, 0x00, 0x21, 0x2e,
+
392 0x87, 0x00, 0xb8, 0x2e, 0x01, 0x2e, 0x87, 0x00, 0x03, 0x2e, 0x86, 0x00, 0x48, 0x0e, 0x01, 0x2f, 0x80, 0x2e, 0x1f,
+
393 0x0e, 0xb8, 0x2e, 0x67, 0x50, 0x21, 0x34, 0x01, 0x42, 0x82, 0x30, 0xc1, 0x32, 0x25, 0x2e, 0x62, 0xf5, 0x01, 0x00,
+
394 0x22, 0x30, 0x01, 0x40, 0x4a, 0x0a, 0x01, 0x42, 0xb8, 0x2e, 0x67, 0x54, 0xf0, 0x3b, 0x83, 0x40, 0xd8, 0x08, 0x69,
+
395 0x52, 0x83, 0x42, 0x00, 0x30, 0x83, 0x30, 0x50, 0x42, 0xc4, 0x32, 0x27, 0x2e, 0x64, 0xf5, 0x94, 0x00, 0x50, 0x42,
+
396 0x40, 0x42, 0xd3, 0x3f, 0x84, 0x40, 0x7d, 0x82, 0xe3, 0x08, 0x40, 0x42, 0x83, 0x42, 0xb8, 0x2e, 0x61, 0x52, 0x00,
+
397 0x30, 0x40, 0x42, 0x7c, 0x86, 0x3b, 0x52, 0x09, 0x2e, 0x57, 0x0f, 0x41, 0x54, 0xc4, 0x42, 0xd3, 0x86, 0x54, 0x40,
+
398 0x55, 0x40, 0x94, 0x42, 0x85, 0x42, 0x21, 0x2e, 0x87, 0x00, 0x42, 0x40, 0x25, 0x2e, 0xfd, 0xf3, 0xc0, 0x42, 0x7e,
+
399 0x82, 0x05, 0x2e, 0x79, 0x00, 0x80, 0xb2, 0x14, 0x2f, 0x05, 0x2e, 0x24, 0x02, 0x27, 0xbd, 0x2f, 0xb9, 0x80, 0x90,
+
400 0x02, 0x2f, 0x21, 0x2e, 0x6f, 0xf5, 0x0c, 0x2d, 0x07, 0x2e, 0x58, 0x0f, 0x14, 0x30, 0x1c, 0x09, 0x05, 0x2e, 0x77,
+
401 0xf7, 0x3f, 0x56, 0x47, 0xbe, 0x93, 0x08, 0x94, 0x0a, 0x25, 0x2e, 0x77, 0xf7, 0x6b, 0x54, 0x50, 0x42, 0x4a, 0x0e,
+
402 0xfc, 0x2f, 0xb8, 0x2e, 0x50, 0x50, 0x02, 0x30, 0x43, 0x86, 0x69, 0x50, 0xfb, 0x7f, 0xe3, 0x7f, 0xd2, 0x7f, 0xc0,
+
403 0x7f, 0xb1, 0x7f, 0x00, 0x2e, 0x41, 0x40, 0x00, 0x40, 0x48, 0x04, 0x98, 0x2e, 0x74, 0xc0, 0x1e, 0xaa, 0xd3, 0x6f,
+
404 0x14, 0x30, 0xb1, 0x6f, 0xe3, 0x22, 0xc0, 0x6f, 0x52, 0x40, 0xe4, 0x6f, 0x4c, 0x0e, 0x12, 0x42, 0xd3, 0x7f, 0xeb,
+
405 0x2f, 0x03, 0x2e, 0x6d, 0x0f, 0x40, 0x90, 0x11, 0x30, 0x03, 0x2f, 0x23, 0x2e, 0x6d, 0x0f, 0x02, 0x2c, 0x00, 0x30,
+
406 0xd0, 0x6f, 0xfb, 0x6f, 0xb0, 0x5f, 0xb8, 0x2e, 0x40, 0x50, 0xf1, 0x7f, 0x0a, 0x25, 0x3c, 0x86, 0xeb, 0x7f, 0x41,
+
407 0x33, 0x22, 0x30, 0x98, 0x2e, 0xc2, 0xc4, 0xd3, 0x6f, 0xf4, 0x30, 0xdc, 0x09, 0x6f, 0x58, 0xc2, 0x6f, 0x94, 0x09,
+
408 0x71, 0x58, 0x6a, 0xbb, 0xdc, 0x08, 0xb4, 0xb9, 0xb1, 0xbd, 0x6d, 0x5a, 0x95, 0x08, 0x21, 0xbd, 0xf6, 0xbf, 0x77,
+
409 0x0b, 0x51, 0xbe, 0xf1, 0x6f, 0xeb, 0x6f, 0x52, 0x42, 0x54, 0x42, 0xc0, 0x2e, 0x43, 0x42, 0xc0, 0x5f, 0x50, 0x50,
+
410 0x75, 0x52, 0x93, 0x30, 0x53, 0x42, 0xfb, 0x7f, 0x7b, 0x30, 0x4b, 0x42, 0x13, 0x30, 0x42, 0x82, 0x20, 0x33, 0x43,
+
411 0x42, 0xc8, 0x00, 0x01, 0x2e, 0x80, 0x03, 0x05, 0x2e, 0x7d, 0x00, 0x19, 0x52, 0xe2, 0x7f, 0xd0, 0x7f, 0xc3, 0x7f,
+
412 0x98, 0x2e, 0xb6, 0x0e, 0xd1, 0x6f, 0x48, 0x0a, 0xd1, 0x7f, 0x3a, 0x25, 0xfb, 0x86, 0x01, 0x33, 0x12, 0x30, 0x98,
+
413 0x2e, 0xc2, 0xc4, 0xd1, 0x6f, 0x48, 0x0a, 0x40, 0xb2, 0x0d, 0x2f, 0xe0, 0x6f, 0x03, 0x2e, 0x80, 0x03, 0x53, 0x30,
+
414 0x07, 0x80, 0x27, 0x2e, 0x21, 0xf2, 0x98, 0xbc, 0x01, 0x42, 0x98, 0x2e, 0x91, 0x03, 0x00, 0x2e, 0x00, 0x2e, 0xd0,
+
415 0x2e, 0xb1, 0x6f, 0x9b, 0xb8, 0x07, 0x2e, 0x1b, 0x00, 0x19, 0x1a, 0xb1, 0x7f, 0x71, 0x30, 0x04, 0x2f, 0x23, 0x2e,
+
416 0x21, 0xf2, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0x98, 0x2e, 0x6d, 0xc0, 0x98, 0x2e, 0x5d, 0xc0, 0x98, 0x2e, 0xdf,
+
417 0x03, 0x20, 0x26, 0xc1, 0x6f, 0x02, 0x31, 0x52, 0x42, 0xab, 0x30, 0x4b, 0x42, 0x20, 0x33, 0x77, 0x56, 0xf1, 0x37,
+
418 0xc4, 0x40, 0xa2, 0x0a, 0xc2, 0x42, 0xd8, 0x00, 0x01, 0x2e, 0x5e, 0xf7, 0x41, 0x08, 0x23, 0x2e, 0x94, 0x00, 0xe3,
+
419 0x7f, 0x98, 0x2e, 0xaa, 0x01, 0xe1, 0x6f, 0x83, 0x30, 0x43, 0x42, 0x03, 0x30, 0xfb, 0x6f, 0x73, 0x50, 0x02, 0x30,
+
420 0x00, 0x2e, 0x00, 0x2e, 0x81, 0x84, 0x50, 0x0e, 0xfa, 0x2f, 0x43, 0x42, 0x11, 0x30, 0xb0, 0x5f, 0x23, 0x2e, 0x21,
+
421 0xf2, 0xb8, 0x2e, 0xc1, 0x4a, 0x00, 0x00, 0x6d, 0x57, 0x00, 0x00, 0x77, 0x8e, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff,
+
422 0xd3, 0xff, 0xff, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xee, 0xe1, 0xff, 0xff, 0x7c, 0x13, 0x00, 0x00, 0x46, 0xe6, 0xff,
+
423 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
424 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
425 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
426 0x00, 0x00, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
427 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
428 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
429 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
430 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
431 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
432 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
433 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
434 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
435 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
436 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
437 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e,
+
438 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80,
+
439 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1,
+
440 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00, 0xc1, 0x80, 0x2e, 0x00,
+
441 0xc1, 0xfd, 0x2d
+
442};
+
+
443
+ + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html new file mode 100644 index 0000000..35c46a4 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html @@ -0,0 +1,671 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include "esp_log.h"
+#include "ssd1306.h"
+#include "bsp/esp-bsp.h"
+#include "esp_dsp.h"
+#include "cube_matrix.h"
+#include "esp_logo.h"
+#include "esp_text.h"
+#include "graphics_support.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + +

+Functions

void app_main ()
static void init_3d_matrix_struct (image_3d_matrix_t *image)
 Initialize 3d image structure.
static void app_ssd1306_init (void)
 Initialize display.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void dispaly_esp_text (void)
 Display ESPRESSIF text.
static void draw_3d_image_task (void *arg)
 RTOS task to draw a 3d image.
+ + + + +

+Variables

static ssd1306_handle_t ssd1306_dev = NULL
static bool button_pressed = true
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
+

Function Documentation

+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 203 of file external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
204{
+
205 static bool button_prev_val = false;
+ + +
208 ekf13->Init();
+
209
+
210 // Init all board components
+
211 bsp_i2c_init();
+
212 app_ssd1306_init(); // display init
+
213 bsp_leds_init(); // LEDs init
+
214 bsp_i2c_set_clk_speed(I2C_CLK_600KHZ); // Set I2C to 600kHz
+
215
+ + +
218
+ +
220 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
221
+
222 xTaskCreate(draw_3d_image_task, "draw_3d_image", 2048, &image, 4, NULL);
+
223 ESP_LOGI("3D image demo", "Showing 3D image");
+
224
+
225 while (1) {
+
226 if (bsp_button_get()) {
+ +
228 }
+
229
+
230 if (button_prev_val != button_pressed) {
+
231 button_prev_val = button_pressed;
+
232 if (button_pressed) {
+
233 bsp_led_set(BSP_LED_AZURE, true);
+
234 } else {
+
235 bsp_led_set(BSP_LED_AZURE, false);
+
236 }
+
237 }
+
238 vTaskDelay(100 / portTICK_PERIOD_MS);
+
239 }
+
240}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + + +
This class is used to process and calculate attitude from imu sensors.
+
static void dispaly_esp_text(void)
Display ESPRESSIF text.
+
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+
static void app_ssd1306_init(void)
Initialize display.
+
+

References app_ssd1306_init(), bsp_i2c_init(), button_pressed, dispaly_esp_text(), draw_3d_image_task(), ekf13, image, init_3d_matrix_struct(), init_perspective_matrix(), and perspective_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ app_ssd1306_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_ssd1306_init (void )
+
+static
+
+ +

Initialize display.

+ +

Definition at line 53 of file external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
54{
+
55 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
56 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
57 ssd1306_refresh_gram(ssd1306_dev);
+
58}
+ +
+

References ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dispaly_esp_text()

+ +
+
+ + + + + +
+ + + + + + + +
void dispaly_esp_text (void )
+
+static
+
+ +

Display ESPRESSIF text.

+

To demonstrate usage of the translation and scaling matrices

+ +

Definition at line 96 of file external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
97{
+
98 image_3d_matrix_t esp_text;
+ +
100 esp_text.matrix_len = ((sizeof(image_3d_array_esp_text)) / sizeof(float)) / MATRIX_SIZE;
+
101 int16_t shift_x = -SSD1606_X_CENTER;
+
102
+
103 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
104 dspm::Mat transformed_image(esp_text.matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
105 dspm::Mat matrix_3d((float *)esp_text.matrix[0], esp_text.matrix_len, MATRIX_SIZE);
+
106
+
107 ESP_LOGI("3D image demo", "Showing ESP text");
+
108
+
109 for (int i = 0; i < 52; i++) {
+
110 update_translation_matrix(T, true, (float)shift_x, (float)SSD1606_Y_CENTER, 0);
+
111 transformed_image = matrix_3d * T;
+
112
+
113 ssd1306_clear_screen(ssd1306_dev, 0);
+
114 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
115 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
116 }
+
117 ssd1306_refresh_gram(ssd1306_dev);
+
118 vTaskDelay(50 / portTICK_PERIOD_MS);
+
119
+
120 shift_x += 5;
+
121 }
+
122
+
123 ssd1306_clear_screen(ssd1306_dev, 0);
+
124 ssd1306_draw_bitmap(ssd1306_dev, 0, 24, &image_bmp_array_esp_text[0], 128, 24);
+
125 ssd1306_refresh_gram(ssd1306_dev);
+
126
+ +
128 vTaskDelay(100 / portTICK_PERIOD_MS);
+
129
+
130 float scale = 1;
+
131 for (int i = 0; i < 20; i++) {
+
132 update_scaling_matrix(T, false, scale, scale, 1);
+
133 transformed_image = matrix_3d * T;
+
134
+
135 ssd1306_clear_screen(ssd1306_dev, 0);
+
136 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
137 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
138 }
+
139 ssd1306_refresh_gram(ssd1306_dev);
+
140 vTaskDelay(50 / portTICK_PERIOD_MS);
+
141
+
142 if (i < 10) {
+
143 scale -= 0.05;
+
144 } else {
+
145 scale += 0.05;
+
146 }
+
147 }
+
148}
+ + +
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+ + + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+ + +
+

References dspm::Mat::eye(), image_3d_array_esp_text, image_bmp_array_esp_text, image_3d_matrix_s::matrix, image_3d_matrix_s::matrix_len, MATRIX_SIZE, dspm::Mat::rows, ssd1306_dev, SSD1606_X_CENTER, SSD1606_Y_CENTER, update_scaling_matrix(), and update_translation_matrix().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 68 of file external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
69{
+
70 ssd1306_clear_screen(ssd1306_dev, 0);
+
71
+
72 if (OBJECT_3D_CUBE) {
+
73 // For the 3D cube, only the 6 points of the cube are transformed
+
74 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
75 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
76 ssd1306_draw_line(ssd1306_dev,
+
77 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
78 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
79 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
80 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
81 }
+
82 } else {
+
83 // Every other 3D image is drawn here pixel by pixel
+
84 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
85 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
86 }
+
87 }
+
88 ssd1306_refresh_gram(ssd1306_dev);
+
89}
+ + + + +
int rows
Definition mat.h:33
+
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, OBJECT_3D_CUBE, dspm::Mat::rows, and ssd1306_dev.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image_task()

+ +
+
+ + + + + +
+ + + + + + + +
void draw_3d_image_task (void * arg)
+
+static
+
+ +

RTOS task to draw a 3d image.

+

Updates 3d matrices, prepares the final 3d matrix to be displayed on the display

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 157 of file external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
158{
+
159 float rot_y = 0, rot_x = 0;
+
160 const float angle_increment = 4;
+ +
162
+
163 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
164 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
165 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
166 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
167
+
168 if (OBJECT_3D_CUBE) {
+
169 rot_x = 45;
+
170 }
+
171
+
172 while (1) {
+
173 if (button_pressed) {
+
174 rot_y += angle_increment;
+
175 if (rot_y >= 360) {
+
176 rot_y -= 360;
+
177 }
+
178 } else {
+
179 rot_y -= angle_increment;
+
180 if (rot_y <= 0) {
+
181 rot_y += 360;
+
182 }
+
183 }
+
184
+
185 // Apply rotation in all the axes to the transformation matrix
+
186 update_rotation_matrix(T, rot_x, rot_y, 0);
+
187 // Apply translation to the transformation matrix
+
188 update_translation_matrix(T, true, ((float)SSD1606_X_CENTER), ((float)SSD1606_Y_CENTER), 0);
+
189
+
190 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
191 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
192
+
193 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
194 transformed_image = matrix_3d * T;
+
195 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
196 projected_image = transformed_image * perspective_matrix;
+
197
+
198 display_3d_image(projected_image);
+
199 vTaskDelay(20 / portTICK_PERIOD_MS);
+
200 }
+
201}
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
+

References button_pressed, display_3d_image(), dspm::Mat::eye(), image, MATRIX_SIZE, OBJECT_3D_CUBE, perspective_matrix, SSD1606_X_CENTER, SSD1606_Y_CENTER, update_rotation_matrix(), and update_translation_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_t * image)
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + +
image3d image structure
+
+
+ +

Definition at line 33 of file external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
34{
+
35#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
37 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
38 ESP_LOGI("3D image demo", "Selected 3D image - ESP Logo");
+
39#elif CONFIG_3D_OBJECT_CUSTOM
+ +
41 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
42 ESP_LOGI("3D image demo", "Selected 3D image - User's custom image");
+
43#elif CONFIG_3D_OBJECT_CUBE
+
44 image->matrix = cube_vectors_3d;
+
45 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
46 ESP_LOGI("3D image demo", "Selected 3D image - 3D cube");
+
47#endif
+
48}
+ +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
+

References cube_vectors_3d, image, image_3d_matrix_esp_logo, image_to_3d_matrix_custom, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ button_pressed

+ +
+
+ + + + + +
+ + + + +
bool button_pressed = true
+
+static
+
+
+ +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ ssd1306_dev

+ +
+
+ + + + + +
+ + + + +
ssd1306_handle_t ssd1306_dev = NULL
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js new file mode 100644 index 0000000..694409c --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js @@ -0,0 +1,12 @@ +var external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp = +[ + [ "app_main", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "app_ssd1306_init", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#afac7c47eff81b6719e589256c8799d5e", null ], + [ "dispaly_esp_text", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a0edd8bfc49beafeacd3540ba291680c3", null ], + [ "display_3d_image", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image_task", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af3debef909dca35dbf0b6f842df6def3", null ], + [ "init_3d_matrix_struct", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a3340d28d7e9de0fd62d17e02ce70a52c", null ], + [ "button_pressed", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af23a0eb11ff9589330539e6b763badc8", null ], + [ "perspective_matrix", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "ssd1306_dev", "external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a001a4d44724bfb0668ac6de0d351ae75", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 new file mode 100644 index 0000000..43d1458 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +69f4872736eca28f0487ccf3e819fd6b \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg new file mode 100644 index 0000000..17175dd --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg @@ -0,0 +1,1744 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +bsp/esp-bsp.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +esp_text.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +graphics_support.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +image_to_3d_matrix.h + + + + + +Node1->Node79 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node3 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..0819c57 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg @@ -0,0 +1,1661 @@ + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +bsp/esp-bsp.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +esp_text.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +graphics_support.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +image_to_3d_matrix.h + + + + + +Node1->Node79 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node3 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 new file mode 100644 index 0000000..ddfaf75 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 @@ -0,0 +1 @@ +14552d159a36a965afa4304797e7f116 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg new file mode 100644 index 0000000..f132f9c --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +update_scaling_matrix + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +update_translation +_matrix + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg new file mode 100644 index 0000000..4146521 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg @@ -0,0 +1,112 @@ + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +update_scaling_matrix + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +update_translation +_matrix + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 new file mode 100644 index 0000000..fa676dd --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 @@ -0,0 +1 @@ +50d90a7ee862f27d53f21971050216b7 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg new file mode 100644 index 0000000..bdacf26 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg new file mode 100644 index 0000000..06562fb --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 new file mode 100644 index 0000000..efa2e58 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 @@ -0,0 +1 @@ +1b102444e2ff6b1a60b9f68b0b255c70 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg new file mode 100644 index 0000000..c4eada3 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg new file mode 100644 index 0000000..3c6bfee --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..97999cf --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +5291dc634a90e545af152dda46dbe959 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..d23da1d --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..428ed52 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..5a654b0 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +76845b548dcfd390e61d20854d12c54e \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..8add876 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_ssd1306_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +init_3d_matrix_struct + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +init_perspective_matrix + + + + + +Node1->Node16 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +update_scaling_matrix + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +ekf::eul2rotm + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dspm::Mat::t + + + + + +Node12->Node14 + + + + + + + + +Node14->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..6003ce6 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,301 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_ssd1306_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +init_3d_matrix_struct + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +init_perspective_matrix + + + + + +Node1->Node16 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +update_scaling_matrix + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +ekf::eul2rotm + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dspm::Mat::t + + + + + +Node12->Node14 + + + + + + + + +Node14->Node6 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 new file mode 100644 index 0000000..5bafdbf --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 @@ -0,0 +1 @@ +2ce3797c1ed5a5eb70b2ba1b231fe825 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg new file mode 100644 index 0000000..f4785e3 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg new file mode 100644 index 0000000..3be1ab5 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg @@ -0,0 +1,175 @@ + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 new file mode 100644 index 0000000..af9ec8a --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 @@ -0,0 +1 @@ +06d4b3d4a46fb9584780a1ab38b0509a \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg new file mode 100644 index 0000000..0072dac --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg new file mode 100644 index 0000000..4fd1482 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html new file mode 100644 index 0000000..a36b0d8 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html @@ -0,0 +1,366 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/d1468452/apps/3d_graphics/main/3d_graphics_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include "esp_log.h"
+
9#include "ssd1306.h"
+
10#include "bsp/esp-bsp.h"
+
11#include "esp_dsp.h"
+
12#include "cube_matrix.h"
+
13#include "esp_logo.h"
+
14#include "esp_text.h"
+
15#include "graphics_support.h"
+
16#include "image_to_3d_matrix.h"
+
17
+
18static ssd1306_handle_t ssd1306_dev = NULL;
+
19static bool button_pressed = true;
+
20
+ +
22
+
23extern "C" void app_main();
+
24
+
+ +
34{
+
35#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
37 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
38 ESP_LOGI("3D image demo", "Selected 3D image - ESP Logo");
+
39#elif CONFIG_3D_OBJECT_CUSTOM
+ +
41 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
42 ESP_LOGI("3D image demo", "Selected 3D image - User's custom image");
+
43#elif CONFIG_3D_OBJECT_CUBE
+
44 image->matrix = cube_vectors_3d;
+
45 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
46 ESP_LOGI("3D image demo", "Selected 3D image - 3D cube");
+
47#endif
+
48}
+
+
49
+
+
53static void app_ssd1306_init(void)
+
54{
+
55 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
56 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
57 ssd1306_refresh_gram(ssd1306_dev);
+
58}
+
+
59
+
+
68static void display_3d_image(dspm::Mat projected_image)
+
69{
+
70 ssd1306_clear_screen(ssd1306_dev, 0);
+
71
+
72 if (OBJECT_3D_CUBE) {
+
73 // For the 3D cube, only the 6 points of the cube are transformed
+
74 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
75 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
76 ssd1306_draw_line(ssd1306_dev,
+
77 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
78 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
79 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
80 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
81 }
+
82 } else {
+
83 // Every other 3D image is drawn here pixel by pixel
+
84 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
85 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
86 }
+
87 }
+
88 ssd1306_refresh_gram(ssd1306_dev);
+
89}
+
+
90
+
+
96static void dispaly_esp_text(void)
+
97{
+
98 image_3d_matrix_t esp_text;
+ +
100 esp_text.matrix_len = ((sizeof(image_3d_array_esp_text)) / sizeof(float)) / MATRIX_SIZE;
+
101 int16_t shift_x = -SSD1606_X_CENTER;
+
102
+
103 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
104 dspm::Mat transformed_image(esp_text.matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
105 dspm::Mat matrix_3d((float *)esp_text.matrix[0], esp_text.matrix_len, MATRIX_SIZE);
+
106
+
107 ESP_LOGI("3D image demo", "Showing ESP text");
+
108
+
109 for (int i = 0; i < 52; i++) {
+
110 update_translation_matrix(T, true, (float)shift_x, (float)SSD1606_Y_CENTER, 0);
+
111 transformed_image = matrix_3d * T;
+
112
+
113 ssd1306_clear_screen(ssd1306_dev, 0);
+
114 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
115 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
116 }
+
117 ssd1306_refresh_gram(ssd1306_dev);
+
118 vTaskDelay(50 / portTICK_PERIOD_MS);
+
119
+
120 shift_x += 5;
+
121 }
+
122
+
123 ssd1306_clear_screen(ssd1306_dev, 0);
+
124 ssd1306_draw_bitmap(ssd1306_dev, 0, 24, &image_bmp_array_esp_text[0], 128, 24);
+
125 ssd1306_refresh_gram(ssd1306_dev);
+
126
+ +
128 vTaskDelay(100 / portTICK_PERIOD_MS);
+
129
+
130 float scale = 1;
+
131 for (int i = 0; i < 20; i++) {
+
132 update_scaling_matrix(T, false, scale, scale, 1);
+
133 transformed_image = matrix_3d * T;
+
134
+
135 ssd1306_clear_screen(ssd1306_dev, 0);
+
136 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
137 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
138 }
+
139 ssd1306_refresh_gram(ssd1306_dev);
+
140 vTaskDelay(50 / portTICK_PERIOD_MS);
+
141
+
142 if (i < 10) {
+
143 scale -= 0.05;
+
144 } else {
+
145 scale += 0.05;
+
146 }
+
147 }
+
148}
+
+
149
+
+
157static void draw_3d_image_task(void *arg)
+
158{
+
159 float rot_y = 0, rot_x = 0;
+
160 const float angle_increment = 4;
+ +
162
+
163 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
164 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
165 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
166 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
167
+
168 if (OBJECT_3D_CUBE) {
+
169 rot_x = 45;
+
170 }
+
171
+
172 while (1) {
+
173 if (button_pressed) {
+
174 rot_y += angle_increment;
+
175 if (rot_y >= 360) {
+
176 rot_y -= 360;
+
177 }
+
178 } else {
+
179 rot_y -= angle_increment;
+
180 if (rot_y <= 0) {
+
181 rot_y += 360;
+
182 }
+
183 }
+
184
+
185 // Apply rotation in all the axes to the transformation matrix
+
186 update_rotation_matrix(T, rot_x, rot_y, 0);
+
187 // Apply translation to the transformation matrix
+
188 update_translation_matrix(T, true, ((float)SSD1606_X_CENTER), ((float)SSD1606_Y_CENTER), 0);
+
189
+
190 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
191 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
192
+
193 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
194 transformed_image = matrix_3d * T;
+
195 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
196 projected_image = transformed_image * perspective_matrix;
+
197
+
198 display_3d_image(projected_image);
+
199 vTaskDelay(20 / portTICK_PERIOD_MS);
+
200 }
+
201}
+
+
202
+
+
203void app_main(void)
+
204{
+
205 static bool button_prev_val = false;
+ + +
208 ekf13->Init();
+
209
+
210 // Init all board components
+
211 bsp_i2c_init();
+
212 app_ssd1306_init(); // display init
+
213 bsp_leds_init(); // LEDs init
+
214 bsp_i2c_set_clk_speed(I2C_CLK_600KHZ); // Set I2C to 600kHz
+
215
+ + +
218
+ +
220 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
221
+
222 xTaskCreate(draw_3d_image_task, "draw_3d_image", 2048, &image, 4, NULL);
+
223 ESP_LOGI("3D image demo", "Showing 3D image");
+
224
+
225 while (1) {
+
226 if (bsp_button_get()) {
+ +
228 }
+
229
+
230 if (button_prev_val != button_pressed) {
+
231 button_prev_val = button_pressed;
+
232 if (button_pressed) {
+
233 bsp_led_set(BSP_LED_AZURE, true);
+
234 } else {
+
235 bsp_led_set(BSP_LED_AZURE, false);
+
236 }
+
237 }
+
238 vTaskDelay(100 / portTICK_PERIOD_MS);
+
239 }
+
240}
+
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+ + + + + +
const float image_3d_matrix_esp_logo[1427][4]
+ + +
const float image_to_3d_matrix_custom[1732][4]
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+ + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void dispaly_esp_text(void)
Display ESPRESSIF text.
+
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
static void app_ssd1306_init(void)
Initialize display.
+ + +
+
+
+ + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html new file mode 100644 index 0000000..93cd859 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html @@ -0,0 +1,1478 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include <malloc.h>
+#include "mpu6050.h"
+#include "ssd1306.h"
+#include "mag3110.h"
+#include "fbm320.h"
+#include "bsp/esp-bsp.h"
+#include "esp_log.h"
+#include "esp_timer.h"
+#include "esp_idf_version.h"
+#include "nvs.h"
+#include "nvs_flash.h"
+#include "graphics_support.h"
+#include "cube_matrix.h"
+#include "esp_dsp.h"
+#include "ekf_imu13states.h"
+#include "esp_logo.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Macros

#define STORAGE_NAMESPACE   "kalman_filter"
#define USE_BAROMETER   0
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void app_main ()
static void app_mag3110_init (void)
 Initialize magnetometer.
static void app_ssd1306_init (void)
 Initialize display.
static void mpu6050_init (void)
 Initialize accelerometer and gyroscope.
static void app_fbm320_init (void)
 Initialize pressure sensor.
static void init_nvs_flash_memory (void)
 Initialize NVS flash memory.
static void init_3d_matrix_struct (image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
 Initialize 3d image structure.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void draw_3d_image (ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
 Draw a 3d image.
static void kalman_filter_task (void *arg)
 Kalman filter RTOS task (or ESP timer callback).
static void kalman_filter_calibration (image_3d_matrix_kalman_t *image)
 Kalman filter calibration procedure.
static void save_state_vectors_task (void *arg)
 RTOS task to periodically save the filter state.
static void get_pressure_task (void *arg)
 ROTS task to read a pressure.
float get_initial_pressure (void)
 read the initial value of pressure
+ + + + + + + + +

+Variables

static ssd1306_handle_t ssd1306_dev = NULL
static mpu6050_handle_t mpu6050_dev = NULL
static mag3110_handle_t mag3110_dev = NULL
static fbm320_handle_t fbm320_dev = NULL
static bool kalman_filter_calibrated = false
static bool board_inactive = true
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
+

Macro Definition Documentation

+ +

◆ STORAGE_NAMESPACE

+ +
+
+ + + + +
#define STORAGE_NAMESPACE   "kalman_filter"
+
+
+ +

◆ USE_BAROMETER

+ +
+
+ + + + +
#define USE_BAROMETER   0
+
+
+

Function Documentation

+ +

◆ app_fbm320_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_fbm320_init (void )
+
+static
+
+ +

Initialize pressure sensor.

+ +

Definition at line 78 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
79{
+
80 esp_err_t ret;
+
81 fbm320_dev = fbm320_create((i2c_port_t)BSP_I2C_NUM, FBM320_I2C_ADDRESS_1);
+
82 ret = fbm320_init(fbm320_dev);
+
83 assert(ESP_OK == ret);
+
84}
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK, and fbm320_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_mag3110_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_mag3110_init (void )
+
+static
+
+ +

Initialize magnetometer.

+ +

Definition at line 44 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
45{
+
46 esp_err_t ret;
+
47 mag3110_dev = mag3110_create((i2c_port_t)BSP_I2C_NUM);
+
48 mag3110_start_raw(mag3110_dev, MAG3110_DR_OS_80_16);
+
49 assert(ESP_OK == ret);
+
50}
+ +
+

References ESP_OK, and mag3110_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 575 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
576{
+ + +
579 ekf13->Init();
+
580
+
581 // Init all board components
+
582 bsp_i2c_init();
+
583 app_ssd1306_init(); // display init
+
584 mpu6050_init(); // gyro, acc init
+
585 app_mag3110_init(); // magnetometer init
+
586 app_fbm320_init(); // barometer init
+
587 bsp_leds_init(); // LEDs init
+
588 init_nvs_flash_memory(); // Non-Volatile Storage
+
589
+ + + +
593
+
594 // Use a barometer for measuring the altitude
+
595 if (USE_BAROMETER) {
+
596 float init_pressure = get_initial_pressure();
+
597 xTaskCreate(get_pressure_task, "get_pressure_task", 2048 * 4, &init_pressure, 4, NULL);
+
598 } else {
+
599 ESP_LOGI("Barometer", "disabled");
+
600 }
+
601
+
602 xTaskCreate(kalman_filter_task, "kalman_filter_task", 2048 * 4, &image, 5, NULL);
+
603 xTaskCreate(save_state_vectors_task, "save_state_vectors", 2048, ekf13, 6, NULL);
+
604
+
605 while (1) {
+
606 vTaskDelay(10000 / portTICK_PERIOD_MS);
+
607 }
+
608}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+ + + +
This class is used to process and calculate attitude from imu sensors.
+
static void mpu6050_init(void)
Initialize accelerometer and gyroscope.
+
static void kalman_filter_calibration(image_3d_matrix_kalman_t *image)
Kalman filter calibration procedure.
+
float get_initial_pressure(void)
read the initial value of pressure
+
static void app_mag3110_init(void)
Initialize magnetometer.
+
static void init_nvs_flash_memory(void)
Initialize NVS flash memory.
+
static void app_fbm320_init(void)
Initialize pressure sensor.
+
static void init_3d_matrix_struct(image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
Initialize 3d image structure.
+
static void app_ssd1306_init(void)
Initialize display.
+
+

References app_fbm320_init(), app_mag3110_init(), app_ssd1306_init(), bsp_i2c_init(), ekf13, get_initial_pressure(), get_pressure_task(), image, init_3d_matrix_struct(), init_nvs_flash_memory(), init_perspective_matrix(), kalman_filter_calibration(), kalman_filter_task(), mpu6050_init(), perspective_matrix, save_state_vectors_task(), and USE_BAROMETER.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ app_ssd1306_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_ssd1306_init (void )
+
+static
+
+ +

Initialize display.

+ +

Definition at line 55 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
56{
+
57 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
58 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
59 ssd1306_refresh_gram(ssd1306_dev);
+
60}
+ +
+

References ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 136 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
137{
+
138 ssd1306_clear_screen(ssd1306_dev, 0);
+
139
+
140 if (OBJECT_3D_CUBE) {
+
141 // For the 3D cube, only the 6 points of the cube are transformed
+
142 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
143 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
144 ssd1306_draw_line(ssd1306_dev,
+
145 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
146 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
147 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
148 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
149 }
+
150 } else {
+
151 // Every other 3D image is drawn here pixel by pixel
+
152 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
153 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
154 }
+
155 }
+
156 ssd1306_refresh_gram(ssd1306_dev);
+
157}
+ + + + +
int rows
Definition mat.h:33
+
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, OBJECT_3D_CUBE, dspm::Mat::rows, and ssd1306_dev.

+ +

Referenced by draw_3d_image().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
void draw_3d_image (ekf_imu13states * ekf13,
dspm::Mat & transformed_image,
dspm::Mat & projected_image,
dspm::Mat & matrix_3d )
+
+static
+
+ +

Draw a 3d image.

+

Updates 3d matrices and prepares the final 3d matrix to be displayed on the display. Board inactivity check - decides which board mode to display (active or inactive), based on the board movements.

+
Parameters
+ + + + + +
ekf13kalman filter object
transformed_image3d matrix holding a 3d image after transformation
projected_image3d matrix holding a 3d image after projection
matrix_3d3d matrix holding the original 3d image, without any transformation
+
+
+ +

Definition at line 170 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
171{
+
172 static const float movement_treshold = 0.0001; // threshold to decide between Idle and Active state of the board
+
173 static float inactive_rotation = 0; // rotation angle (in degrees) for Idle state
+
174 static unsigned int inactivity_count = 0;
+
175 static const unsigned int inactivity_count_treshold = 75;
+
176 static unsigned int inactivity_check = 0; // activity of the board is being checked once in N calls of the function
+
177 static float prev_state_arr[3] = {0, 0, 0}; // holds the previous state of the Euler angles, to compare the diff
+
178
+
179 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
180 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data); // matrix(3x1) that holds x, y, z rotation data
+
181 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
182
+
183 // check if the board is active or not every N calls of the function
+
184 if (!(inactivity_check++ % 10)) {
+
185 dspm::Mat prev_state_mat(prev_state_arr, 3, 1);
+
186 dspm::Mat diff = eul_angles - prev_state_mat;
+
187 prev_state_mat = eul_angles;
+
188
+
189 float max_diff = fabs(diff(0, 0) * diff(1, 0) * diff(2, 0));
+
190
+
191 // wake-up the board if the current board movement crosses the threshold
+
192 if (board_inactive && (max_diff > movement_treshold)) {
+
193 board_inactive = false;
+
194 ESP_LOGI("Board status", "board put to active mode");
+
195 }
+
196
+
197 // if the board is awake, and the current movement of the board is lower than the threshold - the board is
+
198 // being moved with - run the inactivity_counter
+
199 // after some time (if the movement of the board has been lower than the threshold) put the board to idle mode
+
200 else if (!board_inactive && (max_diff < movement_treshold)) {
+
201 if (inactivity_count > inactivity_count_treshold) {
+
202 board_inactive = true;
+
203 inactivity_count = 0;
+
204 ESP_LOGI("Board status", "board put to idle mode");
+ +
206 }
+
207 inactivity_count++;
+
208 }
+
209
+
210 // if the board is awake and the current movement of the board is higher than the threshold clear the inactivity_counter
+
211 else if (!board_inactive && (max_diff >= movement_treshold)) {
+
212 inactivity_count = 0;
+
213 }
+
214 }
+
215
+
216 if (board_inactive) {
+
217 // board idle state - display a rotating cube
+
218 update_rotation_matrix(T, inactive_rotation += 3.0, 10.0, 10.0);
+
219 } else {
+
220 // board active state - 3D object follows movements of the board
+
221 eul_angles(2, 0) = -eul_angles(2, 0);
+
222 dspm::Mat R = ekf::eul2rotm(eul_angles.data);
+
223
+
224 // Enlarge rotation matrix from 3x3 to 4x4
+
225 // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
226 for (int row = 0; row < R.rows; row++) {
+
227 for (int col = 0; col < R.cols; col++) {
+
228 T(row, col) = R(row, col);
+
229 }
+
230 }
+
231 }
+
232
+
233 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
234 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
235
+
236 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
237 transformed_image = matrix_3d * T;
+
238 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
239 projected_image = transformed_image * perspective_matrix;
+
240 display_3d_image(projected_image);
+
241}
+ +
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
int cols
Definition mat.h:34
+
static Mat eye(int size)
Definition mat.cpp:394
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
+

References board_inactive, dspm::Mat::cols, dspm::Mat::data, display_3d_image(), ekf13, ekf::eul2rotm(), dspm::Mat::eye(), MATRIX_SIZE, perspective_matrix, ekf::quat2rotm(), ekf::rotm2eul(), dspm::Mat::rows, update_perspective_matrix(), and update_rotation_matrix().

+ +

Referenced by kalman_filter_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ get_initial_pressure()

+ +
+
+ + + + + + + +
float get_initial_pressure (void )
+
+ +

read the initial value of pressure

+ +

Definition at line 541 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
542{
+
543 float pressure;
+
544 int32_t real_p, real_t;
+
545 int averagning_loop_count = 500;
+
546
+
547 ESP_LOGI("Barometer", "Averagining initial barometer pressure");
+
548 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
549 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Barometer", 16, 1);
+
550 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"averaging", 16, 1);
+
551 ssd1306_refresh_gram(ssd1306_dev);
+
552
+
553 // take the first pressure measurement
+
554 while (1) {
+
555 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
556 pressure = ((float)real_p) / 1000.0; // pressure in kPa
+
557 break;
+
558 }
+
559 }
+
560
+
561 // average first N measurements
+
562 while (averagning_loop_count--) {
+
563 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
564 pressure = (0.999 * pressure) + (0.001 * ((float)real_p) / 1000.0);
+
565 vTaskDelay(100 / portTICK_PERIOD_MS);
+
566 }
+
567 }
+
568
+
569 ESP_LOGI("Barometer", "Initial value set");
+
570 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
571 ssd1306_refresh_gram(ssd1306_dev);
+
572 return (pressure);
+
573}
+
+

References ESP_OK, fbm320_dev, and ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ get_pressure_task()

+ +
+
+ + + + + +
+ + + + + + + +
void get_pressure_task (void * arg)
+
+static
+
+ +

ROTS task to read a pressure.

+

Pressure is measured periodically to better average out a stable value of pressure

+
Parameters
+ + +
argpointer to RTOS task arguments, pointer to the pressure variable in this case
+
+
+ +

Definition at line 497 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
498{
+
499 int32_t real_p, real_t;
+
500 float *pressure_ptr = (float *)arg;
+
501 float pressure_global = *pressure_ptr;
+
502
+
503 int call_count = 0;
+
504 int call_count1 = 0;
+
505 float pressure_initial = pressure_global;
+
506 float last_pressure = pressure_global;
+
507 float baro_image = pressure_global;
+
508 bool changed = false;
+
509
+
510 while (1) {
+
511 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
512 pressure_global = (0.999 * pressure_global) + (0.001 * ((float)real_p) / 1000.0);
+
513 call_count1++;
+
514 }
+
515
+
516 if (board_inactive) {
+
517 pressure_initial = pressure_global;
+
518 last_pressure = pressure_global;
+
519 baro_image = pressure_global;
+
520 } else {
+
521 call_count++;
+
522 if (fabs(pressure_global - last_pressure) > 0.0005) { // cahnge more than 0.5 Pa
+
523 last_pressure = pressure_global;
+
524 baro_image = (0.9 * baro_image) + (0.1 * last_pressure);
+
525 changed = true;
+
526 }
+
527
+
528 if ((!(call_count % 10)) && changed) {
+
529 float fov = 90 + (1000.0 * ((float)(pressure_initial - baro_image)));
+ +
531 changed = false;
+
532 }
+
533 }
+
534 vTaskDelay(100 / portTICK_PERIOD_MS);
+
535 }
+
536}
+
+

References board_inactive, ESP_OK, fbm320_dev, perspective_matrix, and update_perspective_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_kalman_t * image,
ekf_imu13states * ekf13 )
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + + +
imagepointer to 3d image structure
ekf13kalman filter object
+
+
+ +

Definition at line 110 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
111{
+
112#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
114 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
115 ESP_LOGI("Kalman filter demo", "Selected 3D image - ESP Logo");
+
116#elif CONFIG_3D_OBJECT_CUSTOM
+ +
118 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
119 ESP_LOGI("Kalman filter demo", "Selected 3D image - User's custom image");
+
120#elif CONFIG_3D_OBJECT_CUBE
+
121 image->matrix = cube_vectors_3d;
+
122 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
123 ESP_LOGI("Kalman filter demo", "Selected 3D image - 3D cube");
+
124#endif
+
125 image->ekf13 = ekf13;
+
126}
+ +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
+

References cube_vectors_3d, ekf13, image, image_3d_matrix_esp_logo, image_to_3d_matrix_custom, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ init_nvs_flash_memory()

+ +
+
+ + + + + +
+ + + + + + + +
void init_nvs_flash_memory (void )
+
+static
+
+ +

Initialize NVS flash memory.

+ +

Definition at line 89 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
90{
+
91 esp_err_t err = nvs_flash_init();
+
92 if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+
93 // NVS partition was truncated and needs to be erased
+
94 // Retry nvs_flash_init
+
95 ESP_ERROR_CHECK(nvs_flash_erase());
+
96 err = nvs_flash_init();
+
97 }
+
98 ESP_ERROR_CHECK( err );
+
99}
+
+

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ kalman_filter_calibration()

+ +
+
+ + + + + +
+ + + + + + + +
void kalman_filter_calibration (image_3d_matrix_kalman_t * image)
+
+static
+
+ +

Kalman filter calibration procedure.

+

The Kalman filter must be calibrated before the very first run. The state of the Kalman filter is saved into NVS after the calibration. The calibration is run, only if no Kalman filter state is saved in the NVS. Which occurs after erasing the flash memory. Power cycling the board does not remove the Kalman filter state from the NVS.

+
Parameters
+ + +
imagepointer to 3d image structure
+
+
+ +

Definition at line 326 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
327{
+
328 ekf_imu13states *ekf13 = image->ekf13;
+
329 esp_err_t ret;
+
330 nvs_handle_t nvs_handle_kalman;
+
331 size_t state_vectors_size = 13 * 14;
+
332 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
333
+
334 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
335 if (ret != ESP_OK) {
+
336 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
337 assert(ESP_OK == ret);
+
338 }
+
339
+
340 // Read previously saved blob, if available
+
341 size_t required_size = 0; // value will default to 0, if not set yet in NVS
+
342 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", NULL, &required_size);
+
343 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
344 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
345 assert(ESP_OK == ret);
+
346 }
+
347
+
348 if (required_size > 0) {
+
349 ESP_LOGI("Kalman filter demo", "Filter state vectors present in the NVS");
+
350 ESP_LOGI("Kalman filter demo", "Loading state vectors into the filter structure");
+
351
+
352 size_t state_vectors_size_addr = state_vectors_size * sizeof(float);
+
353 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", state_vectors, &state_vectors_size_addr);
+
354 if (ret != ESP_OK) {
+
355 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
356 assert(ESP_OK == ret);
+
357 }
+
358
+
359 for (int i = 0; i < state_vectors_size; i++) {
+
360 if (i < state_vectors_size - 13) {
+
361 ekf13->P.data[i] = state_vectors[i];
+
362 } else {
+
363 ekf13->X.data[i - (state_vectors_size - 13)] = state_vectors[i];
+
364 }
+
365 }
+
366
+
367 ESP_LOGI("Kalman filter demo", "State vectors loaded from the NVS");
+
368 nvs_close(nvs_handle_kalman);
+
369
+
370 } else {
+
371 ESP_LOGI("Kalman filter demo", "Filter state vectors not present in the NVS");
+
372 const float kalman_timer_period_us = 100000;
+
373
+
374 // ESP timer for the Kalman filter calibration
+
375 const esp_timer_create_args_t kalman_calibration_timer_config = {
+
376 .callback = kalman_filter_task,
+
377 .arg = image,
+
378 .dispatch_method = ESP_TIMER_TASK,
+
379 .name = "kalman_filter_calibration_timer",
+
380#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0)
+
381 .skip_unhandled_events = true,
+
382#endif
+
383 };
+
384
+
385 esp_timer_handle_t kalman_calibration_timer = NULL;
+
386 ret = esp_timer_create(&kalman_calibration_timer_config, &kalman_calibration_timer);
+
387 assert(ESP_OK == ret);
+
388 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
389
+
390 ESP_LOGI("Kalman filter demo", "Starting Kalman filter calibration loop");
+
391
+
392 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
393 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Kalman filter", 16, 1);
+
394 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"calibration", 16, 1);
+
395 ssd1306_refresh_gram(ssd1306_dev);
+
396
+
397 ret = esp_timer_start_periodic(kalman_calibration_timer, kalman_timer_period_us);
+
398 assert(ESP_OK == ret);
+
399 vTaskDelay(100000 / portTICK_PERIOD_MS);
+
400
+
401 ret = esp_timer_stop(kalman_calibration_timer);
+
402 assert(ESP_OK == ret);
+
403 ret = esp_timer_delete(kalman_calibration_timer);
+
404 assert(ESP_OK == ret);
+
405 ESP_LOGI("Kalman filter demo", "Exiting Kalman filter calibration loop");
+
406 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
407 ssd1306_refresh_gram(ssd1306_dev);
+
408 vTaskDelay(100 / portTICK_PERIOD_MS);
+
409
+
410 dspm::Mat estimated_error(&ekf13->X.data[4], 3, 1);
+
411
+
412 ESP_LOGI("Kalman filter demo", "Estimated gyroscope bias error [deg/sec]: %.6f\t%.6f\t%.6f",
+
413 estimated_error.data[0], estimated_error.data[1], estimated_error.data[2]);
+
414
+
415 for (int i = 0; i < state_vectors_size; i++) {
+
416 if (i < state_vectors_size - 13) {
+
417 state_vectors[i] = ekf13->P.data[i];
+
418 } else {
+
419 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
420 }
+
421 }
+
422
+
423 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
424 assert(ESP_OK == ret);
+
425 ret = nvs_commit(nvs_handle_kalman);
+
426 assert(ESP_OK == ret);
+
427 nvs_close(nvs_handle_kalman);
+
428 ESP_LOGI("Kalman filter demo", "State vectors saved to the NVS");
+
429 }
+
430 // Set the initial state of the X vector
+
431 ekf13->X(0, 0) = 1;
+
432 ekf13->X(0, 1) = 0;
+
433 ekf13->X(0, 2) = 0;
+
434 ekf13->X(0, 3) = 0;
+
435 free(state_vectors);
+ +
437}
+ + +
+

References dspm::Mat::data, ekf13, ESP_OK, image, kalman_filter_calibrated, kalman_filter_task(), ssd1306_dev, and STORAGE_NAMESPACE.

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ kalman_filter_task()

+ +
+
+ + + + + +
+ + + + + + + +
void kalman_filter_task (void * arg)
+
+static
+
+ +

Kalman filter RTOS task (or ESP timer callback).

+

Takes IMU sensors measurements to be processed by the Kalman filter Function is used as: RTOS task - during normal Kalman filter operation ESP Timer callback function - during Kalman filter calibration process

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 253 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
254{
+
255 mpu6050_acce_value_t acce_sample;
+
256 mpu6050_gyro_value_t gyro_sample;
+
257 mag3110_result_t mag_sample;
+
258
+
259 image_3d_matrix_kalman_t *kalman_filter_args = (image_3d_matrix_kalman_t *)arg;
+
260 ekf_imu13states *ekf13 = kalman_filter_args->ekf13;
+
261 dspm::Mat transformed_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
262 dspm::Mat projected_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
263 dspm::Mat matrix_3d((float *)kalman_filter_args->matrix[0], kalman_filter_args->matrix_len, MATRIX_SIZE);
+
264
+
265 // Covariance matrix for Kalman filter, set specifically for this development board IMU sensors
+
266 float R_m[10] = {0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.000001, 0.000001, 0.000001, 0.000001};
+ +
268
+
269 while (1) {
+
270 // dt calculation
+
271 static float prev_time = 0;
+
272 const float current_time = dsp_get_cpu_cycle_count();
+
273 float dt = 0;
+
274
+
275 // Crystal count difference conversion to Dt time constant
+
276 if (current_time > prev_time) {
+
277 dt = current_time - prev_time;
+
278 dt = dt / 240000000.0;
+
279 }
+
280 prev_time = current_time;
+
281
+
282 // Get all the sensors values
+
283 mpu6050_get_acce(mpu6050_dev, &acce_sample);
+
284 mpu6050_get_gyro(mpu6050_dev, &gyro_sample);
+
285 mag3110_get_magnetic_induction(mag3110_dev, &mag_sample);
+
286
+
287 // Make arrays from the sensors values
+
288 float gyro_input_arr[3] = {gyro_sample.gyro_x, gyro_sample.gyro_y, gyro_sample.gyro_z};
+
289 float accel_input_arr[3] = {acce_sample.acce_x, acce_sample.acce_y, acce_sample.acce_z};
+
290 float mag_input_arr[3] = {(float)mag_sample.x, (float)mag_sample.y, (float)mag_sample.z};
+
291
+
292 // Accel and Mag data to Mat class
+
293 dspm::Mat gyro_input_mat(gyro_input_arr, 3, 1);
+
294 dspm::Mat accel_input_mat(accel_input_arr, 3, 1);
+
295 dspm::Mat mag_input_mat(mag_input_arr, 3, 1);
+
296
+
297 // Normalize vectors
+
298 dspm::Mat accel_norm = accel_input_mat / accel_input_mat.norm();
+
299 dspm::Mat magn_norm = mag_input_mat / mag_input_mat.norm();
+
300 gyro_input_mat *= DEG_TO_RAD;
+
301
+
302 ekf13->Process(gyro_input_mat.data, dt);
+
303 ekf13->UpdateRefMeasurementMagn(accel_norm.data, magn_norm.data, R_m);
+
304
+ +
306 // Use the function as RTOS task for the filter calculation
+
307 draw_3d_image(ekf13, transformed_image, projected_image, matrix_3d);
+
308 vTaskDelay(20 / portTICK_PERIOD_MS);
+
309 } else {
+
310 // Use the function as a callback for kalman_filter_calibration_timer
+
311 break;
+
312 }
+
313 }
+
314}
+ + +
float norm(void)
Definition mat.cpp:456
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+
static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
Draw a 3d image.
+ + + +
+

References dspm::Mat::data, DEG_TO_RAD, draw_3d_image(), dsp_get_cpu_cycle_count, ekf13, image_3d_matrix_kalman_s::ekf13, kalman_filter_calibrated, mag3110_dev, image_3d_matrix_kalman_s::matrix, image_3d_matrix_kalman_s::matrix_len, MATRIX_SIZE, mpu6050_dev, dspm::Mat::norm(), perspective_matrix, and update_perspective_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ mpu6050_init()

+ +
+
+ + + + + +
+ + + + + + + +
void mpu6050_init (void )
+
+static
+
+ +

Initialize accelerometer and gyroscope.

+ +

Definition at line 65 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
66{
+
67 esp_err_t ret;
+
68 mpu6050_dev = mpu6050_create((i2c_port_t)BSP_I2C_NUM, MPU6050_I2C_ADDRESS);
+
69 ret = mpu6050_config(mpu6050_dev, ACCE_FS_8G, GYRO_FS_2000DPS);
+
70 assert(ESP_OK == ret);
+
71 ret = mpu6050_wake_up(mpu6050_dev);
+
72 assert(ESP_OK == ret);
+
73}
+
+

References ESP_OK, and mpu6050_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ save_state_vectors_task()

+ +
+
+ + + + + +
+ + + + + + + +
void save_state_vectors_task (void * arg)
+
+static
+
+ +

RTOS task to periodically save the filter state.

+

The Kalman filter state is periodically saved into the NVS, each 5 min. So a recent Kalman filter state could be loaded into the Kalman filter object after a power cycle.

+
Parameters
+ + +
argpointer to RTOS task arguments, Kalman filter object in this case
+
+
+ +

Definition at line 447 of file external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
448{
+
449 esp_err_t ret;
+
450 size_t state_vectors_size = 13 * 14;
+
451 nvs_handle_t nvs_handle_kalman;
+ +
453 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // 5min
+
454
+
455 while (1) {
+
456 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
457
+
458 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
459 if (ret != ESP_OK) {
+
460 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
461 assert(ESP_OK == ret);
+
462 }
+
463
+
464 for (int i = 0; i < state_vectors_size; i++) {
+
465 if (i < state_vectors_size - 13) {
+
466 state_vectors[i] = ekf13->P.data[i];
+
467 } else {
+
468 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
469 }
+
470 }
+
471
+
472 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
473 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
474 ESP_LOGE("NVS error", "(%s) writing data to NVS!\n", esp_err_to_name(ret));
+
475 assert(ESP_OK == ret);
+
476 }
+
477
+
478 ret = nvs_commit(nvs_handle_kalman);
+
479 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
480 ESP_LOGE("NVS error", "(%s) commiting data to NVS!\n", esp_err_to_name(ret));
+
481 assert(ESP_OK == ret);
+
482 }
+
483 nvs_close(nvs_handle_kalman);
+
484 ESP_LOGI("Kalman filter demo", "State vectors saved to NVS");
+
485 free(state_vectors);
+
486 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // Save the State vectors each 5 min
+
487 }
+
488}
+
+

References ekf13, ESP_OK, and STORAGE_NAMESPACE.

+ +
+
+

Variable Documentation

+ +

◆ board_inactive

+ +
+
+ + + + + +
+ + + + +
bool board_inactive = true
+
+static
+
+
+ +

◆ fbm320_dev

+ +
+
+ + + + + +
+ + + + +
fbm320_handle_t fbm320_dev = NULL
+
+static
+
+
+ +

◆ kalman_filter_calibrated

+ +
+
+ + + + + +
+ + + + +
bool kalman_filter_calibrated = false
+
+static
+
+
+ +

◆ mag3110_dev

+ +
+
+ + + + + +
+ + + + +
mag3110_handle_t mag3110_dev = NULL
+
+static
+
+
+ +

◆ mpu6050_dev

+ +
+
+ + + + + +
+ + + + +
mpu6050_handle_t mpu6050_dev = NULL
+
+static
+
+
+ +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ ssd1306_dev

+ +
+
+ + + + + +
+ + + + +
ssd1306_handle_t ssd1306_dev = NULL
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js new file mode 100644 index 0000000..173a8dc --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js @@ -0,0 +1,26 @@ +var external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp = +[ + [ "STORAGE_NAMESPACE", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a56bd385f1d47f204f712650694661d7c", null ], + [ "USE_BAROMETER", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a28a213aef1cec2da92d153aca74d5ff4", null ], + [ "app_fbm320_init", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#abf02d1479863a05aa4759131e408264e", null ], + [ "app_mag3110_init", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a944145b69708f61a94696cd081386d5a", null ], + [ "app_main", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "app_ssd1306_init", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#afac7c47eff81b6719e589256c8799d5e", null ], + [ "display_3d_image", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2955b9e77f5bd23f109feaaed1496af5", null ], + [ "get_initial_pressure", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2ccb3a970d903b791f523902ab06d694", null ], + [ "get_pressure_task", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a7cbec0bc78cfb4326f8b5c19d7f9a5bb", null ], + [ "init_3d_matrix_struct", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#af4bd9d0f6d48907b5fbbdbed6f06f20d", null ], + [ "init_nvs_flash_memory", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#aba35410bb6759629444f03a95bbd7c98", null ], + [ "kalman_filter_calibration", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a1967e917dafd16b5f02410c5b10c1d90", null ], + [ "kalman_filter_task", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#af43b34764385f3f1ad35ce1c00db220f", null ], + [ "mpu6050_init", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a0d450ba4dd28ea2acb105a3ece7db976", null ], + [ "save_state_vectors_task", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2f69aa0d08a5e85a5016ab08dbdc20fb", null ], + [ "board_inactive", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a0cb5fd0b779570c9bc7ca9ae81fb9f52", null ], + [ "fbm320_dev", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a7e278910e0d93695081edda9a0ff4891", null ], + [ "kalman_filter_calibrated", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a6165c3d5123b67289075877c26f707e6", null ], + [ "mag3110_dev", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#ae2eb1aa71f1392378fb30d571f9700e4", null ], + [ "mpu6050_dev", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a275b510afcb5dff24fa20de057c25293", null ], + [ "perspective_matrix", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "ssd1306_dev", "external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a001a4d44724bfb0668ac6de0d351ae75", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 new file mode 100644 index 0000000..ca910da --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +163cd7e45918432a7237f940c2f1e423 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg new file mode 100644 index 0000000..5e74540 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg @@ -0,0 +1,1915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_demo.cpp + + +Node1 + + +kalman_filter_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +malloc.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mpu6050.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +mag3110.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +fbm320.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +bsp/esp-bsp.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +esp_timer.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +nvs.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +nvs_flash.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +graphics_support.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +cube_matrix.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node1->Node17 + + + + + + + + +Node84 + + +ekf_imu13states.h + + + + + +Node1->Node84 + + + + + + + + +Node89 + + +esp_logo.h + + + + + +Node1->Node89 + + + + + + + + +Node90 + + +image_to_3d_matrix.h + + + + + +Node1->Node90 + + + + + + + + +Node10 + + +stdlib.h + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +dsp_common.h + + + + + +Node17->Node18 + + + + + + + + +Node25 + + +dsp_types.h + + + + + +Node17->Node25 + + + + + + + + +Node27 + + +dsps_dotprod.h + + + + + +Node17->Node27 + + + + + + + + +Node30 + + +dsps_math.h + + + + + +Node17->Node30 + + + + + + + + +Node42 + + +dsps_fir.h + + + + + +Node17->Node42 + + + + + + + + +Node44 + + +dsps_resampler.h + + + + + +Node17->Node44 + + + + + + + + +Node45 + + +dsps_biquad.h + + + + + +Node17->Node45 + + + + + + + + +Node47 + + +dsps_biquad_gen.h + + + + + +Node17->Node47 + + + + + + + + +Node48 + + +dsps_wind.h + + + + + +Node17->Node48 + + + + + + + + +Node55 + + +dsps_conv.h + + + + + +Node17->Node55 + + + + + + + + +Node57 + + +dsps_corr.h + + + + + +Node17->Node57 + + + + + + + + +Node58 + + +dsps_d_gen.h + + + + + +Node17->Node58 + + + + + + + + +Node59 + + +dsps_h_gen.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dsps_tone_gen.h + + + + + +Node17->Node60 + + + + + + + + +Node61 + + +dsps_snr.h + + + + + +Node17->Node61 + + + + + + + + +Node62 + + +dsps_sfdr.h + + + + + +Node17->Node62 + + + + + + + + +Node63 + + +dsps_fft2r.h + + + + + +Node17->Node63 + + + + + + + + +Node66 + + +dsps_fft4r.h + + + + + +Node17->Node66 + + + + + + + + +Node68 + + +dsps_dct.h + + + + + +Node17->Node68 + + + + + + + + +Node69 + + +dspm_matrix.h + + + + + +Node17->Node69 + + + + + + + + +Node80 + + +dsps_view.h + + + + + +Node17->Node80 + + + + + + + + +Node81 + + +dspi_dotprod.h + + + + + +Node17->Node81 + + + + + + + + +Node83 + + +dspi_conv.h + + + + + +Node17->Node83 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +stdint.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +stdbool.h + + + + + +Node18->Node20 + + + + + + + + +Node21 + + +dsp_err.h + + + + + +Node18->Node21 + + + + + + + + +Node24 + + +x86intrin.h + + + + + +Node18->Node24 + + + + + + + + +Node21->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26 + + +inttypes.h + + + + + +Node25->Node26 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +dsps_dotprod_platform.h + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +sdkconfig.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_add.h + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +dsps_sub.h + + + + + +Node30->Node33 + + + + + + + + +Node35 + + +dsps_mul.h + + + + + +Node30->Node35 + + + + + + + + +Node37 + + +dsps_addc.h + + + + + +Node30->Node37 + + + + + + + + +Node39 + + +dsps_mulc.h + + + + + +Node30->Node39 + + + + + + + + +Node41 + + +dsps_sqrt.h + + + + + +Node30->Node41 + + + + + + + + +Node31->Node21 + + + + + + + + +Node33->Node21 + + + + + + + + +Node35->Node21 + + + + + + + + +Node37->Node21 + + + + + + + + +Node39->Node21 + + + + + + + + +Node41->Node21 + + + + + + + + +Node42->Node18 + + + + + + + + +Node42->Node21 + + + + + + + + +Node43 + + +dsps_fir_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node29 + + + + + + + + +Node44->Node21 + + + + + + + + +Node44->Node42 + + + + + + + + +Node45->Node21 + + + + + + + + +Node46 + + +dsps_biquad_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node29 + + + + + + + + +Node47->Node21 + + + + + + + + +Node49 + + +dsps_wind_hann.h + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman.h + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +dsps_wind_blackman +_harris.h + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node48->Node52 + + + + + + + + +Node53 + + +dsps_wind_nuttall.h + + + + + +Node48->Node53 + + + + + + + + +Node54 + + +dsps_wind_flat_top.h + + + + + +Node48->Node54 + + + + + + + + +Node55->Node21 + + + + + + + + +Node56 + + +dsps_conv_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node29 + + + + + + + + +Node57->Node21 + + + + + + + + +Node57->Node56 + + + + + + + + +Node58->Node21 + + + + + + + + +Node59->Node21 + + + + + + + + +Node60->Node21 + + + + + + + + +Node61->Node21 + + + + + + + + +Node62->Node21 + + + + + + + + +Node63->Node21 + + + + + + + + +Node63->Node29 + + + + + + + + +Node64 + + +dsps_fft_tables.h + + + + + +Node63->Node64 + + + + + + + + +Node65 + + +dsps_fft2r_platform.h + + + + + +Node63->Node65 + + + + + + + + +Node65->Node29 + + + + + + + + +Node66->Node21 + + + + + + + + +Node66->Node29 + + + + + + + + +Node66->Node64 + + + + + + + + +Node67 + + +dsps_fft4r_platform.h + + + + + +Node66->Node67 + + + + + + + + +Node67->Node29 + + + + + + + + +Node68->Node21 + + + + + + + + +Node68->Node29 + + + + + + + + +Node70 + + +dspm_add.h + + + + + +Node69->Node70 + + + + + + + + +Node72 + + +dspm_addc.h + + + + + +Node69->Node72 + + + + + + + + +Node74 + + +dspm_mult.h + + + + + +Node69->Node74 + + + + + + + + +Node76 + + +dspm_mulc.h + + + + + +Node69->Node76 + + + + + + + + +Node78 + + +dspm_sub.h + + + + + +Node69->Node78 + + + + + + + + +Node70->Node21 + + + + + + + + +Node72->Node21 + + + + + + + + +Node74->Node21 + + + + + + + + +Node76->Node21 + + + + + + + + +Node78->Node21 + + + + + + + + +Node80->Node21 + + + + + + + + +Node81->Node9 + + + + + + + + +Node81->Node21 + + + + + + + + +Node81->Node25 + + + + + + + + +Node82 + + +dspi_dotprod_platform.h + + + + + +Node81->Node82 + + + + + + + + +Node82->Node29 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node25 + + + + + + + + +Node83->Node56 + + + + + + + + +Node85 + + +ekf.h + + + + + +Node84->Node85 + + + + + + + + +Node85->Node19 + + + + + + + + +Node85->Node20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..8c6973a --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg @@ -0,0 +1,1832 @@ + + + + + + +kalman_filter_demo.cpp + + +Node1 + + +kalman_filter_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +malloc.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mpu6050.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +mag3110.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +fbm320.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +bsp/esp-bsp.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +esp_timer.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +nvs.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +nvs_flash.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +graphics_support.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +cube_matrix.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node1->Node17 + + + + + + + + +Node84 + + +ekf_imu13states.h + + + + + +Node1->Node84 + + + + + + + + +Node89 + + +esp_logo.h + + + + + +Node1->Node89 + + + + + + + + +Node90 + + +image_to_3d_matrix.h + + + + + +Node1->Node90 + + + + + + + + +Node10 + + +stdlib.h + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +dsp_common.h + + + + + +Node17->Node18 + + + + + + + + +Node25 + + +dsp_types.h + + + + + +Node17->Node25 + + + + + + + + +Node27 + + +dsps_dotprod.h + + + + + +Node17->Node27 + + + + + + + + +Node30 + + +dsps_math.h + + + + + +Node17->Node30 + + + + + + + + +Node42 + + +dsps_fir.h + + + + + +Node17->Node42 + + + + + + + + +Node44 + + +dsps_resampler.h + + + + + +Node17->Node44 + + + + + + + + +Node45 + + +dsps_biquad.h + + + + + +Node17->Node45 + + + + + + + + +Node47 + + +dsps_biquad_gen.h + + + + + +Node17->Node47 + + + + + + + + +Node48 + + +dsps_wind.h + + + + + +Node17->Node48 + + + + + + + + +Node55 + + +dsps_conv.h + + + + + +Node17->Node55 + + + + + + + + +Node57 + + +dsps_corr.h + + + + + +Node17->Node57 + + + + + + + + +Node58 + + +dsps_d_gen.h + + + + + +Node17->Node58 + + + + + + + + +Node59 + + +dsps_h_gen.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dsps_tone_gen.h + + + + + +Node17->Node60 + + + + + + + + +Node61 + + +dsps_snr.h + + + + + +Node17->Node61 + + + + + + + + +Node62 + + +dsps_sfdr.h + + + + + +Node17->Node62 + + + + + + + + +Node63 + + +dsps_fft2r.h + + + + + +Node17->Node63 + + + + + + + + +Node66 + + +dsps_fft4r.h + + + + + +Node17->Node66 + + + + + + + + +Node68 + + +dsps_dct.h + + + + + +Node17->Node68 + + + + + + + + +Node69 + + +dspm_matrix.h + + + + + +Node17->Node69 + + + + + + + + +Node80 + + +dsps_view.h + + + + + +Node17->Node80 + + + + + + + + +Node81 + + +dspi_dotprod.h + + + + + +Node17->Node81 + + + + + + + + +Node83 + + +dspi_conv.h + + + + + +Node17->Node83 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +stdint.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +stdbool.h + + + + + +Node18->Node20 + + + + + + + + +Node21 + + +dsp_err.h + + + + + +Node18->Node21 + + + + + + + + +Node24 + + +x86intrin.h + + + + + +Node18->Node24 + + + + + + + + +Node21->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26 + + +inttypes.h + + + + + +Node25->Node26 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +dsps_dotprod_platform.h + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +sdkconfig.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_add.h + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +dsps_sub.h + + + + + +Node30->Node33 + + + + + + + + +Node35 + + +dsps_mul.h + + + + + +Node30->Node35 + + + + + + + + +Node37 + + +dsps_addc.h + + + + + +Node30->Node37 + + + + + + + + +Node39 + + +dsps_mulc.h + + + + + +Node30->Node39 + + + + + + + + +Node41 + + +dsps_sqrt.h + + + + + +Node30->Node41 + + + + + + + + +Node31->Node21 + + + + + + + + +Node33->Node21 + + + + + + + + +Node35->Node21 + + + + + + + + +Node37->Node21 + + + + + + + + +Node39->Node21 + + + + + + + + +Node41->Node21 + + + + + + + + +Node42->Node18 + + + + + + + + +Node42->Node21 + + + + + + + + +Node43 + + +dsps_fir_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node29 + + + + + + + + +Node44->Node21 + + + + + + + + +Node44->Node42 + + + + + + + + +Node45->Node21 + + + + + + + + +Node46 + + +dsps_biquad_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node29 + + + + + + + + +Node47->Node21 + + + + + + + + +Node49 + + +dsps_wind_hann.h + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman.h + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +dsps_wind_blackman +_harris.h + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node48->Node52 + + + + + + + + +Node53 + + +dsps_wind_nuttall.h + + + + + +Node48->Node53 + + + + + + + + +Node54 + + +dsps_wind_flat_top.h + + + + + +Node48->Node54 + + + + + + + + +Node55->Node21 + + + + + + + + +Node56 + + +dsps_conv_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node29 + + + + + + + + +Node57->Node21 + + + + + + + + +Node57->Node56 + + + + + + + + +Node58->Node21 + + + + + + + + +Node59->Node21 + + + + + + + + +Node60->Node21 + + + + + + + + +Node61->Node21 + + + + + + + + +Node62->Node21 + + + + + + + + +Node63->Node21 + + + + + + + + +Node63->Node29 + + + + + + + + +Node64 + + +dsps_fft_tables.h + + + + + +Node63->Node64 + + + + + + + + +Node65 + + +dsps_fft2r_platform.h + + + + + +Node63->Node65 + + + + + + + + +Node65->Node29 + + + + + + + + +Node66->Node21 + + + + + + + + +Node66->Node29 + + + + + + + + +Node66->Node64 + + + + + + + + +Node67 + + +dsps_fft4r_platform.h + + + + + +Node66->Node67 + + + + + + + + +Node67->Node29 + + + + + + + + +Node68->Node21 + + + + + + + + +Node68->Node29 + + + + + + + + +Node70 + + +dspm_add.h + + + + + +Node69->Node70 + + + + + + + + +Node72 + + +dspm_addc.h + + + + + +Node69->Node72 + + + + + + + + +Node74 + + +dspm_mult.h + + + + + +Node69->Node74 + + + + + + + + +Node76 + + +dspm_mulc.h + + + + + +Node69->Node76 + + + + + + + + +Node78 + + +dspm_sub.h + + + + + +Node69->Node78 + + + + + + + + +Node70->Node21 + + + + + + + + +Node72->Node21 + + + + + + + + +Node74->Node21 + + + + + + + + +Node76->Node21 + + + + + + + + +Node78->Node21 + + + + + + + + +Node80->Node21 + + + + + + + + +Node81->Node9 + + + + + + + + +Node81->Node21 + + + + + + + + +Node81->Node25 + + + + + + + + +Node82 + + +dspi_dotprod_platform.h + + + + + +Node81->Node82 + + + + + + + + +Node82->Node29 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node25 + + + + + + + + +Node83->Node56 + + + + + + + + +Node85 + + +ekf.h + + + + + +Node84->Node85 + + + + + + + + +Node85->Node19 + + + + + + + + +Node85->Node20 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 new file mode 100644 index 0000000..e1aade3 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 @@ -0,0 +1 @@ +64fcb2f7f9d65ea7b0e3901c3fe8cbe7 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg new file mode 100644 index 0000000..0789df4 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +mpu6050_init + + +Node1 + + +mpu6050_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg new file mode 100644 index 0000000..0e8c502 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +mpu6050_init + + +Node1 + + +mpu6050_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 new file mode 100644 index 0000000..b372913 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 @@ -0,0 +1 @@ +e40c0de31645dbe2629932c4d9c79047 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg new file mode 100644 index 0000000..9b57f93 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +update_perspective +_matrix + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +dspm::Mat::norm + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +display_3d_image + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ekf::eul2rotm + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +ekf::quat2rotm + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +ekf::rotm2eul + + + + + +Node3->Node10 + + + + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node3->Node12 + + + + + + + + +Node12->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg new file mode 100644 index 0000000..a354002 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg @@ -0,0 +1,220 @@ + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +update_perspective +_matrix + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +dspm::Mat::norm + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +display_3d_image + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ekf::eul2rotm + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +ekf::quat2rotm + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +ekf::rotm2eul + + + + + +Node3->Node10 + + + + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node3->Node12 + + + + + + + + +Node12->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 new file mode 100644 index 0000000..3149c05 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 @@ -0,0 +1 @@ +e19f4ab084478e92fc9c4ab9a2106db3 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg new file mode 100644 index 0000000..61f3082 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg new file mode 100644 index 0000000..0c02e60 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 new file mode 100644 index 0000000..7d5d12d --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 @@ -0,0 +1 @@ +fcd18dc609cddb949e6be441e3eead05 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg new file mode 100644 index 0000000..728274c --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::eul2rotm + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::eye + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::rotm2eul + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +update_perspective +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_rotation_matrix + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dspm::Mat::Mat + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dspm::Mat::allocate + + + + + +Node5->Node6 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm::Mat::t + + + + + +Node10->Node11 + + + + + + + + +Node11->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg new file mode 100644 index 0000000..25c8c25 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg @@ -0,0 +1,220 @@ + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::eul2rotm + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::eye + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::rotm2eul + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +update_perspective +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_rotation_matrix + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dspm::Mat::Mat + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dspm::Mat::allocate + + + + + +Node5->Node6 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm::Mat::t + + + + + +Node10->Node11 + + + + + + + + +Node11->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 new file mode 100644 index 0000000..10680a2 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 @@ -0,0 +1 @@ +7f0aeb1603fd4611bb10cd6b34c2851d \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg new file mode 100644 index 0000000..ff7dee0 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg new file mode 100644 index 0000000..927ad85 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 new file mode 100644 index 0000000..a10cf96 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 @@ -0,0 +1 @@ +425d967602feb664cf0e8968cfc1592b \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg new file mode 100644 index 0000000..221a44e --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +get_initial_pressure + + +Node1 + + +get_initial_pressure + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg new file mode 100644 index 0000000..e6536c5 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +get_initial_pressure + + +Node1 + + +get_initial_pressure + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..c995f8f --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +0c013d83304c2099d74a04b3da33a4f0 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..d5b3b62 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..d33a385 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 new file mode 100644 index 0000000..19f9685 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 @@ -0,0 +1 @@ +ce05f3ba266be5216aacba74be538c5a \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg new file mode 100644 index 0000000..fc00805 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +update_perspective +_matrix + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg new file mode 100644 index 0000000..e9c7495 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +update_perspective +_matrix + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 new file mode 100644 index 0000000..21101b2 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 @@ -0,0 +1 @@ +a97b8e906577bbd3e25e5a580b322cb9 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg new file mode 100644 index 0000000..d009f3e --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_mag3110_init + + +Node1 + + +app_mag3110_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg new file mode 100644 index 0000000..5c33885 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_mag3110_init + + +Node1 + + +app_mag3110_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 new file mode 100644 index 0000000..e8d1d6e --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 @@ -0,0 +1 @@ +97bd2481af980be96342a4e1a1aa4e5f \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg new file mode 100644 index 0000000..57faf9c --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_nvs_flash_memory + + +Node1 + + +init_nvs_flash_memory + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg new file mode 100644 index 0000000..f79eb62 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_nvs_flash_memory + + +Node1 + + +init_nvs_flash_memory + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..dd0d185 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +812a5076e3d60639cc087247a25e86e5 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..7bc00c8 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,420 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_fbm320_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_mag3110_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +app_ssd1306_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +get_initial_pressure + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +get_pressure_task + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +init_3d_matrix_struct + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +init_nvs_flash_memory + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +init_perspective_matrix + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_calibration + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node25 + + +mpu6050_init + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +save_state_vectors_task + + + + + +Node1->Node26 + + + + + + + + +Node8 + + +update_perspective +_matrix + + + + + +Node7->Node8 + + + + + + + + +Node12->Node13 + + + + + + + + +Node13->Node8 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node13->Node14 + + + + + + + + +Node24 + + +dspm::Mat::norm + + + + + +Node13->Node24 + + + + + + + + +Node14->Node8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..bfd685a --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,337 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_fbm320_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_mag3110_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +app_ssd1306_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +get_initial_pressure + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +get_pressure_task + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +init_3d_matrix_struct + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +init_nvs_flash_memory + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +init_perspective_matrix + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_calibration + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node25 + + +mpu6050_init + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +save_state_vectors_task + + + + + +Node1->Node26 + + + + + + + + +Node8 + + +update_perspective +_matrix + + + + + +Node7->Node8 + + + + + + + + +Node12->Node13 + + + + + + + + +Node13->Node8 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node13->Node14 + + + + + + + + +Node24 + + +dspm::Mat::norm + + + + + +Node13->Node24 + + + + + + + + +Node14->Node8 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 new file mode 100644 index 0000000..d82a8af --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 @@ -0,0 +1 @@ +a25c55b8c42f3f593ad3b4fc886b34cd \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg new file mode 100644 index 0000000..24e7cf9 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_fbm320_init + + +Node1 + + +app_fbm320_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg new file mode 100644 index 0000000..753859e --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_fbm320_init + + +Node1 + + +app_fbm320_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 new file mode 100644 index 0000000..77ae792 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 @@ -0,0 +1 @@ +3ee40ea6bdecda1c2bbe81892e2376dd \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg new file mode 100644 index 0000000..54c2518 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +update_perspective +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +dspm::Mat::norm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +display_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf::eul2rotm + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node2->Node11 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +dspm::Mat::t + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg new file mode 100644 index 0000000..3016421 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg @@ -0,0 +1,247 @@ + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +update_perspective +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +dspm::Mat::norm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +display_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf::eul2rotm + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node2->Node11 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +dspm::Mat::t + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 new file mode 100644 index 0000000..0082960 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 @@ -0,0 +1 @@ +c19eb1d9b8973450e1aa2bf37ac098d4 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg new file mode 100644 index 0000000..537d40c --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg new file mode 100644 index 0000000..bdb6a4f --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 new file mode 100644 index 0000000..ab400aa --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 @@ -0,0 +1 @@ +ef418fb19141454b7e1ba28c61eeb551 \ No newline at end of file diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg new file mode 100644 index 0000000..0ee94b4 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg new file mode 100644 index 0000000..f7cb5a5 --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html new file mode 100644 index 0000000..64120cf --- /dev/null +++ b/docs/html/external__examples_2d1468452_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html @@ -0,0 +1,723 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/d1468452/apps/kalman_filter/main/kalman_filter_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include <malloc.h>
+
9#include "mpu6050.h"
+
10#include "ssd1306.h"
+
11#include "mag3110.h"
+
12#include "fbm320.h"
+
13#include "bsp/esp-bsp.h"
+
14#include "esp_log.h"
+
15#include "esp_timer.h"
+
16#include "esp_idf_version.h" // for backward compatibility of esp-timer
+
17#include "nvs.h"
+
18#include "nvs_flash.h"
+
19#include "graphics_support.h"
+
20#include "cube_matrix.h"
+
21#include "esp_dsp.h"
+
22#include "ekf_imu13states.h"
+
23#include "esp_logo.h"
+
24#include "image_to_3d_matrix.h"
+
25
+
26#define STORAGE_NAMESPACE "kalman_filter"
+
27#define USE_BAROMETER 0
+
28
+
29static ssd1306_handle_t ssd1306_dev = NULL;
+
30static mpu6050_handle_t mpu6050_dev = NULL;
+
31static mag3110_handle_t mag3110_dev = NULL;
+
32static fbm320_handle_t fbm320_dev = NULL;
+
33
+
34static bool kalman_filter_calibrated = false;
+
35static bool board_inactive = true;
+
36
+ +
38
+
39extern "C" void app_main();
+
40
+
+
44static void app_mag3110_init(void)
+
45{
+
46 esp_err_t ret;
+
47 mag3110_dev = mag3110_create((i2c_port_t)BSP_I2C_NUM);
+
48 mag3110_start_raw(mag3110_dev, MAG3110_DR_OS_80_16);
+
49 assert(ESP_OK == ret);
+
50}
+
+
51
+
+
55static void app_ssd1306_init(void)
+
56{
+
57 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
58 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
59 ssd1306_refresh_gram(ssd1306_dev);
+
60}
+
+
61
+
+
65static void mpu6050_init(void)
+
66{
+
67 esp_err_t ret;
+
68 mpu6050_dev = mpu6050_create((i2c_port_t)BSP_I2C_NUM, MPU6050_I2C_ADDRESS);
+
69 ret = mpu6050_config(mpu6050_dev, ACCE_FS_8G, GYRO_FS_2000DPS);
+
70 assert(ESP_OK == ret);
+
71 ret = mpu6050_wake_up(mpu6050_dev);
+
72 assert(ESP_OK == ret);
+
73}
+
+
74
+
+
78static void app_fbm320_init(void)
+
79{
+
80 esp_err_t ret;
+
81 fbm320_dev = fbm320_create((i2c_port_t)BSP_I2C_NUM, FBM320_I2C_ADDRESS_1);
+
82 ret = fbm320_init(fbm320_dev);
+
83 assert(ESP_OK == ret);
+
84}
+
+
85
+
+
89static void init_nvs_flash_memory(void)
+
90{
+
91 esp_err_t err = nvs_flash_init();
+
92 if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+
93 // NVS partition was truncated and needs to be erased
+
94 // Retry nvs_flash_init
+
95 ESP_ERROR_CHECK(nvs_flash_erase());
+
96 err = nvs_flash_init();
+
97 }
+
98 ESP_ERROR_CHECK( err );
+
99}
+
+
100
+
+ +
111{
+
112#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
114 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
115 ESP_LOGI("Kalman filter demo", "Selected 3D image - ESP Logo");
+
116#elif CONFIG_3D_OBJECT_CUSTOM
+ +
118 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
119 ESP_LOGI("Kalman filter demo", "Selected 3D image - User's custom image");
+
120#elif CONFIG_3D_OBJECT_CUBE
+
121 image->matrix = cube_vectors_3d;
+
122 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
123 ESP_LOGI("Kalman filter demo", "Selected 3D image - 3D cube");
+
124#endif
+
125 image->ekf13 = ekf13;
+
126}
+
+
127
+
+
136static void display_3d_image(dspm::Mat projected_image)
+
137{
+
138 ssd1306_clear_screen(ssd1306_dev, 0);
+
139
+
140 if (OBJECT_3D_CUBE) {
+
141 // For the 3D cube, only the 6 points of the cube are transformed
+
142 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
143 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
144 ssd1306_draw_line(ssd1306_dev,
+
145 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
146 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
147 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
148 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
149 }
+
150 } else {
+
151 // Every other 3D image is drawn here pixel by pixel
+
152 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
153 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
154 }
+
155 }
+
156 ssd1306_refresh_gram(ssd1306_dev);
+
157}
+
+
158
+
+
170static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
+
171{
+
172 static const float movement_treshold = 0.0001; // threshold to decide between Idle and Active state of the board
+
173 static float inactive_rotation = 0; // rotation angle (in degrees) for Idle state
+
174 static unsigned int inactivity_count = 0;
+
175 static const unsigned int inactivity_count_treshold = 75;
+
176 static unsigned int inactivity_check = 0; // activity of the board is being checked once in N calls of the function
+
177 static float prev_state_arr[3] = {0, 0, 0}; // holds the previous state of the Euler angles, to compare the diff
+
178
+
179 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
180 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data); // matrix(3x1) that holds x, y, z rotation data
+
181 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
182
+
183 // check if the board is active or not every N calls of the function
+
184 if (!(inactivity_check++ % 10)) {
+
185 dspm::Mat prev_state_mat(prev_state_arr, 3, 1);
+
186 dspm::Mat diff = eul_angles - prev_state_mat;
+
187 prev_state_mat = eul_angles;
+
188
+
189 float max_diff = fabs(diff(0, 0) * diff(1, 0) * diff(2, 0));
+
190
+
191 // wake-up the board if the current board movement crosses the threshold
+
192 if (board_inactive && (max_diff > movement_treshold)) {
+
193 board_inactive = false;
+
194 ESP_LOGI("Board status", "board put to active mode");
+
195 }
+
196
+
197 // if the board is awake, and the current movement of the board is lower than the threshold - the board is
+
198 // being moved with - run the inactivity_counter
+
199 // after some time (if the movement of the board has been lower than the threshold) put the board to idle mode
+
200 else if (!board_inactive && (max_diff < movement_treshold)) {
+
201 if (inactivity_count > inactivity_count_treshold) {
+
202 board_inactive = true;
+
203 inactivity_count = 0;
+
204 ESP_LOGI("Board status", "board put to idle mode");
+ +
206 }
+
207 inactivity_count++;
+
208 }
+
209
+
210 // if the board is awake and the current movement of the board is higher than the threshold clear the inactivity_counter
+
211 else if (!board_inactive && (max_diff >= movement_treshold)) {
+
212 inactivity_count = 0;
+
213 }
+
214 }
+
215
+
216 if (board_inactive) {
+
217 // board idle state - display a rotating cube
+
218 update_rotation_matrix(T, inactive_rotation += 3.0, 10.0, 10.0);
+
219 } else {
+
220 // board active state - 3D object follows movements of the board
+
221 eul_angles(2, 0) = -eul_angles(2, 0);
+
222 dspm::Mat R = ekf::eul2rotm(eul_angles.data);
+
223
+
224 // Enlarge rotation matrix from 3x3 to 4x4
+
225 // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
226 for (int row = 0; row < R.rows; row++) {
+
227 for (int col = 0; col < R.cols; col++) {
+
228 T(row, col) = R(row, col);
+
229 }
+
230 }
+
231 }
+
232
+
233 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
234 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
235
+
236 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
237 transformed_image = matrix_3d * T;
+
238 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
239 projected_image = transformed_image * perspective_matrix;
+
240 display_3d_image(projected_image);
+
241}
+
+
242
+
+
253static void kalman_filter_task(void *arg)
+
254{
+
255 mpu6050_acce_value_t acce_sample;
+
256 mpu6050_gyro_value_t gyro_sample;
+
257 mag3110_result_t mag_sample;
+
258
+
259 image_3d_matrix_kalman_t *kalman_filter_args = (image_3d_matrix_kalman_t *)arg;
+
260 ekf_imu13states *ekf13 = kalman_filter_args->ekf13;
+
261 dspm::Mat transformed_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
262 dspm::Mat projected_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
263 dspm::Mat matrix_3d((float *)kalman_filter_args->matrix[0], kalman_filter_args->matrix_len, MATRIX_SIZE);
+
264
+
265 // Covariance matrix for Kalman filter, set specifically for this development board IMU sensors
+
266 float R_m[10] = {0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.000001, 0.000001, 0.000001, 0.000001};
+ +
268
+
269 while (1) {
+
270 // dt calculation
+
271 static float prev_time = 0;
+
272 const float current_time = dsp_get_cpu_cycle_count();
+
273 float dt = 0;
+
274
+
275 // Crystal count difference conversion to Dt time constant
+
276 if (current_time > prev_time) {
+
277 dt = current_time - prev_time;
+
278 dt = dt / 240000000.0;
+
279 }
+
280 prev_time = current_time;
+
281
+
282 // Get all the sensors values
+
283 mpu6050_get_acce(mpu6050_dev, &acce_sample);
+
284 mpu6050_get_gyro(mpu6050_dev, &gyro_sample);
+
285 mag3110_get_magnetic_induction(mag3110_dev, &mag_sample);
+
286
+
287 // Make arrays from the sensors values
+
288 float gyro_input_arr[3] = {gyro_sample.gyro_x, gyro_sample.gyro_y, gyro_sample.gyro_z};
+
289 float accel_input_arr[3] = {acce_sample.acce_x, acce_sample.acce_y, acce_sample.acce_z};
+
290 float mag_input_arr[3] = {(float)mag_sample.x, (float)mag_sample.y, (float)mag_sample.z};
+
291
+
292 // Accel and Mag data to Mat class
+
293 dspm::Mat gyro_input_mat(gyro_input_arr, 3, 1);
+
294 dspm::Mat accel_input_mat(accel_input_arr, 3, 1);
+
295 dspm::Mat mag_input_mat(mag_input_arr, 3, 1);
+
296
+
297 // Normalize vectors
+
298 dspm::Mat accel_norm = accel_input_mat / accel_input_mat.norm();
+
299 dspm::Mat magn_norm = mag_input_mat / mag_input_mat.norm();
+
300 gyro_input_mat *= DEG_TO_RAD;
+
301
+
302 ekf13->Process(gyro_input_mat.data, dt);
+
303 ekf13->UpdateRefMeasurementMagn(accel_norm.data, magn_norm.data, R_m);
+
304
+ +
306 // Use the function as RTOS task for the filter calculation
+
307 draw_3d_image(ekf13, transformed_image, projected_image, matrix_3d);
+
308 vTaskDelay(20 / portTICK_PERIOD_MS);
+
309 } else {
+
310 // Use the function as a callback for kalman_filter_calibration_timer
+
311 break;
+
312 }
+
313 }
+
314}
+
+
315
+
+ +
327{
+
328 ekf_imu13states *ekf13 = image->ekf13;
+
329 esp_err_t ret;
+
330 nvs_handle_t nvs_handle_kalman;
+
331 size_t state_vectors_size = 13 * 14;
+
332 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
333
+
334 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
335 if (ret != ESP_OK) {
+
336 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
337 assert(ESP_OK == ret);
+
338 }
+
339
+
340 // Read previously saved blob, if available
+
341 size_t required_size = 0; // value will default to 0, if not set yet in NVS
+
342 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", NULL, &required_size);
+
343 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
344 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
345 assert(ESP_OK == ret);
+
346 }
+
347
+
348 if (required_size > 0) {
+
349 ESP_LOGI("Kalman filter demo", "Filter state vectors present in the NVS");
+
350 ESP_LOGI("Kalman filter demo", "Loading state vectors into the filter structure");
+
351
+
352 size_t state_vectors_size_addr = state_vectors_size * sizeof(float);
+
353 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", state_vectors, &state_vectors_size_addr);
+
354 if (ret != ESP_OK) {
+
355 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
356 assert(ESP_OK == ret);
+
357 }
+
358
+
359 for (int i = 0; i < state_vectors_size; i++) {
+
360 if (i < state_vectors_size - 13) {
+
361 ekf13->P.data[i] = state_vectors[i];
+
362 } else {
+
363 ekf13->X.data[i - (state_vectors_size - 13)] = state_vectors[i];
+
364 }
+
365 }
+
366
+
367 ESP_LOGI("Kalman filter demo", "State vectors loaded from the NVS");
+
368 nvs_close(nvs_handle_kalman);
+
369
+
370 } else {
+
371 ESP_LOGI("Kalman filter demo", "Filter state vectors not present in the NVS");
+
372 const float kalman_timer_period_us = 100000;
+
373
+
374 // ESP timer for the Kalman filter calibration
+
375 const esp_timer_create_args_t kalman_calibration_timer_config = {
+
376 .callback = kalman_filter_task,
+
377 .arg = image,
+
378 .dispatch_method = ESP_TIMER_TASK,
+
379 .name = "kalman_filter_calibration_timer",
+
380#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0)
+
381 .skip_unhandled_events = true,
+
382#endif
+
383 };
+
384
+
385 esp_timer_handle_t kalman_calibration_timer = NULL;
+
386 ret = esp_timer_create(&kalman_calibration_timer_config, &kalman_calibration_timer);
+
387 assert(ESP_OK == ret);
+
388 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
389
+
390 ESP_LOGI("Kalman filter demo", "Starting Kalman filter calibration loop");
+
391
+
392 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
393 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Kalman filter", 16, 1);
+
394 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"calibration", 16, 1);
+
395 ssd1306_refresh_gram(ssd1306_dev);
+
396
+
397 ret = esp_timer_start_periodic(kalman_calibration_timer, kalman_timer_period_us);
+
398 assert(ESP_OK == ret);
+
399 vTaskDelay(100000 / portTICK_PERIOD_MS);
+
400
+
401 ret = esp_timer_stop(kalman_calibration_timer);
+
402 assert(ESP_OK == ret);
+
403 ret = esp_timer_delete(kalman_calibration_timer);
+
404 assert(ESP_OK == ret);
+
405 ESP_LOGI("Kalman filter demo", "Exiting Kalman filter calibration loop");
+
406 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
407 ssd1306_refresh_gram(ssd1306_dev);
+
408 vTaskDelay(100 / portTICK_PERIOD_MS);
+
409
+
410 dspm::Mat estimated_error(&ekf13->X.data[4], 3, 1);
+
411
+
412 ESP_LOGI("Kalman filter demo", "Estimated gyroscope bias error [deg/sec]: %.6f\t%.6f\t%.6f",
+
413 estimated_error.data[0], estimated_error.data[1], estimated_error.data[2]);
+
414
+
415 for (int i = 0; i < state_vectors_size; i++) {
+
416 if (i < state_vectors_size - 13) {
+
417 state_vectors[i] = ekf13->P.data[i];
+
418 } else {
+
419 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
420 }
+
421 }
+
422
+
423 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
424 assert(ESP_OK == ret);
+
425 ret = nvs_commit(nvs_handle_kalman);
+
426 assert(ESP_OK == ret);
+
427 nvs_close(nvs_handle_kalman);
+
428 ESP_LOGI("Kalman filter demo", "State vectors saved to the NVS");
+
429 }
+
430 // Set the initial state of the X vector
+
431 ekf13->X(0, 0) = 1;
+
432 ekf13->X(0, 1) = 0;
+
433 ekf13->X(0, 2) = 0;
+
434 ekf13->X(0, 3) = 0;
+
435 free(state_vectors);
+ +
437}
+
+
438
+
+
447static void save_state_vectors_task(void *arg)
+
448{
+
449 esp_err_t ret;
+
450 size_t state_vectors_size = 13 * 14;
+
451 nvs_handle_t nvs_handle_kalman;
+ +
453 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // 5min
+
454
+
455 while (1) {
+
456 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
457
+
458 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
459 if (ret != ESP_OK) {
+
460 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
461 assert(ESP_OK == ret);
+
462 }
+
463
+
464 for (int i = 0; i < state_vectors_size; i++) {
+
465 if (i < state_vectors_size - 13) {
+
466 state_vectors[i] = ekf13->P.data[i];
+
467 } else {
+
468 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
469 }
+
470 }
+
471
+
472 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
473 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
474 ESP_LOGE("NVS error", "(%s) writing data to NVS!\n", esp_err_to_name(ret));
+
475 assert(ESP_OK == ret);
+
476 }
+
477
+
478 ret = nvs_commit(nvs_handle_kalman);
+
479 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
480 ESP_LOGE("NVS error", "(%s) commiting data to NVS!\n", esp_err_to_name(ret));
+
481 assert(ESP_OK == ret);
+
482 }
+
483 nvs_close(nvs_handle_kalman);
+
484 ESP_LOGI("Kalman filter demo", "State vectors saved to NVS");
+
485 free(state_vectors);
+
486 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // Save the State vectors each 5 min
+
487 }
+
488}
+
+
489
+
+
497static void get_pressure_task(void *arg)
+
498{
+
499 int32_t real_p, real_t;
+
500 float *pressure_ptr = (float *)arg;
+
501 float pressure_global = *pressure_ptr;
+
502
+
503 int call_count = 0;
+
504 int call_count1 = 0;
+
505 float pressure_initial = pressure_global;
+
506 float last_pressure = pressure_global;
+
507 float baro_image = pressure_global;
+
508 bool changed = false;
+
509
+
510 while (1) {
+
511 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
512 pressure_global = (0.999 * pressure_global) + (0.001 * ((float)real_p) / 1000.0);
+
513 call_count1++;
+
514 }
+
515
+
516 if (board_inactive) {
+
517 pressure_initial = pressure_global;
+
518 last_pressure = pressure_global;
+
519 baro_image = pressure_global;
+
520 } else {
+
521 call_count++;
+
522 if (fabs(pressure_global - last_pressure) > 0.0005) { // cahnge more than 0.5 Pa
+
523 last_pressure = pressure_global;
+
524 baro_image = (0.9 * baro_image) + (0.1 * last_pressure);
+
525 changed = true;
+
526 }
+
527
+
528 if ((!(call_count % 10)) && changed) {
+
529 float fov = 90 + (1000.0 * ((float)(pressure_initial - baro_image)));
+ +
531 changed = false;
+
532 }
+
533 }
+
534 vTaskDelay(100 / portTICK_PERIOD_MS);
+
535 }
+
536}
+
+
537
+
+ +
542{
+
543 float pressure;
+
544 int32_t real_p, real_t;
+
545 int averagning_loop_count = 500;
+
546
+
547 ESP_LOGI("Barometer", "Averagining initial barometer pressure");
+
548 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
549 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Barometer", 16, 1);
+
550 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"averaging", 16, 1);
+
551 ssd1306_refresh_gram(ssd1306_dev);
+
552
+
553 // take the first pressure measurement
+
554 while (1) {
+
555 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
556 pressure = ((float)real_p) / 1000.0; // pressure in kPa
+
557 break;
+
558 }
+
559 }
+
560
+
561 // average first N measurements
+
562 while (averagning_loop_count--) {
+
563 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
564 pressure = (0.999 * pressure) + (0.001 * ((float)real_p) / 1000.0);
+
565 vTaskDelay(100 / portTICK_PERIOD_MS);
+
566 }
+
567 }
+
568
+
569 ESP_LOGI("Barometer", "Initial value set");
+
570 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
571 ssd1306_refresh_gram(ssd1306_dev);
+
572 return (pressure);
+
573}
+
+
574
+
+
575void app_main(void)
+
576{
+ + +
579 ekf13->Init();
+
580
+
581 // Init all board components
+
582 bsp_i2c_init();
+
583 app_ssd1306_init(); // display init
+
584 mpu6050_init(); // gyro, acc init
+
585 app_mag3110_init(); // magnetometer init
+
586 app_fbm320_init(); // barometer init
+
587 bsp_leds_init(); // LEDs init
+
588 init_nvs_flash_memory(); // Non-Volatile Storage
+
589
+ + + +
593
+
594 // Use a barometer for measuring the altitude
+
595 if (USE_BAROMETER) {
+
596 float init_pressure = get_initial_pressure();
+
597 xTaskCreate(get_pressure_task, "get_pressure_task", 2048 * 4, &init_pressure, 4, NULL);
+
598 } else {
+
599 ESP_LOGI("Barometer", "disabled");
+
600 }
+
601
+
602 xTaskCreate(kalman_filter_task, "kalman_filter_task", 2048 * 4, &image, 5, NULL);
+
603 xTaskCreate(save_state_vectors_task, "save_state_vectors", 2048, ekf13, 6, NULL);
+
604
+
605 while (1) {
+
606 vTaskDelay(10000 / portTICK_PERIOD_MS);
+
607 }
+
608}
+
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ + + +
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+ + +
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+ + +
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+ + + + + +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + +
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+ + + +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
float norm(void)
Definition mat.cpp:456
+
int cols
Definition mat.h:34
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+ + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void mpu6050_init(void)
Initialize accelerometer and gyroscope.
+
static void kalman_filter_calibration(image_3d_matrix_kalman_t *image)
Kalman filter calibration procedure.
+
static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
Draw a 3d image.
+
float get_initial_pressure(void)
read the initial value of pressure
+
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+
static void app_mag3110_init(void)
Initialize magnetometer.
+
static void init_nvs_flash_memory(void)
Initialize NVS flash memory.
+ +
static void app_fbm320_init(void)
Initialize pressure sensor.
+
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+
static void init_3d_matrix_struct(image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
Initialize 3d image structure.
+
static void app_ssd1306_init(void)
Initialize display.
+ + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html new file mode 100644 index 0000000..288ef5d --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html @@ -0,0 +1,671 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
3d_graphics_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include "esp_log.h"
+#include "ssd1306.h"
+#include "bsp/esp-bsp.h"
+#include "esp_dsp.h"
+#include "cube_matrix.h"
+#include "esp_logo.h"
+#include "esp_text.h"
+#include "graphics_support.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + +

+Functions

void app_main ()
static void init_3d_matrix_struct (image_3d_matrix_t *image)
 Initialize 3d image structure.
static void app_ssd1306_init (void)
 Initialize display.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void dispaly_esp_text (void)
 Display ESPRESSIF text.
static void draw_3d_image_task (void *arg)
 RTOS task to draw a 3d image.
+ + + + +

+Variables

static ssd1306_handle_t ssd1306_dev = NULL
static bool button_pressed = true
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
+

Function Documentation

+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 203 of file external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
204{
+
205 static bool button_prev_val = false;
+ + +
208 ekf13->Init();
+
209
+
210 // Init all board components
+
211 bsp_i2c_init();
+
212 app_ssd1306_init(); // display init
+
213 bsp_leds_init(); // LEDs init
+
214 bsp_i2c_set_clk_speed(I2C_CLK_600KHZ); // Set I2C to 600kHz
+
215
+ + +
218
+ +
220 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
221
+
222 xTaskCreate(draw_3d_image_task, "draw_3d_image", 2048, &image, 4, NULL);
+
223 ESP_LOGI("3D image demo", "Showing 3D image");
+
224
+
225 while (1) {
+
226 if (bsp_button_get()) {
+ +
228 }
+
229
+
230 if (button_prev_val != button_pressed) {
+
231 button_prev_val = button_pressed;
+
232 if (button_pressed) {
+
233 bsp_led_set(BSP_LED_AZURE, true);
+
234 } else {
+
235 bsp_led_set(BSP_LED_AZURE, false);
+
236 }
+
237 }
+
238 vTaskDelay(100 / portTICK_PERIOD_MS);
+
239 }
+
240}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + + +
This class is used to process and calculate attitude from imu sensors.
+ +
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+ +
+

References app_ssd1306_init(), bsp_i2c_init(), button_pressed, dispaly_esp_text(), draw_3d_image_task(), ekf13, image, init_3d_matrix_struct(), init_perspective_matrix(), and perspective_matrix.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ app_ssd1306_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_ssd1306_init (void )
+
+static
+
+ +

Initialize display.

+ +

Definition at line 53 of file external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
54{
+
55 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
56 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
57 ssd1306_refresh_gram(ssd1306_dev);
+
58}
+ +
+

References ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ dispaly_esp_text()

+ +
+
+ + + + + +
+ + + + + + + +
void dispaly_esp_text (void )
+
+static
+
+ +

Display ESPRESSIF text.

+

To demonstrate usage of the translation and scaling matrices

+ +

Definition at line 96 of file external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
97{
+
98 image_3d_matrix_t esp_text;
+ +
100 esp_text.matrix_len = ((sizeof(image_3d_array_esp_text)) / sizeof(float)) / MATRIX_SIZE;
+
101 int16_t shift_x = -SSD1606_X_CENTER;
+
102
+
103 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
104 dspm::Mat transformed_image(esp_text.matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
105 dspm::Mat matrix_3d((float *)esp_text.matrix[0], esp_text.matrix_len, MATRIX_SIZE);
+
106
+
107 ESP_LOGI("3D image demo", "Showing ESP text");
+
108
+
109 for (int i = 0; i < 52; i++) {
+
110 update_translation_matrix(T, true, (float)shift_x, (float)SSD1606_Y_CENTER, 0);
+
111 transformed_image = matrix_3d * T;
+
112
+
113 ssd1306_clear_screen(ssd1306_dev, 0);
+
114 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
115 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
116 }
+
117 ssd1306_refresh_gram(ssd1306_dev);
+
118 vTaskDelay(50 / portTICK_PERIOD_MS);
+
119
+
120 shift_x += 5;
+
121 }
+
122
+
123 ssd1306_clear_screen(ssd1306_dev, 0);
+
124 ssd1306_draw_bitmap(ssd1306_dev, 0, 24, &image_bmp_array_esp_text[0], 128, 24);
+
125 ssd1306_refresh_gram(ssd1306_dev);
+
126
+ +
128 vTaskDelay(100 / portTICK_PERIOD_MS);
+
129
+
130 float scale = 1;
+
131 for (int i = 0; i < 20; i++) {
+
132 update_scaling_matrix(T, false, scale, scale, 1);
+
133 transformed_image = matrix_3d * T;
+
134
+
135 ssd1306_clear_screen(ssd1306_dev, 0);
+
136 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
137 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
138 }
+
139 ssd1306_refresh_gram(ssd1306_dev);
+
140 vTaskDelay(50 / portTICK_PERIOD_MS);
+
141
+
142 if (i < 10) {
+
143 scale -= 0.05;
+
144 } else {
+
145 scale += 0.05;
+
146 }
+
147 }
+
148}
+ + +
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+ + + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+ + +
+

References dspm::Mat::eye(), image_3d_array_esp_text, image_bmp_array_esp_text, image_3d_matrix_s::matrix, image_3d_matrix_s::matrix_len, MATRIX_SIZE, dspm::Mat::rows, ssd1306_dev, SSD1606_X_CENTER, SSD1606_Y_CENTER, update_scaling_matrix(), and update_translation_matrix().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 68 of file external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
69{
+
70 ssd1306_clear_screen(ssd1306_dev, 0);
+
71
+
72 if (OBJECT_3D_CUBE) {
+
73 // For the 3D cube, only the 6 points of the cube are transformed
+
74 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
75 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
76 ssd1306_draw_line(ssd1306_dev,
+
77 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
78 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
79 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
80 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
81 }
+
82 } else {
+
83 // Every other 3D image is drawn here pixel by pixel
+
84 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
85 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
86 }
+
87 }
+
88 ssd1306_refresh_gram(ssd1306_dev);
+
89}
+ + + + +
int rows
Definition mat.h:33
+
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, OBJECT_3D_CUBE, dspm::Mat::rows, and ssd1306_dev.

+ +

Referenced by draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image_task()

+ +
+
+ + + + + +
+ + + + + + + +
void draw_3d_image_task (void * arg)
+
+static
+
+ +

RTOS task to draw a 3d image.

+

Updates 3d matrices, prepares the final 3d matrix to be displayed on the display

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 157 of file external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
158{
+
159 float rot_y = 0, rot_x = 0;
+
160 const float angle_increment = 4;
+ +
162
+
163 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
164 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
165 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
166 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
167
+
168 if (OBJECT_3D_CUBE) {
+
169 rot_x = 45;
+
170 }
+
171
+
172 while (1) {
+
173 if (button_pressed) {
+
174 rot_y += angle_increment;
+
175 if (rot_y >= 360) {
+
176 rot_y -= 360;
+
177 }
+
178 } else {
+
179 rot_y -= angle_increment;
+
180 if (rot_y <= 0) {
+
181 rot_y += 360;
+
182 }
+
183 }
+
184
+
185 // Apply rotation in all the axes to the transformation matrix
+
186 update_rotation_matrix(T, rot_x, rot_y, 0);
+
187 // Apply translation to the transformation matrix
+
188 update_translation_matrix(T, true, ((float)SSD1606_X_CENTER), ((float)SSD1606_Y_CENTER), 0);
+
189
+
190 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
191 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
192
+
193 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
194 transformed_image = matrix_3d * T;
+
195 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
196 projected_image = transformed_image * perspective_matrix;
+
197
+
198 display_3d_image(projected_image);
+
199 vTaskDelay(20 / portTICK_PERIOD_MS);
+
200 }
+
201}
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
+

References button_pressed, display_3d_image(), dspm::Mat::eye(), image, MATRIX_SIZE, OBJECT_3D_CUBE, perspective_matrix, SSD1606_X_CENTER, SSD1606_Y_CENTER, update_rotation_matrix(), and update_translation_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_t * image)
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + +
image3d image structure
+
+
+ +

Definition at line 33 of file external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp.

+
34{
+
35#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
37 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
38 ESP_LOGI("3D image demo", "Selected 3D image - ESP Logo");
+
39#elif CONFIG_3D_OBJECT_CUSTOM
+ +
41 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
42 ESP_LOGI("3D image demo", "Selected 3D image - User's custom image");
+
43#elif CONFIG_3D_OBJECT_CUBE
+
44 image->matrix = cube_vectors_3d;
+
45 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
46 ESP_LOGI("3D image demo", "Selected 3D image - 3D cube");
+
47#endif
+
48}
+ +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
+

References cube_vectors_3d, image, image_3d_matrix_esp_logo, image_to_3d_matrix_custom, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ button_pressed

+ +
+
+ + + + + +
+ + + + +
bool button_pressed = true
+
+static
+
+
+ +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ ssd1306_dev

+ +
+
+ + + + + +
+ + + + +
ssd1306_handle_t ssd1306_dev = NULL
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js new file mode 100644 index 0000000..160fa97 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.js @@ -0,0 +1,12 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp = +[ + [ "app_main", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "app_ssd1306_init", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#afac7c47eff81b6719e589256c8799d5e", null ], + [ "dispaly_esp_text", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a0edd8bfc49beafeacd3540ba291680c3", null ], + [ "display_3d_image", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image_task", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af3debef909dca35dbf0b6f842df6def3", null ], + [ "init_3d_matrix_struct", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a3340d28d7e9de0fd62d17e02ce70a52c", null ], + [ "button_pressed", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#af23a0eb11ff9589330539e6b763badc8", null ], + [ "perspective_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "ssd1306_dev", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp.html#a001a4d44724bfb0668ac6de0d351ae75", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 new file mode 100644 index 0000000..43d1458 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +69f4872736eca28f0487ccf3e819fd6b \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg new file mode 100644 index 0000000..9202fe5 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl.svg @@ -0,0 +1,1744 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +bsp/esp-bsp.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +esp_text.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +graphics_support.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +image_to_3d_matrix.h + + + + + +Node1->Node79 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node3 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..0819c57 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp__incl_org.svg @@ -0,0 +1,1661 @@ + + + + + + +3d_graphics_demo.cpp + + +Node1 + + +3d_graphics_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_log.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +bsp/esp-bsp.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_dsp.h + + + + + +Node1->Node7 + + + + + + + + +Node75 + + +cube_matrix.h + + + + + +Node1->Node75 + + + + + + + + +Node76 + + +esp_logo.h + + + + + +Node1->Node76 + + + + + + + + +Node77 + + +esp_text.h + + + + + +Node1->Node77 + + + + + + + + +Node78 + + +graphics_support.h + + + + + +Node1->Node78 + + + + + + + + +Node79 + + +image_to_3d_matrix.h + + + + + +Node1->Node79 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node8 + + +dsp_common.h + + + + + +Node7->Node8 + + + + + + + + +Node16 + + +dsp_types.h + + + + + +Node7->Node16 + + + + + + + + +Node18 + + +dsps_dotprod.h + + + + + +Node7->Node18 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node7->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node7->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node7->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node7->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node7->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node7->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node7->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node7->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node7->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node7->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node7->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node7->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node7->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node7->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node7->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node7->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node7->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node7->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node7->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node7->Node74 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +stdbool.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +dsp_err.h + + + + + +Node8->Node11 + + + + + + + + +Node14 + + +esp_idf_version.h + + + + + +Node8->Node14 + + + + + + + + +Node15 + + +x86intrin.h + + + + + +Node8->Node15 + + + + + + + + +Node11->Node9 + + + + + + + + +Node16->Node9 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +inttypes.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node3 + + + + + + + + +Node18->Node11 + + + + + + + + +Node19 + + +dsps_dotprod_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +sdkconfig.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +dsps_add.h + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +dsps_sub.h + + + + + +Node21->Node24 + + + + + + + + +Node26 + + +dsps_mul.h + + + + + +Node21->Node26 + + + + + + + + +Node28 + + +dsps_addc.h + + + + + +Node21->Node28 + + + + + + + + +Node30 + + +dsps_mulc.h + + + + + +Node21->Node30 + + + + + + + + +Node32 + + +dsps_sqrt.h + + + + + +Node21->Node32 + + + + + + + + +Node22->Node11 + + + + + + + + +Node24->Node11 + + + + + + + + +Node26->Node11 + + + + + + + + +Node28->Node11 + + + + + + + + +Node30->Node11 + + + + + + + + +Node32->Node11 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node11 + + + + + + + + +Node34 + + +dsps_fir_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node20 + + + + + + + + +Node35->Node11 + + + + + + + + +Node35->Node33 + + + + + + + + +Node36->Node11 + + + + + + + + +Node37 + + +dsps_biquad_platform.h + + + + + +Node36->Node37 + + + + + + + + +Node37->Node20 + + + + + + + + +Node38->Node11 + + + + + + + + +Node40 + + +dsps_wind_hann.h + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +dsps_wind_blackman.h + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +dsps_wind_blackman +_harris.h + + + + + +Node39->Node42 + + + + + + + + +Node43 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node39->Node43 + + + + + + + + +Node44 + + +dsps_wind_nuttall.h + + + + + +Node39->Node44 + + + + + + + + +Node45 + + +dsps_wind_flat_top.h + + + + + +Node39->Node45 + + + + + + + + +Node46->Node11 + + + + + + + + +Node47 + + +dsps_conv_platform.h + + + + + +Node46->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node48->Node11 + + + + + + + + +Node48->Node47 + + + + + + + + +Node49->Node11 + + + + + + + + +Node50->Node11 + + + + + + + + +Node51->Node11 + + + + + + + + +Node52->Node11 + + + + + + + + +Node53->Node11 + + + + + + + + +Node54->Node11 + + + + + + + + +Node54->Node20 + + + + + + + + +Node55 + + +dsps_fft_tables.h + + + + + +Node54->Node55 + + + + + + + + +Node56 + + +dsps_fft2r_platform.h + + + + + +Node54->Node56 + + + + + + + + +Node56->Node20 + + + + + + + + +Node57->Node11 + + + + + + + + +Node57->Node20 + + + + + + + + +Node57->Node55 + + + + + + + + +Node58 + + +dsps_fft4r_platform.h + + + + + +Node57->Node58 + + + + + + + + +Node58->Node20 + + + + + + + + +Node59->Node11 + + + + + + + + +Node59->Node20 + + + + + + + + +Node61 + + +dspm_add.h + + + + + +Node60->Node61 + + + + + + + + +Node63 + + +dspm_addc.h + + + + + +Node60->Node63 + + + + + + + + +Node65 + + +dspm_mult.h + + + + + +Node60->Node65 + + + + + + + + +Node67 + + +dspm_mulc.h + + + + + +Node60->Node67 + + + + + + + + +Node69 + + +dspm_sub.h + + + + + +Node60->Node69 + + + + + + + + +Node61->Node11 + + + + + + + + +Node63->Node11 + + + + + + + + +Node65->Node11 + + + + + + + + +Node67->Node11 + + + + + + + + +Node69->Node11 + + + + + + + + +Node71->Node11 + + + + + + + + +Node72->Node3 + + + + + + + + +Node72->Node11 + + + + + + + + +Node72->Node16 + + + + + + + + +Node73 + + +dspi_dotprod_platform.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node20 + + + + + + + + +Node74->Node11 + + + + + + + + +Node74->Node16 + + + + + + + + +Node74->Node47 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 new file mode 100644 index 0000000..ddfaf75 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.md5 @@ -0,0 +1 @@ +14552d159a36a965afa4304797e7f116 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg new file mode 100644 index 0000000..835add4 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +update_scaling_matrix + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +update_translation +_matrix + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg new file mode 100644 index 0000000..4146521 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_cgraph_org.svg @@ -0,0 +1,112 @@ + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +dspm::Mat::eye + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +update_scaling_matrix + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +update_translation +_matrix + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +dspm::Mat::Mat + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dspm::Mat::allocate + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 new file mode 100644 index 0000000..b7bbfcc --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.md5 @@ -0,0 +1 @@ +b696d73f28c89b8f3e327461475e8bd5 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg new file mode 100644 index 0000000..46cdb7e --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg new file mode 100644 index 0000000..d1a1b7b --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a0edd8bfc49beafeacd3540ba291680c3_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +dispaly_esp_text + + +Node1 + + +dispaly_esp_text + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 new file mode 100644 index 0000000..7c8dc40 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.md5 @@ -0,0 +1 @@ +3477cc8a1a921aba8c84ebae322c4e91 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg new file mode 100644 index 0000000..5a989ef --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg new file mode 100644 index 0000000..31677c2 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a3340d28d7e9de0fd62d17e02ce70a52c_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..aec9293 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +54f90235365df7ad4c8f29a16d8647ef \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..c4936f8 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..9bb9a3e --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..ad87676 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +eee3dba63a58bcfc039eb141330c3a3d \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..7fa2b5d --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_ssd1306_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +init_3d_matrix_struct + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +init_perspective_matrix + + + + + +Node1->Node16 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +update_scaling_matrix + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +ekf::eul2rotm + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dspm::Mat::t + + + + + +Node12->Node14 + + + + + + + + +Node14->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..0b318f3 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,301 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_ssd1306_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +bsp_i2c_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node15 + + +init_3d_matrix_struct + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +init_perspective_matrix + + + + + +Node1->Node16 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +update_scaling_matrix + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +display_3d_image + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +ekf::eul2rotm + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +dspm::Mat::t + + + + + +Node12->Node14 + + + + + + + + +Node14->Node6 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 new file mode 100644 index 0000000..6b90369 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.md5 @@ -0,0 +1 @@ +754f85af46d904cc1da7a2509a51f774 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg new file mode 100644 index 0000000..cc29b48 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph.svg @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg new file mode 100644 index 0000000..224d580 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_af3debef909dca35dbf0b6f842df6def3_cgraph_org.svg @@ -0,0 +1,175 @@ + + + + + + +draw_3d_image_task + + +Node1 + + +draw_3d_image_task + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::eye + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +update_rotation_matrix + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +update_translation +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +ekf::eul2rotm + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +dspm::Mat::t + + + + + +Node6->Node8 + + + + + + + + +Node8->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 new file mode 100644 index 0000000..031df57 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 @@ -0,0 +1 @@ +c309498518f3331ec825e43bd49c2d7b \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg new file mode 100644 index 0000000..c750cde --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg new file mode 100644 index 0000000..a0c4d47 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html new file mode 100644 index 0000000..8f7eecd --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_23d__graphics_2main_23d__graphics__demo_8cpp_source.html @@ -0,0 +1,366 @@ + + + + + + + +ESP-IDF Firmware: 3d_graphics_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/apps/3d_graphics/main/3d_graphics_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include "esp_log.h"
+
9#include "ssd1306.h"
+
10#include "bsp/esp-bsp.h"
+
11#include "esp_dsp.h"
+
12#include "cube_matrix.h"
+
13#include "esp_logo.h"
+
14#include "esp_text.h"
+
15#include "graphics_support.h"
+
16#include "image_to_3d_matrix.h"
+
17
+
18static ssd1306_handle_t ssd1306_dev = NULL;
+
19static bool button_pressed = true;
+
20
+ +
22
+
23extern "C" void app_main();
+
24
+
+ +
34{
+
35#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
37 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
38 ESP_LOGI("3D image demo", "Selected 3D image - ESP Logo");
+
39#elif CONFIG_3D_OBJECT_CUSTOM
+ +
41 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
42 ESP_LOGI("3D image demo", "Selected 3D image - User's custom image");
+
43#elif CONFIG_3D_OBJECT_CUBE
+
44 image->matrix = cube_vectors_3d;
+
45 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
46 ESP_LOGI("3D image demo", "Selected 3D image - 3D cube");
+
47#endif
+
48}
+
+
49
+
+
53static void app_ssd1306_init(void)
+
54{
+
55 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
56 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
57 ssd1306_refresh_gram(ssd1306_dev);
+
58}
+
+
59
+
+
68static void display_3d_image(dspm::Mat projected_image)
+
69{
+
70 ssd1306_clear_screen(ssd1306_dev, 0);
+
71
+
72 if (OBJECT_3D_CUBE) {
+
73 // For the 3D cube, only the 6 points of the cube are transformed
+
74 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
75 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
76 ssd1306_draw_line(ssd1306_dev,
+
77 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
78 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
79 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
80 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
81 }
+
82 } else {
+
83 // Every other 3D image is drawn here pixel by pixel
+
84 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
85 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
86 }
+
87 }
+
88 ssd1306_refresh_gram(ssd1306_dev);
+
89}
+
+
90
+
+
96static void dispaly_esp_text(void)
+
97{
+
98 image_3d_matrix_t esp_text;
+ +
100 esp_text.matrix_len = ((sizeof(image_3d_array_esp_text)) / sizeof(float)) / MATRIX_SIZE;
+
101 int16_t shift_x = -SSD1606_X_CENTER;
+
102
+
103 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
104 dspm::Mat transformed_image(esp_text.matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
105 dspm::Mat matrix_3d((float *)esp_text.matrix[0], esp_text.matrix_len, MATRIX_SIZE);
+
106
+
107 ESP_LOGI("3D image demo", "Showing ESP text");
+
108
+
109 for (int i = 0; i < 52; i++) {
+
110 update_translation_matrix(T, true, (float)shift_x, (float)SSD1606_Y_CENTER, 0);
+
111 transformed_image = matrix_3d * T;
+
112
+
113 ssd1306_clear_screen(ssd1306_dev, 0);
+
114 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
115 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
116 }
+
117 ssd1306_refresh_gram(ssd1306_dev);
+
118 vTaskDelay(50 / portTICK_PERIOD_MS);
+
119
+
120 shift_x += 5;
+
121 }
+
122
+
123 ssd1306_clear_screen(ssd1306_dev, 0);
+
124 ssd1306_draw_bitmap(ssd1306_dev, 0, 24, &image_bmp_array_esp_text[0], 128, 24);
+
125 ssd1306_refresh_gram(ssd1306_dev);
+
126
+ +
128 vTaskDelay(100 / portTICK_PERIOD_MS);
+
129
+
130 float scale = 1;
+
131 for (int i = 0; i < 20; i++) {
+
132 update_scaling_matrix(T, false, scale, scale, 1);
+
133 transformed_image = matrix_3d * T;
+
134
+
135 ssd1306_clear_screen(ssd1306_dev, 0);
+
136 for (uint32_t point = 0; point < transformed_image.rows; point++ ) {
+
137 ssd1306_fill_point(ssd1306_dev, transformed_image(point, 0), transformed_image(point, 1), 1);
+
138 }
+
139 ssd1306_refresh_gram(ssd1306_dev);
+
140 vTaskDelay(50 / portTICK_PERIOD_MS);
+
141
+
142 if (i < 10) {
+
143 scale -= 0.05;
+
144 } else {
+
145 scale += 0.05;
+
146 }
+
147 }
+
148}
+
+
149
+
+
157static void draw_3d_image_task(void *arg)
+
158{
+
159 float rot_y = 0, rot_x = 0;
+
160 const float angle_increment = 4;
+ +
162
+
163 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
164 dspm::Mat transformed_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
165 dspm::Mat projected_image(image->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
166 dspm::Mat matrix_3d((float *)image->matrix[0], image->matrix_len, MATRIX_SIZE);
+
167
+
168 if (OBJECT_3D_CUBE) {
+
169 rot_x = 45;
+
170 }
+
171
+
172 while (1) {
+
173 if (button_pressed) {
+
174 rot_y += angle_increment;
+
175 if (rot_y >= 360) {
+
176 rot_y -= 360;
+
177 }
+
178 } else {
+
179 rot_y -= angle_increment;
+
180 if (rot_y <= 0) {
+
181 rot_y += 360;
+
182 }
+
183 }
+
184
+
185 // Apply rotation in all the axes to the transformation matrix
+
186 update_rotation_matrix(T, rot_x, rot_y, 0);
+
187 // Apply translation to the transformation matrix
+
188 update_translation_matrix(T, true, ((float)SSD1606_X_CENTER), ((float)SSD1606_Y_CENTER), 0);
+
189
+
190 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
191 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
192
+
193 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
194 transformed_image = matrix_3d * T;
+
195 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
196 projected_image = transformed_image * perspective_matrix;
+
197
+
198 display_3d_image(projected_image);
+
199 vTaskDelay(20 / portTICK_PERIOD_MS);
+
200 }
+
201}
+
+
202
+
+
203void app_main(void)
+
204{
+
205 static bool button_prev_val = false;
+ + +
208 ekf13->Init();
+
209
+
210 // Init all board components
+
211 bsp_i2c_init();
+
212 app_ssd1306_init(); // display init
+
213 bsp_leds_init(); // LEDs init
+
214 bsp_i2c_set_clk_speed(I2C_CLK_600KHZ); // Set I2C to 600kHz
+
215
+ + +
218
+ +
220 vTaskDelay(1000 / portTICK_PERIOD_MS);
+
221
+
222 xTaskCreate(draw_3d_image_task, "draw_3d_image", 2048, &image, 4, NULL);
+
223 ESP_LOGI("3D image demo", "Showing 3D image");
+
224
+
225 while (1) {
+
226 if (bsp_button_get()) {
+ +
228 }
+
229
+
230 if (button_prev_val != button_pressed) {
+
231 button_prev_val = button_pressed;
+
232 if (button_pressed) {
+
233 bsp_led_set(BSP_LED_AZURE, true);
+
234 } else {
+
235 bsp_led_set(BSP_LED_AZURE, false);
+
236 }
+
237 }
+
238 vTaskDelay(100 / portTICK_PERIOD_MS);
+
239 }
+
240}
+
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+ + + + + +
const float image_3d_matrix_esp_logo[1427][4]
+ + +
const float image_to_3d_matrix_custom[1732][4]
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + +
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+ + + +
Matrix.
Definition mat.h:30
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+ + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void init_3d_matrix_struct(image_3d_matrix_t *image)
Initialize 3d image structure.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+ +
static void draw_3d_image_task(void *arg)
RTOS task to draw a 3d image.
+ + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html new file mode 100644 index 0000000..e694f7c --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html @@ -0,0 +1,1478 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter_demo.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kalman_filter_demo.cpp File Reference
+
+
+
#include <stdio.h>
+#include <malloc.h>
+#include "mpu6050.h"
+#include "ssd1306.h"
+#include "mag3110.h"
+#include "fbm320.h"
+#include "bsp/esp-bsp.h"
+#include "esp_log.h"
+#include "esp_timer.h"
+#include "esp_idf_version.h"
+#include "nvs.h"
+#include "nvs_flash.h"
+#include "graphics_support.h"
+#include "cube_matrix.h"
+#include "esp_dsp.h"
+#include "ekf_imu13states.h"
+#include "esp_logo.h"
+#include "image_to_3d_matrix.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Macros

#define STORAGE_NAMESPACE   "kalman_filter"
#define USE_BAROMETER   0
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void app_main ()
static void app_mag3110_init (void)
 Initialize magnetometer.
static void app_ssd1306_init (void)
 Initialize display.
static void mpu6050_init (void)
 Initialize accelerometer and gyroscope.
static void app_fbm320_init (void)
 Initialize pressure sensor.
static void init_nvs_flash_memory (void)
 Initialize NVS flash memory.
static void init_3d_matrix_struct (image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
 Initialize 3d image structure.
static void display_3d_image (dspm::Mat projected_image)
 Display a 3d image.
static void draw_3d_image (ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
 Draw a 3d image.
static void kalman_filter_task (void *arg)
 Kalman filter RTOS task (or ESP timer callback).
static void kalman_filter_calibration (image_3d_matrix_kalman_t *image)
 Kalman filter calibration procedure.
static void save_state_vectors_task (void *arg)
 RTOS task to periodically save the filter state.
static void get_pressure_task (void *arg)
 ROTS task to read a pressure.
float get_initial_pressure (void)
 read the initial value of pressure
+ + + + + + + + +

+Variables

static ssd1306_handle_t ssd1306_dev = NULL
static mpu6050_handle_t mpu6050_dev = NULL
static mag3110_handle_t mag3110_dev = NULL
static fbm320_handle_t fbm320_dev = NULL
static bool kalman_filter_calibrated = false
static bool board_inactive = true
dspm::Mat perspective_matrix (MATRIX_SIZE, MATRIX_SIZE)
+

Macro Definition Documentation

+ +

◆ STORAGE_NAMESPACE

+ +
+
+ + + + +
#define STORAGE_NAMESPACE   "kalman_filter"
+
+
+ +

◆ USE_BAROMETER

+ +
+
+ + + + +
#define USE_BAROMETER   0
+
+
+

Function Documentation

+ +

◆ app_fbm320_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_fbm320_init (void )
+
+static
+
+ +

Initialize pressure sensor.

+ +

Definition at line 78 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
79{
+
80 esp_err_t ret;
+
81 fbm320_dev = fbm320_create((i2c_port_t)BSP_I2C_NUM, FBM320_I2C_ADDRESS_1);
+
82 ret = fbm320_init(fbm320_dev);
+
83 assert(ESP_OK == ret);
+
84}
+ +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
+

References ESP_OK, and fbm320_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_mag3110_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_mag3110_init (void )
+
+static
+
+ +

Initialize magnetometer.

+ +

Definition at line 44 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
45{
+
46 esp_err_t ret;
+
47 mag3110_dev = mag3110_create((i2c_port_t)BSP_I2C_NUM);
+
48 mag3110_start_raw(mag3110_dev, MAG3110_DR_OS_80_16);
+
49 assert(ESP_OK == ret);
+
50}
+ +
+

References ESP_OK, and mag3110_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 575 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
576{
+ + +
579 ekf13->Init();
+
580
+
581 // Init all board components
+
582 bsp_i2c_init();
+
583 app_ssd1306_init(); // display init
+
584 mpu6050_init(); // gyro, acc init
+
585 app_mag3110_init(); // magnetometer init
+
586 app_fbm320_init(); // barometer init
+
587 bsp_leds_init(); // LEDs init
+
588 init_nvs_flash_memory(); // Non-Volatile Storage
+
589
+ + + +
593
+
594 // Use a barometer for measuring the altitude
+
595 if (USE_BAROMETER) {
+
596 float init_pressure = get_initial_pressure();
+
597 xTaskCreate(get_pressure_task, "get_pressure_task", 2048 * 4, &init_pressure, 4, NULL);
+
598 } else {
+
599 ESP_LOGI("Barometer", "disabled");
+
600 }
+
601
+
602 xTaskCreate(kalman_filter_task, "kalman_filter_task", 2048 * 4, &image, 5, NULL);
+
603 xTaskCreate(save_state_vectors_task, "save_state_vectors", 2048, ekf13, 6, NULL);
+
604
+
605 while (1) {
+
606 vTaskDelay(10000 / portTICK_PERIOD_MS);
+
607 }
+
608}
+
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ +
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+ + + +
This class is used to process and calculate attitude from imu sensors.
+
static void mpu6050_init(void)
Initialize accelerometer and gyroscope.
+
static void kalman_filter_calibration(image_3d_matrix_kalman_t *image)
Kalman filter calibration procedure.
+
float get_initial_pressure(void)
read the initial value of pressure
+ +
static void init_nvs_flash_memory(void)
Initialize NVS flash memory.
+ +
static void init_3d_matrix_struct(image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
Initialize 3d image structure.
+ +
+

References app_fbm320_init(), app_mag3110_init(), app_ssd1306_init(), bsp_i2c_init(), ekf13, get_initial_pressure(), get_pressure_task(), image, init_3d_matrix_struct(), init_nvs_flash_memory(), init_perspective_matrix(), kalman_filter_calibration(), kalman_filter_task(), mpu6050_init(), perspective_matrix, save_state_vectors_task(), and USE_BAROMETER.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ app_ssd1306_init()

+ +
+
+ + + + + +
+ + + + + + + +
void app_ssd1306_init (void )
+
+static
+
+ +

Initialize display.

+ +

Definition at line 55 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
56{
+
57 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
58 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
59 ssd1306_refresh_gram(ssd1306_dev);
+
60}
+ +
+

References ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ display_3d_image()

+ +
+
+ + + + + +
+ + + + + + + +
void display_3d_image (dspm::Mat projected_image)
+
+static
+
+ +

Display a 3d image.

+

If the object is the 3d cube, connect the projected cube points by lines and display the lines For any other 3d object lit pixels on the display from provided XY coordinates

+
Parameters
+ + +
projected_image3d matrix from Mat class after projection
+
+
+ +

Definition at line 136 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
137{
+
138 ssd1306_clear_screen(ssd1306_dev, 0);
+
139
+
140 if (OBJECT_3D_CUBE) {
+
141 // For the 3D cube, only the 6 points of the cube are transformed
+
142 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
143 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
144 ssd1306_draw_line(ssd1306_dev,
+
145 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
146 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
147 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
148 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
149 }
+
150 } else {
+
151 // Every other 3D image is drawn here pixel by pixel
+
152 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
153 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
154 }
+
155 }
+
156 ssd1306_refresh_gram(ssd1306_dev);
+
157}
+ + + + +
int rows
Definition mat.h:33
+
+

References cube_dict_line_begin, cube_dict_line_end, CUBE_EDGES, OBJECT_3D_CUBE, dspm::Mat::rows, and ssd1306_dev.

+ +

Referenced by draw_3d_image().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ draw_3d_image()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
void draw_3d_image (ekf_imu13states * ekf13,
dspm::Mat & transformed_image,
dspm::Mat & projected_image,
dspm::Mat & matrix_3d )
+
+static
+
+ +

Draw a 3d image.

+

Updates 3d matrices and prepares the final 3d matrix to be displayed on the display. Board inactivity check - decides which board mode to display (active or inactive), based on the board movements.

+
Parameters
+ + + + + +
ekf13kalman filter object
transformed_image3d matrix holding a 3d image after transformation
projected_image3d matrix holding a 3d image after projection
matrix_3d3d matrix holding the original 3d image, without any transformation
+
+
+ +

Definition at line 170 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
171{
+
172 static const float movement_treshold = 0.0001; // threshold to decide between Idle and Active state of the board
+
173 static float inactive_rotation = 0; // rotation angle (in degrees) for Idle state
+
174 static unsigned int inactivity_count = 0;
+
175 static const unsigned int inactivity_count_treshold = 75;
+
176 static unsigned int inactivity_check = 0; // activity of the board is being checked once in N calls of the function
+
177 static float prev_state_arr[3] = {0, 0, 0}; // holds the previous state of the Euler angles, to compare the diff
+
178
+
179 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
180 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data); // matrix(3x1) that holds x, y, z rotation data
+
181 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
182
+
183 // check if the board is active or not every N calls of the function
+
184 if (!(inactivity_check++ % 10)) {
+
185 dspm::Mat prev_state_mat(prev_state_arr, 3, 1);
+
186 dspm::Mat diff = eul_angles - prev_state_mat;
+
187 prev_state_mat = eul_angles;
+
188
+
189 float max_diff = fabs(diff(0, 0) * diff(1, 0) * diff(2, 0));
+
190
+
191 // wake-up the board if the current board movement crosses the threshold
+
192 if (board_inactive && (max_diff > movement_treshold)) {
+
193 board_inactive = false;
+
194 ESP_LOGI("Board status", "board put to active mode");
+
195 }
+
196
+
197 // if the board is awake, and the current movement of the board is lower than the threshold - the board is
+
198 // being moved with - run the inactivity_counter
+
199 // after some time (if the movement of the board has been lower than the threshold) put the board to idle mode
+
200 else if (!board_inactive && (max_diff < movement_treshold)) {
+
201 if (inactivity_count > inactivity_count_treshold) {
+
202 board_inactive = true;
+
203 inactivity_count = 0;
+
204 ESP_LOGI("Board status", "board put to idle mode");
+ +
206 }
+
207 inactivity_count++;
+
208 }
+
209
+
210 // if the board is awake and the current movement of the board is higher than the threshold clear the inactivity_counter
+
211 else if (!board_inactive && (max_diff >= movement_treshold)) {
+
212 inactivity_count = 0;
+
213 }
+
214 }
+
215
+
216 if (board_inactive) {
+
217 // board idle state - display a rotating cube
+
218 update_rotation_matrix(T, inactive_rotation += 3.0, 10.0, 10.0);
+
219 } else {
+
220 // board active state - 3D object follows movements of the board
+
221 eul_angles(2, 0) = -eul_angles(2, 0);
+
222 dspm::Mat R = ekf::eul2rotm(eul_angles.data);
+
223
+
224 // Enlarge rotation matrix from 3x3 to 4x4
+
225 // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
226 for (int row = 0; row < R.rows; row++) {
+
227 for (int col = 0; col < R.cols; col++) {
+
228 T(row, col) = R(row, col);
+
229 }
+
230 }
+
231 }
+
232
+
233 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
234 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
235
+
236 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
237 transformed_image = matrix_3d * T;
+
238 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
239 projected_image = transformed_image * perspective_matrix;
+
240 display_3d_image(projected_image);
+
241}
+ +
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
int cols
Definition mat.h:34
+
static Mat eye(int size)
Definition mat.cpp:394
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
+

References board_inactive, dspm::Mat::cols, dspm::Mat::data, display_3d_image(), ekf13, ekf::eul2rotm(), dspm::Mat::eye(), MATRIX_SIZE, perspective_matrix, ekf::quat2rotm(), ekf::rotm2eul(), dspm::Mat::rows, update_perspective_matrix(), and update_rotation_matrix().

+ +

Referenced by kalman_filter_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ get_initial_pressure()

+ +
+
+ + + + + + + +
float get_initial_pressure (void )
+
+ +

read the initial value of pressure

+ +

Definition at line 541 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
542{
+
543 float pressure;
+
544 int32_t real_p, real_t;
+
545 int averagning_loop_count = 500;
+
546
+
547 ESP_LOGI("Barometer", "Averagining initial barometer pressure");
+
548 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
549 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Barometer", 16, 1);
+
550 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"averaging", 16, 1);
+
551 ssd1306_refresh_gram(ssd1306_dev);
+
552
+
553 // take the first pressure measurement
+
554 while (1) {
+
555 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
556 pressure = ((float)real_p) / 1000.0; // pressure in kPa
+
557 break;
+
558 }
+
559 }
+
560
+
561 // average first N measurements
+
562 while (averagning_loop_count--) {
+
563 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
564 pressure = (0.999 * pressure) + (0.001 * ((float)real_p) / 1000.0);
+
565 vTaskDelay(100 / portTICK_PERIOD_MS);
+
566 }
+
567 }
+
568
+
569 ESP_LOGI("Barometer", "Initial value set");
+
570 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
571 ssd1306_refresh_gram(ssd1306_dev);
+
572 return (pressure);
+
573}
+
+

References ESP_OK, fbm320_dev, and ssd1306_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ get_pressure_task()

+ +
+
+ + + + + +
+ + + + + + + +
void get_pressure_task (void * arg)
+
+static
+
+ +

ROTS task to read a pressure.

+

Pressure is measured periodically to better average out a stable value of pressure

+
Parameters
+ + +
argpointer to RTOS task arguments, pointer to the pressure variable in this case
+
+
+ +

Definition at line 497 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
498{
+
499 int32_t real_p, real_t;
+
500 float *pressure_ptr = (float *)arg;
+
501 float pressure_global = *pressure_ptr;
+
502
+
503 int call_count = 0;
+
504 int call_count1 = 0;
+
505 float pressure_initial = pressure_global;
+
506 float last_pressure = pressure_global;
+
507 float baro_image = pressure_global;
+
508 bool changed = false;
+
509
+
510 while (1) {
+
511 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
512 pressure_global = (0.999 * pressure_global) + (0.001 * ((float)real_p) / 1000.0);
+
513 call_count1++;
+
514 }
+
515
+
516 if (board_inactive) {
+
517 pressure_initial = pressure_global;
+
518 last_pressure = pressure_global;
+
519 baro_image = pressure_global;
+
520 } else {
+
521 call_count++;
+
522 if (fabs(pressure_global - last_pressure) > 0.0005) { // cahnge more than 0.5 Pa
+
523 last_pressure = pressure_global;
+
524 baro_image = (0.9 * baro_image) + (0.1 * last_pressure);
+
525 changed = true;
+
526 }
+
527
+
528 if ((!(call_count % 10)) && changed) {
+
529 float fov = 90 + (1000.0 * ((float)(pressure_initial - baro_image)));
+ +
531 changed = false;
+
532 }
+
533 }
+
534 vTaskDelay(100 / portTICK_PERIOD_MS);
+
535 }
+
536}
+
+

References board_inactive, ESP_OK, fbm320_dev, perspective_matrix, and update_perspective_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ init_3d_matrix_struct()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void init_3d_matrix_struct (image_3d_matrix_kalman_t * image,
ekf_imu13states * ekf13 )
+
+static
+
+ +

Initialize 3d image structure.

+

Assigns a 3d image to be displayed to the 3d image structure based on the Kconfig menu result. The Kconfig menu is operated by a user

+
Parameters
+ + + +
imagepointer to 3d image structure
ekf13kalman filter object
+
+
+ +

Definition at line 110 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
111{
+
112#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
114 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
115 ESP_LOGI("Kalman filter demo", "Selected 3D image - ESP Logo");
+
116#elif CONFIG_3D_OBJECT_CUSTOM
+ +
118 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
119 ESP_LOGI("Kalman filter demo", "Selected 3D image - User's custom image");
+
120#elif CONFIG_3D_OBJECT_CUBE
+
121 image->matrix = cube_vectors_3d;
+
122 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
123 ESP_LOGI("Kalman filter demo", "Selected 3D image - 3D cube");
+
124#endif
+
125 image->ekf13 = ekf13;
+
126}
+ +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
+

References cube_vectors_3d, ekf13, image, image_3d_matrix_esp_logo, image_to_3d_matrix_custom, and MATRIX_SIZE.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ init_nvs_flash_memory()

+ +
+
+ + + + + +
+ + + + + + + +
void init_nvs_flash_memory (void )
+
+static
+
+ +

Initialize NVS flash memory.

+ +

Definition at line 89 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
90{
+
91 esp_err_t err = nvs_flash_init();
+
92 if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+
93 // NVS partition was truncated and needs to be erased
+
94 // Retry nvs_flash_init
+
95 ESP_ERROR_CHECK(nvs_flash_erase());
+
96 err = nvs_flash_init();
+
97 }
+
98 ESP_ERROR_CHECK( err );
+
99}
+
+

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ kalman_filter_calibration()

+ +
+
+ + + + + +
+ + + + + + + +
void kalman_filter_calibration (image_3d_matrix_kalman_t * image)
+
+static
+
+ +

Kalman filter calibration procedure.

+

The Kalman filter must be calibrated before the very first run. The state of the Kalman filter is saved into NVS after the calibration. The calibration is run, only if no Kalman filter state is saved in the NVS. Which occurs after erasing the flash memory. Power cycling the board does not remove the Kalman filter state from the NVS.

+
Parameters
+ + +
imagepointer to 3d image structure
+
+
+ +

Definition at line 326 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
327{
+
328 ekf_imu13states *ekf13 = image->ekf13;
+
329 esp_err_t ret;
+
330 nvs_handle_t nvs_handle_kalman;
+
331 size_t state_vectors_size = 13 * 14;
+
332 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
333
+
334 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
335 if (ret != ESP_OK) {
+
336 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
337 assert(ESP_OK == ret);
+
338 }
+
339
+
340 // Read previously saved blob, if available
+
341 size_t required_size = 0; // value will default to 0, if not set yet in NVS
+
342 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", NULL, &required_size);
+
343 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
344 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
345 assert(ESP_OK == ret);
+
346 }
+
347
+
348 if (required_size > 0) {
+
349 ESP_LOGI("Kalman filter demo", "Filter state vectors present in the NVS");
+
350 ESP_LOGI("Kalman filter demo", "Loading state vectors into the filter structure");
+
351
+
352 size_t state_vectors_size_addr = state_vectors_size * sizeof(float);
+
353 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", state_vectors, &state_vectors_size_addr);
+
354 if (ret != ESP_OK) {
+
355 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
356 assert(ESP_OK == ret);
+
357 }
+
358
+
359 for (int i = 0; i < state_vectors_size; i++) {
+
360 if (i < state_vectors_size - 13) {
+
361 ekf13->P.data[i] = state_vectors[i];
+
362 } else {
+
363 ekf13->X.data[i - (state_vectors_size - 13)] = state_vectors[i];
+
364 }
+
365 }
+
366
+
367 ESP_LOGI("Kalman filter demo", "State vectors loaded from the NVS");
+
368 nvs_close(nvs_handle_kalman);
+
369
+
370 } else {
+
371 ESP_LOGI("Kalman filter demo", "Filter state vectors not present in the NVS");
+
372 const float kalman_timer_period_us = 100000;
+
373
+
374 // ESP timer for the Kalman filter calibration
+
375 const esp_timer_create_args_t kalman_calibration_timer_config = {
+
376 .callback = kalman_filter_task,
+
377 .arg = image,
+
378 .dispatch_method = ESP_TIMER_TASK,
+
379 .name = "kalman_filter_calibration_timer",
+
380#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0)
+
381 .skip_unhandled_events = true,
+
382#endif
+
383 };
+
384
+
385 esp_timer_handle_t kalman_calibration_timer = NULL;
+
386 ret = esp_timer_create(&kalman_calibration_timer_config, &kalman_calibration_timer);
+
387 assert(ESP_OK == ret);
+
388 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
389
+
390 ESP_LOGI("Kalman filter demo", "Starting Kalman filter calibration loop");
+
391
+
392 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
393 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Kalman filter", 16, 1);
+
394 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"calibration", 16, 1);
+
395 ssd1306_refresh_gram(ssd1306_dev);
+
396
+
397 ret = esp_timer_start_periodic(kalman_calibration_timer, kalman_timer_period_us);
+
398 assert(ESP_OK == ret);
+
399 vTaskDelay(100000 / portTICK_PERIOD_MS);
+
400
+
401 ret = esp_timer_stop(kalman_calibration_timer);
+
402 assert(ESP_OK == ret);
+
403 ret = esp_timer_delete(kalman_calibration_timer);
+
404 assert(ESP_OK == ret);
+
405 ESP_LOGI("Kalman filter demo", "Exiting Kalman filter calibration loop");
+
406 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
407 ssd1306_refresh_gram(ssd1306_dev);
+
408 vTaskDelay(100 / portTICK_PERIOD_MS);
+
409
+
410 dspm::Mat estimated_error(&ekf13->X.data[4], 3, 1);
+
411
+
412 ESP_LOGI("Kalman filter demo", "Estimated gyroscope bias error [deg/sec]: %.6f\t%.6f\t%.6f",
+
413 estimated_error.data[0], estimated_error.data[1], estimated_error.data[2]);
+
414
+
415 for (int i = 0; i < state_vectors_size; i++) {
+
416 if (i < state_vectors_size - 13) {
+
417 state_vectors[i] = ekf13->P.data[i];
+
418 } else {
+
419 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
420 }
+
421 }
+
422
+
423 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
424 assert(ESP_OK == ret);
+
425 ret = nvs_commit(nvs_handle_kalman);
+
426 assert(ESP_OK == ret);
+
427 nvs_close(nvs_handle_kalman);
+
428 ESP_LOGI("Kalman filter demo", "State vectors saved to the NVS");
+
429 }
+
430 // Set the initial state of the X vector
+
431 ekf13->X(0, 0) = 1;
+
432 ekf13->X(0, 1) = 0;
+
433 ekf13->X(0, 2) = 0;
+
434 ekf13->X(0, 3) = 0;
+
435 free(state_vectors);
+ +
437}
+ + +
+

References dspm::Mat::data, ekf13, ESP_OK, image, kalman_filter_calibrated, kalman_filter_task(), ssd1306_dev, and STORAGE_NAMESPACE.

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ kalman_filter_task()

+ +
+
+ + + + + +
+ + + + + + + +
void kalman_filter_task (void * arg)
+
+static
+
+ +

Kalman filter RTOS task (or ESP timer callback).

+

Takes IMU sensors measurements to be processed by the Kalman filter Function is used as: RTOS task - during normal Kalman filter operation ESP Timer callback function - during Kalman filter calibration process

+
Parameters
+ + +
argpointer to RTOS task arguments, 3d image structure in this case
+
+
+ +

Definition at line 253 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
254{
+
255 mpu6050_acce_value_t acce_sample;
+
256 mpu6050_gyro_value_t gyro_sample;
+
257 mag3110_result_t mag_sample;
+
258
+
259 image_3d_matrix_kalman_t *kalman_filter_args = (image_3d_matrix_kalman_t *)arg;
+
260 ekf_imu13states *ekf13 = kalman_filter_args->ekf13;
+
261 dspm::Mat transformed_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
262 dspm::Mat projected_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
263 dspm::Mat matrix_3d((float *)kalman_filter_args->matrix[0], kalman_filter_args->matrix_len, MATRIX_SIZE);
+
264
+
265 // Covariance matrix for Kalman filter, set specifically for this development board IMU sensors
+
266 float R_m[10] = {0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.000001, 0.000001, 0.000001, 0.000001};
+ +
268
+
269 while (1) {
+
270 // dt calculation
+
271 static float prev_time = 0;
+
272 const float current_time = dsp_get_cpu_cycle_count();
+
273 float dt = 0;
+
274
+
275 // Crystal count difference conversion to Dt time constant
+
276 if (current_time > prev_time) {
+
277 dt = current_time - prev_time;
+
278 dt = dt / 240000000.0;
+
279 }
+
280 prev_time = current_time;
+
281
+
282 // Get all the sensors values
+
283 mpu6050_get_acce(mpu6050_dev, &acce_sample);
+
284 mpu6050_get_gyro(mpu6050_dev, &gyro_sample);
+
285 mag3110_get_magnetic_induction(mag3110_dev, &mag_sample);
+
286
+
287 // Make arrays from the sensors values
+
288 float gyro_input_arr[3] = {gyro_sample.gyro_x, gyro_sample.gyro_y, gyro_sample.gyro_z};
+
289 float accel_input_arr[3] = {acce_sample.acce_x, acce_sample.acce_y, acce_sample.acce_z};
+
290 float mag_input_arr[3] = {(float)mag_sample.x, (float)mag_sample.y, (float)mag_sample.z};
+
291
+
292 // Accel and Mag data to Mat class
+
293 dspm::Mat gyro_input_mat(gyro_input_arr, 3, 1);
+
294 dspm::Mat accel_input_mat(accel_input_arr, 3, 1);
+
295 dspm::Mat mag_input_mat(mag_input_arr, 3, 1);
+
296
+
297 // Normalize vectors
+
298 dspm::Mat accel_norm = accel_input_mat / accel_input_mat.norm();
+
299 dspm::Mat magn_norm = mag_input_mat / mag_input_mat.norm();
+
300 gyro_input_mat *= DEG_TO_RAD;
+
301
+
302 ekf13->Process(gyro_input_mat.data, dt);
+
303 ekf13->UpdateRefMeasurementMagn(accel_norm.data, magn_norm.data, R_m);
+
304
+ +
306 // Use the function as RTOS task for the filter calculation
+
307 draw_3d_image(ekf13, transformed_image, projected_image, matrix_3d);
+
308 vTaskDelay(20 / portTICK_PERIOD_MS);
+
309 } else {
+
310 // Use the function as a callback for kalman_filter_calibration_timer
+
311 break;
+
312 }
+
313 }
+
314}
+ + +
float norm(void)
Definition mat.cpp:456
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+
static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
Draw a 3d image.
+ + + +
+

References dspm::Mat::data, DEG_TO_RAD, draw_3d_image(), dsp_get_cpu_cycle_count, ekf13, image_3d_matrix_kalman_s::ekf13, kalman_filter_calibrated, mag3110_dev, image_3d_matrix_kalman_s::matrix, image_3d_matrix_kalman_s::matrix_len, MATRIX_SIZE, mpu6050_dev, dspm::Mat::norm(), perspective_matrix, and update_perspective_matrix().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ mpu6050_init()

+ +
+
+ + + + + +
+ + + + + + + +
void mpu6050_init (void )
+
+static
+
+ +

Initialize accelerometer and gyroscope.

+ +

Definition at line 65 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
66{
+
67 esp_err_t ret;
+
68 mpu6050_dev = mpu6050_create((i2c_port_t)BSP_I2C_NUM, MPU6050_I2C_ADDRESS);
+
69 ret = mpu6050_config(mpu6050_dev, ACCE_FS_8G, GYRO_FS_2000DPS);
+
70 assert(ESP_OK == ret);
+
71 ret = mpu6050_wake_up(mpu6050_dev);
+
72 assert(ESP_OK == ret);
+
73}
+
+

References ESP_OK, and mpu6050_dev.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ save_state_vectors_task()

+ +
+
+ + + + + +
+ + + + + + + +
void save_state_vectors_task (void * arg)
+
+static
+
+ +

RTOS task to periodically save the filter state.

+

The Kalman filter state is periodically saved into the NVS, each 5 min. So a recent Kalman filter state could be loaded into the Kalman filter object after a power cycle.

+
Parameters
+ + +
argpointer to RTOS task arguments, Kalman filter object in this case
+
+
+ +

Definition at line 447 of file external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp.

+
448{
+
449 esp_err_t ret;
+
450 size_t state_vectors_size = 13 * 14;
+
451 nvs_handle_t nvs_handle_kalman;
+ +
453 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // 5min
+
454
+
455 while (1) {
+
456 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
457
+
458 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
459 if (ret != ESP_OK) {
+
460 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
461 assert(ESP_OK == ret);
+
462 }
+
463
+
464 for (int i = 0; i < state_vectors_size; i++) {
+
465 if (i < state_vectors_size - 13) {
+
466 state_vectors[i] = ekf13->P.data[i];
+
467 } else {
+
468 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
469 }
+
470 }
+
471
+
472 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
473 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
474 ESP_LOGE("NVS error", "(%s) writing data to NVS!\n", esp_err_to_name(ret));
+
475 assert(ESP_OK == ret);
+
476 }
+
477
+
478 ret = nvs_commit(nvs_handle_kalman);
+
479 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
480 ESP_LOGE("NVS error", "(%s) commiting data to NVS!\n", esp_err_to_name(ret));
+
481 assert(ESP_OK == ret);
+
482 }
+
483 nvs_close(nvs_handle_kalman);
+
484 ESP_LOGI("Kalman filter demo", "State vectors saved to NVS");
+
485 free(state_vectors);
+
486 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // Save the State vectors each 5 min
+
487 }
+
488}
+
+

References ekf13, ESP_OK, and STORAGE_NAMESPACE.

+ +
+
+

Variable Documentation

+ +

◆ board_inactive

+ +
+
+ + + + + +
+ + + + +
bool board_inactive = true
+
+static
+
+
+ +

◆ fbm320_dev

+ +
+
+ + + + + +
+ + + + +
fbm320_handle_t fbm320_dev = NULL
+
+static
+
+
+ +

◆ kalman_filter_calibrated

+ +
+
+ + + + + +
+ + + + +
bool kalman_filter_calibrated = false
+
+static
+
+
+ +

◆ mag3110_dev

+ +
+
+ + + + + +
+ + + + +
mag3110_handle_t mag3110_dev = NULL
+
+static
+
+
+ +

◆ mpu6050_dev

+ +
+
+ + + + + +
+ + + + +
mpu6050_handle_t mpu6050_dev = NULL
+
+static
+
+
+ +

◆ perspective_matrix

+ +
+
+ + + + + + + + + + + +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE) (MATRIX_SIZE ,
MATRIX_SIZE  )
+
+ +
+
+ +

◆ ssd1306_dev

+ +
+
+ + + + + +
+ + + + +
ssd1306_handle_t ssd1306_dev = NULL
+
+static
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js new file mode 100644 index 0000000..e063037 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.js @@ -0,0 +1,26 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp = +[ + [ "STORAGE_NAMESPACE", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a56bd385f1d47f204f712650694661d7c", null ], + [ "USE_BAROMETER", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a28a213aef1cec2da92d153aca74d5ff4", null ], + [ "app_fbm320_init", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#abf02d1479863a05aa4759131e408264e", null ], + [ "app_mag3110_init", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a944145b69708f61a94696cd081386d5a", null ], + [ "app_main", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#abce06be17fc37d675118a678a8100a36", null ], + [ "app_ssd1306_init", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#afac7c47eff81b6719e589256c8799d5e", null ], + [ "display_3d_image", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a4b024d66e45ca738ce324999e3d8f75b", null ], + [ "draw_3d_image", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2955b9e77f5bd23f109feaaed1496af5", null ], + [ "get_initial_pressure", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2ccb3a970d903b791f523902ab06d694", null ], + [ "get_pressure_task", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a7cbec0bc78cfb4326f8b5c19d7f9a5bb", null ], + [ "init_3d_matrix_struct", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#af4bd9d0f6d48907b5fbbdbed6f06f20d", null ], + [ "init_nvs_flash_memory", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#aba35410bb6759629444f03a95bbd7c98", null ], + [ "kalman_filter_calibration", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a1967e917dafd16b5f02410c5b10c1d90", null ], + [ "kalman_filter_task", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#af43b34764385f3f1ad35ce1c00db220f", null ], + [ "mpu6050_init", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a0d450ba4dd28ea2acb105a3ece7db976", null ], + [ "save_state_vectors_task", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a2f69aa0d08a5e85a5016ab08dbdc20fb", null ], + [ "board_inactive", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a0cb5fd0b779570c9bc7ca9ae81fb9f52", null ], + [ "fbm320_dev", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a7e278910e0d93695081edda9a0ff4891", null ], + [ "kalman_filter_calibrated", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a6165c3d5123b67289075877c26f707e6", null ], + [ "mag3110_dev", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#ae2eb1aa71f1392378fb30d571f9700e4", null ], + [ "mpu6050_dev", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a275b510afcb5dff24fa20de057c25293", null ], + [ "perspective_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a02fb9d0e8e57657fe95c6bd2c04fb5ac", null ], + [ "ssd1306_dev", "external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp.html#a001a4d44724bfb0668ac6de0d351ae75", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 new file mode 100644 index 0000000..ca910da --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.md5 @@ -0,0 +1 @@ +163cd7e45918432a7237f940c2f1e423 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg new file mode 100644 index 0000000..56bd617 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl.svg @@ -0,0 +1,1915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_demo.cpp + + +Node1 + + +kalman_filter_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +malloc.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mpu6050.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +mag3110.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +fbm320.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +bsp/esp-bsp.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +esp_timer.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +nvs.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +nvs_flash.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +graphics_support.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +cube_matrix.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node1->Node17 + + + + + + + + +Node84 + + +ekf_imu13states.h + + + + + +Node1->Node84 + + + + + + + + +Node89 + + +esp_logo.h + + + + + +Node1->Node89 + + + + + + + + +Node90 + + +image_to_3d_matrix.h + + + + + +Node1->Node90 + + + + + + + + +Node10 + + +stdlib.h + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +dsp_common.h + + + + + +Node17->Node18 + + + + + + + + +Node25 + + +dsp_types.h + + + + + +Node17->Node25 + + + + + + + + +Node27 + + +dsps_dotprod.h + + + + + +Node17->Node27 + + + + + + + + +Node30 + + +dsps_math.h + + + + + +Node17->Node30 + + + + + + + + +Node42 + + +dsps_fir.h + + + + + +Node17->Node42 + + + + + + + + +Node44 + + +dsps_resampler.h + + + + + +Node17->Node44 + + + + + + + + +Node45 + + +dsps_biquad.h + + + + + +Node17->Node45 + + + + + + + + +Node47 + + +dsps_biquad_gen.h + + + + + +Node17->Node47 + + + + + + + + +Node48 + + +dsps_wind.h + + + + + +Node17->Node48 + + + + + + + + +Node55 + + +dsps_conv.h + + + + + +Node17->Node55 + + + + + + + + +Node57 + + +dsps_corr.h + + + + + +Node17->Node57 + + + + + + + + +Node58 + + +dsps_d_gen.h + + + + + +Node17->Node58 + + + + + + + + +Node59 + + +dsps_h_gen.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dsps_tone_gen.h + + + + + +Node17->Node60 + + + + + + + + +Node61 + + +dsps_snr.h + + + + + +Node17->Node61 + + + + + + + + +Node62 + + +dsps_sfdr.h + + + + + +Node17->Node62 + + + + + + + + +Node63 + + +dsps_fft2r.h + + + + + +Node17->Node63 + + + + + + + + +Node66 + + +dsps_fft4r.h + + + + + +Node17->Node66 + + + + + + + + +Node68 + + +dsps_dct.h + + + + + +Node17->Node68 + + + + + + + + +Node69 + + +dspm_matrix.h + + + + + +Node17->Node69 + + + + + + + + +Node80 + + +dsps_view.h + + + + + +Node17->Node80 + + + + + + + + +Node81 + + +dspi_dotprod.h + + + + + +Node17->Node81 + + + + + + + + +Node83 + + +dspi_conv.h + + + + + +Node17->Node83 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +stdint.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +stdbool.h + + + + + +Node18->Node20 + + + + + + + + +Node21 + + +dsp_err.h + + + + + +Node18->Node21 + + + + + + + + +Node24 + + +x86intrin.h + + + + + +Node18->Node24 + + + + + + + + +Node21->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26 + + +inttypes.h + + + + + +Node25->Node26 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +dsps_dotprod_platform.h + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +sdkconfig.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_add.h + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +dsps_sub.h + + + + + +Node30->Node33 + + + + + + + + +Node35 + + +dsps_mul.h + + + + + +Node30->Node35 + + + + + + + + +Node37 + + +dsps_addc.h + + + + + +Node30->Node37 + + + + + + + + +Node39 + + +dsps_mulc.h + + + + + +Node30->Node39 + + + + + + + + +Node41 + + +dsps_sqrt.h + + + + + +Node30->Node41 + + + + + + + + +Node31->Node21 + + + + + + + + +Node33->Node21 + + + + + + + + +Node35->Node21 + + + + + + + + +Node37->Node21 + + + + + + + + +Node39->Node21 + + + + + + + + +Node41->Node21 + + + + + + + + +Node42->Node18 + + + + + + + + +Node42->Node21 + + + + + + + + +Node43 + + +dsps_fir_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node29 + + + + + + + + +Node44->Node21 + + + + + + + + +Node44->Node42 + + + + + + + + +Node45->Node21 + + + + + + + + +Node46 + + +dsps_biquad_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node29 + + + + + + + + +Node47->Node21 + + + + + + + + +Node49 + + +dsps_wind_hann.h + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman.h + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +dsps_wind_blackman +_harris.h + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node48->Node52 + + + + + + + + +Node53 + + +dsps_wind_nuttall.h + + + + + +Node48->Node53 + + + + + + + + +Node54 + + +dsps_wind_flat_top.h + + + + + +Node48->Node54 + + + + + + + + +Node55->Node21 + + + + + + + + +Node56 + + +dsps_conv_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node29 + + + + + + + + +Node57->Node21 + + + + + + + + +Node57->Node56 + + + + + + + + +Node58->Node21 + + + + + + + + +Node59->Node21 + + + + + + + + +Node60->Node21 + + + + + + + + +Node61->Node21 + + + + + + + + +Node62->Node21 + + + + + + + + +Node63->Node21 + + + + + + + + +Node63->Node29 + + + + + + + + +Node64 + + +dsps_fft_tables.h + + + + + +Node63->Node64 + + + + + + + + +Node65 + + +dsps_fft2r_platform.h + + + + + +Node63->Node65 + + + + + + + + +Node65->Node29 + + + + + + + + +Node66->Node21 + + + + + + + + +Node66->Node29 + + + + + + + + +Node66->Node64 + + + + + + + + +Node67 + + +dsps_fft4r_platform.h + + + + + +Node66->Node67 + + + + + + + + +Node67->Node29 + + + + + + + + +Node68->Node21 + + + + + + + + +Node68->Node29 + + + + + + + + +Node70 + + +dspm_add.h + + + + + +Node69->Node70 + + + + + + + + +Node72 + + +dspm_addc.h + + + + + +Node69->Node72 + + + + + + + + +Node74 + + +dspm_mult.h + + + + + +Node69->Node74 + + + + + + + + +Node76 + + +dspm_mulc.h + + + + + +Node69->Node76 + + + + + + + + +Node78 + + +dspm_sub.h + + + + + +Node69->Node78 + + + + + + + + +Node70->Node21 + + + + + + + + +Node72->Node21 + + + + + + + + +Node74->Node21 + + + + + + + + +Node76->Node21 + + + + + + + + +Node78->Node21 + + + + + + + + +Node80->Node21 + + + + + + + + +Node81->Node9 + + + + + + + + +Node81->Node21 + + + + + + + + +Node81->Node25 + + + + + + + + +Node82 + + +dspi_dotprod_platform.h + + + + + +Node81->Node82 + + + + + + + + +Node82->Node29 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node25 + + + + + + + + +Node83->Node56 + + + + + + + + +Node85 + + +ekf.h + + + + + +Node84->Node85 + + + + + + + + +Node85->Node19 + + + + + + + + +Node85->Node20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg new file mode 100644 index 0000000..8c6973a --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp__incl_org.svg @@ -0,0 +1,1832 @@ + + + + + + +kalman_filter_demo.cpp + + +Node1 + + +kalman_filter_demo.cpp + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +malloc.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mpu6050.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +ssd1306.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +mag3110.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +fbm320.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +bsp/esp-bsp.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_log.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +esp_timer.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_idf_version.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +nvs.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +nvs_flash.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +graphics_support.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +cube_matrix.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +esp_dsp.h + + + + + +Node1->Node17 + + + + + + + + +Node84 + + +ekf_imu13states.h + + + + + +Node1->Node84 + + + + + + + + +Node89 + + +esp_logo.h + + + + + +Node1->Node89 + + + + + + + + +Node90 + + +image_to_3d_matrix.h + + + + + +Node1->Node90 + + + + + + + + +Node10 + + +stdlib.h + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +dsp_common.h + + + + + +Node17->Node18 + + + + + + + + +Node25 + + +dsp_types.h + + + + + +Node17->Node25 + + + + + + + + +Node27 + + +dsps_dotprod.h + + + + + +Node17->Node27 + + + + + + + + +Node30 + + +dsps_math.h + + + + + +Node17->Node30 + + + + + + + + +Node42 + + +dsps_fir.h + + + + + +Node17->Node42 + + + + + + + + +Node44 + + +dsps_resampler.h + + + + + +Node17->Node44 + + + + + + + + +Node45 + + +dsps_biquad.h + + + + + +Node17->Node45 + + + + + + + + +Node47 + + +dsps_biquad_gen.h + + + + + +Node17->Node47 + + + + + + + + +Node48 + + +dsps_wind.h + + + + + +Node17->Node48 + + + + + + + + +Node55 + + +dsps_conv.h + + + + + +Node17->Node55 + + + + + + + + +Node57 + + +dsps_corr.h + + + + + +Node17->Node57 + + + + + + + + +Node58 + + +dsps_d_gen.h + + + + + +Node17->Node58 + + + + + + + + +Node59 + + +dsps_h_gen.h + + + + + +Node17->Node59 + + + + + + + + +Node60 + + +dsps_tone_gen.h + + + + + +Node17->Node60 + + + + + + + + +Node61 + + +dsps_snr.h + + + + + +Node17->Node61 + + + + + + + + +Node62 + + +dsps_sfdr.h + + + + + +Node17->Node62 + + + + + + + + +Node63 + + +dsps_fft2r.h + + + + + +Node17->Node63 + + + + + + + + +Node66 + + +dsps_fft4r.h + + + + + +Node17->Node66 + + + + + + + + +Node68 + + +dsps_dct.h + + + + + +Node17->Node68 + + + + + + + + +Node69 + + +dspm_matrix.h + + + + + +Node17->Node69 + + + + + + + + +Node80 + + +dsps_view.h + + + + + +Node17->Node80 + + + + + + + + +Node81 + + +dspi_dotprod.h + + + + + +Node17->Node81 + + + + + + + + +Node83 + + +dspi_conv.h + + + + + +Node17->Node83 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +stdint.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +stdbool.h + + + + + +Node18->Node20 + + + + + + + + +Node21 + + +dsp_err.h + + + + + +Node18->Node21 + + + + + + + + +Node24 + + +x86intrin.h + + + + + +Node18->Node24 + + + + + + + + +Node21->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26 + + +inttypes.h + + + + + +Node25->Node26 + + + + + + + + +Node27->Node9 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +dsps_dotprod_platform.h + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +sdkconfig.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_add.h + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +dsps_sub.h + + + + + +Node30->Node33 + + + + + + + + +Node35 + + +dsps_mul.h + + + + + +Node30->Node35 + + + + + + + + +Node37 + + +dsps_addc.h + + + + + +Node30->Node37 + + + + + + + + +Node39 + + +dsps_mulc.h + + + + + +Node30->Node39 + + + + + + + + +Node41 + + +dsps_sqrt.h + + + + + +Node30->Node41 + + + + + + + + +Node31->Node21 + + + + + + + + +Node33->Node21 + + + + + + + + +Node35->Node21 + + + + + + + + +Node37->Node21 + + + + + + + + +Node39->Node21 + + + + + + + + +Node41->Node21 + + + + + + + + +Node42->Node18 + + + + + + + + +Node42->Node21 + + + + + + + + +Node43 + + +dsps_fir_platform.h + + + + + +Node42->Node43 + + + + + + + + +Node43->Node29 + + + + + + + + +Node44->Node21 + + + + + + + + +Node44->Node42 + + + + + + + + +Node45->Node21 + + + + + + + + +Node46 + + +dsps_biquad_platform.h + + + + + +Node45->Node46 + + + + + + + + +Node46->Node29 + + + + + + + + +Node47->Node21 + + + + + + + + +Node49 + + +dsps_wind_hann.h + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman.h + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +dsps_wind_blackman +_harris.h + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node48->Node52 + + + + + + + + +Node53 + + +dsps_wind_nuttall.h + + + + + +Node48->Node53 + + + + + + + + +Node54 + + +dsps_wind_flat_top.h + + + + + +Node48->Node54 + + + + + + + + +Node55->Node21 + + + + + + + + +Node56 + + +dsps_conv_platform.h + + + + + +Node55->Node56 + + + + + + + + +Node56->Node29 + + + + + + + + +Node57->Node21 + + + + + + + + +Node57->Node56 + + + + + + + + +Node58->Node21 + + + + + + + + +Node59->Node21 + + + + + + + + +Node60->Node21 + + + + + + + + +Node61->Node21 + + + + + + + + +Node62->Node21 + + + + + + + + +Node63->Node21 + + + + + + + + +Node63->Node29 + + + + + + + + +Node64 + + +dsps_fft_tables.h + + + + + +Node63->Node64 + + + + + + + + +Node65 + + +dsps_fft2r_platform.h + + + + + +Node63->Node65 + + + + + + + + +Node65->Node29 + + + + + + + + +Node66->Node21 + + + + + + + + +Node66->Node29 + + + + + + + + +Node66->Node64 + + + + + + + + +Node67 + + +dsps_fft4r_platform.h + + + + + +Node66->Node67 + + + + + + + + +Node67->Node29 + + + + + + + + +Node68->Node21 + + + + + + + + +Node68->Node29 + + + + + + + + +Node70 + + +dspm_add.h + + + + + +Node69->Node70 + + + + + + + + +Node72 + + +dspm_addc.h + + + + + +Node69->Node72 + + + + + + + + +Node74 + + +dspm_mult.h + + + + + +Node69->Node74 + + + + + + + + +Node76 + + +dspm_mulc.h + + + + + +Node69->Node76 + + + + + + + + +Node78 + + +dspm_sub.h + + + + + +Node69->Node78 + + + + + + + + +Node70->Node21 + + + + + + + + +Node72->Node21 + + + + + + + + +Node74->Node21 + + + + + + + + +Node76->Node21 + + + + + + + + +Node78->Node21 + + + + + + + + +Node80->Node21 + + + + + + + + +Node81->Node9 + + + + + + + + +Node81->Node21 + + + + + + + + +Node81->Node25 + + + + + + + + +Node82 + + +dspi_dotprod_platform.h + + + + + +Node81->Node82 + + + + + + + + +Node82->Node29 + + + + + + + + +Node83->Node21 + + + + + + + + +Node83->Node25 + + + + + + + + +Node83->Node56 + + + + + + + + +Node85 + + +ekf.h + + + + + +Node84->Node85 + + + + + + + + +Node85->Node19 + + + + + + + + +Node85->Node20 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 new file mode 100644 index 0000000..96932dc --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.md5 @@ -0,0 +1 @@ +22902ee8b6344072aec8b05f486cf171 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg new file mode 100644 index 0000000..eaf603f --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +mpu6050_init + + +Node1 + + +mpu6050_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg new file mode 100644 index 0000000..a616f03 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a0d450ba4dd28ea2acb105a3ece7db976_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +mpu6050_init + + +Node1 + + +mpu6050_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 new file mode 100644 index 0000000..b372913 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.md5 @@ -0,0 +1 @@ +e40c0de31645dbe2629932c4d9c79047 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg new file mode 100644 index 0000000..df64b66 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +update_perspective +_matrix + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +dspm::Mat::norm + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +display_3d_image + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ekf::eul2rotm + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +ekf::quat2rotm + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +ekf::rotm2eul + + + + + +Node3->Node10 + + + + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node3->Node12 + + + + + + + + +Node12->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg new file mode 100644 index 0000000..a354002 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_cgraph_org.svg @@ -0,0 +1,220 @@ + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +draw_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +update_perspective +_matrix + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +dspm::Mat::norm + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +display_3d_image + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ekf::eul2rotm + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dspm::Mat::eye + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +ekf::quat2rotm + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +ekf::rotm2eul + + + + + +Node3->Node10 + + + + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +update_rotation_matrix + + + + + +Node3->Node12 + + + + + + + + +Node12->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 new file mode 100644 index 0000000..bac306c --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.md5 @@ -0,0 +1 @@ +37b105fcd9c434e3e5c02f463c3e2b4d \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg new file mode 100644 index 0000000..87ed4ef --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg new file mode 100644 index 0000000..05fa736 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a1967e917dafd16b5f02410c5b10c1d90_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +kalman_filter_calibration + + +Node1 + + +kalman_filter_calibration + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 new file mode 100644 index 0000000..22fefc5 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.md5 @@ -0,0 +1 @@ +40b325cdcd1449756b0820623c8bf5f1 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg new file mode 100644 index 0000000..17322d2 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::eul2rotm + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::eye + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::rotm2eul + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +update_perspective +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_rotation_matrix + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dspm::Mat::Mat + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dspm::Mat::allocate + + + + + +Node5->Node6 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm::Mat::t + + + + + +Node10->Node11 + + + + + + + + +Node11->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg new file mode 100644 index 0000000..fe99f13 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_cgraph_org.svg @@ -0,0 +1,220 @@ + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +display_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ekf::eul2rotm + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::eye + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +ekf::quat2rotm + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ekf::rotm2eul + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +update_perspective +_matrix + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +update_rotation_matrix + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +dspm::Mat::Mat + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dspm::Mat::allocate + + + + + +Node5->Node6 + + + + + + + + +Node10->Node3 + + + + + + + + +Node11 + + +dspm::Mat::t + + + + + +Node10->Node11 + + + + + + + + +Node11->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 new file mode 100644 index 0000000..db6652e --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.md5 @@ -0,0 +1 @@ +ae4d2ac6d1476359527d5aea02214435 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg new file mode 100644 index 0000000..94221e6 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg new file mode 100644 index 0000000..75d8203 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2955b9e77f5bd23f109feaaed1496af5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +draw_3d_image + + +Node1 + + +draw_3d_image + + + + + +Node2 + + +kalman_filter_task + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 new file mode 100644 index 0000000..ef82c67 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.md5 @@ -0,0 +1 @@ +b08167ccf805b1698bfdcfa770bc2516 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg new file mode 100644 index 0000000..92b319b --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +get_initial_pressure + + +Node1 + + +get_initial_pressure + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg new file mode 100644 index 0000000..91ed611 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a2ccb3a970d903b791f523902ab06d694_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +get_initial_pressure + + +Node1 + + +get_initial_pressure + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 new file mode 100644 index 0000000..40f3769 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.md5 @@ -0,0 +1 @@ +a54835c9ba4a03f7315b99d30e652e76 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg new file mode 100644 index 0000000..4ba8cd4 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg new file mode 100644 index 0000000..669f944 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a4b024d66e45ca738ce324999e3d8f75b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +display_3d_image + + +Node1 + + +display_3d_image + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 new file mode 100644 index 0000000..19f9685 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.md5 @@ -0,0 +1 @@ +ce05f3ba266be5216aacba74be538c5a \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg new file mode 100644 index 0000000..fc00805 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +update_perspective +_matrix + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg new file mode 100644 index 0000000..e9c7495 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a7cbec0bc78cfb4326f8b5c19d7f9a5bb_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +get_pressure_task + + +Node1 + + +get_pressure_task + + + + + +Node2 + + +update_perspective +_matrix + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 new file mode 100644 index 0000000..eea80be --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.md5 @@ -0,0 +1 @@ +126a04787aa489a3e505882e1e4baf3e \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg new file mode 100644 index 0000000..a1113c7 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_mag3110_init + + +Node1 + + +app_mag3110_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg new file mode 100644 index 0000000..5e33efd --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_a944145b69708f61a94696cd081386d5a_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_mag3110_init + + +Node1 + + +app_mag3110_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 new file mode 100644 index 0000000..8615207 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.md5 @@ -0,0 +1 @@ +0f9146842acaee77432932402199a582 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg new file mode 100644 index 0000000..2a663c1 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_nvs_flash_memory + + +Node1 + + +init_nvs_flash_memory + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg new file mode 100644 index 0000000..6c01cdb --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_aba35410bb6759629444f03a95bbd7c98_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_nvs_flash_memory + + +Node1 + + +init_nvs_flash_memory + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 new file mode 100644 index 0000000..9fd3db7 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.md5 @@ -0,0 +1 @@ +557ee8219ac328e4309d7c345077eab6 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg new file mode 100644 index 0000000..562061d --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph.svg @@ -0,0 +1,420 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_fbm320_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_mag3110_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +app_ssd1306_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +get_initial_pressure + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +get_pressure_task + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +init_3d_matrix_struct + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +init_nvs_flash_memory + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +init_perspective_matrix + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_calibration + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node25 + + +mpu6050_init + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +save_state_vectors_task + + + + + +Node1->Node26 + + + + + + + + +Node8 + + +update_perspective +_matrix + + + + + +Node7->Node8 + + + + + + + + +Node12->Node13 + + + + + + + + +Node13->Node8 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node13->Node14 + + + + + + + + +Node24 + + +dspm::Mat::norm + + + + + +Node13->Node24 + + + + + + + + +Node14->Node8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg new file mode 100644 index 0000000..3855bf6 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abce06be17fc37d675118a678a8100a36_cgraph_org.svg @@ -0,0 +1,337 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +app_fbm320_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_mag3110_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +app_ssd1306_init + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +bsp_i2c_init + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +get_initial_pressure + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +get_pressure_task + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +init_3d_matrix_struct + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +init_nvs_flash_memory + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +init_perspective_matrix + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +kalman_filter_calibration + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node25 + + +mpu6050_init + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +save_state_vectors_task + + + + + +Node1->Node26 + + + + + + + + +Node8 + + +update_perspective +_matrix + + + + + +Node7->Node8 + + + + + + + + +Node12->Node13 + + + + + + + + +Node13->Node8 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node13->Node14 + + + + + + + + +Node24 + + +dspm::Mat::norm + + + + + +Node13->Node24 + + + + + + + + +Node14->Node8 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 new file mode 100644 index 0000000..2b5d602 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.md5 @@ -0,0 +1 @@ +60bae7607e86b05ad89582e1e364ceb8 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg new file mode 100644 index 0000000..30f3f88 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_fbm320_init + + +Node1 + + +app_fbm320_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg new file mode 100644 index 0000000..dea79e6 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_abf02d1479863a05aa4759131e408264e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_fbm320_init + + +Node1 + + +app_fbm320_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 new file mode 100644 index 0000000..097c5cf --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.md5 @@ -0,0 +1 @@ +e3493f1a64c5566da6a63a7c6a823cab \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg new file mode 100644 index 0000000..4b0f4ea --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph.svg @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +update_perspective +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +dspm::Mat::norm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +display_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf::eul2rotm + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node2->Node11 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +dspm::Mat::t + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg new file mode 100644 index 0000000..c472aa6 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af43b34764385f3f1ad35ce1c00db220f_cgraph_org.svg @@ -0,0 +1,247 @@ + + + + + + +kalman_filter_task + + +Node1 + + +kalman_filter_task + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +update_perspective +_matrix + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +dspm::Mat::norm + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +display_3d_image + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf::eul2rotm + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +dspm::Mat::eye + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +ekf::quat2rotm + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +ekf::rotm2eul + + + + + +Node2->Node9 + + + + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +update_rotation_matrix + + + + + +Node2->Node11 + + + + + + + + +Node6 + + +dspm::Mat::Mat + + + + + +Node5->Node6 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +dspm::Mat::t + + + + + +Node11->Node12 + + + + + + + + +Node12->Node6 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 new file mode 100644 index 0000000..a8bd2a8 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.md5 @@ -0,0 +1 @@ +8ddf11420220085257662efd2f3d451d \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg new file mode 100644 index 0000000..930e2a2 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg new file mode 100644 index 0000000..073f461 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_af4bd9d0f6d48907b5fbbdbed6f06f20d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_3d_matrix_struct + + +Node1 + + +init_3d_matrix_struct + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 new file mode 100644 index 0000000..f05f070 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.md5 @@ -0,0 +1 @@ +46a2718be6fc69033fe17b899874fd21 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg new file mode 100644 index 0000000..cb71603 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg new file mode 100644 index 0000000..3ae0b3b --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_afac7c47eff81b6719e589256c8799d5e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +app_ssd1306_init + + +Node1 + + +app_ssd1306_init + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html new file mode 100644 index 0000000..84d8a7f --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2apps_2kalman__filter_2main_2kalman__filter__demo_8cpp_source.html @@ -0,0 +1,723 @@ + + + + + + + +ESP-IDF Firmware: kalman_filter_demo.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <stdio.h>
+
8#include <malloc.h>
+
9#include "mpu6050.h"
+
10#include "ssd1306.h"
+
11#include "mag3110.h"
+
12#include "fbm320.h"
+
13#include "bsp/esp-bsp.h"
+
14#include "esp_log.h"
+
15#include "esp_timer.h"
+
16#include "esp_idf_version.h" // for backward compatibility of esp-timer
+
17#include "nvs.h"
+
18#include "nvs_flash.h"
+
19#include "graphics_support.h"
+
20#include "cube_matrix.h"
+
21#include "esp_dsp.h"
+
22#include "ekf_imu13states.h"
+
23#include "esp_logo.h"
+
24#include "image_to_3d_matrix.h"
+
25
+
26#define STORAGE_NAMESPACE "kalman_filter"
+
27#define USE_BAROMETER 0
+
28
+
29static ssd1306_handle_t ssd1306_dev = NULL;
+
30static mpu6050_handle_t mpu6050_dev = NULL;
+
31static mag3110_handle_t mag3110_dev = NULL;
+
32static fbm320_handle_t fbm320_dev = NULL;
+
33
+
34static bool kalman_filter_calibrated = false;
+
35static bool board_inactive = true;
+
36
+ +
38
+
39extern "C" void app_main();
+
40
+
+
44static void app_mag3110_init(void)
+
45{
+
46 esp_err_t ret;
+
47 mag3110_dev = mag3110_create((i2c_port_t)BSP_I2C_NUM);
+
48 mag3110_start_raw(mag3110_dev, MAG3110_DR_OS_80_16);
+
49 assert(ESP_OK == ret);
+
50}
+
+
51
+
+
55static void app_ssd1306_init(void)
+
56{
+
57 ssd1306_dev = ssd1306_create((i2c_port_t)BSP_I2C_NUM, SSD1306_I2C_ADDRESS);
+
58 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
59 ssd1306_refresh_gram(ssd1306_dev);
+
60}
+
+
61
+
+
65static void mpu6050_init(void)
+
66{
+
67 esp_err_t ret;
+
68 mpu6050_dev = mpu6050_create((i2c_port_t)BSP_I2C_NUM, MPU6050_I2C_ADDRESS);
+
69 ret = mpu6050_config(mpu6050_dev, ACCE_FS_8G, GYRO_FS_2000DPS);
+
70 assert(ESP_OK == ret);
+
71 ret = mpu6050_wake_up(mpu6050_dev);
+
72 assert(ESP_OK == ret);
+
73}
+
+
74
+
+
78static void app_fbm320_init(void)
+
79{
+
80 esp_err_t ret;
+
81 fbm320_dev = fbm320_create((i2c_port_t)BSP_I2C_NUM, FBM320_I2C_ADDRESS_1);
+
82 ret = fbm320_init(fbm320_dev);
+
83 assert(ESP_OK == ret);
+
84}
+
+
85
+
+
89static void init_nvs_flash_memory(void)
+
90{
+
91 esp_err_t err = nvs_flash_init();
+
92 if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+
93 // NVS partition was truncated and needs to be erased
+
94 // Retry nvs_flash_init
+
95 ESP_ERROR_CHECK(nvs_flash_erase());
+
96 err = nvs_flash_init();
+
97 }
+
98 ESP_ERROR_CHECK( err );
+
99}
+
+
100
+
+ +
111{
+
112#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+ +
114 image->matrix_len = ((sizeof(image_3d_matrix_esp_logo)) / sizeof(float)) / MATRIX_SIZE;
+
115 ESP_LOGI("Kalman filter demo", "Selected 3D image - ESP Logo");
+
116#elif CONFIG_3D_OBJECT_CUSTOM
+ +
118 image->matrix_len = ((sizeof(image_to_3d_matrix_custom)) / sizeof(float)) / MATRIX_SIZE;
+
119 ESP_LOGI("Kalman filter demo", "Selected 3D image - User's custom image");
+
120#elif CONFIG_3D_OBJECT_CUBE
+
121 image->matrix = cube_vectors_3d;
+
122 image->matrix_len = ((sizeof(cube_vectors_3d)) / sizeof(float)) / MATRIX_SIZE;
+
123 ESP_LOGI("Kalman filter demo", "Selected 3D image - 3D cube");
+
124#endif
+
125 image->ekf13 = ekf13;
+
126}
+
+
127
+
+
136static void display_3d_image(dspm::Mat projected_image)
+
137{
+
138 ssd1306_clear_screen(ssd1306_dev, 0);
+
139
+
140 if (OBJECT_3D_CUBE) {
+
141 // For the 3D cube, only the 6 points of the cube are transformed
+
142 // Cube edges, connecting transformed 3D cube points are connected with lines here
+
143 for (uint8_t cube_point = 0; cube_point < CUBE_EDGES; cube_point++) {
+
144 ssd1306_draw_line(ssd1306_dev,
+
145 (int16_t)projected_image(cube_dict_line_begin[cube_point], 0),
+
146 (int16_t)projected_image(cube_dict_line_begin[cube_point], 1),
+
147 (int16_t)projected_image(cube_dict_line_end[cube_point], 0),
+
148 (int16_t)projected_image(cube_dict_line_end[cube_point], 1));
+
149 }
+
150 } else {
+
151 // Every other 3D image is drawn here pixel by pixel
+
152 for (uint32_t pixel = 0; pixel < projected_image.rows; pixel++ ) {
+
153 ssd1306_fill_point(ssd1306_dev, projected_image(pixel, 0), projected_image(pixel, 1), 1);
+
154 }
+
155 }
+
156 ssd1306_refresh_gram(ssd1306_dev);
+
157}
+
+
158
+
+
170static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
+
171{
+
172 static const float movement_treshold = 0.0001; // threshold to decide between Idle and Active state of the board
+
173 static float inactive_rotation = 0; // rotation angle (in degrees) for Idle state
+
174 static unsigned int inactivity_count = 0;
+
175 static const unsigned int inactivity_count_treshold = 75;
+
176 static unsigned int inactivity_check = 0; // activity of the board is being checked once in N calls of the function
+
177 static float prev_state_arr[3] = {0, 0, 0}; // holds the previous state of the Euler angles, to compare the diff
+
178
+
179 dspm::Mat T = dspm::Mat::eye(MATRIX_SIZE); // Transformation matrix
+
180 dspm::Mat R1 = ekf::quat2rotm(ekf13->X.data); // matrix(3x1) that holds x, y, z rotation data
+
181 dspm::Mat eul_angles = ekf::rotm2eul(R1);
+
182
+
183 // check if the board is active or not every N calls of the function
+
184 if (!(inactivity_check++ % 10)) {
+
185 dspm::Mat prev_state_mat(prev_state_arr, 3, 1);
+
186 dspm::Mat diff = eul_angles - prev_state_mat;
+
187 prev_state_mat = eul_angles;
+
188
+
189 float max_diff = fabs(diff(0, 0) * diff(1, 0) * diff(2, 0));
+
190
+
191 // wake-up the board if the current board movement crosses the threshold
+
192 if (board_inactive && (max_diff > movement_treshold)) {
+
193 board_inactive = false;
+
194 ESP_LOGI("Board status", "board put to active mode");
+
195 }
+
196
+
197 // if the board is awake, and the current movement of the board is lower than the threshold - the board is
+
198 // being moved with - run the inactivity_counter
+
199 // after some time (if the movement of the board has been lower than the threshold) put the board to idle mode
+
200 else if (!board_inactive && (max_diff < movement_treshold)) {
+
201 if (inactivity_count > inactivity_count_treshold) {
+
202 board_inactive = true;
+
203 inactivity_count = 0;
+
204 ESP_LOGI("Board status", "board put to idle mode");
+ +
206 }
+
207 inactivity_count++;
+
208 }
+
209
+
210 // if the board is awake and the current movement of the board is higher than the threshold clear the inactivity_counter
+
211 else if (!board_inactive && (max_diff >= movement_treshold)) {
+
212 inactivity_count = 0;
+
213 }
+
214 }
+
215
+
216 if (board_inactive) {
+
217 // board idle state - display a rotating cube
+
218 update_rotation_matrix(T, inactive_rotation += 3.0, 10.0, 10.0);
+
219 } else {
+
220 // board active state - 3D object follows movements of the board
+
221 eul_angles(2, 0) = -eul_angles(2, 0);
+
222 dspm::Mat R = ekf::eul2rotm(eul_angles.data);
+
223
+
224 // Enlarge rotation matrix from 3x3 to 4x4
+
225 // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
226 for (int row = 0; row < R.rows; row++) {
+
227 for (int col = 0; col < R.cols; col++) {
+
228 T(row, col) = R(row, col);
+
229 }
+
230 }
+
231 }
+
232
+
233 // explanation for the matrix multiplication is for the 3D cube scenario, applies for all of the objects
+
234 // where matrix rows for the transformed image and the projected image are set according to the specific 3d object
+
235
+
236 // matrix mul cube_matirx(8x4) * transformation_matrix(4x4) = transformed_cube(8x4)
+
237 transformed_image = matrix_3d * T;
+
238 // matrix mul transformed_cube(8x4) * perspective_matrix(4x4) = projected_cube(8x4)
+
239 projected_image = transformed_image * perspective_matrix;
+
240 display_3d_image(projected_image);
+
241}
+
+
242
+
+
253static void kalman_filter_task(void *arg)
+
254{
+
255 mpu6050_acce_value_t acce_sample;
+
256 mpu6050_gyro_value_t gyro_sample;
+
257 mag3110_result_t mag_sample;
+
258
+
259 image_3d_matrix_kalman_t *kalman_filter_args = (image_3d_matrix_kalman_t *)arg;
+
260 ekf_imu13states *ekf13 = kalman_filter_args->ekf13;
+
261 dspm::Mat transformed_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after transformation
+
262 dspm::Mat projected_image(kalman_filter_args->matrix_len, MATRIX_SIZE); // 3D image matrix after projection
+
263 dspm::Mat matrix_3d((float *)kalman_filter_args->matrix[0], kalman_filter_args->matrix_len, MATRIX_SIZE);
+
264
+
265 // Covariance matrix for Kalman filter, set specifically for this development board IMU sensors
+
266 float R_m[10] = {0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.000001, 0.000001, 0.000001, 0.000001};
+ +
268
+
269 while (1) {
+
270 // dt calculation
+
271 static float prev_time = 0;
+
272 const float current_time = dsp_get_cpu_cycle_count();
+
273 float dt = 0;
+
274
+
275 // Crystal count difference conversion to Dt time constant
+
276 if (current_time > prev_time) {
+
277 dt = current_time - prev_time;
+
278 dt = dt / 240000000.0;
+
279 }
+
280 prev_time = current_time;
+
281
+
282 // Get all the sensors values
+
283 mpu6050_get_acce(mpu6050_dev, &acce_sample);
+
284 mpu6050_get_gyro(mpu6050_dev, &gyro_sample);
+
285 mag3110_get_magnetic_induction(mag3110_dev, &mag_sample);
+
286
+
287 // Make arrays from the sensors values
+
288 float gyro_input_arr[3] = {gyro_sample.gyro_x, gyro_sample.gyro_y, gyro_sample.gyro_z};
+
289 float accel_input_arr[3] = {acce_sample.acce_x, acce_sample.acce_y, acce_sample.acce_z};
+
290 float mag_input_arr[3] = {(float)mag_sample.x, (float)mag_sample.y, (float)mag_sample.z};
+
291
+
292 // Accel and Mag data to Mat class
+
293 dspm::Mat gyro_input_mat(gyro_input_arr, 3, 1);
+
294 dspm::Mat accel_input_mat(accel_input_arr, 3, 1);
+
295 dspm::Mat mag_input_mat(mag_input_arr, 3, 1);
+
296
+
297 // Normalize vectors
+
298 dspm::Mat accel_norm = accel_input_mat / accel_input_mat.norm();
+
299 dspm::Mat magn_norm = mag_input_mat / mag_input_mat.norm();
+
300 gyro_input_mat *= DEG_TO_RAD;
+
301
+
302 ekf13->Process(gyro_input_mat.data, dt);
+
303 ekf13->UpdateRefMeasurementMagn(accel_norm.data, magn_norm.data, R_m);
+
304
+ +
306 // Use the function as RTOS task for the filter calculation
+
307 draw_3d_image(ekf13, transformed_image, projected_image, matrix_3d);
+
308 vTaskDelay(20 / portTICK_PERIOD_MS);
+
309 } else {
+
310 // Use the function as a callback for kalman_filter_calibration_timer
+
311 break;
+
312 }
+
313 }
+
314}
+
+
315
+
+ +
327{
+
328 ekf_imu13states *ekf13 = image->ekf13;
+
329 esp_err_t ret;
+
330 nvs_handle_t nvs_handle_kalman;
+
331 size_t state_vectors_size = 13 * 14;
+
332 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
333
+
334 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
335 if (ret != ESP_OK) {
+
336 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
337 assert(ESP_OK == ret);
+
338 }
+
339
+
340 // Read previously saved blob, if available
+
341 size_t required_size = 0; // value will default to 0, if not set yet in NVS
+
342 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", NULL, &required_size);
+
343 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
344 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
345 assert(ESP_OK == ret);
+
346 }
+
347
+
348 if (required_size > 0) {
+
349 ESP_LOGI("Kalman filter demo", "Filter state vectors present in the NVS");
+
350 ESP_LOGI("Kalman filter demo", "Loading state vectors into the filter structure");
+
351
+
352 size_t state_vectors_size_addr = state_vectors_size * sizeof(float);
+
353 ret = nvs_get_blob(nvs_handle_kalman, "state_vectors", state_vectors, &state_vectors_size_addr);
+
354 if (ret != ESP_OK) {
+
355 ESP_LOGE("NVS error", "(%s) reading data from NVS!\n", esp_err_to_name(ret));
+
356 assert(ESP_OK == ret);
+
357 }
+
358
+
359 for (int i = 0; i < state_vectors_size; i++) {
+
360 if (i < state_vectors_size - 13) {
+
361 ekf13->P.data[i] = state_vectors[i];
+
362 } else {
+
363 ekf13->X.data[i - (state_vectors_size - 13)] = state_vectors[i];
+
364 }
+
365 }
+
366
+
367 ESP_LOGI("Kalman filter demo", "State vectors loaded from the NVS");
+
368 nvs_close(nvs_handle_kalman);
+
369
+
370 } else {
+
371 ESP_LOGI("Kalman filter demo", "Filter state vectors not present in the NVS");
+
372 const float kalman_timer_period_us = 100000;
+
373
+
374 // ESP timer for the Kalman filter calibration
+
375 const esp_timer_create_args_t kalman_calibration_timer_config = {
+
376 .callback = kalman_filter_task,
+
377 .arg = image,
+
378 .dispatch_method = ESP_TIMER_TASK,
+
379 .name = "kalman_filter_calibration_timer",
+
380#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0)
+
381 .skip_unhandled_events = true,
+
382#endif
+
383 };
+
384
+
385 esp_timer_handle_t kalman_calibration_timer = NULL;
+
386 ret = esp_timer_create(&kalman_calibration_timer_config, &kalman_calibration_timer);
+
387 assert(ESP_OK == ret);
+
388 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
389
+
390 ESP_LOGI("Kalman filter demo", "Starting Kalman filter calibration loop");
+
391
+
392 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
393 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Kalman filter", 16, 1);
+
394 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"calibration", 16, 1);
+
395 ssd1306_refresh_gram(ssd1306_dev);
+
396
+
397 ret = esp_timer_start_periodic(kalman_calibration_timer, kalman_timer_period_us);
+
398 assert(ESP_OK == ret);
+
399 vTaskDelay(100000 / portTICK_PERIOD_MS);
+
400
+
401 ret = esp_timer_stop(kalman_calibration_timer);
+
402 assert(ESP_OK == ret);
+
403 ret = esp_timer_delete(kalman_calibration_timer);
+
404 assert(ESP_OK == ret);
+
405 ESP_LOGI("Kalman filter demo", "Exiting Kalman filter calibration loop");
+
406 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
407 ssd1306_refresh_gram(ssd1306_dev);
+
408 vTaskDelay(100 / portTICK_PERIOD_MS);
+
409
+
410 dspm::Mat estimated_error(&ekf13->X.data[4], 3, 1);
+
411
+
412 ESP_LOGI("Kalman filter demo", "Estimated gyroscope bias error [deg/sec]: %.6f\t%.6f\t%.6f",
+
413 estimated_error.data[0], estimated_error.data[1], estimated_error.data[2]);
+
414
+
415 for (int i = 0; i < state_vectors_size; i++) {
+
416 if (i < state_vectors_size - 13) {
+
417 state_vectors[i] = ekf13->P.data[i];
+
418 } else {
+
419 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
420 }
+
421 }
+
422
+
423 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
424 assert(ESP_OK == ret);
+
425 ret = nvs_commit(nvs_handle_kalman);
+
426 assert(ESP_OK == ret);
+
427 nvs_close(nvs_handle_kalman);
+
428 ESP_LOGI("Kalman filter demo", "State vectors saved to the NVS");
+
429 }
+
430 // Set the initial state of the X vector
+
431 ekf13->X(0, 0) = 1;
+
432 ekf13->X(0, 1) = 0;
+
433 ekf13->X(0, 2) = 0;
+
434 ekf13->X(0, 3) = 0;
+
435 free(state_vectors);
+ +
437}
+
+
438
+
+
447static void save_state_vectors_task(void *arg)
+
448{
+
449 esp_err_t ret;
+
450 size_t state_vectors_size = 13 * 14;
+
451 nvs_handle_t nvs_handle_kalman;
+ +
453 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // 5min
+
454
+
455 while (1) {
+
456 float *state_vectors = (float *)malloc(state_vectors_size * sizeof(float));
+
457
+
458 ret = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &nvs_handle_kalman);
+
459 if (ret != ESP_OK) {
+
460 ESP_LOGE("NVS error", "(%s) opening NVS!\n", esp_err_to_name(ret));
+
461 assert(ESP_OK == ret);
+
462 }
+
463
+
464 for (int i = 0; i < state_vectors_size; i++) {
+
465 if (i < state_vectors_size - 13) {
+
466 state_vectors[i] = ekf13->P.data[i];
+
467 } else {
+
468 state_vectors[i] = ekf13->X.data[i - (state_vectors_size - 13)];
+
469 }
+
470 }
+
471
+
472 ret = nvs_set_blob(nvs_handle_kalman, "state_vectors", state_vectors, state_vectors_size * sizeof(float));
+
473 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
474 ESP_LOGE("NVS error", "(%s) writing data to NVS!\n", esp_err_to_name(ret));
+
475 assert(ESP_OK == ret);
+
476 }
+
477
+
478 ret = nvs_commit(nvs_handle_kalman);
+
479 if (ret != ESP_OK && ret != ESP_ERR_NVS_NOT_FOUND) {
+
480 ESP_LOGE("NVS error", "(%s) commiting data to NVS!\n", esp_err_to_name(ret));
+
481 assert(ESP_OK == ret);
+
482 }
+
483 nvs_close(nvs_handle_kalman);
+
484 ESP_LOGI("Kalman filter demo", "State vectors saved to NVS");
+
485 free(state_vectors);
+
486 vTaskDelay((60000 * 5) / portTICK_PERIOD_MS); // Save the State vectors each 5 min
+
487 }
+
488}
+
+
489
+
+
497static void get_pressure_task(void *arg)
+
498{
+
499 int32_t real_p, real_t;
+
500 float *pressure_ptr = (float *)arg;
+
501 float pressure_global = *pressure_ptr;
+
502
+
503 int call_count = 0;
+
504 int call_count1 = 0;
+
505 float pressure_initial = pressure_global;
+
506 float last_pressure = pressure_global;
+
507 float baro_image = pressure_global;
+
508 bool changed = false;
+
509
+
510 while (1) {
+
511 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
512 pressure_global = (0.999 * pressure_global) + (0.001 * ((float)real_p) / 1000.0);
+
513 call_count1++;
+
514 }
+
515
+
516 if (board_inactive) {
+
517 pressure_initial = pressure_global;
+
518 last_pressure = pressure_global;
+
519 baro_image = pressure_global;
+
520 } else {
+
521 call_count++;
+
522 if (fabs(pressure_global - last_pressure) > 0.0005) { // cahnge more than 0.5 Pa
+
523 last_pressure = pressure_global;
+
524 baro_image = (0.9 * baro_image) + (0.1 * last_pressure);
+
525 changed = true;
+
526 }
+
527
+
528 if ((!(call_count % 10)) && changed) {
+
529 float fov = 90 + (1000.0 * ((float)(pressure_initial - baro_image)));
+ +
531 changed = false;
+
532 }
+
533 }
+
534 vTaskDelay(100 / portTICK_PERIOD_MS);
+
535 }
+
536}
+
+
537
+
+ +
542{
+
543 float pressure;
+
544 int32_t real_p, real_t;
+
545 int averagning_loop_count = 500;
+
546
+
547 ESP_LOGI("Barometer", "Averagining initial barometer pressure");
+
548 ssd1306_clear_screen(ssd1306_dev, 0x00);
+
549 ssd1306_draw_string(ssd1306_dev, 0, 16, (const uint8_t *)"Barometer", 16, 1);
+
550 ssd1306_draw_string(ssd1306_dev, 0, 32, (const uint8_t *)"averaging", 16, 1);
+
551 ssd1306_refresh_gram(ssd1306_dev);
+
552
+
553 // take the first pressure measurement
+
554 while (1) {
+
555 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
556 pressure = ((float)real_p) / 1000.0; // pressure in kPa
+
557 break;
+
558 }
+
559 }
+
560
+
561 // average first N measurements
+
562 while (averagning_loop_count--) {
+
563 if (ESP_OK == fbm320_get_data(fbm320_dev, FBM320_MEAS_PRESS_OSR_4096, &real_t, &real_p)) {
+
564 pressure = (0.999 * pressure) + (0.001 * ((float)real_p) / 1000.0);
+
565 vTaskDelay(100 / portTICK_PERIOD_MS);
+
566 }
+
567 }
+
568
+
569 ESP_LOGI("Barometer", "Initial value set");
+
570 ssd1306_draw_string(ssd1306_dev, 0, 48, (const uint8_t *)"Done!", 16, 1);
+
571 ssd1306_refresh_gram(ssd1306_dev);
+
572 return (pressure);
+
573}
+
+
574
+
+
575void app_main(void)
+
576{
+ + +
579 ekf13->Init();
+
580
+
581 // Init all board components
+
582 bsp_i2c_init();
+
583 app_ssd1306_init(); // display init
+
584 mpu6050_init(); // gyro, acc init
+
585 app_mag3110_init(); // magnetometer init
+
586 app_fbm320_init(); // barometer init
+
587 bsp_leds_init(); // LEDs init
+
588 init_nvs_flash_memory(); // Non-Volatile Storage
+
589
+ + + +
593
+
594 // Use a barometer for measuring the altitude
+
595 if (USE_BAROMETER) {
+
596 float init_pressure = get_initial_pressure();
+
597 xTaskCreate(get_pressure_task, "get_pressure_task", 2048 * 4, &init_pressure, 4, NULL);
+
598 } else {
+
599 ESP_LOGI("Barometer", "disabled");
+
600 }
+
601
+
602 xTaskCreate(kalman_filter_task, "kalman_filter_task", 2048 * 4, &image, 5, NULL);
+
603 xTaskCreate(save_state_vectors_task, "save_state_vectors", 2048, ekf13, 6, NULL);
+
604
+
605 while (1) {
+
606 vTaskDelay(10000 / portTICK_PERIOD_MS);
+
607 }
+
608}
+
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+ + + +
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+ + +
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+ + +
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+ + + + + +
const float image_3d_matrix_esp_logo[1427][4]
+
const float image_to_3d_matrix_custom[1732][4]
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + +
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+ + + +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
float norm(void)
Definition mat.cpp:456
+
int cols
Definition mat.h:34
+
static Mat eye(int size)
Definition mat.cpp:394
+
int rows
Definition mat.h:33
+
This class is used to process and calculate attitude from imu sensors.
+
static dspm::Mat quat2rotm(float q[4])
Definition ekf.cpp:209
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
static dspm::Mat rotm2eul(dspm::Mat &rotm)
Definition ekf.cpp:279
+
#define dsp_get_cpu_cycle_count
Definition dsp_common.h:88
+ + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
dspm::Mat perspective_matrix(MATRIX_SIZE, MATRIX_SIZE)
+
static void mpu6050_init(void)
Initialize accelerometer and gyroscope.
+
static void kalman_filter_calibration(image_3d_matrix_kalman_t *image)
Kalman filter calibration procedure.
+
static void draw_3d_image(ekf_imu13states *ekf13, dspm::Mat &transformed_image, dspm::Mat &projected_image, dspm::Mat &matrix_3d)
Draw a 3d image.
+
float get_initial_pressure(void)
read the initial value of pressure
+
static void save_state_vectors_task(void *arg)
RTOS task to periodically save the filter state.
+
static void display_3d_image(dspm::Mat projected_image)
Display a 3d image.
+
static void get_pressure_task(void *arg)
ROTS task to read a pressure.
+ +
static void init_nvs_flash_memory(void)
Initialize NVS flash memory.
+ + +
static void kalman_filter_task(void *arg)
Kalman filter RTOS task (or ESP timer callback).
+
static void init_3d_matrix_struct(image_3d_matrix_kalman_t *image, ekf_imu13states *ekf13)
Initialize 3d image structure.
+ + + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html new file mode 100644 index 0000000..19fd2b0 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html @@ -0,0 +1,275 @@ + + + + + + + +ESP-IDF Firmware: cube_matrix.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cube_matrix.h File Reference
+
+
+
#include <stdint.h>
+#include "graphics_support.h"
+#include "sdkconfig.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Macros

#define CUBE_POINTS   8
#define CUBE_EDGES   12
#define CUBE_SIDE   (SSD1606_Y_CENTER / 2)
#define OBJECT_3D_CUBE   0
+ + + + +

+Variables

const float cube_vectors_3d [8][MATRIX_SIZE]
const uint8_t cube_dict_line_begin [12] = {3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5}
const uint8_t cube_dict_line_end [12] = {1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4}
+

Macro Definition Documentation

+ +

◆ CUBE_EDGES

+ +
+
+ + + + +
#define CUBE_EDGES   12
+
+
+ +

◆ CUBE_POINTS

+ +
+
+ + + + +
#define CUBE_POINTS   8
+
+
+ +

◆ CUBE_SIDE

+ +
+
+ + + + +
#define CUBE_SIDE   (SSD1606_Y_CENTER / 2)
+
+
+ +

◆ OBJECT_3D_CUBE

+ +
+
+ + + + +
#define OBJECT_3D_CUBE   0
+
+
+

Variable Documentation

+ +

◆ cube_dict_line_begin

+ +
+
+ + + + +
const uint8_t cube_dict_line_begin[12] = {3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5}
+
+ +

Definition at line 40 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h.

+
40{3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5};
+
+
+
+ +

◆ cube_dict_line_end

+ +
+
+ + + + +
const uint8_t cube_dict_line_end[12] = {1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4}
+
+ +

Definition at line 41 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h.

+
41{1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4};
+
+
+
+ +

◆ cube_vectors_3d

+ +
+
+ + + + +
const float cube_vectors_3d[8][MATRIX_SIZE]
+
+Initial value:
=
+
+
{ {- (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{- (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1},
+
{- (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{- (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , - (SSD1606_Y_CENTER / 2) , 1},
+
{ (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , (SSD1606_Y_CENTER / 2) , 1}
+
}
+ +
+

Definition at line 23 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h.

+
24{ {-CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // -1, -1, -1
+
25 {-CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // -1, -1, 1
+
26 {-CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // -1, 1, -1
+
27 {-CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1}, // -1, 1, 1
+
28 { CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // 1, -1, -1
+
29 { CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // 1, -1, 1
+
30 { CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // 1, 1, -1
+
31 { CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1} // 1, 1, 1
+
32};
+ +
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js new file mode 100644 index 0000000..c454b7a --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.js @@ -0,0 +1,10 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h = +[ + [ "CUBE_EDGES", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a1cb9c677d7b7ad59b4b6599b71fedfed", null ], + [ "CUBE_POINTS", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#ab5bf716bcd3251b5a4ec7133e6e66c87", null ], + [ "CUBE_SIDE", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a43df6fe9cd9f3c33482009f8203a8c84", null ], + [ "OBJECT_3D_CUBE", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#aa25bdff311063f492fd542bef921d064", null ], + [ "cube_dict_line_begin", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a1db8912a1003fad64b1007dee9100146", null ], + [ "cube_dict_line_end", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a760b44bf3eb48533edd79d1130602c07", null ], + [ "cube_vectors_3d", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h.html#a8aa62ff0adfa7629f7a3f606af7257aa", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 new file mode 100644 index 0000000..0a5507b --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.md5 @@ -0,0 +1 @@ +332f16a31aff67f6a37dd3471c2f5297 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg new file mode 100644 index 0000000..39df1b0 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +cube_matrix.h + + +Node1 + + +cube_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +graphics_support.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg new file mode 100644 index 0000000..4e69b41 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +cube_matrix.h + + +Node1 + + +cube_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +graphics_support.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node1->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html new file mode 100644 index 0000000..6f0a579 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2cube__matrix_8h_source.html @@ -0,0 +1,166 @@ + + + + + + + +ESP-IDF Firmware: cube_matrix.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/cube_matrix.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include <stdint.h>
+
10#include "graphics_support.h"
+
11#include "sdkconfig.h"
+
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
18#define CUBE_POINTS 8
+
19#define CUBE_EDGES 12
+
20#define CUBE_SIDE (SSD1606_Y_CENTER / 2)
+
21
+
22// X Y Z coordinates of the cube centered to (0, 0, 0)
+
+ +
24 // X Y Z W
+
25{ {-CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // -1, -1, -1
+
26 {-CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // -1, -1, 1
+
27 {-CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // -1, 1, -1
+
28 {-CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1}, // -1, 1, 1
+
29 { CUBE_SIDE, -CUBE_SIDE, -CUBE_SIDE, 1}, // 1, -1, -1
+
30 { CUBE_SIDE, -CUBE_SIDE, CUBE_SIDE, 1}, // 1, -1, 1
+
31 { CUBE_SIDE, CUBE_SIDE, -CUBE_SIDE, 1}, // 1, 1, -1
+
32 { CUBE_SIDE, CUBE_SIDE, CUBE_SIDE, 1} // 1, 1, 1
+
33};
+
+
34
+
35// Dictionary for 3d cube edges displaying
+
36// Cube edges cube_vectors_3d[3] <-> cube_vectors_3d[1]
+
37// cube_vectors_3d[3] <-> cube_vectors_3d[7]
+
38// cube_vectors_3d[5] <-> cube_vectors_3d[7]
+
39// cube_vectors_3d[5] <-> cube_vectors_3d[1]....
+
40const uint8_t cube_dict_line_begin[CUBE_EDGES] = {3, 3, 5, 5, 2, 2, 4, 4, 3, 7, 1, 5};
+
41const uint8_t cube_dict_line_end[CUBE_EDGES] = {1, 7, 7, 1, 0, 6, 6, 0, 2, 6, 0, 4};
+
42
+
43#ifdef CONFIG_3D_OBJECT_CUBE
+
44#define OBJECT_3D_CUBE 1
+
45#else
+
46#define OBJECT_3D_CUBE 0
+
47#endif
+
48
+
49#ifdef __cplusplus
+
50}
+
51#endif
+ + + + + + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html new file mode 100644 index 0000000..75e4211 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_logo.c File Reference
+
+
+
#include "esp_logo.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 new file mode 100644 index 0000000..60c4e4c --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.md5 @@ -0,0 +1 @@ +803982a48b7a8a9bbf8fd8c2d90b90b8 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg new file mode 100644 index 0000000..0bfb064 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +esp_logo.c + + +Node1 + + +esp_logo.c + + + + + +Node2 + + +esp_logo.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg new file mode 100644 index 0000000..f624b94 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +esp_logo.c + + +Node1 + + +esp_logo.c + + + + + +Node2 + + +esp_logo.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html new file mode 100644 index 0000000..05c207e --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8c_source.html @@ -0,0 +1,399 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "esp_logo.h"
+
8
+
9#ifdef CONFIG_3D_OBJECT_ESP_LOGO
+
10
+
11const uint8_t image_bmp_array_esp_logo[512] = {
+
12
+
13 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
14 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
15 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
16 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00,
+
17 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00,
+
18 0x00, 0x00, 0x0f, 0xc0, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x0c, 0x1f, 0xfc, 0x07, 0xfe, 0x00, 0x00,
+
19 0x00, 0x0c, 0x3f, 0xff, 0x03, 0xff, 0x00, 0x00, 0x00, 0x18, 0x7f, 0xff, 0xc0, 0xff, 0xc0, 0x00,
+
20 0x00, 0x38, 0x7f, 0xff, 0xf0, 0x7f, 0xe0, 0x00, 0x00, 0x70, 0x7f, 0xff, 0xf8, 0x3f, 0xe0, 0x00,
+
21 0x00, 0x60, 0x7f, 0xff, 0xfe, 0x0f, 0xf0, 0x00, 0x00, 0xe0, 0x01, 0xff, 0xff, 0x07, 0xf8, 0x00,
+
22 0x00, 0xc0, 0x00, 0x3f, 0xff, 0x83, 0xfc, 0x00, 0x01, 0xc0, 0x00, 0x07, 0xff, 0xe1, 0xfc, 0x00,
+
23 0x01, 0x81, 0xfc, 0x01, 0xff, 0xf0, 0xfe, 0x00, 0x01, 0x87, 0xff, 0xc0, 0x7f, 0xf8, 0xfe, 0x00,
+
24 0x03, 0x0f, 0xff, 0xf0, 0x3f, 0xf8, 0x7e, 0x00, 0x03, 0x1f, 0xff, 0xfc, 0x1f, 0xfc, 0x3f, 0x00,
+
25 0x03, 0x1f, 0xff, 0xff, 0x07, 0xfe, 0x1f, 0x00, 0x03, 0x3f, 0xff, 0xff, 0x83, 0xff, 0x1f, 0x00,
+
26 0x06, 0x3f, 0xff, 0xff, 0xc1, 0xff, 0x0f, 0x00, 0x06, 0x3f, 0xff, 0xff, 0xe0, 0xff, 0x8f, 0x80,
+
27 0x06, 0x7f, 0x83, 0xff, 0xf0, 0xff, 0xc7, 0x80, 0x06, 0x7f, 0x80, 0x7f, 0xf8, 0x7f, 0xc7, 0x80,
+
28 0x06, 0x7f, 0xc0, 0x1f, 0xfc, 0x3f, 0xe3, 0x80, 0x06, 0x3f, 0xfc, 0x0f, 0xfe, 0x3f, 0xe3, 0x80,
+
29 0x06, 0x3f, 0xff, 0x07, 0xff, 0x1f, 0xf1, 0x80, 0x06, 0x3f, 0xff, 0xc3, 0xff, 0x0f, 0xf0, 0x00,
+
30 0x06, 0x1f, 0xff, 0xe1, 0xff, 0x8f, 0xf0, 0x00, 0x07, 0x0f, 0xff, 0xf0, 0xff, 0x8f, 0xf8, 0x00,
+
31 0x03, 0x07, 0xff, 0xf8, 0x7f, 0xc7, 0xf8, 0x00, 0x03, 0x01, 0xff, 0xfc, 0x3f, 0xc7, 0xf8, 0x00,
+
32 0x03, 0x00, 0x3f, 0xfe, 0x3f, 0xc7, 0xf8, 0x00, 0x01, 0x80, 0x07, 0xfe, 0x1f, 0xe3, 0xfc, 0x00,
+
33 0x01, 0x80, 0x03, 0xff, 0x1f, 0xe3, 0xfc, 0x00, 0x01, 0xc0, 0x01, 0xff, 0x1f, 0xe3, 0xfc, 0x00,
+
34 0x00, 0xc0, 0x78, 0xff, 0x0f, 0xe3, 0xfc, 0x00, 0x00, 0xe0, 0xfc, 0x7f, 0x8f, 0xf1, 0xf8, 0x00,
+
35 0x00, 0x61, 0xfc, 0x7f, 0x8f, 0xf1, 0xf0, 0x00, 0x00, 0x71, 0xfc, 0x7f, 0x8f, 0xf1, 0xf0, 0x00,
+
36 0x00, 0x39, 0xfc, 0x7f, 0x8f, 0xf1, 0xe0, 0x00, 0x00, 0x19, 0xfc, 0x7f, 0x8f, 0xf0, 0x00, 0x00,
+
37 0x00, 0x1c, 0xf8, 0x7f, 0x8f, 0xf0, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x7f, 0x8f, 0xf0, 0x10, 0x00,
+
38 0x00, 0x07, 0x00, 0x7f, 0x8f, 0xf0, 0x38, 0x00, 0x00, 0x03, 0xc0, 0xff, 0x0f, 0xe0, 0x70, 0x00,
+
39 0x00, 0x01, 0xe0, 0x7f, 0x0f, 0xc0, 0xe0, 0x00, 0x00, 0x00, 0x78, 0x1f, 0x00, 0x03, 0xc0, 0x00,
+
40 0x00, 0x00, 0x3e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x7e, 0x00, 0x00,
+
41 0x00, 0x00, 0x03, 0xfc, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x00,
+
42 0x00, 0x00, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
43 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
44 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
45
+
46};
+
47
+
48const float image_3d_matrix_esp_logo[1427][4] = {
+
49
+
50 {-2.0, -25.0, 0, 1}, {-1.0, -25.0, 0, 1}, {0.0, -25.0, 0, 1}, {1.0, -25.0, 0, 1}, {2.0, -25.0, 0, 1}, {3.0, -25.0, 0, 1},
+
51 {4.0, -25.0, 0, 1}, {5.0, -25.0, 0, 1}, {6.0, -25.0, 0, 1}, {-2.0, -24.0, 0, 1}, {-1.0, -24.0, 0, 1}, {0.0, -24.0, 0, 1},
+
52 {1.0, -24.0, 0, 1}, {2.0, -24.0, 0, 1}, {3.0, -24.0, 0, 1}, {4.0, -24.0, 0, 1}, {5.0, -24.0, 0, 1}, {6.0, -24.0, 0, 1},
+
53 {7.0, -24.0, 0, 1}, {8.0, -24.0, 0, 1}, {9.0, -24.0, 0, 1}, {1.0, -23.0, 0, 1}, {2.0, -23.0, 0, 1}, {3.0, -23.0, 0, 1},
+
54 {4.0, -23.0, 0, 1}, {5.0, -23.0, 0, 1}, {6.0, -23.0, 0, 1}, {7.0, -23.0, 0, 1}, {8.0, -23.0, 0, 1}, {9.0, -23.0, 0, 1},
+
55 {10.0, -23.0, 0, 1}, {11.0, -23.0, 0, 1}, {-12.0, -22.0, 0, 1}, {-11.0, -22.0, 0, 1}, {-10.0, -22.0, 0, 1}, {-9.0, -22.0, 0, 1},
+
56 {-8.0, -22.0, 0, 1}, {-7.0, -22.0, 0, 1}, {3.0, -22.0, 0, 1}, {4.0, -22.0, 0, 1}, {5.0, -22.0, 0, 1}, {6.0, -22.0, 0, 1},
+
57 {7.0, -22.0, 0, 1}, {8.0, -22.0, 0, 1}, {9.0, -22.0, 0, 1}, {10.0, -22.0, 0, 1}, {11.0, -22.0, 0, 1}, {12.0, -22.0, 0, 1},
+
58 {13.0, -22.0, 0, 1}, {-20.0, -21.0, 0, 1}, {-19.0, -21.0, 0, 1}, {-13.0, -21.0, 0, 1}, {-12.0, -21.0, 0, 1}, {-11.0, -21.0, 0, 1},
+
59 {-10.0, -21.0, 0, 1}, {-9.0, -21.0, 0, 1}, {-8.0, -21.0, 0, 1}, {-7.0, -21.0, 0, 1}, {-6.0, -21.0, 0, 1}, {-5.0, -21.0, 0, 1},
+
60 {-4.0, -21.0, 0, 1}, {-3.0, -21.0, 0, 1}, {5.0, -21.0, 0, 1}, {6.0, -21.0, 0, 1}, {7.0, -21.0, 0, 1}, {8.0, -21.0, 0, 1},
+
61 {9.0, -21.0, 0, 1}, {10.0, -21.0, 0, 1}, {11.0, -21.0, 0, 1}, {12.0, -21.0, 0, 1}, {13.0, -21.0, 0, 1}, {14.0, -21.0, 0, 1},
+
62 {-20.0, -20.0, 0, 1}, {-19.0, -20.0, 0, 1}, {-14.0, -20.0, 0, 1}, {-13.0, -20.0, 0, 1}, {-12.0, -20.0, 0, 1}, {-11.0, -20.0, 0, 1},
+
63 {-10.0, -20.0, 0, 1}, {-9.0, -20.0, 0, 1}, {-8.0, -20.0, 0, 1}, {-7.0, -20.0, 0, 1}, {-6.0, -20.0, 0, 1}, {-5.0, -20.0, 0, 1},
+
64 {-4.0, -20.0, 0, 1}, {-3.0, -20.0, 0, 1}, {-2.0, -20.0, 0, 1}, {-1.0, -20.0, 0, 1}, {6.0, -20.0, 0, 1}, {7.0, -20.0, 0, 1},
+
65 {8.0, -20.0, 0, 1}, {9.0, -20.0, 0, 1}, {10.0, -20.0, 0, 1}, {11.0, -20.0, 0, 1}, {12.0, -20.0, 0, 1}, {13.0, -20.0, 0, 1},
+
66 {14.0, -20.0, 0, 1}, {15.0, -20.0, 0, 1}, {-21.0, -19.0, 0, 1}, {-20.0, -19.0, 0, 1}, {-15.0, -19.0, 0, 1}, {-14.0, -19.0, 0, 1},
+
67 {-13.0, -19.0, 0, 1}, {-12.0, -19.0, 0, 1}, {-11.0, -19.0, 0, 1}, {-10.0, -19.0, 0, 1}, {-9.0, -19.0, 0, 1}, {-8.0, -19.0, 0, 1},
+
68 {-7.0, -19.0, 0, 1}, {-6.0, -19.0, 0, 1}, {-5.0, -19.0, 0, 1}, {-4.0, -19.0, 0, 1}, {-3.0, -19.0, 0, 1}, {-2.0, -19.0, 0, 1},
+
69 {-1.0, -19.0, 0, 1}, {0.0, -19.0, 0, 1}, {1.0, -19.0, 0, 1}, {8.0, -19.0, 0, 1}, {9.0, -19.0, 0, 1}, {10.0, -19.0, 0, 1},
+
70 {11.0, -19.0, 0, 1}, {12.0, -19.0, 0, 1}, {13.0, -19.0, 0, 1}, {14.0, -19.0, 0, 1}, {15.0, -19.0, 0, 1}, {16.0, -19.0, 0, 1},
+
71 {17.0, -19.0, 0, 1}, {-22.0, -18.0, 0, 1}, {-21.0, -18.0, 0, 1}, {-20.0, -18.0, 0, 1}, {-15.0, -18.0, 0, 1}, {-14.0, -18.0, 0, 1},
+
72 {-13.0, -18.0, 0, 1}, {-12.0, -18.0, 0, 1}, {-11.0, -18.0, 0, 1}, {-10.0, -18.0, 0, 1}, {-9.0, -18.0, 0, 1}, {-8.0, -18.0, 0, 1},
+
73 {-7.0, -18.0, 0, 1}, {-6.0, -18.0, 0, 1}, {-5.0, -18.0, 0, 1}, {-4.0, -18.0, 0, 1}, {-3.0, -18.0, 0, 1}, {-2.0, -18.0, 0, 1},
+
74 {-1.0, -18.0, 0, 1}, {0.0, -18.0, 0, 1}, {1.0, -18.0, 0, 1}, {2.0, -18.0, 0, 1}, {3.0, -18.0, 0, 1}, {9.0, -18.0, 0, 1},
+
75 {10.0, -18.0, 0, 1}, {11.0, -18.0, 0, 1}, {12.0, -18.0, 0, 1}, {13.0, -18.0, 0, 1}, {14.0, -18.0, 0, 1}, {15.0, -18.0, 0, 1},
+
76 {16.0, -18.0, 0, 1}, {17.0, -18.0, 0, 1}, {18.0, -18.0, 0, 1}, {-23.0, -17.0, 0, 1}, {-22.0, -17.0, 0, 1}, {-21.0, -17.0, 0, 1},
+
77 {-15.0, -17.0, 0, 1}, {-14.0, -17.0, 0, 1}, {-13.0, -17.0, 0, 1}, {-12.0, -17.0, 0, 1}, {-11.0, -17.0, 0, 1}, {-10.0, -17.0, 0, 1},
+
78 {-9.0, -17.0, 0, 1}, {-8.0, -17.0, 0, 1}, {-7.0, -17.0, 0, 1}, {-6.0, -17.0, 0, 1}, {-5.0, -17.0, 0, 1}, {-4.0, -17.0, 0, 1},
+
79 {-3.0, -17.0, 0, 1}, {-2.0, -17.0, 0, 1}, {-1.0, -17.0, 0, 1}, {0.0, -17.0, 0, 1}, {1.0, -17.0, 0, 1}, {2.0, -17.0, 0, 1},
+
80 {3.0, -17.0, 0, 1}, {4.0, -17.0, 0, 1}, {10.0, -17.0, 0, 1}, {11.0, -17.0, 0, 1}, {12.0, -17.0, 0, 1}, {13.0, -17.0, 0, 1},
+
81 {14.0, -17.0, 0, 1}, {15.0, -17.0, 0, 1}, {16.0, -17.0, 0, 1}, {17.0, -17.0, 0, 1}, {18.0, -17.0, 0, 1}, {-23.0, -16.0, 0, 1},
+
82 {-22.0, -16.0, 0, 1}, {-15.0, -16.0, 0, 1}, {-14.0, -16.0, 0, 1}, {-13.0, -16.0, 0, 1}, {-12.0, -16.0, 0, 1}, {-11.0, -16.0, 0, 1},
+
83 {-10.0, -16.0, 0, 1}, {-9.0, -16.0, 0, 1}, {-8.0, -16.0, 0, 1}, {-7.0, -16.0, 0, 1}, {-6.0, -16.0, 0, 1}, {-5.0, -16.0, 0, 1},
+
84 {-4.0, -16.0, 0, 1}, {-3.0, -16.0, 0, 1}, {-2.0, -16.0, 0, 1}, {-1.0, -16.0, 0, 1}, {0.0, -16.0, 0, 1}, {1.0, -16.0, 0, 1},
+
85 {2.0, -16.0, 0, 1}, {3.0, -16.0, 0, 1}, {4.0, -16.0, 0, 1}, {5.0, -16.0, 0, 1}, {6.0, -16.0, 0, 1}, {12.0, -16.0, 0, 1},
+
86 {13.0, -16.0, 0, 1}, {14.0, -16.0, 0, 1}, {15.0, -16.0, 0, 1}, {16.0, -16.0, 0, 1}, {17.0, -16.0, 0, 1}, {18.0, -16.0, 0, 1},
+
87 {19.0, -16.0, 0, 1}, {-24.0, -15.0, 0, 1}, {-23.0, -15.0, 0, 1}, {-22.0, -15.0, 0, 1}, {-9.0, -15.0, 0, 1}, {-8.0, -15.0, 0, 1},
+
88 {-7.0, -15.0, 0, 1}, {-6.0, -15.0, 0, 1}, {-5.0, -15.0, 0, 1}, {-4.0, -15.0, 0, 1}, {-3.0, -15.0, 0, 1}, {-2.0, -15.0, 0, 1},
+
89 {-1.0, -15.0, 0, 1}, {0.0, -15.0, 0, 1}, {1.0, -15.0, 0, 1}, {2.0, -15.0, 0, 1}, {3.0, -15.0, 0, 1}, {4.0, -15.0, 0, 1},
+
90 {5.0, -15.0, 0, 1}, {6.0, -15.0, 0, 1}, {7.0, -15.0, 0, 1}, {13.0, -15.0, 0, 1}, {14.0, -15.0, 0, 1}, {15.0, -15.0, 0, 1},
+
91 {16.0, -15.0, 0, 1}, {17.0, -15.0, 0, 1}, {18.0, -15.0, 0, 1}, {19.0, -15.0, 0, 1}, {20.0, -15.0, 0, 1}, {-24.0, -14.0, 0, 1},
+
92 {-23.0, -14.0, 0, 1}, {-6.0, -14.0, 0, 1}, {-5.0, -14.0, 0, 1}, {-4.0, -14.0, 0, 1}, {-3.0, -14.0, 0, 1}, {-2.0, -14.0, 0, 1},
+
93 {-1.0, -14.0, 0, 1}, {0.0, -14.0, 0, 1}, {1.0, -14.0, 0, 1}, {2.0, -14.0, 0, 1}, {3.0, -14.0, 0, 1}, {4.0, -14.0, 0, 1},
+
94 {5.0, -14.0, 0, 1}, {6.0, -14.0, 0, 1}, {7.0, -14.0, 0, 1}, {8.0, -14.0, 0, 1}, {14.0, -14.0, 0, 1}, {15.0, -14.0, 0, 1},
+
95 {16.0, -14.0, 0, 1}, {17.0, -14.0, 0, 1}, {18.0, -14.0, 0, 1}, {19.0, -14.0, 0, 1}, {20.0, -14.0, 0, 1}, {21.0, -14.0, 0, 1},
+
96 {-25.0, -13.0, 0, 1}, {-24.0, -13.0, 0, 1}, {-23.0, -13.0, 0, 1}, {-3.0, -13.0, 0, 1}, {-2.0, -13.0, 0, 1}, {-1.0, -13.0, 0, 1},
+
97 {0.0, -13.0, 0, 1}, {1.0, -13.0, 0, 1}, {2.0, -13.0, 0, 1}, {3.0, -13.0, 0, 1}, {4.0, -13.0, 0, 1}, {5.0, -13.0, 0, 1},
+
98 {6.0, -13.0, 0, 1}, {7.0, -13.0, 0, 1}, {8.0, -13.0, 0, 1}, {9.0, -13.0, 0, 1}, {10.0, -13.0, 0, 1}, {15.0, -13.0, 0, 1},
+
99 {16.0, -13.0, 0, 1}, {17.0, -13.0, 0, 1}, {18.0, -13.0, 0, 1}, {19.0, -13.0, 0, 1}, {20.0, -13.0, 0, 1}, {21.0, -13.0, 0, 1},
+
100 {-25.0, -12.0, 0, 1}, {-24.0, -12.0, 0, 1}, {-17.0, -12.0, 0, 1}, {-16.0, -12.0, 0, 1}, {-15.0, -12.0, 0, 1}, {-14.0, -12.0, 0, 1},
+
101 {-13.0, -12.0, 0, 1}, {-12.0, -12.0, 0, 1}, {-11.0, -12.0, 0, 1}, {-1.0, -12.0, 0, 1}, {0.0, -12.0, 0, 1}, {1.0, -12.0, 0, 1},
+
102 {2.0, -12.0, 0, 1}, {3.0, -12.0, 0, 1}, {4.0, -12.0, 0, 1}, {5.0, -12.0, 0, 1}, {6.0, -12.0, 0, 1}, {7.0, -12.0, 0, 1},
+
103 {8.0, -12.0, 0, 1}, {9.0, -12.0, 0, 1}, {10.0, -12.0, 0, 1}, {11.0, -12.0, 0, 1}, {16.0, -12.0, 0, 1}, {17.0, -12.0, 0, 1},
+
104 {18.0, -12.0, 0, 1}, {19.0, -12.0, 0, 1}, {20.0, -12.0, 0, 1}, {21.0, -12.0, 0, 1}, {22.0, -12.0, 0, 1}, {-25.0, -11.0, 0, 1},
+
105 {-24.0, -11.0, 0, 1}, {-19.0, -11.0, 0, 1}, {-18.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1}, {-15.0, -11.0, 0, 1},
+
106 {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1}, {-9.0, -11.0, 0, 1},
+
107 {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1}, {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1},
+
108 {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1}, {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1},
+
109 {11.0, -11.0, 0, 1}, {12.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
110 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-20.0, -10.0, 0, 1},
+
111 {-19.0, -10.0, 0, 1}, {-18.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1},
+
112 {-13.0, -10.0, 0, 1}, {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1},
+
113 {-7.0, -10.0, 0, 1}, {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1}, {4.0, -10.0, 0, 1},
+
114 {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1}, {10.0, -10.0, 0, 1},
+
115 {11.0, -10.0, 0, 1}, {12.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1}, {20.0, -10.0, 0, 1},
+
116 {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-20.0, -9.0, 0, 1},
+
117 {-19.0, -9.0, 0, 1}, {-18.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1}, {-14.0, -9.0, 0, 1},
+
118 {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1}, {-8.0, -9.0, 0, 1},
+
119 {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-4.0, -9.0, 0, 1}, {-3.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1},
+
120 {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1}, {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1},
+
121 {10.0, -9.0, 0, 1}, {11.0, -9.0, 0, 1}, {12.0, -9.0, 0, 1}, {13.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1},
+
122 {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1}, {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {-26.0, -8.0, 0, 1}, {-25.0, -8.0, 0, 1},
+
123 {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-19.0, -8.0, 0, 1}, {-18.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1},
+
124 {-15.0, -8.0, 0, 1}, {-14.0, -8.0, 0, 1}, {-13.0, -8.0, 0, 1}, {-12.0, -8.0, 0, 1}, {-11.0, -8.0, 0, 1}, {-10.0, -8.0, 0, 1},
+
125 {-9.0, -8.0, 0, 1}, {-8.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-4.0, -8.0, 0, 1},
+
126 {-3.0, -8.0, 0, 1}, {-2.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {5.0, -8.0, 0, 1}, {6.0, -8.0, 0, 1}, {7.0, -8.0, 0, 1},
+
127 {8.0, -8.0, 0, 1}, {9.0, -8.0, 0, 1}, {10.0, -8.0, 0, 1}, {11.0, -8.0, 0, 1}, {12.0, -8.0, 0, 1}, {13.0, -8.0, 0, 1},
+
128 {14.0, -8.0, 0, 1}, {19.0, -8.0, 0, 1}, {20.0, -8.0, 0, 1}, {21.0, -8.0, 0, 1}, {22.0, -8.0, 0, 1}, {23.0, -8.0, 0, 1},
+
129 {-26.0, -7.0, 0, 1}, {-25.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-19.0, -7.0, 0, 1},
+
130 {-18.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1}, {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-13.0, -7.0, 0, 1},
+
131 {-12.0, -7.0, 0, 1}, {-11.0, -7.0, 0, 1}, {-10.0, -7.0, 0, 1}, {-9.0, -7.0, 0, 1}, {-8.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1},
+
132 {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-4.0, -7.0, 0, 1}, {-3.0, -7.0, 0, 1}, {-2.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
133 {0.0, -7.0, 0, 1}, {6.0, -7.0, 0, 1}, {7.0, -7.0, 0, 1}, {8.0, -7.0, 0, 1}, {9.0, -7.0, 0, 1}, {10.0, -7.0, 0, 1},
+
134 {11.0, -7.0, 0, 1}, {12.0, -7.0, 0, 1}, {13.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {19.0, -7.0, 0, 1},
+
135 {20.0, -7.0, 0, 1}, {21.0, -7.0, 0, 1}, {22.0, -7.0, 0, 1}, {23.0, -7.0, 0, 1}, {-27.0, -6.0, 0, 1}, {-26.0, -6.0, 0, 1},
+
136 {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-19.0, -6.0, 0, 1}, {-18.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1},
+
137 {-16.0, -6.0, 0, 1}, {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-13.0, -6.0, 0, 1}, {-12.0, -6.0, 0, 1}, {-11.0, -6.0, 0, 1},
+
138 {-10.0, -6.0, 0, 1}, {-9.0, -6.0, 0, 1}, {-8.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1},
+
139 {-4.0, -6.0, 0, 1}, {-3.0, -6.0, 0, 1}, {-2.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1}, {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1},
+
140 {7.0, -6.0, 0, 1}, {8.0, -6.0, 0, 1}, {9.0, -6.0, 0, 1}, {10.0, -6.0, 0, 1}, {11.0, -6.0, 0, 1}, {12.0, -6.0, 0, 1},
+
141 {13.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {20.0, -6.0, 0, 1}, {21.0, -6.0, 0, 1}, {22.0, -6.0, 0, 1},
+
142 {23.0, -6.0, 0, 1}, {-27.0, -5.0, 0, 1}, {-26.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1},
+
143 {-19.0, -5.0, 0, 1}, {-18.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1}, {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1},
+
144 {-13.0, -5.0, 0, 1}, {-12.0, -5.0, 0, 1}, {-11.0, -5.0, 0, 1}, {-10.0, -5.0, 0, 1}, {-9.0, -5.0, 0, 1}, {-8.0, -5.0, 0, 1},
+
145 {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-4.0, -5.0, 0, 1}, {-3.0, -5.0, 0, 1}, {-2.0, -5.0, 0, 1},
+
146 {-1.0, -5.0, 0, 1}, {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {2.0, -5.0, 0, 1}, {8.0, -5.0, 0, 1}, {9.0, -5.0, 0, 1},
+
147 {10.0, -5.0, 0, 1}, {11.0, -5.0, 0, 1}, {12.0, -5.0, 0, 1}, {13.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1},
+
148 {16.0, -5.0, 0, 1}, {20.0, -5.0, 0, 1}, {21.0, -5.0, 0, 1}, {22.0, -5.0, 0, 1}, {23.0, -5.0, 0, 1}, {24.0, -5.0, 0, 1},
+
149 {-27.0, -4.0, 0, 1}, {-26.0, -4.0, 0, 1}, {-23.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1},
+
150 {-19.0, -4.0, 0, 1}, {-18.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1}, {-10.0, -4.0, 0, 1}, {-9.0, -4.0, 0, 1},
+
151 {-8.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-4.0, -4.0, 0, 1}, {-3.0, -4.0, 0, 1},
+
152 {-2.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1}, {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {2.0, -4.0, 0, 1}, {3.0, -4.0, 0, 1},
+
153 {8.0, -4.0, 0, 1}, {9.0, -4.0, 0, 1}, {10.0, -4.0, 0, 1}, {11.0, -4.0, 0, 1}, {12.0, -4.0, 0, 1}, {13.0, -4.0, 0, 1},
+
154 {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {17.0, -4.0, 0, 1}, {21.0, -4.0, 0, 1}, {22.0, -4.0, 0, 1},
+
155 {23.0, -4.0, 0, 1}, {24.0, -4.0, 0, 1}, {-27.0, -3.0, 0, 1}, {-26.0, -3.0, 0, 1}, {-23.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1},
+
156 {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-19.0, -3.0, 0, 1}, {-18.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
157 {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-4.0, -3.0, 0, 1}, {-3.0, -3.0, 0, 1}, {-2.0, -3.0, 0, 1},
+
158 {-1.0, -3.0, 0, 1}, {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {2.0, -3.0, 0, 1}, {3.0, -3.0, 0, 1}, {4.0, -3.0, 0, 1},
+
159 {9.0, -3.0, 0, 1}, {10.0, -3.0, 0, 1}, {11.0, -3.0, 0, 1}, {12.0, -3.0, 0, 1}, {13.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1},
+
160 {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {17.0, -3.0, 0, 1}, {21.0, -3.0, 0, 1}, {22.0, -3.0, 0, 1}, {23.0, -3.0, 0, 1},
+
161 {24.0, -3.0, 0, 1}, {-27.0, -2.0, 0, 1}, {-26.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1}, {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1},
+
162 {-20.0, -2.0, 0, 1}, {-19.0, -2.0, 0, 1}, {-18.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
163 {-5.0, -2.0, 0, 1}, {-4.0, -2.0, 0, 1}, {-3.0, -2.0, 0, 1}, {-2.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
164 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {10.0, -2.0, 0, 1},
+
165 {11.0, -2.0, 0, 1}, {12.0, -2.0, 0, 1}, {13.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
166 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1}, {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {-27.0, -1.0, 0, 1},
+
167 {-26.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-19.0, -1.0, 0, 1}, {-18.0, -1.0, 0, 1},
+
168 {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1}, {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1},
+
169 {-11.0, -1.0, 0, 1}, {-4.0, -1.0, 0, 1}, {-3.0, -1.0, 0, 1}, {-2.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1}, {0.0, -1.0, 0, 1},
+
170 {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1}, {6.0, -1.0, 0, 1},
+
171 {10.0, -1.0, 0, 1}, {11.0, -1.0, 0, 1}, {12.0, -1.0, 0, 1}, {13.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
172 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1},
+
173 {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-20.0, 0.0, 0, 1}, {-19.0, 0.0, 0, 1},
+
174 {-18.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1}, {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1},
+
175 {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1}, {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-3.0, 0.0, 0, 1}, {-2.0, 0.0, 0, 1},
+
176 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
177 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {11.0, 0.0, 0, 1}, {12.0, 0.0, 0, 1}, {13.0, 0.0, 0, 1},
+
178 {14.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1}, {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1},
+
179 {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1},
+
180 {-20.0, 1.0, 0, 1}, {-19.0, 1.0, 0, 1}, {-18.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1},
+
181 {-14.0, 1.0, 0, 1}, {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1},
+
182 {-8.0, 1.0, 0, 1}, {-7.0, 1.0, 0, 1}, {-2.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1},
+
183 {2.0, 1.0, 0, 1}, {3.0, 1.0, 0, 1}, {4.0, 1.0, 0, 1}, {5.0, 1.0, 0, 1}, {6.0, 1.0, 0, 1}, {7.0, 1.0, 0, 1},
+
184 {12.0, 1.0, 0, 1}, {13.0, 1.0, 0, 1}, {14.0, 1.0, 0, 1}, {15.0, 1.0, 0, 1}, {16.0, 1.0, 0, 1}, {17.0, 1.0, 0, 1},
+
185 {18.0, 1.0, 0, 1}, {19.0, 1.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-21.0, 2.0, 0, 1}, {-20.0, 2.0, 0, 1},
+
186 {-19.0, 2.0, 0, 1}, {-18.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1},
+
187 {-13.0, 2.0, 0, 1}, {-12.0, 2.0, 0, 1}, {-11.0, 2.0, 0, 1}, {-10.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1}, {-8.0, 2.0, 0, 1},
+
188 {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1}, {2.0, 2.0, 0, 1},
+
189 {3.0, 2.0, 0, 1}, {4.0, 2.0, 0, 1}, {5.0, 2.0, 0, 1}, {6.0, 2.0, 0, 1}, {7.0, 2.0, 0, 1}, {8.0, 2.0, 0, 1},
+
190 {12.0, 2.0, 0, 1}, {13.0, 2.0, 0, 1}, {14.0, 2.0, 0, 1}, {15.0, 2.0, 0, 1}, {16.0, 2.0, 0, 1}, {17.0, 2.0, 0, 1},
+
191 {18.0, 2.0, 0, 1}, {19.0, 2.0, 0, 1}, {-27.0, 3.0, 0, 1}, {-26.0, 3.0, 0, 1}, {-25.0, 3.0, 0, 1}, {-20.0, 3.0, 0, 1},
+
192 {-19.0, 3.0, 0, 1}, {-18.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1}, {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1},
+
193 {-13.0, 3.0, 0, 1}, {-12.0, 3.0, 0, 1}, {-11.0, 3.0, 0, 1}, {-10.0, 3.0, 0, 1}, {-9.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1},
+
194 {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1}, {-5.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {2.0, 3.0, 0, 1},
+
195 {3.0, 3.0, 0, 1}, {4.0, 3.0, 0, 1}, {5.0, 3.0, 0, 1}, {6.0, 3.0, 0, 1}, {7.0, 3.0, 0, 1}, {8.0, 3.0, 0, 1},
+
196 {12.0, 3.0, 0, 1}, {13.0, 3.0, 0, 1}, {14.0, 3.0, 0, 1}, {15.0, 3.0, 0, 1}, {16.0, 3.0, 0, 1}, {17.0, 3.0, 0, 1},
+
197 {18.0, 3.0, 0, 1}, {19.0, 3.0, 0, 1}, {20.0, 3.0, 0, 1}, {-26.0, 4.0, 0, 1}, {-25.0, 4.0, 0, 1}, {-19.0, 4.0, 0, 1},
+
198 {-18.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1}, {-13.0, 4.0, 0, 1},
+
199 {-12.0, 4.0, 0, 1}, {-11.0, 4.0, 0, 1}, {-10.0, 4.0, 0, 1}, {-9.0, 4.0, 0, 1}, {-8.0, 4.0, 0, 1}, {-7.0, 4.0, 0, 1},
+
200 {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-4.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1}, {2.0, 4.0, 0, 1}, {3.0, 4.0, 0, 1},
+
201 {4.0, 4.0, 0, 1}, {5.0, 4.0, 0, 1}, {6.0, 4.0, 0, 1}, {7.0, 4.0, 0, 1}, {8.0, 4.0, 0, 1}, {9.0, 4.0, 0, 1},
+
202 {13.0, 4.0, 0, 1}, {14.0, 4.0, 0, 1}, {15.0, 4.0, 0, 1}, {16.0, 4.0, 0, 1}, {17.0, 4.0, 0, 1}, {18.0, 4.0, 0, 1},
+
203 {19.0, 4.0, 0, 1}, {20.0, 4.0, 0, 1}, {-26.0, 5.0, 0, 1}, {-25.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1}, {-16.0, 5.0, 0, 1},
+
204 {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-13.0, 5.0, 0, 1}, {-12.0, 5.0, 0, 1}, {-11.0, 5.0, 0, 1}, {-10.0, 5.0, 0, 1},
+
205 {-9.0, 5.0, 0, 1}, {-8.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1}, {-4.0, 5.0, 0, 1},
+
206 {-3.0, 5.0, 0, 1}, {2.0, 5.0, 0, 1}, {3.0, 5.0, 0, 1}, {4.0, 5.0, 0, 1}, {5.0, 5.0, 0, 1}, {6.0, 5.0, 0, 1},
+
207 {7.0, 5.0, 0, 1}, {8.0, 5.0, 0, 1}, {9.0, 5.0, 0, 1}, {13.0, 5.0, 0, 1}, {14.0, 5.0, 0, 1}, {15.0, 5.0, 0, 1},
+
208 {16.0, 5.0, 0, 1}, {17.0, 5.0, 0, 1}, {18.0, 5.0, 0, 1}, {19.0, 5.0, 0, 1}, {20.0, 5.0, 0, 1}, {-26.0, 6.0, 0, 1},
+
209 {-25.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1}, {-13.0, 6.0, 0, 1}, {-12.0, 6.0, 0, 1}, {-11.0, 6.0, 0, 1}, {-10.0, 6.0, 0, 1},
+
210 {-9.0, 6.0, 0, 1}, {-8.0, 6.0, 0, 1}, {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-4.0, 6.0, 0, 1},
+
211 {-3.0, 6.0, 0, 1}, {-2.0, 6.0, 0, 1}, {2.0, 6.0, 0, 1}, {3.0, 6.0, 0, 1}, {4.0, 6.0, 0, 1}, {5.0, 6.0, 0, 1},
+
212 {6.0, 6.0, 0, 1}, {7.0, 6.0, 0, 1}, {8.0, 6.0, 0, 1}, {9.0, 6.0, 0, 1}, {13.0, 6.0, 0, 1}, {14.0, 6.0, 0, 1},
+
213 {15.0, 6.0, 0, 1}, {16.0, 6.0, 0, 1}, {17.0, 6.0, 0, 1}, {18.0, 6.0, 0, 1}, {19.0, 6.0, 0, 1}, {20.0, 6.0, 0, 1},
+
214 {-25.0, 7.0, 0, 1}, {-24.0, 7.0, 0, 1}, {-11.0, 7.0, 0, 1}, {-10.0, 7.0, 0, 1}, {-9.0, 7.0, 0, 1}, {-8.0, 7.0, 0, 1},
+
215 {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1}, {-4.0, 7.0, 0, 1}, {-3.0, 7.0, 0, 1}, {-2.0, 7.0, 0, 1},
+
216 {3.0, 7.0, 0, 1}, {4.0, 7.0, 0, 1}, {5.0, 7.0, 0, 1}, {6.0, 7.0, 0, 1}, {7.0, 7.0, 0, 1}, {8.0, 7.0, 0, 1},
+
217 {9.0, 7.0, 0, 1}, {10.0, 7.0, 0, 1}, {14.0, 7.0, 0, 1}, {15.0, 7.0, 0, 1}, {16.0, 7.0, 0, 1}, {17.0, 7.0, 0, 1},
+
218 {18.0, 7.0, 0, 1}, {19.0, 7.0, 0, 1}, {20.0, 7.0, 0, 1}, {21.0, 7.0, 0, 1}, {-25.0, 8.0, 0, 1}, {-24.0, 8.0, 0, 1},
+
219 {-10.0, 8.0, 0, 1}, {-9.0, 8.0, 0, 1}, {-8.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1}, {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1},
+
220 {-4.0, 8.0, 0, 1}, {-3.0, 8.0, 0, 1}, {-2.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1},
+
221 {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1}, {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1},
+
222 {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1}, {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1},
+
223 {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {-25.0, 9.0, 0, 1}, {-24.0, 9.0, 0, 1}, {-23.0, 9.0, 0, 1}, {-9.0, 9.0, 0, 1},
+
224 {-8.0, 9.0, 0, 1}, {-7.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {-3.0, 9.0, 0, 1},
+
225 {-2.0, 9.0, 0, 1}, {-1.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1},
+
226 {7.0, 9.0, 0, 1}, {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1},
+
227 {16.0, 9.0, 0, 1}, {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1},
+
228 {-24.0, 10.0, 0, 1}, {-23.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-13.0, 10.0, 0, 1}, {-12.0, 10.0, 0, 1},
+
229 {-8.0, 10.0, 0, 1}, {-7.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1}, {-4.0, 10.0, 0, 1}, {-3.0, 10.0, 0, 1},
+
230 {-2.0, 10.0, 0, 1}, {-1.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1}, {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1},
+
231 {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1}, {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1},
+
232 {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1}, {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {-24.0, 11.0, 0, 1},
+
233 {-23.0, 11.0, 0, 1}, {-22.0, 11.0, 0, 1}, {-16.0, 11.0, 0, 1}, {-15.0, 11.0, 0, 1}, {-14.0, 11.0, 0, 1}, {-13.0, 11.0, 0, 1},
+
234 {-12.0, 11.0, 0, 1}, {-11.0, 11.0, 0, 1}, {-7.0, 11.0, 0, 1}, {-6.0, 11.0, 0, 1}, {-5.0, 11.0, 0, 1}, {-4.0, 11.0, 0, 1},
+
235 {-3.0, 11.0, 0, 1}, {-2.0, 11.0, 0, 1}, {-1.0, 11.0, 0, 1}, {0.0, 11.0, 0, 1}, {4.0, 11.0, 0, 1}, {5.0, 11.0, 0, 1},
+
236 {6.0, 11.0, 0, 1}, {7.0, 11.0, 0, 1}, {8.0, 11.0, 0, 1}, {9.0, 11.0, 0, 1}, {10.0, 11.0, 0, 1}, {11.0, 11.0, 0, 1},
+
237 {15.0, 11.0, 0, 1}, {16.0, 11.0, 0, 1}, {17.0, 11.0, 0, 1}, {18.0, 11.0, 0, 1}, {19.0, 11.0, 0, 1}, {20.0, 11.0, 0, 1},
+
238 {-23.0, 12.0, 0, 1}, {-22.0, 12.0, 0, 1}, {-17.0, 12.0, 0, 1}, {-16.0, 12.0, 0, 1}, {-15.0, 12.0, 0, 1}, {-14.0, 12.0, 0, 1},
+
239 {-13.0, 12.0, 0, 1}, {-12.0, 12.0, 0, 1}, {-11.0, 12.0, 0, 1}, {-7.0, 12.0, 0, 1}, {-6.0, 12.0, 0, 1}, {-5.0, 12.0, 0, 1},
+
240 {-4.0, 12.0, 0, 1}, {-3.0, 12.0, 0, 1}, {-2.0, 12.0, 0, 1}, {-1.0, 12.0, 0, 1}, {0.0, 12.0, 0, 1}, {4.0, 12.0, 0, 1},
+
241 {5.0, 12.0, 0, 1}, {6.0, 12.0, 0, 1}, {7.0, 12.0, 0, 1}, {8.0, 12.0, 0, 1}, {9.0, 12.0, 0, 1}, {10.0, 12.0, 0, 1},
+
242 {11.0, 12.0, 0, 1}, {15.0, 12.0, 0, 1}, {16.0, 12.0, 0, 1}, {17.0, 12.0, 0, 1}, {18.0, 12.0, 0, 1}, {19.0, 12.0, 0, 1},
+
243 {-23.0, 13.0, 0, 1}, {-22.0, 13.0, 0, 1}, {-21.0, 13.0, 0, 1}, {-17.0, 13.0, 0, 1}, {-16.0, 13.0, 0, 1}, {-15.0, 13.0, 0, 1},
+
244 {-14.0, 13.0, 0, 1}, {-13.0, 13.0, 0, 1}, {-12.0, 13.0, 0, 1}, {-11.0, 13.0, 0, 1}, {-7.0, 13.0, 0, 1}, {-6.0, 13.0, 0, 1},
+
245 {-5.0, 13.0, 0, 1}, {-4.0, 13.0, 0, 1}, {-3.0, 13.0, 0, 1}, {-2.0, 13.0, 0, 1}, {-1.0, 13.0, 0, 1}, {0.0, 13.0, 0, 1},
+
246 {4.0, 13.0, 0, 1}, {5.0, 13.0, 0, 1}, {6.0, 13.0, 0, 1}, {7.0, 13.0, 0, 1}, {8.0, 13.0, 0, 1}, {9.0, 13.0, 0, 1},
+
247 {10.0, 13.0, 0, 1}, {11.0, 13.0, 0, 1}, {15.0, 13.0, 0, 1}, {16.0, 13.0, 0, 1}, {17.0, 13.0, 0, 1}, {18.0, 13.0, 0, 1},
+
248 {19.0, 13.0, 0, 1}, {-22.0, 14.0, 0, 1}, {-21.0, 14.0, 0, 1}, {-20.0, 14.0, 0, 1}, {-17.0, 14.0, 0, 1}, {-16.0, 14.0, 0, 1},
+
249 {-15.0, 14.0, 0, 1}, {-14.0, 14.0, 0, 1}, {-13.0, 14.0, 0, 1}, {-12.0, 14.0, 0, 1}, {-11.0, 14.0, 0, 1}, {-7.0, 14.0, 0, 1},
+
250 {-6.0, 14.0, 0, 1}, {-5.0, 14.0, 0, 1}, {-4.0, 14.0, 0, 1}, {-3.0, 14.0, 0, 1}, {-2.0, 14.0, 0, 1}, {-1.0, 14.0, 0, 1},
+
251 {0.0, 14.0, 0, 1}, {4.0, 14.0, 0, 1}, {5.0, 14.0, 0, 1}, {6.0, 14.0, 0, 1}, {7.0, 14.0, 0, 1}, {8.0, 14.0, 0, 1},
+
252 {9.0, 14.0, 0, 1}, {10.0, 14.0, 0, 1}, {11.0, 14.0, 0, 1}, {15.0, 14.0, 0, 1}, {16.0, 14.0, 0, 1}, {17.0, 14.0, 0, 1},
+
253 {18.0, 14.0, 0, 1}, {-21.0, 15.0, 0, 1}, {-20.0, 15.0, 0, 1}, {-17.0, 15.0, 0, 1}, {-16.0, 15.0, 0, 1}, {-15.0, 15.0, 0, 1},
+
254 {-14.0, 15.0, 0, 1}, {-13.0, 15.0, 0, 1}, {-12.0, 15.0, 0, 1}, {-11.0, 15.0, 0, 1}, {-7.0, 15.0, 0, 1}, {-6.0, 15.0, 0, 1},
+
255 {-5.0, 15.0, 0, 1}, {-4.0, 15.0, 0, 1}, {-3.0, 15.0, 0, 1}, {-2.0, 15.0, 0, 1}, {-1.0, 15.0, 0, 1}, {0.0, 15.0, 0, 1},
+
256 {4.0, 15.0, 0, 1}, {5.0, 15.0, 0, 1}, {6.0, 15.0, 0, 1}, {7.0, 15.0, 0, 1}, {8.0, 15.0, 0, 1}, {9.0, 15.0, 0, 1},
+
257 {10.0, 15.0, 0, 1}, {11.0, 15.0, 0, 1}, {-21.0, 16.0, 0, 1}, {-20.0, 16.0, 0, 1}, {-19.0, 16.0, 0, 1}, {-16.0, 16.0, 0, 1},
+
258 {-15.0, 16.0, 0, 1}, {-14.0, 16.0, 0, 1}, {-13.0, 16.0, 0, 1}, {-12.0, 16.0, 0, 1}, {-7.0, 16.0, 0, 1}, {-6.0, 16.0, 0, 1},
+
259 {-5.0, 16.0, 0, 1}, {-4.0, 16.0, 0, 1}, {-3.0, 16.0, 0, 1}, {-2.0, 16.0, 0, 1}, {-1.0, 16.0, 0, 1}, {0.0, 16.0, 0, 1},
+
260 {4.0, 16.0, 0, 1}, {5.0, 16.0, 0, 1}, {6.0, 16.0, 0, 1}, {7.0, 16.0, 0, 1}, {8.0, 16.0, 0, 1}, {9.0, 16.0, 0, 1},
+
261 {10.0, 16.0, 0, 1}, {11.0, 16.0, 0, 1}, {-20.0, 17.0, 0, 1}, {-19.0, 17.0, 0, 1}, {-18.0, 17.0, 0, 1}, {-7.0, 17.0, 0, 1},
+
262 {-6.0, 17.0, 0, 1}, {-5.0, 17.0, 0, 1}, {-4.0, 17.0, 0, 1}, {-3.0, 17.0, 0, 1}, {-2.0, 17.0, 0, 1}, {-1.0, 17.0, 0, 1},
+
263 {0.0, 17.0, 0, 1}, {4.0, 17.0, 0, 1}, {5.0, 17.0, 0, 1}, {6.0, 17.0, 0, 1}, {7.0, 17.0, 0, 1}, {8.0, 17.0, 0, 1},
+
264 {9.0, 17.0, 0, 1}, {10.0, 17.0, 0, 1}, {11.0, 17.0, 0, 1}, {19.0, 17.0, 0, 1}, {-19.0, 18.0, 0, 1}, {-18.0, 18.0, 0, 1},
+
265 {-17.0, 18.0, 0, 1}, {-7.0, 18.0, 0, 1}, {-6.0, 18.0, 0, 1}, {-5.0, 18.0, 0, 1}, {-4.0, 18.0, 0, 1}, {-3.0, 18.0, 0, 1},
+
266 {-2.0, 18.0, 0, 1}, {-1.0, 18.0, 0, 1}, {0.0, 18.0, 0, 1}, {4.0, 18.0, 0, 1}, {5.0, 18.0, 0, 1}, {6.0, 18.0, 0, 1},
+
267 {7.0, 18.0, 0, 1}, {8.0, 18.0, 0, 1}, {9.0, 18.0, 0, 1}, {10.0, 18.0, 0, 1}, {11.0, 18.0, 0, 1}, {18.0, 18.0, 0, 1},
+
268 {19.0, 18.0, 0, 1}, {20.0, 18.0, 0, 1}, {-18.0, 19.0, 0, 1}, {-17.0, 19.0, 0, 1}, {-16.0, 19.0, 0, 1}, {-15.0, 19.0, 0, 1},
+
269 {-8.0, 19.0, 0, 1}, {-7.0, 19.0, 0, 1}, {-6.0, 19.0, 0, 1}, {-5.0, 19.0, 0, 1}, {-4.0, 19.0, 0, 1}, {-3.0, 19.0, 0, 1},
+
270 {-2.0, 19.0, 0, 1}, {-1.0, 19.0, 0, 1}, {4.0, 19.0, 0, 1}, {5.0, 19.0, 0, 1}, {6.0, 19.0, 0, 1}, {7.0, 19.0, 0, 1},
+
271 {8.0, 19.0, 0, 1}, {9.0, 19.0, 0, 1}, {10.0, 19.0, 0, 1}, {17.0, 19.0, 0, 1}, {18.0, 19.0, 0, 1}, {19.0, 19.0, 0, 1},
+
272 {-17.0, 20.0, 0, 1}, {-16.0, 20.0, 0, 1}, {-15.0, 20.0, 0, 1}, {-14.0, 20.0, 0, 1}, {-7.0, 20.0, 0, 1}, {-6.0, 20.0, 0, 1},
+
273 {-5.0, 20.0, 0, 1}, {-4.0, 20.0, 0, 1}, {-3.0, 20.0, 0, 1}, {-2.0, 20.0, 0, 1}, {-1.0, 20.0, 0, 1}, {4.0, 20.0, 0, 1},
+
274 {5.0, 20.0, 0, 1}, {6.0, 20.0, 0, 1}, {7.0, 20.0, 0, 1}, {8.0, 20.0, 0, 1}, {9.0, 20.0, 0, 1}, {16.0, 20.0, 0, 1},
+
275 {17.0, 20.0, 0, 1}, {18.0, 20.0, 0, 1}, {-15.0, 21.0, 0, 1}, {-14.0, 21.0, 0, 1}, {-13.0, 21.0, 0, 1}, {-12.0, 21.0, 0, 1},
+
276 {-5.0, 21.0, 0, 1}, {-4.0, 21.0, 0, 1}, {-3.0, 21.0, 0, 1}, {-2.0, 21.0, 0, 1}, {-1.0, 21.0, 0, 1}, {14.0, 21.0, 0, 1},
+
277 {15.0, 21.0, 0, 1}, {16.0, 21.0, 0, 1}, {17.0, 21.0, 0, 1}, {-14.0, 22.0, 0, 1}, {-13.0, 22.0, 0, 1}, {-12.0, 22.0, 0, 1},
+
278 {-11.0, 22.0, 0, 1}, {-10.0, 22.0, 0, 1}, {12.0, 22.0, 0, 1}, {13.0, 22.0, 0, 1}, {14.0, 22.0, 0, 1}, {15.0, 22.0, 0, 1},
+
279 {-12.0, 23.0, 0, 1}, {-11.0, 23.0, 0, 1}, {-10.0, 23.0, 0, 1}, {-9.0, 23.0, 0, 1}, {-8.0, 23.0, 0, 1}, {9.0, 23.0, 0, 1},
+
280 {10.0, 23.0, 0, 1}, {11.0, 23.0, 0, 1}, {12.0, 23.0, 0, 1}, {13.0, 23.0, 0, 1}, {14.0, 23.0, 0, 1}, {-10.0, 24.0, 0, 1},
+
281 {-9.0, 24.0, 0, 1}, {-8.0, 24.0, 0, 1}, {-7.0, 24.0, 0, 1}, {-6.0, 24.0, 0, 1}, {-5.0, 24.0, 0, 1}, {-4.0, 24.0, 0, 1},
+
282 {-3.0, 24.0, 0, 1}, {5.0, 24.0, 0, 1}, {6.0, 24.0, 0, 1}, {7.0, 24.0, 0, 1}, {8.0, 24.0, 0, 1}, {9.0, 24.0, 0, 1},
+
283 {10.0, 24.0, 0, 1}, {11.0, 24.0, 0, 1}, {12.0, 24.0, 0, 1}, {-7.0, 25.0, 0, 1}, {-6.0, 25.0, 0, 1}, {-5.0, 25.0, 0, 1},
+
284 {-4.0, 25.0, 0, 1}, {-3.0, 25.0, 0, 1}, {-2.0, 25.0, 0, 1}, {-1.0, 25.0, 0, 1}, {0.0, 25.0, 0, 1}, {1.0, 25.0, 0, 1},
+
285 {2.0, 25.0, 0, 1}, {3.0, 25.0, 0, 1}, {4.0, 25.0, 0, 1}, {5.0, 25.0, 0, 1}, {6.0, 25.0, 0, 1}, {7.0, 25.0, 0, 1},
+
286 {8.0, 25.0, 0, 1}, {9.0, 25.0, 0, 1}, {-3.0, 26.0, 0, 1}, {-2.0, 26.0, 0, 1}, {-1.0, 26.0, 0, 1}, {0.0, 26.0, 0, 1},
+
287 {1.0, 26.0, 0, 1}, {2.0, 26.0, 0, 1}, {3.0, 26.0, 0, 1}, {4.0, 26.0, 0, 1}, {5.0, 26.0, 0, 1}
+
288};
+
289
+
290#endif // CONFIG_3D_OBJECT_ESP_LOGO
+
const float image_3d_matrix_esp_logo[1427][4]
+
const uint8_t image_bmp_array_esp_logo[512]
+ +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html new file mode 100644 index 0000000..422b50f --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html @@ -0,0 +1,178 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_logo.h File Reference
+
+
+
#include <stdint.h>
+#include "sdkconfig.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_bmp_array_esp_logo [512]
const float image_3d_matrix_esp_logo [1427][4]
+

Variable Documentation

+ +

◆ image_3d_matrix_esp_logo

+ +
+
+ + + + + +
+ + + + +
const float image_3d_matrix_esp_logo[1427][4]
+
+extern
+
+ +
+
+ +

◆ image_bmp_array_esp_logo

+ +
+
+ + + + + +
+ + + + +
const uint8_t image_bmp_array_esp_logo[512]
+
+extern
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js new file mode 100644 index 0000000..9bf2808 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.js @@ -0,0 +1,5 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h = +[ + [ "image_3d_matrix_esp_logo", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html#a0c1bdae97dd97515fb28975af15f88a5", null ], + [ "image_bmp_array_esp_logo", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h.html#a77aa593659d7ef40813818a0537f1f97", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 new file mode 100644 index 0000000..8fdf330 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.md5 @@ -0,0 +1 @@ +523131c6363e681f04d5ceb6daf76c33 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg new file mode 100644 index 0000000..48ca6f4 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +esp_logo.c + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg new file mode 100644 index 0000000..1130090 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +esp_logo.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 new file mode 100644 index 0000000..ed0784a --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.md5 @@ -0,0 +1 @@ +923a451f92992b11e32e5a175abbdc9d \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg new file mode 100644 index 0000000..c3361d5 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg new file mode 100644 index 0000000..2791e65 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +esp_logo.h + + +Node1 + + +esp_logo.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html new file mode 100644 index 0000000..4babc8c --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__logo_8h_source.html @@ -0,0 +1,129 @@ + + + + + + + +ESP-IDF Firmware: esp_logo.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_logo.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include <stdint.h>
+
10#include "sdkconfig.h"
+
11
+
12#ifdef __cplusplus
+
13extern "C" {
+
14#endif
+
15
+
16extern const uint8_t image_bmp_array_esp_logo[512];
+
17extern const float image_3d_matrix_esp_logo[1427][4];
+
18
+
19#ifdef __cplusplus
+
20}
+
21#endif
+
const float image_3d_matrix_esp_logo[1427][4]
+
const uint8_t image_bmp_array_esp_logo[512]
+
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html new file mode 100644 index 0000000..95165c5 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html @@ -0,0 +1,431 @@ + + + + + + + +ESP-IDF Firmware: esp_text.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_text.c File Reference
+
+
+
#include "esp_text.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_bmp_array_esp_text [384]
const float image_3d_array_esp_text [1271][4]
+

Variable Documentation

+ +

◆ image_3d_array_esp_text

+ +
+
+ + + + +
const float image_3d_array_esp_text[1271][4]
+
+ +

Definition at line 38 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
38 {
+
39
+
40 {-62.0, -11.0, 0, 1}, {-61.0, -11.0, 0, 1}, {-60.0, -11.0, 0, 1}, {-59.0, -11.0, 0, 1}, {-58.0, -11.0, 0, 1}, {-57.0, -11.0, 0, 1},
+
41 {-56.0, -11.0, 0, 1}, {-55.0, -11.0, 0, 1}, {-54.0, -11.0, 0, 1}, {-53.0, -11.0, 0, 1}, {-52.0, -11.0, 0, 1}, {-47.0, -11.0, 0, 1},
+
42 {-46.0, -11.0, 0, 1}, {-45.0, -11.0, 0, 1}, {-44.0, -11.0, 0, 1}, {-43.0, -11.0, 0, 1}, {-42.0, -11.0, 0, 1}, {-41.0, -11.0, 0, 1},
+
43 {-40.0, -11.0, 0, 1}, {-39.0, -11.0, 0, 1}, {-38.0, -11.0, 0, 1}, {-37.0, -11.0, 0, 1}, {-33.0, -11.0, 0, 1}, {-32.0, -11.0, 0, 1},
+
44 {-31.0, -11.0, 0, 1}, {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1},
+
45 {-25.0, -11.0, 0, 1}, {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1},
+
46 {-15.0, -11.0, 0, 1}, {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1},
+
47 {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1},
+
48 {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1}, {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1},
+
49 {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
50 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1},
+
51 {31.0, -11.0, 0, 1}, {32.0, -11.0, 0, 1}, {33.0, -11.0, 0, 1}, {34.0, -11.0, 0, 1}, {35.0, -11.0, 0, 1}, {36.0, -11.0, 0, 1},
+
52 {37.0, -11.0, 0, 1}, {38.0, -11.0, 0, 1}, {39.0, -11.0, 0, 1}, {40.0, -11.0, 0, 1}, {41.0, -11.0, 0, 1}, {45.0, -11.0, 0, 1},
+
53 {46.0, -11.0, 0, 1}, {47.0, -11.0, 0, 1}, {53.0, -11.0, 0, 1}, {54.0, -11.0, 0, 1}, {55.0, -11.0, 0, 1}, {56.0, -11.0, 0, 1},
+
54 {57.0, -11.0, 0, 1}, {58.0, -11.0, 0, 1}, {59.0, -11.0, 0, 1}, {60.0, -11.0, 0, 1}, {61.0, -11.0, 0, 1}, {62.0, -11.0, 0, 1},
+
55 {-63.0, -10.0, 0, 1}, {-62.0, -10.0, 0, 1}, {-61.0, -10.0, 0, 1}, {-60.0, -10.0, 0, 1}, {-59.0, -10.0, 0, 1}, {-58.0, -10.0, 0, 1},
+
56 {-57.0, -10.0, 0, 1}, {-56.0, -10.0, 0, 1}, {-55.0, -10.0, 0, 1}, {-54.0, -10.0, 0, 1}, {-53.0, -10.0, 0, 1}, {-52.0, -10.0, 0, 1},
+
57 {-48.0, -10.0, 0, 1}, {-47.0, -10.0, 0, 1}, {-46.0, -10.0, 0, 1}, {-45.0, -10.0, 0, 1}, {-44.0, -10.0, 0, 1}, {-43.0, -10.0, 0, 1},
+
58 {-42.0, -10.0, 0, 1}, {-41.0, -10.0, 0, 1}, {-40.0, -10.0, 0, 1}, {-39.0, -10.0, 0, 1}, {-38.0, -10.0, 0, 1}, {-37.0, -10.0, 0, 1},
+
59 {-33.0, -10.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1}, {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1},
+
60 {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1},
+
61 {-21.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1}, {-13.0, -10.0, 0, 1},
+
62 {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1}, {-7.0, -10.0, 0, 1},
+
63 {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1},
+
64 {4.0, -10.0, 0, 1}, {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1},
+
65 {10.0, -10.0, 0, 1}, {15.0, -10.0, 0, 1}, {16.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1},
+
66 {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1},
+
67 {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {32.0, -10.0, 0, 1}, {33.0, -10.0, 0, 1}, {34.0, -10.0, 0, 1}, {35.0, -10.0, 0, 1},
+
68 {36.0, -10.0, 0, 1}, {37.0, -10.0, 0, 1}, {38.0, -10.0, 0, 1}, {39.0, -10.0, 0, 1}, {40.0, -10.0, 0, 1}, {41.0, -10.0, 0, 1},
+
69 {45.0, -10.0, 0, 1}, {46.0, -10.0, 0, 1}, {47.0, -10.0, 0, 1}, {52.0, -10.0, 0, 1}, {53.0, -10.0, 0, 1}, {54.0, -10.0, 0, 1},
+
70 {55.0, -10.0, 0, 1}, {56.0, -10.0, 0, 1}, {57.0, -10.0, 0, 1}, {58.0, -10.0, 0, 1}, {59.0, -10.0, 0, 1}, {60.0, -10.0, 0, 1},
+
71 {61.0, -10.0, 0, 1}, {62.0, -10.0, 0, 1}, {-63.0, -9.0, 0, 1}, {-62.0, -9.0, 0, 1}, {-61.0, -9.0, 0, 1}, {-60.0, -9.0, 0, 1},
+
72 {-59.0, -9.0, 0, 1}, {-58.0, -9.0, 0, 1}, {-57.0, -9.0, 0, 1}, {-56.0, -9.0, 0, 1}, {-55.0, -9.0, 0, 1}, {-54.0, -9.0, 0, 1},
+
73 {-53.0, -9.0, 0, 1}, {-52.0, -9.0, 0, 1}, {-48.0, -9.0, 0, 1}, {-47.0, -9.0, 0, 1}, {-46.0, -9.0, 0, 1}, {-45.0, -9.0, 0, 1},
+
74 {-44.0, -9.0, 0, 1}, {-43.0, -9.0, 0, 1}, {-42.0, -9.0, 0, 1}, {-41.0, -9.0, 0, 1}, {-40.0, -9.0, 0, 1}, {-39.0, -9.0, 0, 1},
+
75 {-38.0, -9.0, 0, 1}, {-37.0, -9.0, 0, 1}, {-33.0, -9.0, 0, 1}, {-32.0, -9.0, 0, 1}, {-31.0, -9.0, 0, 1}, {-30.0, -9.0, 0, 1},
+
76 {-29.0, -9.0, 0, 1}, {-28.0, -9.0, 0, 1}, {-27.0, -9.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-24.0, -9.0, 0, 1},
+
77 {-23.0, -9.0, 0, 1}, {-22.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1},
+
78 {-14.0, -9.0, 0, 1}, {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
79 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1},
+
80 {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1}, {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1},
+
81 {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1}, {10.0, -9.0, 0, 1}, {14.0, -9.0, 0, 1}, {15.0, -9.0, 0, 1},
+
82 {16.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1},
+
83 {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {24.0, -9.0, 0, 1}, {25.0, -9.0, 0, 1}, {30.0, -9.0, 0, 1}, {31.0, -9.0, 0, 1},
+
84 {32.0, -9.0, 0, 1}, {33.0, -9.0, 0, 1}, {34.0, -9.0, 0, 1}, {35.0, -9.0, 0, 1}, {36.0, -9.0, 0, 1}, {37.0, -9.0, 0, 1},
+
85 {38.0, -9.0, 0, 1}, {39.0, -9.0, 0, 1}, {40.0, -9.0, 0, 1}, {41.0, -9.0, 0, 1}, {45.0, -9.0, 0, 1}, {46.0, -9.0, 0, 1},
+
86 {47.0, -9.0, 0, 1}, {51.0, -9.0, 0, 1}, {52.0, -9.0, 0, 1}, {53.0, -9.0, 0, 1}, {54.0, -9.0, 0, 1}, {55.0, -9.0, 0, 1},
+
87 {56.0, -9.0, 0, 1}, {57.0, -9.0, 0, 1}, {58.0, -9.0, 0, 1}, {59.0, -9.0, 0, 1}, {60.0, -9.0, 0, 1}, {61.0, -9.0, 0, 1},
+
88 {62.0, -9.0, 0, 1}, {-63.0, -8.0, 0, 1}, {-62.0, -8.0, 0, 1}, {-61.0, -8.0, 0, 1}, {-48.0, -8.0, 0, 1}, {-47.0, -8.0, 0, 1},
+
89 {-46.0, -8.0, 0, 1}, {-33.0, -8.0, 0, 1}, {-32.0, -8.0, 0, 1}, {-31.0, -8.0, 0, 1}, {-30.0, -8.0, 0, 1}, {-23.0, -8.0, 0, 1},
+
90 {-22.0, -8.0, 0, 1}, {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1}, {-15.0, -8.0, 0, 1},
+
91 {-14.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {0.0, -8.0, 0, 1},
+
92 {1.0, -8.0, 0, 1}, {14.0, -8.0, 0, 1}, {15.0, -8.0, 0, 1}, {16.0, -8.0, 0, 1}, {29.0, -8.0, 0, 1}, {30.0, -8.0, 0, 1},
+
93 {31.0, -8.0, 0, 1}, {32.0, -8.0, 0, 1}, {45.0, -8.0, 0, 1}, {46.0, -8.0, 0, 1}, {47.0, -8.0, 0, 1}, {51.0, -8.0, 0, 1},
+
94 {52.0, -8.0, 0, 1}, {53.0, -8.0, 0, 1}, {54.0, -8.0, 0, 1}, {-63.0, -7.0, 0, 1}, {-62.0, -7.0, 0, 1}, {-61.0, -7.0, 0, 1},
+
95 {-48.0, -7.0, 0, 1}, {-47.0, -7.0, 0, 1}, {-46.0, -7.0, 0, 1}, {-33.0, -7.0, 0, 1}, {-32.0, -7.0, 0, 1}, {-31.0, -7.0, 0, 1},
+
96 {-30.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1},
+
97 {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1}, {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
98 {0.0, -7.0, 0, 1}, {1.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {16.0, -7.0, 0, 1}, {29.0, -7.0, 0, 1},
+
99 {30.0, -7.0, 0, 1}, {31.0, -7.0, 0, 1}, {32.0, -7.0, 0, 1}, {45.0, -7.0, 0, 1}, {46.0, -7.0, 0, 1}, {47.0, -7.0, 0, 1},
+
100 {51.0, -7.0, 0, 1}, {52.0, -7.0, 0, 1}, {53.0, -7.0, 0, 1}, {-63.0, -6.0, 0, 1}, {-62.0, -6.0, 0, 1}, {-61.0, -6.0, 0, 1},
+
101 {-48.0, -6.0, 0, 1}, {-47.0, -6.0, 0, 1}, {-46.0, -6.0, 0, 1}, {-33.0, -6.0, 0, 1}, {-32.0, -6.0, 0, 1}, {-31.0, -6.0, 0, 1},
+
102 {-30.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1}, {-16.0, -6.0, 0, 1},
+
103 {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1},
+
104 {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {16.0, -6.0, 0, 1}, {29.0, -6.0, 0, 1},
+
105 {30.0, -6.0, 0, 1}, {31.0, -6.0, 0, 1}, {32.0, -6.0, 0, 1}, {45.0, -6.0, 0, 1}, {46.0, -6.0, 0, 1}, {47.0, -6.0, 0, 1},
+
106 {51.0, -6.0, 0, 1}, {52.0, -6.0, 0, 1}, {53.0, -6.0, 0, 1}, {-63.0, -5.0, 0, 1}, {-62.0, -5.0, 0, 1}, {-61.0, -5.0, 0, 1},
+
107 {-48.0, -5.0, 0, 1}, {-47.0, -5.0, 0, 1}, {-46.0, -5.0, 0, 1}, {-33.0, -5.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1},
+
108 {-30.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1},
+
109 {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1}, {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-1.0, -5.0, 0, 1},
+
110 {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1}, {16.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1},
+
111 {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {32.0, -5.0, 0, 1}, {45.0, -5.0, 0, 1}, {46.0, -5.0, 0, 1}, {47.0, -5.0, 0, 1},
+
112 {51.0, -5.0, 0, 1}, {52.0, -5.0, 0, 1}, {53.0, -5.0, 0, 1}, {-63.0, -4.0, 0, 1}, {-62.0, -4.0, 0, 1}, {-61.0, -4.0, 0, 1},
+
113 {-48.0, -4.0, 0, 1}, {-47.0, -4.0, 0, 1}, {-46.0, -4.0, 0, 1}, {-33.0, -4.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
114 {-30.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1},
+
115 {-15.0, -4.0, 0, 1}, {-14.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1},
+
116 {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1},
+
117 {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1}, {32.0, -4.0, 0, 1}, {45.0, -4.0, 0, 1}, {46.0, -4.0, 0, 1}, {47.0, -4.0, 0, 1},
+
118 {51.0, -4.0, 0, 1}, {52.0, -4.0, 0, 1}, {53.0, -4.0, 0, 1}, {-63.0, -3.0, 0, 1}, {-62.0, -3.0, 0, 1}, {-61.0, -3.0, 0, 1},
+
119 {-48.0, -3.0, 0, 1}, {-47.0, -3.0, 0, 1}, {-46.0, -3.0, 0, 1}, {-33.0, -3.0, 0, 1}, {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1},
+
120 {-30.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
121 {-15.0, -3.0, 0, 1}, {-14.0, -3.0, 0, 1}, {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-1.0, -3.0, 0, 1},
+
122 {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1}, {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
123 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {32.0, -3.0, 0, 1}, {45.0, -3.0, 0, 1}, {46.0, -3.0, 0, 1}, {47.0, -3.0, 0, 1},
+
124 {51.0, -3.0, 0, 1}, {52.0, -3.0, 0, 1}, {53.0, -3.0, 0, 1}, {-63.0, -2.0, 0, 1}, {-62.0, -2.0, 0, 1}, {-61.0, -2.0, 0, 1},
+
125 {-60.0, -2.0, 0, 1}, {-59.0, -2.0, 0, 1}, {-58.0, -2.0, 0, 1}, {-57.0, -2.0, 0, 1}, {-56.0, -2.0, 0, 1}, {-55.0, -2.0, 0, 1},
+
126 {-54.0, -2.0, 0, 1}, {-53.0, -2.0, 0, 1}, {-48.0, -2.0, 0, 1}, {-47.0, -2.0, 0, 1}, {-46.0, -2.0, 0, 1}, {-45.0, -2.0, 0, 1},
+
127 {-44.0, -2.0, 0, 1}, {-43.0, -2.0, 0, 1}, {-42.0, -2.0, 0, 1}, {-41.0, -2.0, 0, 1}, {-40.0, -2.0, 0, 1}, {-39.0, -2.0, 0, 1},
+
128 {-38.0, -2.0, 0, 1}, {-33.0, -2.0, 0, 1}, {-32.0, -2.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1},
+
129 {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
130 {-14.0, -2.0, 0, 1}, {-7.0, -2.0, 0, 1}, {-6.0, -2.0, 0, 1}, {-5.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
131 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {6.0, -2.0, 0, 1},
+
132 {7.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
133 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
134 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {30.0, -2.0, 0, 1}, {31.0, -2.0, 0, 1}, {32.0, -2.0, 0, 1}, {33.0, -2.0, 0, 1},
+
135 {34.0, -2.0, 0, 1}, {35.0, -2.0, 0, 1}, {36.0, -2.0, 0, 1}, {37.0, -2.0, 0, 1}, {38.0, -2.0, 0, 1}, {39.0, -2.0, 0, 1},
+
136 {40.0, -2.0, 0, 1}, {45.0, -2.0, 0, 1}, {46.0, -2.0, 0, 1}, {47.0, -2.0, 0, 1}, {51.0, -2.0, 0, 1}, {52.0, -2.0, 0, 1},
+
137 {53.0, -2.0, 0, 1}, {54.0, -2.0, 0, 1}, {55.0, -2.0, 0, 1}, {56.0, -2.0, 0, 1}, {57.0, -2.0, 0, 1}, {58.0, -2.0, 0, 1},
+
138 {59.0, -2.0, 0, 1}, {60.0, -2.0, 0, 1}, {61.0, -2.0, 0, 1}, {-63.0, -1.0, 0, 1}, {-62.0, -1.0, 0, 1}, {-61.0, -1.0, 0, 1},
+
139 {-60.0, -1.0, 0, 1}, {-59.0, -1.0, 0, 1}, {-58.0, -1.0, 0, 1}, {-57.0, -1.0, 0, 1}, {-56.0, -1.0, 0, 1}, {-55.0, -1.0, 0, 1},
+
140 {-54.0, -1.0, 0, 1}, {-53.0, -1.0, 0, 1}, {-48.0, -1.0, 0, 1}, {-47.0, -1.0, 0, 1}, {-46.0, -1.0, 0, 1}, {-45.0, -1.0, 0, 1},
+
141 {-44.0, -1.0, 0, 1}, {-43.0, -1.0, 0, 1}, {-42.0, -1.0, 0, 1}, {-41.0, -1.0, 0, 1}, {-40.0, -1.0, 0, 1}, {-39.0, -1.0, 0, 1},
+
142 {-38.0, -1.0, 0, 1}, {-37.0, -1.0, 0, 1}, {-33.0, -1.0, 0, 1}, {-32.0, -1.0, 0, 1}, {-31.0, -1.0, 0, 1}, {-30.0, -1.0, 0, 1},
+
143 {-29.0, -1.0, 0, 1}, {-28.0, -1.0, 0, 1}, {-27.0, -1.0, 0, 1}, {-26.0, -1.0, 0, 1}, {-25.0, -1.0, 0, 1}, {-24.0, -1.0, 0, 1},
+
144 {-23.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1},
+
145 {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1}, {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1},
+
146 {-9.0, -1.0, 0, 1}, {-8.0, -1.0, 0, 1}, {-7.0, -1.0, 0, 1}, {-6.0, -1.0, 0, 1}, {-5.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1},
+
147 {0.0, -1.0, 0, 1}, {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1},
+
148 {6.0, -1.0, 0, 1}, {7.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
149 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {21.0, -1.0, 0, 1},
+
150 {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1}, {25.0, -1.0, 0, 1}, {30.0, -1.0, 0, 1}, {31.0, -1.0, 0, 1},
+
151 {32.0, -1.0, 0, 1}, {33.0, -1.0, 0, 1}, {34.0, -1.0, 0, 1}, {35.0, -1.0, 0, 1}, {36.0, -1.0, 0, 1}, {37.0, -1.0, 0, 1},
+
152 {38.0, -1.0, 0, 1}, {39.0, -1.0, 0, 1}, {40.0, -1.0, 0, 1}, {41.0, -1.0, 0, 1}, {45.0, -1.0, 0, 1}, {46.0, -1.0, 0, 1},
+
153 {47.0, -1.0, 0, 1}, {51.0, -1.0, 0, 1}, {52.0, -1.0, 0, 1}, {53.0, -1.0, 0, 1}, {54.0, -1.0, 0, 1}, {55.0, -1.0, 0, 1},
+
154 {56.0, -1.0, 0, 1}, {57.0, -1.0, 0, 1}, {58.0, -1.0, 0, 1}, {59.0, -1.0, 0, 1}, {60.0, -1.0, 0, 1}, {61.0, -1.0, 0, 1},
+
155 {-63.0, 0.0, 0, 1}, {-62.0, 0.0, 0, 1}, {-61.0, 0.0, 0, 1}, {-60.0, 0.0, 0, 1}, {-59.0, 0.0, 0, 1}, {-58.0, 0.0, 0, 1},
+
156 {-57.0, 0.0, 0, 1}, {-56.0, 0.0, 0, 1}, {-55.0, 0.0, 0, 1}, {-54.0, 0.0, 0, 1}, {-53.0, 0.0, 0, 1}, {-47.0, 0.0, 0, 1},
+
157 {-46.0, 0.0, 0, 1}, {-45.0, 0.0, 0, 1}, {-44.0, 0.0, 0, 1}, {-43.0, 0.0, 0, 1}, {-42.0, 0.0, 0, 1}, {-41.0, 0.0, 0, 1},
+
158 {-40.0, 0.0, 0, 1}, {-39.0, 0.0, 0, 1}, {-38.0, 0.0, 0, 1}, {-37.0, 0.0, 0, 1}, {-33.0, 0.0, 0, 1}, {-32.0, 0.0, 0, 1},
+
159 {-31.0, 0.0, 0, 1}, {-30.0, 0.0, 0, 1}, {-29.0, 0.0, 0, 1}, {-28.0, 0.0, 0, 1}, {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1},
+
160 {-25.0, 0.0, 0, 1}, {-24.0, 0.0, 0, 1}, {-23.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1},
+
161 {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1},
+
162 {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-8.0, 0.0, 0, 1}, {-7.0, 0.0, 0, 1}, {-6.0, 0.0, 0, 1}, {-5.0, 0.0, 0, 1},
+
163 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
164 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1},
+
165 {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {21.0, 0.0, 0, 1},
+
166 {22.0, 0.0, 0, 1}, {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {25.0, 0.0, 0, 1}, {26.0, 0.0, 0, 1}, {31.0, 0.0, 0, 1},
+
167 {32.0, 0.0, 0, 1}, {33.0, 0.0, 0, 1}, {34.0, 0.0, 0, 1}, {35.0, 0.0, 0, 1}, {36.0, 0.0, 0, 1}, {37.0, 0.0, 0, 1},
+
168 {38.0, 0.0, 0, 1}, {39.0, 0.0, 0, 1}, {40.0, 0.0, 0, 1}, {41.0, 0.0, 0, 1}, {45.0, 0.0, 0, 1}, {46.0, 0.0, 0, 1},
+
169 {47.0, 0.0, 0, 1}, {51.0, 0.0, 0, 1}, {52.0, 0.0, 0, 1}, {53.0, 0.0, 0, 1}, {54.0, 0.0, 0, 1}, {55.0, 0.0, 0, 1},
+
170 {56.0, 0.0, 0, 1}, {57.0, 0.0, 0, 1}, {58.0, 0.0, 0, 1}, {59.0, 0.0, 0, 1}, {60.0, 0.0, 0, 1}, {61.0, 0.0, 0, 1},
+
171 {-63.0, 1.0, 0, 1}, {-62.0, 1.0, 0, 1}, {-61.0, 1.0, 0, 1}, {-39.0, 1.0, 0, 1}, {-38.0, 1.0, 0, 1}, {-37.0, 1.0, 0, 1},
+
172 {-36.0, 1.0, 0, 1}, {-33.0, 1.0, 0, 1}, {-32.0, 1.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
173 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
174 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1}, {-14.0, 1.0, 0, 1},
+
175 {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {-8.0, 1.0, 0, 1},
+
176 {-7.0, 1.0, 0, 1}, {-6.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1},
+
177 {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {38.0, 1.0, 0, 1}, {39.0, 1.0, 0, 1}, {40.0, 1.0, 0, 1},
+
178 {41.0, 1.0, 0, 1}, {45.0, 1.0, 0, 1}, {46.0, 1.0, 0, 1}, {47.0, 1.0, 0, 1}, {51.0, 1.0, 0, 1}, {52.0, 1.0, 0, 1},
+
179 {53.0, 1.0, 0, 1}, {-63.0, 2.0, 0, 1}, {-62.0, 2.0, 0, 1}, {-61.0, 2.0, 0, 1}, {-39.0, 2.0, 0, 1}, {-38.0, 2.0, 0, 1},
+
180 {-37.0, 2.0, 0, 1}, {-36.0, 2.0, 0, 1}, {-33.0, 2.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
181 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
182 {-23.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1},
+
183 {-8.0, 2.0, 0, 1}, {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1},
+
184 {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1}, {39.0, 2.0, 0, 1}, {40.0, 2.0, 0, 1}, {41.0, 2.0, 0, 1},
+
185 {45.0, 2.0, 0, 1}, {46.0, 2.0, 0, 1}, {47.0, 2.0, 0, 1}, {51.0, 2.0, 0, 1}, {52.0, 2.0, 0, 1}, {53.0, 2.0, 0, 1},
+
186 {-63.0, 3.0, 0, 1}, {-62.0, 3.0, 0, 1}, {-61.0, 3.0, 0, 1}, {-39.0, 3.0, 0, 1}, {-38.0, 3.0, 0, 1}, {-37.0, 3.0, 0, 1},
+
187 {-36.0, 3.0, 0, 1}, {-33.0, 3.0, 0, 1}, {-32.0, 3.0, 0, 1}, {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1},
+
188 {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1}, {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1},
+
189 {-1.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1}, {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1},
+
190 {39.0, 3.0, 0, 1}, {40.0, 3.0, 0, 1}, {41.0, 3.0, 0, 1}, {45.0, 3.0, 0, 1}, {46.0, 3.0, 0, 1}, {47.0, 3.0, 0, 1},
+
191 {51.0, 3.0, 0, 1}, {52.0, 3.0, 0, 1}, {53.0, 3.0, 0, 1}, {-63.0, 4.0, 0, 1}, {-62.0, 4.0, 0, 1}, {-61.0, 4.0, 0, 1},
+
192 {-39.0, 4.0, 0, 1}, {-38.0, 4.0, 0, 1}, {-37.0, 4.0, 0, 1}, {-36.0, 4.0, 0, 1}, {-33.0, 4.0, 0, 1}, {-32.0, 4.0, 0, 1},
+
193 {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1},
+
194 {-7.0, 4.0, 0, 1}, {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-1.0, 4.0, 0, 1}, {0.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1},
+
195 {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {39.0, 4.0, 0, 1}, {40.0, 4.0, 0, 1}, {41.0, 4.0, 0, 1},
+
196 {45.0, 4.0, 0, 1}, {46.0, 4.0, 0, 1}, {47.0, 4.0, 0, 1}, {51.0, 4.0, 0, 1}, {52.0, 4.0, 0, 1}, {53.0, 4.0, 0, 1},
+
197 {-63.0, 5.0, 0, 1}, {-62.0, 5.0, 0, 1}, {-61.0, 5.0, 0, 1}, {-39.0, 5.0, 0, 1}, {-38.0, 5.0, 0, 1}, {-37.0, 5.0, 0, 1},
+
198 {-36.0, 5.0, 0, 1}, {-33.0, 5.0, 0, 1}, {-32.0, 5.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1},
+
199 {-16.0, 5.0, 0, 1}, {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1},
+
200 {-1.0, 5.0, 0, 1}, {0.0, 5.0, 0, 1}, {1.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1},
+
201 {39.0, 5.0, 0, 1}, {40.0, 5.0, 0, 1}, {41.0, 5.0, 0, 1}, {45.0, 5.0, 0, 1}, {46.0, 5.0, 0, 1}, {47.0, 5.0, 0, 1},
+
202 {51.0, 5.0, 0, 1}, {52.0, 5.0, 0, 1}, {53.0, 5.0, 0, 1}, {-63.0, 6.0, 0, 1}, {-62.0, 6.0, 0, 1}, {-61.0, 6.0, 0, 1},
+
203 {-39.0, 6.0, 0, 1}, {-38.0, 6.0, 0, 1}, {-37.0, 6.0, 0, 1}, {-36.0, 6.0, 0, 1}, {-33.0, 6.0, 0, 1}, {-32.0, 6.0, 0, 1},
+
204 {-31.0, 6.0, 0, 1}, {-30.0, 6.0, 0, 1}, {-17.0, 6.0, 0, 1}, {-16.0, 6.0, 0, 1}, {-15.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1},
+
205 {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-1.0, 6.0, 0, 1}, {0.0, 6.0, 0, 1}, {1.0, 6.0, 0, 1},
+
206 {24.0, 6.0, 0, 1}, {25.0, 6.0, 0, 1}, {26.0, 6.0, 0, 1}, {39.0, 6.0, 0, 1}, {40.0, 6.0, 0, 1}, {41.0, 6.0, 0, 1},
+
207 {45.0, 6.0, 0, 1}, {46.0, 6.0, 0, 1}, {47.0, 6.0, 0, 1}, {51.0, 6.0, 0, 1}, {52.0, 6.0, 0, 1}, {53.0, 6.0, 0, 1},
+
208 {-63.0, 7.0, 0, 1}, {-62.0, 7.0, 0, 1}, {-61.0, 7.0, 0, 1}, {-39.0, 7.0, 0, 1}, {-38.0, 7.0, 0, 1}, {-37.0, 7.0, 0, 1},
+
209 {-36.0, 7.0, 0, 1}, {-33.0, 7.0, 0, 1}, {-32.0, 7.0, 0, 1}, {-31.0, 7.0, 0, 1}, {-30.0, 7.0, 0, 1}, {-17.0, 7.0, 0, 1},
+
210 {-16.0, 7.0, 0, 1}, {-15.0, 7.0, 0, 1}, {-14.0, 7.0, 0, 1}, {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1},
+
211 {-1.0, 7.0, 0, 1}, {0.0, 7.0, 0, 1}, {1.0, 7.0, 0, 1}, {24.0, 7.0, 0, 1}, {25.0, 7.0, 0, 1}, {26.0, 7.0, 0, 1},
+
212 {39.0, 7.0, 0, 1}, {40.0, 7.0, 0, 1}, {41.0, 7.0, 0, 1}, {45.0, 7.0, 0, 1}, {46.0, 7.0, 0, 1}, {47.0, 7.0, 0, 1},
+
213 {51.0, 7.0, 0, 1}, {52.0, 7.0, 0, 1}, {53.0, 7.0, 0, 1}, {-63.0, 8.0, 0, 1}, {-62.0, 8.0, 0, 1}, {-61.0, 8.0, 0, 1},
+
214 {-60.0, 8.0, 0, 1}, {-59.0, 8.0, 0, 1}, {-58.0, 8.0, 0, 1}, {-57.0, 8.0, 0, 1}, {-56.0, 8.0, 0, 1}, {-55.0, 8.0, 0, 1},
+
215 {-54.0, 8.0, 0, 1}, {-53.0, 8.0, 0, 1}, {-52.0, 8.0, 0, 1}, {-48.0, 8.0, 0, 1}, {-47.0, 8.0, 0, 1}, {-46.0, 8.0, 0, 1},
+
216 {-45.0, 8.0, 0, 1}, {-44.0, 8.0, 0, 1}, {-43.0, 8.0, 0, 1}, {-42.0, 8.0, 0, 1}, {-41.0, 8.0, 0, 1}, {-40.0, 8.0, 0, 1},
+
217 {-39.0, 8.0, 0, 1}, {-38.0, 8.0, 0, 1}, {-37.0, 8.0, 0, 1}, {-33.0, 8.0, 0, 1}, {-32.0, 8.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
218 {-30.0, 8.0, 0, 1}, {-17.0, 8.0, 0, 1}, {-16.0, 8.0, 0, 1}, {-15.0, 8.0, 0, 1}, {-14.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1},
+
219 {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1},
+
220 {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1}, {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1},
+
221 {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1}, {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1},
+
222 {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {22.0, 8.0, 0, 1},
+
223 {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {30.0, 8.0, 0, 1},
+
224 {31.0, 8.0, 0, 1}, {32.0, 8.0, 0, 1}, {33.0, 8.0, 0, 1}, {34.0, 8.0, 0, 1}, {35.0, 8.0, 0, 1}, {36.0, 8.0, 0, 1},
+
225 {37.0, 8.0, 0, 1}, {38.0, 8.0, 0, 1}, {39.0, 8.0, 0, 1}, {40.0, 8.0, 0, 1}, {41.0, 8.0, 0, 1}, {45.0, 8.0, 0, 1},
+
226 {46.0, 8.0, 0, 1}, {47.0, 8.0, 0, 1}, {51.0, 8.0, 0, 1}, {52.0, 8.0, 0, 1}, {53.0, 8.0, 0, 1}, {-63.0, 9.0, 0, 1},
+
227 {-62.0, 9.0, 0, 1}, {-61.0, 9.0, 0, 1}, {-60.0, 9.0, 0, 1}, {-59.0, 9.0, 0, 1}, {-58.0, 9.0, 0, 1}, {-57.0, 9.0, 0, 1},
+
228 {-56.0, 9.0, 0, 1}, {-55.0, 9.0, 0, 1}, {-54.0, 9.0, 0, 1}, {-53.0, 9.0, 0, 1}, {-52.0, 9.0, 0, 1}, {-48.0, 9.0, 0, 1},
+
229 {-47.0, 9.0, 0, 1}, {-46.0, 9.0, 0, 1}, {-45.0, 9.0, 0, 1}, {-44.0, 9.0, 0, 1}, {-43.0, 9.0, 0, 1}, {-42.0, 9.0, 0, 1},
+
230 {-41.0, 9.0, 0, 1}, {-40.0, 9.0, 0, 1}, {-39.0, 9.0, 0, 1}, {-38.0, 9.0, 0, 1}, {-37.0, 9.0, 0, 1}, {-33.0, 9.0, 0, 1},
+
231 {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-17.0, 9.0, 0, 1}, {-16.0, 9.0, 0, 1}, {-15.0, 9.0, 0, 1},
+
232 {-14.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1}, {1.0, 9.0, 0, 1},
+
233 {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1}, {7.0, 9.0, 0, 1},
+
234 {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1}, {16.0, 9.0, 0, 1},
+
235 {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1},
+
236 {23.0, 9.0, 0, 1}, {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1}, {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1},
+
237 {32.0, 9.0, 0, 1}, {33.0, 9.0, 0, 1}, {34.0, 9.0, 0, 1}, {35.0, 9.0, 0, 1}, {36.0, 9.0, 0, 1}, {37.0, 9.0, 0, 1},
+
238 {38.0, 9.0, 0, 1}, {39.0, 9.0, 0, 1}, {40.0, 9.0, 0, 1}, {41.0, 9.0, 0, 1}, {45.0, 9.0, 0, 1}, {46.0, 9.0, 0, 1},
+
239 {47.0, 9.0, 0, 1}, {51.0, 9.0, 0, 1}, {52.0, 9.0, 0, 1}, {53.0, 9.0, 0, 1}, {-62.0, 10.0, 0, 1}, {-61.0, 10.0, 0, 1},
+
240 {-60.0, 10.0, 0, 1}, {-59.0, 10.0, 0, 1}, {-58.0, 10.0, 0, 1}, {-57.0, 10.0, 0, 1}, {-56.0, 10.0, 0, 1}, {-55.0, 10.0, 0, 1},
+
241 {-54.0, 10.0, 0, 1}, {-53.0, 10.0, 0, 1}, {-52.0, 10.0, 0, 1}, {-48.0, 10.0, 0, 1}, {-47.0, 10.0, 0, 1}, {-46.0, 10.0, 0, 1},
+
242 {-45.0, 10.0, 0, 1}, {-44.0, 10.0, 0, 1}, {-43.0, 10.0, 0, 1}, {-42.0, 10.0, 0, 1}, {-41.0, 10.0, 0, 1}, {-40.0, 10.0, 0, 1},
+
243 {-39.0, 10.0, 0, 1}, {-38.0, 10.0, 0, 1}, {-33.0, 10.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1},
+
244 {-17.0, 10.0, 0, 1}, {-16.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1},
+
245 {-4.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1}, {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1},
+
246 {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1},
+
247 {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1},
+
248 {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1}, {24.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
249 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {32.0, 10.0, 0, 1}, {33.0, 10.0, 0, 1}, {34.0, 10.0, 0, 1}, {35.0, 10.0, 0, 1},
+
250 {36.0, 10.0, 0, 1}, {37.0, 10.0, 0, 1}, {38.0, 10.0, 0, 1}, {39.0, 10.0, 0, 1}, {40.0, 10.0, 0, 1}, {45.0, 10.0, 0, 1},
+
251 {46.0, 10.0, 0, 1}, {47.0, 10.0, 0, 1}, {51.0, 10.0, 0, 1}, {52.0, 10.0, 0, 1}, {53.0, 10.0, 0, 1}
+
252};
+
+
+
+ +

◆ image_bmp_array_esp_text

+ +
+
+ + + + +
const uint8_t image_bmp_array_esp_text[384]
+
+Initial value:
= {
+
+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+
}
+
+

Definition at line 9 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
9 {
+
10
+
11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
12 0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
13 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
14 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
15 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
16 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
17 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
18 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
19 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
20 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
21 0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
22 0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
23 0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
24 0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
25 0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
26 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
27 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
28 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
29 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
30 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
31 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
32 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
33 0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
35
+
36};
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js new file mode 100644 index 0000000..346b36f --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.js @@ -0,0 +1,5 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c = +[ + [ "image_3d_array_esp_text", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html#aca921c7ba529f39acf0b48eddef96266", null ], + [ "image_bmp_array_esp_text", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c.html#ace7ab8bb5752781ce55ed3b3f7b01c06", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 new file mode 100644 index 0000000..921cc54 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.md5 @@ -0,0 +1 @@ +bb2e5301e14092543a1673e7e5dcc891 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg new file mode 100644 index 0000000..c0eb9bf --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +esp_text.c + + +Node1 + + +esp_text.c + + + + + +Node2 + + +esp_text.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg new file mode 100644 index 0000000..c732250 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +esp_text.c + + +Node1 + + +esp_text.c + + + + + +Node2 + + +esp_text.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html new file mode 100644 index 0000000..bcff9f4 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8c_source.html @@ -0,0 +1,365 @@ + + + + + + + +ESP-IDF Firmware: esp_text.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "esp_text.h"
+
8
+
+
9const uint8_t image_bmp_array_esp_text[384] = {
+
10
+
11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
12 0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
13 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
14 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
15 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
16 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
17 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
18 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
19 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
20 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
21 0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
22 0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
23 0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
24 0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
25 0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
26 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
27 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
28 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
29 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
30 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
31 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
32 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
33 0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
35
+
36};
+
+
37
+
+
38const float image_3d_array_esp_text[1271][4] = {
+
39
+
40 {-62.0, -11.0, 0, 1}, {-61.0, -11.0, 0, 1}, {-60.0, -11.0, 0, 1}, {-59.0, -11.0, 0, 1}, {-58.0, -11.0, 0, 1}, {-57.0, -11.0, 0, 1},
+
41 {-56.0, -11.0, 0, 1}, {-55.0, -11.0, 0, 1}, {-54.0, -11.0, 0, 1}, {-53.0, -11.0, 0, 1}, {-52.0, -11.0, 0, 1}, {-47.0, -11.0, 0, 1},
+
42 {-46.0, -11.0, 0, 1}, {-45.0, -11.0, 0, 1}, {-44.0, -11.0, 0, 1}, {-43.0, -11.0, 0, 1}, {-42.0, -11.0, 0, 1}, {-41.0, -11.0, 0, 1},
+
43 {-40.0, -11.0, 0, 1}, {-39.0, -11.0, 0, 1}, {-38.0, -11.0, 0, 1}, {-37.0, -11.0, 0, 1}, {-33.0, -11.0, 0, 1}, {-32.0, -11.0, 0, 1},
+
44 {-31.0, -11.0, 0, 1}, {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1},
+
45 {-25.0, -11.0, 0, 1}, {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1},
+
46 {-15.0, -11.0, 0, 1}, {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1},
+
47 {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1},
+
48 {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1}, {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1},
+
49 {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
50 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1},
+
51 {31.0, -11.0, 0, 1}, {32.0, -11.0, 0, 1}, {33.0, -11.0, 0, 1}, {34.0, -11.0, 0, 1}, {35.0, -11.0, 0, 1}, {36.0, -11.0, 0, 1},
+
52 {37.0, -11.0, 0, 1}, {38.0, -11.0, 0, 1}, {39.0, -11.0, 0, 1}, {40.0, -11.0, 0, 1}, {41.0, -11.0, 0, 1}, {45.0, -11.0, 0, 1},
+
53 {46.0, -11.0, 0, 1}, {47.0, -11.0, 0, 1}, {53.0, -11.0, 0, 1}, {54.0, -11.0, 0, 1}, {55.0, -11.0, 0, 1}, {56.0, -11.0, 0, 1},
+
54 {57.0, -11.0, 0, 1}, {58.0, -11.0, 0, 1}, {59.0, -11.0, 0, 1}, {60.0, -11.0, 0, 1}, {61.0, -11.0, 0, 1}, {62.0, -11.0, 0, 1},
+
55 {-63.0, -10.0, 0, 1}, {-62.0, -10.0, 0, 1}, {-61.0, -10.0, 0, 1}, {-60.0, -10.0, 0, 1}, {-59.0, -10.0, 0, 1}, {-58.0, -10.0, 0, 1},
+
56 {-57.0, -10.0, 0, 1}, {-56.0, -10.0, 0, 1}, {-55.0, -10.0, 0, 1}, {-54.0, -10.0, 0, 1}, {-53.0, -10.0, 0, 1}, {-52.0, -10.0, 0, 1},
+
57 {-48.0, -10.0, 0, 1}, {-47.0, -10.0, 0, 1}, {-46.0, -10.0, 0, 1}, {-45.0, -10.0, 0, 1}, {-44.0, -10.0, 0, 1}, {-43.0, -10.0, 0, 1},
+
58 {-42.0, -10.0, 0, 1}, {-41.0, -10.0, 0, 1}, {-40.0, -10.0, 0, 1}, {-39.0, -10.0, 0, 1}, {-38.0, -10.0, 0, 1}, {-37.0, -10.0, 0, 1},
+
59 {-33.0, -10.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1}, {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1},
+
60 {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1},
+
61 {-21.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1}, {-13.0, -10.0, 0, 1},
+
62 {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1}, {-7.0, -10.0, 0, 1},
+
63 {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1},
+
64 {4.0, -10.0, 0, 1}, {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1},
+
65 {10.0, -10.0, 0, 1}, {15.0, -10.0, 0, 1}, {16.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1},
+
66 {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1},
+
67 {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {32.0, -10.0, 0, 1}, {33.0, -10.0, 0, 1}, {34.0, -10.0, 0, 1}, {35.0, -10.0, 0, 1},
+
68 {36.0, -10.0, 0, 1}, {37.0, -10.0, 0, 1}, {38.0, -10.0, 0, 1}, {39.0, -10.0, 0, 1}, {40.0, -10.0, 0, 1}, {41.0, -10.0, 0, 1},
+
69 {45.0, -10.0, 0, 1}, {46.0, -10.0, 0, 1}, {47.0, -10.0, 0, 1}, {52.0, -10.0, 0, 1}, {53.0, -10.0, 0, 1}, {54.0, -10.0, 0, 1},
+
70 {55.0, -10.0, 0, 1}, {56.0, -10.0, 0, 1}, {57.0, -10.0, 0, 1}, {58.0, -10.0, 0, 1}, {59.0, -10.0, 0, 1}, {60.0, -10.0, 0, 1},
+
71 {61.0, -10.0, 0, 1}, {62.0, -10.0, 0, 1}, {-63.0, -9.0, 0, 1}, {-62.0, -9.0, 0, 1}, {-61.0, -9.0, 0, 1}, {-60.0, -9.0, 0, 1},
+
72 {-59.0, -9.0, 0, 1}, {-58.0, -9.0, 0, 1}, {-57.0, -9.0, 0, 1}, {-56.0, -9.0, 0, 1}, {-55.0, -9.0, 0, 1}, {-54.0, -9.0, 0, 1},
+
73 {-53.0, -9.0, 0, 1}, {-52.0, -9.0, 0, 1}, {-48.0, -9.0, 0, 1}, {-47.0, -9.0, 0, 1}, {-46.0, -9.0, 0, 1}, {-45.0, -9.0, 0, 1},
+
74 {-44.0, -9.0, 0, 1}, {-43.0, -9.0, 0, 1}, {-42.0, -9.0, 0, 1}, {-41.0, -9.0, 0, 1}, {-40.0, -9.0, 0, 1}, {-39.0, -9.0, 0, 1},
+
75 {-38.0, -9.0, 0, 1}, {-37.0, -9.0, 0, 1}, {-33.0, -9.0, 0, 1}, {-32.0, -9.0, 0, 1}, {-31.0, -9.0, 0, 1}, {-30.0, -9.0, 0, 1},
+
76 {-29.0, -9.0, 0, 1}, {-28.0, -9.0, 0, 1}, {-27.0, -9.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-24.0, -9.0, 0, 1},
+
77 {-23.0, -9.0, 0, 1}, {-22.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1},
+
78 {-14.0, -9.0, 0, 1}, {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
79 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1},
+
80 {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1}, {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1},
+
81 {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1}, {10.0, -9.0, 0, 1}, {14.0, -9.0, 0, 1}, {15.0, -9.0, 0, 1},
+
82 {16.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1},
+
83 {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {24.0, -9.0, 0, 1}, {25.0, -9.0, 0, 1}, {30.0, -9.0, 0, 1}, {31.0, -9.0, 0, 1},
+
84 {32.0, -9.0, 0, 1}, {33.0, -9.0, 0, 1}, {34.0, -9.0, 0, 1}, {35.0, -9.0, 0, 1}, {36.0, -9.0, 0, 1}, {37.0, -9.0, 0, 1},
+
85 {38.0, -9.0, 0, 1}, {39.0, -9.0, 0, 1}, {40.0, -9.0, 0, 1}, {41.0, -9.0, 0, 1}, {45.0, -9.0, 0, 1}, {46.0, -9.0, 0, 1},
+
86 {47.0, -9.0, 0, 1}, {51.0, -9.0, 0, 1}, {52.0, -9.0, 0, 1}, {53.0, -9.0, 0, 1}, {54.0, -9.0, 0, 1}, {55.0, -9.0, 0, 1},
+
87 {56.0, -9.0, 0, 1}, {57.0, -9.0, 0, 1}, {58.0, -9.0, 0, 1}, {59.0, -9.0, 0, 1}, {60.0, -9.0, 0, 1}, {61.0, -9.0, 0, 1},
+
88 {62.0, -9.0, 0, 1}, {-63.0, -8.0, 0, 1}, {-62.0, -8.0, 0, 1}, {-61.0, -8.0, 0, 1}, {-48.0, -8.0, 0, 1}, {-47.0, -8.0, 0, 1},
+
89 {-46.0, -8.0, 0, 1}, {-33.0, -8.0, 0, 1}, {-32.0, -8.0, 0, 1}, {-31.0, -8.0, 0, 1}, {-30.0, -8.0, 0, 1}, {-23.0, -8.0, 0, 1},
+
90 {-22.0, -8.0, 0, 1}, {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1}, {-15.0, -8.0, 0, 1},
+
91 {-14.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {0.0, -8.0, 0, 1},
+
92 {1.0, -8.0, 0, 1}, {14.0, -8.0, 0, 1}, {15.0, -8.0, 0, 1}, {16.0, -8.0, 0, 1}, {29.0, -8.0, 0, 1}, {30.0, -8.0, 0, 1},
+
93 {31.0, -8.0, 0, 1}, {32.0, -8.0, 0, 1}, {45.0, -8.0, 0, 1}, {46.0, -8.0, 0, 1}, {47.0, -8.0, 0, 1}, {51.0, -8.0, 0, 1},
+
94 {52.0, -8.0, 0, 1}, {53.0, -8.0, 0, 1}, {54.0, -8.0, 0, 1}, {-63.0, -7.0, 0, 1}, {-62.0, -7.0, 0, 1}, {-61.0, -7.0, 0, 1},
+
95 {-48.0, -7.0, 0, 1}, {-47.0, -7.0, 0, 1}, {-46.0, -7.0, 0, 1}, {-33.0, -7.0, 0, 1}, {-32.0, -7.0, 0, 1}, {-31.0, -7.0, 0, 1},
+
96 {-30.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1},
+
97 {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1}, {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
98 {0.0, -7.0, 0, 1}, {1.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {16.0, -7.0, 0, 1}, {29.0, -7.0, 0, 1},
+
99 {30.0, -7.0, 0, 1}, {31.0, -7.0, 0, 1}, {32.0, -7.0, 0, 1}, {45.0, -7.0, 0, 1}, {46.0, -7.0, 0, 1}, {47.0, -7.0, 0, 1},
+
100 {51.0, -7.0, 0, 1}, {52.0, -7.0, 0, 1}, {53.0, -7.0, 0, 1}, {-63.0, -6.0, 0, 1}, {-62.0, -6.0, 0, 1}, {-61.0, -6.0, 0, 1},
+
101 {-48.0, -6.0, 0, 1}, {-47.0, -6.0, 0, 1}, {-46.0, -6.0, 0, 1}, {-33.0, -6.0, 0, 1}, {-32.0, -6.0, 0, 1}, {-31.0, -6.0, 0, 1},
+
102 {-30.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1}, {-16.0, -6.0, 0, 1},
+
103 {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1},
+
104 {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {16.0, -6.0, 0, 1}, {29.0, -6.0, 0, 1},
+
105 {30.0, -6.0, 0, 1}, {31.0, -6.0, 0, 1}, {32.0, -6.0, 0, 1}, {45.0, -6.0, 0, 1}, {46.0, -6.0, 0, 1}, {47.0, -6.0, 0, 1},
+
106 {51.0, -6.0, 0, 1}, {52.0, -6.0, 0, 1}, {53.0, -6.0, 0, 1}, {-63.0, -5.0, 0, 1}, {-62.0, -5.0, 0, 1}, {-61.0, -5.0, 0, 1},
+
107 {-48.0, -5.0, 0, 1}, {-47.0, -5.0, 0, 1}, {-46.0, -5.0, 0, 1}, {-33.0, -5.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1},
+
108 {-30.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1},
+
109 {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1}, {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-1.0, -5.0, 0, 1},
+
110 {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1}, {16.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1},
+
111 {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {32.0, -5.0, 0, 1}, {45.0, -5.0, 0, 1}, {46.0, -5.0, 0, 1}, {47.0, -5.0, 0, 1},
+
112 {51.0, -5.0, 0, 1}, {52.0, -5.0, 0, 1}, {53.0, -5.0, 0, 1}, {-63.0, -4.0, 0, 1}, {-62.0, -4.0, 0, 1}, {-61.0, -4.0, 0, 1},
+
113 {-48.0, -4.0, 0, 1}, {-47.0, -4.0, 0, 1}, {-46.0, -4.0, 0, 1}, {-33.0, -4.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
114 {-30.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1},
+
115 {-15.0, -4.0, 0, 1}, {-14.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1},
+
116 {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1},
+
117 {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1}, {32.0, -4.0, 0, 1}, {45.0, -4.0, 0, 1}, {46.0, -4.0, 0, 1}, {47.0, -4.0, 0, 1},
+
118 {51.0, -4.0, 0, 1}, {52.0, -4.0, 0, 1}, {53.0, -4.0, 0, 1}, {-63.0, -3.0, 0, 1}, {-62.0, -3.0, 0, 1}, {-61.0, -3.0, 0, 1},
+
119 {-48.0, -3.0, 0, 1}, {-47.0, -3.0, 0, 1}, {-46.0, -3.0, 0, 1}, {-33.0, -3.0, 0, 1}, {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1},
+
120 {-30.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
121 {-15.0, -3.0, 0, 1}, {-14.0, -3.0, 0, 1}, {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-1.0, -3.0, 0, 1},
+
122 {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1}, {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
123 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {32.0, -3.0, 0, 1}, {45.0, -3.0, 0, 1}, {46.0, -3.0, 0, 1}, {47.0, -3.0, 0, 1},
+
124 {51.0, -3.0, 0, 1}, {52.0, -3.0, 0, 1}, {53.0, -3.0, 0, 1}, {-63.0, -2.0, 0, 1}, {-62.0, -2.0, 0, 1}, {-61.0, -2.0, 0, 1},
+
125 {-60.0, -2.0, 0, 1}, {-59.0, -2.0, 0, 1}, {-58.0, -2.0, 0, 1}, {-57.0, -2.0, 0, 1}, {-56.0, -2.0, 0, 1}, {-55.0, -2.0, 0, 1},
+
126 {-54.0, -2.0, 0, 1}, {-53.0, -2.0, 0, 1}, {-48.0, -2.0, 0, 1}, {-47.0, -2.0, 0, 1}, {-46.0, -2.0, 0, 1}, {-45.0, -2.0, 0, 1},
+
127 {-44.0, -2.0, 0, 1}, {-43.0, -2.0, 0, 1}, {-42.0, -2.0, 0, 1}, {-41.0, -2.0, 0, 1}, {-40.0, -2.0, 0, 1}, {-39.0, -2.0, 0, 1},
+
128 {-38.0, -2.0, 0, 1}, {-33.0, -2.0, 0, 1}, {-32.0, -2.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1},
+
129 {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
130 {-14.0, -2.0, 0, 1}, {-7.0, -2.0, 0, 1}, {-6.0, -2.0, 0, 1}, {-5.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
131 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {6.0, -2.0, 0, 1},
+
132 {7.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
133 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
134 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {30.0, -2.0, 0, 1}, {31.0, -2.0, 0, 1}, {32.0, -2.0, 0, 1}, {33.0, -2.0, 0, 1},
+
135 {34.0, -2.0, 0, 1}, {35.0, -2.0, 0, 1}, {36.0, -2.0, 0, 1}, {37.0, -2.0, 0, 1}, {38.0, -2.0, 0, 1}, {39.0, -2.0, 0, 1},
+
136 {40.0, -2.0, 0, 1}, {45.0, -2.0, 0, 1}, {46.0, -2.0, 0, 1}, {47.0, -2.0, 0, 1}, {51.0, -2.0, 0, 1}, {52.0, -2.0, 0, 1},
+
137 {53.0, -2.0, 0, 1}, {54.0, -2.0, 0, 1}, {55.0, -2.0, 0, 1}, {56.0, -2.0, 0, 1}, {57.0, -2.0, 0, 1}, {58.0, -2.0, 0, 1},
+
138 {59.0, -2.0, 0, 1}, {60.0, -2.0, 0, 1}, {61.0, -2.0, 0, 1}, {-63.0, -1.0, 0, 1}, {-62.0, -1.0, 0, 1}, {-61.0, -1.0, 0, 1},
+
139 {-60.0, -1.0, 0, 1}, {-59.0, -1.0, 0, 1}, {-58.0, -1.0, 0, 1}, {-57.0, -1.0, 0, 1}, {-56.0, -1.0, 0, 1}, {-55.0, -1.0, 0, 1},
+
140 {-54.0, -1.0, 0, 1}, {-53.0, -1.0, 0, 1}, {-48.0, -1.0, 0, 1}, {-47.0, -1.0, 0, 1}, {-46.0, -1.0, 0, 1}, {-45.0, -1.0, 0, 1},
+
141 {-44.0, -1.0, 0, 1}, {-43.0, -1.0, 0, 1}, {-42.0, -1.0, 0, 1}, {-41.0, -1.0, 0, 1}, {-40.0, -1.0, 0, 1}, {-39.0, -1.0, 0, 1},
+
142 {-38.0, -1.0, 0, 1}, {-37.0, -1.0, 0, 1}, {-33.0, -1.0, 0, 1}, {-32.0, -1.0, 0, 1}, {-31.0, -1.0, 0, 1}, {-30.0, -1.0, 0, 1},
+
143 {-29.0, -1.0, 0, 1}, {-28.0, -1.0, 0, 1}, {-27.0, -1.0, 0, 1}, {-26.0, -1.0, 0, 1}, {-25.0, -1.0, 0, 1}, {-24.0, -1.0, 0, 1},
+
144 {-23.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1},
+
145 {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1}, {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1},
+
146 {-9.0, -1.0, 0, 1}, {-8.0, -1.0, 0, 1}, {-7.0, -1.0, 0, 1}, {-6.0, -1.0, 0, 1}, {-5.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1},
+
147 {0.0, -1.0, 0, 1}, {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1},
+
148 {6.0, -1.0, 0, 1}, {7.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
149 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {21.0, -1.0, 0, 1},
+
150 {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1}, {25.0, -1.0, 0, 1}, {30.0, -1.0, 0, 1}, {31.0, -1.0, 0, 1},
+
151 {32.0, -1.0, 0, 1}, {33.0, -1.0, 0, 1}, {34.0, -1.0, 0, 1}, {35.0, -1.0, 0, 1}, {36.0, -1.0, 0, 1}, {37.0, -1.0, 0, 1},
+
152 {38.0, -1.0, 0, 1}, {39.0, -1.0, 0, 1}, {40.0, -1.0, 0, 1}, {41.0, -1.0, 0, 1}, {45.0, -1.0, 0, 1}, {46.0, -1.0, 0, 1},
+
153 {47.0, -1.0, 0, 1}, {51.0, -1.0, 0, 1}, {52.0, -1.0, 0, 1}, {53.0, -1.0, 0, 1}, {54.0, -1.0, 0, 1}, {55.0, -1.0, 0, 1},
+
154 {56.0, -1.0, 0, 1}, {57.0, -1.0, 0, 1}, {58.0, -1.0, 0, 1}, {59.0, -1.0, 0, 1}, {60.0, -1.0, 0, 1}, {61.0, -1.0, 0, 1},
+
155 {-63.0, 0.0, 0, 1}, {-62.0, 0.0, 0, 1}, {-61.0, 0.0, 0, 1}, {-60.0, 0.0, 0, 1}, {-59.0, 0.0, 0, 1}, {-58.0, 0.0, 0, 1},
+
156 {-57.0, 0.0, 0, 1}, {-56.0, 0.0, 0, 1}, {-55.0, 0.0, 0, 1}, {-54.0, 0.0, 0, 1}, {-53.0, 0.0, 0, 1}, {-47.0, 0.0, 0, 1},
+
157 {-46.0, 0.0, 0, 1}, {-45.0, 0.0, 0, 1}, {-44.0, 0.0, 0, 1}, {-43.0, 0.0, 0, 1}, {-42.0, 0.0, 0, 1}, {-41.0, 0.0, 0, 1},
+
158 {-40.0, 0.0, 0, 1}, {-39.0, 0.0, 0, 1}, {-38.0, 0.0, 0, 1}, {-37.0, 0.0, 0, 1}, {-33.0, 0.0, 0, 1}, {-32.0, 0.0, 0, 1},
+
159 {-31.0, 0.0, 0, 1}, {-30.0, 0.0, 0, 1}, {-29.0, 0.0, 0, 1}, {-28.0, 0.0, 0, 1}, {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1},
+
160 {-25.0, 0.0, 0, 1}, {-24.0, 0.0, 0, 1}, {-23.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1},
+
161 {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1},
+
162 {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-8.0, 0.0, 0, 1}, {-7.0, 0.0, 0, 1}, {-6.0, 0.0, 0, 1}, {-5.0, 0.0, 0, 1},
+
163 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
164 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1},
+
165 {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {21.0, 0.0, 0, 1},
+
166 {22.0, 0.0, 0, 1}, {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {25.0, 0.0, 0, 1}, {26.0, 0.0, 0, 1}, {31.0, 0.0, 0, 1},
+
167 {32.0, 0.0, 0, 1}, {33.0, 0.0, 0, 1}, {34.0, 0.0, 0, 1}, {35.0, 0.0, 0, 1}, {36.0, 0.0, 0, 1}, {37.0, 0.0, 0, 1},
+
168 {38.0, 0.0, 0, 1}, {39.0, 0.0, 0, 1}, {40.0, 0.0, 0, 1}, {41.0, 0.0, 0, 1}, {45.0, 0.0, 0, 1}, {46.0, 0.0, 0, 1},
+
169 {47.0, 0.0, 0, 1}, {51.0, 0.0, 0, 1}, {52.0, 0.0, 0, 1}, {53.0, 0.0, 0, 1}, {54.0, 0.0, 0, 1}, {55.0, 0.0, 0, 1},
+
170 {56.0, 0.0, 0, 1}, {57.0, 0.0, 0, 1}, {58.0, 0.0, 0, 1}, {59.0, 0.0, 0, 1}, {60.0, 0.0, 0, 1}, {61.0, 0.0, 0, 1},
+
171 {-63.0, 1.0, 0, 1}, {-62.0, 1.0, 0, 1}, {-61.0, 1.0, 0, 1}, {-39.0, 1.0, 0, 1}, {-38.0, 1.0, 0, 1}, {-37.0, 1.0, 0, 1},
+
172 {-36.0, 1.0, 0, 1}, {-33.0, 1.0, 0, 1}, {-32.0, 1.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
173 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
174 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1}, {-14.0, 1.0, 0, 1},
+
175 {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {-8.0, 1.0, 0, 1},
+
176 {-7.0, 1.0, 0, 1}, {-6.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1},
+
177 {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {38.0, 1.0, 0, 1}, {39.0, 1.0, 0, 1}, {40.0, 1.0, 0, 1},
+
178 {41.0, 1.0, 0, 1}, {45.0, 1.0, 0, 1}, {46.0, 1.0, 0, 1}, {47.0, 1.0, 0, 1}, {51.0, 1.0, 0, 1}, {52.0, 1.0, 0, 1},
+
179 {53.0, 1.0, 0, 1}, {-63.0, 2.0, 0, 1}, {-62.0, 2.0, 0, 1}, {-61.0, 2.0, 0, 1}, {-39.0, 2.0, 0, 1}, {-38.0, 2.0, 0, 1},
+
180 {-37.0, 2.0, 0, 1}, {-36.0, 2.0, 0, 1}, {-33.0, 2.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
181 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
182 {-23.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1},
+
183 {-8.0, 2.0, 0, 1}, {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1},
+
184 {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1}, {39.0, 2.0, 0, 1}, {40.0, 2.0, 0, 1}, {41.0, 2.0, 0, 1},
+
185 {45.0, 2.0, 0, 1}, {46.0, 2.0, 0, 1}, {47.0, 2.0, 0, 1}, {51.0, 2.0, 0, 1}, {52.0, 2.0, 0, 1}, {53.0, 2.0, 0, 1},
+
186 {-63.0, 3.0, 0, 1}, {-62.0, 3.0, 0, 1}, {-61.0, 3.0, 0, 1}, {-39.0, 3.0, 0, 1}, {-38.0, 3.0, 0, 1}, {-37.0, 3.0, 0, 1},
+
187 {-36.0, 3.0, 0, 1}, {-33.0, 3.0, 0, 1}, {-32.0, 3.0, 0, 1}, {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1},
+
188 {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1}, {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1},
+
189 {-1.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1}, {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1},
+
190 {39.0, 3.0, 0, 1}, {40.0, 3.0, 0, 1}, {41.0, 3.0, 0, 1}, {45.0, 3.0, 0, 1}, {46.0, 3.0, 0, 1}, {47.0, 3.0, 0, 1},
+
191 {51.0, 3.0, 0, 1}, {52.0, 3.0, 0, 1}, {53.0, 3.0, 0, 1}, {-63.0, 4.0, 0, 1}, {-62.0, 4.0, 0, 1}, {-61.0, 4.0, 0, 1},
+
192 {-39.0, 4.0, 0, 1}, {-38.0, 4.0, 0, 1}, {-37.0, 4.0, 0, 1}, {-36.0, 4.0, 0, 1}, {-33.0, 4.0, 0, 1}, {-32.0, 4.0, 0, 1},
+
193 {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1},
+
194 {-7.0, 4.0, 0, 1}, {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-1.0, 4.0, 0, 1}, {0.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1},
+
195 {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {39.0, 4.0, 0, 1}, {40.0, 4.0, 0, 1}, {41.0, 4.0, 0, 1},
+
196 {45.0, 4.0, 0, 1}, {46.0, 4.0, 0, 1}, {47.0, 4.0, 0, 1}, {51.0, 4.0, 0, 1}, {52.0, 4.0, 0, 1}, {53.0, 4.0, 0, 1},
+
197 {-63.0, 5.0, 0, 1}, {-62.0, 5.0, 0, 1}, {-61.0, 5.0, 0, 1}, {-39.0, 5.0, 0, 1}, {-38.0, 5.0, 0, 1}, {-37.0, 5.0, 0, 1},
+
198 {-36.0, 5.0, 0, 1}, {-33.0, 5.0, 0, 1}, {-32.0, 5.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1},
+
199 {-16.0, 5.0, 0, 1}, {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1},
+
200 {-1.0, 5.0, 0, 1}, {0.0, 5.0, 0, 1}, {1.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1},
+
201 {39.0, 5.0, 0, 1}, {40.0, 5.0, 0, 1}, {41.0, 5.0, 0, 1}, {45.0, 5.0, 0, 1}, {46.0, 5.0, 0, 1}, {47.0, 5.0, 0, 1},
+
202 {51.0, 5.0, 0, 1}, {52.0, 5.0, 0, 1}, {53.0, 5.0, 0, 1}, {-63.0, 6.0, 0, 1}, {-62.0, 6.0, 0, 1}, {-61.0, 6.0, 0, 1},
+
203 {-39.0, 6.0, 0, 1}, {-38.0, 6.0, 0, 1}, {-37.0, 6.0, 0, 1}, {-36.0, 6.0, 0, 1}, {-33.0, 6.0, 0, 1}, {-32.0, 6.0, 0, 1},
+
204 {-31.0, 6.0, 0, 1}, {-30.0, 6.0, 0, 1}, {-17.0, 6.0, 0, 1}, {-16.0, 6.0, 0, 1}, {-15.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1},
+
205 {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-1.0, 6.0, 0, 1}, {0.0, 6.0, 0, 1}, {1.0, 6.0, 0, 1},
+
206 {24.0, 6.0, 0, 1}, {25.0, 6.0, 0, 1}, {26.0, 6.0, 0, 1}, {39.0, 6.0, 0, 1}, {40.0, 6.0, 0, 1}, {41.0, 6.0, 0, 1},
+
207 {45.0, 6.0, 0, 1}, {46.0, 6.0, 0, 1}, {47.0, 6.0, 0, 1}, {51.0, 6.0, 0, 1}, {52.0, 6.0, 0, 1}, {53.0, 6.0, 0, 1},
+
208 {-63.0, 7.0, 0, 1}, {-62.0, 7.0, 0, 1}, {-61.0, 7.0, 0, 1}, {-39.0, 7.0, 0, 1}, {-38.0, 7.0, 0, 1}, {-37.0, 7.0, 0, 1},
+
209 {-36.0, 7.0, 0, 1}, {-33.0, 7.0, 0, 1}, {-32.0, 7.0, 0, 1}, {-31.0, 7.0, 0, 1}, {-30.0, 7.0, 0, 1}, {-17.0, 7.0, 0, 1},
+
210 {-16.0, 7.0, 0, 1}, {-15.0, 7.0, 0, 1}, {-14.0, 7.0, 0, 1}, {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1},
+
211 {-1.0, 7.0, 0, 1}, {0.0, 7.0, 0, 1}, {1.0, 7.0, 0, 1}, {24.0, 7.0, 0, 1}, {25.0, 7.0, 0, 1}, {26.0, 7.0, 0, 1},
+
212 {39.0, 7.0, 0, 1}, {40.0, 7.0, 0, 1}, {41.0, 7.0, 0, 1}, {45.0, 7.0, 0, 1}, {46.0, 7.0, 0, 1}, {47.0, 7.0, 0, 1},
+
213 {51.0, 7.0, 0, 1}, {52.0, 7.0, 0, 1}, {53.0, 7.0, 0, 1}, {-63.0, 8.0, 0, 1}, {-62.0, 8.0, 0, 1}, {-61.0, 8.0, 0, 1},
+
214 {-60.0, 8.0, 0, 1}, {-59.0, 8.0, 0, 1}, {-58.0, 8.0, 0, 1}, {-57.0, 8.0, 0, 1}, {-56.0, 8.0, 0, 1}, {-55.0, 8.0, 0, 1},
+
215 {-54.0, 8.0, 0, 1}, {-53.0, 8.0, 0, 1}, {-52.0, 8.0, 0, 1}, {-48.0, 8.0, 0, 1}, {-47.0, 8.0, 0, 1}, {-46.0, 8.0, 0, 1},
+
216 {-45.0, 8.0, 0, 1}, {-44.0, 8.0, 0, 1}, {-43.0, 8.0, 0, 1}, {-42.0, 8.0, 0, 1}, {-41.0, 8.0, 0, 1}, {-40.0, 8.0, 0, 1},
+
217 {-39.0, 8.0, 0, 1}, {-38.0, 8.0, 0, 1}, {-37.0, 8.0, 0, 1}, {-33.0, 8.0, 0, 1}, {-32.0, 8.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
218 {-30.0, 8.0, 0, 1}, {-17.0, 8.0, 0, 1}, {-16.0, 8.0, 0, 1}, {-15.0, 8.0, 0, 1}, {-14.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1},
+
219 {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1},
+
220 {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1}, {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1},
+
221 {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1}, {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1},
+
222 {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {22.0, 8.0, 0, 1},
+
223 {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {30.0, 8.0, 0, 1},
+
224 {31.0, 8.0, 0, 1}, {32.0, 8.0, 0, 1}, {33.0, 8.0, 0, 1}, {34.0, 8.0, 0, 1}, {35.0, 8.0, 0, 1}, {36.0, 8.0, 0, 1},
+
225 {37.0, 8.0, 0, 1}, {38.0, 8.0, 0, 1}, {39.0, 8.0, 0, 1}, {40.0, 8.0, 0, 1}, {41.0, 8.0, 0, 1}, {45.0, 8.0, 0, 1},
+
226 {46.0, 8.0, 0, 1}, {47.0, 8.0, 0, 1}, {51.0, 8.0, 0, 1}, {52.0, 8.0, 0, 1}, {53.0, 8.0, 0, 1}, {-63.0, 9.0, 0, 1},
+
227 {-62.0, 9.0, 0, 1}, {-61.0, 9.0, 0, 1}, {-60.0, 9.0, 0, 1}, {-59.0, 9.0, 0, 1}, {-58.0, 9.0, 0, 1}, {-57.0, 9.0, 0, 1},
+
228 {-56.0, 9.0, 0, 1}, {-55.0, 9.0, 0, 1}, {-54.0, 9.0, 0, 1}, {-53.0, 9.0, 0, 1}, {-52.0, 9.0, 0, 1}, {-48.0, 9.0, 0, 1},
+
229 {-47.0, 9.0, 0, 1}, {-46.0, 9.0, 0, 1}, {-45.0, 9.0, 0, 1}, {-44.0, 9.0, 0, 1}, {-43.0, 9.0, 0, 1}, {-42.0, 9.0, 0, 1},
+
230 {-41.0, 9.0, 0, 1}, {-40.0, 9.0, 0, 1}, {-39.0, 9.0, 0, 1}, {-38.0, 9.0, 0, 1}, {-37.0, 9.0, 0, 1}, {-33.0, 9.0, 0, 1},
+
231 {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-17.0, 9.0, 0, 1}, {-16.0, 9.0, 0, 1}, {-15.0, 9.0, 0, 1},
+
232 {-14.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1}, {1.0, 9.0, 0, 1},
+
233 {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1}, {7.0, 9.0, 0, 1},
+
234 {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1}, {16.0, 9.0, 0, 1},
+
235 {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1},
+
236 {23.0, 9.0, 0, 1}, {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1}, {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1},
+
237 {32.0, 9.0, 0, 1}, {33.0, 9.0, 0, 1}, {34.0, 9.0, 0, 1}, {35.0, 9.0, 0, 1}, {36.0, 9.0, 0, 1}, {37.0, 9.0, 0, 1},
+
238 {38.0, 9.0, 0, 1}, {39.0, 9.0, 0, 1}, {40.0, 9.0, 0, 1}, {41.0, 9.0, 0, 1}, {45.0, 9.0, 0, 1}, {46.0, 9.0, 0, 1},
+
239 {47.0, 9.0, 0, 1}, {51.0, 9.0, 0, 1}, {52.0, 9.0, 0, 1}, {53.0, 9.0, 0, 1}, {-62.0, 10.0, 0, 1}, {-61.0, 10.0, 0, 1},
+
240 {-60.0, 10.0, 0, 1}, {-59.0, 10.0, 0, 1}, {-58.0, 10.0, 0, 1}, {-57.0, 10.0, 0, 1}, {-56.0, 10.0, 0, 1}, {-55.0, 10.0, 0, 1},
+
241 {-54.0, 10.0, 0, 1}, {-53.0, 10.0, 0, 1}, {-52.0, 10.0, 0, 1}, {-48.0, 10.0, 0, 1}, {-47.0, 10.0, 0, 1}, {-46.0, 10.0, 0, 1},
+
242 {-45.0, 10.0, 0, 1}, {-44.0, 10.0, 0, 1}, {-43.0, 10.0, 0, 1}, {-42.0, 10.0, 0, 1}, {-41.0, 10.0, 0, 1}, {-40.0, 10.0, 0, 1},
+
243 {-39.0, 10.0, 0, 1}, {-38.0, 10.0, 0, 1}, {-33.0, 10.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1},
+
244 {-17.0, 10.0, 0, 1}, {-16.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1},
+
245 {-4.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1}, {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1},
+
246 {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1},
+
247 {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1},
+
248 {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1}, {24.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
249 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {32.0, 10.0, 0, 1}, {33.0, 10.0, 0, 1}, {34.0, 10.0, 0, 1}, {35.0, 10.0, 0, 1},
+
250 {36.0, 10.0, 0, 1}, {37.0, 10.0, 0, 1}, {38.0, 10.0, 0, 1}, {39.0, 10.0, 0, 1}, {40.0, 10.0, 0, 1}, {45.0, 10.0, 0, 1},
+
251 {46.0, 10.0, 0, 1}, {47.0, 10.0, 0, 1}, {51.0, 10.0, 0, 1}, {52.0, 10.0, 0, 1}, {53.0, 10.0, 0, 1}
+
252};
+
+ + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html new file mode 100644 index 0000000..4199f25 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html @@ -0,0 +1,428 @@ + + + + + + + +ESP-IDF Firmware: esp_text.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
esp_text.h File Reference
+
+
+
#include <stdint.h>
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_bmp_array_esp_text [384]
const float image_3d_array_esp_text [1271][4]
+

Variable Documentation

+ +

◆ image_3d_array_esp_text

+ +
+
+ + + + + +
+ + + + +
const float image_3d_array_esp_text[1271][4]
+
+extern
+
+ +

Definition at line 38 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
38 {
+
39
+
40 {-62.0, -11.0, 0, 1}, {-61.0, -11.0, 0, 1}, {-60.0, -11.0, 0, 1}, {-59.0, -11.0, 0, 1}, {-58.0, -11.0, 0, 1}, {-57.0, -11.0, 0, 1},
+
41 {-56.0, -11.0, 0, 1}, {-55.0, -11.0, 0, 1}, {-54.0, -11.0, 0, 1}, {-53.0, -11.0, 0, 1}, {-52.0, -11.0, 0, 1}, {-47.0, -11.0, 0, 1},
+
42 {-46.0, -11.0, 0, 1}, {-45.0, -11.0, 0, 1}, {-44.0, -11.0, 0, 1}, {-43.0, -11.0, 0, 1}, {-42.0, -11.0, 0, 1}, {-41.0, -11.0, 0, 1},
+
43 {-40.0, -11.0, 0, 1}, {-39.0, -11.0, 0, 1}, {-38.0, -11.0, 0, 1}, {-37.0, -11.0, 0, 1}, {-33.0, -11.0, 0, 1}, {-32.0, -11.0, 0, 1},
+
44 {-31.0, -11.0, 0, 1}, {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1},
+
45 {-25.0, -11.0, 0, 1}, {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-17.0, -11.0, 0, 1}, {-16.0, -11.0, 0, 1},
+
46 {-15.0, -11.0, 0, 1}, {-14.0, -11.0, 0, 1}, {-13.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1},
+
47 {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1}, {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1},
+
48 {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1}, {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1},
+
49 {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1}, {16.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1},
+
50 {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1}, {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1},
+
51 {31.0, -11.0, 0, 1}, {32.0, -11.0, 0, 1}, {33.0, -11.0, 0, 1}, {34.0, -11.0, 0, 1}, {35.0, -11.0, 0, 1}, {36.0, -11.0, 0, 1},
+
52 {37.0, -11.0, 0, 1}, {38.0, -11.0, 0, 1}, {39.0, -11.0, 0, 1}, {40.0, -11.0, 0, 1}, {41.0, -11.0, 0, 1}, {45.0, -11.0, 0, 1},
+
53 {46.0, -11.0, 0, 1}, {47.0, -11.0, 0, 1}, {53.0, -11.0, 0, 1}, {54.0, -11.0, 0, 1}, {55.0, -11.0, 0, 1}, {56.0, -11.0, 0, 1},
+
54 {57.0, -11.0, 0, 1}, {58.0, -11.0, 0, 1}, {59.0, -11.0, 0, 1}, {60.0, -11.0, 0, 1}, {61.0, -11.0, 0, 1}, {62.0, -11.0, 0, 1},
+
55 {-63.0, -10.0, 0, 1}, {-62.0, -10.0, 0, 1}, {-61.0, -10.0, 0, 1}, {-60.0, -10.0, 0, 1}, {-59.0, -10.0, 0, 1}, {-58.0, -10.0, 0, 1},
+
56 {-57.0, -10.0, 0, 1}, {-56.0, -10.0, 0, 1}, {-55.0, -10.0, 0, 1}, {-54.0, -10.0, 0, 1}, {-53.0, -10.0, 0, 1}, {-52.0, -10.0, 0, 1},
+
57 {-48.0, -10.0, 0, 1}, {-47.0, -10.0, 0, 1}, {-46.0, -10.0, 0, 1}, {-45.0, -10.0, 0, 1}, {-44.0, -10.0, 0, 1}, {-43.0, -10.0, 0, 1},
+
58 {-42.0, -10.0, 0, 1}, {-41.0, -10.0, 0, 1}, {-40.0, -10.0, 0, 1}, {-39.0, -10.0, 0, 1}, {-38.0, -10.0, 0, 1}, {-37.0, -10.0, 0, 1},
+
59 {-33.0, -10.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1}, {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1},
+
60 {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1}, {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1},
+
61 {-21.0, -10.0, 0, 1}, {-17.0, -10.0, 0, 1}, {-16.0, -10.0, 0, 1}, {-15.0, -10.0, 0, 1}, {-14.0, -10.0, 0, 1}, {-13.0, -10.0, 0, 1},
+
62 {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1}, {-7.0, -10.0, 0, 1},
+
63 {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1},
+
64 {4.0, -10.0, 0, 1}, {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1},
+
65 {10.0, -10.0, 0, 1}, {15.0, -10.0, 0, 1}, {16.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1},
+
66 {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1}, {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1},
+
67 {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {32.0, -10.0, 0, 1}, {33.0, -10.0, 0, 1}, {34.0, -10.0, 0, 1}, {35.0, -10.0, 0, 1},
+
68 {36.0, -10.0, 0, 1}, {37.0, -10.0, 0, 1}, {38.0, -10.0, 0, 1}, {39.0, -10.0, 0, 1}, {40.0, -10.0, 0, 1}, {41.0, -10.0, 0, 1},
+
69 {45.0, -10.0, 0, 1}, {46.0, -10.0, 0, 1}, {47.0, -10.0, 0, 1}, {52.0, -10.0, 0, 1}, {53.0, -10.0, 0, 1}, {54.0, -10.0, 0, 1},
+
70 {55.0, -10.0, 0, 1}, {56.0, -10.0, 0, 1}, {57.0, -10.0, 0, 1}, {58.0, -10.0, 0, 1}, {59.0, -10.0, 0, 1}, {60.0, -10.0, 0, 1},
+
71 {61.0, -10.0, 0, 1}, {62.0, -10.0, 0, 1}, {-63.0, -9.0, 0, 1}, {-62.0, -9.0, 0, 1}, {-61.0, -9.0, 0, 1}, {-60.0, -9.0, 0, 1},
+
72 {-59.0, -9.0, 0, 1}, {-58.0, -9.0, 0, 1}, {-57.0, -9.0, 0, 1}, {-56.0, -9.0, 0, 1}, {-55.0, -9.0, 0, 1}, {-54.0, -9.0, 0, 1},
+
73 {-53.0, -9.0, 0, 1}, {-52.0, -9.0, 0, 1}, {-48.0, -9.0, 0, 1}, {-47.0, -9.0, 0, 1}, {-46.0, -9.0, 0, 1}, {-45.0, -9.0, 0, 1},
+
74 {-44.0, -9.0, 0, 1}, {-43.0, -9.0, 0, 1}, {-42.0, -9.0, 0, 1}, {-41.0, -9.0, 0, 1}, {-40.0, -9.0, 0, 1}, {-39.0, -9.0, 0, 1},
+
75 {-38.0, -9.0, 0, 1}, {-37.0, -9.0, 0, 1}, {-33.0, -9.0, 0, 1}, {-32.0, -9.0, 0, 1}, {-31.0, -9.0, 0, 1}, {-30.0, -9.0, 0, 1},
+
76 {-29.0, -9.0, 0, 1}, {-28.0, -9.0, 0, 1}, {-27.0, -9.0, 0, 1}, {-26.0, -9.0, 0, 1}, {-25.0, -9.0, 0, 1}, {-24.0, -9.0, 0, 1},
+
77 {-23.0, -9.0, 0, 1}, {-22.0, -9.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-17.0, -9.0, 0, 1}, {-16.0, -9.0, 0, 1}, {-15.0, -9.0, 0, 1},
+
78 {-14.0, -9.0, 0, 1}, {-13.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
79 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1},
+
80 {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1}, {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1},
+
81 {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1}, {10.0, -9.0, 0, 1}, {14.0, -9.0, 0, 1}, {15.0, -9.0, 0, 1},
+
82 {16.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1}, {21.0, -9.0, 0, 1},
+
83 {22.0, -9.0, 0, 1}, {23.0, -9.0, 0, 1}, {24.0, -9.0, 0, 1}, {25.0, -9.0, 0, 1}, {30.0, -9.0, 0, 1}, {31.0, -9.0, 0, 1},
+
84 {32.0, -9.0, 0, 1}, {33.0, -9.0, 0, 1}, {34.0, -9.0, 0, 1}, {35.0, -9.0, 0, 1}, {36.0, -9.0, 0, 1}, {37.0, -9.0, 0, 1},
+
85 {38.0, -9.0, 0, 1}, {39.0, -9.0, 0, 1}, {40.0, -9.0, 0, 1}, {41.0, -9.0, 0, 1}, {45.0, -9.0, 0, 1}, {46.0, -9.0, 0, 1},
+
86 {47.0, -9.0, 0, 1}, {51.0, -9.0, 0, 1}, {52.0, -9.0, 0, 1}, {53.0, -9.0, 0, 1}, {54.0, -9.0, 0, 1}, {55.0, -9.0, 0, 1},
+
87 {56.0, -9.0, 0, 1}, {57.0, -9.0, 0, 1}, {58.0, -9.0, 0, 1}, {59.0, -9.0, 0, 1}, {60.0, -9.0, 0, 1}, {61.0, -9.0, 0, 1},
+
88 {62.0, -9.0, 0, 1}, {-63.0, -8.0, 0, 1}, {-62.0, -8.0, 0, 1}, {-61.0, -8.0, 0, 1}, {-48.0, -8.0, 0, 1}, {-47.0, -8.0, 0, 1},
+
89 {-46.0, -8.0, 0, 1}, {-33.0, -8.0, 0, 1}, {-32.0, -8.0, 0, 1}, {-31.0, -8.0, 0, 1}, {-30.0, -8.0, 0, 1}, {-23.0, -8.0, 0, 1},
+
90 {-22.0, -8.0, 0, 1}, {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-17.0, -8.0, 0, 1}, {-16.0, -8.0, 0, 1}, {-15.0, -8.0, 0, 1},
+
91 {-14.0, -8.0, 0, 1}, {-7.0, -8.0, 0, 1}, {-6.0, -8.0, 0, 1}, {-5.0, -8.0, 0, 1}, {-1.0, -8.0, 0, 1}, {0.0, -8.0, 0, 1},
+
92 {1.0, -8.0, 0, 1}, {14.0, -8.0, 0, 1}, {15.0, -8.0, 0, 1}, {16.0, -8.0, 0, 1}, {29.0, -8.0, 0, 1}, {30.0, -8.0, 0, 1},
+
93 {31.0, -8.0, 0, 1}, {32.0, -8.0, 0, 1}, {45.0, -8.0, 0, 1}, {46.0, -8.0, 0, 1}, {47.0, -8.0, 0, 1}, {51.0, -8.0, 0, 1},
+
94 {52.0, -8.0, 0, 1}, {53.0, -8.0, 0, 1}, {54.0, -8.0, 0, 1}, {-63.0, -7.0, 0, 1}, {-62.0, -7.0, 0, 1}, {-61.0, -7.0, 0, 1},
+
95 {-48.0, -7.0, 0, 1}, {-47.0, -7.0, 0, 1}, {-46.0, -7.0, 0, 1}, {-33.0, -7.0, 0, 1}, {-32.0, -7.0, 0, 1}, {-31.0, -7.0, 0, 1},
+
96 {-30.0, -7.0, 0, 1}, {-22.0, -7.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1}, {-17.0, -7.0, 0, 1}, {-16.0, -7.0, 0, 1},
+
97 {-15.0, -7.0, 0, 1}, {-14.0, -7.0, 0, 1}, {-7.0, -7.0, 0, 1}, {-6.0, -7.0, 0, 1}, {-5.0, -7.0, 0, 1}, {-1.0, -7.0, 0, 1},
+
98 {0.0, -7.0, 0, 1}, {1.0, -7.0, 0, 1}, {14.0, -7.0, 0, 1}, {15.0, -7.0, 0, 1}, {16.0, -7.0, 0, 1}, {29.0, -7.0, 0, 1},
+
99 {30.0, -7.0, 0, 1}, {31.0, -7.0, 0, 1}, {32.0, -7.0, 0, 1}, {45.0, -7.0, 0, 1}, {46.0, -7.0, 0, 1}, {47.0, -7.0, 0, 1},
+
100 {51.0, -7.0, 0, 1}, {52.0, -7.0, 0, 1}, {53.0, -7.0, 0, 1}, {-63.0, -6.0, 0, 1}, {-62.0, -6.0, 0, 1}, {-61.0, -6.0, 0, 1},
+
101 {-48.0, -6.0, 0, 1}, {-47.0, -6.0, 0, 1}, {-46.0, -6.0, 0, 1}, {-33.0, -6.0, 0, 1}, {-32.0, -6.0, 0, 1}, {-31.0, -6.0, 0, 1},
+
102 {-30.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1}, {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-17.0, -6.0, 0, 1}, {-16.0, -6.0, 0, 1},
+
103 {-15.0, -6.0, 0, 1}, {-14.0, -6.0, 0, 1}, {-7.0, -6.0, 0, 1}, {-6.0, -6.0, 0, 1}, {-5.0, -6.0, 0, 1}, {-1.0, -6.0, 0, 1},
+
104 {0.0, -6.0, 0, 1}, {1.0, -6.0, 0, 1}, {14.0, -6.0, 0, 1}, {15.0, -6.0, 0, 1}, {16.0, -6.0, 0, 1}, {29.0, -6.0, 0, 1},
+
105 {30.0, -6.0, 0, 1}, {31.0, -6.0, 0, 1}, {32.0, -6.0, 0, 1}, {45.0, -6.0, 0, 1}, {46.0, -6.0, 0, 1}, {47.0, -6.0, 0, 1},
+
106 {51.0, -6.0, 0, 1}, {52.0, -6.0, 0, 1}, {53.0, -6.0, 0, 1}, {-63.0, -5.0, 0, 1}, {-62.0, -5.0, 0, 1}, {-61.0, -5.0, 0, 1},
+
107 {-48.0, -5.0, 0, 1}, {-47.0, -5.0, 0, 1}, {-46.0, -5.0, 0, 1}, {-33.0, -5.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1},
+
108 {-30.0, -5.0, 0, 1}, {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-17.0, -5.0, 0, 1}, {-16.0, -5.0, 0, 1},
+
109 {-15.0, -5.0, 0, 1}, {-14.0, -5.0, 0, 1}, {-7.0, -5.0, 0, 1}, {-6.0, -5.0, 0, 1}, {-5.0, -5.0, 0, 1}, {-1.0, -5.0, 0, 1},
+
110 {0.0, -5.0, 0, 1}, {1.0, -5.0, 0, 1}, {14.0, -5.0, 0, 1}, {15.0, -5.0, 0, 1}, {16.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1},
+
111 {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {32.0, -5.0, 0, 1}, {45.0, -5.0, 0, 1}, {46.0, -5.0, 0, 1}, {47.0, -5.0, 0, 1},
+
112 {51.0, -5.0, 0, 1}, {52.0, -5.0, 0, 1}, {53.0, -5.0, 0, 1}, {-63.0, -4.0, 0, 1}, {-62.0, -4.0, 0, 1}, {-61.0, -4.0, 0, 1},
+
113 {-48.0, -4.0, 0, 1}, {-47.0, -4.0, 0, 1}, {-46.0, -4.0, 0, 1}, {-33.0, -4.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
114 {-30.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-17.0, -4.0, 0, 1}, {-16.0, -4.0, 0, 1},
+
115 {-15.0, -4.0, 0, 1}, {-14.0, -4.0, 0, 1}, {-7.0, -4.0, 0, 1}, {-6.0, -4.0, 0, 1}, {-5.0, -4.0, 0, 1}, {-1.0, -4.0, 0, 1},
+
116 {0.0, -4.0, 0, 1}, {1.0, -4.0, 0, 1}, {14.0, -4.0, 0, 1}, {15.0, -4.0, 0, 1}, {16.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1},
+
117 {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1}, {32.0, -4.0, 0, 1}, {45.0, -4.0, 0, 1}, {46.0, -4.0, 0, 1}, {47.0, -4.0, 0, 1},
+
118 {51.0, -4.0, 0, 1}, {52.0, -4.0, 0, 1}, {53.0, -4.0, 0, 1}, {-63.0, -3.0, 0, 1}, {-62.0, -3.0, 0, 1}, {-61.0, -3.0, 0, 1},
+
119 {-48.0, -3.0, 0, 1}, {-47.0, -3.0, 0, 1}, {-46.0, -3.0, 0, 1}, {-33.0, -3.0, 0, 1}, {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1},
+
120 {-30.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1}, {-20.0, -3.0, 0, 1}, {-17.0, -3.0, 0, 1}, {-16.0, -3.0, 0, 1},
+
121 {-15.0, -3.0, 0, 1}, {-14.0, -3.0, 0, 1}, {-7.0, -3.0, 0, 1}, {-6.0, -3.0, 0, 1}, {-5.0, -3.0, 0, 1}, {-1.0, -3.0, 0, 1},
+
122 {0.0, -3.0, 0, 1}, {1.0, -3.0, 0, 1}, {14.0, -3.0, 0, 1}, {15.0, -3.0, 0, 1}, {16.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
123 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {32.0, -3.0, 0, 1}, {45.0, -3.0, 0, 1}, {46.0, -3.0, 0, 1}, {47.0, -3.0, 0, 1},
+
124 {51.0, -3.0, 0, 1}, {52.0, -3.0, 0, 1}, {53.0, -3.0, 0, 1}, {-63.0, -2.0, 0, 1}, {-62.0, -2.0, 0, 1}, {-61.0, -2.0, 0, 1},
+
125 {-60.0, -2.0, 0, 1}, {-59.0, -2.0, 0, 1}, {-58.0, -2.0, 0, 1}, {-57.0, -2.0, 0, 1}, {-56.0, -2.0, 0, 1}, {-55.0, -2.0, 0, 1},
+
126 {-54.0, -2.0, 0, 1}, {-53.0, -2.0, 0, 1}, {-48.0, -2.0, 0, 1}, {-47.0, -2.0, 0, 1}, {-46.0, -2.0, 0, 1}, {-45.0, -2.0, 0, 1},
+
127 {-44.0, -2.0, 0, 1}, {-43.0, -2.0, 0, 1}, {-42.0, -2.0, 0, 1}, {-41.0, -2.0, 0, 1}, {-40.0, -2.0, 0, 1}, {-39.0, -2.0, 0, 1},
+
128 {-38.0, -2.0, 0, 1}, {-33.0, -2.0, 0, 1}, {-32.0, -2.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1},
+
129 {-22.0, -2.0, 0, 1}, {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-17.0, -2.0, 0, 1}, {-16.0, -2.0, 0, 1}, {-15.0, -2.0, 0, 1},
+
130 {-14.0, -2.0, 0, 1}, {-7.0, -2.0, 0, 1}, {-6.0, -2.0, 0, 1}, {-5.0, -2.0, 0, 1}, {-1.0, -2.0, 0, 1}, {0.0, -2.0, 0, 1},
+
131 {1.0, -2.0, 0, 1}, {2.0, -2.0, 0, 1}, {3.0, -2.0, 0, 1}, {4.0, -2.0, 0, 1}, {5.0, -2.0, 0, 1}, {6.0, -2.0, 0, 1},
+
132 {7.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {14.0, -2.0, 0, 1}, {15.0, -2.0, 0, 1}, {16.0, -2.0, 0, 1},
+
133 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
134 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {30.0, -2.0, 0, 1}, {31.0, -2.0, 0, 1}, {32.0, -2.0, 0, 1}, {33.0, -2.0, 0, 1},
+
135 {34.0, -2.0, 0, 1}, {35.0, -2.0, 0, 1}, {36.0, -2.0, 0, 1}, {37.0, -2.0, 0, 1}, {38.0, -2.0, 0, 1}, {39.0, -2.0, 0, 1},
+
136 {40.0, -2.0, 0, 1}, {45.0, -2.0, 0, 1}, {46.0, -2.0, 0, 1}, {47.0, -2.0, 0, 1}, {51.0, -2.0, 0, 1}, {52.0, -2.0, 0, 1},
+
137 {53.0, -2.0, 0, 1}, {54.0, -2.0, 0, 1}, {55.0, -2.0, 0, 1}, {56.0, -2.0, 0, 1}, {57.0, -2.0, 0, 1}, {58.0, -2.0, 0, 1},
+
138 {59.0, -2.0, 0, 1}, {60.0, -2.0, 0, 1}, {61.0, -2.0, 0, 1}, {-63.0, -1.0, 0, 1}, {-62.0, -1.0, 0, 1}, {-61.0, -1.0, 0, 1},
+
139 {-60.0, -1.0, 0, 1}, {-59.0, -1.0, 0, 1}, {-58.0, -1.0, 0, 1}, {-57.0, -1.0, 0, 1}, {-56.0, -1.0, 0, 1}, {-55.0, -1.0, 0, 1},
+
140 {-54.0, -1.0, 0, 1}, {-53.0, -1.0, 0, 1}, {-48.0, -1.0, 0, 1}, {-47.0, -1.0, 0, 1}, {-46.0, -1.0, 0, 1}, {-45.0, -1.0, 0, 1},
+
141 {-44.0, -1.0, 0, 1}, {-43.0, -1.0, 0, 1}, {-42.0, -1.0, 0, 1}, {-41.0, -1.0, 0, 1}, {-40.0, -1.0, 0, 1}, {-39.0, -1.0, 0, 1},
+
142 {-38.0, -1.0, 0, 1}, {-37.0, -1.0, 0, 1}, {-33.0, -1.0, 0, 1}, {-32.0, -1.0, 0, 1}, {-31.0, -1.0, 0, 1}, {-30.0, -1.0, 0, 1},
+
143 {-29.0, -1.0, 0, 1}, {-28.0, -1.0, 0, 1}, {-27.0, -1.0, 0, 1}, {-26.0, -1.0, 0, 1}, {-25.0, -1.0, 0, 1}, {-24.0, -1.0, 0, 1},
+
144 {-23.0, -1.0, 0, 1}, {-22.0, -1.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-17.0, -1.0, 0, 1}, {-16.0, -1.0, 0, 1},
+
145 {-15.0, -1.0, 0, 1}, {-14.0, -1.0, 0, 1}, {-13.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1}, {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1},
+
146 {-9.0, -1.0, 0, 1}, {-8.0, -1.0, 0, 1}, {-7.0, -1.0, 0, 1}, {-6.0, -1.0, 0, 1}, {-5.0, -1.0, 0, 1}, {-1.0, -1.0, 0, 1},
+
147 {0.0, -1.0, 0, 1}, {1.0, -1.0, 0, 1}, {2.0, -1.0, 0, 1}, {3.0, -1.0, 0, 1}, {4.0, -1.0, 0, 1}, {5.0, -1.0, 0, 1},
+
148 {6.0, -1.0, 0, 1}, {7.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {14.0, -1.0, 0, 1}, {15.0, -1.0, 0, 1},
+
149 {16.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {21.0, -1.0, 0, 1},
+
150 {22.0, -1.0, 0, 1}, {23.0, -1.0, 0, 1}, {24.0, -1.0, 0, 1}, {25.0, -1.0, 0, 1}, {30.0, -1.0, 0, 1}, {31.0, -1.0, 0, 1},
+
151 {32.0, -1.0, 0, 1}, {33.0, -1.0, 0, 1}, {34.0, -1.0, 0, 1}, {35.0, -1.0, 0, 1}, {36.0, -1.0, 0, 1}, {37.0, -1.0, 0, 1},
+
152 {38.0, -1.0, 0, 1}, {39.0, -1.0, 0, 1}, {40.0, -1.0, 0, 1}, {41.0, -1.0, 0, 1}, {45.0, -1.0, 0, 1}, {46.0, -1.0, 0, 1},
+
153 {47.0, -1.0, 0, 1}, {51.0, -1.0, 0, 1}, {52.0, -1.0, 0, 1}, {53.0, -1.0, 0, 1}, {54.0, -1.0, 0, 1}, {55.0, -1.0, 0, 1},
+
154 {56.0, -1.0, 0, 1}, {57.0, -1.0, 0, 1}, {58.0, -1.0, 0, 1}, {59.0, -1.0, 0, 1}, {60.0, -1.0, 0, 1}, {61.0, -1.0, 0, 1},
+
155 {-63.0, 0.0, 0, 1}, {-62.0, 0.0, 0, 1}, {-61.0, 0.0, 0, 1}, {-60.0, 0.0, 0, 1}, {-59.0, 0.0, 0, 1}, {-58.0, 0.0, 0, 1},
+
156 {-57.0, 0.0, 0, 1}, {-56.0, 0.0, 0, 1}, {-55.0, 0.0, 0, 1}, {-54.0, 0.0, 0, 1}, {-53.0, 0.0, 0, 1}, {-47.0, 0.0, 0, 1},
+
157 {-46.0, 0.0, 0, 1}, {-45.0, 0.0, 0, 1}, {-44.0, 0.0, 0, 1}, {-43.0, 0.0, 0, 1}, {-42.0, 0.0, 0, 1}, {-41.0, 0.0, 0, 1},
+
158 {-40.0, 0.0, 0, 1}, {-39.0, 0.0, 0, 1}, {-38.0, 0.0, 0, 1}, {-37.0, 0.0, 0, 1}, {-33.0, 0.0, 0, 1}, {-32.0, 0.0, 0, 1},
+
159 {-31.0, 0.0, 0, 1}, {-30.0, 0.0, 0, 1}, {-29.0, 0.0, 0, 1}, {-28.0, 0.0, 0, 1}, {-27.0, 0.0, 0, 1}, {-26.0, 0.0, 0, 1},
+
160 {-25.0, 0.0, 0, 1}, {-24.0, 0.0, 0, 1}, {-23.0, 0.0, 0, 1}, {-22.0, 0.0, 0, 1}, {-21.0, 0.0, 0, 1}, {-17.0, 0.0, 0, 1},
+
161 {-16.0, 0.0, 0, 1}, {-15.0, 0.0, 0, 1}, {-14.0, 0.0, 0, 1}, {-13.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1},
+
162 {-10.0, 0.0, 0, 1}, {-9.0, 0.0, 0, 1}, {-8.0, 0.0, 0, 1}, {-7.0, 0.0, 0, 1}, {-6.0, 0.0, 0, 1}, {-5.0, 0.0, 0, 1},
+
163 {-1.0, 0.0, 0, 1}, {0.0, 0.0, 0, 1}, {1.0, 0.0, 0, 1}, {2.0, 0.0, 0, 1}, {3.0, 0.0, 0, 1}, {4.0, 0.0, 0, 1},
+
164 {5.0, 0.0, 0, 1}, {6.0, 0.0, 0, 1}, {7.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {15.0, 0.0, 0, 1},
+
165 {16.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1}, {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {21.0, 0.0, 0, 1},
+
166 {22.0, 0.0, 0, 1}, {23.0, 0.0, 0, 1}, {24.0, 0.0, 0, 1}, {25.0, 0.0, 0, 1}, {26.0, 0.0, 0, 1}, {31.0, 0.0, 0, 1},
+
167 {32.0, 0.0, 0, 1}, {33.0, 0.0, 0, 1}, {34.0, 0.0, 0, 1}, {35.0, 0.0, 0, 1}, {36.0, 0.0, 0, 1}, {37.0, 0.0, 0, 1},
+
168 {38.0, 0.0, 0, 1}, {39.0, 0.0, 0, 1}, {40.0, 0.0, 0, 1}, {41.0, 0.0, 0, 1}, {45.0, 0.0, 0, 1}, {46.0, 0.0, 0, 1},
+
169 {47.0, 0.0, 0, 1}, {51.0, 0.0, 0, 1}, {52.0, 0.0, 0, 1}, {53.0, 0.0, 0, 1}, {54.0, 0.0, 0, 1}, {55.0, 0.0, 0, 1},
+
170 {56.0, 0.0, 0, 1}, {57.0, 0.0, 0, 1}, {58.0, 0.0, 0, 1}, {59.0, 0.0, 0, 1}, {60.0, 0.0, 0, 1}, {61.0, 0.0, 0, 1},
+
171 {-63.0, 1.0, 0, 1}, {-62.0, 1.0, 0, 1}, {-61.0, 1.0, 0, 1}, {-39.0, 1.0, 0, 1}, {-38.0, 1.0, 0, 1}, {-37.0, 1.0, 0, 1},
+
172 {-36.0, 1.0, 0, 1}, {-33.0, 1.0, 0, 1}, {-32.0, 1.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
173 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
174 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-17.0, 1.0, 0, 1}, {-16.0, 1.0, 0, 1}, {-15.0, 1.0, 0, 1}, {-14.0, 1.0, 0, 1},
+
175 {-13.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1}, {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {-8.0, 1.0, 0, 1},
+
176 {-7.0, 1.0, 0, 1}, {-6.0, 1.0, 0, 1}, {-1.0, 1.0, 0, 1}, {0.0, 1.0, 0, 1}, {1.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1},
+
177 {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {38.0, 1.0, 0, 1}, {39.0, 1.0, 0, 1}, {40.0, 1.0, 0, 1},
+
178 {41.0, 1.0, 0, 1}, {45.0, 1.0, 0, 1}, {46.0, 1.0, 0, 1}, {47.0, 1.0, 0, 1}, {51.0, 1.0, 0, 1}, {52.0, 1.0, 0, 1},
+
179 {53.0, 1.0, 0, 1}, {-63.0, 2.0, 0, 1}, {-62.0, 2.0, 0, 1}, {-61.0, 2.0, 0, 1}, {-39.0, 2.0, 0, 1}, {-38.0, 2.0, 0, 1},
+
180 {-37.0, 2.0, 0, 1}, {-36.0, 2.0, 0, 1}, {-33.0, 2.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
181 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
182 {-23.0, 2.0, 0, 1}, {-17.0, 2.0, 0, 1}, {-16.0, 2.0, 0, 1}, {-15.0, 2.0, 0, 1}, {-14.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1},
+
183 {-8.0, 2.0, 0, 1}, {-7.0, 2.0, 0, 1}, {-6.0, 2.0, 0, 1}, {-1.0, 2.0, 0, 1}, {0.0, 2.0, 0, 1}, {1.0, 2.0, 0, 1},
+
184 {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1}, {39.0, 2.0, 0, 1}, {40.0, 2.0, 0, 1}, {41.0, 2.0, 0, 1},
+
185 {45.0, 2.0, 0, 1}, {46.0, 2.0, 0, 1}, {47.0, 2.0, 0, 1}, {51.0, 2.0, 0, 1}, {52.0, 2.0, 0, 1}, {53.0, 2.0, 0, 1},
+
186 {-63.0, 3.0, 0, 1}, {-62.0, 3.0, 0, 1}, {-61.0, 3.0, 0, 1}, {-39.0, 3.0, 0, 1}, {-38.0, 3.0, 0, 1}, {-37.0, 3.0, 0, 1},
+
187 {-36.0, 3.0, 0, 1}, {-33.0, 3.0, 0, 1}, {-32.0, 3.0, 0, 1}, {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-17.0, 3.0, 0, 1},
+
188 {-16.0, 3.0, 0, 1}, {-15.0, 3.0, 0, 1}, {-14.0, 3.0, 0, 1}, {-8.0, 3.0, 0, 1}, {-7.0, 3.0, 0, 1}, {-6.0, 3.0, 0, 1},
+
189 {-1.0, 3.0, 0, 1}, {0.0, 3.0, 0, 1}, {1.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1}, {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1},
+
190 {39.0, 3.0, 0, 1}, {40.0, 3.0, 0, 1}, {41.0, 3.0, 0, 1}, {45.0, 3.0, 0, 1}, {46.0, 3.0, 0, 1}, {47.0, 3.0, 0, 1},
+
191 {51.0, 3.0, 0, 1}, {52.0, 3.0, 0, 1}, {53.0, 3.0, 0, 1}, {-63.0, 4.0, 0, 1}, {-62.0, 4.0, 0, 1}, {-61.0, 4.0, 0, 1},
+
192 {-39.0, 4.0, 0, 1}, {-38.0, 4.0, 0, 1}, {-37.0, 4.0, 0, 1}, {-36.0, 4.0, 0, 1}, {-33.0, 4.0, 0, 1}, {-32.0, 4.0, 0, 1},
+
193 {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-17.0, 4.0, 0, 1}, {-16.0, 4.0, 0, 1}, {-15.0, 4.0, 0, 1}, {-14.0, 4.0, 0, 1},
+
194 {-7.0, 4.0, 0, 1}, {-6.0, 4.0, 0, 1}, {-5.0, 4.0, 0, 1}, {-1.0, 4.0, 0, 1}, {0.0, 4.0, 0, 1}, {1.0, 4.0, 0, 1},
+
195 {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {39.0, 4.0, 0, 1}, {40.0, 4.0, 0, 1}, {41.0, 4.0, 0, 1},
+
196 {45.0, 4.0, 0, 1}, {46.0, 4.0, 0, 1}, {47.0, 4.0, 0, 1}, {51.0, 4.0, 0, 1}, {52.0, 4.0, 0, 1}, {53.0, 4.0, 0, 1},
+
197 {-63.0, 5.0, 0, 1}, {-62.0, 5.0, 0, 1}, {-61.0, 5.0, 0, 1}, {-39.0, 5.0, 0, 1}, {-38.0, 5.0, 0, 1}, {-37.0, 5.0, 0, 1},
+
198 {-36.0, 5.0, 0, 1}, {-33.0, 5.0, 0, 1}, {-32.0, 5.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-17.0, 5.0, 0, 1},
+
199 {-16.0, 5.0, 0, 1}, {-15.0, 5.0, 0, 1}, {-14.0, 5.0, 0, 1}, {-7.0, 5.0, 0, 1}, {-6.0, 5.0, 0, 1}, {-5.0, 5.0, 0, 1},
+
200 {-1.0, 5.0, 0, 1}, {0.0, 5.0, 0, 1}, {1.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1},
+
201 {39.0, 5.0, 0, 1}, {40.0, 5.0, 0, 1}, {41.0, 5.0, 0, 1}, {45.0, 5.0, 0, 1}, {46.0, 5.0, 0, 1}, {47.0, 5.0, 0, 1},
+
202 {51.0, 5.0, 0, 1}, {52.0, 5.0, 0, 1}, {53.0, 5.0, 0, 1}, {-63.0, 6.0, 0, 1}, {-62.0, 6.0, 0, 1}, {-61.0, 6.0, 0, 1},
+
203 {-39.0, 6.0, 0, 1}, {-38.0, 6.0, 0, 1}, {-37.0, 6.0, 0, 1}, {-36.0, 6.0, 0, 1}, {-33.0, 6.0, 0, 1}, {-32.0, 6.0, 0, 1},
+
204 {-31.0, 6.0, 0, 1}, {-30.0, 6.0, 0, 1}, {-17.0, 6.0, 0, 1}, {-16.0, 6.0, 0, 1}, {-15.0, 6.0, 0, 1}, {-14.0, 6.0, 0, 1},
+
205 {-7.0, 6.0, 0, 1}, {-6.0, 6.0, 0, 1}, {-5.0, 6.0, 0, 1}, {-1.0, 6.0, 0, 1}, {0.0, 6.0, 0, 1}, {1.0, 6.0, 0, 1},
+
206 {24.0, 6.0, 0, 1}, {25.0, 6.0, 0, 1}, {26.0, 6.0, 0, 1}, {39.0, 6.0, 0, 1}, {40.0, 6.0, 0, 1}, {41.0, 6.0, 0, 1},
+
207 {45.0, 6.0, 0, 1}, {46.0, 6.0, 0, 1}, {47.0, 6.0, 0, 1}, {51.0, 6.0, 0, 1}, {52.0, 6.0, 0, 1}, {53.0, 6.0, 0, 1},
+
208 {-63.0, 7.0, 0, 1}, {-62.0, 7.0, 0, 1}, {-61.0, 7.0, 0, 1}, {-39.0, 7.0, 0, 1}, {-38.0, 7.0, 0, 1}, {-37.0, 7.0, 0, 1},
+
209 {-36.0, 7.0, 0, 1}, {-33.0, 7.0, 0, 1}, {-32.0, 7.0, 0, 1}, {-31.0, 7.0, 0, 1}, {-30.0, 7.0, 0, 1}, {-17.0, 7.0, 0, 1},
+
210 {-16.0, 7.0, 0, 1}, {-15.0, 7.0, 0, 1}, {-14.0, 7.0, 0, 1}, {-7.0, 7.0, 0, 1}, {-6.0, 7.0, 0, 1}, {-5.0, 7.0, 0, 1},
+
211 {-1.0, 7.0, 0, 1}, {0.0, 7.0, 0, 1}, {1.0, 7.0, 0, 1}, {24.0, 7.0, 0, 1}, {25.0, 7.0, 0, 1}, {26.0, 7.0, 0, 1},
+
212 {39.0, 7.0, 0, 1}, {40.0, 7.0, 0, 1}, {41.0, 7.0, 0, 1}, {45.0, 7.0, 0, 1}, {46.0, 7.0, 0, 1}, {47.0, 7.0, 0, 1},
+
213 {51.0, 7.0, 0, 1}, {52.0, 7.0, 0, 1}, {53.0, 7.0, 0, 1}, {-63.0, 8.0, 0, 1}, {-62.0, 8.0, 0, 1}, {-61.0, 8.0, 0, 1},
+
214 {-60.0, 8.0, 0, 1}, {-59.0, 8.0, 0, 1}, {-58.0, 8.0, 0, 1}, {-57.0, 8.0, 0, 1}, {-56.0, 8.0, 0, 1}, {-55.0, 8.0, 0, 1},
+
215 {-54.0, 8.0, 0, 1}, {-53.0, 8.0, 0, 1}, {-52.0, 8.0, 0, 1}, {-48.0, 8.0, 0, 1}, {-47.0, 8.0, 0, 1}, {-46.0, 8.0, 0, 1},
+
216 {-45.0, 8.0, 0, 1}, {-44.0, 8.0, 0, 1}, {-43.0, 8.0, 0, 1}, {-42.0, 8.0, 0, 1}, {-41.0, 8.0, 0, 1}, {-40.0, 8.0, 0, 1},
+
217 {-39.0, 8.0, 0, 1}, {-38.0, 8.0, 0, 1}, {-37.0, 8.0, 0, 1}, {-33.0, 8.0, 0, 1}, {-32.0, 8.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
218 {-30.0, 8.0, 0, 1}, {-17.0, 8.0, 0, 1}, {-16.0, 8.0, 0, 1}, {-15.0, 8.0, 0, 1}, {-14.0, 8.0, 0, 1}, {-7.0, 8.0, 0, 1},
+
219 {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1},
+
220 {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1}, {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1},
+
221 {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1}, {14.0, 8.0, 0, 1}, {15.0, 8.0, 0, 1}, {16.0, 8.0, 0, 1},
+
222 {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1}, {22.0, 8.0, 0, 1},
+
223 {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {30.0, 8.0, 0, 1},
+
224 {31.0, 8.0, 0, 1}, {32.0, 8.0, 0, 1}, {33.0, 8.0, 0, 1}, {34.0, 8.0, 0, 1}, {35.0, 8.0, 0, 1}, {36.0, 8.0, 0, 1},
+
225 {37.0, 8.0, 0, 1}, {38.0, 8.0, 0, 1}, {39.0, 8.0, 0, 1}, {40.0, 8.0, 0, 1}, {41.0, 8.0, 0, 1}, {45.0, 8.0, 0, 1},
+
226 {46.0, 8.0, 0, 1}, {47.0, 8.0, 0, 1}, {51.0, 8.0, 0, 1}, {52.0, 8.0, 0, 1}, {53.0, 8.0, 0, 1}, {-63.0, 9.0, 0, 1},
+
227 {-62.0, 9.0, 0, 1}, {-61.0, 9.0, 0, 1}, {-60.0, 9.0, 0, 1}, {-59.0, 9.0, 0, 1}, {-58.0, 9.0, 0, 1}, {-57.0, 9.0, 0, 1},
+
228 {-56.0, 9.0, 0, 1}, {-55.0, 9.0, 0, 1}, {-54.0, 9.0, 0, 1}, {-53.0, 9.0, 0, 1}, {-52.0, 9.0, 0, 1}, {-48.0, 9.0, 0, 1},
+
229 {-47.0, 9.0, 0, 1}, {-46.0, 9.0, 0, 1}, {-45.0, 9.0, 0, 1}, {-44.0, 9.0, 0, 1}, {-43.0, 9.0, 0, 1}, {-42.0, 9.0, 0, 1},
+
230 {-41.0, 9.0, 0, 1}, {-40.0, 9.0, 0, 1}, {-39.0, 9.0, 0, 1}, {-38.0, 9.0, 0, 1}, {-37.0, 9.0, 0, 1}, {-33.0, 9.0, 0, 1},
+
231 {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-17.0, 9.0, 0, 1}, {-16.0, 9.0, 0, 1}, {-15.0, 9.0, 0, 1},
+
232 {-14.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1}, {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1}, {1.0, 9.0, 0, 1},
+
233 {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1}, {7.0, 9.0, 0, 1},
+
234 {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {14.0, 9.0, 0, 1}, {15.0, 9.0, 0, 1}, {16.0, 9.0, 0, 1},
+
235 {17.0, 9.0, 0, 1}, {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1},
+
236 {23.0, 9.0, 0, 1}, {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1}, {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1},
+
237 {32.0, 9.0, 0, 1}, {33.0, 9.0, 0, 1}, {34.0, 9.0, 0, 1}, {35.0, 9.0, 0, 1}, {36.0, 9.0, 0, 1}, {37.0, 9.0, 0, 1},
+
238 {38.0, 9.0, 0, 1}, {39.0, 9.0, 0, 1}, {40.0, 9.0, 0, 1}, {41.0, 9.0, 0, 1}, {45.0, 9.0, 0, 1}, {46.0, 9.0, 0, 1},
+
239 {47.0, 9.0, 0, 1}, {51.0, 9.0, 0, 1}, {52.0, 9.0, 0, 1}, {53.0, 9.0, 0, 1}, {-62.0, 10.0, 0, 1}, {-61.0, 10.0, 0, 1},
+
240 {-60.0, 10.0, 0, 1}, {-59.0, 10.0, 0, 1}, {-58.0, 10.0, 0, 1}, {-57.0, 10.0, 0, 1}, {-56.0, 10.0, 0, 1}, {-55.0, 10.0, 0, 1},
+
241 {-54.0, 10.0, 0, 1}, {-53.0, 10.0, 0, 1}, {-52.0, 10.0, 0, 1}, {-48.0, 10.0, 0, 1}, {-47.0, 10.0, 0, 1}, {-46.0, 10.0, 0, 1},
+
242 {-45.0, 10.0, 0, 1}, {-44.0, 10.0, 0, 1}, {-43.0, 10.0, 0, 1}, {-42.0, 10.0, 0, 1}, {-41.0, 10.0, 0, 1}, {-40.0, 10.0, 0, 1},
+
243 {-39.0, 10.0, 0, 1}, {-38.0, 10.0, 0, 1}, {-33.0, 10.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1},
+
244 {-17.0, 10.0, 0, 1}, {-16.0, 10.0, 0, 1}, {-15.0, 10.0, 0, 1}, {-14.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1}, {-5.0, 10.0, 0, 1},
+
245 {-4.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1}, {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1},
+
246 {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1}, {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1},
+
247 {14.0, 10.0, 0, 1}, {15.0, 10.0, 0, 1}, {16.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1}, {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1},
+
248 {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1}, {24.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
249 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {32.0, 10.0, 0, 1}, {33.0, 10.0, 0, 1}, {34.0, 10.0, 0, 1}, {35.0, 10.0, 0, 1},
+
250 {36.0, 10.0, 0, 1}, {37.0, 10.0, 0, 1}, {38.0, 10.0, 0, 1}, {39.0, 10.0, 0, 1}, {40.0, 10.0, 0, 1}, {45.0, 10.0, 0, 1},
+
251 {46.0, 10.0, 0, 1}, {47.0, 10.0, 0, 1}, {51.0, 10.0, 0, 1}, {52.0, 10.0, 0, 1}, {53.0, 10.0, 0, 1}
+
252};
+
+

Referenced by dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), and dispaly_esp_text().

+ +
+
+ +

◆ image_bmp_array_esp_text

+ +
+
+ + + + + +
+ + + + +
const uint8_t image_bmp_array_esp_text[384]
+
+extern
+
+ +

Definition at line 9 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.c.

+
9 {
+
10
+
11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
12 0x3f, 0xf8, 0x7f, 0xf1, 0xff, 0xe1, 0xff, 0xe0, 0x7f, 0xe0, 0xff, 0xc1, 0xff, 0xc7, 0x07, 0xfe,
+
13 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xc7, 0x0f, 0xfe,
+
14 0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xe3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfe,
+
15 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x79, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1e, 0x00,
+
16 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
17 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
18 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
19 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
20 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x39, 0xe0, 0x71, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x1c, 0x00,
+
21 0x7f, 0xf0, 0xff, 0xe1, 0xe0, 0x79, 0xe0, 0x71, 0xff, 0xc3, 0xff, 0x83, 0xff, 0x87, 0x1f, 0xfc,
+
22 0x7f, 0xf0, 0xff, 0xf1, 0xff, 0xf9, 0xff, 0xf1, 0xff, 0xc3, 0xff, 0xc3, 0xff, 0xc7, 0x1f, 0xfc,
+
23 0x7f, 0xf0, 0x7f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xc1, 0xff, 0xe1, 0xff, 0xc7, 0x1f, 0xfc,
+
24 0x70, 0x00, 0x00, 0x79, 0xff, 0xf1, 0xff, 0xe1, 0xc0, 0x00, 0x01, 0xe0, 0x03, 0xc7, 0x1c, 0x00,
+
25 0x70, 0x00, 0x00, 0x79, 0xff, 0xc1, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
26 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0xe1, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
27 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
28 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
29 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
30 0x70, 0x00, 0x00, 0x79, 0xe0, 0x01, 0xe0, 0x71, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0xc7, 0x1c, 0x00,
+
31 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x79, 0xff, 0xe3, 0xff, 0xe7, 0xff, 0xc7, 0x1c, 0x00,
+
32 0x7f, 0xf8, 0xff, 0xf1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xc7, 0x1c, 0x00,
+
33 0x3f, 0xf8, 0xff, 0xe1, 0xe0, 0x01, 0xe0, 0x38, 0xff, 0xe3, 0xff, 0x87, 0xff, 0x87, 0x1c, 0x00,
+
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
35
+
36};
+
+

Referenced by dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), and dispaly_esp_text().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js new file mode 100644 index 0000000..d8a90bb --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.js @@ -0,0 +1,5 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h = +[ + [ "image_3d_array_esp_text", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html#aca921c7ba529f39acf0b48eddef96266", null ], + [ "image_bmp_array_esp_text", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h.html#ace7ab8bb5752781ce55ed3b3f7b01c06", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 new file mode 100644 index 0000000..2629e24 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.md5 @@ -0,0 +1 @@ +376c113f307d978381f5a73206a2698a \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg new file mode 100644 index 0000000..d8678d3 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +esp_text.c + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg new file mode 100644 index 0000000..f9e1ea0 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +esp_text.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 new file mode 100644 index 0000000..be5b932 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.md5 @@ -0,0 +1 @@ +95b3e9fdb506061330e38f6b1c0d5574 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg new file mode 100644 index 0000000..a946a82 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg new file mode 100644 index 0000000..e377c9f --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +esp_text.h + + +Node1 + + +esp_text.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html new file mode 100644 index 0000000..e4a7de5 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2esp__text_8h_source.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: esp_text.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/esp_text.h
+
+
+Go to the documentation of this file.
1// File generated by image_to_3d_array.py
+
2
+
3#pragma once
+
4
+
5#include <stdint.h>
+
6
+
7#ifdef __cplusplus
+
8extern "C" {
+
9#endif
+
10
+
11extern const uint8_t image_bmp_array_esp_text[384];
+
12extern const float image_3d_array_esp_text[1271][4];
+
13
+
14#ifdef __cplusplus
+
15}
+
16#endif
+ + +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html new file mode 100644 index 0000000..7d1ede1 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image_to_3d_matrix.c File Reference
+
+
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.md5 new file mode 100644 index 0000000..73bbbb8 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.md5 @@ -0,0 +1 @@ +52938d4450142d1349bd7f687b190601 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.svg new file mode 100644 index 0000000..7c98a28 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +image_to_3d_matrix.c + + +Node1 + + +image_to_3d_matrix.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl_org.svg new file mode 100644 index 0000000..50e06b8 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +image_to_3d_matrix.c + + +Node1 + + +image_to_3d_matrix.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sdkconfig.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c_source.html new file mode 100644 index 0000000..ac3953a --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8c_source.html @@ -0,0 +1,447 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.c
+
+
+Go to the documentation of this file.
1// File generated by ImgTo3D.py
+
2// Image file converted to 3D matrix cpu_logo.png
+
3
+ +
5
+
6#ifdef CONFIG_3D_OBJECT_CUSTOM
+
7
+
8const uint8_t image_to_bmp_array_custom[512] = {
+
9
+
10 0x00, 0x00, 0x0e, 0x1c, 0x38, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
11 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
12 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
13 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
14 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
15 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
16 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
17 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
18 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
19 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe,
+
20 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff,
+
21 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0x00, 0x1e, 0x0f, 0xff, 0xff, 0xf0, 0x78, 0x00,
+
22 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00,
+
23 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfe, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff,
+
24 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff,
+
25 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfc, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00,
+
26 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfe,
+
27 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff,
+
28 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xff, 0x7f, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0x7f, 0xfe,
+
29 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0xf0, 0x78, 0x00,
+
30 0x7f, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xfc, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff,
+
31 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf0, 0x7f, 0xff,
+
32 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
33 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00,
+
34 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
35 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+
36 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
37 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
38 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
39 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
40 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x7c, 0xf8, 0x00, 0x00,
+
41 0x00, 0x00, 0x1e, 0x3c, 0x7c, 0x78, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1c, 0x38, 0x70, 0x00, 0x00
+
42
+
43};
+
44
+
45const float image_to_3d_matrix_custom[1732][4] = {
+
46
+
47 {-12.0, -32.0, 0, 1}, {-11.0, -32.0, 0, 1}, {-10.0, -32.0, 0, 1}, {-5.0, -32.0, 0, 1}, {-4.0, -32.0, 0, 1}, {-3.0, -32.0, 0, 1},
+
48 {2.0, -32.0, 0, 1}, {3.0, -32.0, 0, 1}, {4.0, -32.0, 0, 1}, {9.0, -32.0, 0, 1}, {10.0, -32.0, 0, 1}, {11.0, -32.0, 0, 1},
+
49 {-13.0, -31.0, 0, 1}, {-12.0, -31.0, 0, 1}, {-11.0, -31.0, 0, 1}, {-10.0, -31.0, 0, 1}, {-6.0, -31.0, 0, 1}, {-5.0, -31.0, 0, 1},
+
50 {-4.0, -31.0, 0, 1}, {-3.0, -31.0, 0, 1}, {-2.0, -31.0, 0, 1}, {1.0, -31.0, 0, 1}, {2.0, -31.0, 0, 1}, {3.0, -31.0, 0, 1},
+
51 {4.0, -31.0, 0, 1}, {5.0, -31.0, 0, 1}, {8.0, -31.0, 0, 1}, {9.0, -31.0, 0, 1}, {10.0, -31.0, 0, 1}, {11.0, -31.0, 0, 1},
+
52 {12.0, -31.0, 0, 1}, {-13.0, -30.0, 0, 1}, {-12.0, -30.0, 0, 1}, {-11.0, -30.0, 0, 1}, {-10.0, -30.0, 0, 1}, {-6.0, -30.0, 0, 1},
+
53 {-5.0, -30.0, 0, 1}, {-4.0, -30.0, 0, 1}, {-3.0, -30.0, 0, 1}, {-2.0, -30.0, 0, 1}, {1.0, -30.0, 0, 1}, {2.0, -30.0, 0, 1},
+
54 {3.0, -30.0, 0, 1}, {4.0, -30.0, 0, 1}, {5.0, -30.0, 0, 1}, {8.0, -30.0, 0, 1}, {9.0, -30.0, 0, 1}, {10.0, -30.0, 0, 1},
+
55 {11.0, -30.0, 0, 1}, {12.0, -30.0, 0, 1}, {-13.0, -29.0, 0, 1}, {-12.0, -29.0, 0, 1}, {-11.0, -29.0, 0, 1}, {-10.0, -29.0, 0, 1},
+
56 {-6.0, -29.0, 0, 1}, {-5.0, -29.0, 0, 1}, {-4.0, -29.0, 0, 1}, {-3.0, -29.0, 0, 1}, {-2.0, -29.0, 0, 1}, {1.0, -29.0, 0, 1},
+
57 {2.0, -29.0, 0, 1}, {3.0, -29.0, 0, 1}, {4.0, -29.0, 0, 1}, {5.0, -29.0, 0, 1}, {8.0, -29.0, 0, 1}, {9.0, -29.0, 0, 1},
+
58 {10.0, -29.0, 0, 1}, {11.0, -29.0, 0, 1}, {12.0, -29.0, 0, 1}, {-13.0, -28.0, 0, 1}, {-12.0, -28.0, 0, 1}, {-11.0, -28.0, 0, 1},
+
59 {-10.0, -28.0, 0, 1}, {-6.0, -28.0, 0, 1}, {-5.0, -28.0, 0, 1}, {-4.0, -28.0, 0, 1}, {-3.0, -28.0, 0, 1}, {-2.0, -28.0, 0, 1},
+
60 {1.0, -28.0, 0, 1}, {2.0, -28.0, 0, 1}, {3.0, -28.0, 0, 1}, {4.0, -28.0, 0, 1}, {5.0, -28.0, 0, 1}, {8.0, -28.0, 0, 1},
+
61 {9.0, -28.0, 0, 1}, {10.0, -28.0, 0, 1}, {11.0, -28.0, 0, 1}, {12.0, -28.0, 0, 1}, {-13.0, -27.0, 0, 1}, {-12.0, -27.0, 0, 1},
+
62 {-11.0, -27.0, 0, 1}, {-10.0, -27.0, 0, 1}, {-6.0, -27.0, 0, 1}, {-5.0, -27.0, 0, 1}, {-4.0, -27.0, 0, 1}, {-3.0, -27.0, 0, 1},
+
63 {-2.0, -27.0, 0, 1}, {1.0, -27.0, 0, 1}, {2.0, -27.0, 0, 1}, {3.0, -27.0, 0, 1}, {4.0, -27.0, 0, 1}, {5.0, -27.0, 0, 1},
+
64 {8.0, -27.0, 0, 1}, {9.0, -27.0, 0, 1}, {10.0, -27.0, 0, 1}, {11.0, -27.0, 0, 1}, {12.0, -27.0, 0, 1}, {-13.0, -26.0, 0, 1},
+
65 {-12.0, -26.0, 0, 1}, {-11.0, -26.0, 0, 1}, {-10.0, -26.0, 0, 1}, {-6.0, -26.0, 0, 1}, {-5.0, -26.0, 0, 1}, {-4.0, -26.0, 0, 1},
+
66 {-3.0, -26.0, 0, 1}, {-2.0, -26.0, 0, 1}, {1.0, -26.0, 0, 1}, {2.0, -26.0, 0, 1}, {3.0, -26.0, 0, 1}, {4.0, -26.0, 0, 1},
+
67 {5.0, -26.0, 0, 1}, {8.0, -26.0, 0, 1}, {9.0, -26.0, 0, 1}, {10.0, -26.0, 0, 1}, {11.0, -26.0, 0, 1}, {12.0, -26.0, 0, 1},
+
68 {-13.0, -25.0, 0, 1}, {-12.0, -25.0, 0, 1}, {-11.0, -25.0, 0, 1}, {-10.0, -25.0, 0, 1}, {-6.0, -25.0, 0, 1}, {-5.0, -25.0, 0, 1},
+
69 {-4.0, -25.0, 0, 1}, {-3.0, -25.0, 0, 1}, {-2.0, -25.0, 0, 1}, {1.0, -25.0, 0, 1}, {2.0, -25.0, 0, 1}, {3.0, -25.0, 0, 1},
+
70 {4.0, -25.0, 0, 1}, {5.0, -25.0, 0, 1}, {8.0, -25.0, 0, 1}, {9.0, -25.0, 0, 1}, {10.0, -25.0, 0, 1}, {11.0, -25.0, 0, 1},
+
71 {12.0, -25.0, 0, 1}, {-13.0, -24.0, 0, 1}, {-12.0, -24.0, 0, 1}, {-11.0, -24.0, 0, 1}, {-10.0, -24.0, 0, 1}, {-6.0, -24.0, 0, 1},
+
72 {-5.0, -24.0, 0, 1}, {-4.0, -24.0, 0, 1}, {-3.0, -24.0, 0, 1}, {-2.0, -24.0, 0, 1}, {1.0, -24.0, 0, 1}, {2.0, -24.0, 0, 1},
+
73 {3.0, -24.0, 0, 1}, {4.0, -24.0, 0, 1}, {5.0, -24.0, 0, 1}, {8.0, -24.0, 0, 1}, {9.0, -24.0, 0, 1}, {10.0, -24.0, 0, 1},
+
74 {11.0, -24.0, 0, 1}, {12.0, -24.0, 0, 1}, {-13.0, -23.0, 0, 1}, {-12.0, -23.0, 0, 1}, {-11.0, -23.0, 0, 1}, {-10.0, -23.0, 0, 1},
+
75 {-6.0, -23.0, 0, 1}, {-5.0, -23.0, 0, 1}, {-4.0, -23.0, 0, 1}, {-3.0, -23.0, 0, 1}, {-2.0, -23.0, 0, 1}, {1.0, -23.0, 0, 1},
+
76 {2.0, -23.0, 0, 1}, {3.0, -23.0, 0, 1}, {4.0, -23.0, 0, 1}, {5.0, -23.0, 0, 1}, {8.0, -23.0, 0, 1}, {9.0, -23.0, 0, 1},
+
77 {10.0, -23.0, 0, 1}, {11.0, -23.0, 0, 1}, {12.0, -23.0, 0, 1}, {-13.0, -22.0, 0, 1}, {-12.0, -22.0, 0, 1}, {-11.0, -22.0, 0, 1},
+
78 {-10.0, -22.0, 0, 1}, {-6.0, -22.0, 0, 1}, {-5.0, -22.0, 0, 1}, {-4.0, -22.0, 0, 1}, {-3.0, -22.0, 0, 1}, {-2.0, -22.0, 0, 1},
+
79 {1.0, -22.0, 0, 1}, {2.0, -22.0, 0, 1}, {3.0, -22.0, 0, 1}, {4.0, -22.0, 0, 1}, {5.0, -22.0, 0, 1}, {8.0, -22.0, 0, 1},
+
80 {9.0, -22.0, 0, 1}, {10.0, -22.0, 0, 1}, {11.0, -22.0, 0, 1}, {12.0, -22.0, 0, 1}, {-21.0, -21.0, 0, 1}, {-20.0, -21.0, 0, 1},
+
81 {-19.0, -21.0, 0, 1}, {-18.0, -21.0, 0, 1}, {-17.0, -21.0, 0, 1}, {-16.0, -21.0, 0, 1}, {-15.0, -21.0, 0, 1}, {-14.0, -21.0, 0, 1},
+
82 {-13.0, -21.0, 0, 1}, {-12.0, -21.0, 0, 1}, {-11.0, -21.0, 0, 1}, {-10.0, -21.0, 0, 1}, {-9.0, -21.0, 0, 1}, {-8.0, -21.0, 0, 1},
+
83 {-7.0, -21.0, 0, 1}, {-6.0, -21.0, 0, 1}, {-5.0, -21.0, 0, 1}, {-4.0, -21.0, 0, 1}, {-3.0, -21.0, 0, 1}, {-2.0, -21.0, 0, 1},
+
84 {-1.0, -21.0, 0, 1}, {0.0, -21.0, 0, 1}, {1.0, -21.0, 0, 1}, {2.0, -21.0, 0, 1}, {3.0, -21.0, 0, 1}, {4.0, -21.0, 0, 1},
+
85 {5.0, -21.0, 0, 1}, {6.0, -21.0, 0, 1}, {7.0, -21.0, 0, 1}, {8.0, -21.0, 0, 1}, {9.0, -21.0, 0, 1}, {10.0, -21.0, 0, 1},
+
86 {11.0, -21.0, 0, 1}, {12.0, -21.0, 0, 1}, {13.0, -21.0, 0, 1}, {14.0, -21.0, 0, 1}, {15.0, -21.0, 0, 1}, {16.0, -21.0, 0, 1},
+
87 {17.0, -21.0, 0, 1}, {18.0, -21.0, 0, 1}, {19.0, -21.0, 0, 1}, {20.0, -21.0, 0, 1}, {-21.0, -20.0, 0, 1}, {-20.0, -20.0, 0, 1},
+
88 {-19.0, -20.0, 0, 1}, {-18.0, -20.0, 0, 1}, {-17.0, -20.0, 0, 1}, {-16.0, -20.0, 0, 1}, {-15.0, -20.0, 0, 1}, {-14.0, -20.0, 0, 1},
+
89 {-13.0, -20.0, 0, 1}, {-12.0, -20.0, 0, 1}, {-11.0, -20.0, 0, 1}, {-10.0, -20.0, 0, 1}, {-9.0, -20.0, 0, 1}, {-8.0, -20.0, 0, 1},
+
90 {-7.0, -20.0, 0, 1}, {-6.0, -20.0, 0, 1}, {-5.0, -20.0, 0, 1}, {-4.0, -20.0, 0, 1}, {-3.0, -20.0, 0, 1}, {-2.0, -20.0, 0, 1},
+
91 {-1.0, -20.0, 0, 1}, {0.0, -20.0, 0, 1}, {1.0, -20.0, 0, 1}, {2.0, -20.0, 0, 1}, {3.0, -20.0, 0, 1}, {4.0, -20.0, 0, 1},
+
92 {5.0, -20.0, 0, 1}, {6.0, -20.0, 0, 1}, {7.0, -20.0, 0, 1}, {8.0, -20.0, 0, 1}, {9.0, -20.0, 0, 1}, {10.0, -20.0, 0, 1},
+
93 {11.0, -20.0, 0, 1}, {12.0, -20.0, 0, 1}, {13.0, -20.0, 0, 1}, {14.0, -20.0, 0, 1}, {15.0, -20.0, 0, 1}, {16.0, -20.0, 0, 1},
+
94 {17.0, -20.0, 0, 1}, {18.0, -20.0, 0, 1}, {19.0, -20.0, 0, 1}, {20.0, -20.0, 0, 1}, {-21.0, -19.0, 0, 1}, {-20.0, -19.0, 0, 1},
+
95 {-19.0, -19.0, 0, 1}, {-18.0, -19.0, 0, 1}, {-17.0, -19.0, 0, 1}, {-16.0, -19.0, 0, 1}, {-15.0, -19.0, 0, 1}, {-14.0, -19.0, 0, 1},
+
96 {-13.0, -19.0, 0, 1}, {-12.0, -19.0, 0, 1}, {-11.0, -19.0, 0, 1}, {-10.0, -19.0, 0, 1}, {-9.0, -19.0, 0, 1}, {-8.0, -19.0, 0, 1},
+
97 {-7.0, -19.0, 0, 1}, {-6.0, -19.0, 0, 1}, {-5.0, -19.0, 0, 1}, {-4.0, -19.0, 0, 1}, {-3.0, -19.0, 0, 1}, {-2.0, -19.0, 0, 1},
+
98 {-1.0, -19.0, 0, 1}, {0.0, -19.0, 0, 1}, {1.0, -19.0, 0, 1}, {2.0, -19.0, 0, 1}, {3.0, -19.0, 0, 1}, {4.0, -19.0, 0, 1},
+
99 {5.0, -19.0, 0, 1}, {6.0, -19.0, 0, 1}, {7.0, -19.0, 0, 1}, {8.0, -19.0, 0, 1}, {9.0, -19.0, 0, 1}, {10.0, -19.0, 0, 1},
+
100 {11.0, -19.0, 0, 1}, {12.0, -19.0, 0, 1}, {13.0, -19.0, 0, 1}, {14.0, -19.0, 0, 1}, {15.0, -19.0, 0, 1}, {16.0, -19.0, 0, 1},
+
101 {17.0, -19.0, 0, 1}, {18.0, -19.0, 0, 1}, {19.0, -19.0, 0, 1}, {20.0, -19.0, 0, 1}, {-21.0, -18.0, 0, 1}, {-20.0, -18.0, 0, 1},
+
102 {-19.0, -18.0, 0, 1}, {-18.0, -18.0, 0, 1}, {-17.0, -18.0, 0, 1}, {-16.0, -18.0, 0, 1}, {-15.0, -18.0, 0, 1}, {-14.0, -18.0, 0, 1},
+
103 {-13.0, -18.0, 0, 1}, {-12.0, -18.0, 0, 1}, {-11.0, -18.0, 0, 1}, {-10.0, -18.0, 0, 1}, {-9.0, -18.0, 0, 1}, {-8.0, -18.0, 0, 1},
+
104 {-7.0, -18.0, 0, 1}, {-6.0, -18.0, 0, 1}, {-5.0, -18.0, 0, 1}, {-4.0, -18.0, 0, 1}, {-3.0, -18.0, 0, 1}, {-2.0, -18.0, 0, 1},
+
105 {-1.0, -18.0, 0, 1}, {0.0, -18.0, 0, 1}, {1.0, -18.0, 0, 1}, {2.0, -18.0, 0, 1}, {3.0, -18.0, 0, 1}, {4.0, -18.0, 0, 1},
+
106 {5.0, -18.0, 0, 1}, {6.0, -18.0, 0, 1}, {7.0, -18.0, 0, 1}, {8.0, -18.0, 0, 1}, {9.0, -18.0, 0, 1}, {10.0, -18.0, 0, 1},
+
107 {11.0, -18.0, 0, 1}, {12.0, -18.0, 0, 1}, {13.0, -18.0, 0, 1}, {14.0, -18.0, 0, 1}, {15.0, -18.0, 0, 1}, {16.0, -18.0, 0, 1},
+
108 {17.0, -18.0, 0, 1}, {18.0, -18.0, 0, 1}, {19.0, -18.0, 0, 1}, {20.0, -18.0, 0, 1}, {-21.0, -17.0, 0, 1}, {-20.0, -17.0, 0, 1},
+
109 {-19.0, -17.0, 0, 1}, {-18.0, -17.0, 0, 1}, {17.0, -17.0, 0, 1}, {18.0, -17.0, 0, 1}, {19.0, -17.0, 0, 1}, {20.0, -17.0, 0, 1},
+
110 {-21.0, -16.0, 0, 1}, {-20.0, -16.0, 0, 1}, {-19.0, -16.0, 0, 1}, {-18.0, -16.0, 0, 1}, {17.0, -16.0, 0, 1}, {18.0, -16.0, 0, 1},
+
111 {19.0, -16.0, 0, 1}, {20.0, -16.0, 0, 1}, {-21.0, -15.0, 0, 1}, {-20.0, -15.0, 0, 1}, {-19.0, -15.0, 0, 1}, {-18.0, -15.0, 0, 1},
+
112 {17.0, -15.0, 0, 1}, {18.0, -15.0, 0, 1}, {19.0, -15.0, 0, 1}, {20.0, -15.0, 0, 1}, {-21.0, -14.0, 0, 1}, {-20.0, -14.0, 0, 1},
+
113 {-19.0, -14.0, 0, 1}, {-18.0, -14.0, 0, 1}, {17.0, -14.0, 0, 1}, {18.0, -14.0, 0, 1}, {19.0, -14.0, 0, 1}, {20.0, -14.0, 0, 1},
+
114 {-31.0, -13.0, 0, 1}, {-30.0, -13.0, 0, 1}, {-29.0, -13.0, 0, 1}, {-28.0, -13.0, 0, 1}, {-27.0, -13.0, 0, 1}, {-26.0, -13.0, 0, 1},
+
115 {-25.0, -13.0, 0, 1}, {-24.0, -13.0, 0, 1}, {-23.0, -13.0, 0, 1}, {-22.0, -13.0, 0, 1}, {-21.0, -13.0, 0, 1}, {-20.0, -13.0, 0, 1},
+
116 {-19.0, -13.0, 0, 1}, {-18.0, -13.0, 0, 1}, {17.0, -13.0, 0, 1}, {18.0, -13.0, 0, 1}, {19.0, -13.0, 0, 1}, {20.0, -13.0, 0, 1},
+
117 {21.0, -13.0, 0, 1}, {22.0, -13.0, 0, 1}, {23.0, -13.0, 0, 1}, {24.0, -13.0, 0, 1}, {25.0, -13.0, 0, 1}, {26.0, -13.0, 0, 1},
+
118 {27.0, -13.0, 0, 1}, {28.0, -13.0, 0, 1}, {29.0, -13.0, 0, 1}, {30.0, -13.0, 0, 1}, {-32.0, -12.0, 0, 1}, {-31.0, -12.0, 0, 1},
+
119 {-30.0, -12.0, 0, 1}, {-29.0, -12.0, 0, 1}, {-28.0, -12.0, 0, 1}, {-27.0, -12.0, 0, 1}, {-26.0, -12.0, 0, 1}, {-25.0, -12.0, 0, 1},
+
120 {-24.0, -12.0, 0, 1}, {-23.0, -12.0, 0, 1}, {-22.0, -12.0, 0, 1}, {-21.0, -12.0, 0, 1}, {-20.0, -12.0, 0, 1}, {-19.0, -12.0, 0, 1},
+
121 {-18.0, -12.0, 0, 1}, {-12.0, -12.0, 0, 1}, {-11.0, -12.0, 0, 1}, {-10.0, -12.0, 0, 1}, {-9.0, -12.0, 0, 1}, {-8.0, -12.0, 0, 1},
+
122 {-7.0, -12.0, 0, 1}, {-6.0, -12.0, 0, 1}, {-5.0, -12.0, 0, 1}, {-4.0, -12.0, 0, 1}, {-3.0, -12.0, 0, 1}, {-2.0, -12.0, 0, 1},
+
123 {-1.0, -12.0, 0, 1}, {0.0, -12.0, 0, 1}, {1.0, -12.0, 0, 1}, {2.0, -12.0, 0, 1}, {3.0, -12.0, 0, 1}, {4.0, -12.0, 0, 1},
+
124 {5.0, -12.0, 0, 1}, {6.0, -12.0, 0, 1}, {7.0, -12.0, 0, 1}, {8.0, -12.0, 0, 1}, {9.0, -12.0, 0, 1}, {10.0, -12.0, 0, 1},
+
125 {11.0, -12.0, 0, 1}, {17.0, -12.0, 0, 1}, {18.0, -12.0, 0, 1}, {19.0, -12.0, 0, 1}, {20.0, -12.0, 0, 1}, {21.0, -12.0, 0, 1},
+
126 {22.0, -12.0, 0, 1}, {23.0, -12.0, 0, 1}, {24.0, -12.0, 0, 1}, {25.0, -12.0, 0, 1}, {26.0, -12.0, 0, 1}, {27.0, -12.0, 0, 1},
+
127 {28.0, -12.0, 0, 1}, {29.0, -12.0, 0, 1}, {30.0, -12.0, 0, 1}, {31.0, -12.0, 0, 1}, {-32.0, -11.0, 0, 1}, {-31.0, -11.0, 0, 1},
+
128 {-30.0, -11.0, 0, 1}, {-29.0, -11.0, 0, 1}, {-28.0, -11.0, 0, 1}, {-27.0, -11.0, 0, 1}, {-26.0, -11.0, 0, 1}, {-25.0, -11.0, 0, 1},
+
129 {-24.0, -11.0, 0, 1}, {-23.0, -11.0, 0, 1}, {-22.0, -11.0, 0, 1}, {-21.0, -11.0, 0, 1}, {-20.0, -11.0, 0, 1}, {-19.0, -11.0, 0, 1},
+
130 {-18.0, -11.0, 0, 1}, {-12.0, -11.0, 0, 1}, {-11.0, -11.0, 0, 1}, {-10.0, -11.0, 0, 1}, {-9.0, -11.0, 0, 1}, {-8.0, -11.0, 0, 1},
+
131 {-7.0, -11.0, 0, 1}, {-6.0, -11.0, 0, 1}, {-5.0, -11.0, 0, 1}, {-4.0, -11.0, 0, 1}, {-3.0, -11.0, 0, 1}, {-2.0, -11.0, 0, 1},
+
132 {-1.0, -11.0, 0, 1}, {0.0, -11.0, 0, 1}, {1.0, -11.0, 0, 1}, {2.0, -11.0, 0, 1}, {3.0, -11.0, 0, 1}, {4.0, -11.0, 0, 1},
+
133 {5.0, -11.0, 0, 1}, {6.0, -11.0, 0, 1}, {7.0, -11.0, 0, 1}, {8.0, -11.0, 0, 1}, {9.0, -11.0, 0, 1}, {10.0, -11.0, 0, 1},
+
134 {11.0, -11.0, 0, 1}, {17.0, -11.0, 0, 1}, {18.0, -11.0, 0, 1}, {19.0, -11.0, 0, 1}, {20.0, -11.0, 0, 1}, {21.0, -11.0, 0, 1},
+
135 {22.0, -11.0, 0, 1}, {23.0, -11.0, 0, 1}, {24.0, -11.0, 0, 1}, {25.0, -11.0, 0, 1}, {26.0, -11.0, 0, 1}, {27.0, -11.0, 0, 1},
+
136 {28.0, -11.0, 0, 1}, {29.0, -11.0, 0, 1}, {30.0, -11.0, 0, 1}, {31.0, -11.0, 0, 1}, {-32.0, -10.0, 0, 1}, {-31.0, -10.0, 0, 1},
+
137 {-30.0, -10.0, 0, 1}, {-29.0, -10.0, 0, 1}, {-28.0, -10.0, 0, 1}, {-27.0, -10.0, 0, 1}, {-26.0, -10.0, 0, 1}, {-25.0, -10.0, 0, 1},
+
138 {-24.0, -10.0, 0, 1}, {-23.0, -10.0, 0, 1}, {-22.0, -10.0, 0, 1}, {-21.0, -10.0, 0, 1}, {-20.0, -10.0, 0, 1}, {-19.0, -10.0, 0, 1},
+
139 {-18.0, -10.0, 0, 1}, {-12.0, -10.0, 0, 1}, {-11.0, -10.0, 0, 1}, {-10.0, -10.0, 0, 1}, {-9.0, -10.0, 0, 1}, {-8.0, -10.0, 0, 1},
+
140 {-7.0, -10.0, 0, 1}, {-6.0, -10.0, 0, 1}, {-5.0, -10.0, 0, 1}, {-4.0, -10.0, 0, 1}, {-3.0, -10.0, 0, 1}, {-2.0, -10.0, 0, 1},
+
141 {-1.0, -10.0, 0, 1}, {0.0, -10.0, 0, 1}, {1.0, -10.0, 0, 1}, {2.0, -10.0, 0, 1}, {3.0, -10.0, 0, 1}, {4.0, -10.0, 0, 1},
+
142 {5.0, -10.0, 0, 1}, {6.0, -10.0, 0, 1}, {7.0, -10.0, 0, 1}, {8.0, -10.0, 0, 1}, {9.0, -10.0, 0, 1}, {10.0, -10.0, 0, 1},
+
143 {11.0, -10.0, 0, 1}, {17.0, -10.0, 0, 1}, {18.0, -10.0, 0, 1}, {19.0, -10.0, 0, 1}, {20.0, -10.0, 0, 1}, {21.0, -10.0, 0, 1},
+
144 {22.0, -10.0, 0, 1}, {23.0, -10.0, 0, 1}, {24.0, -10.0, 0, 1}, {25.0, -10.0, 0, 1}, {26.0, -10.0, 0, 1}, {27.0, -10.0, 0, 1},
+
145 {28.0, -10.0, 0, 1}, {29.0, -10.0, 0, 1}, {30.0, -10.0, 0, 1}, {31.0, -10.0, 0, 1}, {-21.0, -9.0, 0, 1}, {-20.0, -9.0, 0, 1},
+
146 {-19.0, -9.0, 0, 1}, {-18.0, -9.0, 0, 1}, {-12.0, -9.0, 0, 1}, {-11.0, -9.0, 0, 1}, {-10.0, -9.0, 0, 1}, {-9.0, -9.0, 0, 1},
+
147 {-8.0, -9.0, 0, 1}, {-7.0, -9.0, 0, 1}, {-6.0, -9.0, 0, 1}, {-5.0, -9.0, 0, 1}, {-4.0, -9.0, 0, 1}, {-3.0, -9.0, 0, 1},
+
148 {-2.0, -9.0, 0, 1}, {-1.0, -9.0, 0, 1}, {0.0, -9.0, 0, 1}, {1.0, -9.0, 0, 1}, {2.0, -9.0, 0, 1}, {3.0, -9.0, 0, 1},
+
149 {4.0, -9.0, 0, 1}, {5.0, -9.0, 0, 1}, {6.0, -9.0, 0, 1}, {7.0, -9.0, 0, 1}, {8.0, -9.0, 0, 1}, {9.0, -9.0, 0, 1},
+
150 {10.0, -9.0, 0, 1}, {11.0, -9.0, 0, 1}, {17.0, -9.0, 0, 1}, {18.0, -9.0, 0, 1}, {19.0, -9.0, 0, 1}, {20.0, -9.0, 0, 1},
+
151 {-21.0, -8.0, 0, 1}, {-20.0, -8.0, 0, 1}, {-19.0, -8.0, 0, 1}, {-18.0, -8.0, 0, 1}, {-12.0, -8.0, 0, 1}, {-11.0, -8.0, 0, 1},
+
152 {-10.0, -8.0, 0, 1}, {-9.0, -8.0, 0, 1}, {8.0, -8.0, 0, 1}, {9.0, -8.0, 0, 1}, {10.0, -8.0, 0, 1}, {11.0, -8.0, 0, 1},
+
153 {17.0, -8.0, 0, 1}, {18.0, -8.0, 0, 1}, {19.0, -8.0, 0, 1}, {20.0, -8.0, 0, 1}, {-21.0, -7.0, 0, 1}, {-20.0, -7.0, 0, 1},
+
154 {-19.0, -7.0, 0, 1}, {-18.0, -7.0, 0, 1}, {-12.0, -7.0, 0, 1}, {-11.0, -7.0, 0, 1}, {-10.0, -7.0, 0, 1}, {-9.0, -7.0, 0, 1},
+
155 {8.0, -7.0, 0, 1}, {9.0, -7.0, 0, 1}, {10.0, -7.0, 0, 1}, {11.0, -7.0, 0, 1}, {17.0, -7.0, 0, 1}, {18.0, -7.0, 0, 1},
+
156 {19.0, -7.0, 0, 1}, {20.0, -7.0, 0, 1}, {-31.0, -6.0, 0, 1}, {-30.0, -6.0, 0, 1}, {-29.0, -6.0, 0, 1}, {-28.0, -6.0, 0, 1},
+
157 {-27.0, -6.0, 0, 1}, {-26.0, -6.0, 0, 1}, {-25.0, -6.0, 0, 1}, {-24.0, -6.0, 0, 1}, {-23.0, -6.0, 0, 1}, {-22.0, -6.0, 0, 1},
+
158 {-21.0, -6.0, 0, 1}, {-20.0, -6.0, 0, 1}, {-19.0, -6.0, 0, 1}, {-18.0, -6.0, 0, 1}, {-12.0, -6.0, 0, 1}, {-11.0, -6.0, 0, 1},
+
159 {-10.0, -6.0, 0, 1}, {-9.0, -6.0, 0, 1}, {8.0, -6.0, 0, 1}, {9.0, -6.0, 0, 1}, {10.0, -6.0, 0, 1}, {11.0, -6.0, 0, 1},
+
160 {17.0, -6.0, 0, 1}, {18.0, -6.0, 0, 1}, {19.0, -6.0, 0, 1}, {20.0, -6.0, 0, 1}, {21.0, -6.0, 0, 1}, {22.0, -6.0, 0, 1},
+
161 {23.0, -6.0, 0, 1}, {24.0, -6.0, 0, 1}, {25.0, -6.0, 0, 1}, {26.0, -6.0, 0, 1}, {27.0, -6.0, 0, 1}, {28.0, -6.0, 0, 1},
+
162 {29.0, -6.0, 0, 1}, {30.0, -6.0, 0, 1}, {-32.0, -5.0, 0, 1}, {-31.0, -5.0, 0, 1}, {-30.0, -5.0, 0, 1}, {-29.0, -5.0, 0, 1},
+
163 {-28.0, -5.0, 0, 1}, {-27.0, -5.0, 0, 1}, {-26.0, -5.0, 0, 1}, {-25.0, -5.0, 0, 1}, {-24.0, -5.0, 0, 1}, {-23.0, -5.0, 0, 1},
+
164 {-22.0, -5.0, 0, 1}, {-21.0, -5.0, 0, 1}, {-20.0, -5.0, 0, 1}, {-19.0, -5.0, 0, 1}, {-18.0, -5.0, 0, 1}, {-12.0, -5.0, 0, 1},
+
165 {-11.0, -5.0, 0, 1}, {-10.0, -5.0, 0, 1}, {-9.0, -5.0, 0, 1}, {8.0, -5.0, 0, 1}, {9.0, -5.0, 0, 1}, {10.0, -5.0, 0, 1},
+
166 {11.0, -5.0, 0, 1}, {17.0, -5.0, 0, 1}, {18.0, -5.0, 0, 1}, {19.0, -5.0, 0, 1}, {20.0, -5.0, 0, 1}, {21.0, -5.0, 0, 1},
+
167 {22.0, -5.0, 0, 1}, {23.0, -5.0, 0, 1}, {24.0, -5.0, 0, 1}, {25.0, -5.0, 0, 1}, {26.0, -5.0, 0, 1}, {27.0, -5.0, 0, 1},
+
168 {28.0, -5.0, 0, 1}, {29.0, -5.0, 0, 1}, {30.0, -5.0, 0, 1}, {31.0, -5.0, 0, 1}, {-32.0, -4.0, 0, 1}, {-31.0, -4.0, 0, 1},
+
169 {-30.0, -4.0, 0, 1}, {-29.0, -4.0, 0, 1}, {-28.0, -4.0, 0, 1}, {-27.0, -4.0, 0, 1}, {-26.0, -4.0, 0, 1}, {-25.0, -4.0, 0, 1},
+
170 {-24.0, -4.0, 0, 1}, {-23.0, -4.0, 0, 1}, {-22.0, -4.0, 0, 1}, {-21.0, -4.0, 0, 1}, {-20.0, -4.0, 0, 1}, {-19.0, -4.0, 0, 1},
+
171 {-18.0, -4.0, 0, 1}, {-12.0, -4.0, 0, 1}, {-11.0, -4.0, 0, 1}, {-10.0, -4.0, 0, 1}, {-9.0, -4.0, 0, 1}, {8.0, -4.0, 0, 1},
+
172 {9.0, -4.0, 0, 1}, {10.0, -4.0, 0, 1}, {11.0, -4.0, 0, 1}, {17.0, -4.0, 0, 1}, {18.0, -4.0, 0, 1}, {19.0, -4.0, 0, 1},
+
173 {20.0, -4.0, 0, 1}, {21.0, -4.0, 0, 1}, {22.0, -4.0, 0, 1}, {23.0, -4.0, 0, 1}, {24.0, -4.0, 0, 1}, {25.0, -4.0, 0, 1},
+
174 {26.0, -4.0, 0, 1}, {27.0, -4.0, 0, 1}, {28.0, -4.0, 0, 1}, {29.0, -4.0, 0, 1}, {30.0, -4.0, 0, 1}, {31.0, -4.0, 0, 1},
+
175 {-32.0, -3.0, 0, 1}, {-31.0, -3.0, 0, 1}, {-30.0, -3.0, 0, 1}, {-29.0, -3.0, 0, 1}, {-28.0, -3.0, 0, 1}, {-27.0, -3.0, 0, 1},
+
176 {-26.0, -3.0, 0, 1}, {-25.0, -3.0, 0, 1}, {-24.0, -3.0, 0, 1}, {-23.0, -3.0, 0, 1}, {-22.0, -3.0, 0, 1}, {-21.0, -3.0, 0, 1},
+
177 {-20.0, -3.0, 0, 1}, {-19.0, -3.0, 0, 1}, {-18.0, -3.0, 0, 1}, {-12.0, -3.0, 0, 1}, {-11.0, -3.0, 0, 1}, {-10.0, -3.0, 0, 1},
+
178 {-9.0, -3.0, 0, 1}, {8.0, -3.0, 0, 1}, {9.0, -3.0, 0, 1}, {10.0, -3.0, 0, 1}, {11.0, -3.0, 0, 1}, {17.0, -3.0, 0, 1},
+
179 {18.0, -3.0, 0, 1}, {19.0, -3.0, 0, 1}, {20.0, -3.0, 0, 1}, {21.0, -3.0, 0, 1}, {22.0, -3.0, 0, 1}, {23.0, -3.0, 0, 1},
+
180 {24.0, -3.0, 0, 1}, {25.0, -3.0, 0, 1}, {26.0, -3.0, 0, 1}, {27.0, -3.0, 0, 1}, {28.0, -3.0, 0, 1}, {29.0, -3.0, 0, 1},
+
181 {30.0, -3.0, 0, 1}, {31.0, -3.0, 0, 1}, {-31.0, -2.0, 0, 1}, {-30.0, -2.0, 0, 1}, {-29.0, -2.0, 0, 1}, {-28.0, -2.0, 0, 1},
+
182 {-27.0, -2.0, 0, 1}, {-26.0, -2.0, 0, 1}, {-25.0, -2.0, 0, 1}, {-24.0, -2.0, 0, 1}, {-23.0, -2.0, 0, 1}, {-22.0, -2.0, 0, 1},
+
183 {-21.0, -2.0, 0, 1}, {-20.0, -2.0, 0, 1}, {-19.0, -2.0, 0, 1}, {-18.0, -2.0, 0, 1}, {-12.0, -2.0, 0, 1}, {-11.0, -2.0, 0, 1},
+
184 {-10.0, -2.0, 0, 1}, {-9.0, -2.0, 0, 1}, {8.0, -2.0, 0, 1}, {9.0, -2.0, 0, 1}, {10.0, -2.0, 0, 1}, {11.0, -2.0, 0, 1},
+
185 {17.0, -2.0, 0, 1}, {18.0, -2.0, 0, 1}, {19.0, -2.0, 0, 1}, {20.0, -2.0, 0, 1}, {21.0, -2.0, 0, 1}, {22.0, -2.0, 0, 1},
+
186 {23.0, -2.0, 0, 1}, {24.0, -2.0, 0, 1}, {25.0, -2.0, 0, 1}, {26.0, -2.0, 0, 1}, {27.0, -2.0, 0, 1}, {28.0, -2.0, 0, 1},
+
187 {29.0, -2.0, 0, 1}, {-21.0, -1.0, 0, 1}, {-20.0, -1.0, 0, 1}, {-19.0, -1.0, 0, 1}, {-18.0, -1.0, 0, 1}, {-12.0, -1.0, 0, 1},
+
188 {-11.0, -1.0, 0, 1}, {-10.0, -1.0, 0, 1}, {-9.0, -1.0, 0, 1}, {8.0, -1.0, 0, 1}, {9.0, -1.0, 0, 1}, {10.0, -1.0, 0, 1},
+
189 {11.0, -1.0, 0, 1}, {17.0, -1.0, 0, 1}, {18.0, -1.0, 0, 1}, {19.0, -1.0, 0, 1}, {20.0, -1.0, 0, 1}, {-21.0, 0.0, 0, 1},
+
190 {-20.0, 0.0, 0, 1}, {-19.0, 0.0, 0, 1}, {-18.0, 0.0, 0, 1}, {-12.0, 0.0, 0, 1}, {-11.0, 0.0, 0, 1}, {-10.0, 0.0, 0, 1},
+
191 {-9.0, 0.0, 0, 1}, {8.0, 0.0, 0, 1}, {9.0, 0.0, 0, 1}, {10.0, 0.0, 0, 1}, {11.0, 0.0, 0, 1}, {17.0, 0.0, 0, 1},
+
192 {18.0, 0.0, 0, 1}, {19.0, 0.0, 0, 1}, {20.0, 0.0, 0, 1}, {-31.0, 1.0, 0, 1}, {-30.0, 1.0, 0, 1}, {-29.0, 1.0, 0, 1},
+
193 {-28.0, 1.0, 0, 1}, {-27.0, 1.0, 0, 1}, {-26.0, 1.0, 0, 1}, {-25.0, 1.0, 0, 1}, {-24.0, 1.0, 0, 1}, {-23.0, 1.0, 0, 1},
+
194 {-22.0, 1.0, 0, 1}, {-21.0, 1.0, 0, 1}, {-20.0, 1.0, 0, 1}, {-19.0, 1.0, 0, 1}, {-18.0, 1.0, 0, 1}, {-12.0, 1.0, 0, 1},
+
195 {-11.0, 1.0, 0, 1}, {-10.0, 1.0, 0, 1}, {-9.0, 1.0, 0, 1}, {8.0, 1.0, 0, 1}, {9.0, 1.0, 0, 1}, {10.0, 1.0, 0, 1},
+
196 {11.0, 1.0, 0, 1}, {17.0, 1.0, 0, 1}, {18.0, 1.0, 0, 1}, {19.0, 1.0, 0, 1}, {20.0, 1.0, 0, 1}, {21.0, 1.0, 0, 1},
+
197 {22.0, 1.0, 0, 1}, {23.0, 1.0, 0, 1}, {24.0, 1.0, 0, 1}, {25.0, 1.0, 0, 1}, {26.0, 1.0, 0, 1}, {27.0, 1.0, 0, 1},
+
198 {28.0, 1.0, 0, 1}, {29.0, 1.0, 0, 1}, {30.0, 1.0, 0, 1}, {-32.0, 2.0, 0, 1}, {-31.0, 2.0, 0, 1}, {-30.0, 2.0, 0, 1},
+
199 {-29.0, 2.0, 0, 1}, {-28.0, 2.0, 0, 1}, {-27.0, 2.0, 0, 1}, {-26.0, 2.0, 0, 1}, {-25.0, 2.0, 0, 1}, {-24.0, 2.0, 0, 1},
+
200 {-23.0, 2.0, 0, 1}, {-22.0, 2.0, 0, 1}, {-21.0, 2.0, 0, 1}, {-20.0, 2.0, 0, 1}, {-19.0, 2.0, 0, 1}, {-18.0, 2.0, 0, 1},
+
201 {-12.0, 2.0, 0, 1}, {-11.0, 2.0, 0, 1}, {-10.0, 2.0, 0, 1}, {-9.0, 2.0, 0, 1}, {8.0, 2.0, 0, 1}, {9.0, 2.0, 0, 1},
+
202 {10.0, 2.0, 0, 1}, {11.0, 2.0, 0, 1}, {17.0, 2.0, 0, 1}, {18.0, 2.0, 0, 1}, {19.0, 2.0, 0, 1}, {20.0, 2.0, 0, 1},
+
203 {21.0, 2.0, 0, 1}, {22.0, 2.0, 0, 1}, {23.0, 2.0, 0, 1}, {24.0, 2.0, 0, 1}, {25.0, 2.0, 0, 1}, {26.0, 2.0, 0, 1},
+
204 {27.0, 2.0, 0, 1}, {28.0, 2.0, 0, 1}, {29.0, 2.0, 0, 1}, {30.0, 2.0, 0, 1}, {31.0, 2.0, 0, 1}, {-32.0, 3.0, 0, 1},
+
205 {-31.0, 3.0, 0, 1}, {-30.0, 3.0, 0, 1}, {-29.0, 3.0, 0, 1}, {-28.0, 3.0, 0, 1}, {-27.0, 3.0, 0, 1}, {-26.0, 3.0, 0, 1},
+
206 {-25.0, 3.0, 0, 1}, {-24.0, 3.0, 0, 1}, {-23.0, 3.0, 0, 1}, {-22.0, 3.0, 0, 1}, {-21.0, 3.0, 0, 1}, {-20.0, 3.0, 0, 1},
+
207 {-19.0, 3.0, 0, 1}, {-18.0, 3.0, 0, 1}, {-12.0, 3.0, 0, 1}, {-11.0, 3.0, 0, 1}, {-10.0, 3.0, 0, 1}, {-9.0, 3.0, 0, 1},
+
208 {8.0, 3.0, 0, 1}, {9.0, 3.0, 0, 1}, {10.0, 3.0, 0, 1}, {11.0, 3.0, 0, 1}, {17.0, 3.0, 0, 1}, {18.0, 3.0, 0, 1},
+
209 {19.0, 3.0, 0, 1}, {20.0, 3.0, 0, 1}, {21.0, 3.0, 0, 1}, {22.0, 3.0, 0, 1}, {23.0, 3.0, 0, 1}, {24.0, 3.0, 0, 1},
+
210 {25.0, 3.0, 0, 1}, {26.0, 3.0, 0, 1}, {27.0, 3.0, 0, 1}, {28.0, 3.0, 0, 1}, {29.0, 3.0, 0, 1}, {30.0, 3.0, 0, 1},
+
211 {31.0, 3.0, 0, 1}, {-32.0, 4.0, 0, 1}, {-31.0, 4.0, 0, 1}, {-30.0, 4.0, 0, 1}, {-29.0, 4.0, 0, 1}, {-28.0, 4.0, 0, 1},
+
212 {-27.0, 4.0, 0, 1}, {-26.0, 4.0, 0, 1}, {-25.0, 4.0, 0, 1}, {-24.0, 4.0, 0, 1}, {-23.0, 4.0, 0, 1}, {-22.0, 4.0, 0, 1},
+
213 {-21.0, 4.0, 0, 1}, {-20.0, 4.0, 0, 1}, {-19.0, 4.0, 0, 1}, {-18.0, 4.0, 0, 1}, {-12.0, 4.0, 0, 1}, {-11.0, 4.0, 0, 1},
+
214 {-10.0, 4.0, 0, 1}, {-9.0, 4.0, 0, 1}, {8.0, 4.0, 0, 1}, {9.0, 4.0, 0, 1}, {10.0, 4.0, 0, 1}, {11.0, 4.0, 0, 1},
+
215 {17.0, 4.0, 0, 1}, {18.0, 4.0, 0, 1}, {19.0, 4.0, 0, 1}, {20.0, 4.0, 0, 1}, {21.0, 4.0, 0, 1}, {22.0, 4.0, 0, 1},
+
216 {23.0, 4.0, 0, 1}, {24.0, 4.0, 0, 1}, {25.0, 4.0, 0, 1}, {26.0, 4.0, 0, 1}, {27.0, 4.0, 0, 1}, {28.0, 4.0, 0, 1},
+
217 {29.0, 4.0, 0, 1}, {30.0, 4.0, 0, 1}, {31.0, 4.0, 0, 1}, {-31.0, 5.0, 0, 1}, {-30.0, 5.0, 0, 1}, {-29.0, 5.0, 0, 1},
+
218 {-28.0, 5.0, 0, 1}, {-27.0, 5.0, 0, 1}, {-26.0, 5.0, 0, 1}, {-25.0, 5.0, 0, 1}, {-24.0, 5.0, 0, 1}, {-23.0, 5.0, 0, 1},
+
219 {-22.0, 5.0, 0, 1}, {-21.0, 5.0, 0, 1}, {-20.0, 5.0, 0, 1}, {-19.0, 5.0, 0, 1}, {-18.0, 5.0, 0, 1}, {-12.0, 5.0, 0, 1},
+
220 {-11.0, 5.0, 0, 1}, {-10.0, 5.0, 0, 1}, {-9.0, 5.0, 0, 1}, {8.0, 5.0, 0, 1}, {9.0, 5.0, 0, 1}, {10.0, 5.0, 0, 1},
+
221 {11.0, 5.0, 0, 1}, {17.0, 5.0, 0, 1}, {18.0, 5.0, 0, 1}, {19.0, 5.0, 0, 1}, {20.0, 5.0, 0, 1}, {21.0, 5.0, 0, 1},
+
222 {22.0, 5.0, 0, 1}, {23.0, 5.0, 0, 1}, {24.0, 5.0, 0, 1}, {25.0, 5.0, 0, 1}, {26.0, 5.0, 0, 1}, {27.0, 5.0, 0, 1},
+
223 {28.0, 5.0, 0, 1}, {29.0, 5.0, 0, 1}, {30.0, 5.0, 0, 1}, {-21.0, 6.0, 0, 1}, {-20.0, 6.0, 0, 1}, {-19.0, 6.0, 0, 1},
+
224 {-18.0, 6.0, 0, 1}, {-12.0, 6.0, 0, 1}, {-11.0, 6.0, 0, 1}, {-10.0, 6.0, 0, 1}, {-9.0, 6.0, 0, 1}, {8.0, 6.0, 0, 1},
+
225 {9.0, 6.0, 0, 1}, {10.0, 6.0, 0, 1}, {11.0, 6.0, 0, 1}, {17.0, 6.0, 0, 1}, {18.0, 6.0, 0, 1}, {19.0, 6.0, 0, 1},
+
226 {20.0, 6.0, 0, 1}, {-21.0, 7.0, 0, 1}, {-20.0, 7.0, 0, 1}, {-19.0, 7.0, 0, 1}, {-18.0, 7.0, 0, 1}, {-12.0, 7.0, 0, 1},
+
227 {-11.0, 7.0, 0, 1}, {-10.0, 7.0, 0, 1}, {-9.0, 7.0, 0, 1}, {8.0, 7.0, 0, 1}, {9.0, 7.0, 0, 1}, {10.0, 7.0, 0, 1},
+
228 {11.0, 7.0, 0, 1}, {17.0, 7.0, 0, 1}, {18.0, 7.0, 0, 1}, {19.0, 7.0, 0, 1}, {20.0, 7.0, 0, 1}, {-31.0, 8.0, 0, 1},
+
229 {-30.0, 8.0, 0, 1}, {-29.0, 8.0, 0, 1}, {-28.0, 8.0, 0, 1}, {-27.0, 8.0, 0, 1}, {-26.0, 8.0, 0, 1}, {-25.0, 8.0, 0, 1},
+
230 {-24.0, 8.0, 0, 1}, {-23.0, 8.0, 0, 1}, {-22.0, 8.0, 0, 1}, {-21.0, 8.0, 0, 1}, {-20.0, 8.0, 0, 1}, {-19.0, 8.0, 0, 1},
+
231 {-18.0, 8.0, 0, 1}, {-12.0, 8.0, 0, 1}, {-11.0, 8.0, 0, 1}, {-10.0, 8.0, 0, 1}, {-9.0, 8.0, 0, 1}, {-8.0, 8.0, 0, 1},
+
232 {-7.0, 8.0, 0, 1}, {-6.0, 8.0, 0, 1}, {-5.0, 8.0, 0, 1}, {-4.0, 8.0, 0, 1}, {-3.0, 8.0, 0, 1}, {-2.0, 8.0, 0, 1},
+
233 {-1.0, 8.0, 0, 1}, {0.0, 8.0, 0, 1}, {1.0, 8.0, 0, 1}, {2.0, 8.0, 0, 1}, {3.0, 8.0, 0, 1}, {4.0, 8.0, 0, 1},
+
234 {5.0, 8.0, 0, 1}, {6.0, 8.0, 0, 1}, {7.0, 8.0, 0, 1}, {8.0, 8.0, 0, 1}, {9.0, 8.0, 0, 1}, {10.0, 8.0, 0, 1},
+
235 {11.0, 8.0, 0, 1}, {17.0, 8.0, 0, 1}, {18.0, 8.0, 0, 1}, {19.0, 8.0, 0, 1}, {20.0, 8.0, 0, 1}, {21.0, 8.0, 0, 1},
+
236 {22.0, 8.0, 0, 1}, {23.0, 8.0, 0, 1}, {24.0, 8.0, 0, 1}, {25.0, 8.0, 0, 1}, {26.0, 8.0, 0, 1}, {27.0, 8.0, 0, 1},
+
237 {28.0, 8.0, 0, 1}, {29.0, 8.0, 0, 1}, {-32.0, 9.0, 0, 1}, {-31.0, 9.0, 0, 1}, {-30.0, 9.0, 0, 1}, {-29.0, 9.0, 0, 1},
+
238 {-28.0, 9.0, 0, 1}, {-27.0, 9.0, 0, 1}, {-26.0, 9.0, 0, 1}, {-25.0, 9.0, 0, 1}, {-24.0, 9.0, 0, 1}, {-23.0, 9.0, 0, 1},
+
239 {-22.0, 9.0, 0, 1}, {-21.0, 9.0, 0, 1}, {-20.0, 9.0, 0, 1}, {-19.0, 9.0, 0, 1}, {-18.0, 9.0, 0, 1}, {-12.0, 9.0, 0, 1},
+
240 {-11.0, 9.0, 0, 1}, {-10.0, 9.0, 0, 1}, {-9.0, 9.0, 0, 1}, {-8.0, 9.0, 0, 1}, {-7.0, 9.0, 0, 1}, {-6.0, 9.0, 0, 1},
+
241 {-5.0, 9.0, 0, 1}, {-4.0, 9.0, 0, 1}, {-3.0, 9.0, 0, 1}, {-2.0, 9.0, 0, 1}, {-1.0, 9.0, 0, 1}, {0.0, 9.0, 0, 1},
+
242 {1.0, 9.0, 0, 1}, {2.0, 9.0, 0, 1}, {3.0, 9.0, 0, 1}, {4.0, 9.0, 0, 1}, {5.0, 9.0, 0, 1}, {6.0, 9.0, 0, 1},
+
243 {7.0, 9.0, 0, 1}, {8.0, 9.0, 0, 1}, {9.0, 9.0, 0, 1}, {10.0, 9.0, 0, 1}, {11.0, 9.0, 0, 1}, {17.0, 9.0, 0, 1},
+
244 {18.0, 9.0, 0, 1}, {19.0, 9.0, 0, 1}, {20.0, 9.0, 0, 1}, {21.0, 9.0, 0, 1}, {22.0, 9.0, 0, 1}, {23.0, 9.0, 0, 1},
+
245 {24.0, 9.0, 0, 1}, {25.0, 9.0, 0, 1}, {26.0, 9.0, 0, 1}, {27.0, 9.0, 0, 1}, {28.0, 9.0, 0, 1}, {29.0, 9.0, 0, 1},
+
246 {30.0, 9.0, 0, 1}, {31.0, 9.0, 0, 1}, {-32.0, 10.0, 0, 1}, {-31.0, 10.0, 0, 1}, {-30.0, 10.0, 0, 1}, {-29.0, 10.0, 0, 1},
+
247 {-28.0, 10.0, 0, 1}, {-27.0, 10.0, 0, 1}, {-26.0, 10.0, 0, 1}, {-25.0, 10.0, 0, 1}, {-24.0, 10.0, 0, 1}, {-23.0, 10.0, 0, 1},
+
248 {-22.0, 10.0, 0, 1}, {-21.0, 10.0, 0, 1}, {-20.0, 10.0, 0, 1}, {-19.0, 10.0, 0, 1}, {-18.0, 10.0, 0, 1}, {-12.0, 10.0, 0, 1},
+
249 {-11.0, 10.0, 0, 1}, {-10.0, 10.0, 0, 1}, {-9.0, 10.0, 0, 1}, {-8.0, 10.0, 0, 1}, {-7.0, 10.0, 0, 1}, {-6.0, 10.0, 0, 1},
+
250 {-5.0, 10.0, 0, 1}, {-4.0, 10.0, 0, 1}, {-3.0, 10.0, 0, 1}, {-2.0, 10.0, 0, 1}, {-1.0, 10.0, 0, 1}, {0.0, 10.0, 0, 1},
+
251 {1.0, 10.0, 0, 1}, {2.0, 10.0, 0, 1}, {3.0, 10.0, 0, 1}, {4.0, 10.0, 0, 1}, {5.0, 10.0, 0, 1}, {6.0, 10.0, 0, 1},
+
252 {7.0, 10.0, 0, 1}, {8.0, 10.0, 0, 1}, {9.0, 10.0, 0, 1}, {10.0, 10.0, 0, 1}, {11.0, 10.0, 0, 1}, {17.0, 10.0, 0, 1},
+
253 {18.0, 10.0, 0, 1}, {19.0, 10.0, 0, 1}, {20.0, 10.0, 0, 1}, {21.0, 10.0, 0, 1}, {22.0, 10.0, 0, 1}, {23.0, 10.0, 0, 1},
+
254 {24.0, 10.0, 0, 1}, {25.0, 10.0, 0, 1}, {26.0, 10.0, 0, 1}, {27.0, 10.0, 0, 1}, {28.0, 10.0, 0, 1}, {29.0, 10.0, 0, 1},
+
255 {30.0, 10.0, 0, 1}, {31.0, 10.0, 0, 1}, {-32.0, 11.0, 0, 1}, {-31.0, 11.0, 0, 1}, {-30.0, 11.0, 0, 1}, {-29.0, 11.0, 0, 1},
+
256 {-28.0, 11.0, 0, 1}, {-27.0, 11.0, 0, 1}, {-26.0, 11.0, 0, 1}, {-25.0, 11.0, 0, 1}, {-24.0, 11.0, 0, 1}, {-23.0, 11.0, 0, 1},
+
257 {-22.0, 11.0, 0, 1}, {-21.0, 11.0, 0, 1}, {-20.0, 11.0, 0, 1}, {-19.0, 11.0, 0, 1}, {-18.0, 11.0, 0, 1}, {-12.0, 11.0, 0, 1},
+
258 {-11.0, 11.0, 0, 1}, {-10.0, 11.0, 0, 1}, {-9.0, 11.0, 0, 1}, {-8.0, 11.0, 0, 1}, {-7.0, 11.0, 0, 1}, {-6.0, 11.0, 0, 1},
+
259 {-5.0, 11.0, 0, 1}, {-4.0, 11.0, 0, 1}, {-3.0, 11.0, 0, 1}, {-2.0, 11.0, 0, 1}, {-1.0, 11.0, 0, 1}, {0.0, 11.0, 0, 1},
+
260 {1.0, 11.0, 0, 1}, {2.0, 11.0, 0, 1}, {3.0, 11.0, 0, 1}, {4.0, 11.0, 0, 1}, {5.0, 11.0, 0, 1}, {6.0, 11.0, 0, 1},
+
261 {7.0, 11.0, 0, 1}, {8.0, 11.0, 0, 1}, {9.0, 11.0, 0, 1}, {10.0, 11.0, 0, 1}, {11.0, 11.0, 0, 1}, {17.0, 11.0, 0, 1},
+
262 {18.0, 11.0, 0, 1}, {19.0, 11.0, 0, 1}, {20.0, 11.0, 0, 1}, {21.0, 11.0, 0, 1}, {22.0, 11.0, 0, 1}, {23.0, 11.0, 0, 1},
+
263 {24.0, 11.0, 0, 1}, {25.0, 11.0, 0, 1}, {26.0, 11.0, 0, 1}, {27.0, 11.0, 0, 1}, {28.0, 11.0, 0, 1}, {29.0, 11.0, 0, 1},
+
264 {30.0, 11.0, 0, 1}, {31.0, 11.0, 0, 1}, {-31.0, 12.0, 0, 1}, {-30.0, 12.0, 0, 1}, {-29.0, 12.0, 0, 1}, {-28.0, 12.0, 0, 1},
+
265 {-27.0, 12.0, 0, 1}, {-26.0, 12.0, 0, 1}, {-25.0, 12.0, 0, 1}, {-24.0, 12.0, 0, 1}, {-23.0, 12.0, 0, 1}, {-22.0, 12.0, 0, 1},
+
266 {-21.0, 12.0, 0, 1}, {-20.0, 12.0, 0, 1}, {-19.0, 12.0, 0, 1}, {-18.0, 12.0, 0, 1}, {17.0, 12.0, 0, 1}, {18.0, 12.0, 0, 1},
+
267 {19.0, 12.0, 0, 1}, {20.0, 12.0, 0, 1}, {21.0, 12.0, 0, 1}, {22.0, 12.0, 0, 1}, {23.0, 12.0, 0, 1}, {24.0, 12.0, 0, 1},
+
268 {25.0, 12.0, 0, 1}, {26.0, 12.0, 0, 1}, {27.0, 12.0, 0, 1}, {28.0, 12.0, 0, 1}, {29.0, 12.0, 0, 1}, {30.0, 12.0, 0, 1},
+
269 {-21.0, 13.0, 0, 1}, {-20.0, 13.0, 0, 1}, {-19.0, 13.0, 0, 1}, {-18.0, 13.0, 0, 1}, {17.0, 13.0, 0, 1}, {18.0, 13.0, 0, 1},
+
270 {19.0, 13.0, 0, 1}, {20.0, 13.0, 0, 1}, {-21.0, 14.0, 0, 1}, {-20.0, 14.0, 0, 1}, {-19.0, 14.0, 0, 1}, {-18.0, 14.0, 0, 1},
+
271 {17.0, 14.0, 0, 1}, {18.0, 14.0, 0, 1}, {19.0, 14.0, 0, 1}, {20.0, 14.0, 0, 1}, {-21.0, 15.0, 0, 1}, {-20.0, 15.0, 0, 1},
+
272 {-19.0, 15.0, 0, 1}, {-18.0, 15.0, 0, 1}, {17.0, 15.0, 0, 1}, {18.0, 15.0, 0, 1}, {19.0, 15.0, 0, 1}, {20.0, 15.0, 0, 1},
+
273 {-21.0, 16.0, 0, 1}, {-20.0, 16.0, 0, 1}, {-19.0, 16.0, 0, 1}, {-18.0, 16.0, 0, 1}, {17.0, 16.0, 0, 1}, {18.0, 16.0, 0, 1},
+
274 {19.0, 16.0, 0, 1}, {20.0, 16.0, 0, 1}, {-21.0, 17.0, 0, 1}, {-20.0, 17.0, 0, 1}, {-19.0, 17.0, 0, 1}, {-18.0, 17.0, 0, 1},
+
275 {-17.0, 17.0, 0, 1}, {-16.0, 17.0, 0, 1}, {-15.0, 17.0, 0, 1}, {-14.0, 17.0, 0, 1}, {-13.0, 17.0, 0, 1}, {-12.0, 17.0, 0, 1},
+
276 {-11.0, 17.0, 0, 1}, {-10.0, 17.0, 0, 1}, {-9.0, 17.0, 0, 1}, {-8.0, 17.0, 0, 1}, {-7.0, 17.0, 0, 1}, {-6.0, 17.0, 0, 1},
+
277 {-5.0, 17.0, 0, 1}, {-4.0, 17.0, 0, 1}, {-3.0, 17.0, 0, 1}, {-2.0, 17.0, 0, 1}, {-1.0, 17.0, 0, 1}, {0.0, 17.0, 0, 1},
+
278 {1.0, 17.0, 0, 1}, {2.0, 17.0, 0, 1}, {3.0, 17.0, 0, 1}, {4.0, 17.0, 0, 1}, {5.0, 17.0, 0, 1}, {6.0, 17.0, 0, 1},
+
279 {7.0, 17.0, 0, 1}, {8.0, 17.0, 0, 1}, {9.0, 17.0, 0, 1}, {10.0, 17.0, 0, 1}, {11.0, 17.0, 0, 1}, {12.0, 17.0, 0, 1},
+
280 {13.0, 17.0, 0, 1}, {14.0, 17.0, 0, 1}, {15.0, 17.0, 0, 1}, {16.0, 17.0, 0, 1}, {17.0, 17.0, 0, 1}, {18.0, 17.0, 0, 1},
+
281 {19.0, 17.0, 0, 1}, {20.0, 17.0, 0, 1}, {-21.0, 18.0, 0, 1}, {-20.0, 18.0, 0, 1}, {-19.0, 18.0, 0, 1}, {-18.0, 18.0, 0, 1},
+
282 {-17.0, 18.0, 0, 1}, {-16.0, 18.0, 0, 1}, {-15.0, 18.0, 0, 1}, {-14.0, 18.0, 0, 1}, {-13.0, 18.0, 0, 1}, {-12.0, 18.0, 0, 1},
+
283 {-11.0, 18.0, 0, 1}, {-10.0, 18.0, 0, 1}, {-9.0, 18.0, 0, 1}, {-8.0, 18.0, 0, 1}, {-7.0, 18.0, 0, 1}, {-6.0, 18.0, 0, 1},
+
284 {-5.0, 18.0, 0, 1}, {-4.0, 18.0, 0, 1}, {-3.0, 18.0, 0, 1}, {-2.0, 18.0, 0, 1}, {-1.0, 18.0, 0, 1}, {0.0, 18.0, 0, 1},
+
285 {1.0, 18.0, 0, 1}, {2.0, 18.0, 0, 1}, {3.0, 18.0, 0, 1}, {4.0, 18.0, 0, 1}, {5.0, 18.0, 0, 1}, {6.0, 18.0, 0, 1},
+
286 {7.0, 18.0, 0, 1}, {8.0, 18.0, 0, 1}, {9.0, 18.0, 0, 1}, {10.0, 18.0, 0, 1}, {11.0, 18.0, 0, 1}, {12.0, 18.0, 0, 1},
+
287 {13.0, 18.0, 0, 1}, {14.0, 18.0, 0, 1}, {15.0, 18.0, 0, 1}, {16.0, 18.0, 0, 1}, {17.0, 18.0, 0, 1}, {18.0, 18.0, 0, 1},
+
288 {19.0, 18.0, 0, 1}, {20.0, 18.0, 0, 1}, {-21.0, 19.0, 0, 1}, {-20.0, 19.0, 0, 1}, {-19.0, 19.0, 0, 1}, {-18.0, 19.0, 0, 1},
+
289 {-17.0, 19.0, 0, 1}, {-16.0, 19.0, 0, 1}, {-15.0, 19.0, 0, 1}, {-14.0, 19.0, 0, 1}, {-13.0, 19.0, 0, 1}, {-12.0, 19.0, 0, 1},
+
290 {-11.0, 19.0, 0, 1}, {-10.0, 19.0, 0, 1}, {-9.0, 19.0, 0, 1}, {-8.0, 19.0, 0, 1}, {-7.0, 19.0, 0, 1}, {-6.0, 19.0, 0, 1},
+
291 {-5.0, 19.0, 0, 1}, {-4.0, 19.0, 0, 1}, {-3.0, 19.0, 0, 1}, {-2.0, 19.0, 0, 1}, {-1.0, 19.0, 0, 1}, {0.0, 19.0, 0, 1},
+
292 {1.0, 19.0, 0, 1}, {2.0, 19.0, 0, 1}, {3.0, 19.0, 0, 1}, {4.0, 19.0, 0, 1}, {5.0, 19.0, 0, 1}, {6.0, 19.0, 0, 1},
+
293 {7.0, 19.0, 0, 1}, {8.0, 19.0, 0, 1}, {9.0, 19.0, 0, 1}, {10.0, 19.0, 0, 1}, {11.0, 19.0, 0, 1}, {12.0, 19.0, 0, 1},
+
294 {13.0, 19.0, 0, 1}, {14.0, 19.0, 0, 1}, {15.0, 19.0, 0, 1}, {16.0, 19.0, 0, 1}, {17.0, 19.0, 0, 1}, {18.0, 19.0, 0, 1},
+
295 {19.0, 19.0, 0, 1}, {20.0, 19.0, 0, 1}, {-21.0, 20.0, 0, 1}, {-20.0, 20.0, 0, 1}, {-19.0, 20.0, 0, 1}, {-18.0, 20.0, 0, 1},
+
296 {-17.0, 20.0, 0, 1}, {-16.0, 20.0, 0, 1}, {-15.0, 20.0, 0, 1}, {-14.0, 20.0, 0, 1}, {-13.0, 20.0, 0, 1}, {-12.0, 20.0, 0, 1},
+
297 {-11.0, 20.0, 0, 1}, {-10.0, 20.0, 0, 1}, {-9.0, 20.0, 0, 1}, {-8.0, 20.0, 0, 1}, {-7.0, 20.0, 0, 1}, {-6.0, 20.0, 0, 1},
+
298 {-5.0, 20.0, 0, 1}, {-4.0, 20.0, 0, 1}, {-3.0, 20.0, 0, 1}, {-2.0, 20.0, 0, 1}, {-1.0, 20.0, 0, 1}, {0.0, 20.0, 0, 1},
+
299 {1.0, 20.0, 0, 1}, {2.0, 20.0, 0, 1}, {3.0, 20.0, 0, 1}, {4.0, 20.0, 0, 1}, {5.0, 20.0, 0, 1}, {6.0, 20.0, 0, 1},
+
300 {7.0, 20.0, 0, 1}, {8.0, 20.0, 0, 1}, {9.0, 20.0, 0, 1}, {10.0, 20.0, 0, 1}, {11.0, 20.0, 0, 1}, {12.0, 20.0, 0, 1},
+
301 {13.0, 20.0, 0, 1}, {14.0, 20.0, 0, 1}, {15.0, 20.0, 0, 1}, {16.0, 20.0, 0, 1}, {17.0, 20.0, 0, 1}, {18.0, 20.0, 0, 1},
+
302 {19.0, 20.0, 0, 1}, {20.0, 20.0, 0, 1}, {-13.0, 21.0, 0, 1}, {-12.0, 21.0, 0, 1}, {-11.0, 21.0, 0, 1}, {-10.0, 21.0, 0, 1},
+
303 {-6.0, 21.0, 0, 1}, {-5.0, 21.0, 0, 1}, {-4.0, 21.0, 0, 1}, {-3.0, 21.0, 0, 1}, {-2.0, 21.0, 0, 1}, {1.0, 21.0, 0, 1},
+
304 {2.0, 21.0, 0, 1}, {3.0, 21.0, 0, 1}, {4.0, 21.0, 0, 1}, {5.0, 21.0, 0, 1}, {8.0, 21.0, 0, 1}, {9.0, 21.0, 0, 1},
+
305 {10.0, 21.0, 0, 1}, {11.0, 21.0, 0, 1}, {12.0, 21.0, 0, 1}, {-13.0, 22.0, 0, 1}, {-12.0, 22.0, 0, 1}, {-11.0, 22.0, 0, 1},
+
306 {-10.0, 22.0, 0, 1}, {-6.0, 22.0, 0, 1}, {-5.0, 22.0, 0, 1}, {-4.0, 22.0, 0, 1}, {-3.0, 22.0, 0, 1}, {-2.0, 22.0, 0, 1},
+
307 {1.0, 22.0, 0, 1}, {2.0, 22.0, 0, 1}, {3.0, 22.0, 0, 1}, {4.0, 22.0, 0, 1}, {5.0, 22.0, 0, 1}, {8.0, 22.0, 0, 1},
+
308 {9.0, 22.0, 0, 1}, {10.0, 22.0, 0, 1}, {11.0, 22.0, 0, 1}, {12.0, 22.0, 0, 1}, {-13.0, 23.0, 0, 1}, {-12.0, 23.0, 0, 1},
+
309 {-11.0, 23.0, 0, 1}, {-10.0, 23.0, 0, 1}, {-6.0, 23.0, 0, 1}, {-5.0, 23.0, 0, 1}, {-4.0, 23.0, 0, 1}, {-3.0, 23.0, 0, 1},
+
310 {-2.0, 23.0, 0, 1}, {1.0, 23.0, 0, 1}, {2.0, 23.0, 0, 1}, {3.0, 23.0, 0, 1}, {4.0, 23.0, 0, 1}, {5.0, 23.0, 0, 1},
+
311 {8.0, 23.0, 0, 1}, {9.0, 23.0, 0, 1}, {10.0, 23.0, 0, 1}, {11.0, 23.0, 0, 1}, {12.0, 23.0, 0, 1}, {-13.0, 24.0, 0, 1},
+
312 {-12.0, 24.0, 0, 1}, {-11.0, 24.0, 0, 1}, {-10.0, 24.0, 0, 1}, {-6.0, 24.0, 0, 1}, {-5.0, 24.0, 0, 1}, {-4.0, 24.0, 0, 1},
+
313 {-3.0, 24.0, 0, 1}, {-2.0, 24.0, 0, 1}, {1.0, 24.0, 0, 1}, {2.0, 24.0, 0, 1}, {3.0, 24.0, 0, 1}, {4.0, 24.0, 0, 1},
+
314 {5.0, 24.0, 0, 1}, {8.0, 24.0, 0, 1}, {9.0, 24.0, 0, 1}, {10.0, 24.0, 0, 1}, {11.0, 24.0, 0, 1}, {12.0, 24.0, 0, 1},
+
315 {-13.0, 25.0, 0, 1}, {-12.0, 25.0, 0, 1}, {-11.0, 25.0, 0, 1}, {-10.0, 25.0, 0, 1}, {-6.0, 25.0, 0, 1}, {-5.0, 25.0, 0, 1},
+
316 {-4.0, 25.0, 0, 1}, {-3.0, 25.0, 0, 1}, {-2.0, 25.0, 0, 1}, {1.0, 25.0, 0, 1}, {2.0, 25.0, 0, 1}, {3.0, 25.0, 0, 1},
+
317 {4.0, 25.0, 0, 1}, {5.0, 25.0, 0, 1}, {8.0, 25.0, 0, 1}, {9.0, 25.0, 0, 1}, {10.0, 25.0, 0, 1}, {11.0, 25.0, 0, 1},
+
318 {12.0, 25.0, 0, 1}, {-13.0, 26.0, 0, 1}, {-12.0, 26.0, 0, 1}, {-11.0, 26.0, 0, 1}, {-10.0, 26.0, 0, 1}, {-6.0, 26.0, 0, 1},
+
319 {-5.0, 26.0, 0, 1}, {-4.0, 26.0, 0, 1}, {-3.0, 26.0, 0, 1}, {-2.0, 26.0, 0, 1}, {1.0, 26.0, 0, 1}, {2.0, 26.0, 0, 1},
+
320 {3.0, 26.0, 0, 1}, {4.0, 26.0, 0, 1}, {5.0, 26.0, 0, 1}, {8.0, 26.0, 0, 1}, {9.0, 26.0, 0, 1}, {10.0, 26.0, 0, 1},
+
321 {11.0, 26.0, 0, 1}, {12.0, 26.0, 0, 1}, {-13.0, 27.0, 0, 1}, {-12.0, 27.0, 0, 1}, {-11.0, 27.0, 0, 1}, {-10.0, 27.0, 0, 1},
+
322 {-6.0, 27.0, 0, 1}, {-5.0, 27.0, 0, 1}, {-4.0, 27.0, 0, 1}, {-3.0, 27.0, 0, 1}, {-2.0, 27.0, 0, 1}, {1.0, 27.0, 0, 1},
+
323 {2.0, 27.0, 0, 1}, {3.0, 27.0, 0, 1}, {4.0, 27.0, 0, 1}, {5.0, 27.0, 0, 1}, {8.0, 27.0, 0, 1}, {9.0, 27.0, 0, 1},
+
324 {10.0, 27.0, 0, 1}, {11.0, 27.0, 0, 1}, {12.0, 27.0, 0, 1}, {-13.0, 28.0, 0, 1}, {-12.0, 28.0, 0, 1}, {-11.0, 28.0, 0, 1},
+
325 {-10.0, 28.0, 0, 1}, {-6.0, 28.0, 0, 1}, {-5.0, 28.0, 0, 1}, {-4.0, 28.0, 0, 1}, {-3.0, 28.0, 0, 1}, {-2.0, 28.0, 0, 1},
+
326 {1.0, 28.0, 0, 1}, {2.0, 28.0, 0, 1}, {3.0, 28.0, 0, 1}, {4.0, 28.0, 0, 1}, {5.0, 28.0, 0, 1}, {8.0, 28.0, 0, 1},
+
327 {9.0, 28.0, 0, 1}, {10.0, 28.0, 0, 1}, {11.0, 28.0, 0, 1}, {12.0, 28.0, 0, 1}, {-13.0, 29.0, 0, 1}, {-12.0, 29.0, 0, 1},
+
328 {-11.0, 29.0, 0, 1}, {-10.0, 29.0, 0, 1}, {-6.0, 29.0, 0, 1}, {-5.0, 29.0, 0, 1}, {-4.0, 29.0, 0, 1}, {-3.0, 29.0, 0, 1},
+
329 {-2.0, 29.0, 0, 1}, {1.0, 29.0, 0, 1}, {2.0, 29.0, 0, 1}, {3.0, 29.0, 0, 1}, {4.0, 29.0, 0, 1}, {5.0, 29.0, 0, 1},
+
330 {8.0, 29.0, 0, 1}, {9.0, 29.0, 0, 1}, {10.0, 29.0, 0, 1}, {11.0, 29.0, 0, 1}, {12.0, 29.0, 0, 1}, {-13.0, 30.0, 0, 1},
+
331 {-12.0, 30.0, 0, 1}, {-11.0, 30.0, 0, 1}, {-10.0, 30.0, 0, 1}, {-6.0, 30.0, 0, 1}, {-5.0, 30.0, 0, 1}, {-4.0, 30.0, 0, 1},
+
332 {-3.0, 30.0, 0, 1}, {1.0, 30.0, 0, 1}, {2.0, 30.0, 0, 1}, {3.0, 30.0, 0, 1}, {4.0, 30.0, 0, 1}, {5.0, 30.0, 0, 1},
+
333 {9.0, 30.0, 0, 1}, {10.0, 30.0, 0, 1}, {11.0, 30.0, 0, 1}, {12.0, 30.0, 0, 1}, {-12.0, 31.0, 0, 1}, {-11.0, 31.0, 0, 1},
+
334 {-10.0, 31.0, 0, 1}, {-5.0, 31.0, 0, 1}, {-4.0, 31.0, 0, 1}, {-3.0, 31.0, 0, 1}, {2.0, 31.0, 0, 1}, {3.0, 31.0, 0, 1},
+
335 {4.0, 31.0, 0, 1}, {9.0, 31.0, 0, 1}, {10.0, 31.0, 0, 1}, {11.0, 31.0, 0, 1}
+
336};
+
337
+
338#endif // CONFIG_3D_OBJECT_CUSTOM
+
const float image_to_3d_matrix_custom[1732][4]
+
const uint8_t image_to_bmp_array_custom[512]
+ +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html new file mode 100644 index 0000000..0967b39 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html @@ -0,0 +1,178 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image_to_3d_matrix.h File Reference
+
+
+
#include <stdint.h>
+#include "sdkconfig.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t image_to_bmp_array_custom [512]
const float image_to_3d_matrix_custom [1732][4]
+

Variable Documentation

+ +

◆ image_to_3d_matrix_custom

+ +
+
+ + + + + +
+ + + + +
const float image_to_3d_matrix_custom[1732][4]
+
+extern
+
+ +
+
+ +

◆ image_to_bmp_array_custom

+ +
+
+ + + + + +
+ + + + +
const uint8_t image_to_bmp_array_custom[512]
+
+extern
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.js new file mode 100644 index 0000000..10c0a4b --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.js @@ -0,0 +1,5 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h = +[ + [ "image_to_3d_matrix_custom", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html#a721fe700ee8e1b1734407b4c6c1b74d0", null ], + [ "image_to_bmp_array_custom", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h.html#adbd688e9067b26602a73dad45dd9c275", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.md5 new file mode 100644 index 0000000..47a4bde --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.md5 @@ -0,0 +1 @@ +1fdaefcc5e53560119437665864021ee \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.svg new file mode 100644 index 0000000..cb79c4b --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +image_to_3d_matrix.c + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl_org.svg new file mode 100644 index 0000000..b2ebb61 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +image_to_3d_matrix.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.md5 new file mode 100644 index 0000000..94fcaac --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.md5 @@ -0,0 +1 @@ +4c0f14b797821d1a5a5519103ab1b445 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.svg new file mode 100644 index 0000000..7172da9 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl_org.svg new file mode 100644 index 0000000..6d44af1 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +image_to_3d_matrix.h + + +Node1 + + +image_to_3d_matrix.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h_source.html new file mode 100644 index 0000000..f80fe9a --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__data_2image__to__3d__matrix_8h_source.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: image_to_3d_matrix.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_data/image_to_3d_matrix.h
+
+
+Go to the documentation of this file.
1// File generated by ImgTo3D.py
+
2// Image file converted to 3D matrix: cpu_logo.png
+
3
+
4#pragma once
+
5
+
6#include <stdint.h>
+
7#include "sdkconfig.h"
+
8
+
9#ifdef __cplusplus
+
10extern "C" {
+
11#endif
+
12
+
13extern const uint8_t image_to_bmp_array_custom[512];
+
14extern const float image_to_3d_matrix_custom[1732][4];
+
15
+
16#ifdef __cplusplus
+
17}
+
18#endif
+
const float image_to_3d_matrix_custom[1732][4]
+
const uint8_t image_to_bmp_array_custom[512]
+
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html new file mode 100644 index 0000000..00c753e --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html @@ -0,0 +1,488 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics_support.cpp File Reference
+
+
+
#include <malloc.h>
+#include <math.h>
+#include "graphics_support.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

void init_perspective_matrix (dspm::Mat &P_m)
 initialize perspective projection matrix
void update_perspective_matrix (dspm::Mat &P_m, float fov)
 update perspective matrix
void update_scaling_matrix (dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
 update scaling matrix
void update_translation_matrix (dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
 update translation matrix
void update_rotation_matrix (dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
 update rotation matrix
void print_matrix (dspm::Mat matrix)
 printf matrix to the terminal output
+

Function Documentation

+ +

◆ init_perspective_matrix()

+ +
+
+ + + + + + + +
void init_perspective_matrix (dspm::Mat & P_m)
+
+ +

initialize perspective projection matrix

+

Function initializes Mat class object holding perspective projection matrix.

+
Parameters
+ + +
P_mperspective projection matrix object from the Mat class
+
+
+ +

Definition at line 12 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
13{
+
14 const float fov = 90; // field of view in degrees
+
15 const float near = 0.0001;
+
16 const float far = 1;
+
17
+
18 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
19
+
20 // Initialize matrix to zero
+
21 for (int row = 0; row < P_m.rows; row++) {
+
22 for (int col = 0; col < P_m.cols; col++) {
+
23 P_m(row, col) = 0;
+
24 }
+
25 }
+
26
+
27 P_m(0, 0) = S;
+
28 P_m(1, 1) = S;
+
29 P_m(2, 2) = -far / (far - near);
+
30 P_m(3, 2) = (-far * near) / (far - near);
+
31 P_m(2, 3) = -1;
+
32 P_m(3, 3) = 1;
+
33}
+ +
int cols
Definition mat.h:34
+
int rows
Definition mat.h:33
+
+

References dspm::Mat::cols, DEG_TO_RAD, and dspm::Mat::rows.

+ +
+
+ +

◆ print_matrix()

+ +
+
+ + + + + + + +
void print_matrix (dspm::Mat matrix)
+
+ +

printf matrix to the terminal output

+

Print matrix for debug purposes

+
Parameters
+ + +
matrixmatrix to be printed
+
+
+ +

Definition at line 105 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
106{
+
107 for (int rows = 0; rows < matrix.rows; rows++) {
+
108 for (int cols = 0; cols < matrix.cols; cols++) {
+
109 std::cout << matrix(rows, cols) << ", \t";
+
110 }
+
111 std::cout << std::endl;
+
112 }
+
113 std::cout << std::endl << std::endl;
+
114}
+
+

References dspm::Mat::cols, and dspm::Mat::rows.

+ +
+
+ +

◆ update_perspective_matrix()

+ +
+
+ + + + + + + + + + + +
void update_perspective_matrix (dspm::Mat & P_m,
float fov )
+
+ +

update perspective matrix

+

Function updates perspective matrix with a new value of field of view

+
Parameters
+ + + +
P_mperspective projection matrix object from the Mat class
fovfield of view in degrees
+
+
+ +

Definition at line 35 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
36{
+
37 const float near = 0.0001;
+
38 const float far = 1;
+
39
+
40 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
41
+
42 // Initialize matrix to zero
+
43 for (int row = 0; row < P_m.rows; row++) {
+
44 for (int col = 0; col < P_m.cols; col++) {
+
45 P_m(row, col) = 0;
+
46 }
+
47 }
+
48
+
49 P_m(0, 0) = S;
+
50 P_m(1, 1) = S;
+
51 P_m(2, 2) = -far / (far - near);
+
52 P_m(3, 2) = (-far * near) / (far - near);
+
53 P_m(2, 3) = -1;
+
54 P_m(3, 3) = 1;
+
55
+
56 P_m(3, 0) = (float)SSD1606_X_CENTER;
+
57 P_m(3, 1) = (float)SSD1606_Y_CENTER;
+
58}
+ + +
+

References dspm::Mat::cols, DEG_TO_RAD, dspm::Mat::rows, SSD1606_X_CENTER, and SSD1606_Y_CENTER.

+ +
+
+ +

◆ update_rotation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void update_rotation_matrix (dspm::Mat & T_m,
float rot_x,
float rot_y,
float rot_z )
+
+ +

update rotation matrix

+

Function updates rotation part of the tranformation matrix

+
Parameters
+ + + + + +
T_mtransformation matrix object from the Mat class
rot_xrotation angle for x direction of the vector
rot_yrotation angle for y direction of the vector
rot_zrotation angle for z direction of the vector
+
+
+ +

Definition at line 87 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
88{
+
89 dspm::Mat rotation_data(3, 1); // matrix(3x1) that holds x, y, z rotation data
+
90 rotation_data(0, 0) = DEG_TO_RAD * rot_x; // rotation data x
+
91 rotation_data(1, 0) = DEG_TO_RAD * rot_y; // rotation data y
+
92 rotation_data(2, 0) = DEG_TO_RAD * rot_z; // rotation data z
+
93
+
94 // Create and populate rotation matrix R(3x3). Then inverse it
+
95 dspm::Mat R = ekf::eul2rotm(rotation_data.data).t();
+
96
+
97 // Enlarge rotation matrix from 3x3 to 4x4
+
98 for (int row = 0; row < R.rows; row++) { // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
99 for (int col = 0; col < R.cols; col++) {
+
100 T_m(row, col) = R(row, col);
+
101 }
+
102 }
+
103}
+
Matrix.
Definition mat.h:30
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
+

References dspm::Mat::cols, dspm::Mat::data, DEG_TO_RAD, ekf::eul2rotm(), dspm::Mat::rows, and dspm::Mat::t().

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ update_scaling_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_scaling_matrix (dspm::Mat & T_m,
bool keep_diagonal,
float scale_x,
float scale_y,
float scale_z )
+
+ +

update scaling matrix

+

Function updates scaling part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
keep_diagonalif true: diagonal row of the transformation matrix T_m will be mulitplied with the scaling values if false: diagonal row of the transformation matrix T_m will be substituted with new scaling values
scale_xscaling value for x coordinate of the vector
scale_yscaling value for y coordinate of the vector
scale_zscaling value for z coordinate of the vector
+
+
+ +

Definition at line 60 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
61{
+
62 if (keep_diagonal) { // Multiply the diagonal values of the transformation matrix with the scaling
+
63 T_m(0, 0) *= scale_x; // (in case a rotation is already applied)
+
64 T_m(1, 1) *= scale_y;
+
65 T_m(2, 2) *= scale_z;
+
66 } else {
+
67 T_m(0, 0) = scale_x;
+
68 T_m(1, 1) = scale_y;
+
69 T_m(2, 2) = scale_z;
+
70 }
+
71}
+
+
+
+ +

◆ update_translation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_translation_matrix (dspm::Mat & T_m,
bool row,
float move_x,
float move_y,
float move_z )
+
+ +

update translation matrix

+

Function updates translation part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
rowif true: translation values will be placed to the 3rd row of the transformation matrix T_m if false: translation values will be placed to the 3rd col of the transformation matrix T_m
move_xtranslation value for x coordinate of the vector
move_ytranslation value for y coordinate of the vector
move_ztranslation value for z coordinate of the vector
+
+
+ +

Definition at line 73 of file external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
74{
+
75 if (row) { // update values in 4-th row, if translation matrix is the second multiplier
+
76 T_m(3, 0) = move_x;
+
77 T_m(3, 1) = move_y;
+
78 T_m(3, 2) = move_z;
+
79 } else { // update values in 4-th collum, if translation matrix is the first multiplier
+
80 T_m(0, 3) = move_x;
+
81 T_m(1, 3) = move_y;
+
82 T_m(2, 3) = move_z;
+
83 }
+
84}
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js new file mode 100644 index 0000000..104a880 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.js @@ -0,0 +1,9 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp = +[ + [ "init_perspective_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#ab5c13c601603a6d1b586b8ad9aa7ee98", null ], + [ "print_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a99863c33e6651eb83f8211d67ccc7f2e", null ], + [ "update_perspective_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a7361f858eac611923f3e090a2a4837c8", null ], + [ "update_rotation_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#abddf00a5f71e067190147e3ecdb49d3f", null ], + [ "update_scaling_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a7d3520bcf116c1dcaa67c1925e48b2d9", null ], + [ "update_translation_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp.html#a2f5dfc8616993b1485635978ec29513d", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.md5 new file mode 100644 index 0000000..d01b6a8 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.md5 @@ -0,0 +1 @@ +199ad0a6af94244ab34dbbc7fe8293a0 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.svg new file mode 100644 index 0000000..2ded980 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl.svg @@ -0,0 +1,716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +graphics_support.cpp + + +Node1 + + +graphics_support.cpp + + + + + +Node2 + + +malloc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +graphics_support.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node4->Node7 + + + + + + + + +Node75 + + +ekf_imu13states.h + + + + + +Node4->Node75 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node5->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node5->Node17 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node5->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node5->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node5->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node5->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node5->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node5->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node5->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node5->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node5->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node5->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node5->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node5->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node5->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node5->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node5->Node74 + + + + + + + + +Node6->Node7 + + + + + + + + +Node15->Node7 + + + + + + + + +Node33->Node6 + + + + + + + + +Node35->Node33 + + + + + + + + +Node72->Node15 + + + + + + + + +Node74->Node15 + + + + + + + + +Node76 + + +ekf.h + + + + + +Node75->Node76 + + + + + + + + +Node76->Node3 + + + + + + + + +Node76->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl_org.svg new file mode 100644 index 0000000..c329609 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp__incl_org.svg @@ -0,0 +1,633 @@ + + + + + + +graphics_support.cpp + + +Node1 + + +graphics_support.cpp + + + + + +Node2 + + +malloc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +graphics_support.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_dsp.h + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node4->Node7 + + + + + + + + +Node75 + + +ekf_imu13states.h + + + + + +Node4->Node75 + + + + + + + + +Node6 + + +dsp_common.h + + + + + +Node5->Node6 + + + + + + + + +Node15 + + +dsp_types.h + + + + + +Node5->Node15 + + + + + + + + +Node17 + + +dsps_dotprod.h + + + + + +Node5->Node17 + + + + + + + + +Node21 + + +dsps_math.h + + + + + +Node5->Node21 + + + + + + + + +Node33 + + +dsps_fir.h + + + + + +Node5->Node33 + + + + + + + + +Node35 + + +dsps_resampler.h + + + + + +Node5->Node35 + + + + + + + + +Node36 + + +dsps_biquad.h + + + + + +Node5->Node36 + + + + + + + + +Node38 + + +dsps_biquad_gen.h + + + + + +Node5->Node38 + + + + + + + + +Node39 + + +dsps_wind.h + + + + + +Node5->Node39 + + + + + + + + +Node46 + + +dsps_conv.h + + + + + +Node5->Node46 + + + + + + + + +Node48 + + +dsps_corr.h + + + + + +Node5->Node48 + + + + + + + + +Node49 + + +dsps_d_gen.h + + + + + +Node5->Node49 + + + + + + + + +Node50 + + +dsps_h_gen.h + + + + + +Node5->Node50 + + + + + + + + +Node51 + + +dsps_tone_gen.h + + + + + +Node5->Node51 + + + + + + + + +Node52 + + +dsps_snr.h + + + + + +Node5->Node52 + + + + + + + + +Node53 + + +dsps_sfdr.h + + + + + +Node5->Node53 + + + + + + + + +Node54 + + +dsps_fft2r.h + + + + + +Node5->Node54 + + + + + + + + +Node57 + + +dsps_fft4r.h + + + + + +Node5->Node57 + + + + + + + + +Node59 + + +dsps_dct.h + + + + + +Node5->Node59 + + + + + + + + +Node60 + + +dspm_matrix.h + + + + + +Node5->Node60 + + + + + + + + +Node71 + + +dsps_view.h + + + + + +Node5->Node71 + + + + + + + + +Node72 + + +dspi_dotprod.h + + + + + +Node5->Node72 + + + + + + + + +Node74 + + +dspi_conv.h + + + + + +Node5->Node74 + + + + + + + + +Node6->Node7 + + + + + + + + +Node15->Node7 + + + + + + + + +Node33->Node6 + + + + + + + + +Node35->Node33 + + + + + + + + +Node72->Node15 + + + + + + + + +Node74->Node15 + + + + + + + + +Node76 + + +ekf.h + + + + + +Node75->Node76 + + + + + + + + +Node76->Node3 + + + + + + + + +Node76->Node7 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 new file mode 100644 index 0000000..064f8e5 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 @@ -0,0 +1 @@ +1483069897a11440e85500ca78981929 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg new file mode 100644 index 0000000..e0b5c81 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::t + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg new file mode 100644 index 0000000..4b84755 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::t + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html new file mode 100644 index 0000000..b4f0b86 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8cpp_source.html @@ -0,0 +1,248 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include <malloc.h>
+
8#include <math.h>
+
9#include "graphics_support.h"
+
10
+
11
+
+ +
13{
+
14 const float fov = 90; // field of view in degrees
+
15 const float near = 0.0001;
+
16 const float far = 1;
+
17
+
18 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
19
+
20 // Initialize matrix to zero
+
21 for (int row = 0; row < P_m.rows; row++) {
+
22 for (int col = 0; col < P_m.cols; col++) {
+
23 P_m(row, col) = 0;
+
24 }
+
25 }
+
26
+
27 P_m(0, 0) = S;
+
28 P_m(1, 1) = S;
+
29 P_m(2, 2) = -far / (far - near);
+
30 P_m(3, 2) = (-far * near) / (far - near);
+
31 P_m(2, 3) = -1;
+
32 P_m(3, 3) = 1;
+
33}
+
+
34
+
+ +
36{
+
37 const float near = 0.0001;
+
38 const float far = 1;
+
39
+
40 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
41
+
42 // Initialize matrix to zero
+
43 for (int row = 0; row < P_m.rows; row++) {
+
44 for (int col = 0; col < P_m.cols; col++) {
+
45 P_m(row, col) = 0;
+
46 }
+
47 }
+
48
+
49 P_m(0, 0) = S;
+
50 P_m(1, 1) = S;
+
51 P_m(2, 2) = -far / (far - near);
+
52 P_m(3, 2) = (-far * near) / (far - near);
+
53 P_m(2, 3) = -1;
+
54 P_m(3, 3) = 1;
+
55
+
56 P_m(3, 0) = (float)SSD1606_X_CENTER;
+
57 P_m(3, 1) = (float)SSD1606_Y_CENTER;
+
58}
+
+
59
+
+
60void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
+
61{
+
62 if (keep_diagonal) { // Multiply the diagonal values of the transformation matrix with the scaling
+
63 T_m(0, 0) *= scale_x; // (in case a rotation is already applied)
+
64 T_m(1, 1) *= scale_y;
+
65 T_m(2, 2) *= scale_z;
+
66 } else {
+
67 T_m(0, 0) = scale_x;
+
68 T_m(1, 1) = scale_y;
+
69 T_m(2, 2) = scale_z;
+
70 }
+
71}
+
+
72
+
+
73void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
+
74{
+
75 if (row) { // update values in 4-th row, if translation matrix is the second multiplier
+
76 T_m(3, 0) = move_x;
+
77 T_m(3, 1) = move_y;
+
78 T_m(3, 2) = move_z;
+
79 } else { // update values in 4-th collum, if translation matrix is the first multiplier
+
80 T_m(0, 3) = move_x;
+
81 T_m(1, 3) = move_y;
+
82 T_m(2, 3) = move_z;
+
83 }
+
84}
+
+
85
+
86
+
+
87void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
+
88{
+
89 dspm::Mat rotation_data(3, 1); // matrix(3x1) that holds x, y, z rotation data
+
90 rotation_data(0, 0) = DEG_TO_RAD * rot_x; // rotation data x
+
91 rotation_data(1, 0) = DEG_TO_RAD * rot_y; // rotation data y
+
92 rotation_data(2, 0) = DEG_TO_RAD * rot_z; // rotation data z
+
93
+
94 // Create and populate rotation matrix R(3x3). Then inverse it
+
95 dspm::Mat R = ekf::eul2rotm(rotation_data.data).t();
+
96
+
97 // Enlarge rotation matrix from 3x3 to 4x4
+
98 for (int row = 0; row < R.rows; row++) { // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
99 for (int col = 0; col < R.cols; col++) {
+
100 T_m(row, col) = R(row, col);
+
101 }
+
102 }
+
103}
+
+
104
+
+ +
106{
+
107 for (int rows = 0; rows < matrix.rows; rows++) {
+
108 for (int cols = 0; cols < matrix.cols; cols++) {
+
109 std::cout << matrix(rows, cols) << ", \t";
+
110 }
+
111 std::cout << std::endl;
+
112 }
+
113 std::cout << std::endl << std::endl;
+
114}
+
+ + + +
Matrix.
Definition mat.h:30
+
float * data
Definition mat.h:37
+
int cols
Definition mat.h:34
+
int rows
Definition mat.h:33
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void print_matrix(dspm::Mat matrix)
printf matrix to the terminal output
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html new file mode 100644 index 0000000..c2f1ced --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html @@ -0,0 +1,700 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics_support.h File Reference
+
+
+
#include "esp_dsp.h"
+#include "ekf_imu13states.h"
+#include <stdint.h>
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  image_3d_matrix_s
 Data struct of 3d image matrix. More...
struct  image_3d_matrix_kalman_s
 Data struct of 3d image matrix with kalman filter object. More...
+ + + + + + + + +

+Macros

#define DEG_TO_RAD   0.01745329252f
#define RAD_TO_DEG   57.29577951f
#define MATRIX_SIZE   4
#define SSD1306_WIDTH   128
#define SSD1306_HEIGHT   64
#define SSD1606_X_CENTER   (SSD1306_WIDTH / 2)
#define SSD1606_Y_CENTER   (SSD1306_HEIGHT / 2)
+ + + + + +

+Typedefs

typedef struct image_3d_matrix_s image_3d_matrix_t
 Data struct of 3d image matrix.
typedef struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
 Data struct of 3d image matrix with kalman filter object.
+ + + + + + + + + + + + + +

+Functions

void init_perspective_matrix (dspm::Mat &P_m)
 initialize perspective projection matrix
void update_scaling_matrix (dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
 update scaling matrix
void update_translation_matrix (dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
 update translation matrix
void update_rotation_matrix (dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
 update rotation matrix
void update_perspective_matrix (dspm::Mat &P_m, float fov)
 update perspective matrix
void print_matrix (dspm::Mat matrix)
 printf matrix to the terminal output
+

Macro Definition Documentation

+ +

◆ DEG_TO_RAD

+ +
+
+ + + + +
#define DEG_TO_RAD   0.01745329252f
+
+
+ +

◆ MATRIX_SIZE

+ +
+
+ + + + +
#define MATRIX_SIZE   4
+
+
+ +

◆ RAD_TO_DEG

+ +
+
+ + + + +
#define RAD_TO_DEG   57.29577951f
+
+
+ +

◆ SSD1306_HEIGHT

+ +
+
+ + + + +
#define SSD1306_HEIGHT   64
+
+
+ +

◆ SSD1306_WIDTH

+ +
+
+ + + + +
#define SSD1306_WIDTH   128
+
+
+ +

◆ SSD1606_X_CENTER

+ +
+
+ + + + +
#define SSD1606_X_CENTER   (SSD1306_WIDTH / 2)
+
+
+ +

◆ SSD1606_Y_CENTER

+ +
+
+ + + + +
#define SSD1606_Y_CENTER   (SSD1306_HEIGHT / 2)
+
+
+

Typedef Documentation

+ +

◆ image_3d_matrix_kalman_t

+ +
+
+ +

Data struct of 3d image matrix with kalman filter object.

+

This structure is used to hold a 3d coordinates of a monochromatic image centered to the origin of the cartesian space (0, 0, 0), that has ben processed by the image_to_3d_array.py. Kalman filter object is added to the matrix, for the purpose of RTOS task arguments.

+ +
+
+ +

◆ image_3d_matrix_t

+ +
+
+ + + + +
typedef struct image_3d_matrix_s image_3d_matrix_t
+
+ +

Data struct of 3d image matrix.

+

This structure is used to hold a 3d coordinates of a monochromatic image centered to the origin of the cartesian space (0, 0, 0), that has ben processed by the image_to_3d_array.py.

+ +
+
+

Function Documentation

+ +

◆ init_perspective_matrix()

+ +
+
+ + + + + + + +
void init_perspective_matrix (dspm::Mat & P_m)
+
+ +

initialize perspective projection matrix

+

Function initializes Mat class object holding perspective projection matrix.

+
Parameters
+ + +
P_mperspective projection matrix object from the Mat class
+
+
+ +

Definition at line 12 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
13{
+
14 const float fov = 90; // field of view in degrees
+
15 const float near = 0.0001;
+
16 const float far = 1;
+
17
+
18 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
19
+
20 // Initialize matrix to zero
+
21 for (int row = 0; row < P_m.rows; row++) {
+
22 for (int col = 0; col < P_m.cols; col++) {
+
23 P_m(row, col) = 0;
+
24 }
+
25 }
+
26
+
27 P_m(0, 0) = S;
+
28 P_m(1, 1) = S;
+
29 P_m(2, 2) = -far / (far - near);
+
30 P_m(3, 2) = (-far * near) / (far - near);
+
31 P_m(2, 3) = -1;
+
32 P_m(3, 3) = 1;
+
33}
+ +
int cols
Definition mat.h:34
+
int rows
Definition mat.h:33
+
+

References dspm::Mat::cols, DEG_TO_RAD, and dspm::Mat::rows.

+ +

Referenced by app_main().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ print_matrix()

+ +
+
+ + + + + + + +
void print_matrix (dspm::Mat matrix)
+
+ +

printf matrix to the terminal output

+

Print matrix for debug purposes

+
Parameters
+ + +
matrixmatrix to be printed
+
+
+ +

Definition at line 105 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
106{
+
107 for (int rows = 0; rows < matrix.rows; rows++) {
+
108 for (int cols = 0; cols < matrix.cols; cols++) {
+
109 std::cout << matrix(rows, cols) << ", \t";
+
110 }
+
111 std::cout << std::endl;
+
112 }
+
113 std::cout << std::endl << std::endl;
+
114}
+
+

References dspm::Mat::cols, and dspm::Mat::rows.

+ +
+
+ +

◆ update_perspective_matrix()

+ +
+
+ + + + + + + + + + + +
void update_perspective_matrix (dspm::Mat & P_m,
float fov )
+
+ +

update perspective matrix

+

Function updates perspective matrix with a new value of field of view

+
Parameters
+ + + +
P_mperspective projection matrix object from the Mat class
fovfield of view in degrees
+
+
+ +

Definition at line 35 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
36{
+
37 const float near = 0.0001;
+
38 const float far = 1;
+
39
+
40 const float S = 1 / (tan((fov / 2) * DEG_TO_RAD));
+
41
+
42 // Initialize matrix to zero
+
43 for (int row = 0; row < P_m.rows; row++) {
+
44 for (int col = 0; col < P_m.cols; col++) {
+
45 P_m(row, col) = 0;
+
46 }
+
47 }
+
48
+
49 P_m(0, 0) = S;
+
50 P_m(1, 1) = S;
+
51 P_m(2, 2) = -far / (far - near);
+
52 P_m(3, 2) = (-far * near) / (far - near);
+
53 P_m(2, 3) = -1;
+
54 P_m(3, 3) = 1;
+
55
+
56 P_m(3, 0) = (float)SSD1606_X_CENTER;
+
57 P_m(3, 1) = (float)SSD1606_Y_CENTER;
+
58}
+ + +
+

References dspm::Mat::cols, DEG_TO_RAD, dspm::Mat::rows, SSD1606_X_CENTER, and SSD1606_Y_CENTER.

+ +

Referenced by draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image(), get_pressure_task(), get_pressure_task(), get_pressure_task(), get_pressure_task(), kalman_filter_task(), kalman_filter_task(), kalman_filter_task(), and kalman_filter_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ update_rotation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void update_rotation_matrix (dspm::Mat & T_m,
float rot_x,
float rot_y,
float rot_z )
+
+ +

update rotation matrix

+

Function updates rotation part of the tranformation matrix

+
Parameters
+ + + + + +
T_mtransformation matrix object from the Mat class
rot_xrotation angle for x direction of the vector
rot_yrotation angle for y direction of the vector
rot_zrotation angle for z direction of the vector
+
+
+ +

Definition at line 87 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
88{
+
89 dspm::Mat rotation_data(3, 1); // matrix(3x1) that holds x, y, z rotation data
+
90 rotation_data(0, 0) = DEG_TO_RAD * rot_x; // rotation data x
+
91 rotation_data(1, 0) = DEG_TO_RAD * rot_y; // rotation data y
+
92 rotation_data(2, 0) = DEG_TO_RAD * rot_z; // rotation data z
+
93
+
94 // Create and populate rotation matrix R(3x3). Then inverse it
+
95 dspm::Mat R = ekf::eul2rotm(rotation_data.data).t();
+
96
+
97 // Enlarge rotation matrix from 3x3 to 4x4
+
98 for (int row = 0; row < R.rows; row++) { // Copy rotation matrix R(3x3) to transformation matrix T_m(4x4)
+
99 for (int col = 0; col < R.cols; col++) {
+
100 T_m(row, col) = R(row, col);
+
101 }
+
102 }
+
103}
+
Matrix.
Definition mat.h:30
+
Mat t()
Definition mat.cpp:383
+
static dspm::Mat eul2rotm(float xyz[3])
Definition ekf.cpp:251
+
+

References dspm::Mat::cols, dspm::Mat::data, DEG_TO_RAD, ekf::eul2rotm(), dspm::Mat::rows, and dspm::Mat::t().

+ +

Referenced by draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), and draw_3d_image_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ update_scaling_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_scaling_matrix (dspm::Mat & T_m,
bool keep_diagonal,
float scale_x,
float scale_y,
float scale_z )
+
+ +

update scaling matrix

+

Function updates scaling part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
keep_diagonalif true: diagonal row of the transformation matrix T_m will be mulitplied with the scaling values if false: diagonal row of the transformation matrix T_m will be substituted with new scaling values
scale_xscaling value for x coordinate of the vector
scale_yscaling value for y coordinate of the vector
scale_zscaling value for z coordinate of the vector
+
+
+ +

Definition at line 60 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
61{
+
62 if (keep_diagonal) { // Multiply the diagonal values of the transformation matrix with the scaling
+
63 T_m(0, 0) *= scale_x; // (in case a rotation is already applied)
+
64 T_m(1, 1) *= scale_y;
+
65 T_m(2, 2) *= scale_z;
+
66 } else {
+
67 T_m(0, 0) = scale_x;
+
68 T_m(1, 1) = scale_y;
+
69 T_m(2, 2) = scale_z;
+
70 }
+
71}
+
+

Referenced by dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), draw_3d_image_task(), and draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ update_translation_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_translation_matrix (dspm::Mat & T_m,
bool row,
float move_x,
float move_y,
float move_z )
+
+ +

update translation matrix

+

Function updates translation part of the transformation matrix.

+
Parameters
+ + + + + + +
T_mtransformation matrix object from the Mat class
rowif true: translation values will be placed to the 3rd row of the transformation matrix T_m if false: translation values will be placed to the 3rd col of the transformation matrix T_m
move_xtranslation value for x coordinate of the vector
move_ytranslation value for y coordinate of the vector
move_ztranslation value for z coordinate of the vector
+
+
+ +

Definition at line 73 of file applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp.

+
74{
+
75 if (row) { // update values in 4-th row, if translation matrix is the second multiplier
+
76 T_m(3, 0) = move_x;
+
77 T_m(3, 1) = move_y;
+
78 T_m(3, 2) = move_z;
+
79 } else { // update values in 4-th collum, if translation matrix is the first multiplier
+
80 T_m(0, 3) = move_x;
+
81 T_m(1, 3) = move_y;
+
82 T_m(2, 3) = move_z;
+
83 }
+
84}
+
+

Referenced by dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), dispaly_esp_text(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), draw_3d_image_task(), and draw_3d_image_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js new file mode 100644 index 0000000..bfc9919 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.js @@ -0,0 +1,20 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h = +[ + [ "image_3d_matrix_s", "structimage__3d__matrix__s.html", "structimage__3d__matrix__s" ], + [ "image_3d_matrix_kalman_s", "structimage__3d__matrix__kalman__s.html", "structimage__3d__matrix__kalman__s" ], + [ "DEG_TO_RAD", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a212460e743fecb084d717bb2180c5a56", null ], + [ "MATRIX_SIZE", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a2bd32349fcbeb6ee86434a65226cba1a", null ], + [ "RAD_TO_DEG", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a89e47af0449640d4f15191aba5ca24c6", null ], + [ "SSD1306_HEIGHT", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a4e9409448a0df95c1686670e09b457b7", null ], + [ "SSD1306_WIDTH", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#ae5a2aa8865dd03537b97fd1c9037371b", null ], + [ "SSD1606_X_CENTER", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a7e67b59980d1941c4973fdd5e9f58b4f", null ], + [ "SSD1606_Y_CENTER", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#ab905ba021420183fc79b4d8a71213b1d", null ], + [ "image_3d_matrix_kalman_t", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a85a113d368cff695e92112af79745f63", null ], + [ "image_3d_matrix_t", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#aef6b2b7c7e85607408b2328992dc4c92", null ], + [ "init_perspective_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#ab5c13c601603a6d1b586b8ad9aa7ee98", null ], + [ "print_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a99863c33e6651eb83f8211d67ccc7f2e", null ], + [ "update_perspective_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a7361f858eac611923f3e090a2a4837c8", null ], + [ "update_rotation_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#abddf00a5f71e067190147e3ecdb49d3f", null ], + [ "update_scaling_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a7d3520bcf116c1dcaa67c1925e48b2d9", null ], + [ "update_translation_matrix", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h.html#a2f5dfc8616993b1485635978ec29513d", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.md5 new file mode 100644 index 0000000..da6134e --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.md5 @@ -0,0 +1 @@ +51613113c6325b2716c85cb6f68e7bf1 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.svg new file mode 100644 index 0000000..8118c1c --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +graphics_support.cpp + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl_org.svg new file mode 100644 index 0000000..721193d --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__dep__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +graphics_support.cpp + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.md5 new file mode 100644 index 0000000..c47bcc0 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.md5 @@ -0,0 +1 @@ +f220a0c2d9ec084061edc671fba556af \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.svg new file mode 100644 index 0000000..38a404a --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl.svg @@ -0,0 +1,1672 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node1->Node4 + + + + + + + + +Node72 + + +ekf_imu13states.h + + + + + +Node1->Node72 + + + + + + + + +Node3 + + +dsp_common.h + + + + + +Node2->Node3 + + + + + + + + +Node12 + + +dsp_types.h + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +dsps_dotprod.h + + + + + +Node2->Node14 + + + + + + + + +Node18 + + +dsps_math.h + + + + + +Node2->Node18 + + + + + + + + +Node30 + + +dsps_fir.h + + + + + +Node2->Node30 + + + + + + + + +Node32 + + +dsps_resampler.h + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +dsps_biquad.h + + + + + +Node2->Node33 + + + + + + + + +Node35 + + +dsps_biquad_gen.h + + + + + +Node2->Node35 + + + + + + + + +Node36 + + +dsps_wind.h + + + + + +Node2->Node36 + + + + + + + + +Node43 + + +dsps_conv.h + + + + + +Node2->Node43 + + + + + + + + +Node45 + + +dsps_corr.h + + + + + +Node2->Node45 + + + + + + + + +Node46 + + +dsps_d_gen.h + + + + + +Node2->Node46 + + + + + + + + +Node47 + + +dsps_h_gen.h + + + + + +Node2->Node47 + + + + + + + + +Node48 + + +dsps_tone_gen.h + + + + + +Node2->Node48 + + + + + + + + +Node49 + + +dsps_snr.h + + + + + +Node2->Node49 + + + + + + + + +Node50 + + +dsps_sfdr.h + + + + + +Node2->Node50 + + + + + + + + +Node51 + + +dsps_fft2r.h + + + + + +Node2->Node51 + + + + + + + + +Node54 + + +dsps_fft4r.h + + + + + +Node2->Node54 + + + + + + + + +Node56 + + +dsps_dct.h + + + + + +Node2->Node56 + + + + + + + + +Node57 + + +dspm_matrix.h + + + + + +Node2->Node57 + + + + + + + + +Node68 + + +dsps_view.h + + + + + +Node2->Node68 + + + + + + + + +Node69 + + +dspi_dotprod.h + + + + + +Node2->Node69 + + + + + + + + +Node71 + + +dspi_conv.h + + + + + +Node2->Node71 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdbool.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dsp_err.h + + + + + +Node3->Node6 + + + + + + + + +Node10 + + +esp_idf_version.h + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +x86intrin.h + + + + + +Node3->Node11 + + + + + + + + +Node6->Node4 + + + + + + + + +Node12->Node4 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +inttypes.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node15 + + +esp_log.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_dotprod_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +sdkconfig.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_add.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_sub.h + + + + + +Node18->Node21 + + + + + + + + +Node23 + + +dsps_mul.h + + + + + +Node18->Node23 + + + + + + + + +Node25 + + +dsps_addc.h + + + + + +Node18->Node25 + + + + + + + + +Node27 + + +dsps_mulc.h + + + + + +Node18->Node27 + + + + + + + + +Node29 + + +dsps_sqrt.h + + + + + +Node18->Node29 + + + + + + + + +Node19->Node6 + + + + + + + + +Node21->Node6 + + + + + + + + +Node23->Node6 + + + + + + + + +Node25->Node6 + + + + + + + + +Node27->Node6 + + + + + + + + +Node29->Node6 + + + + + + + + +Node30->Node3 + + + + + + + + +Node30->Node6 + + + + + + + + +Node31 + + +dsps_fir_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node31->Node17 + + + + + + + + +Node32->Node6 + + + + + + + + +Node32->Node30 + + + + + + + + +Node33->Node6 + + + + + + + + +Node34 + + +dsps_biquad_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node17 + + + + + + + + +Node35->Node6 + + + + + + + + +Node37 + + +dsps_wind_hann.h + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman.h + + + + + +Node36->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_harris.h + + + + + +Node36->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +dsps_wind_nuttall.h + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +dsps_wind_flat_top.h + + + + + +Node36->Node42 + + + + + + + + +Node43->Node6 + + + + + + + + +Node44 + + +dsps_conv_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node6 + + + + + + + + +Node45->Node44 + + + + + + + + +Node46->Node6 + + + + + + + + +Node47->Node6 + + + + + + + + +Node48->Node6 + + + + + + + + +Node49->Node6 + + + + + + + + +Node50->Node6 + + + + + + + + +Node51->Node6 + + + + + + + + +Node51->Node17 + + + + + + + + +Node52 + + +dsps_fft_tables.h + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +dsps_fft2r_platform.h + + + + + +Node51->Node53 + + + + + + + + +Node53->Node17 + + + + + + + + +Node54->Node6 + + + + + + + + +Node54->Node17 + + + + + + + + +Node54->Node52 + + + + + + + + +Node55 + + +dsps_fft4r_platform.h + + + + + +Node54->Node55 + + + + + + + + +Node55->Node17 + + + + + + + + +Node56->Node6 + + + + + + + + +Node56->Node17 + + + + + + + + +Node58 + + +dspm_add.h + + + + + +Node57->Node58 + + + + + + + + +Node60 + + +dspm_addc.h + + + + + +Node57->Node60 + + + + + + + + +Node62 + + +dspm_mult.h + + + + + +Node57->Node62 + + + + + + + + +Node64 + + +dspm_mulc.h + + + + + +Node57->Node64 + + + + + + + + +Node66 + + +dspm_sub.h + + + + + +Node57->Node66 + + + + + + + + +Node58->Node6 + + + + + + + + +Node60->Node6 + + + + + + + + +Node62->Node6 + + + + + + + + +Node64->Node6 + + + + + + + + +Node66->Node6 + + + + + + + + +Node68->Node6 + + + + + + + + +Node69->Node6 + + + + + + + + +Node69->Node12 + + + + + + + + +Node69->Node15 + + + + + + + + +Node70 + + +dspi_dotprod_platform.h + + + + + +Node69->Node70 + + + + + + + + +Node70->Node17 + + + + + + + + +Node71->Node6 + + + + + + + + +Node71->Node12 + + + + + + + + +Node71->Node44 + + + + + + + + +Node73 + + +ekf.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node73->Node5 + + + + + + + + +Node74 + + +math.h + + + + + +Node73->Node74 + + + + + + + + +Node75 + + +mat.h + + + + + +Node73->Node75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl_org.svg new file mode 100644 index 0000000..dea979c --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h__incl_org.svg @@ -0,0 +1,1589 @@ + + + + + + +graphics_support.h + + +Node1 + + +graphics_support.h + + + + + +Node2 + + +esp_dsp.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node1->Node4 + + + + + + + + +Node72 + + +ekf_imu13states.h + + + + + +Node1->Node72 + + + + + + + + +Node3 + + +dsp_common.h + + + + + +Node2->Node3 + + + + + + + + +Node12 + + +dsp_types.h + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +dsps_dotprod.h + + + + + +Node2->Node14 + + + + + + + + +Node18 + + +dsps_math.h + + + + + +Node2->Node18 + + + + + + + + +Node30 + + +dsps_fir.h + + + + + +Node2->Node30 + + + + + + + + +Node32 + + +dsps_resampler.h + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +dsps_biquad.h + + + + + +Node2->Node33 + + + + + + + + +Node35 + + +dsps_biquad_gen.h + + + + + +Node2->Node35 + + + + + + + + +Node36 + + +dsps_wind.h + + + + + +Node2->Node36 + + + + + + + + +Node43 + + +dsps_conv.h + + + + + +Node2->Node43 + + + + + + + + +Node45 + + +dsps_corr.h + + + + + +Node2->Node45 + + + + + + + + +Node46 + + +dsps_d_gen.h + + + + + +Node2->Node46 + + + + + + + + +Node47 + + +dsps_h_gen.h + + + + + +Node2->Node47 + + + + + + + + +Node48 + + +dsps_tone_gen.h + + + + + +Node2->Node48 + + + + + + + + +Node49 + + +dsps_snr.h + + + + + +Node2->Node49 + + + + + + + + +Node50 + + +dsps_sfdr.h + + + + + +Node2->Node50 + + + + + + + + +Node51 + + +dsps_fft2r.h + + + + + +Node2->Node51 + + + + + + + + +Node54 + + +dsps_fft4r.h + + + + + +Node2->Node54 + + + + + + + + +Node56 + + +dsps_dct.h + + + + + +Node2->Node56 + + + + + + + + +Node57 + + +dspm_matrix.h + + + + + +Node2->Node57 + + + + + + + + +Node68 + + +dsps_view.h + + + + + +Node2->Node68 + + + + + + + + +Node69 + + +dspi_dotprod.h + + + + + +Node2->Node69 + + + + + + + + +Node71 + + +dspi_conv.h + + + + + +Node2->Node71 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdbool.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dsp_err.h + + + + + +Node3->Node6 + + + + + + + + +Node10 + + +esp_idf_version.h + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +x86intrin.h + + + + + +Node3->Node11 + + + + + + + + +Node6->Node4 + + + + + + + + +Node12->Node4 + + + + + + + + +Node12->Node5 + + + + + + + + +Node13 + + +inttypes.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node15 + + +esp_log.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsps_dotprod_platform.h + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +sdkconfig.h + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +dsps_add.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +dsps_sub.h + + + + + +Node18->Node21 + + + + + + + + +Node23 + + +dsps_mul.h + + + + + +Node18->Node23 + + + + + + + + +Node25 + + +dsps_addc.h + + + + + +Node18->Node25 + + + + + + + + +Node27 + + +dsps_mulc.h + + + + + +Node18->Node27 + + + + + + + + +Node29 + + +dsps_sqrt.h + + + + + +Node18->Node29 + + + + + + + + +Node19->Node6 + + + + + + + + +Node21->Node6 + + + + + + + + +Node23->Node6 + + + + + + + + +Node25->Node6 + + + + + + + + +Node27->Node6 + + + + + + + + +Node29->Node6 + + + + + + + + +Node30->Node3 + + + + + + + + +Node30->Node6 + + + + + + + + +Node31 + + +dsps_fir_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node31->Node17 + + + + + + + + +Node32->Node6 + + + + + + + + +Node32->Node30 + + + + + + + + +Node33->Node6 + + + + + + + + +Node34 + + +dsps_biquad_platform.h + + + + + +Node33->Node34 + + + + + + + + +Node34->Node17 + + + + + + + + +Node35->Node6 + + + + + + + + +Node37 + + +dsps_wind_hann.h + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +dsps_wind_blackman.h + + + + + +Node36->Node38 + + + + + + + + +Node39 + + +dsps_wind_blackman +_harris.h + + + + + +Node36->Node39 + + + + + + + + +Node40 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +dsps_wind_nuttall.h + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +dsps_wind_flat_top.h + + + + + +Node36->Node42 + + + + + + + + +Node43->Node6 + + + + + + + + +Node44 + + +dsps_conv_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node6 + + + + + + + + +Node45->Node44 + + + + + + + + +Node46->Node6 + + + + + + + + +Node47->Node6 + + + + + + + + +Node48->Node6 + + + + + + + + +Node49->Node6 + + + + + + + + +Node50->Node6 + + + + + + + + +Node51->Node6 + + + + + + + + +Node51->Node17 + + + + + + + + +Node52 + + +dsps_fft_tables.h + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +dsps_fft2r_platform.h + + + + + +Node51->Node53 + + + + + + + + +Node53->Node17 + + + + + + + + +Node54->Node6 + + + + + + + + +Node54->Node17 + + + + + + + + +Node54->Node52 + + + + + + + + +Node55 + + +dsps_fft4r_platform.h + + + + + +Node54->Node55 + + + + + + + + +Node55->Node17 + + + + + + + + +Node56->Node6 + + + + + + + + +Node56->Node17 + + + + + + + + +Node58 + + +dspm_add.h + + + + + +Node57->Node58 + + + + + + + + +Node60 + + +dspm_addc.h + + + + + +Node57->Node60 + + + + + + + + +Node62 + + +dspm_mult.h + + + + + +Node57->Node62 + + + + + + + + +Node64 + + +dspm_mulc.h + + + + + +Node57->Node64 + + + + + + + + +Node66 + + +dspm_sub.h + + + + + +Node57->Node66 + + + + + + + + +Node58->Node6 + + + + + + + + +Node60->Node6 + + + + + + + + +Node62->Node6 + + + + + + + + +Node64->Node6 + + + + + + + + +Node66->Node6 + + + + + + + + +Node68->Node6 + + + + + + + + +Node69->Node6 + + + + + + + + +Node69->Node12 + + + + + + + + +Node69->Node15 + + + + + + + + +Node70 + + +dspi_dotprod_platform.h + + + + + +Node69->Node70 + + + + + + + + +Node70->Node17 + + + + + + + + +Node71->Node6 + + + + + + + + +Node71->Node12 + + + + + + + + +Node71->Node44 + + + + + + + + +Node73 + + +ekf.h + + + + + +Node72->Node73 + + + + + + + + +Node73->Node4 + + + + + + + + +Node73->Node5 + + + + + + + + +Node74 + + +math.h + + + + + +Node73->Node74 + + + + + + + + +Node75 + + +mat.h + + + + + +Node73->Node75 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph.md5 new file mode 100644 index 0000000..86b185b --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph.md5 @@ -0,0 +1 @@ +13046a5980dc3772a4d2f0c5ab772bc6 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph.svg new file mode 100644 index 0000000..b22cb45 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph.svg @@ -0,0 +1,345 @@ + + + + + + + + + + + + +update_translation_matrix + + +Node1 + + +update_translation +_matrix + + + + + +Node2 + + +dispaly_esp_text + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dispaly_esp_text + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dispaly_esp_text + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +draw_3d_image_task + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +draw_3d_image_task + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +draw_3d_image_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +draw_3d_image_task + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +draw_3d_image_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +draw_3d_image_task + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +draw_3d_image_task + + + + + +Node1->Node17 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph_org.svg new file mode 100644 index 0000000..1b07d6e --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a2f5dfc8616993b1485635978ec29513d_icgraph_org.svg @@ -0,0 +1,319 @@ + + + + + + +update_translation_matrix + + +Node1 + + +update_translation +_matrix + + + + + +Node2 + + +dispaly_esp_text + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dispaly_esp_text + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dispaly_esp_text + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +draw_3d_image_task + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +draw_3d_image_task + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +draw_3d_image_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +draw_3d_image_task + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +draw_3d_image_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +draw_3d_image_task + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +draw_3d_image_task + + + + + +Node1->Node17 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + +Node10->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph.md5 new file mode 100644 index 0000000..e3899cc --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph.md5 @@ -0,0 +1 @@ +c282c82ef6ec64526d084af376e1209a \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph.svg new file mode 100644 index 0000000..c5d1ef9 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph.svg @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +update_perspective_matrix + + +Node1 + + +update_perspective +_matrix + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node1->Node3 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +get_pressure_task + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +get_pressure_task + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +get_pressure_task + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +get_pressure_task + + + + + +Node1->Node21 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14->Node15 + + + + + + + + +Node16->Node17 + + + + + + + + +Node18->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph_org.svg new file mode 100644 index 0000000..16634d0 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7361f858eac611923f3e090a2a4837c8_icgraph_org.svg @@ -0,0 +1,382 @@ + + + + + + +update_perspective_matrix + + +Node1 + + +update_perspective +_matrix + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node1->Node3 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +get_pressure_task + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +get_pressure_task + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +get_pressure_task + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +get_pressure_task + + + + + +Node1->Node21 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14->Node15 + + + + + + + + +Node16->Node17 + + + + + + + + +Node18->Node4 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 new file mode 100644 index 0000000..42a9de0 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.md5 @@ -0,0 +1 @@ +1505fdbefcbf0e4632d97affcfd16b7a \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg new file mode 100644 index 0000000..86723b0 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph.svg @@ -0,0 +1,227 @@ + + + + + + + + + + + + +update_scaling_matrix + + +Node1 + + +update_scaling_matrix + + + + + +Node2 + + +dispaly_esp_text + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dispaly_esp_text + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dispaly_esp_text + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +draw_3d_image_task + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg new file mode 100644 index 0000000..eb75493 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_a7d3520bcf116c1dcaa67c1925e48b2d9_icgraph_org.svg @@ -0,0 +1,201 @@ + + + + + + +update_scaling_matrix + + +Node1 + + +update_scaling_matrix + + + + + +Node2 + + +dispaly_esp_text + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +dispaly_esp_text + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +dispaly_esp_text + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dispaly_esp_text + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +draw_3d_image_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +draw_3d_image_task + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +app_main + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +app_main + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +app_main + + + + + +Node8->Node9 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 new file mode 100644 index 0000000..d169a63 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.md5 @@ -0,0 +1 @@ +cc1ee0d713a0ca24ebd9d8214acceebc \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg new file mode 100644 index 0000000..49f65b8 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +init_perspective_matrix + + +Node1 + + +init_perspective_matrix + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph_org.svg new file mode 100644 index 0000000..b359648 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_ab5c13c601603a6d1b586b8ad9aa7ee98_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +init_perspective_matrix + + +Node1 + + +init_perspective_matrix + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 new file mode 100644 index 0000000..064f8e5 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph.md5 @@ -0,0 +1 @@ +1483069897a11440e85500ca78981929 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg new file mode 100644 index 0000000..e0b5c81 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::t + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg new file mode 100644 index 0000000..4b84755 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_cgraph_org.svg @@ -0,0 +1,93 @@ + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +ekf::eul2rotm + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dspm::Mat::t + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +dspm::Mat::Mat + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +dspm::Mat::allocate + + + + + +Node4->Node5 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph.md5 new file mode 100644 index 0000000..2c3b18d --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph.md5 @@ -0,0 +1 @@ +495c42c0c9ed3f035c49e63f23f664e0 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph.svg new file mode 100644 index 0000000..20e1ea3 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph.svg @@ -0,0 +1,509 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +draw_3d_image_task + + + + + +Node1->Node18 + + + + + + + + +Node20 + + +draw_3d_image_task + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +draw_3d_image_task + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +draw_3d_image_task + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +draw_3d_image_task + + + + + +Node1->Node23 + + + + + + + + +Node24 + + +draw_3d_image_task + + + + + +Node1->Node24 + + + + + + + + +Node25 + + +draw_3d_image_task + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +draw_3d_image_task + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +app_main + + + + + +Node18->Node19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph_org.svg new file mode 100644 index 0000000..db1fe42 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_abddf00a5f71e067190147e3ecdb49d3f_icgraph_org.svg @@ -0,0 +1,426 @@ + + + + + + +update_rotation_matrix + + +Node1 + + +update_rotation_matrix + + + + + +Node2 + + +draw_3d_image + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +draw_3d_image + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +draw_3d_image + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +draw_3d_image + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +draw_3d_image_task + + + + + +Node1->Node18 + + + + + + + + +Node20 + + +draw_3d_image_task + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +draw_3d_image_task + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +draw_3d_image_task + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +draw_3d_image_task + + + + + +Node1->Node23 + + + + + + + + +Node24 + + +draw_3d_image_task + + + + + +Node1->Node24 + + + + + + + + +Node25 + + +draw_3d_image_task + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +draw_3d_image_task + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +kalman_filter_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +kalman_filter_calibration + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +kalman_filter_calibration + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +kalman_filter_calibration + + + + + +Node3->Node8 + + + + + + + + +Node10 + + +kalman_filter_calibration + + + + + +Node3->Node10 + + + + + + + + +Node5->Node4 + + + + + + + + +Node13 + + +kalman_filter_task + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +kalman_filter_task + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +kalman_filter_task + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +app_main + + + + + +Node18->Node19 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html new file mode 100644 index 0000000..51cfb9d --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_23d__matrix_23d__matrix__src_2graphics__support_8h_source.html @@ -0,0 +1,185 @@ + + + + + + + +ESP-IDF Firmware: graphics_support.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#pragma once
+
8
+
9#include "esp_dsp.h"
+
10#include "ekf_imu13states.h"
+
11
+
12
+
13#ifdef __cplusplus
+
14extern "C"
+
15{
+
16#endif
+
17
+
18#include <stdint.h>
+
19
+
20#define DEG_TO_RAD 0.01745329252f // Degrees to radians conversion
+
21#define RAD_TO_DEG 57.29577951f // Radians to degrees conversion
+
22#define MATRIX_SIZE 4 // 4x4 matrices are used
+
23#define SSD1306_WIDTH 128 // Display widh in pixels
+
24#define SSD1306_HEIGHT 64 // DIsplay height
+
25#define SSD1606_X_CENTER (SSD1306_WIDTH / 2) // Width center point
+
26#define SSD1606_Y_CENTER (SSD1306_HEIGHT / 2) // Height center point
+
27
+
34typedef struct image_3d_matrix_s {
+
35 const float (*matrix)[MATRIX_SIZE];
+
36 uint32_t matrix_len;
+ +
38
+
46typedef struct image_3d_matrix_kalman_s {
+
47 const float (*matrix)[MATRIX_SIZE];
+
48 uint32_t matrix_len;
+
49 ekf_imu13states *ekf13;
+ +
51
+
52
+ +
61
+
62
+
75void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z);
+
76
+
77
+
90void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z);
+
91
+
92
+
103void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z);
+
104
+
105
+
114void update_perspective_matrix(dspm::Mat &P_m, float fov);
+
115
+
116
+
124void print_matrix(dspm::Mat matrix);
+
125
+
126#ifdef __cplusplus
+
127}
+
128#endif
+ +
struct image_3d_matrix_kalman_s image_3d_matrix_kalman_t
Data struct of 3d image matrix with kalman filter object.
+
struct image_3d_matrix_s image_3d_matrix_t
Data struct of 3d image matrix.
+
Matrix.
Definition mat.h:30
+ + + +
void update_translation_matrix(dspm::Mat &T_m, bool row, float move_x, float move_y, float move_z)
update translation matrix
+
void update_perspective_matrix(dspm::Mat &P_m, float fov)
update perspective matrix
+
void update_scaling_matrix(dspm::Mat &T_m, bool keep_diagonal, float scale_x, float scale_y, float scale_z)
update scaling matrix
+
void print_matrix(dspm::Mat matrix)
printf matrix to the terminal output
+
void init_perspective_matrix(dspm::Mat &P_m)
initialize perspective projection matrix
+
void update_rotation_matrix(dspm::Mat &T_m, float rot_x, float rot_y, float rot_z)
update rotation matrix
+ + + + + + + +
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html new file mode 100644 index 0000000..ca955a1 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
template_img_to_3d.c File Reference
+
+
+
#include "image_to_3d_matrix.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.c:
+
+
+
+
+

Go to the source code of this file.

+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.md5 new file mode 100644 index 0000000..dba0672 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.md5 @@ -0,0 +1 @@ +020772f75f2fde487958097c75cc4df4 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.svg new file mode 100644 index 0000000..e425bc6 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +template_img_to_3d.c + + +Node1 + + +template_img_to_3d.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl_org.svg new file mode 100644 index 0000000..13b7815 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +template_img_to_3d.c + + +Node1 + + +template_img_to_3d.c + + + + + +Node2 + + +image_to_3d_matrix.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c_source.html new file mode 100644 index 0000000..3184081 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8c_source.html @@ -0,0 +1,119 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.c
+
+
+Go to the documentation of this file.
1// template file - template_img_to_3d.c
+
2// arrays declarations will be modified by python script ImgTo3D.py
+
3
+
4#include "image_to_3d_matrix.h"
+
5
+
6#ifdef CONFIG_3D_OBJECT_CUSTOM
+
7
+
8const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES] = {};
+
9const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4] = {};
+
10
+
11#endif // CONFIG_3D_OBJECT_CUSTOM
+
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4]
+
const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES]
+
+
+
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html new file mode 100644 index 0000000..2df0277 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html @@ -0,0 +1,173 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
template_img_to_3d.h File Reference
+
+
+
#include <stdint.h>
+#include "sdkconfig.h"
+
+Include dependency graph for external_examples/f9c2d4b3/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.h:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Variables

const uint8_t TEMPLATE_ARRAY_BMP_IMAGE [NUM_OF_BYTES]
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX [NUM_OF_POINTS][4]
+

Variable Documentation

+ +

◆ TEMPLATE_ARRAY_BMP_IMAGE

+ +
+
+ + + + + +
+ + + + +
const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES]
+
+extern
+
+ +
+
+ +

◆ TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX

+ +
+
+ + + + + +
+ + + + +
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4]
+
+extern
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.js b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.js new file mode 100644 index 0000000..1487bd2 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.js @@ -0,0 +1,5 @@ +var external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h = +[ + [ "TEMPLATE_ARRAY_BMP_IMAGE", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html#a69c27a8cb01eba6e6385d526f4ab3e4f", null ], + [ "TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX", "external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h.html#a17d49aa03d0f1653f57cb840ba9b23ed", null ] +]; \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.md5 b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.md5 new file mode 100644 index 0000000..db9a32d --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.md5 @@ -0,0 +1 @@ +7175bfbb6e58cf57fb08f01c1ecc0d00 \ No newline at end of file diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.svg new file mode 100644 index 0000000..d4d5941 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +template_img_to_3d.h + + +Node1 + + +template_img_to_3d.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl_org.svg b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl_org.svg new file mode 100644 index 0000000..ac9f72b --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +template_img_to_3d.h + + +Node1 + + +template_img_to_3d.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sdkconfig.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h_source.html b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h_source.html new file mode 100644 index 0000000..96f8f76 --- /dev/null +++ b/docs/html/external__examples_2f9c2d4b3_2azure__board__apps_2graphics_2img__to__3d__matrix_2templates_2template__img__to__3d_8h_source.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: template_img_to_3d.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
external_examples/f9c2d4b3/azure_board_apps/graphics/img_to_3d_matrix/templates/template_img_to_3d.h
+
+
+Go to the documentation of this file.
1// template file - template_img_to_3d.h
+
2// arrays declarations will be modified by python script ImgTo3D.py
+
3
+
4#pragma once
+
5
+
6#include <stdint.h>
+
7#include "sdkconfig.h"
+
8
+
9#ifdef __cplusplus
+
10extern "C" {
+
11#endif
+
12
+
13extern const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES];
+
14extern const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4];
+
15
+
16#ifdef __cplusplus
+
17}
+
18#endif
+
const float TEMPLATE_ARRAY_IMAGE_TO_3D_MATRIX[NUM_OF_POINTS][4]
+
const uint8_t TEMPLATE_ARRAY_BMP_IMAGE[NUM_OF_BYTES]
+
+
+
+ + + + diff --git a/docs/html/files.html b/docs/html/files.html new file mode 100644 index 0000000..de42883 --- /dev/null +++ b/docs/html/files.html @@ -0,0 +1,552 @@ + + + + + + + +ESP-IDF Firmware: File List + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
[detail level 12345678910]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
components
 
espressif__esp-dsp
 
applications
 
azure_board_apps
 
lyrat_board_app
 
m5stack_core_s3
 
spectrum_box_lite
 
external_examples
 
1fa4e38f
 
b00f000e
 
d1468452
 
f9c2d4b3
 
modules
 
common
 
conv
 
dct
 
dotprod
 
fft
 
fir
 
iir
 
kalman
 
math
 
matrix
 
support
 
windows
 
espressif__esp_tinyusb
 
include
 
tinyusb.h
 
tinyusb_types.h
 
tusb_cdc_acm.h
 
tusb_config.h
 
tusb_console.h
 
tusb_tasks.h
 
vfs_tinyusb.h
 
include_private
 
cdc.h
 
descriptors_control.h
 
usb_descriptors.h
 
cdc.c
 
descriptors_control.c
 
tinyusb.c
 
tusb_cdc_acm.c
 
tusb_console.c
 
tusb_tasks.c
 
usb_descriptors.c
 
vfs_tinyusb.c
 
espressif__led_strip
 
include
 
led_strip.h
 
led_strip_rmt.h
 
led_strip_spi.h
 
led_strip_types.h
 
interface
 
led_strip_interface.h
 
src
 
led_strip_api.c
 
led_strip_rmt_dev.c
 
led_strip_rmt_dev_idf4.c
 
led_strip_rmt_encoder.c
 
led_strip_rmt_encoder.h
 
led_strip_spi_dev.c
 
wave_gen
 
include
 
wave_gen.h
 
wave_gen.c
 
main
 
main.c
+
+
+
+
+ + + + diff --git a/docs/html/files_dup.js b/docs/html/files_dup.js new file mode 100644 index 0000000..2a7b412 --- /dev/null +++ b/docs/html/files_dup.js @@ -0,0 +1,5 @@ +var files_dup = +[ + [ "components", "dir_409f97388efe006bc3438b95e9edef48.html", "dir_409f97388efe006bc3438b95e9edef48" ], + [ "main", "dir_5c982d53a68cdbcd421152b4020263a9.html", "dir_5c982d53a68cdbcd421152b4020263a9" ] +]; \ No newline at end of file diff --git a/docs/html/functions.html b/docs/html/functions.html new file mode 100644 index 0000000..0f19e8f --- /dev/null +++ b/docs/html/functions.html @@ -0,0 +1,113 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- a -

+
+
+
+ + + + diff --git a/docs/html/functions_b.html b/docs/html/functions_b.html new file mode 100644 index 0000000..efdc91c --- /dev/null +++ b/docs/html/functions_b.html @@ -0,0 +1,114 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- b -

+
+
+
+ + + + diff --git a/docs/html/functions_c.html b/docs/html/functions_c.html new file mode 100644 index 0000000..fd66f62 --- /dev/null +++ b/docs/html/functions_c.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- c -

+
+
+
+ + + + diff --git a/docs/html/functions_d.html b/docs/html/functions_d.html new file mode 100644 index 0000000..830df18 --- /dev/null +++ b/docs/html/functions_d.html @@ -0,0 +1,127 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- d -

+
+
+
+ + + + diff --git a/docs/html/functions_dup.js b/docs/html/functions_dup.js new file mode 100644 index 0000000..137ab13 --- /dev/null +++ b/docs/html/functions_dup.js @@ -0,0 +1,28 @@ +var functions_dup = +[ + [ "a", "functions.html", null ], + [ "b", "functions_b.html", null ], + [ "c", "functions_c.html", null ], + [ "d", "functions_d.html", null ], + [ "e", "functions_e.html", null ], + [ "f", "functions_f.html", null ], + [ "g", "functions_g.html", null ], + [ "h", "functions_h.html", null ], + [ "i", "functions_i.html", null ], + [ "k", "functions_k.html", null ], + [ "l", "functions_l.html", null ], + [ "m", "functions_m.html", null ], + [ "n", "functions_n.html", null ], + [ "o", "functions_o.html", null ], + [ "p", "functions_p.html", null ], + [ "q", "functions_q.html", null ], + [ "r", "functions_r.html", null ], + [ "s", "functions_s.html", null ], + [ "t", "functions_t.html", null ], + [ "u", "functions_u.html", null ], + [ "v", "functions_v.html", null ], + [ "w", "functions_w.html", null ], + [ "x", "functions_x.html", null ], + [ "y", "functions_y.html", null ], + [ "~", "functions_~.html", null ] +]; \ No newline at end of file diff --git a/docs/html/functions_e.html b/docs/html/functions_e.html new file mode 100644 index 0000000..33ac6b5 --- /dev/null +++ b/docs/html/functions_e.html @@ -0,0 +1,115 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- e -

+
+
+
+ + + + diff --git a/docs/html/functions_f.html b/docs/html/functions_f.html new file mode 100644 index 0000000..4edaed1 --- /dev/null +++ b/docs/html/functions_f.html @@ -0,0 +1,112 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- f -

+
+
+
+ + + + diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html new file mode 100644 index 0000000..a1c4806 --- /dev/null +++ b/docs/html/functions_func.html @@ -0,0 +1,238 @@ + + + + + + + +ESP-IDF Firmware: Data Fields - Functions + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the structures/unions they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- g -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- q -

    +
  • qProduct() : ekf
  • +
  • quat2eul() : ekf
  • +
  • quat2rotm() : ekf
  • +
+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- ~ -

+
+
+
+ + + + diff --git a/docs/html/functions_g.html b/docs/html/functions_g.html new file mode 100644 index 0000000..82628e6 --- /dev/null +++ b/docs/html/functions_g.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- g -

+
+
+
+ + + + diff --git a/docs/html/functions_h.html b/docs/html/functions_h.html new file mode 100644 index 0000000..2a69989 --- /dev/null +++ b/docs/html/functions_h.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- h -

+
+
+
+ + + + diff --git a/docs/html/functions_i.html b/docs/html/functions_i.html new file mode 100644 index 0000000..3fd8ca3 --- /dev/null +++ b/docs/html/functions_i.html @@ -0,0 +1,113 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- i -

+
+
+
+ + + + diff --git a/docs/html/functions_k.html b/docs/html/functions_k.html new file mode 100644 index 0000000..ca1d7c7 --- /dev/null +++ b/docs/html/functions_k.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- k -

+
+
+
+ + + + diff --git a/docs/html/functions_l.html b/docs/html/functions_l.html new file mode 100644 index 0000000..8e128d9 --- /dev/null +++ b/docs/html/functions_l.html @@ -0,0 +1,114 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- l -

+
+
+
+ + + + diff --git a/docs/html/functions_m.html b/docs/html/functions_m.html new file mode 100644 index 0000000..3bf0072 --- /dev/null +++ b/docs/html/functions_m.html @@ -0,0 +1,113 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- m -

+
+
+
+ + + + diff --git a/docs/html/functions_n.html b/docs/html/functions_n.html new file mode 100644 index 0000000..b2fde43 --- /dev/null +++ b/docs/html/functions_n.html @@ -0,0 +1,112 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- n -

+
+
+
+ + + + diff --git a/docs/html/functions_o.html b/docs/html/functions_o.html new file mode 100644 index 0000000..8365c16 --- /dev/null +++ b/docs/html/functions_o.html @@ -0,0 +1,115 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- o -

+
+
+
+ + + + diff --git a/docs/html/functions_p.html b/docs/html/functions_p.html new file mode 100644 index 0000000..f1498b0 --- /dev/null +++ b/docs/html/functions_p.html @@ -0,0 +1,115 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- p -

+
+
+
+ + + + diff --git a/docs/html/functions_q.html b/docs/html/functions_q.html new file mode 100644 index 0000000..b8a9111 --- /dev/null +++ b/docs/html/functions_q.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- q -

    +
  • Q : ekf
  • +
  • qProduct() : ekf
  • +
  • quat2eul() : ekf
  • +
  • quat2rotm() : ekf
  • +
+
+
+
+ + + + diff --git a/docs/html/functions_r.html b/docs/html/functions_r.html new file mode 100644 index 0000000..08ea50e --- /dev/null +++ b/docs/html/functions_r.html @@ -0,0 +1,131 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- r -

+
+
+
+ + + + diff --git a/docs/html/functions_s.html b/docs/html/functions_s.html new file mode 100644 index 0000000..9c688c7 --- /dev/null +++ b/docs/html/functions_s.html @@ -0,0 +1,135 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- s -

+
+
+
+ + + + diff --git a/docs/html/functions_t.html b/docs/html/functions_t.html new file mode 100644 index 0000000..a3401cb --- /dev/null +++ b/docs/html/functions_t.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- t -

+
+
+
+ + + + diff --git a/docs/html/functions_u.html b/docs/html/functions_u.html new file mode 100644 index 0000000..9a23a61 --- /dev/null +++ b/docs/html/functions_u.html @@ -0,0 +1,112 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- u -

+
+
+
+ + + + diff --git a/docs/html/functions_v.html b/docs/html/functions_v.html new file mode 100644 index 0000000..4355621 --- /dev/null +++ b/docs/html/functions_v.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- v -

+
+
+
+ + + + diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html new file mode 100644 index 0000000..874949a --- /dev/null +++ b/docs/html/functions_vars.html @@ -0,0 +1,341 @@ + + + + + + + +ESP-IDF Firmware: Data Fields - Variables + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- q -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- w -

+ + +

- x -

+ + +

- y -

+
+
+
+ + + + diff --git a/docs/html/functions_w.html b/docs/html/functions_w.html new file mode 100644 index 0000000..6891f4f --- /dev/null +++ b/docs/html/functions_w.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- w -

+
+
+
+ + + + diff --git a/docs/html/functions_x.html b/docs/html/functions_x.html new file mode 100644 index 0000000..e79118d --- /dev/null +++ b/docs/html/functions_x.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- x -

+
+
+
+ + + + diff --git a/docs/html/functions_y.html b/docs/html/functions_y.html new file mode 100644 index 0000000..4d908a7 --- /dev/null +++ b/docs/html/functions_y.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- y -

+
+
+
+ + + + diff --git a/docs/html/functions_~.html b/docs/html/functions_~.html new file mode 100644 index 0000000..616a6a9 --- /dev/null +++ b/docs/html/functions_~.html @@ -0,0 +1,109 @@ + + + + + + + +ESP-IDF Firmware: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- ~ -

+
+
+
+ + + + diff --git a/docs/html/globals.html b/docs/html/globals.html new file mode 100644 index 0000000..a541637 --- /dev/null +++ b/docs/html/globals.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_a.html b/docs/html/globals_a.html new file mode 100644 index 0000000..1d1e352 --- /dev/null +++ b/docs/html/globals_a.html @@ -0,0 +1,133 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- a -

+
+
+
+ + + + diff --git a/docs/html/globals_b.html b/docs/html/globals_b.html new file mode 100644 index 0000000..6822bfe --- /dev/null +++ b/docs/html/globals_b.html @@ -0,0 +1,195 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- b -

+
+
+
+ + + + diff --git a/docs/html/globals_c.html b/docs/html/globals_c.html new file mode 100644 index 0000000..71f3069 --- /dev/null +++ b/docs/html/globals_c.html @@ -0,0 +1,167 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- c -

+
+
+
+ + + + diff --git a/docs/html/globals_d.html b/docs/html/globals_d.html new file mode 100644 index 0000000..8bcae2e --- /dev/null +++ b/docs/html/globals_d.html @@ -0,0 +1,441 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- d -

+
+
+
+ + + + diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html new file mode 100644 index 0000000..cb762c8 --- /dev/null +++ b/docs/html/globals_defs.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- _ -

+
+
+
+ + + + diff --git a/docs/html/globals_defs.js b/docs/html/globals_defs.js new file mode 100644 index 0000000..ec57eaa --- /dev/null +++ b/docs/html/globals_defs.js @@ -0,0 +1,26 @@ +var globals_defs = +[ + [ "_", "globals_defs.html", null ], + [ "a", "globals_defs_a.html", null ], + [ "b", "globals_defs_b.html", null ], + [ "c", "globals_defs_c.html", null ], + [ "d", "globals_defs_d.html", null ], + [ "e", "globals_defs_e.html", null ], + [ "f", "globals_defs_f.html", null ], + [ "i", "globals_defs_i.html", null ], + [ "k", "globals_defs_k.html", null ], + [ "l", "globals_defs_l.html", null ], + [ "m", "globals_defs_m.html", null ], + [ "n", "globals_defs_n.html", null ], + [ "o", "globals_defs_o.html", null ], + [ "p", "globals_defs_p.html", null ], + [ "q", "globals_defs_q.html", null ], + [ "r", "globals_defs_r.html", null ], + [ "s", "globals_defs_s.html", null ], + [ "t", "globals_defs_t.html", null ], + [ "u", "globals_defs_u.html", null ], + [ "v", "globals_defs_v.html", null ], + [ "w", "globals_defs_w.html", null ], + [ "x", "globals_defs_x.html", null ], + [ "y", "globals_defs_y.html", null ] +]; \ No newline at end of file diff --git a/docs/html/globals_defs_a.html b/docs/html/globals_defs_a.html new file mode 100644 index 0000000..45bea0f --- /dev/null +++ b/docs/html/globals_defs_a.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- a -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_b.html b/docs/html/globals_defs_b.html new file mode 100644 index 0000000..1665417 --- /dev/null +++ b/docs/html/globals_defs_b.html @@ -0,0 +1,140 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- b -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_c.html b/docs/html/globals_defs_c.html new file mode 100644 index 0000000..d60f5d3 --- /dev/null +++ b/docs/html/globals_defs_c.html @@ -0,0 +1,138 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- c -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_d.html b/docs/html/globals_defs_d.html new file mode 100644 index 0000000..bee7b06 --- /dev/null +++ b/docs/html/globals_defs_d.html @@ -0,0 +1,181 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- d -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_e.html b/docs/html/globals_defs_e.html new file mode 100644 index 0000000..47d3816 --- /dev/null +++ b/docs/html/globals_defs_e.html @@ -0,0 +1,117 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- e -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_f.html b/docs/html/globals_defs_f.html new file mode 100644 index 0000000..88e8145 --- /dev/null +++ b/docs/html/globals_defs_f.html @@ -0,0 +1,117 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- f -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_i.html b/docs/html/globals_defs_i.html new file mode 100644 index 0000000..05e73c9 --- /dev/null +++ b/docs/html/globals_defs_i.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- i -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_k.html b/docs/html/globals_defs_k.html new file mode 100644 index 0000000..21f64e8 --- /dev/null +++ b/docs/html/globals_defs_k.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- k -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_l.html b/docs/html/globals_defs_l.html new file mode 100644 index 0000000..534b8ae --- /dev/null +++ b/docs/html/globals_defs_l.html @@ -0,0 +1,116 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_defs_m.html b/docs/html/globals_defs_m.html new file mode 100644 index 0000000..88098ce --- /dev/null +++ b/docs/html/globals_defs_m.html @@ -0,0 +1,113 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_defs_n.html b/docs/html/globals_defs_n.html new file mode 100644 index 0000000..7a141aa --- /dev/null +++ b/docs/html/globals_defs_n.html @@ -0,0 +1,109 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- n -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_o.html b/docs/html/globals_defs_o.html new file mode 100644 index 0000000..cb0884a --- /dev/null +++ b/docs/html/globals_defs_o.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_defs_p.html b/docs/html/globals_defs_p.html new file mode 100644 index 0000000..1ce1fb7 --- /dev/null +++ b/docs/html/globals_defs_p.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- p -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_q.html b/docs/html/globals_defs_q.html new file mode 100644 index 0000000..bd8083a --- /dev/null +++ b/docs/html/globals_defs_q.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- q -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_r.html b/docs/html/globals_defs_r.html new file mode 100644 index 0000000..abdcce0 --- /dev/null +++ b/docs/html/globals_defs_r.html @@ -0,0 +1,109 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_defs_s.html b/docs/html/globals_defs_s.html new file mode 100644 index 0000000..ac15986 --- /dev/null +++ b/docs/html/globals_defs_s.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- s -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_t.html b/docs/html/globals_defs_t.html new file mode 100644 index 0000000..61ba215 --- /dev/null +++ b/docs/html/globals_defs_t.html @@ -0,0 +1,109 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- t -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_u.html b/docs/html/globals_defs_u.html new file mode 100644 index 0000000..4d97360 --- /dev/null +++ b/docs/html/globals_defs_u.html @@ -0,0 +1,116 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- u -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_v.html b/docs/html/globals_defs_v.html new file mode 100644 index 0000000..90b2770 --- /dev/null +++ b/docs/html/globals_defs_v.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- v -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_w.html b/docs/html/globals_defs_w.html new file mode 100644 index 0000000..68c9e9d --- /dev/null +++ b/docs/html/globals_defs_w.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- w -

+
+
+
+ + + + diff --git a/docs/html/globals_defs_x.html b/docs/html/globals_defs_x.html new file mode 100644 index 0000000..db67797 --- /dev/null +++ b/docs/html/globals_defs_x.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_defs_y.html b/docs/html/globals_defs_y.html new file mode 100644 index 0000000..a1f4a18 --- /dev/null +++ b/docs/html/globals_defs_y.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_dup.js b/docs/html/globals_dup.js new file mode 100644 index 0000000..816472c --- /dev/null +++ b/docs/html/globals_dup.js @@ -0,0 +1,28 @@ +var globals_dup = +[ + [ "_", "globals.html", null ], + [ "a", "globals_a.html", null ], + [ "b", "globals_b.html", null ], + [ "c", "globals_c.html", null ], + [ "d", "globals_d.html", null ], + [ "e", "globals_e.html", null ], + [ "f", "globals_f.html", null ], + [ "g", "globals_g.html", null ], + [ "h", "globals_h.html", null ], + [ "i", "globals_i.html", null ], + [ "k", "globals_k.html", null ], + [ "l", "globals_l.html", null ], + [ "m", "globals_m.html", null ], + [ "n", "globals_n.html", null ], + [ "o", "globals_o.html", null ], + [ "p", "globals_p.html", null ], + [ "q", "globals_q.html", null ], + [ "r", "globals_r.html", null ], + [ "s", "globals_s.html", null ], + [ "t", "globals_t.html", null ], + [ "u", "globals_u.html", null ], + [ "v", "globals_v.html", null ], + [ "w", "globals_w.html", null ], + [ "x", "globals_x.html", null ], + [ "y", "globals_y.html", null ] +]; \ No newline at end of file diff --git a/docs/html/globals_e.html b/docs/html/globals_e.html new file mode 100644 index 0000000..fa74570 --- /dev/null +++ b/docs/html/globals_e.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- e -

+
+
+
+ + + + diff --git a/docs/html/globals_enum.html b/docs/html/globals_enum.html new file mode 100644 index 0000000..85666c3 --- /dev/null +++ b/docs/html/globals_enum.html @@ -0,0 +1,114 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all enums with links to the files they belong to:
+
+
+
+ + + + diff --git a/docs/html/globals_eval.html b/docs/html/globals_eval.html new file mode 100644 index 0000000..8a988b3 --- /dev/null +++ b/docs/html/globals_eval.html @@ -0,0 +1,174 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all enum values with links to the files they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- e -

+ + +

- f -

+ + +

- i -

+ + +

- l -

+ + +

- s -

+ + +

- t -

+ + +

- w -

+
+
+
+ + + + diff --git a/docs/html/globals_f.html b/docs/html/globals_f.html new file mode 100644 index 0000000..ce994fb --- /dev/null +++ b/docs/html/globals_f.html @@ -0,0 +1,128 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- f -

+
+
+
+ + + + diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html new file mode 100644 index 0000000..4d2de71 --- /dev/null +++ b/docs/html/globals_func.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_func.js b/docs/html/globals_func.js new file mode 100644 index 0000000..2d3b64f --- /dev/null +++ b/docs/html/globals_func.js @@ -0,0 +1,23 @@ +var globals_func = +[ + [ "_", "globals_func.html", null ], + [ "a", "globals_func_a.html", null ], + [ "b", "globals_func_b.html", null ], + [ "c", "globals_func_c.html", null ], + [ "d", "globals_func_d.html", null ], + [ "e", "globals_func_e.html", null ], + [ "f", "globals_func_f.html", null ], + [ "g", "globals_func_g.html", null ], + [ "i", "globals_func_i.html", null ], + [ "k", "globals_func_k.html", null ], + [ "l", "globals_func_l.html", null ], + [ "m", "globals_func_m.html", null ], + [ "p", "globals_func_p.html", null ], + [ "r", "globals_func_r.html", null ], + [ "s", "globals_func_s.html", null ], + [ "t", "globals_func_t.html", null ], + [ "u", "globals_func_u.html", null ], + [ "v", "globals_func_v.html", null ], + [ "w", "globals_func_w.html", null ], + [ "x", "globals_func_x.html", null ] +]; \ No newline at end of file diff --git a/docs/html/globals_func_a.html b/docs/html/globals_func_a.html new file mode 100644 index 0000000..5e60d37 --- /dev/null +++ b/docs/html/globals_func_a.html @@ -0,0 +1,119 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- a -

+
+
+
+ + + + diff --git a/docs/html/globals_func_b.html b/docs/html/globals_func_b.html new file mode 100644 index 0000000..4220b66 --- /dev/null +++ b/docs/html/globals_func_b.html @@ -0,0 +1,113 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_func_c.html b/docs/html/globals_func_c.html new file mode 100644 index 0000000..ee2181f --- /dev/null +++ b/docs/html/globals_func_c.html @@ -0,0 +1,113 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_func_d.html b/docs/html/globals_func_d.html new file mode 100644 index 0000000..e7ea7c2 --- /dev/null +++ b/docs/html/globals_func_d.html @@ -0,0 +1,330 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- d -

+
+
+
+ + + + diff --git a/docs/html/globals_func_e.html b/docs/html/globals_func_e.html new file mode 100644 index 0000000..39b3971 --- /dev/null +++ b/docs/html/globals_func_e.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- e -

+
+
+
+ + + + diff --git a/docs/html/globals_func_f.html b/docs/html/globals_func_f.html new file mode 100644 index 0000000..36931d1 --- /dev/null +++ b/docs/html/globals_func_f.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- f -

+
+
+
+ + + + diff --git a/docs/html/globals_func_g.html b/docs/html/globals_func_g.html new file mode 100644 index 0000000..ebd6219 --- /dev/null +++ b/docs/html/globals_func_g.html @@ -0,0 +1,109 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_func_i.html b/docs/html/globals_func_i.html new file mode 100644 index 0000000..2664d35 --- /dev/null +++ b/docs/html/globals_func_i.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- i -

+
+
+
+ + + + diff --git a/docs/html/globals_func_k.html b/docs/html/globals_func_k.html new file mode 100644 index 0000000..d3f9a5e --- /dev/null +++ b/docs/html/globals_func_k.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_func_l.html b/docs/html/globals_func_l.html new file mode 100644 index 0000000..a73ec07 --- /dev/null +++ b/docs/html/globals_func_l.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- l -

+
+
+
+ + + + diff --git a/docs/html/globals_func_m.html b/docs/html/globals_func_m.html new file mode 100644 index 0000000..aa6dfce --- /dev/null +++ b/docs/html/globals_func_m.html @@ -0,0 +1,109 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_func_p.html b/docs/html/globals_func_p.html new file mode 100644 index 0000000..fc26a10 --- /dev/null +++ b/docs/html/globals_func_p.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_func_r.html b/docs/html/globals_func_r.html new file mode 100644 index 0000000..704b571 --- /dev/null +++ b/docs/html/globals_func_r.html @@ -0,0 +1,120 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_func_s.html b/docs/html/globals_func_s.html new file mode 100644 index 0000000..f798044 --- /dev/null +++ b/docs/html/globals_func_s.html @@ -0,0 +1,113 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_func_t.html b/docs/html/globals_func_t.html new file mode 100644 index 0000000..445cc02 --- /dev/null +++ b/docs/html/globals_func_t.html @@ -0,0 +1,148 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- t -

+
+
+
+ + + + diff --git a/docs/html/globals_func_u.html b/docs/html/globals_func_u.html new file mode 100644 index 0000000..e1296c8 --- /dev/null +++ b/docs/html/globals_func_u.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- u -

+
+
+
+ + + + diff --git a/docs/html/globals_func_v.html b/docs/html/globals_func_v.html new file mode 100644 index 0000000..7e682de --- /dev/null +++ b/docs/html/globals_func_v.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- v -

+
+
+
+ + + + diff --git a/docs/html/globals_func_w.html b/docs/html/globals_func_w.html new file mode 100644 index 0000000..ab558c4 --- /dev/null +++ b/docs/html/globals_func_w.html @@ -0,0 +1,122 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- w -

+
+
+
+ + + + diff --git a/docs/html/globals_func_x.html b/docs/html/globals_func_x.html new file mode 100644 index 0000000..c08d44d --- /dev/null +++ b/docs/html/globals_func_x.html @@ -0,0 +1,112 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- x -

+
+
+
+ + + + diff --git a/docs/html/globals_g.html b/docs/html/globals_g.html new file mode 100644 index 0000000..0000f23 --- /dev/null +++ b/docs/html/globals_g.html @@ -0,0 +1,114 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_h.html b/docs/html/globals_h.html new file mode 100644 index 0000000..cb1a635 --- /dev/null +++ b/docs/html/globals_h.html @@ -0,0 +1,109 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_i.html b/docs/html/globals_i.html new file mode 100644 index 0000000..c2f66ee --- /dev/null +++ b/docs/html/globals_i.html @@ -0,0 +1,132 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- i -

+
+
+
+ + + + diff --git a/docs/html/globals_k.html b/docs/html/globals_k.html new file mode 100644 index 0000000..a9399fe --- /dev/null +++ b/docs/html/globals_k.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_l.html b/docs/html/globals_l.html new file mode 100644 index 0000000..aeb53f6 --- /dev/null +++ b/docs/html/globals_l.html @@ -0,0 +1,151 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- l -

+
+
+
+ + + + diff --git a/docs/html/globals_m.html b/docs/html/globals_m.html new file mode 100644 index 0000000..7ff7d96 --- /dev/null +++ b/docs/html/globals_m.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- m -

+
+
+
+ + + + diff --git a/docs/html/globals_n.html b/docs/html/globals_n.html new file mode 100644 index 0000000..7d0d932 --- /dev/null +++ b/docs/html/globals_n.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- n -

+
+
+
+ + + + diff --git a/docs/html/globals_o.html b/docs/html/globals_o.html new file mode 100644 index 0000000..2233428 --- /dev/null +++ b/docs/html/globals_o.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_p.html b/docs/html/globals_p.html new file mode 100644 index 0000000..835cbb2 --- /dev/null +++ b/docs/html/globals_p.html @@ -0,0 +1,115 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- p -

+
+
+
+ + + + diff --git a/docs/html/globals_q.html b/docs/html/globals_q.html new file mode 100644 index 0000000..05847ef --- /dev/null +++ b/docs/html/globals_q.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- q -

+
+
+
+ + + + diff --git a/docs/html/globals_r.html b/docs/html/globals_r.html new file mode 100644 index 0000000..40c6644 --- /dev/null +++ b/docs/html/globals_r.html @@ -0,0 +1,124 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- r -

+
+
+
+ + + + diff --git a/docs/html/globals_s.html b/docs/html/globals_s.html new file mode 100644 index 0000000..fb6937c --- /dev/null +++ b/docs/html/globals_s.html @@ -0,0 +1,153 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- s -

+
+
+
+ + + + diff --git a/docs/html/globals_t.html b/docs/html/globals_t.html new file mode 100644 index 0000000..b99e5f5 --- /dev/null +++ b/docs/html/globals_t.html @@ -0,0 +1,166 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- t -

+
+
+
+ + + + diff --git a/docs/html/globals_type.html b/docs/html/globals_type.html new file mode 100644 index 0000000..5be05e3 --- /dev/null +++ b/docs/html/globals_type.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_u.html b/docs/html/globals_u.html new file mode 100644 index 0000000..29c0887 --- /dev/null +++ b/docs/html/globals_u.html @@ -0,0 +1,120 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- u -

+
+
+
+ + + + diff --git a/docs/html/globals_v.html b/docs/html/globals_v.html new file mode 100644 index 0000000..2e72462 --- /dev/null +++ b/docs/html/globals_v.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- v -

+
+
+
+ + + + diff --git a/docs/html/globals_vars.html b/docs/html/globals_vars.html new file mode 100644 index 0000000..98bdff3 --- /dev/null +++ b/docs/html/globals_vars.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- _ -

+
+
+
+ + + + diff --git a/docs/html/globals_vars.js b/docs/html/globals_vars.js new file mode 100644 index 0000000..f152972 --- /dev/null +++ b/docs/html/globals_vars.js @@ -0,0 +1,25 @@ +var globals_vars = +[ + [ "_", "globals_vars.html", null ], + [ "a", "globals_vars_a.html", null ], + [ "b", "globals_vars_b.html", null ], + [ "c", "globals_vars_c.html", null ], + [ "d", "globals_vars_d.html", null ], + [ "e", "globals_vars_e.html", null ], + [ "f", "globals_vars_f.html", null ], + [ "g", "globals_vars_g.html", null ], + [ "h", "globals_vars_h.html", null ], + [ "i", "globals_vars_i.html", null ], + [ "k", "globals_vars_k.html", null ], + [ "l", "globals_vars_l.html", null ], + [ "m", "globals_vars_m.html", null ], + [ "n", "globals_vars_n.html", null ], + [ "o", "globals_vars_o.html", null ], + [ "p", "globals_vars_p.html", null ], + [ "r", "globals_vars_r.html", null ], + [ "s", "globals_vars_s.html", null ], + [ "t", "globals_vars_t.html", null ], + [ "w", "globals_vars_w.html", null ], + [ "x", "globals_vars_x.html", null ], + [ "y", "globals_vars_y.html", null ] +]; \ No newline at end of file diff --git a/docs/html/globals_vars_a.html b/docs/html/globals_vars_a.html new file mode 100644 index 0000000..7cf5932 --- /dev/null +++ b/docs/html/globals_vars_a.html @@ -0,0 +1,113 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_vars_b.html b/docs/html/globals_vars_b.html new file mode 100644 index 0000000..6fd9a8e --- /dev/null +++ b/docs/html/globals_vars_b.html @@ -0,0 +1,148 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- b -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_c.html b/docs/html/globals_vars_c.html new file mode 100644 index 0000000..025359c --- /dev/null +++ b/docs/html/globals_vars_c.html @@ -0,0 +1,121 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- c -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_d.html b/docs/html/globals_vars_d.html new file mode 100644 index 0000000..3855230 --- /dev/null +++ b/docs/html/globals_vars_d.html @@ -0,0 +1,141 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- d -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_e.html b/docs/html/globals_vars_e.html new file mode 100644 index 0000000..a6bbd37 --- /dev/null +++ b/docs/html/globals_vars_e.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_vars_f.html b/docs/html/globals_vars_f.html new file mode 100644 index 0000000..cdeaa26 --- /dev/null +++ b/docs/html/globals_vars_f.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_vars_g.html b/docs/html/globals_vars_g.html new file mode 100644 index 0000000..2cb59d1 --- /dev/null +++ b/docs/html/globals_vars_g.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- g -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_h.html b/docs/html/globals_vars_h.html new file mode 100644 index 0000000..a6630f6 --- /dev/null +++ b/docs/html/globals_vars_h.html @@ -0,0 +1,109 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_vars_i.html b/docs/html/globals_vars_i.html new file mode 100644 index 0000000..052f428 --- /dev/null +++ b/docs/html/globals_vars_i.html @@ -0,0 +1,122 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- i -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_k.html b/docs/html/globals_vars_k.html new file mode 100644 index 0000000..7f6f083 --- /dev/null +++ b/docs/html/globals_vars_k.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_vars_l.html b/docs/html/globals_vars_l.html new file mode 100644 index 0000000..2094992 --- /dev/null +++ b/docs/html/globals_vars_l.html @@ -0,0 +1,113 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_vars_m.html b/docs/html/globals_vars_m.html new file mode 100644 index 0000000..af62de8 --- /dev/null +++ b/docs/html/globals_vars_m.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/html/globals_vars_n.html b/docs/html/globals_vars_n.html new file mode 100644 index 0000000..616cd23 --- /dev/null +++ b/docs/html/globals_vars_n.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- n -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_o.html b/docs/html/globals_vars_o.html new file mode 100644 index 0000000..69e62fe --- /dev/null +++ b/docs/html/globals_vars_o.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_vars_p.html b/docs/html/globals_vars_p.html new file mode 100644 index 0000000..297e1b3 --- /dev/null +++ b/docs/html/globals_vars_p.html @@ -0,0 +1,112 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- p -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_r.html b/docs/html/globals_vars_r.html new file mode 100644 index 0000000..c71652e --- /dev/null +++ b/docs/html/globals_vars_r.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_vars_s.html b/docs/html/globals_vars_s.html new file mode 100644 index 0000000..ad75583 --- /dev/null +++ b/docs/html/globals_vars_s.html @@ -0,0 +1,126 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- s -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_t.html b/docs/html/globals_vars_t.html new file mode 100644 index 0000000..3603517 --- /dev/null +++ b/docs/html/globals_vars_t.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- t -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_w.html b/docs/html/globals_vars_w.html new file mode 100644 index 0000000..6700aa0 --- /dev/null +++ b/docs/html/globals_vars_w.html @@ -0,0 +1,108 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + + + diff --git a/docs/html/globals_vars_x.html b/docs/html/globals_vars_x.html new file mode 100644 index 0000000..384cb4c --- /dev/null +++ b/docs/html/globals_vars_x.html @@ -0,0 +1,107 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- x -

+
+
+
+ + + + diff --git a/docs/html/globals_vars_y.html b/docs/html/globals_vars_y.html new file mode 100644 index 0000000..6d8b339 --- /dev/null +++ b/docs/html/globals_vars_y.html @@ -0,0 +1,109 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+ +

- y -

+
+
+
+ + + + diff --git a/docs/html/globals_w.html b/docs/html/globals_w.html new file mode 100644 index 0000000..ac83cdf --- /dev/null +++ b/docs/html/globals_w.html @@ -0,0 +1,134 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- w -

+
+
+
+ + + + diff --git a/docs/html/globals_x.html b/docs/html/globals_x.html new file mode 100644 index 0000000..003d817 --- /dev/null +++ b/docs/html/globals_x.html @@ -0,0 +1,114 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- x -

+
+
+
+ + + + diff --git a/docs/html/globals_y.html b/docs/html/globals_y.html new file mode 100644 index 0000000..a7eac37 --- /dev/null +++ b/docs/html/globals_y.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: Globals + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- y -

+
+
+
+ + + + diff --git a/docs/html/graph_legend.html b/docs/html/graph_legend.html new file mode 100644 index 0000000..cac9343 --- /dev/null +++ b/docs/html/graph_legend.html @@ -0,0 +1,165 @@ + + + + + + + +ESP-IDF Firmware: Graph Legend + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
  • +
+
+
+
+ + + + diff --git a/docs/html/graph_legend.md5 b/docs/html/graph_legend.md5 new file mode 100644 index 0000000..34a71d6 --- /dev/null +++ b/docs/html/graph_legend.md5 @@ -0,0 +1 @@ +238bc3d95adc1929b3259d0c39010ed6 \ No newline at end of file diff --git a/docs/html/graph_legend.svg b/docs/html/graph_legend.svg new file mode 100644 index 0000000..08ffbda --- /dev/null +++ b/docs/html/graph_legend.svg @@ -0,0 +1,167 @@ + + + + + + +Graph Legend + + +Node9 + + +Inherited + + + + + +Node10 + + +PublicBase + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +Truncated + + + + + +Node11->Node10 + + + + + + + + +Node13 + + +ProtectedBase + + + + + +Node13->Node9 + + + + + + + + +Node14 + + +PrivateBase + + + + + +Node14->Node9 + + + + + + + + +Node15 + + +Undocumented + + + + + +Node15->Node9 + + + + + + + + +Node16 + + +Templ< int > + + + + + +Node16->Node9 + + + + + + + + +Node17 + + +Templ< T > + + + + + +Node17->Node16 + + + + + +< int > + + + +Node18 + + +Used + + + + + +Node18->Node9 + + + + + +m_usedClass + + + diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html new file mode 100644 index 0000000..9758c79 --- /dev/null +++ b/docs/html/hierarchy.html @@ -0,0 +1,146 @@ + + + + + + + +ESP-IDF Firmware: Class Hierarchy + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+
+

Go to the graphical class hierarchy

+This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Ccdcacm_event_line_coding_changed_data_tData provided to the input of the line_coding_changed callback
 Ccdcacm_event_line_state_changed_data_tData provided to the input of the callback_line_state_changed callback
 Ccdcacm_event_rx_wanted_char_data_tData provided to the input of the callback_rx_wanted_char callback
 Ccdcacm_event_tDescribes an event passing to the input of a callbacks
 Cconsole_handle_t
 Ccplx_sig_sData struct of the complex signal generator
 Cdsps_resample_mr_sData struct of f32 multi-rate resampler
 Cdsps_resample_ph_sData struct of f32 poly-phase resampler
 Cekf
 Cekf_imu13statesThis class is used to process and calculate attitude from imu sensors
 Cesp_tusb_cdc_t
 Cesp_tusb_cdcacm_t
 Cfc32_u
 Cfir_f32_sData struct of f32 fir filter
 Cfir_s16_sData struct of s16 fir filter
 Cframe_wire_t
 Cimage2d_s
 Cimage_3d_matrix_kalman_sData struct of 3d image matrix with kalman filter object
 Cimage_3d_matrix_sData struct of 3d image matrix
 Cled_strip_config_tLED Strip Configuration
 Cled_strip_encoder_config_tType of led strip encoder configuration
 Cled_strip_rmt_config_tLED Strip RMT specific configuration
 Cled_strip_rmt_obj
 Cled_strip_spi_config_tLED Strip SPI specific configuration
 Cled_strip_spi_obj
 Cled_strip_tLED strip interface definition
 Cdspm::MatMatrix
 Cdspm::Mat::RectRectangular area
 Crmt_led_strip_encoder_t
 Csc16_u
 Ctinyusb_config_cdc_t
 Ctinyusb_config_cdcacm_tConfiguration structure for CDC-ACM
 Ctinyusb_config_tConfiguration structure of the TinyUSB core
 Cvfs_tinyusb_t
 Cwave_gen_config_tConfiguration structure for Wave Generator
+
+
+
+
+ + + + diff --git a/docs/html/hierarchy.js b/docs/html/hierarchy.js new file mode 100644 index 0000000..4d68884 --- /dev/null +++ b/docs/html/hierarchy.js @@ -0,0 +1,39 @@ +var hierarchy = +[ + [ "cdcacm_event_line_coding_changed_data_t", "structcdcacm__event__line__coding__changed__data__t.html", null ], + [ "cdcacm_event_line_state_changed_data_t", "structcdcacm__event__line__state__changed__data__t.html", null ], + [ "cdcacm_event_rx_wanted_char_data_t", "structcdcacm__event__rx__wanted__char__data__t.html", null ], + [ "cdcacm_event_t", "structcdcacm__event__t.html", null ], + [ "console_handle_t", "structconsole__handle__t.html", null ], + [ "cplx_sig_s", "structcplx__sig__s.html", null ], + [ "dsps_resample_mr_s", "structdsps__resample__mr__s.html", null ], + [ "dsps_resample_ph_s", "structdsps__resample__ph__s.html", null ], + [ "ekf", "classekf.html", [ + [ "ekf_imu13states", "classekf__imu13states.html", null ] + ] ], + [ "esp_tusb_cdc_t", "structesp__tusb__cdc__t.html", null ], + [ "esp_tusb_cdcacm_t", "structesp__tusb__cdcacm__t.html", null ], + [ "fc32_u", "unionfc32__u.html", null ], + [ "fir_f32_s", "structfir__f32__s.html", null ], + [ "fir_s16_s", "structfir__s16__s.html", null ], + [ "frame_wire_t", "structframe__wire__t.html", null ], + [ "image2d_s", "structimage2d__s.html", null ], + [ "image_3d_matrix_kalman_s", "structimage__3d__matrix__kalman__s.html", null ], + [ "image_3d_matrix_s", "structimage__3d__matrix__s.html", null ], + [ "led_strip_config_t", "structled__strip__config__t.html", null ], + [ "led_strip_encoder_config_t", "structled__strip__encoder__config__t.html", null ], + [ "led_strip_rmt_config_t", "structled__strip__rmt__config__t.html", null ], + [ "led_strip_rmt_obj", "structled__strip__rmt__obj.html", null ], + [ "led_strip_spi_config_t", "structled__strip__spi__config__t.html", null ], + [ "led_strip_spi_obj", "structled__strip__spi__obj.html", null ], + [ "led_strip_t", "structled__strip__t.html", null ], + [ "dspm::Mat", "classdspm_1_1_mat.html", null ], + [ "dspm::Mat::Rect", "structdspm_1_1_mat_1_1_rect.html", null ], + [ "rmt_led_strip_encoder_t", "structrmt__led__strip__encoder__t.html", null ], + [ "sc16_u", "unionsc16__u.html", null ], + [ "tinyusb_config_cdc_t", "structtinyusb__config__cdc__t.html", null ], + [ "tinyusb_config_cdcacm_t", "structtinyusb__config__cdcacm__t.html", null ], + [ "tinyusb_config_t", "structtinyusb__config__t.html", null ], + [ "vfs_tinyusb_t", "structvfs__tinyusb__t.html", null ], + [ "wave_gen_config_t", "structwave__gen__config__t.html", null ] +]; \ No newline at end of file diff --git a/docs/html/index.html b/docs/html/index.html new file mode 100644 index 0000000..7e1515e --- /dev/null +++ b/docs/html/index.html @@ -0,0 +1,106 @@ + + + + + + + +ESP-IDF Firmware: Main Page + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ESP-IDF Firmware Documentation
+
+
+ +
+
+
+ + + + diff --git a/docs/html/inherit_graph_0.md5 b/docs/html/inherit_graph_0.md5 new file mode 100644 index 0000000..71fb491 --- /dev/null +++ b/docs/html/inherit_graph_0.md5 @@ -0,0 +1 @@ +0f094b5999b07e62e024bbdb3f3f060a \ No newline at end of file diff --git a/docs/html/inherit_graph_0.svg b/docs/html/inherit_graph_0.svg new file mode 100644 index 0000000..d4d7cfa --- /dev/null +++ b/docs/html/inherit_graph_0.svg @@ -0,0 +1,22 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +cdcacm_event_line_coding +_changed_data_t + + + + + diff --git a/docs/html/inherit_graph_1.md5 b/docs/html/inherit_graph_1.md5 new file mode 100644 index 0000000..369c2d5 --- /dev/null +++ b/docs/html/inherit_graph_1.md5 @@ -0,0 +1 @@ +aa1c638a880c2612d5d7d7d7f7dae60a \ No newline at end of file diff --git a/docs/html/inherit_graph_1.svg b/docs/html/inherit_graph_1.svg new file mode 100644 index 0000000..ec88f20 --- /dev/null +++ b/docs/html/inherit_graph_1.svg @@ -0,0 +1,22 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +cdcacm_event_line_state +_changed_data_t + + + + + diff --git a/docs/html/inherit_graph_10.md5 b/docs/html/inherit_graph_10.md5 new file mode 100644 index 0000000..754a282 --- /dev/null +++ b/docs/html/inherit_graph_10.md5 @@ -0,0 +1 @@ +b1122ac7c18cd6ee3295a323ec3fdc9d \ No newline at end of file diff --git a/docs/html/inherit_graph_10.svg b/docs/html/inherit_graph_10.svg new file mode 100644 index 0000000..8b5a244 --- /dev/null +++ b/docs/html/inherit_graph_10.svg @@ -0,0 +1,39 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +ekf + + + + + +Node1 + + +ekf_imu13states + + + + + +Node0->Node1 + + + + + + + + diff --git a/docs/html/inherit_graph_11.md5 b/docs/html/inherit_graph_11.md5 new file mode 100644 index 0000000..cfc01ed --- /dev/null +++ b/docs/html/inherit_graph_11.md5 @@ -0,0 +1 @@ +8b69bd3f67077cae97522181768fe8fe \ No newline at end of file diff --git a/docs/html/inherit_graph_11.svg b/docs/html/inherit_graph_11.svg new file mode 100644 index 0000000..ca835e0 --- /dev/null +++ b/docs/html/inherit_graph_11.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +esp_tusb_cdc_t + + + + + diff --git a/docs/html/inherit_graph_12.md5 b/docs/html/inherit_graph_12.md5 new file mode 100644 index 0000000..8c43a9d --- /dev/null +++ b/docs/html/inherit_graph_12.md5 @@ -0,0 +1 @@ +dbe7a8568f024f03ea0ef851e5ae0afa \ No newline at end of file diff --git a/docs/html/inherit_graph_12.svg b/docs/html/inherit_graph_12.svg new file mode 100644 index 0000000..61a0d9a --- /dev/null +++ b/docs/html/inherit_graph_12.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +esp_tusb_cdcacm_t + + + + + diff --git a/docs/html/inherit_graph_13.md5 b/docs/html/inherit_graph_13.md5 new file mode 100644 index 0000000..238e858 --- /dev/null +++ b/docs/html/inherit_graph_13.md5 @@ -0,0 +1 @@ +e16ce6790c0f96dcdebd6da6c302e0bc \ No newline at end of file diff --git a/docs/html/inherit_graph_13.svg b/docs/html/inherit_graph_13.svg new file mode 100644 index 0000000..bfb311a --- /dev/null +++ b/docs/html/inherit_graph_13.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +fc32_u + + + + + diff --git a/docs/html/inherit_graph_14.md5 b/docs/html/inherit_graph_14.md5 new file mode 100644 index 0000000..c831a04 --- /dev/null +++ b/docs/html/inherit_graph_14.md5 @@ -0,0 +1 @@ +9fb51d11fb087f0f5cf578d1973cd3ef \ No newline at end of file diff --git a/docs/html/inherit_graph_14.svg b/docs/html/inherit_graph_14.svg new file mode 100644 index 0000000..223ffb0 --- /dev/null +++ b/docs/html/inherit_graph_14.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +fir_f32_s + + + + + diff --git a/docs/html/inherit_graph_15.md5 b/docs/html/inherit_graph_15.md5 new file mode 100644 index 0000000..7c71715 --- /dev/null +++ b/docs/html/inherit_graph_15.md5 @@ -0,0 +1 @@ +7b1abce364d7ca1da2bef56af99c6f0b \ No newline at end of file diff --git a/docs/html/inherit_graph_15.svg b/docs/html/inherit_graph_15.svg new file mode 100644 index 0000000..8f2cf19 --- /dev/null +++ b/docs/html/inherit_graph_15.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +fir_s16_s + + + + + diff --git a/docs/html/inherit_graph_16.md5 b/docs/html/inherit_graph_16.md5 new file mode 100644 index 0000000..d5784ed --- /dev/null +++ b/docs/html/inherit_graph_16.md5 @@ -0,0 +1 @@ +06e0858b93e938950c911c271feeba9b \ No newline at end of file diff --git a/docs/html/inherit_graph_16.svg b/docs/html/inherit_graph_16.svg new file mode 100644 index 0000000..1f5737d --- /dev/null +++ b/docs/html/inherit_graph_16.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +frame_wire_t + + + + + diff --git a/docs/html/inherit_graph_17.md5 b/docs/html/inherit_graph_17.md5 new file mode 100644 index 0000000..5dbf0cd --- /dev/null +++ b/docs/html/inherit_graph_17.md5 @@ -0,0 +1 @@ +67e2a81ae373bb29c4cf4d461d796b57 \ No newline at end of file diff --git a/docs/html/inherit_graph_17.svg b/docs/html/inherit_graph_17.svg new file mode 100644 index 0000000..8bca5a3 --- /dev/null +++ b/docs/html/inherit_graph_17.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +image2d_s + + + + + diff --git a/docs/html/inherit_graph_18.md5 b/docs/html/inherit_graph_18.md5 new file mode 100644 index 0000000..b15f870 --- /dev/null +++ b/docs/html/inherit_graph_18.md5 @@ -0,0 +1 @@ +297895a887fad3f54199c437f08532f5 \ No newline at end of file diff --git a/docs/html/inherit_graph_18.svg b/docs/html/inherit_graph_18.svg new file mode 100644 index 0000000..8de8f45 --- /dev/null +++ b/docs/html/inherit_graph_18.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +image_3d_matrix_kalman_s + + + + + diff --git a/docs/html/inherit_graph_19.md5 b/docs/html/inherit_graph_19.md5 new file mode 100644 index 0000000..9a3fffe --- /dev/null +++ b/docs/html/inherit_graph_19.md5 @@ -0,0 +1 @@ +d60103a57998a85849a9501ca82e2caa \ No newline at end of file diff --git a/docs/html/inherit_graph_19.svg b/docs/html/inherit_graph_19.svg new file mode 100644 index 0000000..d9913a5 --- /dev/null +++ b/docs/html/inherit_graph_19.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +image_3d_matrix_s + + + + + diff --git a/docs/html/inherit_graph_2.md5 b/docs/html/inherit_graph_2.md5 new file mode 100644 index 0000000..bd308d5 --- /dev/null +++ b/docs/html/inherit_graph_2.md5 @@ -0,0 +1 @@ +3ee5e75c73175625d5867805c9116014 \ No newline at end of file diff --git a/docs/html/inherit_graph_2.svg b/docs/html/inherit_graph_2.svg new file mode 100644 index 0000000..717cd6c --- /dev/null +++ b/docs/html/inherit_graph_2.svg @@ -0,0 +1,22 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +cdcacm_event_rx_wanted +_char_data_t + + + + + diff --git a/docs/html/inherit_graph_20.md5 b/docs/html/inherit_graph_20.md5 new file mode 100644 index 0000000..c21d49d --- /dev/null +++ b/docs/html/inherit_graph_20.md5 @@ -0,0 +1 @@ +de5605a5cdddcb55a35bc778f473d782 \ No newline at end of file diff --git a/docs/html/inherit_graph_20.svg b/docs/html/inherit_graph_20.svg new file mode 100644 index 0000000..8035929 --- /dev/null +++ b/docs/html/inherit_graph_20.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +led_strip_config_t + + + + + diff --git a/docs/html/inherit_graph_21.md5 b/docs/html/inherit_graph_21.md5 new file mode 100644 index 0000000..70e31ee --- /dev/null +++ b/docs/html/inherit_graph_21.md5 @@ -0,0 +1 @@ +ca93c2d30ff635b150ee676b4830b73e \ No newline at end of file diff --git a/docs/html/inherit_graph_21.svg b/docs/html/inherit_graph_21.svg new file mode 100644 index 0000000..2b76838 --- /dev/null +++ b/docs/html/inherit_graph_21.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +led_strip_encoder_config_t + + + + + diff --git a/docs/html/inherit_graph_22.md5 b/docs/html/inherit_graph_22.md5 new file mode 100644 index 0000000..72dcac0 --- /dev/null +++ b/docs/html/inherit_graph_22.md5 @@ -0,0 +1 @@ +efd7b06c4054ace7a22e007fb8afc9d8 \ No newline at end of file diff --git a/docs/html/inherit_graph_22.svg b/docs/html/inherit_graph_22.svg new file mode 100644 index 0000000..58051aa --- /dev/null +++ b/docs/html/inherit_graph_22.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +led_strip_rmt_config_t + + + + + diff --git a/docs/html/inherit_graph_23.md5 b/docs/html/inherit_graph_23.md5 new file mode 100644 index 0000000..7d0a916 --- /dev/null +++ b/docs/html/inherit_graph_23.md5 @@ -0,0 +1 @@ +ed6449a164d7ab31ab1be31ac6284b99 \ No newline at end of file diff --git a/docs/html/inherit_graph_23.svg b/docs/html/inherit_graph_23.svg new file mode 100644 index 0000000..027c728 --- /dev/null +++ b/docs/html/inherit_graph_23.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +led_strip_rmt_obj + + + + + diff --git a/docs/html/inherit_graph_24.md5 b/docs/html/inherit_graph_24.md5 new file mode 100644 index 0000000..c20c9c1 --- /dev/null +++ b/docs/html/inherit_graph_24.md5 @@ -0,0 +1 @@ +a278a91dfe48fa8f8fd6bb09302e5d3b \ No newline at end of file diff --git a/docs/html/inherit_graph_24.svg b/docs/html/inherit_graph_24.svg new file mode 100644 index 0000000..1085eb3 --- /dev/null +++ b/docs/html/inherit_graph_24.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +led_strip_spi_config_t + + + + + diff --git a/docs/html/inherit_graph_25.md5 b/docs/html/inherit_graph_25.md5 new file mode 100644 index 0000000..30b3736 --- /dev/null +++ b/docs/html/inherit_graph_25.md5 @@ -0,0 +1 @@ +ee7cb67b9cdce8e19a5388799436562a \ No newline at end of file diff --git a/docs/html/inherit_graph_25.svg b/docs/html/inherit_graph_25.svg new file mode 100644 index 0000000..c23daa5 --- /dev/null +++ b/docs/html/inherit_graph_25.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +led_strip_spi_obj + + + + + diff --git a/docs/html/inherit_graph_26.md5 b/docs/html/inherit_graph_26.md5 new file mode 100644 index 0000000..ad91562 --- /dev/null +++ b/docs/html/inherit_graph_26.md5 @@ -0,0 +1 @@ +2007515d77719c0ee89e3594d429f2bc \ No newline at end of file diff --git a/docs/html/inherit_graph_26.svg b/docs/html/inherit_graph_26.svg new file mode 100644 index 0000000..bcde9e8 --- /dev/null +++ b/docs/html/inherit_graph_26.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +led_strip_t + + + + + diff --git a/docs/html/inherit_graph_27.md5 b/docs/html/inherit_graph_27.md5 new file mode 100644 index 0000000..ba74e30 --- /dev/null +++ b/docs/html/inherit_graph_27.md5 @@ -0,0 +1 @@ +9375384654ea1cb7f63f715d852452c2 \ No newline at end of file diff --git a/docs/html/inherit_graph_27.svg b/docs/html/inherit_graph_27.svg new file mode 100644 index 0000000..6f4117e --- /dev/null +++ b/docs/html/inherit_graph_27.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +rmt_led_strip_encoder_t + + + + + diff --git a/docs/html/inherit_graph_28.md5 b/docs/html/inherit_graph_28.md5 new file mode 100644 index 0000000..98cc5af --- /dev/null +++ b/docs/html/inherit_graph_28.md5 @@ -0,0 +1 @@ +ca2c4d99f837efce30c5fda76d1741d6 \ No newline at end of file diff --git a/docs/html/inherit_graph_28.svg b/docs/html/inherit_graph_28.svg new file mode 100644 index 0000000..20f5911 --- /dev/null +++ b/docs/html/inherit_graph_28.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +sc16_u + + + + + diff --git a/docs/html/inherit_graph_29.md5 b/docs/html/inherit_graph_29.md5 new file mode 100644 index 0000000..7104fe9 --- /dev/null +++ b/docs/html/inherit_graph_29.md5 @@ -0,0 +1 @@ +f36fbdc915f9abf7f5ce748b2cb99501 \ No newline at end of file diff --git a/docs/html/inherit_graph_29.svg b/docs/html/inherit_graph_29.svg new file mode 100644 index 0000000..1e3d25e --- /dev/null +++ b/docs/html/inherit_graph_29.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +tinyusb_config_cdc_t + + + + + diff --git a/docs/html/inherit_graph_3.md5 b/docs/html/inherit_graph_3.md5 new file mode 100644 index 0000000..1290c7b --- /dev/null +++ b/docs/html/inherit_graph_3.md5 @@ -0,0 +1 @@ +31c7eaabc8f53522b0b5b132bc6be84c \ No newline at end of file diff --git a/docs/html/inherit_graph_3.svg b/docs/html/inherit_graph_3.svg new file mode 100644 index 0000000..c63c8bb --- /dev/null +++ b/docs/html/inherit_graph_3.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +cdcacm_event_t + + + + + diff --git a/docs/html/inherit_graph_30.md5 b/docs/html/inherit_graph_30.md5 new file mode 100644 index 0000000..556cc66 --- /dev/null +++ b/docs/html/inherit_graph_30.md5 @@ -0,0 +1 @@ +2de3bcee5c03b95a2a8c5b4b47cb964e \ No newline at end of file diff --git a/docs/html/inherit_graph_30.svg b/docs/html/inherit_graph_30.svg new file mode 100644 index 0000000..edb3fa1 --- /dev/null +++ b/docs/html/inherit_graph_30.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +tinyusb_config_cdcacm_t + + + + + diff --git a/docs/html/inherit_graph_31.md5 b/docs/html/inherit_graph_31.md5 new file mode 100644 index 0000000..351e008 --- /dev/null +++ b/docs/html/inherit_graph_31.md5 @@ -0,0 +1 @@ +42aff8779f90b58b9883fe3980b2aa7d \ No newline at end of file diff --git a/docs/html/inherit_graph_31.svg b/docs/html/inherit_graph_31.svg new file mode 100644 index 0000000..f66deaa --- /dev/null +++ b/docs/html/inherit_graph_31.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +tinyusb_config_t + + + + + diff --git a/docs/html/inherit_graph_32.md5 b/docs/html/inherit_graph_32.md5 new file mode 100644 index 0000000..f63ea06 --- /dev/null +++ b/docs/html/inherit_graph_32.md5 @@ -0,0 +1 @@ +2044d9eda416d4f9f164be3e57529083 \ No newline at end of file diff --git a/docs/html/inherit_graph_32.svg b/docs/html/inherit_graph_32.svg new file mode 100644 index 0000000..12400fe --- /dev/null +++ b/docs/html/inherit_graph_32.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +vfs_tinyusb_t + + + + + diff --git a/docs/html/inherit_graph_33.md5 b/docs/html/inherit_graph_33.md5 new file mode 100644 index 0000000..451bbb0 --- /dev/null +++ b/docs/html/inherit_graph_33.md5 @@ -0,0 +1 @@ +0d296a4503d2c2ef87d04be3514d4d41 \ No newline at end of file diff --git a/docs/html/inherit_graph_33.svg b/docs/html/inherit_graph_33.svg new file mode 100644 index 0000000..a79ba8a --- /dev/null +++ b/docs/html/inherit_graph_33.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +wave_gen_config_t + + + + + diff --git a/docs/html/inherit_graph_4.md5 b/docs/html/inherit_graph_4.md5 new file mode 100644 index 0000000..9744016 --- /dev/null +++ b/docs/html/inherit_graph_4.md5 @@ -0,0 +1 @@ +ab7a96de88c670bc4ea65fcc9c7d1c24 \ No newline at end of file diff --git a/docs/html/inherit_graph_4.svg b/docs/html/inherit_graph_4.svg new file mode 100644 index 0000000..ca5259b --- /dev/null +++ b/docs/html/inherit_graph_4.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +console_handle_t + + + + + diff --git a/docs/html/inherit_graph_5.md5 b/docs/html/inherit_graph_5.md5 new file mode 100644 index 0000000..8749619 --- /dev/null +++ b/docs/html/inherit_graph_5.md5 @@ -0,0 +1 @@ +3f17967795b9aebcda380eba2a2d50a0 \ No newline at end of file diff --git a/docs/html/inherit_graph_5.svg b/docs/html/inherit_graph_5.svg new file mode 100644 index 0000000..422bc47 --- /dev/null +++ b/docs/html/inherit_graph_5.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +cplx_sig_s + + + + + diff --git a/docs/html/inherit_graph_6.md5 b/docs/html/inherit_graph_6.md5 new file mode 100644 index 0000000..0c7f640 --- /dev/null +++ b/docs/html/inherit_graph_6.md5 @@ -0,0 +1 @@ +3f99b72784955a04d32c37ac974ba308 \ No newline at end of file diff --git a/docs/html/inherit_graph_6.svg b/docs/html/inherit_graph_6.svg new file mode 100644 index 0000000..0950514 --- /dev/null +++ b/docs/html/inherit_graph_6.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +dspm::Mat + + + + + diff --git a/docs/html/inherit_graph_7.md5 b/docs/html/inherit_graph_7.md5 new file mode 100644 index 0000000..4734715 --- /dev/null +++ b/docs/html/inherit_graph_7.md5 @@ -0,0 +1 @@ +c03c53a0963fc3269f2fe0dfd504e27d \ No newline at end of file diff --git a/docs/html/inherit_graph_7.svg b/docs/html/inherit_graph_7.svg new file mode 100644 index 0000000..965181f --- /dev/null +++ b/docs/html/inherit_graph_7.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +dspm::Mat::Rect + + + + + diff --git a/docs/html/inherit_graph_8.md5 b/docs/html/inherit_graph_8.md5 new file mode 100644 index 0000000..e163e2b --- /dev/null +++ b/docs/html/inherit_graph_8.md5 @@ -0,0 +1 @@ +6f609cdaea89bdc9536cf11d45406e1c \ No newline at end of file diff --git a/docs/html/inherit_graph_8.svg b/docs/html/inherit_graph_8.svg new file mode 100644 index 0000000..c89a4a8 --- /dev/null +++ b/docs/html/inherit_graph_8.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +dsps_resample_mr_s + + + + + diff --git a/docs/html/inherit_graph_9.md5 b/docs/html/inherit_graph_9.md5 new file mode 100644 index 0000000..91486d1 --- /dev/null +++ b/docs/html/inherit_graph_9.md5 @@ -0,0 +1 @@ +22e881c002f2abda215de9a720659117 \ No newline at end of file diff --git a/docs/html/inherit_graph_9.svg b/docs/html/inherit_graph_9.svg new file mode 100644 index 0000000..939b1f9 --- /dev/null +++ b/docs/html/inherit_graph_9.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + + +Node0 + + +dsps_resample_ph_s + + + + + diff --git a/docs/html/inherits.html b/docs/html/inherits.html new file mode 100644 index 0000000..484d7db --- /dev/null +++ b/docs/html/inherits.html @@ -0,0 +1,143 @@ + + + + + + + +ESP-IDF Firmware: Class Hierarchy + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + diff --git a/docs/html/jquery.js b/docs/html/jquery.js new file mode 100644 index 0000000..875ada7 --- /dev/null +++ b/docs/html/jquery.js @@ -0,0 +1,204 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e} +var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( +"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType +}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c +)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ +return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( +":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") +)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( +"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( +a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, +null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne +).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( +var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n; +return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, +r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] +,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( +function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, +"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} +),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( +"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t +){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t +]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, +getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, +s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), +this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t +).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( +","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( +this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ +width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), +!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ +this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height +,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, +i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left +)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e +){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), +i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( +)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, +function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 +]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){ +targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", +"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( +session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} +closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( +session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, +function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); +tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, +finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); +return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} +function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), +elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, +viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, +"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), +mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( +$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( +this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( +"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" +).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( +this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( +var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ +return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( +!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( +this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 +]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( +"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ +t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" +)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ +t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), +a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, +downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) +)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t +)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), +canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, +rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} +return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, +bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/docs/html/led__strip_8h.html b/docs/html/led__strip_8h.html new file mode 100644 index 0000000..70f8cd9 --- /dev/null +++ b/docs/html/led__strip_8h.html @@ -0,0 +1,524 @@ + + + + + + + +ESP-IDF Firmware: led_strip.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip.h File Reference
+
+
+
#include <stdint.h>
+#include "esp_err.h"
+#include "led_strip_rmt.h"
+#include "esp_idf_version.h"
+#include "led_strip_spi.h"
+
+Include dependency graph for led_strip.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

esp_err_t led_strip_set_pixel (led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
 Set RGB for a specific pixel.
esp_err_t led_strip_set_pixel_rgbw (led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
 Set RGBW for a specific pixel.
esp_err_t led_strip_set_pixel_hsv (led_strip_handle_t strip, uint32_t index, uint16_t hue, uint8_t saturation, uint8_t value)
 Set HSV for a specific pixel.
esp_err_t led_strip_refresh (led_strip_handle_t strip)
 Refresh memory colors to LEDs.
esp_err_t led_strip_clear (led_strip_handle_t strip)
 Clear LED strip (turn off all LEDs).
esp_err_t led_strip_del (led_strip_handle_t strip)
 Free LED strip resources.
+

Function Documentation

+ +

◆ led_strip_clear()

+ +
+
+ + + + + + + +
esp_err_t led_strip_clear (led_strip_handle_t strip)
+
+ +

Clear LED strip (turn off all LEDs).

+
Parameters
+ + +
stripLED strip
+
+
+
Returns
    +
  • ESP_OK: Clear LEDs successfully
  • +
  • ESP_FAIL: Clear LEDs failed because some other error occurred
  • +
+
+ +

Definition at line 84 of file led_strip_api.c.

+
85{
+
86 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
87 return strip->clear(strip);
+
88}
+
static const char * TAG
Definition main/main.c:31
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+

References led_strip_t::clear, and TAG.

+ +
+
+ +

◆ led_strip_del()

+ +
+
+ + + + + + + +
esp_err_t led_strip_del (led_strip_handle_t strip)
+
+ +

Free LED strip resources.

+
Parameters
+ + +
stripLED strip
+
+
+
Returns
    +
  • ESP_OK: Free resources successfully
  • +
  • ESP_FAIL: Free resources failed because error occurred
  • +
+
+ +

Definition at line 90 of file led_strip_api.c.

+
91{
+
92 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
93 return strip->del(strip);
+
94}
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
+

References led_strip_t::del, and TAG.

+ +
+
+ +

◆ led_strip_refresh()

+ +
+
+ + + + + + + +
esp_err_t led_strip_refresh (led_strip_handle_t strip)
+
+ +

Refresh memory colors to LEDs.

+
Parameters
+ + +
stripLED strip
+
+
+
Returns
    +
  • ESP_OK: Refresh successfully
  • +
  • ESP_FAIL: Refresh failed because some other error occurred
  • +
+
+
Note
: After updating the LED colors in the memory, a following invocation of this API is needed to flush colors to strip.
+ +

Definition at line 78 of file led_strip_api.c.

+
79{
+
80 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
81 return strip->refresh(strip);
+
82}
+
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
+

References led_strip_t::refresh, and TAG.

+ +

Referenced by cdc_tx_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_set_pixel()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_set_pixel (led_strip_handle_t strip,
uint32_t index,
uint32_t red,
uint32_t green,
uint32_t blue )
+
+ +

Set RGB for a specific pixel.

+
Parameters
+ + + + + + +
stripLED strip
indexindex of pixel to set
redred part of color
greengreen part of color
blueblue part of color
+
+
+
Returns
    +
  • ESP_OK: Set RGB for a specific pixel successfully
  • +
  • ESP_ERR_INVALID_ARG: Set RGB for a specific pixel failed because of invalid parameters
  • +
  • ESP_FAIL: Set RGB for a specific pixel failed because other error occurred
  • +
+
+ +

Definition at line 13 of file led_strip_api.c.

+
14{
+
15 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
16 return strip->set_pixel(strip, index, red, green, blue);
+
17}
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
+

References led_strip_t::set_pixel, and TAG.

+ +

Referenced by cdc_tx_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_set_pixel_hsv()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_set_pixel_hsv (led_strip_handle_t strip,
uint32_t index,
uint16_t hue,
uint8_t saturation,
uint8_t value )
+
+ +

Set HSV for a specific pixel.

+
Parameters
+ + + + + + +
stripLED strip
indexindex of pixel to set
huehue part of color (0 - 360)
saturationsaturation part of color (0 - 255, rescaled from 0 - 1. e.g. saturation = 0.5, rescaled to 127)
valuevalue part of color (0 - 255, rescaled from 0 - 1. e.g. value = 0.5, rescaled to 127)
+
+
+
Returns
    +
  • ESP_OK: Set HSV color for a specific pixel successfully
  • +
  • ESP_ERR_INVALID_ARG: Set HSV color for a specific pixel failed because of an invalid argument
  • +
  • ESP_FAIL: Set HSV color for a specific pixel failed because other error occurred
  • +
+
+ +

Definition at line 19 of file led_strip_api.c.

+
20{
+
21 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
22
+
23 uint32_t red = 0;
+
24 uint32_t green = 0;
+
25 uint32_t blue = 0;
+
26
+
27 uint32_t rgb_max = value;
+
28 uint32_t rgb_min = rgb_max * (255 - saturation) / 255.0f;
+
29
+
30 uint32_t i = hue / 60;
+
31 uint32_t diff = hue % 60;
+
32
+
33 // RGB adjustment amount by hue
+
34 uint32_t rgb_adj = (rgb_max - rgb_min) * diff / 60;
+
35
+
36 switch (i) {
+
37 case 0:
+
38 red = rgb_max;
+
39 green = rgb_min + rgb_adj;
+
40 blue = rgb_min;
+
41 break;
+
42 case 1:
+
43 red = rgb_max - rgb_adj;
+
44 green = rgb_max;
+
45 blue = rgb_min;
+
46 break;
+
47 case 2:
+
48 red = rgb_min;
+
49 green = rgb_max;
+
50 blue = rgb_min + rgb_adj;
+
51 break;
+
52 case 3:
+
53 red = rgb_min;
+
54 green = rgb_max - rgb_adj;
+
55 blue = rgb_max;
+
56 break;
+
57 case 4:
+
58 red = rgb_min + rgb_adj;
+
59 green = rgb_min;
+
60 blue = rgb_max;
+
61 break;
+
62 default:
+
63 red = rgb_max;
+
64 green = rgb_min;
+
65 blue = rgb_max - rgb_adj;
+
66 break;
+
67 }
+
68
+
69 return strip->set_pixel(strip, index, red, green, blue);
+
70}
+
+

References led_strip_t::set_pixel, and TAG.

+ +
+
+ +

◆ led_strip_set_pixel_rgbw()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_set_pixel_rgbw (led_strip_handle_t strip,
uint32_t index,
uint32_t red,
uint32_t green,
uint32_t blue,
uint32_t white )
+
+ +

Set RGBW for a specific pixel.

+
Note
Only call this function if your led strip does have the white component (e.g. SK6812-RGBW)
+
+Also see led_strip_set_pixel if you only want to specify the RGB part of the color and bypass the white component
+
Parameters
+ + + + + + + +
stripLED strip
indexindex of pixel to set
redred part of color
greengreen part of color
blueblue part of color
whiteseparate white component
+
+
+
Returns
    +
  • ESP_OK: Set RGBW color for a specific pixel successfully
  • +
  • ESP_ERR_INVALID_ARG: Set RGBW color for a specific pixel failed because of an invalid argument
  • +
  • ESP_FAIL: Set RGBW color for a specific pixel failed because other error occurred
  • +
+
+ +

Definition at line 72 of file led_strip_api.c.

+
73{
+
74 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
75 return strip->set_pixel_rgbw(strip, index, red, green, blue, white);
+
76}
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
+

References led_strip_t::set_pixel_rgbw, and TAG.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip_8h.js b/docs/html/led__strip_8h.js new file mode 100644 index 0000000..5ed44cb --- /dev/null +++ b/docs/html/led__strip_8h.js @@ -0,0 +1,9 @@ +var led__strip_8h = +[ + [ "led_strip_clear", "led__strip_8h.html#a1538dd2257d5cd57aa4994e4c7a5d666", null ], + [ "led_strip_del", "led__strip_8h.html#aa90949186a553723134a3810913d4ed2", null ], + [ "led_strip_refresh", "led__strip_8h.html#a5e7ed29ab9fcd9e963ceeb9bb22c5736", null ], + [ "led_strip_set_pixel", "led__strip_8h.html#ac35423873d3ac95155349a89b51d651b", null ], + [ "led_strip_set_pixel_hsv", "led__strip_8h.html#a3965ace5386d4c88d6e69ebebc76832d", null ], + [ "led_strip_set_pixel_rgbw", "led__strip_8h.html#a26caccbd43185602f4ffcec157a70c87", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip_8h__dep__incl.md5 b/docs/html/led__strip_8h__dep__incl.md5 new file mode 100644 index 0000000..fc87249 --- /dev/null +++ b/docs/html/led__strip_8h__dep__incl.md5 @@ -0,0 +1 @@ +66f366a02649d49fa8a491937e17e96e \ No newline at end of file diff --git a/docs/html/led__strip_8h__dep__incl.svg b/docs/html/led__strip_8h__dep__incl.svg new file mode 100644 index 0000000..8269f00 --- /dev/null +++ b/docs/html/led__strip_8h__dep__incl.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +led_strip.h + + +Node1 + + +led_strip.h + + + + + +Node2 + + +led_strip_api.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_dev.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_dev_idf4.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_dev.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +main.c + + + + + +Node1->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/led__strip_8h__dep__incl_org.svg b/docs/html/led__strip_8h__dep__incl_org.svg new file mode 100644 index 0000000..ef19751 --- /dev/null +++ b/docs/html/led__strip_8h__dep__incl_org.svg @@ -0,0 +1,111 @@ + + + + + + +led_strip.h + + +Node1 + + +led_strip.h + + + + + +Node2 + + +led_strip_api.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_dev.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_dev_idf4.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_dev.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +main.c + + + + + +Node1->Node6 + + + + + + + + diff --git a/docs/html/led__strip_8h__incl.md5 b/docs/html/led__strip_8h__incl.md5 new file mode 100644 index 0000000..df42451 --- /dev/null +++ b/docs/html/led__strip_8h__incl.md5 @@ -0,0 +1 @@ +92e16e46241481e38565065f23f76d17 \ No newline at end of file diff --git a/docs/html/led__strip_8h__incl.svg b/docs/html/led__strip_8h__incl.svg new file mode 100644 index 0000000..80ae568 --- /dev/null +++ b/docs/html/led__strip_8h__incl.svg @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +led_strip.h + + +Node1 + + +led_strip.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +led_strip_rmt.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +esp_idf_version.h + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +led_strip_spi.h + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node5->Node2 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +led_strip_types.h + + + + + +Node5->Node6 + + + + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +driver/rmt_types.h + + + + + +Node5->Node8 + + + + + + + + +Node6->Node2 + + + + + + + + +Node9->Node2 + + + + + + + + +Node9->Node3 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +driver/spi_master.h + + + + + +Node9->Node10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/led__strip_8h__incl_org.svg b/docs/html/led__strip_8h__incl_org.svg new file mode 100644 index 0000000..5efc796 --- /dev/null +++ b/docs/html/led__strip_8h__incl_org.svg @@ -0,0 +1,246 @@ + + + + + + +led_strip.h + + +Node1 + + +led_strip.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +led_strip_rmt.h + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +esp_idf_version.h + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +led_strip_spi.h + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node5->Node2 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +led_strip_types.h + + + + + +Node5->Node6 + + + + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +driver/rmt_types.h + + + + + +Node5->Node8 + + + + + + + + +Node6->Node2 + + + + + + + + +Node9->Node2 + + + + + + + + +Node9->Node3 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +driver/spi_master.h + + + + + +Node9->Node10 + + + + + + + + diff --git a/docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 b/docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 new file mode 100644 index 0000000..284898a --- /dev/null +++ b/docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 @@ -0,0 +1 @@ +43e3dbbfeb6e2fd12e99ad12e5245ec3 \ No newline at end of file diff --git a/docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg b/docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg new file mode 100644 index 0000000..fc48ef0 --- /dev/null +++ b/docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +led_strip_refresh + + +Node1 + + +led_strip_refresh + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg b/docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg new file mode 100644 index 0000000..0d718ec --- /dev/null +++ b/docs/html/led__strip_8h_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +led_strip_refresh + + +Node1 + + +led_strip_refresh + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph.md5 b/docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph.md5 new file mode 100644 index 0000000..4ee99a2 --- /dev/null +++ b/docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph.md5 @@ -0,0 +1 @@ +b13f6cf62af4719a4ab61f8807c1be00 \ No newline at end of file diff --git a/docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph.svg b/docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph.svg new file mode 100644 index 0000000..457b64d --- /dev/null +++ b/docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +led_strip_set_pixel + + +Node1 + + +led_strip_set_pixel + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph_org.svg b/docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph_org.svg new file mode 100644 index 0000000..ea9b779 --- /dev/null +++ b/docs/html/led__strip_8h_ac35423873d3ac95155349a89b51d651b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +led_strip_set_pixel + + +Node1 + + +led_strip_set_pixel + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/led__strip_8h_source.html b/docs/html/led__strip_8h_source.html new file mode 100644 index 0000000..56ca507 --- /dev/null +++ b/docs/html/led__strip_8h_source.html @@ -0,0 +1,152 @@ + + + + + + + +ESP-IDF Firmware: led_strip.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#pragma once
+
7
+
8#include <stdint.h>
+
9#include "esp_err.h"
+
10#include "led_strip_rmt.h"
+
11#include "esp_idf_version.h"
+
12
+
13#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 0)
+
14#include "led_strip_spi.h"
+
15#endif
+
16
+
17#ifdef __cplusplus
+
18extern "C" {
+
19#endif
+
20
+
35esp_err_t led_strip_set_pixel(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue);
+
36
+
55esp_err_t led_strip_set_pixel_rgbw(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white);
+
56
+
71esp_err_t led_strip_set_pixel_hsv(led_strip_handle_t strip, uint32_t index, uint16_t hue, uint8_t saturation, uint8_t value);
+
72
+ +
86
+ +
97
+ +
108
+
109#ifdef __cplusplus
+
110}
+
111#endif
+ +
int esp_err_t
Definition esp_err.h:21
+
esp_err_t led_strip_clear(led_strip_handle_t strip)
Clear LED strip (turn off all LEDs).
+
esp_err_t led_strip_set_pixel_rgbw(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel.
+
esp_err_t led_strip_set_pixel_hsv(led_strip_handle_t strip, uint32_t index, uint16_t hue, uint8_t saturation, uint8_t value)
Set HSV for a specific pixel.
+
esp_err_t led_strip_refresh(led_strip_handle_t strip)
Refresh memory colors to LEDs.
+
esp_err_t led_strip_del(led_strip_handle_t strip)
Free LED strip resources.
+
esp_err_t led_strip_set_pixel(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+ + +
struct led_strip_t * led_strip_handle_t
LED strip handle.
+
+
+
+ + + + diff --git a/docs/html/led__strip__api_8c.html b/docs/html/led__strip__api_8c.html new file mode 100644 index 0000000..b04db85 --- /dev/null +++ b/docs/html/led__strip__api_8c.html @@ -0,0 +1,547 @@ + + + + + + + +ESP-IDF Firmware: led_strip_api.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_api.c File Reference
+
+
+
#include "esp_log.h"
+#include "esp_check.h"
+#include "led_strip.h"
+#include "led_strip_interface.h"
+
+Include dependency graph for led_strip_api.c:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

esp_err_t led_strip_set_pixel (led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
 Set RGB for a specific pixel.
esp_err_t led_strip_set_pixel_hsv (led_strip_handle_t strip, uint32_t index, uint16_t hue, uint8_t saturation, uint8_t value)
 Set HSV for a specific pixel.
esp_err_t led_strip_set_pixel_rgbw (led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
 Set RGBW for a specific pixel.
esp_err_t led_strip_refresh (led_strip_handle_t strip)
 Refresh memory colors to LEDs.
esp_err_t led_strip_clear (led_strip_handle_t strip)
 Clear LED strip (turn off all LEDs).
esp_err_t led_strip_del (led_strip_handle_t strip)
 Free LED strip resources.
+ + +

+Variables

static const char * TAG = "led_strip"
+

Function Documentation

+ +

◆ led_strip_clear()

+ +
+
+ + + + + + + +
esp_err_t led_strip_clear (led_strip_handle_t strip)
+
+ +

Clear LED strip (turn off all LEDs).

+
Parameters
+ + +
stripLED strip
+
+
+
Returns
    +
  • ESP_OK: Clear LEDs successfully
  • +
  • ESP_FAIL: Clear LEDs failed because some other error occurred
  • +
+
+ +

Definition at line 84 of file led_strip_api.c.

+
85{
+
86 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
87 return strip->clear(strip);
+
88}
+
static const char * TAG
Definition main/main.c:31
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+

References led_strip_t::clear, and TAG.

+ +
+
+ +

◆ led_strip_del()

+ +
+
+ + + + + + + +
esp_err_t led_strip_del (led_strip_handle_t strip)
+
+ +

Free LED strip resources.

+
Parameters
+ + +
stripLED strip
+
+
+
Returns
    +
  • ESP_OK: Free resources successfully
  • +
  • ESP_FAIL: Free resources failed because error occurred
  • +
+
+ +

Definition at line 90 of file led_strip_api.c.

+
91{
+
92 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
93 return strip->del(strip);
+
94}
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
+

References led_strip_t::del, and TAG.

+ +
+
+ +

◆ led_strip_refresh()

+ +
+
+ + + + + + + +
esp_err_t led_strip_refresh (led_strip_handle_t strip)
+
+ +

Refresh memory colors to LEDs.

+
Parameters
+ + +
stripLED strip
+
+
+
Returns
    +
  • ESP_OK: Refresh successfully
  • +
  • ESP_FAIL: Refresh failed because some other error occurred
  • +
+
+
Note
: After updating the LED colors in the memory, a following invocation of this API is needed to flush colors to strip.
+ +

Definition at line 78 of file led_strip_api.c.

+
79{
+
80 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
81 return strip->refresh(strip);
+
82}
+
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
+

References led_strip_t::refresh, and TAG.

+ +

Referenced by cdc_tx_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_set_pixel()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_set_pixel (led_strip_handle_t strip,
uint32_t index,
uint32_t red,
uint32_t green,
uint32_t blue )
+
+ +

Set RGB for a specific pixel.

+
Parameters
+ + + + + + +
stripLED strip
indexindex of pixel to set
redred part of color
greengreen part of color
blueblue part of color
+
+
+
Returns
    +
  • ESP_OK: Set RGB for a specific pixel successfully
  • +
  • ESP_ERR_INVALID_ARG: Set RGB for a specific pixel failed because of invalid parameters
  • +
  • ESP_FAIL: Set RGB for a specific pixel failed because other error occurred
  • +
+
+ +

Definition at line 13 of file led_strip_api.c.

+
14{
+
15 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
16 return strip->set_pixel(strip, index, red, green, blue);
+
17}
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
+

References led_strip_t::set_pixel, and TAG.

+ +

Referenced by cdc_tx_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_set_pixel_hsv()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_set_pixel_hsv (led_strip_handle_t strip,
uint32_t index,
uint16_t hue,
uint8_t saturation,
uint8_t value )
+
+ +

Set HSV for a specific pixel.

+
Parameters
+ + + + + + +
stripLED strip
indexindex of pixel to set
huehue part of color (0 - 360)
saturationsaturation part of color (0 - 255, rescaled from 0 - 1. e.g. saturation = 0.5, rescaled to 127)
valuevalue part of color (0 - 255, rescaled from 0 - 1. e.g. value = 0.5, rescaled to 127)
+
+
+
Returns
    +
  • ESP_OK: Set HSV color for a specific pixel successfully
  • +
  • ESP_ERR_INVALID_ARG: Set HSV color for a specific pixel failed because of an invalid argument
  • +
  • ESP_FAIL: Set HSV color for a specific pixel failed because other error occurred
  • +
+
+ +

Definition at line 19 of file led_strip_api.c.

+
20{
+
21 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
22
+
23 uint32_t red = 0;
+
24 uint32_t green = 0;
+
25 uint32_t blue = 0;
+
26
+
27 uint32_t rgb_max = value;
+
28 uint32_t rgb_min = rgb_max * (255 - saturation) / 255.0f;
+
29
+
30 uint32_t i = hue / 60;
+
31 uint32_t diff = hue % 60;
+
32
+
33 // RGB adjustment amount by hue
+
34 uint32_t rgb_adj = (rgb_max - rgb_min) * diff / 60;
+
35
+
36 switch (i) {
+
37 case 0:
+
38 red = rgb_max;
+
39 green = rgb_min + rgb_adj;
+
40 blue = rgb_min;
+
41 break;
+
42 case 1:
+
43 red = rgb_max - rgb_adj;
+
44 green = rgb_max;
+
45 blue = rgb_min;
+
46 break;
+
47 case 2:
+
48 red = rgb_min;
+
49 green = rgb_max;
+
50 blue = rgb_min + rgb_adj;
+
51 break;
+
52 case 3:
+
53 red = rgb_min;
+
54 green = rgb_max - rgb_adj;
+
55 blue = rgb_max;
+
56 break;
+
57 case 4:
+
58 red = rgb_min + rgb_adj;
+
59 green = rgb_min;
+
60 blue = rgb_max;
+
61 break;
+
62 default:
+
63 red = rgb_max;
+
64 green = rgb_min;
+
65 blue = rgb_max - rgb_adj;
+
66 break;
+
67 }
+
68
+
69 return strip->set_pixel(strip, index, red, green, blue);
+
70}
+
+

References led_strip_t::set_pixel, and TAG.

+ +
+
+ +

◆ led_strip_set_pixel_rgbw()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_set_pixel_rgbw (led_strip_handle_t strip,
uint32_t index,
uint32_t red,
uint32_t green,
uint32_t blue,
uint32_t white )
+
+ +

Set RGBW for a specific pixel.

+
Note
Only call this function if your led strip does have the white component (e.g. SK6812-RGBW)
+
+Also see led_strip_set_pixel if you only want to specify the RGB part of the color and bypass the white component
+
Parameters
+ + + + + + + +
stripLED strip
indexindex of pixel to set
redred part of color
greengreen part of color
blueblue part of color
whiteseparate white component
+
+
+
Returns
    +
  • ESP_OK: Set RGBW color for a specific pixel successfully
  • +
  • ESP_ERR_INVALID_ARG: Set RGBW color for a specific pixel failed because of an invalid argument
  • +
  • ESP_FAIL: Set RGBW color for a specific pixel failed because other error occurred
  • +
+
+ +

Definition at line 72 of file led_strip_api.c.

+
73{
+
74 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
75 return strip->set_pixel_rgbw(strip, index, red, green, blue, white);
+
76}
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
+

References led_strip_t::set_pixel_rgbw, and TAG.

+ +
+
+

Variable Documentation

+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "led_strip"
+
+static
+
+ +

Definition at line 11 of file led_strip_api.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__api_8c.js b/docs/html/led__strip__api_8c.js new file mode 100644 index 0000000..1cd9f13 --- /dev/null +++ b/docs/html/led__strip__api_8c.js @@ -0,0 +1,10 @@ +var led__strip__api_8c = +[ + [ "led_strip_clear", "led__strip__api_8c.html#a1538dd2257d5cd57aa4994e4c7a5d666", null ], + [ "led_strip_del", "led__strip__api_8c.html#aa90949186a553723134a3810913d4ed2", null ], + [ "led_strip_refresh", "led__strip__api_8c.html#a5e7ed29ab9fcd9e963ceeb9bb22c5736", null ], + [ "led_strip_set_pixel", "led__strip__api_8c.html#ac35423873d3ac95155349a89b51d651b", null ], + [ "led_strip_set_pixel_hsv", "led__strip__api_8c.html#a3965ace5386d4c88d6e69ebebc76832d", null ], + [ "led_strip_set_pixel_rgbw", "led__strip__api_8c.html#a26caccbd43185602f4ffcec157a70c87", null ], + [ "TAG", "led__strip__api_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__api_8c__incl.md5 b/docs/html/led__strip__api_8c__incl.md5 new file mode 100644 index 0000000..79a37c0 --- /dev/null +++ b/docs/html/led__strip__api_8c__incl.md5 @@ -0,0 +1 @@ +dfba23241afbb47a7d2e3d6a1277e28b \ No newline at end of file diff --git a/docs/html/led__strip__api_8c__incl.svg b/docs/html/led__strip__api_8c__incl.svg new file mode 100644 index 0000000..971b6c6 --- /dev/null +++ b/docs/html/led__strip__api_8c__incl.svg @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +led_strip_api.c + + +Node1 + + +led_strip_api.c + + + + + +Node2 + + +esp_log.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +esp_check.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip.h + + + + + +Node1->Node5 + + + + + + + + +Node14 + + +led_strip_interface.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +stdlib.h + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +led_strip_rmt.h + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +esp_idf_version.h + + + + + +Node5->Node10 + + + + + + + + +Node12 + + +led_strip_spi.h + + + + + +Node5->Node12 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8->Node6 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +led_strip_types.h + + + + + +Node8->Node9 + + + + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +driver/rmt_types.h + + + + + +Node8->Node11 + + + + + + + + +Node9->Node6 + + + + + + + + +Node12->Node6 + + + + + + + + +Node12->Node7 + + + + + + + + +Node12->Node9 + + + + + + + + +Node13 + + +driver/spi_master.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node14->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/led__strip__api_8c__incl_org.svg b/docs/html/led__strip__api_8c__incl_org.svg new file mode 100644 index 0000000..5e94089 --- /dev/null +++ b/docs/html/led__strip__api_8c__incl_org.svg @@ -0,0 +1,345 @@ + + + + + + +led_strip_api.c + + +Node1 + + +led_strip_api.c + + + + + +Node2 + + +esp_log.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +esp_check.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip.h + + + + + +Node1->Node5 + + + + + + + + +Node14 + + +led_strip_interface.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +stdlib.h + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +esp_err.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +led_strip_rmt.h + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +esp_idf_version.h + + + + + +Node5->Node10 + + + + + + + + +Node12 + + +led_strip_spi.h + + + + + +Node5->Node12 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8->Node6 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +led_strip_types.h + + + + + +Node8->Node9 + + + + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +driver/rmt_types.h + + + + + +Node8->Node11 + + + + + + + + +Node9->Node6 + + + + + + + + +Node12->Node6 + + + + + + + + +Node12->Node7 + + + + + + + + +Node12->Node9 + + + + + + + + +Node13 + + +driver/spi_master.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node6 + + + + + + + + +Node14->Node7 + + + + + + + + diff --git a/docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 b/docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 new file mode 100644 index 0000000..284898a --- /dev/null +++ b/docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.md5 @@ -0,0 +1 @@ +43e3dbbfeb6e2fd12e99ad12e5245ec3 \ No newline at end of file diff --git a/docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg b/docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg new file mode 100644 index 0000000..fc48ef0 --- /dev/null +++ b/docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +led_strip_refresh + + +Node1 + + +led_strip_refresh + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg b/docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg new file mode 100644 index 0000000..0d718ec --- /dev/null +++ b/docs/html/led__strip__api_8c_a5e7ed29ab9fcd9e963ceeb9bb22c5736_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +led_strip_refresh + + +Node1 + + +led_strip_refresh + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph.md5 b/docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph.md5 new file mode 100644 index 0000000..4ee99a2 --- /dev/null +++ b/docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph.md5 @@ -0,0 +1 @@ +b13f6cf62af4719a4ab61f8807c1be00 \ No newline at end of file diff --git a/docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph.svg b/docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph.svg new file mode 100644 index 0000000..457b64d --- /dev/null +++ b/docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +led_strip_set_pixel + + +Node1 + + +led_strip_set_pixel + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph_org.svg b/docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph_org.svg new file mode 100644 index 0000000..ea9b779 --- /dev/null +++ b/docs/html/led__strip__api_8c_ac35423873d3ac95155349a89b51d651b_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +led_strip_set_pixel + + +Node1 + + +led_strip_set_pixel + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/led__strip__api_8c_source.html b/docs/html/led__strip__api_8c_source.html new file mode 100644 index 0000000..4308344 --- /dev/null +++ b/docs/html/led__strip__api_8c_source.html @@ -0,0 +1,229 @@ + + + + + + + +ESP-IDF Firmware: led_strip_api.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_api.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#include "esp_log.h"
+
7#include "esp_check.h"
+
8#include "led_strip.h"
+ +
10
+
11static const char *TAG = "led_strip";
+
12
+
+
13esp_err_t led_strip_set_pixel(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
14{
+
15 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
16 return strip->set_pixel(strip, index, red, green, blue);
+
17}
+
+
18
+
+
19esp_err_t led_strip_set_pixel_hsv(led_strip_handle_t strip, uint32_t index, uint16_t hue, uint8_t saturation, uint8_t value)
+
20{
+
21 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
22
+
23 uint32_t red = 0;
+
24 uint32_t green = 0;
+
25 uint32_t blue = 0;
+
26
+
27 uint32_t rgb_max = value;
+
28 uint32_t rgb_min = rgb_max * (255 - saturation) / 255.0f;
+
29
+
30 uint32_t i = hue / 60;
+
31 uint32_t diff = hue % 60;
+
32
+
33 // RGB adjustment amount by hue
+
34 uint32_t rgb_adj = (rgb_max - rgb_min) * diff / 60;
+
35
+
36 switch (i) {
+
37 case 0:
+
38 red = rgb_max;
+
39 green = rgb_min + rgb_adj;
+
40 blue = rgb_min;
+
41 break;
+
42 case 1:
+
43 red = rgb_max - rgb_adj;
+
44 green = rgb_max;
+
45 blue = rgb_min;
+
46 break;
+
47 case 2:
+
48 red = rgb_min;
+
49 green = rgb_max;
+
50 blue = rgb_min + rgb_adj;
+
51 break;
+
52 case 3:
+
53 red = rgb_min;
+
54 green = rgb_max - rgb_adj;
+
55 blue = rgb_max;
+
56 break;
+
57 case 4:
+
58 red = rgb_min + rgb_adj;
+
59 green = rgb_min;
+
60 blue = rgb_max;
+
61 break;
+
62 default:
+
63 red = rgb_max;
+
64 green = rgb_min;
+
65 blue = rgb_max - rgb_adj;
+
66 break;
+
67 }
+
68
+
69 return strip->set_pixel(strip, index, red, green, blue);
+
70}
+
+
71
+
+
72esp_err_t led_strip_set_pixel_rgbw(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
+
73{
+
74 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
75 return strip->set_pixel_rgbw(strip, index, red, green, blue, white);
+
76}
+
+
77
+
+ +
79{
+
80 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
81 return strip->refresh(strip);
+
82}
+
+
83
+
+ +
85{
+
86 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
87 return strip->clear(strip);
+
88}
+
+
89
+
+ +
91{
+
92 ESP_RETURN_ON_FALSE(strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
93 return strip->del(strip);
+
94}
+
+
int esp_err_t
Definition esp_err.h:21
+ + +
esp_err_t led_strip_clear(led_strip_handle_t strip)
Clear LED strip (turn off all LEDs).
+
esp_err_t led_strip_set_pixel_rgbw(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel.
+
esp_err_t led_strip_set_pixel_hsv(led_strip_handle_t strip, uint32_t index, uint16_t hue, uint8_t saturation, uint8_t value)
Set HSV for a specific pixel.
+
esp_err_t led_strip_refresh(led_strip_handle_t strip)
Refresh memory colors to LEDs.
+
esp_err_t led_strip_del(led_strip_handle_t strip)
Free LED strip resources.
+
esp_err_t led_strip_set_pixel(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+ +
struct led_strip_t * led_strip_handle_t
LED strip handle.
+
static const char * TAG
Definition main/main.c:31
+
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+
+
+ + + + diff --git a/docs/html/led__strip__interface_8h.html b/docs/html/led__strip__interface_8h.html new file mode 100644 index 0000000..de42d9a --- /dev/null +++ b/docs/html/led__strip__interface_8h.html @@ -0,0 +1,155 @@ + + + + + + + +ESP-IDF Firmware: led_strip_interface.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_interface.h File Reference
+
+
+
#include <stdint.h>
+#include "esp_err.h"
+
+Include dependency graph for led_strip_interface.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  led_strip_t
 LED strip interface definition. More...
+ + +

+Typedefs

typedef struct led_strip_t led_strip_t
+

Typedef Documentation

+ +

◆ led_strip_t

+ +
+
+ + + + +
typedef struct led_strip_t led_strip_t
+
+

Type of LED strip

+ +

Definition at line 15 of file led_strip_interface.h.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__interface_8h.js b/docs/html/led__strip__interface_8h.js new file mode 100644 index 0000000..5d9a8b2 --- /dev/null +++ b/docs/html/led__strip__interface_8h.js @@ -0,0 +1,5 @@ +var led__strip__interface_8h = +[ + [ "led_strip_t", "structled__strip__t.html", "structled__strip__t" ], + [ "led_strip_t", "led__strip__interface_8h.html#adac1bcaf23868941644f8e42a7124a20", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__interface_8h__dep__incl.md5 b/docs/html/led__strip__interface_8h__dep__incl.md5 new file mode 100644 index 0000000..505a28f --- /dev/null +++ b/docs/html/led__strip__interface_8h__dep__incl.md5 @@ -0,0 +1 @@ +5e2621a79eb99f8c74243202dc677936 \ No newline at end of file diff --git a/docs/html/led__strip__interface_8h__dep__incl.svg b/docs/html/led__strip__interface_8h__dep__incl.svg new file mode 100644 index 0000000..f4133b0 --- /dev/null +++ b/docs/html/led__strip__interface_8h__dep__incl.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +led_strip_interface.h + + +Node1 + + +led_strip_interface.h + + + + + +Node2 + + +led_strip_api.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_dev.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_dev_idf4.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_dev.c + + + + + +Node1->Node5 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__interface_8h__dep__incl_org.svg b/docs/html/led__strip__interface_8h__dep__incl_org.svg new file mode 100644 index 0000000..b5ac496 --- /dev/null +++ b/docs/html/led__strip__interface_8h__dep__incl_org.svg @@ -0,0 +1,93 @@ + + + + + + +led_strip_interface.h + + +Node1 + + +led_strip_interface.h + + + + + +Node2 + + +led_strip_api.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_dev.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_dev_idf4.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_dev.c + + + + + +Node1->Node5 + + + + + + + + diff --git a/docs/html/led__strip__interface_8h__incl.md5 b/docs/html/led__strip__interface_8h__incl.md5 new file mode 100644 index 0000000..89e6aeb --- /dev/null +++ b/docs/html/led__strip__interface_8h__incl.md5 @@ -0,0 +1 @@ +ecf13f06a7c450288bf6a117b3e40893 \ No newline at end of file diff --git a/docs/html/led__strip__interface_8h__incl.svg b/docs/html/led__strip__interface_8h__incl.svg new file mode 100644 index 0000000..f38c701 --- /dev/null +++ b/docs/html/led__strip__interface_8h__incl.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +led_strip_interface.h + + +Node1 + + +led_strip_interface.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__interface_8h__incl_org.svg b/docs/html/led__strip__interface_8h__incl_org.svg new file mode 100644 index 0000000..6d2de51 --- /dev/null +++ b/docs/html/led__strip__interface_8h__incl_org.svg @@ -0,0 +1,75 @@ + + + + + + +led_strip_interface.h + + +Node1 + + +led_strip_interface.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/led__strip__interface_8h_source.html b/docs/html/led__strip__interface_8h_source.html new file mode 100644 index 0000000..ea0061e --- /dev/null +++ b/docs/html/led__strip__interface_8h_source.html @@ -0,0 +1,147 @@ + + + + + + + +ESP-IDF Firmware: led_strip_interface.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_interface.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#pragma once
+
7
+
8#include <stdint.h>
+
9#include "esp_err.h"
+
10
+
11#ifdef __cplusplus
+
12extern "C" {
+
13#endif
+
14
+
15typedef struct led_strip_t led_strip_t;
+
16
+
+ +
35 esp_err_t (*set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue);
+
36
+
52 esp_err_t (*set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white);
+
53
+ +
68
+ +
80
+ +
91};
+
+
92
+
93#ifdef __cplusplus
+
94}
+
95#endif
+ +
int esp_err_t
Definition esp_err.h:21
+
LED strip interface definition.
+
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+
+
+ + + + diff --git a/docs/html/led__strip__rmt_8h.html b/docs/html/led__strip__rmt_8h.html new file mode 100644 index 0000000..1d9a4c7 --- /dev/null +++ b/docs/html/led__strip__rmt_8h.html @@ -0,0 +1,300 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt.h File Reference
+
+
+
#include <stdint.h>
+#include "esp_err.h"
+#include "led_strip_types.h"
+#include "esp_idf_version.h"
+#include "driver/rmt_types.h"
+
+Include dependency graph for led_strip_rmt.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  led_strip_rmt_config_t
 LED Strip RMT specific configuration. More...
+ + + +

+Functions

esp_err_t led_strip_new_rmt_device (const led_strip_config_t *led_config, const led_strip_rmt_config_t *rmt_config, led_strip_handle_t *ret_strip)
 Create LED strip based on RMT TX channel.
+

Function Documentation

+ +

◆ led_strip_new_rmt_device()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t led_strip_new_rmt_device (const led_strip_config_t * led_config,
const led_strip_rmt_config_t * rmt_config,
led_strip_handle_t * ret_strip )
+
+ +

Create LED strip based on RMT TX channel.

+
Parameters
+ + + + +
led_configLED strip configuration
rmt_configRMT specific configuration
ret_stripReturned LED strip handle
+
+
+
Returns
    +
  • ESP_OK: create LED strip handle successfully
  • +
  • ESP_ERR_INVALID_ARG: create LED strip handle failed because of invalid argument
  • +
  • ESP_ERR_NO_MEM: create LED strip handle failed because of out of memory
  • +
  • ESP_FAIL: create LED strip handle failed because some other error
  • +
+
+ +

Definition at line 97 of file led_strip_rmt_dev.c.

+
98{
+
99 led_strip_rmt_obj *rmt_strip = NULL;
+
100 esp_err_t ret = ESP_OK;
+
101 ESP_GOTO_ON_FALSE(led_config && rmt_config && ret_strip, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
+
102 ESP_GOTO_ON_FALSE(led_config->led_pixel_format < LED_PIXEL_FORMAT_INVALID, ESP_ERR_INVALID_ARG, err, TAG, "invalid led_pixel_format");
+
103 uint8_t bytes_per_pixel = 3;
+
104 if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRBW) {
+
105 bytes_per_pixel = 4;
+
106 } else if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRB) {
+
107 bytes_per_pixel = 3;
+
108 } else {
+
109 assert(false);
+
110 }
+
111 rmt_strip = calloc(1, sizeof(led_strip_rmt_obj) + led_config->max_leds * bytes_per_pixel);
+
112 ESP_GOTO_ON_FALSE(rmt_strip, ESP_ERR_NO_MEM, err, TAG, "no mem for rmt strip");
+
113 uint32_t resolution = rmt_config->resolution_hz ? rmt_config->resolution_hz : LED_STRIP_RMT_DEFAULT_RESOLUTION;
+
114
+
115 // for backward compatibility, if the user does not set the clk_src, use the default value
+
116 rmt_clock_source_t clk_src = RMT_CLK_SRC_DEFAULT;
+
117 if (rmt_config->clk_src) {
+
118 clk_src = rmt_config->clk_src;
+
119 }
+
120 size_t mem_block_symbols = LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS;
+
121 // override the default value if the user sets it
+
122 if (rmt_config->mem_block_symbols) {
+
123 mem_block_symbols = rmt_config->mem_block_symbols;
+
124 }
+
125 rmt_tx_channel_config_t rmt_chan_config = {
+
126 .clk_src = clk_src,
+
127 .gpio_num = led_config->strip_gpio_num,
+
128 .mem_block_symbols = mem_block_symbols,
+
129 .resolution_hz = resolution,
+
130 .trans_queue_depth = LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE,
+
131 .flags.with_dma = rmt_config->flags.with_dma,
+
132 .flags.invert_out = led_config->flags.invert_out,
+
133 };
+
134 ESP_GOTO_ON_ERROR(rmt_new_tx_channel(&rmt_chan_config, &rmt_strip->rmt_chan), err, TAG, "create RMT TX channel failed");
+
135
+
136 led_strip_encoder_config_t strip_encoder_conf = {
+
137 .resolution = resolution,
+
138 .led_model = led_config->led_model
+
139 };
+
140 ESP_GOTO_ON_ERROR(rmt_new_led_strip_encoder(&strip_encoder_conf, &rmt_strip->strip_encoder), err, TAG, "create LED strip encoder failed");
+
141
+
142
+
143 rmt_strip->bytes_per_pixel = bytes_per_pixel;
+
144 rmt_strip->strip_len = led_config->max_leds;
+ + + +
148 rmt_strip->base.clear = led_strip_rmt_clear;
+
149 rmt_strip->base.del = led_strip_rmt_del;
+
150
+
151 *ret_strip = &rmt_strip->base;
+
152 return ESP_OK;
+
153err:
+
154 if (rmt_strip) {
+
155 if (rmt_strip->rmt_chan) {
+
156 rmt_del_channel(rmt_strip->rmt_chan);
+
157 }
+
158 if (rmt_strip->strip_encoder) {
+
159 rmt_del_encoder(rmt_strip->strip_encoder);
+
160 }
+
161 free(rmt_strip);
+
162 }
+
163 return ret;
+
164}
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static esp_err_t led_strip_rmt_refresh(led_strip_t *strip)
+
static esp_err_t led_strip_rmt_set_pixel_rgbw(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
+
#define LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE
+
static esp_err_t led_strip_rmt_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
static esp_err_t led_strip_rmt_clear(led_strip_t *strip)
+
#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS
+
static esp_err_t led_strip_rmt_del(led_strip_t *strip)
+
#define LED_STRIP_RMT_DEFAULT_RESOLUTION
+
esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder)
Create RMT encoder for encoding LED strip pixels into RMT symbols.
+
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
static const char * TAG
Definition main/main.c:31
+
led_pixel_format_t led_pixel_format
+ + + + +
struct led_strip_config_t::@145177150267040163336221331365072267202117177200 flags
+
Type of led strip encoder configuration.
+ +
rmt_clock_source_t clk_src
+
struct led_strip_rmt_config_t::@177205126266303010206200207206146127175132325264 flags
+ + + + +
rmt_channel_handle_t rmt_chan
+ + +
rmt_encoder_handle_t strip_encoder
+
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+

References led_strip_rmt_obj::base, led_strip_rmt_obj::bytes_per_pixel, led_strip_t::clear, led_strip_rmt_config_t::clk_src, led_strip_t::del, ESP_GOTO_ON_ERROR, ESP_OK, led_strip_config_t::flags, led_strip_rmt_config_t::flags, led_strip_config_t::invert_out, led_strip_config_t::led_model, LED_MODEL_SK6812, LED_MODEL_WS2812, led_strip_config_t::led_pixel_format, LED_PIXEL_FORMAT_GRB, LED_PIXEL_FORMAT_GRBW, LED_PIXEL_FORMAT_INVALID, led_strip_rmt_clear(), LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS, LED_STRIP_RMT_DEFAULT_RESOLUTION, LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE, led_strip_rmt_del(), led_strip_rmt_refresh(), led_strip_rmt_set_pixel(), led_strip_rmt_set_pixel_rgbw(), led_t0h_ticks, led_t0l_ticks, led_t1h_ticks, led_t1l_ticks, led_strip_config_t::max_leds, led_strip_rmt_config_t::mem_block_symbols, led_strip_t::refresh, led_strip_rmt_config_t::resolution_hz, led_strip_rmt_obj::rmt_chan, led_strip_rmt_obj::rmt_channel, rmt_new_led_strip_encoder(), led_strip_t::set_pixel, led_strip_t::set_pixel_rgbw, SK6812_T0H_NS, SK6812_T0L_NS, SK6812_T1H_NS, SK6812_T1L_NS, led_strip_rmt_obj::strip_encoder, led_strip_config_t::strip_gpio_num, led_strip_rmt_obj::strip_len, TAG, led_strip_rmt_config_t::with_dma, ws2812_rmt_adapter(), WS2812_T0H_NS, WS2812_T0L_NS, WS2812_T1H_NS, and WS2812_T1L_NS.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__rmt_8h.js b/docs/html/led__strip__rmt_8h.js new file mode 100644 index 0000000..39c1629 --- /dev/null +++ b/docs/html/led__strip__rmt_8h.js @@ -0,0 +1,5 @@ +var led__strip__rmt_8h = +[ + [ "led_strip_rmt_config_t", "structled__strip__rmt__config__t.html", "structled__strip__rmt__config__t" ], + [ "led_strip_new_rmt_device", "led__strip__rmt_8h.html#ac423158e05394704d29154e3105d6421", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__rmt_8h__dep__incl.md5 b/docs/html/led__strip__rmt_8h__dep__incl.md5 new file mode 100644 index 0000000..46b0601 --- /dev/null +++ b/docs/html/led__strip__rmt_8h__dep__incl.md5 @@ -0,0 +1 @@ +8519d6d5e17d0cf161833d99079e7785 \ No newline at end of file diff --git a/docs/html/led__strip__rmt_8h__dep__incl.svg b/docs/html/led__strip__rmt_8h__dep__incl.svg new file mode 100644 index 0000000..32871d4 --- /dev/null +++ b/docs/html/led__strip__rmt_8h__dep__incl.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +led_strip_rmt.h + + +Node1 + + +led_strip_rmt.h + + + + + +Node2 + + +led_strip.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_api.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_dev.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_dev_idf4.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +led_strip_spi_dev.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +main.c + + + + + +Node2->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt_8h__dep__incl_org.svg b/docs/html/led__strip__rmt_8h__dep__incl_org.svg new file mode 100644 index 0000000..e8434ce --- /dev/null +++ b/docs/html/led__strip__rmt_8h__dep__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +led_strip_rmt.h + + +Node1 + + +led_strip_rmt.h + + + + + +Node2 + + +led_strip.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_api.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_dev.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_dev_idf4.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +led_strip_spi_dev.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +main.c + + + + + +Node2->Node7 + + + + + + + + diff --git a/docs/html/led__strip__rmt_8h__incl.md5 b/docs/html/led__strip__rmt_8h__incl.md5 new file mode 100644 index 0000000..5f7f18f --- /dev/null +++ b/docs/html/led__strip__rmt_8h__incl.md5 @@ -0,0 +1 @@ +a68b5c5e8bd298c0a3b7801f1a99fd0a \ No newline at end of file diff --git a/docs/html/led__strip__rmt_8h__incl.svg b/docs/html/led__strip__rmt_8h__incl.svg new file mode 100644 index 0000000..9a7b7ad --- /dev/null +++ b/docs/html/led__strip__rmt_8h__incl.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + +led_strip_rmt.h + + +Node1 + + +led_strip_rmt.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +led_strip_types.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_idf_version.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +driver/rmt_types.h + + + + + +Node1->Node7 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node5->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt_8h__incl_org.svg b/docs/html/led__strip__rmt_8h__incl_org.svg new file mode 100644 index 0000000..c1bcd72 --- /dev/null +++ b/docs/html/led__strip__rmt_8h__incl_org.svg @@ -0,0 +1,138 @@ + + + + + + +led_strip_rmt.h + + +Node1 + + +led_strip_rmt.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +led_strip_types.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_idf_version.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +driver/rmt_types.h + + + + + +Node1->Node7 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node5->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph.md5 b/docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph.md5 new file mode 100644 index 0000000..38f7772 --- /dev/null +++ b/docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph.md5 @@ -0,0 +1 @@ +f1556abd626ad71abc4d6786c11c781a \ No newline at end of file diff --git a/docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph.svg b/docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph.svg new file mode 100644 index 0000000..1eecd0e --- /dev/null +++ b/docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph.svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + +led_strip_new_rmt_device + + +Node1 + + +led_strip_new_rmt_device + + + + + +Node2 + + +led_strip_rmt_clear + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_refresh + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_del + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_set_pixel + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_rmt_set_pixel_rgbw + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node7 + + + + + + + + +Node11 + + +ws2812_rmt_adapter + + + + + +Node1->Node11 + + + + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +rmt_del_led_strip_encoder + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +rmt_encode_led_strip + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +rmt_led_strip_encoder +_reset + + + + + +Node7->Node10 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph_org.svg b/docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph_org.svg new file mode 100644 index 0000000..a169c81 --- /dev/null +++ b/docs/html/led__strip__rmt_8h_ac423158e05394704d29154e3105d6421_cgraph_org.svg @@ -0,0 +1,211 @@ + + + + + + +led_strip_new_rmt_device + + +Node1 + + +led_strip_new_rmt_device + + + + + +Node2 + + +led_strip_rmt_clear + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_refresh + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_del + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_set_pixel + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_rmt_set_pixel_rgbw + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node7 + + + + + + + + +Node11 + + +ws2812_rmt_adapter + + + + + +Node1->Node11 + + + + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +rmt_del_led_strip_encoder + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +rmt_encode_led_strip + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +rmt_led_strip_encoder +_reset + + + + + +Node7->Node10 + + + + + + + + diff --git a/docs/html/led__strip__rmt_8h_source.html b/docs/html/led__strip__rmt_8h_source.html new file mode 100644 index 0000000..933c98e --- /dev/null +++ b/docs/html/led__strip__rmt_8h_source.html @@ -0,0 +1,157 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#pragma once
+
7
+
8#include <stdint.h>
+
9#include "esp_err.h"
+
10#include "led_strip_types.h"
+
11#include "esp_idf_version.h"
+
12
+
13#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)
+
14#include "driver/rmt_types.h"
+
15#endif
+
16
+
17#ifdef __cplusplus
+
18extern "C" {
+
19#endif
+
20
+
+
24typedef struct {
+
25#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0)
+
26 uint8_t rmt_channel;
+
27#else // new driver supports specify the clock source and clock resolution
+
28 rmt_clock_source_t clk_src;
+
29 uint32_t resolution_hz;
+
30#endif
+ +
32 struct {
+
33 uint32_t with_dma: 1;
+
34 } flags;
+ +
+
36
+ +
50
+
51#ifdef __cplusplus
+
52}
+
53#endif
+ +
int esp_err_t
Definition esp_err.h:21
+
esp_err_t led_strip_new_rmt_device(const led_strip_config_t *led_config, const led_strip_rmt_config_t *rmt_config, led_strip_handle_t *ret_strip)
Create LED strip based on RMT TX channel.
+ +
struct led_strip_t * led_strip_handle_t
LED strip handle.
+
LED Strip Configuration.
+
LED Strip RMT specific configuration.
+ +
rmt_clock_source_t clk_src
+ + +
+
+
+ + + + diff --git a/docs/html/led__strip__rmt__dev_8c.html b/docs/html/led__strip__rmt__dev_8c.html new file mode 100644 index 0000000..d09e75c --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c.html @@ -0,0 +1,667 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt_dev.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt_dev.c File Reference
+
+
+
#include <stdlib.h>
+#include <string.h>
+#include <sys/cdefs.h>
+#include "esp_log.h"
+#include "esp_check.h"
+#include "driver/rmt_tx.h"
+#include "led_strip.h"
+#include "led_strip_interface.h"
+#include "led_strip_rmt_encoder.h"
+
+Include dependency graph for led_strip_rmt_dev.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Data Structures

struct  led_strip_rmt_obj
+ + + + +

+Macros

#define LED_STRIP_RMT_DEFAULT_RESOLUTION   10000000
#define LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE   4
#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS   48
+ + + + + + + + +

+Functions

static esp_err_t led_strip_rmt_set_pixel (led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
static esp_err_t led_strip_rmt_set_pixel_rgbw (led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
static esp_err_t led_strip_rmt_refresh (led_strip_t *strip)
static esp_err_t led_strip_rmt_clear (led_strip_t *strip)
static esp_err_t led_strip_rmt_del (led_strip_t *strip)
esp_err_t led_strip_new_rmt_device (const led_strip_config_t *led_config, const led_strip_rmt_config_t *rmt_config, led_strip_handle_t *ret_strip)
 Create LED strip based on RMT TX channel.
+ + +

+Variables

static const char * TAG = "led_strip_rmt"
+

Macro Definition Documentation

+ +

◆ LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS

+ +
+
+ + + + +
#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS   48
+
+ +

Definition at line 22 of file led_strip_rmt_dev.c.

+ +

Referenced by led_strip_new_rmt_device(), and led_strip_new_rmt_device().

+ +
+
+ +

◆ LED_STRIP_RMT_DEFAULT_RESOLUTION

+ +
+
+ + + + +
#define LED_STRIP_RMT_DEFAULT_RESOLUTION   10000000
+
+ +

Definition at line 16 of file led_strip_rmt_dev.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+ +

◆ LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE

+ +
+
+ + + + +
#define LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE   4
+
+ +

Definition at line 17 of file led_strip_rmt_dev.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+

Function Documentation

+ +

◆ led_strip_new_rmt_device()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t led_strip_new_rmt_device (const led_strip_config_t * led_config,
const led_strip_rmt_config_t * rmt_config,
led_strip_handle_t * ret_strip )
+
+ +

Create LED strip based on RMT TX channel.

+
Parameters
+ + + + +
led_configLED strip configuration
rmt_configRMT specific configuration
ret_stripReturned LED strip handle
+
+
+
Returns
    +
  • ESP_OK: create LED strip handle successfully
  • +
  • ESP_ERR_INVALID_ARG: create LED strip handle failed because of invalid argument
  • +
  • ESP_ERR_NO_MEM: create LED strip handle failed because of out of memory
  • +
  • ESP_FAIL: create LED strip handle failed because some other error
  • +
+
+ +

Definition at line 97 of file led_strip_rmt_dev.c.

+
98{
+
99 led_strip_rmt_obj *rmt_strip = NULL;
+
100 esp_err_t ret = ESP_OK;
+
101 ESP_GOTO_ON_FALSE(led_config && rmt_config && ret_strip, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
+
102 ESP_GOTO_ON_FALSE(led_config->led_pixel_format < LED_PIXEL_FORMAT_INVALID, ESP_ERR_INVALID_ARG, err, TAG, "invalid led_pixel_format");
+
103 uint8_t bytes_per_pixel = 3;
+
104 if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRBW) {
+
105 bytes_per_pixel = 4;
+
106 } else if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRB) {
+
107 bytes_per_pixel = 3;
+
108 } else {
+
109 assert(false);
+
110 }
+
111 rmt_strip = calloc(1, sizeof(led_strip_rmt_obj) + led_config->max_leds * bytes_per_pixel);
+
112 ESP_GOTO_ON_FALSE(rmt_strip, ESP_ERR_NO_MEM, err, TAG, "no mem for rmt strip");
+
113 uint32_t resolution = rmt_config->resolution_hz ? rmt_config->resolution_hz : LED_STRIP_RMT_DEFAULT_RESOLUTION;
+
114
+
115 // for backward compatibility, if the user does not set the clk_src, use the default value
+
116 rmt_clock_source_t clk_src = RMT_CLK_SRC_DEFAULT;
+
117 if (rmt_config->clk_src) {
+
118 clk_src = rmt_config->clk_src;
+
119 }
+
120 size_t mem_block_symbols = LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS;
+
121 // override the default value if the user sets it
+
122 if (rmt_config->mem_block_symbols) {
+
123 mem_block_symbols = rmt_config->mem_block_symbols;
+
124 }
+
125 rmt_tx_channel_config_t rmt_chan_config = {
+
126 .clk_src = clk_src,
+
127 .gpio_num = led_config->strip_gpio_num,
+
128 .mem_block_symbols = mem_block_symbols,
+
129 .resolution_hz = resolution,
+
130 .trans_queue_depth = LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE,
+
131 .flags.with_dma = rmt_config->flags.with_dma,
+
132 .flags.invert_out = led_config->flags.invert_out,
+
133 };
+
134 ESP_GOTO_ON_ERROR(rmt_new_tx_channel(&rmt_chan_config, &rmt_strip->rmt_chan), err, TAG, "create RMT TX channel failed");
+
135
+
136 led_strip_encoder_config_t strip_encoder_conf = {
+
137 .resolution = resolution,
+
138 .led_model = led_config->led_model
+
139 };
+
140 ESP_GOTO_ON_ERROR(rmt_new_led_strip_encoder(&strip_encoder_conf, &rmt_strip->strip_encoder), err, TAG, "create LED strip encoder failed");
+
141
+
142
+
143 rmt_strip->bytes_per_pixel = bytes_per_pixel;
+
144 rmt_strip->strip_len = led_config->max_leds;
+ + + +
148 rmt_strip->base.clear = led_strip_rmt_clear;
+
149 rmt_strip->base.del = led_strip_rmt_del;
+
150
+
151 *ret_strip = &rmt_strip->base;
+
152 return ESP_OK;
+
153err:
+
154 if (rmt_strip) {
+
155 if (rmt_strip->rmt_chan) {
+
156 rmt_del_channel(rmt_strip->rmt_chan);
+
157 }
+
158 if (rmt_strip->strip_encoder) {
+
159 rmt_del_encoder(rmt_strip->strip_encoder);
+
160 }
+
161 free(rmt_strip);
+
162 }
+
163 return ret;
+
164}
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static esp_err_t led_strip_rmt_refresh(led_strip_t *strip)
+
static esp_err_t led_strip_rmt_set_pixel_rgbw(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
+
#define LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE
+
static esp_err_t led_strip_rmt_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
static esp_err_t led_strip_rmt_clear(led_strip_t *strip)
+
#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS
+
static esp_err_t led_strip_rmt_del(led_strip_t *strip)
+
#define LED_STRIP_RMT_DEFAULT_RESOLUTION
+
esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder)
Create RMT encoder for encoding LED strip pixels into RMT symbols.
+
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
static const char * TAG
Definition main/main.c:31
+
led_pixel_format_t led_pixel_format
+ + + + +
struct led_strip_config_t::@145177150267040163336221331365072267202117177200 flags
+
Type of led strip encoder configuration.
+ +
rmt_clock_source_t clk_src
+
struct led_strip_rmt_config_t::@177205126266303010206200207206146127175132325264 flags
+ + + + +
rmt_channel_handle_t rmt_chan
+ + +
rmt_encoder_handle_t strip_encoder
+
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+
+
+ +

◆ led_strip_rmt_clear()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t led_strip_rmt_clear (led_strip_t * strip)
+
+static
+
+ +

Definition at line 80 of file led_strip_rmt_dev.c.

+
81{
+
82 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
83 // Write zero to turn off all leds
+
84 memset(rmt_strip->pixel_buf, 0, rmt_strip->strip_len * rmt_strip->bytes_per_pixel);
+
85 return led_strip_rmt_refresh(strip);
+
86}
+ +
+

References led_strip_rmt_obj::bytes_per_pixel, led_strip_rmt_refresh(), led_strip_rmt_obj::pixel_buf, and led_strip_rmt_obj::strip_len.

+ +

Referenced by led_strip_new_rmt_device(), and led_strip_new_rmt_device().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_rmt_del()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t led_strip_rmt_del (led_strip_t * strip)
+
+static
+
+ +

Definition at line 88 of file led_strip_rmt_dev.c.

+
89{
+
90 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
91 ESP_RETURN_ON_ERROR(rmt_del_channel(rmt_strip->rmt_chan), TAG, "delete RMT channel failed");
+
92 ESP_RETURN_ON_ERROR(rmt_del_encoder(rmt_strip->strip_encoder), TAG, "delete strip encoder failed");
+
93 free(rmt_strip);
+
94 return ESP_OK;
+
95}
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
+

References ESP_OK, ESP_RETURN_ON_ERROR, led_strip_rmt_obj::rmt_chan, led_strip_rmt_obj::strip_encoder, and TAG.

+ +

Referenced by led_strip_new_rmt_device(), and led_strip_new_rmt_device().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_rmt_refresh()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t led_strip_rmt_refresh (led_strip_t * strip)
+
+static
+
+ +

Definition at line 65 of file led_strip_rmt_dev.c.

+
66{
+
67 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
68 rmt_transmit_config_t tx_conf = {
+
69 .loop_count = 0,
+
70 };
+
71
+
72 ESP_RETURN_ON_ERROR(rmt_enable(rmt_strip->rmt_chan), TAG, "enable RMT channel failed");
+
73 ESP_RETURN_ON_ERROR(rmt_transmit(rmt_strip->rmt_chan, rmt_strip->strip_encoder, rmt_strip->pixel_buf,
+
74 rmt_strip->strip_len * rmt_strip->bytes_per_pixel, &tx_conf), TAG, "transmit pixels by RMT failed");
+
75 ESP_RETURN_ON_ERROR(rmt_tx_wait_all_done(rmt_strip->rmt_chan, -1), TAG, "flush RMT channel failed");
+
76 ESP_RETURN_ON_ERROR(rmt_disable(rmt_strip->rmt_chan), TAG, "disable RMT channel failed");
+
77 return ESP_OK;
+
78}
+
+

References led_strip_rmt_obj::bytes_per_pixel, ESP_OK, ESP_RETURN_ON_ERROR, led_strip_rmt_obj::pixel_buf, led_strip_rmt_obj::rmt_chan, led_strip_rmt_obj::strip_encoder, led_strip_rmt_obj::strip_len, and TAG.

+ +

Referenced by led_strip_new_rmt_device(), led_strip_new_rmt_device(), and led_strip_rmt_clear().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_rmt_set_pixel()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_rmt_set_pixel (led_strip_t * strip,
uint32_t index,
uint32_t red,
uint32_t green,
uint32_t blue )
+
+static
+
+ +

Definition at line 36 of file led_strip_rmt_dev.c.

+
37{
+
38 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
39 ESP_RETURN_ON_FALSE(index < rmt_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of maximum number of LEDs");
+
40 uint32_t start = index * rmt_strip->bytes_per_pixel;
+
41 // In thr order of GRB, as LED strip like WS2812 sends out pixels in this order
+
42 rmt_strip->pixel_buf[start + 0] = green & 0xFF;
+
43 rmt_strip->pixel_buf[start + 1] = red & 0xFF;
+
44 rmt_strip->pixel_buf[start + 2] = blue & 0xFF;
+
45 if (rmt_strip->bytes_per_pixel > 3) {
+
46 rmt_strip->pixel_buf[start + 3] = 0;
+
47 }
+
48 return ESP_OK;
+
49}
+
+

References led_strip_rmt_obj::bytes_per_pixel, ESP_OK, led_strip_rmt_obj::pixel_buf, and TAG.

+ +

Referenced by led_strip_new_rmt_device(), and led_strip_new_rmt_device().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_rmt_set_pixel_rgbw()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_rmt_set_pixel_rgbw (led_strip_t * strip,
uint32_t index,
uint32_t red,
uint32_t green,
uint32_t blue,
uint32_t white )
+
+static
+
+ +

Definition at line 51 of file led_strip_rmt_dev.c.

+
52{
+
53 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
54 ESP_RETURN_ON_FALSE(index < rmt_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of maximum number of LEDs");
+
55 ESP_RETURN_ON_FALSE(rmt_strip->bytes_per_pixel == 4, ESP_ERR_INVALID_ARG, TAG, "wrong LED pixel format, expected 4 bytes per pixel");
+
56 uint8_t *buf_start = rmt_strip->pixel_buf + index * 4;
+
57 // SK6812 component order is GRBW
+
58 *buf_start = green & 0xFF;
+
59 *++buf_start = red & 0xFF;
+
60 *++buf_start = blue & 0xFF;
+
61 *++buf_start = white & 0xFF;
+
62 return ESP_OK;
+
63}
+
+

References led_strip_rmt_obj::bytes_per_pixel, ESP_OK, led_strip_rmt_obj::pixel_buf, and TAG.

+ +

Referenced by led_strip_new_rmt_device().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "led_strip_rmt"
+
+static
+
+ +

Definition at line 25 of file led_strip_rmt_dev.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__rmt__dev_8c.js b/docs/html/led__strip__rmt__dev_8c.js new file mode 100644 index 0000000..a2174c0 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c.js @@ -0,0 +1,14 @@ +var led__strip__rmt__dev_8c = +[ + [ "led_strip_rmt_obj", "structled__strip__rmt__obj.html", "structled__strip__rmt__obj" ], + [ "LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS", "led__strip__rmt__dev_8c.html#a918f4be11d01490a01b142d8e0733892", null ], + [ "LED_STRIP_RMT_DEFAULT_RESOLUTION", "led__strip__rmt__dev_8c.html#ada4d311b3d174109fa63921894003ad7", null ], + [ "LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE", "led__strip__rmt__dev_8c.html#a319eda79febdec82d2987042e3db38e4", null ], + [ "led_strip_new_rmt_device", "led__strip__rmt__dev_8c.html#ac423158e05394704d29154e3105d6421", null ], + [ "led_strip_rmt_clear", "led__strip__rmt__dev_8c.html#a5c523f0d1ca56d4aa47389a902fc45ce", null ], + [ "led_strip_rmt_del", "led__strip__rmt__dev_8c.html#a9524741152d38ceaab491dae03d606d6", null ], + [ "led_strip_rmt_refresh", "led__strip__rmt__dev_8c.html#a02acafefc7398491a56770e0606ebb82", null ], + [ "led_strip_rmt_set_pixel", "led__strip__rmt__dev_8c.html#a369ad496b407ba725d8ebaac0bfb3490", null ], + [ "led_strip_rmt_set_pixel_rgbw", "led__strip__rmt__dev_8c.html#a2d361ca55b18711fe84c91b5286199a5", null ], + [ "TAG", "led__strip__rmt__dev_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev_8c__incl.md5 b/docs/html/led__strip__rmt__dev_8c__incl.md5 new file mode 100644 index 0000000..12ac210 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c__incl.md5 @@ -0,0 +1 @@ +c6abe85bff1d5d5ba4e72b4ab71655c7 \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev_8c__incl.svg b/docs/html/led__strip__rmt__dev_8c__incl.svg new file mode 100644 index 0000000..fb40f32 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c__incl.svg @@ -0,0 +1,545 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +led_strip_rmt_dev.c + + +Node1 + + +led_strip_rmt_dev.c + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sys/cdefs.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_check.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +driver/rmt_tx.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +led_strip.h + + + + + +Node1->Node8 + + + + + + + + +Node17 + + +led_strip_interface.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +led_strip_rmt_encoder.h + + + + + +Node1->Node18 + + + + + + + + +Node5->Node2 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +esp_err.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +led_strip_rmt.h + + + + + +Node8->Node11 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node8->Node13 + + + + + + + + +Node15 + + +led_strip_spi.h + + + + + +Node8->Node15 + + + + + + + + +Node10->Node2 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +led_strip_types.h + + + + + +Node11->Node12 + + + + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +driver/rmt_types.h + + + + + +Node11->Node14 + + + + + + + + +Node12->Node9 + + + + + + + + +Node15->Node9 + + + + + + + + +Node15->Node10 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +driver/spi_master.h + + + + + +Node15->Node16 + + + + + + + + +Node17->Node9 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18->Node9 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +driver/rmt_encoder.h + + + + + +Node18->Node19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c__incl_org.svg b/docs/html/led__strip__rmt__dev_8c__incl_org.svg new file mode 100644 index 0000000..a0d360b --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c__incl_org.svg @@ -0,0 +1,462 @@ + + + + + + +led_strip_rmt_dev.c + + +Node1 + + +led_strip_rmt_dev.c + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sys/cdefs.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_check.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +driver/rmt_tx.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +led_strip.h + + + + + +Node1->Node8 + + + + + + + + +Node17 + + +led_strip_interface.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +led_strip_rmt_encoder.h + + + + + +Node1->Node18 + + + + + + + + +Node5->Node2 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +esp_err.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +led_strip_rmt.h + + + + + +Node8->Node11 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node8->Node13 + + + + + + + + +Node15 + + +led_strip_spi.h + + + + + +Node8->Node15 + + + + + + + + +Node10->Node2 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +led_strip_types.h + + + + + +Node11->Node12 + + + + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +driver/rmt_types.h + + + + + +Node11->Node14 + + + + + + + + +Node12->Node9 + + + + + + + + +Node15->Node9 + + + + + + + + +Node15->Node10 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +driver/spi_master.h + + + + + +Node15->Node16 + + + + + + + + +Node17->Node9 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18->Node9 + + + + + + + + +Node18->Node12 + + + + + + + + +Node19 + + +driver/rmt_encoder.h + + + + + +Node18->Node19 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph.md5 b/docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph.md5 new file mode 100644 index 0000000..b9e5169 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph.md5 @@ -0,0 +1 @@ +155d89aee2651c7d02a5a190cbaa046a \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph.svg b/docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph.svg new file mode 100644 index 0000000..f756345 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + +led_strip_rmt_refresh + + +Node1 + + +led_strip_rmt_refresh + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_clear + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph_org.svg b/docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph_org.svg new file mode 100644 index 0000000..6aa25ad --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a02acafefc7398491a56770e0606ebb82_icgraph_org.svg @@ -0,0 +1,84 @@ + + + + + + +led_strip_rmt_refresh + + +Node1 + + +led_strip_rmt_refresh + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_clear + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph.md5 b/docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph.md5 new file mode 100644 index 0000000..1eaf052 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph.md5 @@ -0,0 +1 @@ +29026b1cbde29a67775e7704af858a6f \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph.svg b/docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph.svg new file mode 100644 index 0000000..52c0fca --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_rmt_set_pixel_rgbw + + +Node1 + + +led_strip_rmt_set_pixel_rgbw + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph_org.svg b/docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph_org.svg new file mode 100644 index 0000000..c8902ca --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a2d361ca55b18711fe84c91b5286199a5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_rmt_set_pixel_rgbw + + +Node1 + + +led_strip_rmt_set_pixel_rgbw + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph.md5 b/docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph.md5 new file mode 100644 index 0000000..f14b00e --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph.md5 @@ -0,0 +1 @@ +2185b6f3070043a19300a033f983ad0f \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph.svg b/docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph.svg new file mode 100644 index 0000000..9ec5953 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + +led_strip_rmt_set_pixel + + +Node1 + + +led_strip_rmt_set_pixel + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph_org.svg b/docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph_org.svg new file mode 100644 index 0000000..44bc861 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a369ad496b407ba725d8ebaac0bfb3490_icgraph_org.svg @@ -0,0 +1,48 @@ + + + + + + +led_strip_rmt_set_pixel + + +Node1 + + +led_strip_rmt_set_pixel + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 new file mode 100644 index 0000000..6d9e831 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 @@ -0,0 +1 @@ +3e29de4570d617416bdb9ce58ec0dc0d \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg new file mode 100644 index 0000000..189d9e6 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_rmt_clear + + +Node1 + + +led_strip_rmt_clear + + + + + +Node2 + + +led_strip_rmt_refresh + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg new file mode 100644 index 0000000..bf558d3 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_rmt_clear + + +Node1 + + +led_strip_rmt_clear + + + + + +Node2 + + +led_strip_rmt_refresh + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph.md5 b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph.md5 new file mode 100644 index 0000000..85e5d90 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph.md5 @@ -0,0 +1 @@ +a86fae4d409c9b13e279b5b5f452c13c \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph.svg b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph.svg new file mode 100644 index 0000000..0b824a6 --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + +led_strip_rmt_clear + + +Node1 + + +led_strip_rmt_clear + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph_org.svg b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph_org.svg new file mode 100644 index 0000000..a52626d --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a5c523f0d1ca56d4aa47389a902fc45ce_icgraph_org.svg @@ -0,0 +1,48 @@ + + + + + + +led_strip_rmt_clear + + +Node1 + + +led_strip_rmt_clear + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph.md5 b/docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph.md5 new file mode 100644 index 0000000..a4a08fa --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph.md5 @@ -0,0 +1 @@ +c71cdc02f9301a6ba23a126a7c74adc3 \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph.svg b/docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph.svg new file mode 100644 index 0000000..bb3fd2d --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + +led_strip_rmt_del + + +Node1 + + +led_strip_rmt_del + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph_org.svg b/docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph_org.svg new file mode 100644 index 0000000..b04dd8d --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_a9524741152d38ceaab491dae03d606d6_icgraph_org.svg @@ -0,0 +1,48 @@ + + + + + + +led_strip_rmt_del + + +Node1 + + +led_strip_rmt_del + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev_8c_source.html b/docs/html/led__strip__rmt__dev_8c_source.html new file mode 100644 index 0000000..1489b0b --- /dev/null +++ b/docs/html/led__strip__rmt__dev_8c_source.html @@ -0,0 +1,334 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt_dev.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt_dev.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#include <stdlib.h>
+
7#include <string.h>
+
8#include <sys/cdefs.h>
+
9#include "esp_log.h"
+
10#include "esp_check.h"
+
11#include "driver/rmt_tx.h"
+
12#include "led_strip.h"
+
13#include "led_strip_interface.h"
+ +
15
+
16#define LED_STRIP_RMT_DEFAULT_RESOLUTION 10000000 // 10MHz resolution
+
17#define LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE 4
+
18// the memory size of each RMT channel, in words (4 bytes)
+
19#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2
+
20#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS 64
+
21#else
+
22#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS 48
+
23#endif
+
24
+
25static const char *TAG = "led_strip_rmt";
+
26
+
+
27typedef struct {
+ +
29 rmt_channel_handle_t rmt_chan;
+
30 rmt_encoder_handle_t strip_encoder;
+
31 uint32_t strip_len;
+ +
33 uint8_t pixel_buf[];
+ +
+
35
+
+
36static esp_err_t led_strip_rmt_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
37{
+
38 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
39 ESP_RETURN_ON_FALSE(index < rmt_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of maximum number of LEDs");
+
40 uint32_t start = index * rmt_strip->bytes_per_pixel;
+
41 // In thr order of GRB, as LED strip like WS2812 sends out pixels in this order
+
42 rmt_strip->pixel_buf[start + 0] = green & 0xFF;
+
43 rmt_strip->pixel_buf[start + 1] = red & 0xFF;
+
44 rmt_strip->pixel_buf[start + 2] = blue & 0xFF;
+
45 if (rmt_strip->bytes_per_pixel > 3) {
+
46 rmt_strip->pixel_buf[start + 3] = 0;
+
47 }
+
48 return ESP_OK;
+
49}
+
+
50
+
+
51static esp_err_t led_strip_rmt_set_pixel_rgbw(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
+
52{
+
53 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
54 ESP_RETURN_ON_FALSE(index < rmt_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of maximum number of LEDs");
+
55 ESP_RETURN_ON_FALSE(rmt_strip->bytes_per_pixel == 4, ESP_ERR_INVALID_ARG, TAG, "wrong LED pixel format, expected 4 bytes per pixel");
+
56 uint8_t *buf_start = rmt_strip->pixel_buf + index * 4;
+
57 // SK6812 component order is GRBW
+
58 *buf_start = green & 0xFF;
+
59 *++buf_start = red & 0xFF;
+
60 *++buf_start = blue & 0xFF;
+
61 *++buf_start = white & 0xFF;
+
62 return ESP_OK;
+
63}
+
+
64
+
+ +
66{
+
67 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
68 rmt_transmit_config_t tx_conf = {
+
69 .loop_count = 0,
+
70 };
+
71
+
72 ESP_RETURN_ON_ERROR(rmt_enable(rmt_strip->rmt_chan), TAG, "enable RMT channel failed");
+
73 ESP_RETURN_ON_ERROR(rmt_transmit(rmt_strip->rmt_chan, rmt_strip->strip_encoder, rmt_strip->pixel_buf,
+
74 rmt_strip->strip_len * rmt_strip->bytes_per_pixel, &tx_conf), TAG, "transmit pixels by RMT failed");
+
75 ESP_RETURN_ON_ERROR(rmt_tx_wait_all_done(rmt_strip->rmt_chan, -1), TAG, "flush RMT channel failed");
+
76 ESP_RETURN_ON_ERROR(rmt_disable(rmt_strip->rmt_chan), TAG, "disable RMT channel failed");
+
77 return ESP_OK;
+
78}
+
+
79
+
+ +
81{
+
82 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
83 // Write zero to turn off all leds
+
84 memset(rmt_strip->pixel_buf, 0, rmt_strip->strip_len * rmt_strip->bytes_per_pixel);
+
85 return led_strip_rmt_refresh(strip);
+
86}
+
+
87
+
+ +
89{
+
90 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
91 ESP_RETURN_ON_ERROR(rmt_del_channel(rmt_strip->rmt_chan), TAG, "delete RMT channel failed");
+
92 ESP_RETURN_ON_ERROR(rmt_del_encoder(rmt_strip->strip_encoder), TAG, "delete strip encoder failed");
+
93 free(rmt_strip);
+
94 return ESP_OK;
+
95}
+
+
96
+
+ +
98{
+
99 led_strip_rmt_obj *rmt_strip = NULL;
+
100 esp_err_t ret = ESP_OK;
+
101 ESP_GOTO_ON_FALSE(led_config && rmt_config && ret_strip, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
+
102 ESP_GOTO_ON_FALSE(led_config->led_pixel_format < LED_PIXEL_FORMAT_INVALID, ESP_ERR_INVALID_ARG, err, TAG, "invalid led_pixel_format");
+
103 uint8_t bytes_per_pixel = 3;
+
104 if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRBW) {
+
105 bytes_per_pixel = 4;
+
106 } else if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRB) {
+
107 bytes_per_pixel = 3;
+
108 } else {
+
109 assert(false);
+
110 }
+
111 rmt_strip = calloc(1, sizeof(led_strip_rmt_obj) + led_config->max_leds * bytes_per_pixel);
+
112 ESP_GOTO_ON_FALSE(rmt_strip, ESP_ERR_NO_MEM, err, TAG, "no mem for rmt strip");
+
113 uint32_t resolution = rmt_config->resolution_hz ? rmt_config->resolution_hz : LED_STRIP_RMT_DEFAULT_RESOLUTION;
+
114
+
115 // for backward compatibility, if the user does not set the clk_src, use the default value
+
116 rmt_clock_source_t clk_src = RMT_CLK_SRC_DEFAULT;
+
117 if (rmt_config->clk_src) {
+
118 clk_src = rmt_config->clk_src;
+
119 }
+
120 size_t mem_block_symbols = LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS;
+
121 // override the default value if the user sets it
+
122 if (rmt_config->mem_block_symbols) {
+
123 mem_block_symbols = rmt_config->mem_block_symbols;
+
124 }
+
125 rmt_tx_channel_config_t rmt_chan_config = {
+
126 .clk_src = clk_src,
+
127 .gpio_num = led_config->strip_gpio_num,
+
128 .mem_block_symbols = mem_block_symbols,
+
129 .resolution_hz = resolution,
+
130 .trans_queue_depth = LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE,
+
131 .flags.with_dma = rmt_config->flags.with_dma,
+
132 .flags.invert_out = led_config->flags.invert_out,
+
133 };
+
134 ESP_GOTO_ON_ERROR(rmt_new_tx_channel(&rmt_chan_config, &rmt_strip->rmt_chan), err, TAG, "create RMT TX channel failed");
+
135
+
136 led_strip_encoder_config_t strip_encoder_conf = {
+
137 .resolution = resolution,
+
138 .led_model = led_config->led_model
+
139 };
+
140 ESP_GOTO_ON_ERROR(rmt_new_led_strip_encoder(&strip_encoder_conf, &rmt_strip->strip_encoder), err, TAG, "create LED strip encoder failed");
+
141
+
142
+
143 rmt_strip->bytes_per_pixel = bytes_per_pixel;
+
144 rmt_strip->strip_len = led_config->max_leds;
+ + + +
148 rmt_strip->base.clear = led_strip_rmt_clear;
+
149 rmt_strip->base.del = led_strip_rmt_del;
+
150
+
151 *ret_strip = &rmt_strip->base;
+
152 return ESP_OK;
+
153err:
+
154 if (rmt_strip) {
+
155 if (rmt_strip->rmt_chan) {
+
156 rmt_del_channel(rmt_strip->rmt_chan);
+
157 }
+
158 if (rmt_strip->strip_encoder) {
+
159 rmt_del_encoder(rmt_strip->strip_encoder);
+
160 }
+
161 free(rmt_strip);
+
162 }
+
163 return ret;
+
164}
+
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ + + +
static esp_err_t led_strip_rmt_refresh(led_strip_t *strip)
+
static esp_err_t led_strip_rmt_set_pixel_rgbw(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
+
#define LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE
+
static esp_err_t led_strip_rmt_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
static esp_err_t led_strip_rmt_clear(led_strip_t *strip)
+
#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS
+
static esp_err_t led_strip_rmt_del(led_strip_t *strip)
+
esp_err_t led_strip_new_rmt_device(const led_strip_config_t *led_config, const led_strip_rmt_config_t *rmt_config, led_strip_handle_t *ret_strip)
Create LED strip based on RMT TX channel.
+
#define LED_STRIP_RMT_DEFAULT_RESOLUTION
+
esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder)
Create RMT encoder for encoding LED strip pixels into RMT symbols.
+ +
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
struct led_strip_t * led_strip_handle_t
LED strip handle.
+
static const char * TAG
Definition main/main.c:31
+
LED Strip Configuration.
+
led_pixel_format_t led_pixel_format
+ + + + +
struct led_strip_config_t::@145177150267040163336221331365072267202117177200 flags
+
Type of led strip encoder configuration.
+
LED Strip RMT specific configuration.
+ +
rmt_clock_source_t clk_src
+
struct led_strip_rmt_config_t::@177205126266303010206200207206146127175132325264 flags
+ + + + +
rmt_channel_handle_t rmt_chan
+ + + +
rmt_encoder_handle_t strip_encoder
+
LED strip interface definition.
+
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+
+
+ + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c.html b/docs/html/led__strip__rmt__dev__idf4_8c.html new file mode 100644 index 0000000..1507d46 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c.html @@ -0,0 +1,913 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt_dev_idf4.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt_dev_idf4.c File Reference
+
+
+
#include <stdlib.h>
+#include <string.h>
+#include <sys/cdefs.h>
+#include "esp_log.h"
+#include "esp_check.h"
+#include "driver/rmt.h"
+#include "led_strip.h"
+#include "led_strip_interface.h"
+
+Include dependency graph for led_strip_rmt_dev_idf4.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Data Structures

struct  led_strip_rmt_obj
+ + + + + + + + + + + +

+Macros

#define WS2812_T0H_NS   (300)
#define WS2812_T0L_NS   (900)
#define WS2812_T1H_NS   (900)
#define WS2812_T1L_NS   (300)
#define SK6812_T0H_NS   (300)
#define SK6812_T0L_NS   (900)
#define SK6812_T1H_NS   (600)
#define SK6812_T1L_NS   (600)
#define LED_STRIP_RESET_MS   (10)
#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS   48
+ + + + + + + + +

+Functions

static void ws2812_rmt_adapter (const void *src, rmt_item32_t *dest, size_t src_size, size_t wanted_num, size_t *translated_size, size_t *item_num)
static esp_err_t led_strip_rmt_set_pixel (led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
static esp_err_t led_strip_rmt_refresh (led_strip_t *strip)
static esp_err_t led_strip_rmt_clear (led_strip_t *strip)
static esp_err_t led_strip_rmt_del (led_strip_t *strip)
esp_err_t led_strip_new_rmt_device (const led_strip_config_t *led_config, const led_strip_rmt_config_t *dev_config, led_strip_handle_t *ret_strip)
 Create LED strip based on RMT TX channel.
+ + + + + + +

+Variables

static const char * TAG = "led_strip_rmt"
static uint32_t led_t0h_ticks = 0
static uint32_t led_t1h_ticks = 0
static uint32_t led_t0l_ticks = 0
static uint32_t led_t1l_ticks = 0
+

Macro Definition Documentation

+ +

◆ LED_STRIP_RESET_MS

+ +
+
+ + + + +
#define LED_STRIP_RESET_MS   (10)
+
+ +

Definition at line 27 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_rmt_refresh().

+ +
+
+ +

◆ LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS

+ +
+
+ + + + +
#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS   48
+
+ +

Definition at line 33 of file led_strip_rmt_dev_idf4.c.

+ +
+
+ +

◆ SK6812_T0H_NS

+ +
+
+ + + + +
#define SK6812_T0H_NS   (300)
+
+ +

Definition at line 22 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+ +

◆ SK6812_T0L_NS

+ +
+
+ + + + +
#define SK6812_T0L_NS   (900)
+
+ +

Definition at line 23 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+ +

◆ SK6812_T1H_NS

+ +
+
+ + + + +
#define SK6812_T1H_NS   (600)
+
+ +

Definition at line 24 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+ +

◆ SK6812_T1L_NS

+ +
+
+ + + + +
#define SK6812_T1L_NS   (600)
+
+ +

Definition at line 25 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+ +

◆ WS2812_T0H_NS

+ +
+
+ + + + +
#define WS2812_T0H_NS   (300)
+
+ +

Definition at line 17 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+ +

◆ WS2812_T0L_NS

+ +
+
+ + + + +
#define WS2812_T0L_NS   (900)
+
+ +

Definition at line 18 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+ +

◆ WS2812_T1H_NS

+ +
+
+ + + + +
#define WS2812_T1H_NS   (900)
+
+ +

Definition at line 19 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+ +

◆ WS2812_T1L_NS

+ +
+
+ + + + +
#define WS2812_T1L_NS   (300)
+
+ +

Definition at line 20 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device().

+ +
+
+

Function Documentation

+ +

◆ led_strip_new_rmt_device()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t led_strip_new_rmt_device (const led_strip_config_t * led_config,
const led_strip_rmt_config_t * rmt_config,
led_strip_handle_t * ret_strip )
+
+ +

Create LED strip based on RMT TX channel.

+
Parameters
+ + + + +
led_configLED strip configuration
rmt_configRMT specific configuration
ret_stripReturned LED strip handle
+
+
+
Returns
    +
  • ESP_OK: create LED strip handle successfully
  • +
  • ESP_ERR_INVALID_ARG: create LED strip handle failed because of invalid argument
  • +
  • ESP_ERR_NO_MEM: create LED strip handle failed because of out of memory
  • +
  • ESP_FAIL: create LED strip handle failed because some other error
  • +
+
+ +

Definition at line 121 of file led_strip_rmt_dev_idf4.c.

+
122{
+
123 led_strip_rmt_obj *rmt_strip = NULL;
+
124 esp_err_t ret = ESP_OK;
+
125 ESP_RETURN_ON_FALSE(led_config && dev_config && ret_strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
126 ESP_RETURN_ON_FALSE(led_config->led_pixel_format < LED_PIXEL_FORMAT_INVALID, ESP_ERR_INVALID_ARG, TAG, "invalid led_pixel_format");
+
127 ESP_RETURN_ON_FALSE(dev_config->flags.with_dma == 0, ESP_ERR_NOT_SUPPORTED, TAG, "DMA is not supported");
+
128
+
129 uint8_t bytes_per_pixel = 3;
+
130 if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRBW) {
+
131 bytes_per_pixel = 4;
+
132 } else if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRB) {
+
133 bytes_per_pixel = 3;
+
134 } else {
+
135 assert(false);
+
136 }
+
137
+
138 // allocate memory for led_strip object
+
139 rmt_strip = calloc(1, sizeof(led_strip_rmt_obj) + led_config->max_leds * bytes_per_pixel);
+
140 ESP_RETURN_ON_FALSE(rmt_strip, ESP_ERR_NO_MEM, TAG, "request memory for les_strip failed");
+
141
+
142 // install RMT channel driver
+
143 rmt_config_t config = RMT_DEFAULT_CONFIG_TX(led_config->strip_gpio_num, dev_config->rmt_channel);
+
144 // set the minimal clock division because the LED strip needs a high clock resolution
+
145 config.clk_div = 2;
+
146
+
147 uint8_t mem_block_num = 2;
+
148 // override the default value if the user specify the mem block size
+
149 if (dev_config->mem_block_symbols) {
+ +
151 }
+
152 config.mem_block_num = mem_block_num;
+
153
+
154 ESP_GOTO_ON_ERROR(rmt_config(&config), err, TAG, "RMT config failed");
+
155 ESP_GOTO_ON_ERROR(rmt_driver_install(config.channel, 0, 0), err, TAG, "RMT install failed");
+
156
+
157 uint32_t counter_clk_hz = 0;
+
158 rmt_get_counter_clock((rmt_channel_t)dev_config->rmt_channel, &counter_clk_hz);
+
159 // ns -> ticks
+
160 float ratio = (float)counter_clk_hz / 1e9;
+
161 if (led_config->led_model == LED_MODEL_WS2812) {
+
162 led_t0h_ticks = (uint32_t)(ratio * WS2812_T0H_NS);
+
163 led_t0l_ticks = (uint32_t)(ratio * WS2812_T0L_NS);
+
164 led_t1h_ticks = (uint32_t)(ratio * WS2812_T1H_NS);
+
165 led_t1l_ticks = (uint32_t)(ratio * WS2812_T1L_NS);
+
166 } else if (led_config->led_model == LED_MODEL_SK6812) {
+
167 led_t0h_ticks = (uint32_t)(ratio * SK6812_T0H_NS);
+
168 led_t0l_ticks = (uint32_t)(ratio * SK6812_T0L_NS);
+
169 led_t1h_ticks = (uint32_t)(ratio * SK6812_T1H_NS);
+
170 led_t1l_ticks = (uint32_t)(ratio * SK6812_T1L_NS);
+
171 } else {
+
172 assert(false);
+
173 }
+
174
+
175 // adapter to translates the LES strip date frame into RMT symbols
+
176 rmt_translator_init((rmt_channel_t)dev_config->rmt_channel, ws2812_rmt_adapter);
+
177
+
178 rmt_strip->bytes_per_pixel = bytes_per_pixel;
+
179 rmt_strip->rmt_channel = (rmt_channel_t)dev_config->rmt_channel;
+
180 rmt_strip->strip_len = led_config->max_leds;
+ + +
183 rmt_strip->base.clear = led_strip_rmt_clear;
+
184 rmt_strip->base.del = led_strip_rmt_del;
+
185
+
186 *ret_strip = &rmt_strip->base;
+
187 return ESP_OK;
+
188
+
189err:
+
190 if (rmt_strip) {
+
191 free(rmt_strip);
+
192 }
+
193 return ret;
+
194}
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static esp_err_t led_strip_rmt_refresh(led_strip_t *strip)
+
static esp_err_t led_strip_rmt_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
static esp_err_t led_strip_rmt_clear(led_strip_t *strip)
+
#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS
+
static esp_err_t led_strip_rmt_del(led_strip_t *strip)
+
static uint32_t led_t1l_ticks
+
#define WS2812_T1H_NS
+
static void ws2812_rmt_adapter(const void *src, rmt_item32_t *dest, size_t src_size, size_t wanted_num, size_t *translated_size, size_t *item_num)
+
#define WS2812_T1L_NS
+
static uint32_t led_t0h_ticks
+
#define SK6812_T1H_NS
+
static uint32_t led_t0l_ticks
+
#define SK6812_T1L_NS
+
#define WS2812_T0H_NS
+
#define WS2812_T0L_NS
+
#define SK6812_T0L_NS
+
#define SK6812_T0H_NS
+
static uint32_t led_t1h_ticks
+
@ LED_MODEL_WS2812
+
@ LED_MODEL_SK6812
+
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
static const char * TAG
Definition main/main.c:31
+
led_pixel_format_t led_pixel_format
+ + + + +
struct led_strip_rmt_config_t::@177205126266303010206200207206146127175132325264 flags
+ + + + + + +
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+

References led_strip_rmt_obj::base, led_strip_rmt_obj::bytes_per_pixel, led_strip_t::clear, led_strip_rmt_config_t::clk_src, led_strip_t::del, ESP_GOTO_ON_ERROR, ESP_OK, led_strip_config_t::flags, led_strip_rmt_config_t::flags, led_strip_config_t::invert_out, led_strip_config_t::led_model, LED_MODEL_SK6812, LED_MODEL_WS2812, led_strip_config_t::led_pixel_format, LED_PIXEL_FORMAT_GRB, LED_PIXEL_FORMAT_GRBW, LED_PIXEL_FORMAT_INVALID, led_strip_rmt_clear(), LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS, LED_STRIP_RMT_DEFAULT_RESOLUTION, LED_STRIP_RMT_DEFAULT_TRANS_QUEUE_SIZE, led_strip_rmt_del(), led_strip_rmt_refresh(), led_strip_rmt_set_pixel(), led_strip_rmt_set_pixel_rgbw(), led_t0h_ticks, led_t0l_ticks, led_t1h_ticks, led_t1l_ticks, led_strip_config_t::max_leds, led_strip_rmt_config_t::mem_block_symbols, led_strip_t::refresh, led_strip_rmt_config_t::resolution_hz, led_strip_rmt_obj::rmt_chan, led_strip_rmt_obj::rmt_channel, rmt_new_led_strip_encoder(), led_strip_t::set_pixel, led_strip_t::set_pixel_rgbw, SK6812_T0H_NS, SK6812_T0L_NS, SK6812_T1H_NS, SK6812_T1L_NS, led_strip_rmt_obj::strip_encoder, led_strip_config_t::strip_gpio_num, led_strip_rmt_obj::strip_len, TAG, led_strip_rmt_config_t::with_dma, ws2812_rmt_adapter(), WS2812_T0H_NS, WS2812_T0L_NS, WS2812_T1H_NS, and WS2812_T1L_NS.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_rmt_clear()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t led_strip_rmt_clear (led_strip_t * strip)
+
+static
+
+ +

Definition at line 105 of file led_strip_rmt_dev_idf4.c.

+
106{
+
107 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
108 // Write zero to turn off all LEDs
+
109 memset(rmt_strip->buffer, 0, rmt_strip->strip_len * rmt_strip->bytes_per_pixel);
+
110 return led_strip_rmt_refresh(strip);
+
111}
+
static esp_err_t led_strip_rmt_refresh(led_strip_t *strip)
+ +
+

References led_strip_rmt_obj::buffer, led_strip_rmt_obj::bytes_per_pixel, led_strip_rmt_refresh(), and led_strip_rmt_obj::strip_len.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_rmt_del()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t led_strip_rmt_del (led_strip_t * strip)
+
+static
+
+ +

Definition at line 113 of file led_strip_rmt_dev_idf4.c.

+
114{
+
115 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
116 ESP_RETURN_ON_ERROR(rmt_driver_uninstall(rmt_strip->rmt_channel), TAG, "uninstall RMT driver failed");
+
117 free(rmt_strip);
+
118 return ESP_OK;
+
119}
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
+

References ESP_OK, ESP_RETURN_ON_ERROR, led_strip_rmt_obj::rmt_channel, and TAG.

+ +
+
+ +

◆ led_strip_rmt_refresh()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t led_strip_rmt_refresh (led_strip_t * strip)
+
+static
+
+ +

Definition at line 96 of file led_strip_rmt_dev_idf4.c.

+
97{
+
98 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
99 ESP_RETURN_ON_ERROR(rmt_write_sample(rmt_strip->rmt_channel, rmt_strip->buffer, rmt_strip->strip_len * rmt_strip->bytes_per_pixel, true), TAG,
+
100 "transmit RMT samples failed");
+
101 vTaskDelay(pdMS_TO_TICKS(LED_STRIP_RESET_MS));
+
102 return ESP_OK;
+
103}
+
#define LED_STRIP_RESET_MS
+
+

References led_strip_rmt_obj::buffer, led_strip_rmt_obj::bytes_per_pixel, ESP_OK, ESP_RETURN_ON_ERROR, LED_STRIP_RESET_MS, led_strip_rmt_obj::rmt_channel, led_strip_rmt_obj::strip_len, and TAG.

+ +

Referenced by led_strip_rmt_clear().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_rmt_set_pixel()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_rmt_set_pixel (led_strip_t * strip,
uint32_t index,
uint32_t red,
uint32_t green,
uint32_t blue )
+
+static
+
+ +

Definition at line 81 of file led_strip_rmt_dev_idf4.c.

+
82{
+
83 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
84 ESP_RETURN_ON_FALSE(index < rmt_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of the maximum number of leds");
+
85 uint32_t start = index * rmt_strip->bytes_per_pixel;
+
86 // In thr order of GRB
+
87 rmt_strip->buffer[start + 0] = green & 0xFF;
+
88 rmt_strip->buffer[start + 1] = red & 0xFF;
+
89 rmt_strip->buffer[start + 2] = blue & 0xFF;
+
90 if (rmt_strip->bytes_per_pixel > 3) {
+
91 rmt_strip->buffer[start + 3] = 0;
+
92 }
+
93 return ESP_OK;
+
94}
+
+

References led_strip_rmt_obj::buffer, led_strip_rmt_obj::bytes_per_pixel, ESP_OK, and TAG.

+ +
+
+ +

◆ ws2812_rmt_adapter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void ws2812_rmt_adapter (const void * src,
rmt_item32_t * dest,
size_t src_size,
size_t wanted_num,
size_t * translated_size,
size_t * item_num )
+
+static
+
+ +

Definition at line 49 of file led_strip_rmt_dev_idf4.c.

+
51{
+
52 if (src == NULL || dest == NULL) {
+
53 *translated_size = 0;
+
54 *item_num = 0;
+
55 return;
+
56 }
+
57 const rmt_item32_t bit0 = {{{ led_t0h_ticks, 1, led_t0l_ticks, 0 }}}; //Logical 0
+
58 const rmt_item32_t bit1 = {{{ led_t1h_ticks, 1, led_t1l_ticks, 0 }}}; //Logical 1
+
59 size_t size = 0;
+
60 size_t num = 0;
+
61 uint8_t *psrc = (uint8_t *)src;
+
62 rmt_item32_t *pdest = dest;
+
63 while (size < src_size && num < wanted_num) {
+
64 for (int i = 0; i < 8; i++) {
+
65 // MSB first
+
66 if (*psrc & (1 << (7 - i))) {
+
67 pdest->val = bit1.val;
+
68 } else {
+
69 pdest->val = bit0.val;
+
70 }
+
71 num++;
+
72 pdest++;
+
73 }
+
74 size++;
+
75 psrc++;
+
76 }
+
77 *translated_size = size;
+
78 *item_num = num;
+
79}
+
+

References led_t0h_ticks, led_t0l_ticks, led_t1h_ticks, and led_t1l_ticks.

+ +

Referenced by led_strip_new_rmt_device().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ led_t0h_ticks

+ +
+
+ + + + + +
+ + + + +
uint32_t led_t0h_ticks = 0
+
+static
+
+ +

Definition at line 36 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device(), and ws2812_rmt_adapter().

+ +
+
+ +

◆ led_t0l_ticks

+ +
+
+ + + + + +
+ + + + +
uint32_t led_t0l_ticks = 0
+
+static
+
+ +

Definition at line 38 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device(), and ws2812_rmt_adapter().

+ +
+
+ +

◆ led_t1h_ticks

+ +
+
+ + + + + +
+ + + + +
uint32_t led_t1h_ticks = 0
+
+static
+
+ +

Definition at line 37 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device(), and ws2812_rmt_adapter().

+ +
+
+ +

◆ led_t1l_ticks

+ +
+
+ + + + + +
+ + + + +
uint32_t led_t1l_ticks = 0
+
+static
+
+ +

Definition at line 39 of file led_strip_rmt_dev_idf4.c.

+ +

Referenced by led_strip_new_rmt_device(), and ws2812_rmt_adapter().

+ +
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "led_strip_rmt"
+
+static
+
+ +

Definition at line 15 of file led_strip_rmt_dev_idf4.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c.js b/docs/html/led__strip__rmt__dev__idf4_8c.js new file mode 100644 index 0000000..d16d87a --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c.js @@ -0,0 +1,25 @@ +var led__strip__rmt__dev__idf4_8c = +[ + [ "led_strip_rmt_obj", "structled__strip__rmt__obj.html", "structled__strip__rmt__obj" ], + [ "LED_STRIP_RESET_MS", "led__strip__rmt__dev__idf4_8c.html#a0e81d18cfaadedce6569a2cc4e6bcaef", null ], + [ "LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS", "led__strip__rmt__dev__idf4_8c.html#a918f4be11d01490a01b142d8e0733892", null ], + [ "SK6812_T0H_NS", "led__strip__rmt__dev__idf4_8c.html#afb9906eb93a4faca57d5c1b4213e49db", null ], + [ "SK6812_T0L_NS", "led__strip__rmt__dev__idf4_8c.html#af84abf06bc9608f1d4c8321c6bb1cf96", null ], + [ "SK6812_T1H_NS", "led__strip__rmt__dev__idf4_8c.html#a7a8b3ead7c450a5fac936a3e9e572ce5", null ], + [ "SK6812_T1L_NS", "led__strip__rmt__dev__idf4_8c.html#ae8765f2ebb606bf94f34c329ce9212c4", null ], + [ "WS2812_T0H_NS", "led__strip__rmt__dev__idf4_8c.html#ae87a287bf499e2197e41daf8e9f69bdb", null ], + [ "WS2812_T0L_NS", "led__strip__rmt__dev__idf4_8c.html#aeb1176dda74d76eb2cb7c9bd64036975", null ], + [ "WS2812_T1H_NS", "led__strip__rmt__dev__idf4_8c.html#a2a4c3b35a8cf3c618a54cb99b5f2d50d", null ], + [ "WS2812_T1L_NS", "led__strip__rmt__dev__idf4_8c.html#a4b2bbea0f2cc724d33e71b32e93c53ca", null ], + [ "led_strip_new_rmt_device", "led__strip__rmt__dev__idf4_8c.html#ae4d64fa8ea126d15a1692124551f4d31", null ], + [ "led_strip_rmt_clear", "led__strip__rmt__dev__idf4_8c.html#a5c523f0d1ca56d4aa47389a902fc45ce", null ], + [ "led_strip_rmt_del", "led__strip__rmt__dev__idf4_8c.html#a9524741152d38ceaab491dae03d606d6", null ], + [ "led_strip_rmt_refresh", "led__strip__rmt__dev__idf4_8c.html#a02acafefc7398491a56770e0606ebb82", null ], + [ "led_strip_rmt_set_pixel", "led__strip__rmt__dev__idf4_8c.html#a369ad496b407ba725d8ebaac0bfb3490", null ], + [ "ws2812_rmt_adapter", "led__strip__rmt__dev__idf4_8c.html#a2bf46144d9309e73778237a6b4e7c53d", null ], + [ "led_t0h_ticks", "led__strip__rmt__dev__idf4_8c.html#a629ecd96a5861f4ea4734cb02384f9ed", null ], + [ "led_t0l_ticks", "led__strip__rmt__dev__idf4_8c.html#aa7582db76aad20cb277905237fd265f1", null ], + [ "led_t1h_ticks", "led__strip__rmt__dev__idf4_8c.html#afb9f68c70894eb4263561d8816da450b", null ], + [ "led_t1l_ticks", "led__strip__rmt__dev__idf4_8c.html#a0cd51459cb7ff3a5024e49e390790fb2", null ], + [ "TAG", "led__strip__rmt__dev__idf4_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev__idf4_8c__incl.md5 b/docs/html/led__strip__rmt__dev__idf4_8c__incl.md5 new file mode 100644 index 0000000..866b1a1 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c__incl.md5 @@ -0,0 +1 @@ +786b8b406b8aa1a144dad6afac7e0e3a \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev__idf4_8c__incl.svg b/docs/html/led__strip__rmt__dev__idf4_8c__incl.svg new file mode 100644 index 0000000..709ab81 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c__incl.svg @@ -0,0 +1,491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +led_strip_rmt_dev_idf4.c + + +Node1 + + +led_strip_rmt_dev_idf4.c + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sys/cdefs.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_check.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +driver/rmt.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +led_strip.h + + + + + +Node1->Node8 + + + + + + + + +Node17 + + +led_strip_interface.h + + + + + +Node1->Node17 + + + + + + + + +Node5->Node2 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +esp_err.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +led_strip_rmt.h + + + + + +Node8->Node11 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node8->Node13 + + + + + + + + +Node15 + + +led_strip_spi.h + + + + + +Node8->Node15 + + + + + + + + +Node10->Node2 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +led_strip_types.h + + + + + +Node11->Node12 + + + + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +driver/rmt_types.h + + + + + +Node11->Node14 + + + + + + + + +Node12->Node9 + + + + + + + + +Node15->Node9 + + + + + + + + +Node15->Node10 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +driver/spi_master.h + + + + + +Node15->Node16 + + + + + + + + +Node17->Node9 + + + + + + + + +Node17->Node10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c__incl_org.svg b/docs/html/led__strip__rmt__dev__idf4_8c__incl_org.svg new file mode 100644 index 0000000..082401f --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c__incl_org.svg @@ -0,0 +1,408 @@ + + + + + + +led_strip_rmt_dev_idf4.c + + +Node1 + + +led_strip_rmt_dev_idf4.c + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sys/cdefs.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_log.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_check.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +driver/rmt.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +led_strip.h + + + + + +Node1->Node8 + + + + + + + + +Node17 + + +led_strip_interface.h + + + + + +Node1->Node17 + + + + + + + + +Node5->Node2 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +esp_err.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +led_strip_rmt.h + + + + + +Node8->Node11 + + + + + + + + +Node13 + + +esp_idf_version.h + + + + + +Node8->Node13 + + + + + + + + +Node15 + + +led_strip_spi.h + + + + + +Node8->Node15 + + + + + + + + +Node10->Node2 + + + + + + + + +Node11->Node9 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +led_strip_types.h + + + + + +Node11->Node12 + + + + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +driver/rmt_types.h + + + + + +Node11->Node14 + + + + + + + + +Node12->Node9 + + + + + + + + +Node15->Node9 + + + + + + + + +Node15->Node10 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16 + + +driver/spi_master.h + + + + + +Node15->Node16 + + + + + + + + +Node17->Node9 + + + + + + + + +Node17->Node10 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph.md5 b/docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph.md5 new file mode 100644 index 0000000..792aacf --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph.md5 @@ -0,0 +1 @@ +5cc4710a8bdc64019ac9684d4bff8dd2 \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph.svg b/docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph.svg new file mode 100644 index 0000000..fa41600 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_rmt_refresh + + +Node1 + + +led_strip_rmt_refresh + + + + + +Node2 + + +led_strip_rmt_clear + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph_org.svg b/docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph_org.svg new file mode 100644 index 0000000..eb1f81c --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_a02acafefc7398491a56770e0606ebb82_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_rmt_refresh + + +Node1 + + +led_strip_rmt_refresh + + + + + +Node2 + + +led_strip_rmt_clear + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph.md5 b/docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph.md5 new file mode 100644 index 0000000..72531d6 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph.md5 @@ -0,0 +1 @@ +a5fff10ee52bd851d707bb497874653a \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph.svg b/docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph.svg new file mode 100644 index 0000000..493d41a --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +ws2812_rmt_adapter + + +Node1 + + +ws2812_rmt_adapter + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph_org.svg b/docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph_org.svg new file mode 100644 index 0000000..11e6465 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_a2bf46144d9309e73778237a6b4e7c53d_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +ws2812_rmt_adapter + + +Node1 + + +ws2812_rmt_adapter + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 b/docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 new file mode 100644 index 0000000..b6a2533 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.md5 @@ -0,0 +1 @@ +293bb80befe7138e5dcf60f934c9cb7f \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg b/docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg new file mode 100644 index 0000000..4dabad2 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_rmt_clear + + +Node1 + + +led_strip_rmt_clear + + + + + +Node2 + + +led_strip_rmt_refresh + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg b/docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg new file mode 100644 index 0000000..3db6add --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_a5c523f0d1ca56d4aa47389a902fc45ce_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_rmt_clear + + +Node1 + + +led_strip_rmt_clear + + + + + +Node2 + + +led_strip_rmt_refresh + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph.md5 b/docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph.md5 new file mode 100644 index 0000000..38f7772 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph.md5 @@ -0,0 +1 @@ +f1556abd626ad71abc4d6786c11c781a \ No newline at end of file diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph.svg b/docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph.svg new file mode 100644 index 0000000..1eecd0e --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph.svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + +led_strip_new_rmt_device + + +Node1 + + +led_strip_new_rmt_device + + + + + +Node2 + + +led_strip_rmt_clear + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_refresh + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_del + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_set_pixel + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_rmt_set_pixel_rgbw + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node7 + + + + + + + + +Node11 + + +ws2812_rmt_adapter + + + + + +Node1->Node11 + + + + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +rmt_del_led_strip_encoder + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +rmt_encode_led_strip + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +rmt_led_strip_encoder +_reset + + + + + +Node7->Node10 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph_org.svg b/docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph_org.svg new file mode 100644 index 0000000..a169c81 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_ae4d64fa8ea126d15a1692124551f4d31_cgraph_org.svg @@ -0,0 +1,211 @@ + + + + + + +led_strip_new_rmt_device + + +Node1 + + +led_strip_new_rmt_device + + + + + +Node2 + + +led_strip_rmt_clear + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_refresh + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_del + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_set_pixel + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_rmt_set_pixel_rgbw + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node7 + + + + + + + + +Node11 + + +ws2812_rmt_adapter + + + + + +Node1->Node11 + + + + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +rmt_del_led_strip_encoder + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +rmt_encode_led_strip + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +rmt_led_strip_encoder +_reset + + + + + +Node7->Node10 + + + + + + + + diff --git a/docs/html/led__strip__rmt__dev__idf4_8c_source.html b/docs/html/led__strip__rmt__dev__idf4_8c_source.html new file mode 100644 index 0000000..5245bf7 --- /dev/null +++ b/docs/html/led__strip__rmt__dev__idf4_8c_source.html @@ -0,0 +1,370 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt_dev_idf4.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt_dev_idf4.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#include <stdlib.h>
+
7#include <string.h>
+
8#include <sys/cdefs.h>
+
9#include "esp_log.h"
+
10#include "esp_check.h"
+
11#include "driver/rmt.h"
+
12#include "led_strip.h"
+
13#include "led_strip_interface.h"
+
14
+
15static const char *TAG = "led_strip_rmt";
+
16
+
17#define WS2812_T0H_NS (300)
+
18#define WS2812_T0L_NS (900)
+
19#define WS2812_T1H_NS (900)
+
20#define WS2812_T1L_NS (300)
+
21
+
22#define SK6812_T0H_NS (300)
+
23#define SK6812_T0L_NS (900)
+
24#define SK6812_T1H_NS (600)
+
25#define SK6812_T1L_NS (600)
+
26
+
27#define LED_STRIP_RESET_MS (10)
+
28
+
29// the memory size of each RMT channel, in words (4 bytes)
+
30#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2
+
31#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS 64
+
32#else
+
33#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS 48
+
34#endif
+
35
+
36static uint32_t led_t0h_ticks = 0;
+
37static uint32_t led_t1h_ticks = 0;
+
38static uint32_t led_t0l_ticks = 0;
+
39static uint32_t led_t1l_ticks = 0;
+
40
+
41typedef struct {
+
42 led_strip_t base;
+
43 rmt_channel_t rmt_channel;
+
44 uint32_t strip_len;
+
45 uint8_t bytes_per_pixel;
+
46 uint8_t buffer[0];
+ +
48
+
+
49static void IRAM_ATTR ws2812_rmt_adapter(const void *src, rmt_item32_t *dest, size_t src_size,
+
50 size_t wanted_num, size_t *translated_size, size_t *item_num)
+
51{
+
52 if (src == NULL || dest == NULL) {
+
53 *translated_size = 0;
+
54 *item_num = 0;
+
55 return;
+
56 }
+
57 const rmt_item32_t bit0 = {{{ led_t0h_ticks, 1, led_t0l_ticks, 0 }}}; //Logical 0
+
58 const rmt_item32_t bit1 = {{{ led_t1h_ticks, 1, led_t1l_ticks, 0 }}}; //Logical 1
+
59 size_t size = 0;
+
60 size_t num = 0;
+
61 uint8_t *psrc = (uint8_t *)src;
+
62 rmt_item32_t *pdest = dest;
+
63 while (size < src_size && num < wanted_num) {
+
64 for (int i = 0; i < 8; i++) {
+
65 // MSB first
+
66 if (*psrc & (1 << (7 - i))) {
+
67 pdest->val = bit1.val;
+
68 } else {
+
69 pdest->val = bit0.val;
+
70 }
+
71 num++;
+
72 pdest++;
+
73 }
+
74 size++;
+
75 psrc++;
+
76 }
+
77 *translated_size = size;
+
78 *item_num = num;
+
79}
+
+
80
+
+
81static esp_err_t led_strip_rmt_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
82{
+
83 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
84 ESP_RETURN_ON_FALSE(index < rmt_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of the maximum number of leds");
+
85 uint32_t start = index * rmt_strip->bytes_per_pixel;
+
86 // In thr order of GRB
+
87 rmt_strip->buffer[start + 0] = green & 0xFF;
+
88 rmt_strip->buffer[start + 1] = red & 0xFF;
+
89 rmt_strip->buffer[start + 2] = blue & 0xFF;
+
90 if (rmt_strip->bytes_per_pixel > 3) {
+
91 rmt_strip->buffer[start + 3] = 0;
+
92 }
+
93 return ESP_OK;
+
94}
+
+
95
+
+ +
97{
+
98 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
99 ESP_RETURN_ON_ERROR(rmt_write_sample(rmt_strip->rmt_channel, rmt_strip->buffer, rmt_strip->strip_len * rmt_strip->bytes_per_pixel, true), TAG,
+
100 "transmit RMT samples failed");
+
101 vTaskDelay(pdMS_TO_TICKS(LED_STRIP_RESET_MS));
+
102 return ESP_OK;
+
103}
+
+
104
+
+ +
106{
+
107 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
108 // Write zero to turn off all LEDs
+
109 memset(rmt_strip->buffer, 0, rmt_strip->strip_len * rmt_strip->bytes_per_pixel);
+
110 return led_strip_rmt_refresh(strip);
+
111}
+
+
112
+
+ +
114{
+
115 led_strip_rmt_obj *rmt_strip = __containerof(strip, led_strip_rmt_obj, base);
+
116 ESP_RETURN_ON_ERROR(rmt_driver_uninstall(rmt_strip->rmt_channel), TAG, "uninstall RMT driver failed");
+
117 free(rmt_strip);
+
118 return ESP_OK;
+
119}
+
+
120
+
+ +
122{
+
123 led_strip_rmt_obj *rmt_strip = NULL;
+
124 esp_err_t ret = ESP_OK;
+
125 ESP_RETURN_ON_FALSE(led_config && dev_config && ret_strip, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
+
126 ESP_RETURN_ON_FALSE(led_config->led_pixel_format < LED_PIXEL_FORMAT_INVALID, ESP_ERR_INVALID_ARG, TAG, "invalid led_pixel_format");
+
127 ESP_RETURN_ON_FALSE(dev_config->flags.with_dma == 0, ESP_ERR_NOT_SUPPORTED, TAG, "DMA is not supported");
+
128
+
129 uint8_t bytes_per_pixel = 3;
+
130 if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRBW) {
+
131 bytes_per_pixel = 4;
+
132 } else if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRB) {
+
133 bytes_per_pixel = 3;
+
134 } else {
+
135 assert(false);
+
136 }
+
137
+
138 // allocate memory for led_strip object
+
139 rmt_strip = calloc(1, sizeof(led_strip_rmt_obj) + led_config->max_leds * bytes_per_pixel);
+
140 ESP_RETURN_ON_FALSE(rmt_strip, ESP_ERR_NO_MEM, TAG, "request memory for les_strip failed");
+
141
+
142 // install RMT channel driver
+
143 rmt_config_t config = RMT_DEFAULT_CONFIG_TX(led_config->strip_gpio_num, dev_config->rmt_channel);
+
144 // set the minimal clock division because the LED strip needs a high clock resolution
+
145 config.clk_div = 2;
+
146
+
147 uint8_t mem_block_num = 2;
+
148 // override the default value if the user specify the mem block size
+
149 if (dev_config->mem_block_symbols) {
+ +
151 }
+
152 config.mem_block_num = mem_block_num;
+
153
+
154 ESP_GOTO_ON_ERROR(rmt_config(&config), err, TAG, "RMT config failed");
+
155 ESP_GOTO_ON_ERROR(rmt_driver_install(config.channel, 0, 0), err, TAG, "RMT install failed");
+
156
+
157 uint32_t counter_clk_hz = 0;
+
158 rmt_get_counter_clock((rmt_channel_t)dev_config->rmt_channel, &counter_clk_hz);
+
159 // ns -> ticks
+
160 float ratio = (float)counter_clk_hz / 1e9;
+
161 if (led_config->led_model == LED_MODEL_WS2812) {
+
162 led_t0h_ticks = (uint32_t)(ratio * WS2812_T0H_NS);
+
163 led_t0l_ticks = (uint32_t)(ratio * WS2812_T0L_NS);
+
164 led_t1h_ticks = (uint32_t)(ratio * WS2812_T1H_NS);
+
165 led_t1l_ticks = (uint32_t)(ratio * WS2812_T1L_NS);
+
166 } else if (led_config->led_model == LED_MODEL_SK6812) {
+
167 led_t0h_ticks = (uint32_t)(ratio * SK6812_T0H_NS);
+
168 led_t0l_ticks = (uint32_t)(ratio * SK6812_T0L_NS);
+
169 led_t1h_ticks = (uint32_t)(ratio * SK6812_T1H_NS);
+
170 led_t1l_ticks = (uint32_t)(ratio * SK6812_T1L_NS);
+
171 } else {
+
172 assert(false);
+
173 }
+
174
+
175 // adapter to translates the LES strip date frame into RMT symbols
+
176 rmt_translator_init((rmt_channel_t)dev_config->rmt_channel, ws2812_rmt_adapter);
+
177
+
178 rmt_strip->bytes_per_pixel = bytes_per_pixel;
+
179 rmt_strip->rmt_channel = (rmt_channel_t)dev_config->rmt_channel;
+
180 rmt_strip->strip_len = led_config->max_leds;
+ + +
183 rmt_strip->base.clear = led_strip_rmt_clear;
+
184 rmt_strip->base.del = led_strip_rmt_del;
+
185
+
186 *ret_strip = &rmt_strip->base;
+
187 return ESP_OK;
+
188
+
189err:
+
190 if (rmt_strip) {
+
191 free(rmt_strip);
+
192 }
+
193 return ret;
+
194}
+
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ + + +
static esp_err_t led_strip_rmt_refresh(led_strip_t *strip)
+
static esp_err_t led_strip_rmt_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
static esp_err_t led_strip_rmt_clear(led_strip_t *strip)
+
#define LED_STRIP_RMT_DEFAULT_MEM_BLOCK_SYMBOLS
+
static esp_err_t led_strip_rmt_del(led_strip_t *strip)
+
static esp_err_t led_strip_rmt_refresh(led_strip_t *strip)
+
static uint32_t led_t1l_ticks
+
#define LED_STRIP_RESET_MS
+
#define WS2812_T1H_NS
+
static void ws2812_rmt_adapter(const void *src, rmt_item32_t *dest, size_t src_size, size_t wanted_num, size_t *translated_size, size_t *item_num)
+
static esp_err_t led_strip_rmt_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
#define WS2812_T1L_NS
+
static esp_err_t led_strip_rmt_clear(led_strip_t *strip)
+
static uint32_t led_t0h_ticks
+
#define SK6812_T1H_NS
+
static esp_err_t led_strip_rmt_del(led_strip_t *strip)
+
static uint32_t led_t0l_ticks
+
esp_err_t led_strip_new_rmt_device(const led_strip_config_t *led_config, const led_strip_rmt_config_t *dev_config, led_strip_handle_t *ret_strip)
Create LED strip based on RMT TX channel.
+
#define SK6812_T1L_NS
+
#define WS2812_T0H_NS
+
#define WS2812_T0L_NS
+
#define SK6812_T0L_NS
+
#define SK6812_T0H_NS
+
static uint32_t led_t1h_ticks
+
@ LED_MODEL_WS2812
+
@ LED_MODEL_SK6812
+
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
struct led_strip_t * led_strip_handle_t
LED strip handle.
+
static const char * TAG
Definition main/main.c:31
+
LED Strip Configuration.
+
led_pixel_format_t led_pixel_format
+ + + +
LED Strip RMT specific configuration.
+ +
struct led_strip_rmt_config_t::@177205126266303010206200207206146127175132325264 flags
+ + + + + + + +
LED strip interface definition.
+
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+
+
+ + + + diff --git a/docs/html/led__strip__rmt__encoder_8c.html b/docs/html/led__strip__rmt__encoder_8c.html new file mode 100644 index 0000000..b789443 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c.html @@ -0,0 +1,482 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt_encoder.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt_encoder.c File Reference
+
+
+
#include "esp_check.h"
+#include "led_strip_rmt_encoder.h"
+
+Include dependency graph for led_strip_rmt_encoder.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Data Structures

struct  rmt_led_strip_encoder_t
+ + + + + + +

+Functions

static size_t rmt_encode_led_strip (rmt_encoder_t *encoder, rmt_channel_handle_t channel, const void *primary_data, size_t data_size, rmt_encode_state_t *ret_state)
static esp_err_t rmt_del_led_strip_encoder (rmt_encoder_t *encoder)
static esp_err_t rmt_led_strip_encoder_reset (rmt_encoder_t *encoder)
esp_err_t rmt_new_led_strip_encoder (const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder)
 Create RMT encoder for encoding LED strip pixels into RMT symbols.
+ + +

+Variables

static const char * TAG = "led_rmt_encoder"
+

Function Documentation

+ +

◆ rmt_del_led_strip_encoder()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t rmt_del_led_strip_encoder (rmt_encoder_t * encoder)
+
+static
+
+ +

Definition at line 56 of file led_strip_rmt_encoder.c.

+
57{
+
58 rmt_led_strip_encoder_t *led_encoder = __containerof(encoder, rmt_led_strip_encoder_t, base);
+
59 rmt_del_encoder(led_encoder->bytes_encoder);
+
60 rmt_del_encoder(led_encoder->copy_encoder);
+
61 free(led_encoder);
+
62 return ESP_OK;
+
63}
+
#define ESP_OK
Definition esp_err.h:23
+ + + +
+

References rmt_led_strip_encoder_t::bytes_encoder, rmt_led_strip_encoder_t::copy_encoder, and ESP_OK.

+ +

Referenced by rmt_new_led_strip_encoder().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ rmt_encode_led_strip()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
size_t rmt_encode_led_strip (rmt_encoder_t * encoder,
rmt_channel_handle_t channel,
const void * primary_data,
size_t data_size,
rmt_encode_state_t * ret_state )
+
+static
+
+ +

Definition at line 20 of file led_strip_rmt_encoder.c.

+
21{
+
22 rmt_led_strip_encoder_t *led_encoder = __containerof(encoder, rmt_led_strip_encoder_t, base);
+
23 rmt_encoder_handle_t bytes_encoder = led_encoder->bytes_encoder;
+
24 rmt_encoder_handle_t copy_encoder = led_encoder->copy_encoder;
+
25 rmt_encode_state_t session_state = 0;
+
26 rmt_encode_state_t state = 0;
+
27 size_t encoded_symbols = 0;
+
28 switch (led_encoder->state) {
+
29 case 0: // send RGB data
+
30 encoded_symbols += bytes_encoder->encode(bytes_encoder, channel, primary_data, data_size, &session_state);
+
31 if (session_state & RMT_ENCODING_COMPLETE) {
+
32 led_encoder->state = 1; // switch to next state when current encoding session finished
+
33 }
+
34 if (session_state & RMT_ENCODING_MEM_FULL) {
+
35 state |= RMT_ENCODING_MEM_FULL;
+
36 goto out; // yield if there's no free space for encoding artifacts
+
37 }
+
38 // fall-through
+
39 case 1: // send reset code
+
40 encoded_symbols += copy_encoder->encode(copy_encoder, channel, &led_encoder->reset_code,
+
41 sizeof(led_encoder->reset_code), &session_state);
+
42 if (session_state & RMT_ENCODING_COMPLETE) {
+
43 led_encoder->state = 0; // back to the initial encoding session
+
44 state |= RMT_ENCODING_COMPLETE;
+
45 }
+
46 if (session_state & RMT_ENCODING_MEM_FULL) {
+
47 state |= RMT_ENCODING_MEM_FULL;
+
48 goto out; // yield if there's no free space for encoding artifacts
+
49 }
+
50 }
+
51out:
+
52 *ret_state = state;
+
53 return encoded_symbols;
+
54}
+ + +
+

References rmt_led_strip_encoder_t::bytes_encoder, rmt_led_strip_encoder_t::copy_encoder, rmt_led_strip_encoder_t::reset_code, and rmt_led_strip_encoder_t::state.

+ +

Referenced by rmt_new_led_strip_encoder().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ rmt_led_strip_encoder_reset()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t rmt_led_strip_encoder_reset (rmt_encoder_t * encoder)
+
+static
+
+ +

Definition at line 65 of file led_strip_rmt_encoder.c.

+
66{
+
67 rmt_led_strip_encoder_t *led_encoder = __containerof(encoder, rmt_led_strip_encoder_t, base);
+
68 rmt_encoder_reset(led_encoder->bytes_encoder);
+
69 rmt_encoder_reset(led_encoder->copy_encoder);
+
70 led_encoder->state = 0;
+
71 return ESP_OK;
+
72}
+
+

References rmt_led_strip_encoder_t::bytes_encoder, rmt_led_strip_encoder_t::copy_encoder, ESP_OK, and rmt_led_strip_encoder_t::state.

+ +

Referenced by rmt_new_led_strip_encoder().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ rmt_new_led_strip_encoder()

+ +
+
+ + + + + + + + + + + +
esp_err_t rmt_new_led_strip_encoder (const led_strip_encoder_config_t * config,
rmt_encoder_handle_t * ret_encoder )
+
+ +

Create RMT encoder for encoding LED strip pixels into RMT symbols.

+
Parameters
+ + + +
[in]configEncoder configuration
[out]ret_encoderReturned encoder handle
+
+
+
Returns
    +
  • ESP_ERR_INVALID_ARG for any invalid arguments
  • +
  • ESP_ERR_NO_MEM out of memory when creating led strip encoder
  • +
  • ESP_OK if creating encoder successfully
  • +
+
+ +

Definition at line 74 of file led_strip_rmt_encoder.c.

+
75{
+
76 esp_err_t ret = ESP_OK;
+
77 rmt_led_strip_encoder_t *led_encoder = NULL;
+
78 ESP_GOTO_ON_FALSE(config && ret_encoder, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
+
79 ESP_GOTO_ON_FALSE(config->led_model < LED_MODEL_INVALID, ESP_ERR_INVALID_ARG, err, TAG, "invalid led model");
+
80 led_encoder = calloc(1, sizeof(rmt_led_strip_encoder_t));
+
81 ESP_GOTO_ON_FALSE(led_encoder, ESP_ERR_NO_MEM, err, TAG, "no mem for led strip encoder");
+
82 led_encoder->base.encode = rmt_encode_led_strip;
+
83 led_encoder->base.del = rmt_del_led_strip_encoder;
+
84 led_encoder->base.reset = rmt_led_strip_encoder_reset;
+
85 rmt_bytes_encoder_config_t bytes_encoder_config;
+
86 if (config->led_model == LED_MODEL_SK6812) {
+
87 bytes_encoder_config = (rmt_bytes_encoder_config_t) {
+
88 .bit0 = {
+
89 .level0 = 1,
+
90 .duration0 = 0.3 * config->resolution / 1000000, // T0H=0.3us
+
91 .level1 = 0,
+
92 .duration1 = 0.9 * config->resolution / 1000000, // T0L=0.9us
+
93 },
+
94 .bit1 = {
+
95 .level0 = 1,
+
96 .duration0 = 0.6 * config->resolution / 1000000, // T1H=0.6us
+
97 .level1 = 0,
+
98 .duration1 = 0.6 * config->resolution / 1000000, // T1L=0.6us
+
99 },
+
100 .flags.msb_first = 1 // SK6812 transfer bit order: G7...G0R7...R0B7...B0(W7...W0)
+
101 };
+
102 } else if (config->led_model == LED_MODEL_WS2812) {
+
103 // different led strip might have its own timing requirements, following parameter is for WS2812
+
104 bytes_encoder_config = (rmt_bytes_encoder_config_t) {
+
105 .bit0 = {
+
106 .level0 = 1,
+
107 .duration0 = 0.3 * config->resolution / 1000000, // T0H=0.3us
+
108 .level1 = 0,
+
109 .duration1 = 0.9 * config->resolution / 1000000, // T0L=0.9us
+
110 },
+
111 .bit1 = {
+
112 .level0 = 1,
+
113 .duration0 = 0.9 * config->resolution / 1000000, // T1H=0.9us
+
114 .level1 = 0,
+
115 .duration1 = 0.3 * config->resolution / 1000000, // T1L=0.3us
+
116 },
+
117 .flags.msb_first = 1 // WS2812 transfer bit order: G7...G0R7...R0B7...B0
+
118 };
+
119 } else {
+
120 assert(false);
+
121 }
+
122 ESP_GOTO_ON_ERROR(rmt_new_bytes_encoder(&bytes_encoder_config, &led_encoder->bytes_encoder), err, TAG, "create bytes encoder failed");
+
123 rmt_copy_encoder_config_t copy_encoder_config = {};
+
124 ESP_GOTO_ON_ERROR(rmt_new_copy_encoder(&copy_encoder_config, &led_encoder->copy_encoder), err, TAG, "create copy encoder failed");
+
125
+
126 uint32_t reset_ticks = config->resolution / 1000000 * 280 / 2; // reset code duration defaults to 280us to accomodate WS2812B-V5
+
127 led_encoder->reset_code = (rmt_symbol_word_t) {
+
128 .level0 = 0,
+
129 .duration0 = reset_ticks,
+
130 .level1 = 0,
+
131 .duration1 = reset_ticks,
+
132 };
+
133 *ret_encoder = &led_encoder->base;
+
134 return ESP_OK;
+
135err:
+
136 if (led_encoder) {
+
137 if (led_encoder->bytes_encoder) {
+
138 rmt_del_encoder(led_encoder->bytes_encoder);
+
139 }
+
140 if (led_encoder->copy_encoder) {
+
141 rmt_del_encoder(led_encoder->copy_encoder);
+
142 }
+
143 free(led_encoder);
+
144 }
+
145 return ret;
+
146}
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
static size_t rmt_encode_led_strip(rmt_encoder_t *encoder, rmt_channel_handle_t channel, const void *primary_data, size_t data_size, rmt_encode_state_t *ret_state)
+
static esp_err_t rmt_del_led_strip_encoder(rmt_encoder_t *encoder)
+
static esp_err_t rmt_led_strip_encoder_reset(rmt_encoder_t *encoder)
+
@ LED_MODEL_WS2812
+
@ LED_MODEL_SK6812
+
@ LED_MODEL_INVALID
+
static const char * TAG
Definition main/main.c:31
+ + + +
+

References rmt_led_strip_encoder_t::base, rmt_led_strip_encoder_t::bytes_encoder, rmt_led_strip_encoder_t::copy_encoder, ESP_GOTO_ON_ERROR, ESP_OK, led_strip_encoder_config_t::led_model, LED_MODEL_INVALID, LED_MODEL_SK6812, LED_MODEL_WS2812, rmt_led_strip_encoder_t::reset_code, led_strip_encoder_config_t::resolution, rmt_del_led_strip_encoder(), rmt_encode_led_strip(), rmt_led_strip_encoder_reset(), and TAG.

+ +

Referenced by led_strip_new_rmt_device().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "led_rmt_encoder"
+
+static
+
+ +

Definition at line 10 of file led_strip_rmt_encoder.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__rmt__encoder_8c.js b/docs/html/led__strip__rmt__encoder_8c.js new file mode 100644 index 0000000..fbc0af9 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c.js @@ -0,0 +1,9 @@ +var led__strip__rmt__encoder_8c = +[ + [ "rmt_led_strip_encoder_t", "structrmt__led__strip__encoder__t.html", "structrmt__led__strip__encoder__t" ], + [ "rmt_del_led_strip_encoder", "led__strip__rmt__encoder_8c.html#a468c0fc56235d76562777c8f551463f9", null ], + [ "rmt_encode_led_strip", "led__strip__rmt__encoder_8c.html#a1c85c2660c0f2c003f8064baea91782d", null ], + [ "rmt_led_strip_encoder_reset", "led__strip__rmt__encoder_8c.html#a95120e82d0a3b4358ef81559bc851010", null ], + [ "rmt_new_led_strip_encoder", "led__strip__rmt__encoder_8c.html#a367480d48d10d4288ae0ea8078b771f5", null ], + [ "TAG", "led__strip__rmt__encoder_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8c__incl.md5 b/docs/html/led__strip__rmt__encoder_8c__incl.md5 new file mode 100644 index 0000000..5b75fb4 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c__incl.md5 @@ -0,0 +1 @@ +28c4b9bf730bf0906b6e8b8ac546029a \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8c__incl.svg b/docs/html/led__strip__rmt__encoder_8c__incl.svg new file mode 100644 index 0000000..8d593aa --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c__incl.svg @@ -0,0 +1,146 @@ + + + + + + + + + + + + +led_strip_rmt_encoder.c + + +Node1 + + +led_strip_rmt_encoder.c + + + + + +Node2 + + +esp_check.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_encoder.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +driver/rmt_encoder.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +led_strip_types.h + + + + + +Node3->Node6 + + + + + + + + +Node6->Node4 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c__incl_org.svg b/docs/html/led__strip__rmt__encoder_8c__incl_org.svg new file mode 100644 index 0000000..d6871dd --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c__incl_org.svg @@ -0,0 +1,120 @@ + + + + + + +led_strip_rmt_encoder.c + + +Node1 + + +led_strip_rmt_encoder.c + + + + + +Node2 + + +esp_check.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_encoder.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +driver/rmt_encoder.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +led_strip_types.h + + + + + +Node3->Node6 + + + + + + + + +Node6->Node4 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph.md5 b/docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph.md5 new file mode 100644 index 0000000..6e8a21b --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph.md5 @@ -0,0 +1 @@ +5f1ff84bdb41f7dbea516c043b29715a \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph.svg b/docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph.svg new file mode 100644 index 0000000..6ae1665 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +rmt_encode_led_strip + + +Node1 + + +rmt_encode_led_strip + + + + + +Node2 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_new_rmt_device + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph_org.svg b/docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph_org.svg new file mode 100644 index 0000000..8546cd4 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a1c85c2660c0f2c003f8064baea91782d_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +rmt_encode_led_strip + + +Node1 + + +rmt_encode_led_strip + + + + + +Node2 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_new_rmt_device + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph.md5 b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph.md5 new file mode 100644 index 0000000..3c2663a --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph.md5 @@ -0,0 +1 @@ +3129ed8896c99518b10a2d25891ee3ab \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph.svg b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph.svg new file mode 100644 index 0000000..db561b4 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +rmt_new_led_strip_encoder + + +Node1 + + +rmt_new_led_strip_encoder + + + + + +Node2 + + +rmt_del_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +rmt_encode_led_strip + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +rmt_led_strip_encoder +_reset + + + + + +Node1->Node4 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph_org.svg b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph_org.svg new file mode 100644 index 0000000..b3e2038 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_cgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +rmt_new_led_strip_encoder + + +Node1 + + +rmt_new_led_strip_encoder + + + + + +Node2 + + +rmt_del_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +rmt_encode_led_strip + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +rmt_led_strip_encoder +_reset + + + + + +Node1->Node4 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph.md5 b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph.md5 new file mode 100644 index 0000000..d5fe5f3 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph.md5 @@ -0,0 +1 @@ +3f486919224ae9d431149350f8bc9f3b \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph.svg b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph.svg new file mode 100644 index 0000000..e00241b --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +rmt_new_led_strip_encoder + + +Node1 + + +rmt_new_led_strip_encoder + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph_org.svg b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph_org.svg new file mode 100644 index 0000000..c737d48 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a367480d48d10d4288ae0ea8078b771f5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +rmt_new_led_strip_encoder + + +Node1 + + +rmt_new_led_strip_encoder + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph.md5 b/docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph.md5 new file mode 100644 index 0000000..bd37232 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph.md5 @@ -0,0 +1 @@ +c1df5c9b662a42a238350d2bf418bc2a \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph.svg b/docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph.svg new file mode 100644 index 0000000..26118ed --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +rmt_del_led_strip_encoder + + +Node1 + + +rmt_del_led_strip_encoder + + + + + +Node2 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_new_rmt_device + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph_org.svg b/docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph_org.svg new file mode 100644 index 0000000..dbdcf6f --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a468c0fc56235d76562777c8f551463f9_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +rmt_del_led_strip_encoder + + +Node1 + + +rmt_del_led_strip_encoder + + + + + +Node2 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_new_rmt_device + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph.md5 b/docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph.md5 new file mode 100644 index 0000000..3ed3dfe --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph.md5 @@ -0,0 +1 @@ +bd927698ac7d866fd16a5f17081e714f \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph.svg b/docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph.svg new file mode 100644 index 0000000..5d4f61e --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +rmt_led_strip_encoder_reset + + +Node1 + + +rmt_led_strip_encoder +_reset + + + + + +Node2 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_new_rmt_device + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph_org.svg b/docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph_org.svg new file mode 100644 index 0000000..bf1f2fb --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_a95120e82d0a3b4358ef81559bc851010_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +rmt_led_strip_encoder_reset + + +Node1 + + +rmt_led_strip_encoder +_reset + + + + + +Node2 + + +rmt_new_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_new_rmt_device + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8c_source.html b/docs/html/led__strip__rmt__encoder_8c_source.html new file mode 100644 index 0000000..3a7a6ac --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8c_source.html @@ -0,0 +1,283 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt_encoder.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt_encoder.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6
+
7#include "esp_check.h"
+ +
9
+
10static const char *TAG = "led_rmt_encoder";
+
11
+
+
12typedef struct {
+
13 rmt_encoder_t base;
+
14 rmt_encoder_t *bytes_encoder;
+
15 rmt_encoder_t *copy_encoder;
+
16 int state;
+
17 rmt_symbol_word_t reset_code;
+ +
+
19
+
+
20static size_t rmt_encode_led_strip(rmt_encoder_t *encoder, rmt_channel_handle_t channel, const void *primary_data, size_t data_size, rmt_encode_state_t *ret_state)
+
21{
+
22 rmt_led_strip_encoder_t *led_encoder = __containerof(encoder, rmt_led_strip_encoder_t, base);
+
23 rmt_encoder_handle_t bytes_encoder = led_encoder->bytes_encoder;
+
24 rmt_encoder_handle_t copy_encoder = led_encoder->copy_encoder;
+
25 rmt_encode_state_t session_state = 0;
+
26 rmt_encode_state_t state = 0;
+
27 size_t encoded_symbols = 0;
+
28 switch (led_encoder->state) {
+
29 case 0: // send RGB data
+
30 encoded_symbols += bytes_encoder->encode(bytes_encoder, channel, primary_data, data_size, &session_state);
+
31 if (session_state & RMT_ENCODING_COMPLETE) {
+
32 led_encoder->state = 1; // switch to next state when current encoding session finished
+
33 }
+
34 if (session_state & RMT_ENCODING_MEM_FULL) {
+
35 state |= RMT_ENCODING_MEM_FULL;
+
36 goto out; // yield if there's no free space for encoding artifacts
+
37 }
+
38 // fall-through
+
39 case 1: // send reset code
+
40 encoded_symbols += copy_encoder->encode(copy_encoder, channel, &led_encoder->reset_code,
+
41 sizeof(led_encoder->reset_code), &session_state);
+
42 if (session_state & RMT_ENCODING_COMPLETE) {
+
43 led_encoder->state = 0; // back to the initial encoding session
+
44 state |= RMT_ENCODING_COMPLETE;
+
45 }
+
46 if (session_state & RMT_ENCODING_MEM_FULL) {
+
47 state |= RMT_ENCODING_MEM_FULL;
+
48 goto out; // yield if there's no free space for encoding artifacts
+
49 }
+
50 }
+
51out:
+
52 *ret_state = state;
+
53 return encoded_symbols;
+
54}
+
+
55
+
+
56static esp_err_t rmt_del_led_strip_encoder(rmt_encoder_t *encoder)
+
57{
+
58 rmt_led_strip_encoder_t *led_encoder = __containerof(encoder, rmt_led_strip_encoder_t, base);
+
59 rmt_del_encoder(led_encoder->bytes_encoder);
+
60 rmt_del_encoder(led_encoder->copy_encoder);
+
61 free(led_encoder);
+
62 return ESP_OK;
+
63}
+
+
64
+
+
65static esp_err_t rmt_led_strip_encoder_reset(rmt_encoder_t *encoder)
+
66{
+
67 rmt_led_strip_encoder_t *led_encoder = __containerof(encoder, rmt_led_strip_encoder_t, base);
+
68 rmt_encoder_reset(led_encoder->bytes_encoder);
+
69 rmt_encoder_reset(led_encoder->copy_encoder);
+
70 led_encoder->state = 0;
+
71 return ESP_OK;
+
72}
+
+
73
+
+
74esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder)
+
75{
+
76 esp_err_t ret = ESP_OK;
+
77 rmt_led_strip_encoder_t *led_encoder = NULL;
+
78 ESP_GOTO_ON_FALSE(config && ret_encoder, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
+
79 ESP_GOTO_ON_FALSE(config->led_model < LED_MODEL_INVALID, ESP_ERR_INVALID_ARG, err, TAG, "invalid led model");
+
80 led_encoder = calloc(1, sizeof(rmt_led_strip_encoder_t));
+
81 ESP_GOTO_ON_FALSE(led_encoder, ESP_ERR_NO_MEM, err, TAG, "no mem for led strip encoder");
+
82 led_encoder->base.encode = rmt_encode_led_strip;
+
83 led_encoder->base.del = rmt_del_led_strip_encoder;
+
84 led_encoder->base.reset = rmt_led_strip_encoder_reset;
+
85 rmt_bytes_encoder_config_t bytes_encoder_config;
+
86 if (config->led_model == LED_MODEL_SK6812) {
+
87 bytes_encoder_config = (rmt_bytes_encoder_config_t) {
+
88 .bit0 = {
+
89 .level0 = 1,
+
90 .duration0 = 0.3 * config->resolution / 1000000, // T0H=0.3us
+
91 .level1 = 0,
+
92 .duration1 = 0.9 * config->resolution / 1000000, // T0L=0.9us
+
93 },
+
94 .bit1 = {
+
95 .level0 = 1,
+
96 .duration0 = 0.6 * config->resolution / 1000000, // T1H=0.6us
+
97 .level1 = 0,
+
98 .duration1 = 0.6 * config->resolution / 1000000, // T1L=0.6us
+
99 },
+
100 .flags.msb_first = 1 // SK6812 transfer bit order: G7...G0R7...R0B7...B0(W7...W0)
+
101 };
+
102 } else if (config->led_model == LED_MODEL_WS2812) {
+
103 // different led strip might have its own timing requirements, following parameter is for WS2812
+
104 bytes_encoder_config = (rmt_bytes_encoder_config_t) {
+
105 .bit0 = {
+
106 .level0 = 1,
+
107 .duration0 = 0.3 * config->resolution / 1000000, // T0H=0.3us
+
108 .level1 = 0,
+
109 .duration1 = 0.9 * config->resolution / 1000000, // T0L=0.9us
+
110 },
+
111 .bit1 = {
+
112 .level0 = 1,
+
113 .duration0 = 0.9 * config->resolution / 1000000, // T1H=0.9us
+
114 .level1 = 0,
+
115 .duration1 = 0.3 * config->resolution / 1000000, // T1L=0.3us
+
116 },
+
117 .flags.msb_first = 1 // WS2812 transfer bit order: G7...G0R7...R0B7...B0
+
118 };
+
119 } else {
+
120 assert(false);
+
121 }
+
122 ESP_GOTO_ON_ERROR(rmt_new_bytes_encoder(&bytes_encoder_config, &led_encoder->bytes_encoder), err, TAG, "create bytes encoder failed");
+
123 rmt_copy_encoder_config_t copy_encoder_config = {};
+
124 ESP_GOTO_ON_ERROR(rmt_new_copy_encoder(&copy_encoder_config, &led_encoder->copy_encoder), err, TAG, "create copy encoder failed");
+
125
+
126 uint32_t reset_ticks = config->resolution / 1000000 * 280 / 2; // reset code duration defaults to 280us to accomodate WS2812B-V5
+
127 led_encoder->reset_code = (rmt_symbol_word_t) {
+
128 .level0 = 0,
+
129 .duration0 = reset_ticks,
+
130 .level1 = 0,
+
131 .duration1 = reset_ticks,
+
132 };
+
133 *ret_encoder = &led_encoder->base;
+
134 return ESP_OK;
+
135err:
+
136 if (led_encoder) {
+
137 if (led_encoder->bytes_encoder) {
+
138 rmt_del_encoder(led_encoder->bytes_encoder);
+
139 }
+
140 if (led_encoder->copy_encoder) {
+
141 rmt_del_encoder(led_encoder->copy_encoder);
+
142 }
+
143 free(led_encoder);
+
144 }
+
145 return ret;
+
146}
+
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static size_t rmt_encode_led_strip(rmt_encoder_t *encoder, rmt_channel_handle_t channel, const void *primary_data, size_t data_size, rmt_encode_state_t *ret_state)
+
esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder)
Create RMT encoder for encoding LED strip pixels into RMT symbols.
+
static esp_err_t rmt_del_led_strip_encoder(rmt_encoder_t *encoder)
+
static esp_err_t rmt_led_strip_encoder_reset(rmt_encoder_t *encoder)
+ +
@ LED_MODEL_WS2812
+
@ LED_MODEL_SK6812
+
@ LED_MODEL_INVALID
+
static const char * TAG
Definition main/main.c:31
+
Type of led strip encoder configuration.
+ + + + + + + + +
+
+
+ + + + diff --git a/docs/html/led__strip__rmt__encoder_8h.html b/docs/html/led__strip__rmt__encoder_8h.html new file mode 100644 index 0000000..135befc --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h.html @@ -0,0 +1,281 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt_encoder.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt_encoder.h File Reference
+
+
+
#include <stdint.h>
+#include "driver/rmt_encoder.h"
+#include "led_strip_types.h"
+
+Include dependency graph for led_strip_rmt_encoder.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  led_strip_encoder_config_t
 Type of led strip encoder configuration. More...
+ + + +

+Functions

esp_err_t rmt_new_led_strip_encoder (const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder)
 Create RMT encoder for encoding LED strip pixels into RMT symbols.
+

Function Documentation

+ +

◆ rmt_new_led_strip_encoder()

+ +
+
+ + + + + + + + + + + +
esp_err_t rmt_new_led_strip_encoder (const led_strip_encoder_config_t * config,
rmt_encoder_handle_t * ret_encoder )
+
+ +

Create RMT encoder for encoding LED strip pixels into RMT symbols.

+
Parameters
+ + + +
[in]configEncoder configuration
[out]ret_encoderReturned encoder handle
+
+
+
Returns
    +
  • ESP_ERR_INVALID_ARG for any invalid arguments
  • +
  • ESP_ERR_NO_MEM out of memory when creating led strip encoder
  • +
  • ESP_OK if creating encoder successfully
  • +
+
+ +

Definition at line 74 of file led_strip_rmt_encoder.c.

+
75{
+
76 esp_err_t ret = ESP_OK;
+
77 rmt_led_strip_encoder_t *led_encoder = NULL;
+
78 ESP_GOTO_ON_FALSE(config && ret_encoder, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
+
79 ESP_GOTO_ON_FALSE(config->led_model < LED_MODEL_INVALID, ESP_ERR_INVALID_ARG, err, TAG, "invalid led model");
+
80 led_encoder = calloc(1, sizeof(rmt_led_strip_encoder_t));
+
81 ESP_GOTO_ON_FALSE(led_encoder, ESP_ERR_NO_MEM, err, TAG, "no mem for led strip encoder");
+
82 led_encoder->base.encode = rmt_encode_led_strip;
+
83 led_encoder->base.del = rmt_del_led_strip_encoder;
+
84 led_encoder->base.reset = rmt_led_strip_encoder_reset;
+
85 rmt_bytes_encoder_config_t bytes_encoder_config;
+
86 if (config->led_model == LED_MODEL_SK6812) {
+
87 bytes_encoder_config = (rmt_bytes_encoder_config_t) {
+
88 .bit0 = {
+
89 .level0 = 1,
+
90 .duration0 = 0.3 * config->resolution / 1000000, // T0H=0.3us
+
91 .level1 = 0,
+
92 .duration1 = 0.9 * config->resolution / 1000000, // T0L=0.9us
+
93 },
+
94 .bit1 = {
+
95 .level0 = 1,
+
96 .duration0 = 0.6 * config->resolution / 1000000, // T1H=0.6us
+
97 .level1 = 0,
+
98 .duration1 = 0.6 * config->resolution / 1000000, // T1L=0.6us
+
99 },
+
100 .flags.msb_first = 1 // SK6812 transfer bit order: G7...G0R7...R0B7...B0(W7...W0)
+
101 };
+
102 } else if (config->led_model == LED_MODEL_WS2812) {
+
103 // different led strip might have its own timing requirements, following parameter is for WS2812
+
104 bytes_encoder_config = (rmt_bytes_encoder_config_t) {
+
105 .bit0 = {
+
106 .level0 = 1,
+
107 .duration0 = 0.3 * config->resolution / 1000000, // T0H=0.3us
+
108 .level1 = 0,
+
109 .duration1 = 0.9 * config->resolution / 1000000, // T0L=0.9us
+
110 },
+
111 .bit1 = {
+
112 .level0 = 1,
+
113 .duration0 = 0.9 * config->resolution / 1000000, // T1H=0.9us
+
114 .level1 = 0,
+
115 .duration1 = 0.3 * config->resolution / 1000000, // T1L=0.3us
+
116 },
+
117 .flags.msb_first = 1 // WS2812 transfer bit order: G7...G0R7...R0B7...B0
+
118 };
+
119 } else {
+
120 assert(false);
+
121 }
+
122 ESP_GOTO_ON_ERROR(rmt_new_bytes_encoder(&bytes_encoder_config, &led_encoder->bytes_encoder), err, TAG, "create bytes encoder failed");
+
123 rmt_copy_encoder_config_t copy_encoder_config = {};
+
124 ESP_GOTO_ON_ERROR(rmt_new_copy_encoder(&copy_encoder_config, &led_encoder->copy_encoder), err, TAG, "create copy encoder failed");
+
125
+
126 uint32_t reset_ticks = config->resolution / 1000000 * 280 / 2; // reset code duration defaults to 280us to accomodate WS2812B-V5
+
127 led_encoder->reset_code = (rmt_symbol_word_t) {
+
128 .level0 = 0,
+
129 .duration0 = reset_ticks,
+
130 .level1 = 0,
+
131 .duration1 = reset_ticks,
+
132 };
+
133 *ret_encoder = &led_encoder->base;
+
134 return ESP_OK;
+
135err:
+
136 if (led_encoder) {
+
137 if (led_encoder->bytes_encoder) {
+
138 rmt_del_encoder(led_encoder->bytes_encoder);
+
139 }
+
140 if (led_encoder->copy_encoder) {
+
141 rmt_del_encoder(led_encoder->copy_encoder);
+
142 }
+
143 free(led_encoder);
+
144 }
+
145 return ret;
+
146}
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static size_t rmt_encode_led_strip(rmt_encoder_t *encoder, rmt_channel_handle_t channel, const void *primary_data, size_t data_size, rmt_encode_state_t *ret_state)
+
static esp_err_t rmt_del_led_strip_encoder(rmt_encoder_t *encoder)
+
static esp_err_t rmt_led_strip_encoder_reset(rmt_encoder_t *encoder)
+
@ LED_MODEL_WS2812
+
@ LED_MODEL_SK6812
+
@ LED_MODEL_INVALID
+
static const char * TAG
Definition main/main.c:31
+ + + + + + + +
+

References rmt_led_strip_encoder_t::base, rmt_led_strip_encoder_t::bytes_encoder, rmt_led_strip_encoder_t::copy_encoder, ESP_GOTO_ON_ERROR, ESP_OK, led_strip_encoder_config_t::led_model, LED_MODEL_INVALID, LED_MODEL_SK6812, LED_MODEL_WS2812, rmt_led_strip_encoder_t::reset_code, led_strip_encoder_config_t::resolution, rmt_del_led_strip_encoder(), rmt_encode_led_strip(), rmt_led_strip_encoder_reset(), and TAG.

+ +

Referenced by led_strip_new_rmt_device().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__rmt__encoder_8h.js b/docs/html/led__strip__rmt__encoder_8h.js new file mode 100644 index 0000000..f1387d2 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h.js @@ -0,0 +1,5 @@ +var led__strip__rmt__encoder_8h = +[ + [ "led_strip_encoder_config_t", "structled__strip__encoder__config__t.html", "structled__strip__encoder__config__t" ], + [ "rmt_new_led_strip_encoder", "led__strip__rmt__encoder_8h.html#a367480d48d10d4288ae0ea8078b771f5", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8h__dep__incl.md5 b/docs/html/led__strip__rmt__encoder_8h__dep__incl.md5 new file mode 100644 index 0000000..2e50382 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h__dep__incl.md5 @@ -0,0 +1 @@ +503fc3faf47e920ae452874a6e9c9078 \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8h__dep__incl.svg b/docs/html/led__strip__rmt__encoder_8h__dep__incl.svg new file mode 100644 index 0000000..344cafb --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h__dep__incl.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +led_strip_rmt_encoder.h + + +Node1 + + +led_strip_rmt_encoder.h + + + + + +Node2 + + +led_strip_rmt_dev.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_encoder.c + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8h__dep__incl_org.svg b/docs/html/led__strip__rmt__encoder_8h__dep__incl_org.svg new file mode 100644 index 0000000..c8a1bdd --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h__dep__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +led_strip_rmt_encoder.h + + +Node1 + + +led_strip_rmt_encoder.h + + + + + +Node2 + + +led_strip_rmt_dev.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_rmt_encoder.c + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8h__incl.md5 b/docs/html/led__strip__rmt__encoder_8h__incl.md5 new file mode 100644 index 0000000..b719859 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h__incl.md5 @@ -0,0 +1 @@ +9e544ba95e11ed783c65050228bc6568 \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8h__incl.svg b/docs/html/led__strip__rmt__encoder_8h__incl.svg new file mode 100644 index 0000000..15d79f7 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h__incl.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + +led_strip_rmt_encoder.h + + +Node1 + + +led_strip_rmt_encoder.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +driver/rmt_encoder.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_types.h + + + + + +Node1->Node4 + + + + + + + + +Node4->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8h__incl_org.svg b/docs/html/led__strip__rmt__encoder_8h__incl_org.svg new file mode 100644 index 0000000..7d5fbff --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h__incl_org.svg @@ -0,0 +1,84 @@ + + + + + + +led_strip_rmt_encoder.h + + +Node1 + + +led_strip_rmt_encoder.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +driver/rmt_encoder.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +led_strip_types.h + + + + + +Node1->Node4 + + + + + + + + +Node4->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph.md5 b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph.md5 new file mode 100644 index 0000000..3c2663a --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph.md5 @@ -0,0 +1 @@ +3129ed8896c99518b10a2d25891ee3ab \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph.svg b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph.svg new file mode 100644 index 0000000..db561b4 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + +rmt_new_led_strip_encoder + + +Node1 + + +rmt_new_led_strip_encoder + + + + + +Node2 + + +rmt_del_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +rmt_encode_led_strip + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +rmt_led_strip_encoder +_reset + + + + + +Node1->Node4 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph_org.svg b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph_org.svg new file mode 100644 index 0000000..b3e2038 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_cgraph_org.svg @@ -0,0 +1,76 @@ + + + + + + +rmt_new_led_strip_encoder + + +Node1 + + +rmt_new_led_strip_encoder + + + + + +Node2 + + +rmt_del_led_strip_encoder + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +rmt_encode_led_strip + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +rmt_led_strip_encoder +_reset + + + + + +Node1->Node4 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph.md5 b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph.md5 new file mode 100644 index 0000000..d5fe5f3 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph.md5 @@ -0,0 +1 @@ +3f486919224ae9d431149350f8bc9f3b \ No newline at end of file diff --git a/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph.svg b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph.svg new file mode 100644 index 0000000..e00241b --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +rmt_new_led_strip_encoder + + +Node1 + + +rmt_new_led_strip_encoder + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph_org.svg b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph_org.svg new file mode 100644 index 0000000..c737d48 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h_a367480d48d10d4288ae0ea8078b771f5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +rmt_new_led_strip_encoder + + +Node1 + + +rmt_new_led_strip_encoder + + + + + +Node2 + + +led_strip_new_rmt_device + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__rmt__encoder_8h_source.html b/docs/html/led__strip__rmt__encoder_8h_source.html new file mode 100644 index 0000000..0a50736 --- /dev/null +++ b/docs/html/led__strip__rmt__encoder_8h_source.html @@ -0,0 +1,140 @@ + + + + + + + +ESP-IDF Firmware: led_strip_rmt_encoder.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_rmt_encoder.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#pragma once
+
7
+
8#include <stdint.h>
+
9#include "driver/rmt_encoder.h"
+
10#include "led_strip_types.h"
+
11
+
12#ifdef __cplusplus
+
13extern "C" {
+
14#endif
+
15
+
+
19typedef struct {
+
20 uint32_t resolution;
+ + +
+
23
+
34esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder);
+
35
+
36#ifdef __cplusplus
+
37}
+
38#endif
+
int esp_err_t
Definition esp_err.h:21
+
esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder)
Create RMT encoder for encoding LED strip pixels into RMT symbols.
+ +
led_model_t
LED strip model.
+
Type of led strip encoder configuration.
+ + +
+
+
+ + + + diff --git a/docs/html/led__strip__spi_8h.html b/docs/html/led__strip__spi_8h.html new file mode 100644 index 0000000..4ffe5d2 --- /dev/null +++ b/docs/html/led__strip__spi_8h.html @@ -0,0 +1,319 @@ + + + + + + + +ESP-IDF Firmware: led_strip_spi.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_spi.h File Reference
+
+
+
#include <stdint.h>
+#include "esp_err.h"
+#include "driver/spi_master.h"
+#include "led_strip_types.h"
+
+Include dependency graph for led_strip_spi.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  led_strip_spi_config_t
 LED Strip SPI specific configuration. More...
+ + + +

+Functions

esp_err_t led_strip_new_spi_device (const led_strip_config_t *led_config, const led_strip_spi_config_t *spi_config, led_strip_handle_t *ret_strip)
 Create LED strip based on SPI MOSI channel.
+

Function Documentation

+ +

◆ led_strip_new_spi_device()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t led_strip_new_spi_device (const led_strip_config_t * led_config,
const led_strip_spi_config_t * spi_config,
led_strip_handle_t * ret_strip )
+
+ +

Create LED strip based on SPI MOSI channel.

+
Note
Although only the MOSI line is used for generating the signal, the whole SPI bus can't be used for other purposes.
+
Parameters
+ + + + +
led_configLED strip configuration
spi_configSPI specific configuration
ret_stripReturned LED strip handle
+
+
+
Returns
    +
  • ESP_OK: create LED strip handle successfully
  • +
  • ESP_ERR_INVALID_ARG: create LED strip handle failed because of invalid argument
  • +
  • ESP_ERR_NOT_SUPPORTED: create LED strip handle failed because of unsupported configuration
  • +
  • ESP_ERR_NO_MEM: create LED strip handle failed because of out of memory
  • +
  • ESP_FAIL: create LED strip handle failed because some other error
  • +
+
+ +

Definition at line 123 of file led_strip_spi_dev.c.

+
124{
+
125 led_strip_spi_obj *spi_strip = NULL;
+
126 esp_err_t ret = ESP_OK;
+
127 ESP_GOTO_ON_FALSE(led_config && spi_config && ret_strip, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
+
128 ESP_GOTO_ON_FALSE(led_config->led_pixel_format < LED_PIXEL_FORMAT_INVALID, ESP_ERR_INVALID_ARG, err, TAG, "invalid led_pixel_format");
+
129 uint8_t bytes_per_pixel = 3;
+
130 if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRBW) {
+
131 bytes_per_pixel = 4;
+
132 } else if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRB) {
+
133 bytes_per_pixel = 3;
+
134 } else {
+
135 assert(false);
+
136 }
+
137 uint32_t mem_caps = MALLOC_CAP_DEFAULT;
+
138 if (spi_config->flags.with_dma) {
+
139 // DMA buffer must be placed in internal SRAM
+
140 mem_caps |= MALLOC_CAP_INTERNAL | MALLOC_CAP_DMA;
+
141 }
+
142 spi_strip = heap_caps_calloc(1, sizeof(led_strip_spi_obj) + led_config->max_leds * bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE, mem_caps);
+
143
+
144 ESP_GOTO_ON_FALSE(spi_strip, ESP_ERR_NO_MEM, err, TAG, "no mem for spi strip");
+
145
+
146 spi_strip->spi_host = spi_config->spi_bus;
+
147 // for backward compatibility, if the user does not set the clk_src, use the default value
+
148 spi_clock_source_t clk_src = SPI_CLK_SRC_DEFAULT;
+
149 if (spi_config->clk_src) {
+
150 clk_src = spi_config->clk_src;
+
151 }
+
152
+
153 spi_bus_config_t spi_bus_cfg = {
+
154 .mosi_io_num = led_config->strip_gpio_num,
+
155 //Only use MOSI to generate the signal, set -1 when other pins are not used.
+
156 .miso_io_num = -1,
+
157 .sclk_io_num = -1,
+
158 .quadwp_io_num = -1,
+
159 .quadhd_io_num = -1,
+
160 .max_transfer_sz = led_config->max_leds * bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE,
+
161 };
+
162 ESP_GOTO_ON_ERROR(spi_bus_initialize(spi_strip->spi_host, &spi_bus_cfg, spi_config->flags.with_dma ? SPI_DMA_CH_AUTO : SPI_DMA_DISABLED), err, TAG, "create SPI bus failed");
+
163
+
164 if (led_config->flags.invert_out == true) {
+
165 esp_rom_gpio_connect_out_signal(led_config->strip_gpio_num, spi_periph_signal[spi_strip->spi_host].spid_out, true, false);
+
166 }
+
167
+
168 spi_device_interface_config_t spi_dev_cfg = {
+
169 .clock_source = clk_src,
+
170 .command_bits = 0,
+
171 .address_bits = 0,
+
172 .dummy_bits = 0,
+
173 .clock_speed_hz = LED_STRIP_SPI_DEFAULT_RESOLUTION,
+
174 .mode = 0,
+
175 //set -1 when CS is not used
+
176 .spics_io_num = -1,
+ +
178 };
+
179
+
180 ESP_GOTO_ON_ERROR(spi_bus_add_device(spi_strip->spi_host, &spi_dev_cfg, &spi_strip->spi_device), err, TAG, "Failed to add spi device");
+
181 //ensure the reset time is enough
+
182 esp_rom_delay_us(10);
+
183 int clock_resolution_khz = 0;
+
184 spi_device_get_actual_freq(spi_strip->spi_device, &clock_resolution_khz);
+
185 // TODO: ideally we should decide the SPI_BYTES_PER_COLOR_BYTE by the real clock resolution
+
186 // But now, let's fixed the resolution, the downside is, we don't support a clock source whose frequency is not multiple of LED_STRIP_SPI_DEFAULT_RESOLUTION
+
187 // clock_resolution between 2.2MHz to 2.8MHz is supported
+
188 ESP_GOTO_ON_FALSE((clock_resolution_khz < LED_STRIP_SPI_DEFAULT_RESOLUTION / 1000 + 300) && (clock_resolution_khz > LED_STRIP_SPI_DEFAULT_RESOLUTION / 1000 - 300), ESP_ERR_NOT_SUPPORTED, err,
+
189 TAG, "unsupported clock resolution:%dKHz", clock_resolution_khz);
+
190
+
191 spi_strip->bytes_per_pixel = bytes_per_pixel;
+
192 spi_strip->strip_len = led_config->max_leds;
+ + + +
196 spi_strip->base.clear = led_strip_spi_clear;
+
197 spi_strip->base.del = led_strip_spi_del;
+
198
+
199 *ret_strip = &spi_strip->base;
+
200 return ESP_OK;
+
201err:
+
202 if (spi_strip) {
+
203 if (spi_strip->spi_device) {
+
204 spi_bus_remove_device(spi_strip->spi_device);
+
205 }
+
206 if (spi_strip->spi_host) {
+
207 spi_bus_free(spi_strip->spi_host);
+
208 }
+
209 free(spi_strip);
+
210 }
+
211 return ret;
+
212}
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static esp_err_t led_strip_spi_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
static esp_err_t led_strip_spi_refresh(led_strip_t *strip)
+
static esp_err_t led_strip_spi_set_pixel_rgbw(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
+
#define SPI_BYTES_PER_COLOR_BYTE
+
#define LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE
+
static esp_err_t led_strip_spi_clear(led_strip_t *strip)
+
static esp_err_t led_strip_spi_del(led_strip_t *strip)
+
#define LED_STRIP_SPI_DEFAULT_RESOLUTION
+
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
static const char * TAG
Definition main/main.c:31
+
led_pixel_format_t led_pixel_format
+ + + +
struct led_strip_config_t::@145177150267040163336221331365072267202117177200 flags
+
spi_host_device_t spi_bus
+
struct led_strip_spi_config_t::@242107237043306072174300312177366152113164360267 flags
+
spi_clock_source_t clk_src
+ + + +
spi_device_handle_t spi_device
+
spi_host_device_t spi_host
+ + +
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+

References led_strip_spi_obj::base, led_strip_spi_obj::bytes_per_pixel, led_strip_t::clear, led_strip_spi_config_t::clk_src, led_strip_t::del, ESP_GOTO_ON_ERROR, ESP_OK, led_strip_config_t::flags, led_strip_spi_config_t::flags, led_strip_config_t::invert_out, led_strip_config_t::led_pixel_format, LED_PIXEL_FORMAT_GRB, LED_PIXEL_FORMAT_GRBW, LED_PIXEL_FORMAT_INVALID, led_strip_spi_clear(), LED_STRIP_SPI_DEFAULT_RESOLUTION, LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE, led_strip_spi_del(), led_strip_spi_refresh(), led_strip_spi_set_pixel(), led_strip_spi_set_pixel_rgbw(), led_strip_config_t::max_leds, led_strip_t::refresh, led_strip_t::set_pixel, led_strip_t::set_pixel_rgbw, led_strip_spi_config_t::spi_bus, SPI_BYTES_PER_COLOR_BYTE, led_strip_spi_obj::spi_device, led_strip_spi_obj::spi_host, led_strip_config_t::strip_gpio_num, led_strip_spi_obj::strip_len, TAG, and led_strip_spi_config_t::with_dma.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__spi_8h.js b/docs/html/led__strip__spi_8h.js new file mode 100644 index 0000000..2368627 --- /dev/null +++ b/docs/html/led__strip__spi_8h.js @@ -0,0 +1,5 @@ +var led__strip__spi_8h = +[ + [ "led_strip_spi_config_t", "structled__strip__spi__config__t.html", "structled__strip__spi__config__t" ], + [ "led_strip_new_spi_device", "led__strip__spi_8h.html#a882736e7c17e812637a7c49e1b116c64", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__spi_8h__dep__incl.md5 b/docs/html/led__strip__spi_8h__dep__incl.md5 new file mode 100644 index 0000000..c7550ba --- /dev/null +++ b/docs/html/led__strip__spi_8h__dep__incl.md5 @@ -0,0 +1 @@ +9c17e9f0e42550b4f970a99972b91eff \ No newline at end of file diff --git a/docs/html/led__strip__spi_8h__dep__incl.svg b/docs/html/led__strip__spi_8h__dep__incl.svg new file mode 100644 index 0000000..687c3fd --- /dev/null +++ b/docs/html/led__strip__spi_8h__dep__incl.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +led_strip_spi.h + + +Node1 + + +led_strip_spi.h + + + + + +Node2 + + +led_strip.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_api.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_dev.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_dev_idf4.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +led_strip_spi_dev.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +main.c + + + + + +Node2->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi_8h__dep__incl_org.svg b/docs/html/led__strip__spi_8h__dep__incl_org.svg new file mode 100644 index 0000000..21fb9d7 --- /dev/null +++ b/docs/html/led__strip__spi_8h__dep__incl_org.svg @@ -0,0 +1,129 @@ + + + + + + +led_strip_spi.h + + +Node1 + + +led_strip_spi.h + + + + + +Node2 + + +led_strip.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_api.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +led_strip_rmt_dev.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_dev_idf4.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +led_strip_spi_dev.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +main.c + + + + + +Node2->Node7 + + + + + + + + diff --git a/docs/html/led__strip__spi_8h__incl.md5 b/docs/html/led__strip__spi_8h__incl.md5 new file mode 100644 index 0000000..e06fb37 --- /dev/null +++ b/docs/html/led__strip__spi_8h__incl.md5 @@ -0,0 +1 @@ +b5d182ef903058f92b61b41e2e146c0a \ No newline at end of file diff --git a/docs/html/led__strip__spi_8h__incl.svg b/docs/html/led__strip__spi_8h__incl.svg new file mode 100644 index 0000000..890bdc7 --- /dev/null +++ b/docs/html/led__strip__spi_8h__incl.svg @@ -0,0 +1,146 @@ + + + + + + + + + + + + +led_strip_spi.h + + +Node1 + + +led_strip_spi.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +driver/spi_master.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_types.h + + + + + +Node1->Node6 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi_8h__incl_org.svg b/docs/html/led__strip__spi_8h__incl_org.svg new file mode 100644 index 0000000..086e809 --- /dev/null +++ b/docs/html/led__strip__spi_8h__incl_org.svg @@ -0,0 +1,120 @@ + + + + + + +led_strip_spi.h + + +Node1 + + +led_strip_spi.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +esp_err.h + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +driver/spi_master.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_types.h + + + + + +Node1->Node6 + + + + + + + + +Node4 + + +stdlib.h + + + + + +Node3->Node4 + + + + + + + + +Node6->Node2 + + + + + + + + diff --git a/docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph.md5 b/docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph.md5 new file mode 100644 index 0000000..7dee2a8 --- /dev/null +++ b/docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph.md5 @@ -0,0 +1 @@ +81ba1cea102c0124a97bb1604427a854 \ No newline at end of file diff --git a/docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph.svg b/docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph.svg new file mode 100644 index 0000000..6b6cd56 --- /dev/null +++ b/docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + +led_strip_new_spi_device + + +Node1 + + +led_strip_new_spi_device + + + + + +Node2 + + +led_strip_spi_clear + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +led_strip_spi_refresh + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_del + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_spi_set_pixel + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +__led_strip_spi_bit + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph_org.svg b/docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph_org.svg new file mode 100644 index 0000000..963c485 --- /dev/null +++ b/docs/html/led__strip__spi_8h_a882736e7c17e812637a7c49e1b116c64_cgraph_org.svg @@ -0,0 +1,156 @@ + + + + + + +led_strip_new_spi_device + + +Node1 + + +led_strip_new_spi_device + + + + + +Node2 + + +led_strip_spi_clear + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +led_strip_spi_refresh + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_del + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_spi_set_pixel + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +__led_strip_spi_bit + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + diff --git a/docs/html/led__strip__spi_8h_source.html b/docs/html/led__strip__spi_8h_source.html new file mode 100644 index 0000000..e58e646 --- /dev/null +++ b/docs/html/led__strip__spi_8h_source.html @@ -0,0 +1,147 @@ + + + + + + + +ESP-IDF Firmware: led_strip_spi.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_spi.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#pragma once
+
7
+
8#include <stdint.h>
+
9#include "esp_err.h"
+
10#include "driver/spi_master.h"
+
11#include "led_strip_types.h"
+
12
+
13#ifdef __cplusplus
+
14extern "C" {
+
15#endif
+
16
+
+
20typedef struct {
+
21 spi_clock_source_t clk_src;
+
22 spi_host_device_t spi_bus;
+
23 struct {
+
24 uint32_t with_dma: 1;
+
25 } flags;
+ +
+
27
+ +
43
+
44#ifdef __cplusplus
+
45}
+
46#endif
+ +
int esp_err_t
Definition esp_err.h:21
+
esp_err_t led_strip_new_spi_device(const led_strip_config_t *led_config, const led_strip_spi_config_t *spi_config, led_strip_handle_t *ret_strip)
Create LED strip based on SPI MOSI channel.
+ +
struct led_strip_t * led_strip_handle_t
LED strip handle.
+
LED Strip Configuration.
+
LED Strip SPI specific configuration.
+
spi_host_device_t spi_bus
+
spi_clock_source_t clk_src
+ +
+
+
+ + + + diff --git a/docs/html/led__strip__spi__dev_8c.html b/docs/html/led__strip__spi__dev_8c.html new file mode 100644 index 0000000..251800c --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c.html @@ -0,0 +1,793 @@ + + + + + + + +ESP-IDF Firmware: led_strip_spi_dev.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_spi_dev.c File Reference
+
+
+
#include <stdlib.h>
+#include <string.h>
+#include <sys/cdefs.h>
+#include "esp_heap_caps.h"
+#include "esp_log.h"
+#include "esp_check.h"
+#include "esp_rom_gpio.h"
+#include "soc/spi_periph.h"
+#include "led_strip.h"
+#include "led_strip_interface.h"
+#include "hal/spi_hal.h"
+
+Include dependency graph for led_strip_spi_dev.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Data Structures

struct  led_strip_spi_obj
+ + + + + +

+Macros

#define LED_STRIP_SPI_DEFAULT_RESOLUTION   (2.5 * 1000 * 1000)
#define LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE   4
#define SPI_BYTES_PER_COLOR_BYTE   3
#define SPI_BITS_PER_COLOR_BYTE   (SPI_BYTES_PER_COLOR_BYTE * 8)
+ + + + + + + + + +

+Functions

static void __led_strip_spi_bit (uint8_t data, uint8_t *buf)
static esp_err_t led_strip_spi_set_pixel (led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
static esp_err_t led_strip_spi_set_pixel_rgbw (led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
static esp_err_t led_strip_spi_refresh (led_strip_t *strip)
static esp_err_t led_strip_spi_clear (led_strip_t *strip)
static esp_err_t led_strip_spi_del (led_strip_t *strip)
esp_err_t led_strip_new_spi_device (const led_strip_config_t *led_config, const led_strip_spi_config_t *spi_config, led_strip_handle_t *ret_strip)
 Create LED strip based on SPI MOSI channel.
+ + +

+Variables

static const char * TAG = "led_strip_spi"
+

Macro Definition Documentation

+ +

◆ LED_STRIP_SPI_DEFAULT_RESOLUTION

+ +
+
+ + + + +
#define LED_STRIP_SPI_DEFAULT_RESOLUTION   (2.5 * 1000 * 1000)
+
+ +

Definition at line 18 of file led_strip_spi_dev.c.

+ +

Referenced by led_strip_new_spi_device().

+ +
+
+ +

◆ LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE

+ +
+
+ + + + +
#define LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE   4
+
+ +

Definition at line 19 of file led_strip_spi_dev.c.

+ +

Referenced by led_strip_new_spi_device().

+ +
+
+ +

◆ SPI_BITS_PER_COLOR_BYTE

+ +
+
+ + + + +
#define SPI_BITS_PER_COLOR_BYTE   (SPI_BYTES_PER_COLOR_BYTE * 8)
+
+ +

Definition at line 22 of file led_strip_spi_dev.c.

+ +

Referenced by led_strip_spi_refresh().

+ +
+
+ +

◆ SPI_BYTES_PER_COLOR_BYTE

+ +
+
+ + + + +
#define SPI_BYTES_PER_COLOR_BYTE   3
+
+
+

Function Documentation

+ +

◆ __led_strip_spi_bit()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void __led_strip_spi_bit (uint8_t data,
uint8_t * buf )
+
+static
+
+ +

Definition at line 36 of file led_strip_spi_dev.c.

+
37{
+
38 // Each color of 1 bit is represented by 3 bits of SPI, low_level:100 ,high_level:110
+
39 // So a color byte occupies 3 bytes of SPI.
+
40 *(buf + 2) |= data & BIT(0) ? BIT(2) | BIT(1) : BIT(2);
+
41 *(buf + 2) |= data & BIT(1) ? BIT(5) | BIT(4) : BIT(5);
+
42 *(buf + 2) |= data & BIT(2) ? BIT(7) : 0x00;
+
43 *(buf + 1) |= BIT(0);
+
44 *(buf + 1) |= data & BIT(3) ? BIT(3) | BIT(2) : BIT(3);
+
45 *(buf + 1) |= data & BIT(4) ? BIT(6) | BIT(5) : BIT(6);
+
46 *(buf + 0) |= data & BIT(5) ? BIT(1) | BIT(0) : BIT(1);
+
47 *(buf + 0) |= data & BIT(6) ? BIT(4) | BIT(3) : BIT(4);
+
48 *(buf + 0) |= data & BIT(7) ? BIT(7) | BIT(6) : BIT(7);
+
49}
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References data.

+ +

Referenced by led_strip_spi_clear(), led_strip_spi_set_pixel(), and led_strip_spi_set_pixel_rgbw().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_new_spi_device()

+ +
+
+ + + + + + + + + + + + + + + + +
esp_err_t led_strip_new_spi_device (const led_strip_config_t * led_config,
const led_strip_spi_config_t * spi_config,
led_strip_handle_t * ret_strip )
+
+ +

Create LED strip based on SPI MOSI channel.

+
Note
Although only the MOSI line is used for generating the signal, the whole SPI bus can't be used for other purposes.
+
Parameters
+ + + + +
led_configLED strip configuration
spi_configSPI specific configuration
ret_stripReturned LED strip handle
+
+
+
Returns
    +
  • ESP_OK: create LED strip handle successfully
  • +
  • ESP_ERR_INVALID_ARG: create LED strip handle failed because of invalid argument
  • +
  • ESP_ERR_NOT_SUPPORTED: create LED strip handle failed because of unsupported configuration
  • +
  • ESP_ERR_NO_MEM: create LED strip handle failed because of out of memory
  • +
  • ESP_FAIL: create LED strip handle failed because some other error
  • +
+
+ +

Definition at line 123 of file led_strip_spi_dev.c.

+
124{
+
125 led_strip_spi_obj *spi_strip = NULL;
+
126 esp_err_t ret = ESP_OK;
+
127 ESP_GOTO_ON_FALSE(led_config && spi_config && ret_strip, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
+
128 ESP_GOTO_ON_FALSE(led_config->led_pixel_format < LED_PIXEL_FORMAT_INVALID, ESP_ERR_INVALID_ARG, err, TAG, "invalid led_pixel_format");
+
129 uint8_t bytes_per_pixel = 3;
+
130 if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRBW) {
+
131 bytes_per_pixel = 4;
+
132 } else if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRB) {
+
133 bytes_per_pixel = 3;
+
134 } else {
+
135 assert(false);
+
136 }
+
137 uint32_t mem_caps = MALLOC_CAP_DEFAULT;
+
138 if (spi_config->flags.with_dma) {
+
139 // DMA buffer must be placed in internal SRAM
+
140 mem_caps |= MALLOC_CAP_INTERNAL | MALLOC_CAP_DMA;
+
141 }
+
142 spi_strip = heap_caps_calloc(1, sizeof(led_strip_spi_obj) + led_config->max_leds * bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE, mem_caps);
+
143
+
144 ESP_GOTO_ON_FALSE(spi_strip, ESP_ERR_NO_MEM, err, TAG, "no mem for spi strip");
+
145
+
146 spi_strip->spi_host = spi_config->spi_bus;
+
147 // for backward compatibility, if the user does not set the clk_src, use the default value
+
148 spi_clock_source_t clk_src = SPI_CLK_SRC_DEFAULT;
+
149 if (spi_config->clk_src) {
+
150 clk_src = spi_config->clk_src;
+
151 }
+
152
+
153 spi_bus_config_t spi_bus_cfg = {
+
154 .mosi_io_num = led_config->strip_gpio_num,
+
155 //Only use MOSI to generate the signal, set -1 when other pins are not used.
+
156 .miso_io_num = -1,
+
157 .sclk_io_num = -1,
+
158 .quadwp_io_num = -1,
+
159 .quadhd_io_num = -1,
+
160 .max_transfer_sz = led_config->max_leds * bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE,
+
161 };
+
162 ESP_GOTO_ON_ERROR(spi_bus_initialize(spi_strip->spi_host, &spi_bus_cfg, spi_config->flags.with_dma ? SPI_DMA_CH_AUTO : SPI_DMA_DISABLED), err, TAG, "create SPI bus failed");
+
163
+
164 if (led_config->flags.invert_out == true) {
+
165 esp_rom_gpio_connect_out_signal(led_config->strip_gpio_num, spi_periph_signal[spi_strip->spi_host].spid_out, true, false);
+
166 }
+
167
+
168 spi_device_interface_config_t spi_dev_cfg = {
+
169 .clock_source = clk_src,
+
170 .command_bits = 0,
+
171 .address_bits = 0,
+
172 .dummy_bits = 0,
+
173 .clock_speed_hz = LED_STRIP_SPI_DEFAULT_RESOLUTION,
+
174 .mode = 0,
+
175 //set -1 when CS is not used
+
176 .spics_io_num = -1,
+ +
178 };
+
179
+
180 ESP_GOTO_ON_ERROR(spi_bus_add_device(spi_strip->spi_host, &spi_dev_cfg, &spi_strip->spi_device), err, TAG, "Failed to add spi device");
+
181 //ensure the reset time is enough
+
182 esp_rom_delay_us(10);
+
183 int clock_resolution_khz = 0;
+
184 spi_device_get_actual_freq(spi_strip->spi_device, &clock_resolution_khz);
+
185 // TODO: ideally we should decide the SPI_BYTES_PER_COLOR_BYTE by the real clock resolution
+
186 // But now, let's fixed the resolution, the downside is, we don't support a clock source whose frequency is not multiple of LED_STRIP_SPI_DEFAULT_RESOLUTION
+
187 // clock_resolution between 2.2MHz to 2.8MHz is supported
+
188 ESP_GOTO_ON_FALSE((clock_resolution_khz < LED_STRIP_SPI_DEFAULT_RESOLUTION / 1000 + 300) && (clock_resolution_khz > LED_STRIP_SPI_DEFAULT_RESOLUTION / 1000 - 300), ESP_ERR_NOT_SUPPORTED, err,
+
189 TAG, "unsupported clock resolution:%dKHz", clock_resolution_khz);
+
190
+
191 spi_strip->bytes_per_pixel = bytes_per_pixel;
+
192 spi_strip->strip_len = led_config->max_leds;
+ + + +
196 spi_strip->base.clear = led_strip_spi_clear;
+
197 spi_strip->base.del = led_strip_spi_del;
+
198
+
199 *ret_strip = &spi_strip->base;
+
200 return ESP_OK;
+
201err:
+
202 if (spi_strip) {
+
203 if (spi_strip->spi_device) {
+
204 spi_bus_remove_device(spi_strip->spi_device);
+
205 }
+
206 if (spi_strip->spi_host) {
+
207 spi_bus_free(spi_strip->spi_host);
+
208 }
+
209 free(spi_strip);
+
210 }
+
211 return ret;
+
212}
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+
static esp_err_t led_strip_spi_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
static esp_err_t led_strip_spi_refresh(led_strip_t *strip)
+
static esp_err_t led_strip_spi_set_pixel_rgbw(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
+
#define SPI_BYTES_PER_COLOR_BYTE
+
#define LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE
+
static esp_err_t led_strip_spi_clear(led_strip_t *strip)
+
static esp_err_t led_strip_spi_del(led_strip_t *strip)
+
#define LED_STRIP_SPI_DEFAULT_RESOLUTION
+
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
static const char * TAG
Definition main/main.c:31
+
led_pixel_format_t led_pixel_format
+ + + +
struct led_strip_config_t::@145177150267040163336221331365072267202117177200 flags
+
spi_host_device_t spi_bus
+
struct led_strip_spi_config_t::@242107237043306072174300312177366152113164360267 flags
+
spi_clock_source_t clk_src
+ + + +
spi_device_handle_t spi_device
+
spi_host_device_t spi_host
+ + +
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
+

References led_strip_spi_obj::base, led_strip_spi_obj::bytes_per_pixel, led_strip_t::clear, led_strip_spi_config_t::clk_src, led_strip_t::del, ESP_GOTO_ON_ERROR, ESP_OK, led_strip_config_t::flags, led_strip_spi_config_t::flags, led_strip_config_t::invert_out, led_strip_config_t::led_pixel_format, LED_PIXEL_FORMAT_GRB, LED_PIXEL_FORMAT_GRBW, LED_PIXEL_FORMAT_INVALID, led_strip_spi_clear(), LED_STRIP_SPI_DEFAULT_RESOLUTION, LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE, led_strip_spi_del(), led_strip_spi_refresh(), led_strip_spi_set_pixel(), led_strip_spi_set_pixel_rgbw(), led_strip_config_t::max_leds, led_strip_t::refresh, led_strip_t::set_pixel, led_strip_t::set_pixel_rgbw, led_strip_spi_config_t::spi_bus, SPI_BYTES_PER_COLOR_BYTE, led_strip_spi_obj::spi_device, led_strip_spi_obj::spi_host, led_strip_config_t::strip_gpio_num, led_strip_spi_obj::strip_len, TAG, and led_strip_spi_config_t::with_dma.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_spi_clear()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t led_strip_spi_clear (led_strip_t * strip)
+
+static
+
+ +

Definition at line 98 of file led_strip_spi_dev.c.

+
99{
+
100 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
101 //Write zero to turn off all leds
+
102 memset(spi_strip->pixel_buf, 0, spi_strip->strip_len * spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE);
+
103 uint8_t *buf = spi_strip->pixel_buf;
+
104 for (int index = 0; index < spi_strip->strip_len * spi_strip->bytes_per_pixel; index++) {
+
105 __led_strip_spi_bit(0, buf);
+ +
107 }
+
108
+
109 return led_strip_spi_refresh(strip);
+
110}
+
static void __led_strip_spi_bit(uint8_t data, uint8_t *buf)
+ +
+

References __led_strip_spi_bit(), led_strip_spi_obj::bytes_per_pixel, led_strip_spi_refresh(), led_strip_spi_obj::pixel_buf, SPI_BYTES_PER_COLOR_BYTE, and led_strip_spi_obj::strip_len.

+ +

Referenced by led_strip_new_spi_device().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_spi_del()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t led_strip_spi_del (led_strip_t * strip)
+
+static
+
+ +

Definition at line 112 of file led_strip_spi_dev.c.

+
113{
+
114 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
115
+
116 ESP_RETURN_ON_ERROR(spi_bus_remove_device(spi_strip->spi_device), TAG, "delete spi device failed");
+
117 ESP_RETURN_ON_ERROR(spi_bus_free(spi_strip->spi_host), TAG, "free spi bus failed");
+
118
+
119 free(spi_strip);
+
120 return ESP_OK;
+
121}
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
+

References ESP_OK, ESP_RETURN_ON_ERROR, led_strip_spi_obj::spi_device, led_strip_spi_obj::spi_host, and TAG.

+ +

Referenced by led_strip_new_spi_device().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_spi_refresh()

+ +
+
+ + + + + +
+ + + + + + + +
esp_err_t led_strip_spi_refresh (led_strip_t * strip)
+
+static
+
+ +

Definition at line 84 of file led_strip_spi_dev.c.

+
85{
+
86 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
87 spi_transaction_t tx_conf;
+
88 memset(&tx_conf, 0, sizeof(tx_conf));
+
89
+
90 tx_conf.length = spi_strip->strip_len * spi_strip->bytes_per_pixel * SPI_BITS_PER_COLOR_BYTE;
+
91 tx_conf.tx_buffer = spi_strip->pixel_buf;
+
92 tx_conf.rx_buffer = NULL;
+
93 ESP_RETURN_ON_ERROR(spi_device_transmit(spi_strip->spi_device, &tx_conf), TAG, "transmit pixels by SPI failed");
+
94
+
95 return ESP_OK;
+
96}
+
#define SPI_BITS_PER_COLOR_BYTE
+
+

References led_strip_spi_obj::bytes_per_pixel, ESP_OK, ESP_RETURN_ON_ERROR, led_strip_spi_obj::pixel_buf, SPI_BITS_PER_COLOR_BYTE, led_strip_spi_obj::spi_device, led_strip_spi_obj::strip_len, and TAG.

+ +

Referenced by led_strip_new_spi_device(), and led_strip_spi_clear().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_spi_set_pixel()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_spi_set_pixel (led_strip_t * strip,
uint32_t index,
uint32_t red,
uint32_t green,
uint32_t blue )
+
+static
+
+ +

Definition at line 51 of file led_strip_spi_dev.c.

+
52{
+
53 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
54 ESP_RETURN_ON_FALSE(index < spi_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of maximum number of LEDs");
+
55 // LED_PIXEL_FORMAT_GRB takes 72bits(9bytes)
+
56 uint32_t start = index * spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE;
+
57 memset(spi_strip->pixel_buf + start, 0, spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE);
+
58 __led_strip_spi_bit(green, &spi_strip->pixel_buf[start]);
+ +
60 __led_strip_spi_bit(blue, &spi_strip->pixel_buf[start + SPI_BYTES_PER_COLOR_BYTE * 2]);
+
61 if (spi_strip->bytes_per_pixel > 3) {
+
62 __led_strip_spi_bit(0, &spi_strip->pixel_buf[start + SPI_BYTES_PER_COLOR_BYTE * 3]);
+
63 }
+
64 return ESP_OK;
+
65}
+
+

References __led_strip_spi_bit(), led_strip_spi_obj::bytes_per_pixel, ESP_OK, led_strip_spi_obj::pixel_buf, SPI_BYTES_PER_COLOR_BYTE, and TAG.

+ +

Referenced by led_strip_new_spi_device().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ led_strip_spi_set_pixel_rgbw()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
esp_err_t led_strip_spi_set_pixel_rgbw (led_strip_t * strip,
uint32_t index,
uint32_t red,
uint32_t green,
uint32_t blue,
uint32_t white )
+
+static
+
+ +

Definition at line 67 of file led_strip_spi_dev.c.

+
68{
+
69 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
70 ESP_RETURN_ON_FALSE(index < spi_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of maximum number of LEDs");
+
71 ESP_RETURN_ON_FALSE(spi_strip->bytes_per_pixel == 4, ESP_ERR_INVALID_ARG, TAG, "wrong LED pixel format, expected 4 bytes per pixel");
+
72 // LED_PIXEL_FORMAT_GRBW takes 96bits(12bytes)
+
73 uint32_t start = index * spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE;
+
74 // SK6812 component order is GRBW
+
75 memset(spi_strip->pixel_buf + start, 0, spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE);
+
76 __led_strip_spi_bit(green, &spi_strip->pixel_buf[start]);
+ +
78 __led_strip_spi_bit(blue, &spi_strip->pixel_buf[start + SPI_BYTES_PER_COLOR_BYTE * 2]);
+
79 __led_strip_spi_bit(white, &spi_strip->pixel_buf[start + SPI_BYTES_PER_COLOR_BYTE * 3]);
+
80
+
81 return ESP_OK;
+
82}
+
+

References __led_strip_spi_bit(), led_strip_spi_obj::bytes_per_pixel, ESP_OK, led_strip_spi_obj::pixel_buf, SPI_BYTES_PER_COLOR_BYTE, and TAG.

+ +

Referenced by led_strip_new_spi_device().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "led_strip_spi"
+
+static
+
+ +

Definition at line 24 of file led_strip_spi_dev.c.

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__spi__dev_8c.js b/docs/html/led__strip__spi__dev_8c.js new file mode 100644 index 0000000..e6cce6b --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c.js @@ -0,0 +1,16 @@ +var led__strip__spi__dev_8c = +[ + [ "led_strip_spi_obj", "structled__strip__spi__obj.html", "structled__strip__spi__obj" ], + [ "LED_STRIP_SPI_DEFAULT_RESOLUTION", "led__strip__spi__dev_8c.html#afe73d55fb522cf8ad0d345ba6fde4a07", null ], + [ "LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE", "led__strip__spi__dev_8c.html#a8da18641ac007a6e87c491143d5e6db1", null ], + [ "SPI_BITS_PER_COLOR_BYTE", "led__strip__spi__dev_8c.html#a57619da5e5195e8b89b7bbe010035ed1", null ], + [ "SPI_BYTES_PER_COLOR_BYTE", "led__strip__spi__dev_8c.html#a6901dac2f4d3d466379fd7043b27746f", null ], + [ "__led_strip_spi_bit", "led__strip__spi__dev_8c.html#a557165b754285fb3870a899741bc5d1d", null ], + [ "led_strip_new_spi_device", "led__strip__spi__dev_8c.html#a882736e7c17e812637a7c49e1b116c64", null ], + [ "led_strip_spi_clear", "led__strip__spi__dev_8c.html#aa06313226ef4c32e05fe3e4e325c1396", null ], + [ "led_strip_spi_del", "led__strip__spi__dev_8c.html#afc065616f662fcb84cd48543733c6fdf", null ], + [ "led_strip_spi_refresh", "led__strip__spi__dev_8c.html#a1035da5f57add0f39c87fc8bc59e6d99", null ], + [ "led_strip_spi_set_pixel", "led__strip__spi__dev_8c.html#a0530f8436f00e5fe5bcdabc001d8299b", null ], + [ "led_strip_spi_set_pixel_rgbw", "led__strip__spi__dev_8c.html#a39dffdc9ec1cbfa495ea4053048f2846", null ], + [ "TAG", "led__strip__spi__dev_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c__incl.md5 b/docs/html/led__strip__spi__dev_8c__incl.md5 new file mode 100644 index 0000000..e139c4e --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c__incl.md5 @@ -0,0 +1 @@ +cf9c60644bf4504c60d2072f5e9d7f63 \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c__incl.svg b/docs/html/led__strip__spi__dev_8c__incl.svg new file mode 100644 index 0000000..d9779b3 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c__incl.svg @@ -0,0 +1,545 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +led_strip_spi_dev.c + + +Node1 + + +led_strip_spi_dev.c + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sys/cdefs.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_heap_caps.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_log.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_check.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_rom_gpio.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +soc/spi_periph.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +led_strip.h + + + + + +Node1->Node10 + + + + + + + + +Node19 + + +led_strip_interface.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +hal/spi_hal.h + + + + + +Node1->Node20 + + + + + + + + +Node6->Node2 + + + + + + + + +Node11 + + +stdint.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_err.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +led_strip_rmt.h + + + + + +Node10->Node13 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node10->Node15 + + + + + + + + +Node17 + + +led_strip_spi.h + + + + + +Node10->Node17 + + + + + + + + +Node12->Node2 + + + + + + + + +Node13->Node11 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +led_strip_types.h + + + + + +Node13->Node14 + + + + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +driver/rmt_types.h + + + + + +Node13->Node16 + + + + + + + + +Node14->Node11 + + + + + + + + +Node17->Node11 + + + + + + + + +Node17->Node12 + + + + + + + + +Node17->Node14 + + + + + + + + +Node18 + + +driver/spi_master.h + + + + + +Node17->Node18 + + + + + + + + +Node19->Node11 + + + + + + + + +Node19->Node12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c__incl_org.svg b/docs/html/led__strip__spi__dev_8c__incl_org.svg new file mode 100644 index 0000000..747f33f --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c__incl_org.svg @@ -0,0 +1,462 @@ + + + + + + +led_strip_spi_dev.c + + +Node1 + + +led_strip_spi_dev.c + + + + + +Node2 + + +stdlib.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +sys/cdefs.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +esp_heap_caps.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +esp_log.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_check.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_rom_gpio.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +soc/spi_periph.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +led_strip.h + + + + + +Node1->Node10 + + + + + + + + +Node19 + + +led_strip_interface.h + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +hal/spi_hal.h + + + + + +Node1->Node20 + + + + + + + + +Node6->Node2 + + + + + + + + +Node11 + + +stdint.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +esp_err.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +led_strip_rmt.h + + + + + +Node10->Node13 + + + + + + + + +Node15 + + +esp_idf_version.h + + + + + +Node10->Node15 + + + + + + + + +Node17 + + +led_strip_spi.h + + + + + +Node10->Node17 + + + + + + + + +Node12->Node2 + + + + + + + + +Node13->Node11 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +led_strip_types.h + + + + + +Node13->Node14 + + + + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +driver/rmt_types.h + + + + + +Node13->Node16 + + + + + + + + +Node14->Node11 + + + + + + + + +Node17->Node11 + + + + + + + + +Node17->Node12 + + + + + + + + +Node17->Node14 + + + + + + + + +Node18 + + +driver/spi_master.h + + + + + +Node17->Node18 + + + + + + + + +Node19->Node11 + + + + + + + + +Node19->Node12 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph.md5 b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph.md5 new file mode 100644 index 0000000..070069c --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph.md5 @@ -0,0 +1 @@ +546865b93b2a402d02363d8861e391e2 \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph.svg b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph.svg new file mode 100644 index 0000000..5555f2f --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_spi_set_pixel + + +Node1 + + +led_strip_spi_set_pixel + + + + + +Node2 + + +__led_strip_spi_bit + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph_org.svg b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph_org.svg new file mode 100644 index 0000000..c302a42 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_spi_set_pixel + + +Node1 + + +led_strip_spi_set_pixel + + + + + +Node2 + + +__led_strip_spi_bit + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph.md5 b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph.md5 new file mode 100644 index 0000000..a191edd --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph.md5 @@ -0,0 +1 @@ +71bd003c2a2cda453230b45cac13a1b0 \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph.svg b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph.svg new file mode 100644 index 0000000..7151569 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_spi_set_pixel + + +Node1 + + +led_strip_spi_set_pixel + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph_org.svg b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph_org.svg new file mode 100644 index 0000000..97345dc --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a0530f8436f00e5fe5bcdabc001d8299b_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_spi_set_pixel + + +Node1 + + +led_strip_spi_set_pixel + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph.md5 b/docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph.md5 new file mode 100644 index 0000000..4cc33f8 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph.md5 @@ -0,0 +1 @@ +0371a2eb53a4b037b565c512df123b18 \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph.svg b/docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph.svg new file mode 100644 index 0000000..7914793 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + +led_strip_spi_refresh + + +Node1 + + +led_strip_spi_refresh + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_spi_clear + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph_org.svg b/docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph_org.svg new file mode 100644 index 0000000..dcf219e --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a1035da5f57add0f39c87fc8bc59e6d99_icgraph_org.svg @@ -0,0 +1,66 @@ + + + + + + +led_strip_spi_refresh + + +Node1 + + +led_strip_spi_refresh + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_spi_clear + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph.md5 b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph.md5 new file mode 100644 index 0000000..fe1da31 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph.md5 @@ -0,0 +1 @@ +50e103ee08df0a037b4b5d337874e93a \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph.svg b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph.svg new file mode 100644 index 0000000..58ea9aa --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_spi_set_pixel_rgbw + + +Node1 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node2 + + +__led_strip_spi_bit + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph_org.svg b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph_org.svg new file mode 100644 index 0000000..1908126 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_spi_set_pixel_rgbw + + +Node1 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node2 + + +__led_strip_spi_bit + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph.md5 b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph.md5 new file mode 100644 index 0000000..1f56d53 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph.md5 @@ -0,0 +1 @@ +db487bc55293bc508312ea1e4ac0610c \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph.svg b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph.svg new file mode 100644 index 0000000..71bc5ac --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_spi_set_pixel_rgbw + + +Node1 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph_org.svg b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph_org.svg new file mode 100644 index 0000000..11a590d --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a39dffdc9ec1cbfa495ea4053048f2846_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_spi_set_pixel_rgbw + + +Node1 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph.md5 b/docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph.md5 new file mode 100644 index 0000000..f4b3587 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph.md5 @@ -0,0 +1 @@ +074f52463d55627f5cc36ef8a9ec60d3 \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph.svg b/docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph.svg new file mode 100644 index 0000000..0532e9c --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + +__led_strip_spi_bit + + +Node1 + + +__led_strip_spi_bit + + + + + +Node2 + + +led_strip_spi_clear + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +led_strip_spi_set_pixel + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +led_strip_new_spi_device + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph_org.svg b/docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph_org.svg new file mode 100644 index 0000000..9bbb6d6 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a557165b754285fb3870a899741bc5d1d_icgraph_org.svg @@ -0,0 +1,111 @@ + + + + + + +__led_strip_spi_bit + + +Node1 + + +__led_strip_spi_bit + + + + + +Node2 + + +led_strip_spi_clear + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +led_strip_spi_set_pixel + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +led_strip_new_spi_device + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5->Node3 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph.md5 b/docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph.md5 new file mode 100644 index 0000000..7dee2a8 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph.md5 @@ -0,0 +1 @@ +81ba1cea102c0124a97bb1604427a854 \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph.svg b/docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph.svg new file mode 100644 index 0000000..6b6cd56 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + +led_strip_new_spi_device + + +Node1 + + +led_strip_new_spi_device + + + + + +Node2 + + +led_strip_spi_clear + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +led_strip_spi_refresh + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_del + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_spi_set_pixel + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +__led_strip_spi_bit + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph_org.svg b/docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph_org.svg new file mode 100644 index 0000000..963c485 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_a882736e7c17e812637a7c49e1b116c64_cgraph_org.svg @@ -0,0 +1,156 @@ + + + + + + +led_strip_new_spi_device + + +Node1 + + +led_strip_new_spi_device + + + + + +Node2 + + +led_strip_spi_clear + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +led_strip_spi_refresh + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +led_strip_spi_del + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +led_strip_spi_set_pixel + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +led_strip_spi_set_pixel_rgbw + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +__led_strip_spi_bit + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7->Node3 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph.md5 b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph.md5 new file mode 100644 index 0000000..c47ebb1 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph.md5 @@ -0,0 +1 @@ +1933b951c003b733c49c32c21b5fc9b8 \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph.svg b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph.svg new file mode 100644 index 0000000..ef4eb34 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +led_strip_spi_clear + + +Node1 + + +led_strip_spi_clear + + + + + +Node2 + + +__led_strip_spi_bit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_spi_refresh + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph_org.svg b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph_org.svg new file mode 100644 index 0000000..13e21ec --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_cgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +led_strip_spi_clear + + +Node1 + + +led_strip_spi_clear + + + + + +Node2 + + +__led_strip_spi_bit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_spi_refresh + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph.md5 b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph.md5 new file mode 100644 index 0000000..7c15a53 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph.md5 @@ -0,0 +1 @@ +7e3167ccb32c1162c9672f60f3622272 \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph.svg b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph.svg new file mode 100644 index 0000000..fcbb203 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_spi_clear + + +Node1 + + +led_strip_spi_clear + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph_org.svg b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph_org.svg new file mode 100644 index 0000000..dd3528c --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_aa06313226ef4c32e05fe3e4e325c1396_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_spi_clear + + +Node1 + + +led_strip_spi_clear + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph.md5 b/docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph.md5 new file mode 100644 index 0000000..927a8d8 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph.md5 @@ -0,0 +1 @@ +7c829308010facfe9fa40cbc1bd6d1c7 \ No newline at end of file diff --git a/docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph.svg b/docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph.svg new file mode 100644 index 0000000..f79dbf4 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_spi_del + + +Node1 + + +led_strip_spi_del + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph_org.svg b/docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph_org.svg new file mode 100644 index 0000000..fe06363 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_afc065616f662fcb84cd48543733c6fdf_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_spi_del + + +Node1 + + +led_strip_spi_del + + + + + +Node2 + + +led_strip_new_spi_device + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__spi__dev_8c_source.html b/docs/html/led__strip__spi__dev_8c_source.html new file mode 100644 index 0000000..80e23e5 --- /dev/null +++ b/docs/html/led__strip__spi__dev_8c_source.html @@ -0,0 +1,382 @@ + + + + + + + +ESP-IDF Firmware: led_strip_spi_dev.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_spi_dev.c
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#include <stdlib.h>
+
7#include <string.h>
+
8#include <sys/cdefs.h>
+
9#include "esp_heap_caps.h"
+
10#include "esp_log.h"
+
11#include "esp_check.h"
+
12#include "esp_rom_gpio.h"
+
13#include "soc/spi_periph.h"
+
14#include "led_strip.h"
+
15#include "led_strip_interface.h"
+
16#include "hal/spi_hal.h"
+
17
+
18#define LED_STRIP_SPI_DEFAULT_RESOLUTION (2.5 * 1000 * 1000) // 2.5MHz resolution
+
19#define LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE 4
+
20
+
21#define SPI_BYTES_PER_COLOR_BYTE 3
+
22#define SPI_BITS_PER_COLOR_BYTE (SPI_BYTES_PER_COLOR_BYTE * 8)
+
23
+
24static const char *TAG = "led_strip_spi";
+
25
+
+
26typedef struct {
+ +
28 spi_host_device_t spi_host;
+
29 spi_device_handle_t spi_device;
+
30 uint32_t strip_len;
+ +
32 uint8_t pixel_buf[];
+ +
+
34
+
35// please make sure to zero-initialize the buf before calling this function
+
+
36static void __led_strip_spi_bit(uint8_t data, uint8_t *buf)
+
37{
+
38 // Each color of 1 bit is represented by 3 bits of SPI, low_level:100 ,high_level:110
+
39 // So a color byte occupies 3 bytes of SPI.
+
40 *(buf + 2) |= data & BIT(0) ? BIT(2) | BIT(1) : BIT(2);
+
41 *(buf + 2) |= data & BIT(1) ? BIT(5) | BIT(4) : BIT(5);
+
42 *(buf + 2) |= data & BIT(2) ? BIT(7) : 0x00;
+
43 *(buf + 1) |= BIT(0);
+
44 *(buf + 1) |= data & BIT(3) ? BIT(3) | BIT(2) : BIT(3);
+
45 *(buf + 1) |= data & BIT(4) ? BIT(6) | BIT(5) : BIT(6);
+
46 *(buf + 0) |= data & BIT(5) ? BIT(1) | BIT(0) : BIT(1);
+
47 *(buf + 0) |= data & BIT(6) ? BIT(4) | BIT(3) : BIT(4);
+
48 *(buf + 0) |= data & BIT(7) ? BIT(7) | BIT(6) : BIT(7);
+
49}
+
+
50
+
+
51static esp_err_t led_strip_spi_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
52{
+
53 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
54 ESP_RETURN_ON_FALSE(index < spi_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of maximum number of LEDs");
+
55 // LED_PIXEL_FORMAT_GRB takes 72bits(9bytes)
+
56 uint32_t start = index * spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE;
+
57 memset(spi_strip->pixel_buf + start, 0, spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE);
+
58 __led_strip_spi_bit(green, &spi_strip->pixel_buf[start]);
+ +
60 __led_strip_spi_bit(blue, &spi_strip->pixel_buf[start + SPI_BYTES_PER_COLOR_BYTE * 2]);
+
61 if (spi_strip->bytes_per_pixel > 3) {
+
62 __led_strip_spi_bit(0, &spi_strip->pixel_buf[start + SPI_BYTES_PER_COLOR_BYTE * 3]);
+
63 }
+
64 return ESP_OK;
+
65}
+
+
66
+
+
67static esp_err_t led_strip_spi_set_pixel_rgbw(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
+
68{
+
69 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
70 ESP_RETURN_ON_FALSE(index < spi_strip->strip_len, ESP_ERR_INVALID_ARG, TAG, "index out of maximum number of LEDs");
+
71 ESP_RETURN_ON_FALSE(spi_strip->bytes_per_pixel == 4, ESP_ERR_INVALID_ARG, TAG, "wrong LED pixel format, expected 4 bytes per pixel");
+
72 // LED_PIXEL_FORMAT_GRBW takes 96bits(12bytes)
+
73 uint32_t start = index * spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE;
+
74 // SK6812 component order is GRBW
+
75 memset(spi_strip->pixel_buf + start, 0, spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE);
+
76 __led_strip_spi_bit(green, &spi_strip->pixel_buf[start]);
+ +
78 __led_strip_spi_bit(blue, &spi_strip->pixel_buf[start + SPI_BYTES_PER_COLOR_BYTE * 2]);
+
79 __led_strip_spi_bit(white, &spi_strip->pixel_buf[start + SPI_BYTES_PER_COLOR_BYTE * 3]);
+
80
+
81 return ESP_OK;
+
82}
+
+
83
+
+ +
85{
+
86 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
87 spi_transaction_t tx_conf;
+
88 memset(&tx_conf, 0, sizeof(tx_conf));
+
89
+
90 tx_conf.length = spi_strip->strip_len * spi_strip->bytes_per_pixel * SPI_BITS_PER_COLOR_BYTE;
+
91 tx_conf.tx_buffer = spi_strip->pixel_buf;
+
92 tx_conf.rx_buffer = NULL;
+
93 ESP_RETURN_ON_ERROR(spi_device_transmit(spi_strip->spi_device, &tx_conf), TAG, "transmit pixels by SPI failed");
+
94
+
95 return ESP_OK;
+
96}
+
+
97
+
+ +
99{
+
100 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
101 //Write zero to turn off all leds
+
102 memset(spi_strip->pixel_buf, 0, spi_strip->strip_len * spi_strip->bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE);
+
103 uint8_t *buf = spi_strip->pixel_buf;
+
104 for (int index = 0; index < spi_strip->strip_len * spi_strip->bytes_per_pixel; index++) {
+
105 __led_strip_spi_bit(0, buf);
+ +
107 }
+
108
+
109 return led_strip_spi_refresh(strip);
+
110}
+
+
111
+
+ +
113{
+
114 led_strip_spi_obj *spi_strip = __containerof(strip, led_strip_spi_obj, base);
+
115
+
116 ESP_RETURN_ON_ERROR(spi_bus_remove_device(spi_strip->spi_device), TAG, "delete spi device failed");
+
117 ESP_RETURN_ON_ERROR(spi_bus_free(spi_strip->spi_host), TAG, "free spi bus failed");
+
118
+
119 free(spi_strip);
+
120 return ESP_OK;
+
121}
+
+
122
+
+ +
124{
+
125 led_strip_spi_obj *spi_strip = NULL;
+
126 esp_err_t ret = ESP_OK;
+
127 ESP_GOTO_ON_FALSE(led_config && spi_config && ret_strip, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument");
+
128 ESP_GOTO_ON_FALSE(led_config->led_pixel_format < LED_PIXEL_FORMAT_INVALID, ESP_ERR_INVALID_ARG, err, TAG, "invalid led_pixel_format");
+
129 uint8_t bytes_per_pixel = 3;
+
130 if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRBW) {
+
131 bytes_per_pixel = 4;
+
132 } else if (led_config->led_pixel_format == LED_PIXEL_FORMAT_GRB) {
+
133 bytes_per_pixel = 3;
+
134 } else {
+
135 assert(false);
+
136 }
+
137 uint32_t mem_caps = MALLOC_CAP_DEFAULT;
+
138 if (spi_config->flags.with_dma) {
+
139 // DMA buffer must be placed in internal SRAM
+
140 mem_caps |= MALLOC_CAP_INTERNAL | MALLOC_CAP_DMA;
+
141 }
+
142 spi_strip = heap_caps_calloc(1, sizeof(led_strip_spi_obj) + led_config->max_leds * bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE, mem_caps);
+
143
+
144 ESP_GOTO_ON_FALSE(spi_strip, ESP_ERR_NO_MEM, err, TAG, "no mem for spi strip");
+
145
+
146 spi_strip->spi_host = spi_config->spi_bus;
+
147 // for backward compatibility, if the user does not set the clk_src, use the default value
+
148 spi_clock_source_t clk_src = SPI_CLK_SRC_DEFAULT;
+
149 if (spi_config->clk_src) {
+
150 clk_src = spi_config->clk_src;
+
151 }
+
152
+
153 spi_bus_config_t spi_bus_cfg = {
+
154 .mosi_io_num = led_config->strip_gpio_num,
+
155 //Only use MOSI to generate the signal, set -1 when other pins are not used.
+
156 .miso_io_num = -1,
+
157 .sclk_io_num = -1,
+
158 .quadwp_io_num = -1,
+
159 .quadhd_io_num = -1,
+
160 .max_transfer_sz = led_config->max_leds * bytes_per_pixel * SPI_BYTES_PER_COLOR_BYTE,
+
161 };
+
162 ESP_GOTO_ON_ERROR(spi_bus_initialize(spi_strip->spi_host, &spi_bus_cfg, spi_config->flags.with_dma ? SPI_DMA_CH_AUTO : SPI_DMA_DISABLED), err, TAG, "create SPI bus failed");
+
163
+
164 if (led_config->flags.invert_out == true) {
+
165 esp_rom_gpio_connect_out_signal(led_config->strip_gpio_num, spi_periph_signal[spi_strip->spi_host].spid_out, true, false);
+
166 }
+
167
+
168 spi_device_interface_config_t spi_dev_cfg = {
+
169 .clock_source = clk_src,
+
170 .command_bits = 0,
+
171 .address_bits = 0,
+
172 .dummy_bits = 0,
+
173 .clock_speed_hz = LED_STRIP_SPI_DEFAULT_RESOLUTION,
+
174 .mode = 0,
+
175 //set -1 when CS is not used
+
176 .spics_io_num = -1,
+ +
178 };
+
179
+
180 ESP_GOTO_ON_ERROR(spi_bus_add_device(spi_strip->spi_host, &spi_dev_cfg, &spi_strip->spi_device), err, TAG, "Failed to add spi device");
+
181 //ensure the reset time is enough
+
182 esp_rom_delay_us(10);
+
183 int clock_resolution_khz = 0;
+
184 spi_device_get_actual_freq(spi_strip->spi_device, &clock_resolution_khz);
+
185 // TODO: ideally we should decide the SPI_BYTES_PER_COLOR_BYTE by the real clock resolution
+
186 // But now, let's fixed the resolution, the downside is, we don't support a clock source whose frequency is not multiple of LED_STRIP_SPI_DEFAULT_RESOLUTION
+
187 // clock_resolution between 2.2MHz to 2.8MHz is supported
+
188 ESP_GOTO_ON_FALSE((clock_resolution_khz < LED_STRIP_SPI_DEFAULT_RESOLUTION / 1000 + 300) && (clock_resolution_khz > LED_STRIP_SPI_DEFAULT_RESOLUTION / 1000 - 300), ESP_ERR_NOT_SUPPORTED, err,
+
189 TAG, "unsupported clock resolution:%dKHz", clock_resolution_khz);
+
190
+
191 spi_strip->bytes_per_pixel = bytes_per_pixel;
+
192 spi_strip->strip_len = led_config->max_leds;
+ + + +
196 spi_strip->base.clear = led_strip_spi_clear;
+
197 spi_strip->base.del = led_strip_spi_del;
+
198
+
199 *ret_strip = &spi_strip->base;
+
200 return ESP_OK;
+
201err:
+
202 if (spi_strip) {
+
203 if (spi_strip->spi_device) {
+
204 spi_bus_remove_device(spi_strip->spi_device);
+
205 }
+
206 if (spi_strip->spi_host) {
+
207 spi_bus_free(spi_strip->spi_host);
+
208 }
+
209 free(spi_strip);
+
210 }
+
211 return ret;
+
212}
+
+
#define ESP_RETURN_ON_ERROR(x, log_tag, format,...)
+
#define ESP_GOTO_ON_ERROR(x, goto_tag, log_tag, format,...)
+
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ + + +
static esp_err_t led_strip_spi_set_pixel(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
+
static esp_err_t led_strip_spi_refresh(led_strip_t *strip)
+
static esp_err_t led_strip_spi_set_pixel_rgbw(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
+
static void __led_strip_spi_bit(uint8_t data, uint8_t *buf)
+
#define SPI_BITS_PER_COLOR_BYTE
+
#define SPI_BYTES_PER_COLOR_BYTE
+
esp_err_t led_strip_new_spi_device(const led_strip_config_t *led_config, const led_strip_spi_config_t *spi_config, led_strip_handle_t *ret_strip)
Create LED strip based on SPI MOSI channel.
+
#define LED_STRIP_SPI_DEFAULT_TRANS_QUEUE_SIZE
+
static esp_err_t led_strip_spi_clear(led_strip_t *strip)
+
static esp_err_t led_strip_spi_del(led_strip_t *strip)
+
#define LED_STRIP_SPI_DEFAULT_RESOLUTION
+
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
struct led_strip_t * led_strip_handle_t
LED strip handle.
+
static const char * TAG
Definition main/main.c:31
+
LED Strip Configuration.
+
led_pixel_format_t led_pixel_format
+ + + +
struct led_strip_config_t::@145177150267040163336221331365072267202117177200 flags
+
LED Strip SPI specific configuration.
+
spi_host_device_t spi_bus
+
struct led_strip_spi_config_t::@242107237043306072174300312177366152113164360267 flags
+
spi_clock_source_t clk_src
+ + + +
spi_device_handle_t spi_device
+ +
spi_host_device_t spi_host
+ + +
LED strip interface definition.
+
esp_err_t(* refresh)(led_strip_t *strip)
Refresh memory colors to LEDs.
+
esp_err_t(* set_pixel)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t(* del)(led_strip_t *strip)
Free LED strip resources.
+
esp_err_t(* set_pixel_rgbw)(led_strip_t *strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue, uint32_t white)
Set RGBW for a specific pixel. Similar to set_pixel but also set the white component.
+
esp_err_t(* clear)(led_strip_t *strip)
Clear LED strip (turn off all LEDs).
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+
+
+ + + + diff --git a/docs/html/led__strip__types_8h.html b/docs/html/led__strip__types_8h.html new file mode 100644 index 0000000..5391006 --- /dev/null +++ b/docs/html/led__strip__types_8h.html @@ -0,0 +1,241 @@ + + + + + + + +ESP-IDF Firmware: led_strip_types.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_types.h File Reference
+
+
+
#include <stdint.h>
+
+Include dependency graph for led_strip_types.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  led_strip_config_t
 LED Strip Configuration. More...
+ + + +

+Typedefs

typedef struct led_strip_tled_strip_handle_t
 LED strip handle.
+ + + + + +

+Enumerations

enum  led_pixel_format_t { LED_PIXEL_FORMAT_GRB +, LED_PIXEL_FORMAT_GRBW +, LED_PIXEL_FORMAT_INVALID + }
 LED strip pixel format. More...
enum  led_model_t { LED_MODEL_WS2812 +, LED_MODEL_SK6812 +, LED_MODEL_INVALID + }
 LED strip model. More...
+

Typedef Documentation

+ +

◆ led_strip_handle_t

+ +
+
+ + + + +
typedef struct led_strip_t* led_strip_handle_t
+
+ +

LED strip handle.

+ +

Definition at line 36 of file led_strip_types.h.

+ +
+
+

Enumeration Type Documentation

+ +

◆ led_model_t

+ +
+
+ + + + +
enum led_model_t
+
+ +

LED strip model.

+
Note
Different led model may have different timing parameters, so we need to distinguish them.
+ + + + +
Enumerator
LED_MODEL_WS2812 

LED strip model: WS2812

+
LED_MODEL_SK6812 

LED strip model: SK6812

+
LED_MODEL_INVALID 

Invalid LED strip model

+
+ +

Definition at line 27 of file led_strip_types.h.

+
27 {
+ + + + +
led_model_t
LED strip model.
+
@ LED_MODEL_WS2812
+
@ LED_MODEL_SK6812
+
@ LED_MODEL_INVALID
+
+
+
+ +

◆ led_pixel_format_t

+ +
+
+ + + + +
enum led_pixel_format_t
+
+ +

LED strip pixel format.

+ + + + +
Enumerator
LED_PIXEL_FORMAT_GRB 

Pixel format: GRB

+
LED_PIXEL_FORMAT_GRBW 

Pixel format: GRBW

+
LED_PIXEL_FORMAT_INVALID 

Invalid pixel format

+
+ +

Definition at line 17 of file led_strip_types.h.

+
17 {
+ + + + +
led_pixel_format_t
LED strip pixel format.
+
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
+
+
+
+
+ +
+ + + + diff --git a/docs/html/led__strip__types_8h.js b/docs/html/led__strip__types_8h.js new file mode 100644 index 0000000..a81ee80 --- /dev/null +++ b/docs/html/led__strip__types_8h.js @@ -0,0 +1,15 @@ +var led__strip__types_8h = +[ + [ "led_strip_config_t", "structled__strip__config__t.html", "structled__strip__config__t" ], + [ "led_strip_handle_t", "led__strip__types_8h.html#ad657ffc84034956011592dd970d5a9eb", null ], + [ "led_model_t", "led__strip__types_8h.html#a96acac66c087508b5ea980682d2e4994", [ + [ "LED_MODEL_WS2812", "led__strip__types_8h.html#a96acac66c087508b5ea980682d2e4994a42955c414a09a4df3d1105feb0572073", null ], + [ "LED_MODEL_SK6812", "led__strip__types_8h.html#a96acac66c087508b5ea980682d2e4994a5e326bed3c506f67f4a512c60b0ad755", null ], + [ "LED_MODEL_INVALID", "led__strip__types_8h.html#a96acac66c087508b5ea980682d2e4994aa21b3b5245e969c661c5b25a2eddd589", null ] + ] ], + [ "led_pixel_format_t", "led__strip__types_8h.html#acaaef052a3109fca08595f60b14a22f0", [ + [ "LED_PIXEL_FORMAT_GRB", "led__strip__types_8h.html#acaaef052a3109fca08595f60b14a22f0a2a70bdfb6474629ace0ebdf7ec006737", null ], + [ "LED_PIXEL_FORMAT_GRBW", "led__strip__types_8h.html#acaaef052a3109fca08595f60b14a22f0ad6672e717542d6627e5bc41b07c441c5", null ], + [ "LED_PIXEL_FORMAT_INVALID", "led__strip__types_8h.html#acaaef052a3109fca08595f60b14a22f0a6e87ffc4edc9b6be5b35f27f3a0a3d4b", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/led__strip__types_8h__dep__incl.md5 b/docs/html/led__strip__types_8h__dep__incl.md5 new file mode 100644 index 0000000..cc73c62 --- /dev/null +++ b/docs/html/led__strip__types_8h__dep__incl.md5 @@ -0,0 +1 @@ +02016381df33ffa5cd3737672ad151f0 \ No newline at end of file diff --git a/docs/html/led__strip__types_8h__dep__incl.svg b/docs/html/led__strip__types_8h__dep__incl.svg new file mode 100644 index 0000000..fd0c2fa --- /dev/null +++ b/docs/html/led__strip__types_8h__dep__incl.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +led_strip_types.h + + +Node1 + + +led_strip_types.h + + + + + +Node2 + + +led_strip_rmt.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +led_strip_rmt_encoder.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +led_strip_spi.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +led_strip.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +led_strip_api.c + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_dev.c + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +led_strip_rmt_dev_idf4.c + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +led_strip_spi_dev.c + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +main.c + + + + + +Node3->Node8 + + + + + + + + +Node9->Node5 + + + + + + + + +Node10 + + +led_strip_rmt_encoder.c + + + + + +Node9->Node10 + + + + + + + + +Node11->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/led__strip__types_8h__dep__incl_org.svg b/docs/html/led__strip__types_8h__dep__incl_org.svg new file mode 100644 index 0000000..03cf625 --- /dev/null +++ b/docs/html/led__strip__types_8h__dep__incl_org.svg @@ -0,0 +1,219 @@ + + + + + + +led_strip_types.h + + +Node1 + + +led_strip_types.h + + + + + +Node2 + + +led_strip_rmt.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +led_strip_rmt_encoder.h + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +led_strip_spi.h + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +led_strip.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +led_strip_api.c + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +led_strip_rmt_dev.c + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +led_strip_rmt_dev_idf4.c + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +led_strip_spi_dev.c + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +main.c + + + + + +Node3->Node8 + + + + + + + + +Node9->Node5 + + + + + + + + +Node10 + + +led_strip_rmt_encoder.c + + + + + +Node9->Node10 + + + + + + + + +Node11->Node3 + + + + + + + + diff --git a/docs/html/led__strip__types_8h__incl.md5 b/docs/html/led__strip__types_8h__incl.md5 new file mode 100644 index 0000000..6b872cb --- /dev/null +++ b/docs/html/led__strip__types_8h__incl.md5 @@ -0,0 +1 @@ +39665e7240cd8660d1d99730529c0977 \ No newline at end of file diff --git a/docs/html/led__strip__types_8h__incl.svg b/docs/html/led__strip__types_8h__incl.svg new file mode 100644 index 0000000..d2b656a --- /dev/null +++ b/docs/html/led__strip__types_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +led_strip_types.h + + +Node1 + + +led_strip_types.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/led__strip__types_8h__incl_org.svg b/docs/html/led__strip__types_8h__incl_org.svg new file mode 100644 index 0000000..ab62f50 --- /dev/null +++ b/docs/html/led__strip__types_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +led_strip_types.h + + +Node1 + + +led_strip_types.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/led__strip__types_8h_source.html b/docs/html/led__strip__types_8h_source.html new file mode 100644 index 0000000..844c338 --- /dev/null +++ b/docs/html/led__strip__types_8h_source.html @@ -0,0 +1,169 @@ + + + + + + + +ESP-IDF Firmware: led_strip_types.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
led_strip_types.h
+
+
+Go to the documentation of this file.
1/*
+
2 * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+
3 *
+
4 * SPDX-License-Identifier: Apache-2.0
+
5 */
+
6#pragma once
+
7
+
8#include <stdint.h>
+
9
+
10#ifdef __cplusplus
+
11extern "C" {
+
12#endif
+
13
+ +
22
+ +
32
+ +
37
+
+
41typedef struct {
+ +
43 uint32_t max_leds;
+ + +
46
+
47 struct {
+
48 uint32_t invert_out: 1;
+
49 } flags;
+ +
+
51
+
52#ifdef __cplusplus
+
53}
+
54#endif
+
led_model_t
LED strip model.
+
@ LED_MODEL_WS2812
+
@ LED_MODEL_SK6812
+
@ LED_MODEL_INVALID
+
led_pixel_format_t
LED strip pixel format.
+
@ LED_PIXEL_FORMAT_GRB
+
@ LED_PIXEL_FORMAT_INVALID
+
@ LED_PIXEL_FORMAT_GRBW
+
struct led_strip_t * led_strip_handle_t
LED strip handle.
+
LED Strip Configuration.
+
led_pixel_format_t led_pixel_format
+ + + + +
LED strip interface definition.
+
+
+
+ + + + diff --git a/docs/html/main_2main_8c.html b/docs/html/main_2main_8c.html new file mode 100644 index 0000000..25cb584 --- /dev/null +++ b/docs/html/main_2main_8c.html @@ -0,0 +1,2161 @@ + + + + + + + +ESP-IDF Firmware: main.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main.c File Reference
+
+
+
#include <assert.h>
+#include <math.h>
+#include <stdint.h>
+#include <stdio.h>
+#include "FreeRTOS.h"
+#include "esp_adc/adc_cali.h"
+#include "esp_adc/adc_cali_scheme.h"
+#include "esp_adc/adc_continuous.h"
+#include "esp_adc/adc_filter.h"
+#include "esp_attr.h"
+#include "esp_crc.h"
+#include "esp_dsp.h"
+#include "esp_err.h"
+#include "esp_heap_caps.h"
+#include "esp_log.h"
+#include "esp_timer.h"
+#include "freertos/queue.h"
+#include "freertos/semphr.h"
+#include "freertos/task.h"
+#include "led_strip.h"
+#include "string.h"
+#include "tinyusb.h"
+#include "tusb_cdc_acm.h"
+
+Include dependency graph for main/main.c:
+
+
+
+
+

Go to the source code of this file.

+ + + +

+Data Structures

struct  frame_wire_t
+ + + + + + + + + + + + + + + + + + + + +

+Macros

#define OPTIMIZE_O2
#define FFT_SIZE   CONFIG_ADC_FFT_SIZE
#define ADC_SPS   CONFIG_ADC_FS
#define CHANNELS   2
#define SAMPLE_MAX   4096
#define LED_STRIP_RMT_RES_HZ   (10 * 1000 * 1000)
#define SPIKE_DB_THRESHOLD   20.0f
#define SPIKE_RATIO_THRESHOLD   8.0f
#define SPIKE_MIN_AVG_LINEAR   1e-7f
#define FRAME_MAGIC_0   0xF0
#define FRAME_MAGIC_1   0x0D
#define FRAME_MAGIC_2   0xF0
#define FRAME_MAGIC_3   0x0D
#define FRAME_VERSION   0x02
#define FRAME_HEADER_SIZE   9u
#define FRAME_PAYLOAD_SIZE   (sizeof(frame_payload_t))
#define FRAME_TOTAL_SIZE   (FRAME_HEADER_SIZE + FRAME_PAYLOAD_SIZE + 4u)
#define CDC_TX_TASK_STACK_SIZE   4096
#define ADC_TASK_STACK_SIZE   8192
+ + + + + + + + + + + + + + + + + + +

+Functions

struct __attribute__ ((packed))
static void write_u16_le (uint8_t *dst, uint16_t value)
static void write_u32_le (uint8_t *dst, uint32_t value)
static void write_u64_le (uint8_t *dst, uint64_t value)
static uint32_t frame_crc32 (const uint8_t *data, size_t len)
static void build_frame (frame_wire_t *out, const float *data, const char label[4], uint64_t t_ms, uint32_t sps, uint16_t seq)
static bool safe_cdcacm_write_flush (tinyusb_cdcacm_itf_t port, int max_retries)
static void cdc_tx_task (void *arg)
bool adc_calibration_init (adc_unit_t unit, adc_atten_t atten)
static float sample_to_volts (uint16_t raw, bool calibrated)
static float sample_to_centered (uint16_t raw, bool calibrated, int midpoint_mv)
static void apply_window (float *buf)
static void perform_fft (float *buf)
static void apply_complex_cutoff (float *buf, uint32_t sps)
static adc_atten_t cfg_atten (void)
static void adc_fft_task (void *arg)
void app_main (void)
+ + + + + + + + + + + + +

+Variables

static const char * TAG = "adc_fft"
static float * ch0 = NULL
static float * ch1 = NULL
static float * win = NULL
static adc_cali_handle_t cali_handle
 frame_payload_t
static QueueHandle_t g_frameq
static uint16_t g_seq
static tinyusb_cdcacm_itf_t g_data_port = TINYUSB_CDC_ACM_0
static TaskHandle_t g_cdc_task_handle
static TaskHandle_t g_adc_task_handle
+

Macro Definition Documentation

+ +

◆ ADC_SPS

+ +
+
+ + + + +
#define ADC_SPS   CONFIG_ADC_FS
+
+ +

Definition at line 40 of file main/main.c.

+ +

Referenced by adc_fft_task().

+ +
+
+ +

◆ ADC_TASK_STACK_SIZE

+ +
+
+ + + + +
#define ADC_TASK_STACK_SIZE   8192
+
+ +

Definition at line 107 of file main/main.c.

+ +

Referenced by app_main().

+ +
+
+ +

◆ CDC_TX_TASK_STACK_SIZE

+ +
+
+ + + + +
#define CDC_TX_TASK_STACK_SIZE   4096
+
+ +

Definition at line 104 of file main/main.c.

+ +

Referenced by app_main().

+ +
+
+ +

◆ CHANNELS

+ +
+
+ + + + +
#define CHANNELS   2
+
+ +

Definition at line 50 of file main/main.c.

+ +

Referenced by adc_fft_task().

+ +
+
+ +

◆ FFT_SIZE

+ +
+
+ + + + +
#define FFT_SIZE   CONFIG_ADC_FFT_SIZE
+
+
+ +

◆ FRAME_HEADER_SIZE

+ +
+
+ + + + +
#define FRAME_HEADER_SIZE   9u
+
+ +

Definition at line 78 of file main/main.c.

+ +

Referenced by build_frame().

+ +
+
+ +

◆ FRAME_MAGIC_0

+ +
+
+ + + + +
#define FRAME_MAGIC_0   0xF0
+
+ +

Definition at line 73 of file main/main.c.

+ +

Referenced by build_frame().

+ +
+
+ +

◆ FRAME_MAGIC_1

+ +
+
+ + + + +
#define FRAME_MAGIC_1   0x0D
+
+ +

Definition at line 74 of file main/main.c.

+ +

Referenced by build_frame().

+ +
+
+ +

◆ FRAME_MAGIC_2

+ +
+
+ + + + +
#define FRAME_MAGIC_2   0xF0
+
+ +

Definition at line 75 of file main/main.c.

+ +

Referenced by build_frame().

+ +
+
+ +

◆ FRAME_MAGIC_3

+ +
+
+ + + + +
#define FRAME_MAGIC_3   0x0D
+
+ +

Definition at line 76 of file main/main.c.

+ +

Referenced by build_frame().

+ +
+
+ +

◆ FRAME_PAYLOAD_SIZE

+ +
+
+ + + + +
#define FRAME_PAYLOAD_SIZE   (sizeof(frame_payload_t))
+
+ +

Definition at line 79 of file main/main.c.

+ +

Referenced by build_frame().

+ +
+
+ +

◆ FRAME_TOTAL_SIZE

+ +
+
+ + + + +
#define FRAME_TOTAL_SIZE   (FRAME_HEADER_SIZE + FRAME_PAYLOAD_SIZE + 4u)
+
+ +

Definition at line 80 of file main/main.c.

+
80#define FRAME_TOTAL_SIZE \
+
81 (FRAME_HEADER_SIZE + FRAME_PAYLOAD_SIZE + 4u) // +4 for CRC32
+
+

Referenced by cdc_tx_task().

+ +
+
+ +

◆ FRAME_VERSION

+ +
+
+ + + + +
#define FRAME_VERSION   0x02
+
+ +

Definition at line 77 of file main/main.c.

+ +

Referenced by build_frame().

+ +
+
+ +

◆ LED_STRIP_RMT_RES_HZ

+ +
+
+ + + + +
#define LED_STRIP_RMT_RES_HZ   (10 * 1000 * 1000)
+
+ +

Definition at line 53 of file main/main.c.

+ +
+
+ +

◆ OPTIMIZE_O2

+ +
+
+ + + + +
#define OPTIMIZE_O2
+
+ +

Definition at line 36 of file main/main.c.

+ +

Referenced by apply_complex_cutoff(), apply_window(), and perform_fft().

+ +
+
+ +

◆ SAMPLE_MAX

+ +
+
+ + + + +
#define SAMPLE_MAX   4096
+
+ +

Definition at line 51 of file main/main.c.

+ +
+
+ +

◆ SPIKE_DB_THRESHOLD

+ +
+
+ + + + +
#define SPIKE_DB_THRESHOLD   20.0f
+
+ +

Definition at line 55 of file main/main.c.

+ +
+
+ +

◆ SPIKE_MIN_AVG_LINEAR

+ +
+
+ + + + +
#define SPIKE_MIN_AVG_LINEAR   1e-7f
+
+ +

Definition at line 57 of file main/main.c.

+ +
+
+ +

◆ SPIKE_RATIO_THRESHOLD

+ +
+
+ + + + +
#define SPIKE_RATIO_THRESHOLD   8.0f
+
+ +

Definition at line 56 of file main/main.c.

+ +
+
+

Function Documentation

+ +

◆ __attribute__()

+ +
+
+ + + + + + + +
struct __attribute__ ((packed) )
+
+ +

Definition at line 63 of file main/main.c.

+
65 {
+
66 uint64_t t_ms;
+
67 uint32_t sps;
+
68 uint32_t fft;
+
69 char label[4];
+
70 float data[FFT_SIZE];
+ +
frame_payload_t
Definition main/main.c:71
+
#define FFT_SIZE
Definition main/main.c:39
+
static float data[128 *2]
Definition test_fft2r.c:34
+
+

References __attribute__(), cali_handle, data, and FFT_SIZE.

+ +

Referenced by __attribute__().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ adc_calibration_init()

+ +
+
+ + + + + + + + + + + +
bool adc_calibration_init (adc_unit_t unit,
adc_atten_t atten )
+
+ +

Definition at line 411 of file main/main.c.

+
411 {
+
412 adc_cali_curve_fitting_config_t cali_config = {
+
413 .unit_id = unit,
+
414 .atten = atten,
+
415 .bitwidth = ADC_BITWIDTH_12,
+
416 };
+
417 if (adc_cali_create_scheme_curve_fitting(&cali_config, &cali_handle) ==
+
418 ESP_OK) {
+
419 ESP_LOGI(TAG, "ADC calibration ready (curve fitting)");
+
420 return true;
+
421 }
+
422 ESP_LOGW(TAG, "ADC calibration not available; raw counts will be used");
+
423 return false;
+
424}
+
#define ESP_OK
Definition esp_err.h:23
+
static const char * TAG
Definition main/main.c:31
+
static adc_cali_handle_t cali_handle
Definition main/main.c:63
+
+

References cali_handle, ESP_OK, and TAG.

+ +

Referenced by adc_fft_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ adc_fft_task()

+ +
+
+ + + + + +
+ + + + + + + +
void adc_fft_task (void * arg)
+
+static
+
+ +

Definition at line 488 of file main/main.c.

+
488 {
+
489 adc_atten_t atten = cfg_atten();
+
490 bool calibrated = adc_calibration_init(ADC_UNIT_1, atten);
+
491 int midpoint_mv = 0;
+
492 if (calibrated) {
+
493 (void)adc_cali_raw_to_voltage(cali_handle, 2048, &midpoint_mv);
+
494 }
+
495
+
496 /* ADC decode diagnostics: validates that DMA words are parsed as expected
+
497 * (unit/channel/bitwidth). If ADC output format mismatches parsing, these
+
498 * counters will look obviously wrong (e.g., few accepted samples, many
+
499 * skipped/other channels).
+
500 */
+
501 uint64_t last_adc_diag_ms = esp_timer_get_time() / 1000ULL;
+
502 uint32_t diag_reads = 0;
+
503 uint32_t diag_out_bytes = 0;
+
504 uint32_t diag_accept_ch0 = 0;
+
505 uint32_t diag_accept_ch1 = 0;
+
506 uint32_t diag_skip_unit = 0;
+
507 uint32_t diag_other_chan = 0;
+
508
+
509 adc_continuous_handle_t adc_handle = NULL;
+
510 adc_continuous_handle_cfg_t handle_cfg = {
+
511 .max_store_buf_size =
+
512 FFT_SIZE * CHANNELS * sizeof(adc_digi_output_data_t),
+
513 .conv_frame_size = 512,
+
514 };
+
515 ESP_ERROR_CHECK(adc_continuous_new_handle(&handle_cfg, &adc_handle));
+
516
+
517 uint32_t sample_rate = ADC_SPS;
+
518#if defined(CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH)
+
519 if (sample_rate > CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH) {
+
520 ESP_LOGW(TAG, "ADC_SPS=%u above SOC max %u; clamping", sample_rate,
+
521 (unsigned)CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH);
+
522 sample_rate = CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH;
+
523 }
+
524#endif
+
525#if defined(CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW)
+
526 if (sample_rate < CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW) {
+
527 ESP_LOGW(TAG, "ADC_SPS=%u below SOC min %u; clamping", sample_rate,
+
528 (unsigned)CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW);
+
529 sample_rate = CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW;
+
530 }
+
531#endif
+
532
+
533 /* Per-channel sampling rate: adc_continuous divides sample_freq_hz by the
+
534 * pattern length. With two channels, each gets half the configured rate. */
+
535 const uint32_t per_channel_sps = sample_rate / CHANNELS;
+
536
+
537 adc_digi_pattern_config_t pattern[CHANNELS] = {0};
+
538 pattern[0].atten = atten;
+
539 pattern[0].channel = CONFIG_ADC_CH0;
+
540 pattern[0].unit = ADC_UNIT_1;
+
541 pattern[0].bit_width = ADC_BITWIDTH_12;
+
542 pattern[1].atten = atten;
+
543 pattern[1].channel = CONFIG_ADC_CH1;
+
544 pattern[1].unit = ADC_UNIT_1;
+
545 pattern[1].bit_width = ADC_BITWIDTH_12;
+
546
+
547 adc_continuous_config_t dig_cfg = {
+
548 .sample_freq_hz = sample_rate,
+
549 .conv_mode = ADC_CONV_SINGLE_UNIT_1,
+
550 /* Must match adc_digi_output_data_t parsing below (p->type2.*). */
+
551 .format = ADC_DIGI_OUTPUT_FORMAT_TYPE2,
+
552 .pattern_num = CHANNELS,
+
553 .adc_pattern = pattern,
+
554 };
+
555 ESP_ERROR_CHECK(adc_continuous_config(adc_handle, &dig_cfg));
+
556
+
557#if CONFIG_ADC_IIR_FILTER_ENABLE
+
558 adc_digi_iir_filter_t coeff = ADC_DIGI_IIR_FILTER_COEFF_2;
+
559#if CONFIG_ADC_IIR_FILTER_COEFF_4
+
560 coeff = ADC_DIGI_IIR_FILTER_COEFF_4;
+
561#elif CONFIG_ADC_IIR_FILTER_COEFF_8
+
562 coeff = ADC_DIGI_IIR_FILTER_COEFF_8;
+
563#elif CONFIG_ADC_IIR_FILTER_COEFF_16
+
564 coeff = ADC_DIGI_IIR_FILTER_COEFF_16;
+
565#elif CONFIG_ADC_IIR_FILTER_COEFF_64
+
566 coeff = ADC_DIGI_IIR_FILTER_COEFF_64;
+
567#endif
+
568 adc_continuous_iir_filter_config_t filter_cfg = {
+
569 .unit = ADC_UNIT_1,
+
570 .coeff = coeff,
+
571 };
+
572 adc_iir_filter_handle_t iir_handle = NULL;
+
573 ESP_ERROR_CHECK(
+
574 adc_new_continuous_iir_filter(adc_handle, &filter_cfg, &iir_handle));
+
575 ESP_ERROR_CHECK(adc_continuous_iir_filter_enable(iir_handle));
+
576 ESP_LOGI(TAG, "ADC IIR Filter enabled");
+
577#endif
+
578
+
579 ESP_ERROR_CHECK(adc_continuous_start(adc_handle));
+
580
+
581 ESP_LOGI(TAG,
+
582 "Sampling ADC1 CH%d (GPIO%d) and CH%d (GPIO%d) at %u sps/ch, FFT %d",
+
583 CONFIG_ADC_CH0, CONFIG_ADC_CH0 + 1, CONFIG_ADC_CH1,
+
584 CONFIG_ADC_CH1 + 1, (unsigned)per_channel_sps, FFT_SIZE);
+
585
+
586 // Reduce DMA buffer size to save Internal RAM; we loop to fill the FFT buffer anyway.
+
587 const size_t read_len = 2048 * sizeof(adc_digi_output_data_t);
+
588 uint8_t *raw = heap_caps_aligned_alloc(16, read_len,
+
589 MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL);
+
590 if (!raw) {
+
591 raw = heap_caps_aligned_alloc(16, read_len, MALLOC_CAP_DMA);
+
592 }
+
593 if (!raw) {
+
594 ESP_LOGE(TAG, "Failed to reserve DMA buffer (%zu bytes)", read_len);
+
595 vTaskDelete(NULL);
+
596 return;
+
597 }
+
598
+
599 static frame_wire_t frame;
+
600 while (1) {
+
601#if CONFIG_STATUS_NEOPIXEL_ENABLE
+
602 status_led_set(0, 0, 255);
+
603#endif
+
604 int count0 = 0;
+
605 int count1 = 0;
+
606 float sum0 = 0.0f;
+
607 float sum1 = 0.0f;
+
608 while (count0 < FFT_SIZE || count1 < FFT_SIZE) {
+
609 uint32_t out_len = 0;
+
610 esp_err_t ret = adc_continuous_read(adc_handle, raw, read_len, &out_len,
+
611 pdMS_TO_TICKS(100));
+
612 if (ret == ESP_ERR_TIMEOUT) {
+
613 continue;
+
614 }
+
615 if (ret != ESP_OK) {
+
616 ESP_LOGW(TAG, "adc_continuous_read returned %s", esp_err_to_name(ret));
+
617 vTaskDelay(pdMS_TO_TICKS(1));
+
618 continue;
+
619 }
+
620
+
621 /* Per-read diagnostics. */
+
622 diag_reads++;
+
623 diag_out_bytes += out_len;
+
624
+
625 for (uint32_t i = 0; i + sizeof(adc_digi_output_data_t) <= out_len;
+
626 i += sizeof(adc_digi_output_data_t)) {
+
627 adc_digi_output_data_t *p = (adc_digi_output_data_t *)&raw[i];
+
628 if (p->type2.unit != ADC_UNIT_1) {
+
629 diag_skip_unit++;
+
630 continue;
+
631 }
+
632 if (p->type2.channel == CONFIG_ADC_CH0 && count0 < FFT_SIZE) {
+
633 float val = sample_to_centered(p->type2.data, calibrated, midpoint_mv);
+
634 ch0[count0++] = val;
+
635 sum0 += val;
+
636 diag_accept_ch0++;
+
637 } else if (p->type2.channel == CONFIG_ADC_CH1 && count1 < FFT_SIZE) {
+
638 float val = sample_to_centered(p->type2.data, calibrated, midpoint_mv);
+
639 ch1[count1++] = val;
+
640 sum1 += val;
+
641 diag_accept_ch1++;
+
642 } else {
+
643 diag_other_chan++;
+
644 }
+
645 }
+
646
+
647 /* Rate-limit to avoid log spam. */
+
648 uint64_t now_ms = esp_timer_get_time() / 1000ULL;
+
649 if (now_ms > last_adc_diag_ms + 2000ULL) {
+
650 ESP_LOGI(TAG,
+
651 "ADC diag (2s): reads=%u out=%uB accept[ch0/ch1]=%u/%u skip_unit=%u other_chan=%u",
+
652 (unsigned)diag_reads, (unsigned)diag_out_bytes,
+
653 (unsigned)diag_accept_ch0, (unsigned)diag_accept_ch1,
+
654 (unsigned)diag_skip_unit, (unsigned)diag_other_chan);
+
655 diag_reads = 0;
+
656 diag_out_bytes = 0;
+
657 diag_accept_ch0 = 0;
+
658 diag_accept_ch1 = 0;
+
659 diag_skip_unit = 0;
+
660 diag_other_chan = 0;
+
661 last_adc_diag_ms = now_ms;
+
662 }
+
663 }
+
664
+
665 /* Dynamic DC bias removal: subtract current block mean */
+
666 float mean0 = (float)(sum0 / FFT_SIZE);
+
667 float mean1 = (float)(sum1 / FFT_SIZE);
+
668 for (int i = 0; i < FFT_SIZE; i++) {
+
669 ch0[i] -= mean0;
+
670 ch1[i] -= mean1;
+
671 }
+
672
+
673#if CONFIG_ADC_ENABLE_WINDOW
+ + +
676#endif
+ + +
679
+
680 // apply_complex_cutoff(ch0, per_channel_sps);
+
681 // apply_complex_cutoff(ch1, per_channel_sps);
+
682
+
683 uint64_t now_ms = esp_timer_get_time() / 1000ULL;
+
684
+
685 build_frame(&frame, ch0, "ch0", now_ms, per_channel_sps, g_seq++);
+
686 if (xQueueSend(g_frameq, &frame, portMAX_DELAY) != pdTRUE) {
+
687 ESP_LOGW(TAG, "Frame queue send failed (ch0)");
+
688 }
+
689
+
690 build_frame(&frame, ch1, "ch1", now_ms, per_channel_sps, g_seq++);
+
691 if (xQueueSend(g_frameq, &frame, portMAX_DELAY) != pdTRUE) {
+
692 ESP_LOGW(TAG, "Frame queue send failed (ch1)");
+
693 }
+
694 }
+
695}
+
int esp_err_t
Definition esp_err.h:21
+
static QueueHandle_t g_frameq
Definition main/main.c:91
+
#define CHANNELS
Definition main/main.c:50
+
static float * ch0
Definition main/main.c:59
+
static float sample_to_centered(uint16_t raw, bool calibrated, int midpoint_mv)
Definition main/main.c:436
+
static void build_frame(frame_wire_t *out, const float *data, const char label[4], uint64_t t_ms, uint32_t sps, uint16_t seq)
Definition main/main.c:130
+
static void apply_window(float *buf)
Definition main/main.c:447
+
bool adc_calibration_init(adc_unit_t unit, adc_atten_t atten)
Definition main/main.c:411
+
static void perform_fft(float *buf)
Definition main/main.c:453
+
static float * ch1
Definition main/main.c:60
+
static adc_atten_t cfg_atten(void)
Definition main/main.c:476
+
#define ADC_SPS
Definition main/main.c:40
+
static uint16_t g_seq
Definition main/main.c:92
+ +
+

References adc_calibration_init(), ADC_SPS, apply_window(), build_frame(), cali_handle, cfg_atten(), ch0, ch1, CHANNELS, ESP_OK, FFT_SIZE, g_frameq, g_seq, perform_fft(), sample_to_centered(), and TAG.

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ app_main()

+ +
+
+ + + + + + + +
void app_main (void )
+
+ +

Definition at line 720 of file main/main.c.

+
720 {
+
721#if CONFIG_STATUS_NEOPIXEL_ENABLE
+
722 status_led_init();
+
723 status_led_set(255, 0, 0);
+
724#endif
+
725 tinyusb_config_t tusb_cfg = {
+
726 .device_descriptor = NULL,
+
727 .string_descriptor = NULL,
+
728 .external_phy = false,
+
729 };
+
730 ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg));
+
731
+
732#if CONFIG_TINYUSB_CDC_COUNT > 1
+ +
734#else
+ +
736#endif
+
737
+
738 tinyusb_config_cdcacm_t cdc_cfg_data = {
+
739 .usb_dev = TINYUSB_USBDEV_0,
+
740 .cdc_port = g_data_port,
+
741 .rx_unread_buf_sz = CONFIG_TINYUSB_CDC_RX_BUFSIZE,
+
742 .callback_rx = NULL,
+
743 .callback_rx_wanted_char = NULL,
+
744 .callback_line_state_changed = NULL,
+
745 .callback_line_coding_changed = NULL,
+
746 };
+
747 ESP_ERROR_CHECK(tusb_cdc_acm_init(&cdc_cfg_data));
+
748
+
749
+
750#if CONFIG_ENABLE_I2S_WAVE_GEN
+
751 // Initialize Wave Gen
+
752 // Using GPIO 15-18 to avoid VDD_SPI (GPIO 11) and ADC1 interference
+
753 wave_gen_config_t wg_cfg = {
+
754 .mck_io_num = -1, // SCK disconnected (PCM5102 internal generation)
+
755 .bck_io_num = 16,
+
756 .ws_io_num = 17,
+
757 .data_out_num = 18,
+
758 .sample_rate = 44100,
+
759 };
+
760 ESP_ERROR_CHECK(wave_gen_init(&wg_cfg));
+
761 // wave_gen_set_freq(33.0f); // Controlled by sweep_task
+ + +
764 ESP_ERROR_CHECK(wave_gen_start());
+
765#endif
+
766
+
767#if CONFIG_ENABLE_SDM_WAVE_GEN
+
768 ESP_ERROR_CHECK(wave_gen_sdm_start());
+
769#endif
+
770
+
771 size_t fft_mem_sz = FFT_SIZE * sizeof(float);
+
772 ch0 = heap_caps_aligned_alloc(16, fft_mem_sz, MALLOC_CAP_SPIRAM);
+
773 ch1 = heap_caps_aligned_alloc(16, fft_mem_sz, MALLOC_CAP_SPIRAM);
+
774 win = heap_caps_aligned_alloc(16, fft_mem_sz, MALLOC_CAP_SPIRAM);
+
775
+
776 if (!ch0 || !ch1 || !win) {
+
777 ESP_LOGE(TAG, "Failed to allocate FFT buffers");
+
778 abort();
+
779 }
+
780
+
781 /* Initialize DSP before any task can call FFT/window code. */
+
782 ESP_ERROR_CHECK(dsps_fft4r_init_fc32(NULL, FFT_SIZE >> 1));
+
783#if CONFIG_ADC_ENABLE_WINDOW
+
784#if CONFIG_ADC_WINDOW_HANN
+ +
786#elif CONFIG_ADC_WINDOW_BLACKMAN
+ +
788#elif CONFIG_ADC_WINDOW_BLACKMAN_HARRIS
+ +
790#elif CONFIG_ADC_WINDOW_BLACKMAN_NUTTALL
+ +
792#elif CONFIG_ADC_WINDOW_NUTTALL
+ +
794#elif CONFIG_ADC_WINDOW_FLAT_TOP
+ +
796#else
+
797 for (int i = 0; i < FFT_SIZE; i++) {
+
798 win[i] = 1.0f;
+
799 }
+
800#endif
+
801#endif
+
802
+
803
+
804#if CONFIG_ENABLE_I2S_WAVE_GEN
+
805 xTaskCreate(sweep_task, "sweep", 2048, NULL, 5, NULL);
+
806#endif
+
807
+
808 g_frameq = xQueueCreate(
+
809 2,
+
810 sizeof(frame_wire_t));
+
811 assert(g_frameq);
+
812
+
813 const BaseType_t tusb_core = 0;
+
814#if CONFIG_FREERTOS_UNICORE
+
815 const BaseType_t adc_core = 0;
+
816#else
+
817 const BaseType_t adc_core = 1;
+
818#endif
+
819
+
820 xTaskCreatePinnedToCore(
+ +
822 "cdc_tx",
+ +
824 NULL,
+
825 8,
+ +
827 tusb_core);
+
828
+
829
+
830
+
831
+
832 xTaskCreatePinnedToCore(
+ +
834 "adc_fft",
+ +
836 NULL,
+
837 8,
+ +
839 adc_core);
+
840
+
841 xTaskCreatePinnedToCore(
+ +
843 "adc_fft",
+ +
845 NULL,
+
846 8,
+ +
848 adc_core
+
849 );
+
850
+
851 xTaskCreatePinnedToCore(adc_fft_task,"adc_fft",ADC_TASK_STACK_SIZE,NULL,8,&g_adc_task_handle,adc_core);
+
852
+
853
+
854 // Tasks run indefinitely; app_main can return.
+
855}
+
esp_err_t dsps_fft4r_init_fc32(float *fft_table_buff, int max_fft_size)
init fft tables
+
void dsps_wind_blackman_f32(float *window, int len)
Blackman window.
+
void dsps_wind_blackman_harris_f32(float *window, int len)
Blackman-Harris window.
+
void dsps_wind_blackman_nuttall_f32(float *window, int len)
Blackman-Nuttall window.
+
void dsps_wind_flat_top_f32(float *window, int len)
Flat-Top window.
+
void dsps_wind_hann_f32(float *window, int len)
Hann window.
+
void dsps_wind_nuttall_f32(float *window, int len)
Nuttall window.
+
#define ADC_TASK_STACK_SIZE
Definition main/main.c:107
+
#define CDC_TX_TASK_STACK_SIZE
Definition main/main.c:104
+
static float * win
Definition main/main.c:61
+
static TaskHandle_t g_cdc_task_handle
Definition main/main.c:94
+
static void adc_fft_task(void *arg)
Definition main/main.c:488
+
static tinyusb_cdcacm_itf_t g_data_port
Definition main/main.c:93
+
static void cdc_tx_task(void *arg)
Definition main/main.c:254
+
static TaskHandle_t g_adc_task_handle
Definition main/main.c:95
+
Configuration structure for CDC-ACM.
+
Configuration structure of the TinyUSB core.
Definition tinyusb.h:29
+
Configuration structure for Wave Generator.
Definition wave_gen.h:22
+
esp_err_t tinyusb_driver_install(const tinyusb_config_t *config)
This is an all-in-one helper function, including:
Definition tinyusb.c:32
+
@ TINYUSB_USBDEV_0
+
esp_err_t tusb_cdc_acm_init(const tinyusb_config_cdcacm_t *cfg)
Initialize CDC ACM. Initialization will be finished with the tud_cdc_line_state_cb callback.
+
@ TINYUSB_CDC_ACM_1
+
@ TINYUSB_CDC_ACM_0
+
void wave_gen_set_type(wave_type_t type)
Set the waveform type.
Definition wave_gen.c:291
+
esp_err_t wave_gen_init(const wave_gen_config_t *config)
Initialize the Wave Generator component.
Definition wave_gen.c:213
+
esp_err_t wave_gen_start(void)
Start the wave generation task.
Definition wave_gen.c:253
+
@ WAVE_TYPE_SINE
Definition wave_gen.h:13
+
esp_err_t wave_gen_sdm_start(void)
Start the SDM sine generator (uses CONFIG_SDM_* settings).
Definition wave_gen.c:303
+
void wave_gen_set_volume(float volume)
Set the output volume/amplitude.
Definition wave_gen.c:296
+
+

References adc_fft_task(), ADC_TASK_STACK_SIZE, cdc_tx_task(), CDC_TX_TASK_STACK_SIZE, ch0, ch1, dsps_fft4r_init_fc32(), dsps_wind_blackman_f32(), dsps_wind_blackman_harris_f32(), dsps_wind_blackman_nuttall_f32(), dsps_wind_flat_top_f32(), dsps_wind_hann_f32(), dsps_wind_nuttall_f32(), FFT_SIZE, g_adc_task_handle, g_cdc_task_handle, g_data_port, g_frameq, TAG, TINYUSB_CDC_ACM_0, TINYUSB_CDC_ACM_1, tinyusb_driver_install(), TINYUSB_USBDEV_0, tusb_cdc_acm_init(), wave_gen_init(), wave_gen_sdm_start(), wave_gen_set_type(), wave_gen_set_volume(), wave_gen_start(), WAVE_TYPE_SINE, and win.

+
+Here is the call graph for this function:
+
+
+
+ +
+
+ +

◆ apply_complex_cutoff()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void apply_complex_cutoff (float * buf,
uint32_t sps )
+
+static
+
+ +

Definition at line 459 of file main/main.c.

+
459 {
+
460#if CONFIG_OUTPUT_CUTOFF_HZ > 0
+
461 uint32_t cutoff_hz = (uint32_t)CONFIG_OUTPUT_CUTOFF_HZ;
+
462 uint32_t max_bin = (cutoff_hz * (uint64_t)FFT_SIZE) / sps;
+
463 if (max_bin >= FFT_SIZE / 2) {
+
464 return;
+
465 }
+
466 if (max_bin < FFT_SIZE / 2) {
+
467 buf[1] = 0.0f; // Nyquist packed at index 1
+
468 }
+
469 for (uint32_t k = max_bin + 1; k < FFT_SIZE / 2; k++) {
+
470 buf[2 * k] = 0.0f;
+
471 buf[2 * k + 1] = 0.0f;
+
472 }
+
473#endif
+
474}
+
const int k
Definition test_mmult.c:18
+
+

References FFT_SIZE, k, and OPTIMIZE_O2.

+ +
+
+ +

◆ apply_window()

+ +
+
+ + + + + +
+ + + + + + + +
void apply_window (float * buf)
+
+static
+
+ +

Definition at line 447 of file main/main.c.

+
447 {
+
448 for (int i = 0; i < FFT_SIZE; i++) {
+
449 buf[i] *= win[i];
+
450 }
+
451}
+
+

References FFT_SIZE, OPTIMIZE_O2, and win.

+ +

Referenced by adc_fft_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ build_frame()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void build_frame (frame_wire_t * out,
const float * data,
const char label[4],
uint64_t t_ms,
uint32_t sps,
uint16_t seq )
+
+static
+
+ +

Definition at line 130 of file main/main.c.

+
132 {
+
133 uint8_t *dst = out->bytes;
+
134 dst[0] = FRAME_MAGIC_0;
+
135 dst[1] = FRAME_MAGIC_1;
+
136 dst[2] = FRAME_MAGIC_2;
+
137 dst[3] = FRAME_MAGIC_3;
+
138 dst[4] = FRAME_VERSION;
+
139 write_u16_le(dst + 5, seq);
+
140 write_u16_le(dst + 7, (uint16_t)FRAME_PAYLOAD_SIZE);
+
141
+
142 size_t off = FRAME_HEADER_SIZE;
+
143 write_u64_le(dst + off, t_ms);
+
144 off += sizeof(uint64_t);
+
145 write_u32_le(dst + off, sps);
+
146 off += sizeof(uint32_t);
+
147 write_u32_le(dst + off, FFT_SIZE);
+
148 off += sizeof(uint32_t);
+
149 memcpy(dst + off, label, 4);
+
150 off += 4;
+
151 memcpy(dst + off, data, sizeof(float) * FFT_SIZE);
+
152 off += sizeof(float) * FFT_SIZE;
+
153
+
154 uint32_t crc = frame_crc32(dst, FRAME_HEADER_SIZE + FRAME_PAYLOAD_SIZE);
+
155 write_u32_le(dst + off, crc);
+
156}
+
#define FRAME_MAGIC_2
Definition main/main.c:75
+
static void write_u32_le(uint8_t *dst, uint32_t value)
Definition main/main.c:114
+
#define FRAME_PAYLOAD_SIZE
Definition main/main.c:79
+
#define FRAME_MAGIC_3
Definition main/main.c:76
+
#define FRAME_VERSION
Definition main/main.c:77
+
#define FRAME_HEADER_SIZE
Definition main/main.c:78
+
static void write_u16_le(uint8_t *dst, uint16_t value)
Definition main/main.c:109
+
#define FRAME_MAGIC_1
Definition main/main.c:74
+
static uint32_t frame_crc32(const uint8_t *data, size_t len)
Definition main/main.c:126
+
#define FRAME_MAGIC_0
Definition main/main.c:73
+
static void write_u64_le(uint8_t *dst, uint64_t value)
Definition main/main.c:121
+
uint8_t bytes[(9u+(sizeof(frame_payload_t))+4u)]
Definition main/main.c:88
+
+

References frame_wire_t::bytes, data, FFT_SIZE, frame_crc32(), FRAME_HEADER_SIZE, FRAME_MAGIC_0, FRAME_MAGIC_1, FRAME_MAGIC_2, FRAME_MAGIC_3, FRAME_PAYLOAD_SIZE, FRAME_VERSION, write_u16_le(), write_u32_le(), and write_u64_le().

+ +

Referenced by adc_fft_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ cdc_tx_task()

+ +
+
+ + + + + +
+ + + + + + + +
void cdc_tx_task (void * arg)
+
+static
+
+ +

Definition at line 254 of file main/main.c.

+
254 {
+
255#if 1
+
256 static frame_wire_t frm;
+
257
+
258 const size_t max_chunk = 512;
+
259 const uint32_t wait_step_ms = 2;
+
260 /* Increase timeout significantly for large FFT sizes to prevent frame drops
+
261 * that cause stream desynchronization. For FFT=4096, frame interval is ~100ms;
+
262 * allow up to 10 seconds for host processing/backpressure.
+
263 */
+
264 const uint32_t wait_budget_ms = 10000;
+
265
+
266
+
267#if CONFIG_DIAG_CDC_ENABLE
+
268 /* initialize diagnostic window at task start */
+
269 diag_cdc_reset_window(esp_timer_get_time() / 1000ULL);
+
270 uint64_t last_stack_log_ms = esp_timer_get_time() / 1000ULL;
+
271#endif
+
272 while (1) {
+
273 if (xQueueReceive(g_frameq, &frm, portMAX_DELAY) == pdTRUE) {
+ +
275 !tud_cdc_n_connected((uint8_t)g_data_port)) {
+
276 /* Host not connected: sleep longer to avoid starving idle/other tasks
+
277 */
+
278 vTaskDelay(pdMS_TO_TICKS(100));
+
279 continue;
+
280 }
+
281
+
282 /* Send in bounded chunks, waiting briefly for space if needed. */
+
283 size_t sent = 0;
+
284 uint32_t waited_ms = 0;
+
285 while (sent < FRAME_TOTAL_SIZE) {
+
286 if (!tud_cdc_n_connected((uint8_t)g_data_port)) {
+
287 break;
+
288 }
+
289
+
290 size_t chunk = FRAME_TOTAL_SIZE - sent;
+
291 if (chunk > max_chunk) {
+
292 chunk = max_chunk;
+
293 }
+
294
+
295 uint32_t wa = tud_cdc_n_write_available((uint8_t)g_data_port);
+
296#if CONFIG_DIAG_CDC_ENABLE && CONFIG_DIAG_CDC_SAMPLE_WRITE_AVAILABLE
+
297 diag_cdc_sample_wa(wa);
+
298#endif
+
299 if (wa < chunk) {
+
300 if (waited_ms >= wait_budget_ms) {
+
301 ESP_LOGW(TAG, "CDC TX backpressure (%u ms), dropping frame",
+
302 (unsigned)waited_ms);
+
303 break;
+
304 }
+
305 vTaskDelay(pdMS_TO_TICKS(wait_step_ms));
+
306 waited_ms += wait_step_ms;
+
307 continue;
+
308 }
+
309
+
310 size_t queued =
+
311 tinyusb_cdcacm_write_queue(g_data_port, frm.bytes + sent, chunk);
+
312 if (queued == 0) {
+
313 if (waited_ms >= wait_budget_ms) {
+
314 ESP_LOGW(TAG, "CDC TX stalled (%u ms), dropping frame",
+
315 (unsigned)waited_ms);
+
316 break;
+
317 }
+
318 vTaskDelay(pdMS_TO_TICKS(wait_step_ms));
+
319 waited_ms += wait_step_ms;
+
320 continue;
+
321 }
+
322#if CONFIG_DIAG_CDC_ENABLE
+
323 diag_cdc_on_queued(queued);
+
324#endif
+
325 sent += queued;
+
326 }
+
327
+
328 if (sent < FRAME_TOTAL_SIZE) {
+
329 ESP_LOGW(TAG, "CDC send dropped %u bytes",
+
330 (unsigned)(FRAME_TOTAL_SIZE - sent));
+
331#if CONFIG_DIAG_CDC_ENABLE
+
332 /* Report diagnostics even when a frame is dropped. */
+
333 uint64_t now_ms = esp_timer_get_time() / 1000ULL;
+
334 diag_cdc_maybe_log(now_ms);
+
335#endif
+
336 continue;
+
337 }
+
338
+ +
340 ESP_LOGD(TAG, "CDC flush timeout (non-fatal)");
+
341 }
+
342#if CONFIG_STATUS_NEOPIXEL_ENABLE
+
343 if (g_led_strip) {
+
344 if (!g_led_lock ||
+
345 xSemaphoreTake(g_led_lock, pdMS_TO_TICKS(10)) == pdTRUE) {
+
346 uint8_t b = (uint8_t)CONFIG_STATUS_NEOPIXEL_BRIGHTNESS;
+
347 ESP_ERROR_CHECK(led_strip_set_pixel(g_led_strip, 0, 0, b, 0));
+
348 ESP_ERROR_CHECK(led_strip_refresh(g_led_strip));
+
349 if (g_led_lock) {
+
350 xSemaphoreGive(g_led_lock);
+
351 }
+
352 }
+
353 }
+
354#endif
+
355#if CONFIG_DIAG_CDC_ENABLE
+
356 /* periodic summary log (non-blocking) */
+
357 uint64_t now_ms = esp_timer_get_time() / 1000ULL;
+
358 diag_cdc_maybe_log(now_ms);
+
359
+
360 if (now_ms > last_stack_log_ms + 5000ULL) {
+
361 UBaseType_t cdc_hwm = uxTaskGetStackHighWaterMark(g_cdc_task_handle);
+
362 UBaseType_t adc_hwm = uxTaskGetStackHighWaterMark(g_adc_task_handle);
+
363 ESP_LOGI(TAG, "Stack HWM: cdc_tx=%lu words, adc_fft=%lu words",
+
364 (unsigned long)cdc_hwm, (unsigned long)adc_hwm);
+
365 last_stack_log_ms = now_ms;
+
366 }
+
367#endif
+
368 }
+
369 }
+
370}
+
#define ESP_LOGD
Definition esp_log.h:22
+
esp_err_t led_strip_refresh(led_strip_handle_t strip)
Refresh memory colors to LEDs.
+
esp_err_t led_strip_set_pixel(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
#define FRAME_TOTAL_SIZE
Definition main/main.c:80
+
static bool safe_cdcacm_write_flush(tinyusb_cdcacm_itf_t port, int max_retries)
Definition main/main.c:221
+
size_t tinyusb_cdcacm_write_queue(tinyusb_cdcacm_itf_t itf, const uint8_t *in_buf, size_t in_size)
Write data to write buffer from a byte array.
+
bool tusb_cdc_acm_initialized(tinyusb_cdcacm_itf_t itf)
Check if the ACM initialized.
+
+

References frame_wire_t::bytes, ESP_LOGD, FRAME_TOTAL_SIZE, g_adc_task_handle, g_cdc_task_handle, g_data_port, g_frameq, led_strip_refresh(), led_strip_set_pixel(), safe_cdcacm_write_flush(), TAG, tinyusb_cdcacm_write_queue(), and tusb_cdc_acm_initialized().

+ +

Referenced by app_main().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ cfg_atten()

+ +
+
+ + + + + +
+ + + + + + + +
adc_atten_t cfg_atten (void )
+
+static
+
+ +

Definition at line 476 of file main/main.c.

+
476 {
+
477#if CONFIG_ADC_ATTEN_DB_0
+
478 return ADC_ATTEN_DB_0;
+
479#elif CONFIG_ADC_ATTEN_DB_2_5
+
480 return ADC_ATTEN_DB_2_5;
+
481#elif CONFIG_ADC_ATTEN_DB_6
+
482 return ADC_ATTEN_DB_6;
+
483#else
+
484 return ADC_ATTEN_DB_12;
+
485#endif
+
486}
+
+

Referenced by adc_fft_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ frame_crc32()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
uint32_t frame_crc32 (const uint8_t * data,
size_t len )
+
+static
+
+ +

Definition at line 126 of file main/main.c.

+
126 {
+
127 return esp_crc32_le(0, data, len);
+
128}
+
+

References data.

+ +

Referenced by build_frame().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ perform_fft()

+ +
+
+ + + + + +
+ + + + + + + +
void perform_fft (float * buf)
+
+static
+
+ +

Definition at line 453 of file main/main.c.

+
453 {
+
454 dsps_fft4r_fc32(buf, FFT_SIZE >> 1);
+
455 dsps_bit_rev4r_fc32(buf, FFT_SIZE >> 1);
+
456 dsps_cplx2real_fc32(buf, FFT_SIZE >> 1);
+
457}
+
#define dsps_bit_rev4r_fc32
Definition dsps_fft4r.h:184
+
#define dsps_cplx2real_fc32
Definition dsps_fft4r.h:185
+
#define dsps_fft4r_fc32
Definition dsps_fft4r.h:182
+
+

References dsps_bit_rev4r_fc32, dsps_cplx2real_fc32, dsps_fft4r_fc32, FFT_SIZE, and OPTIMIZE_O2.

+ +

Referenced by adc_fft_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ safe_cdcacm_write_flush()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
bool safe_cdcacm_write_flush (tinyusb_cdcacm_itf_t port,
int max_retries )
+
+static
+
+ +

Definition at line 221 of file main/main.c.

+
222{
+
223 if (!tud_cdc_n_connected((uint8_t)port)) {
+
224 return false;
+
225 }
+
226
+
227 const int base_delay_ms = 100;
+
228 uint64_t now_ms = 0;
+
229 static uint64_t last_flush_log_ms = 0;
+
230
+
231 for (int attempt = 0; attempt < max_retries; ++attempt) {
+
232 /* Increase flush timeout to 1000ms to allow large buffers (32KB) to drain
+
233 * at minimum USB speeds (335KB/s -> ~96ms), with margin for host latency.
+
234 */
+
235 esp_err_t err = tinyusb_cdcacm_write_flush(port, 1000);
+
236 if (err == ESP_OK) {
+
237 return true;
+
238 }
+
239 if (!tud_cdc_n_connected((uint8_t)port)) {
+
240 return false;
+
241 }
+
242 vTaskDelay(pdMS_TO_TICKS(base_delay_ms << attempt));
+
243 }
+
244
+
245 /* Rate-limit the warning to once per second to avoid spam. */
+
246 now_ms = esp_timer_get_time() / 1000ULL;
+
247 if (now_ms > last_flush_log_ms + 1000ULL) {
+
248 ESP_LOGW(TAG, "CDC flush failed after %d retries", max_retries);
+
249 last_flush_log_ms = now_ms;
+
250 }
+
251 return false;
+
252}
+
esp_err_t tinyusb_cdcacm_write_flush(tinyusb_cdcacm_itf_t itf, uint32_t timeout_ticks)
Send all data from a write buffer. Use tinyusb_cdcacm_write_queue to add data to the buffer.
+
+

References ESP_OK, TAG, and tinyusb_cdcacm_write_flush().

+ +

Referenced by cdc_tx_task().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ sample_to_centered()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
float sample_to_centered (uint16_t raw,
bool calibrated,
int midpoint_mv )
+
+inlinestatic
+
+ +

Definition at line 436 of file main/main.c.

+
437 {
+
438 if (calibrated) {
+
439 int mv = 0;
+
440 if (adc_cali_raw_to_voltage(cali_handle, raw, &mv) == ESP_OK) {
+
441 return ((float)(mv - midpoint_mv)) / 1000.0f;
+
442 }
+
443 }
+
444 return (float)raw - 2048.0f; // 12-bit midpoint
+
445}
+
+

References cali_handle, and ESP_OK.

+ +

Referenced by adc_fft_task().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ sample_to_volts()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
float sample_to_volts (uint16_t raw,
bool calibrated )
+
+inlinestatic
+
+ +

Definition at line 426 of file main/main.c.

+
426 {
+
427 if (calibrated) {
+
428 int mv = 0;
+
429 if (adc_cali_raw_to_voltage(cali_handle, raw, &mv) == ESP_OK) {
+
430 return (float)mv / 1000.0f;
+
431 }
+
432 }
+
433 return (float)raw; // fallback raw counts
+
434}
+
+

References cali_handle, and ESP_OK.

+ +
+
+ +

◆ write_u16_le()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void write_u16_le (uint8_t * dst,
uint16_t value )
+
+inlinestatic
+
+ +

Definition at line 109 of file main/main.c.

+
109 {
+
110 dst[0] = (uint8_t)(value & 0xFFu);
+
111 dst[1] = (uint8_t)((value >> 8) & 0xFFu);
+
112}
+
+

Referenced by build_frame().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ write_u32_le()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void write_u32_le (uint8_t * dst,
uint32_t value )
+
+inlinestatic
+
+ +

Definition at line 114 of file main/main.c.

+
114 {
+
115 dst[0] = (uint8_t)(value & 0xFFu);
+
116 dst[1] = (uint8_t)((value >> 8) & 0xFFu);
+
117 dst[2] = (uint8_t)((value >> 16) & 0xFFu);
+
118 dst[3] = (uint8_t)((value >> 24) & 0xFFu);
+
119}
+
+

Referenced by build_frame(), and write_u64_le().

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ write_u64_le()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void write_u64_le (uint8_t * dst,
uint64_t value )
+
+inlinestatic
+
+ +

Definition at line 121 of file main/main.c.

+
121 {
+
122 write_u32_le(dst, (uint32_t)(value & 0xFFFFFFFFu));
+
123 write_u32_le(dst + 4, (uint32_t)((value >> 32) & 0xFFFFFFFFu));
+
124}
+
+

References write_u32_le().

+ +

Referenced by build_frame().

+
+Here is the call graph for this function:
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ cali_handle

+ +
+
+ + + + + +
+ + + + +
adc_cali_handle_t cali_handle
+
+static
+
+ +

Definition at line 63 of file main/main.c.

+ +

Referenced by __attribute__(), adc_calibration_init(), adc_fft_task(), sample_to_centered(), and sample_to_volts().

+ +
+
+ +

◆ ch0

+ +
+
+ + + + + +
+ + + + +
float* ch0 = NULL
+
+static
+
+ +

Definition at line 59 of file main/main.c.

+ +

Referenced by adc_fft_task(), and app_main().

+ +
+
+ +

◆ ch1

+ +
+
+ + + + + +
+ + + + +
float* ch1 = NULL
+
+static
+
+ +

Definition at line 60 of file main/main.c.

+ +

Referenced by adc_fft_task(), and app_main().

+ +
+
+ +

◆ frame_payload_t

+ +
+
+ + + + +
frame_payload_t
+
+ +

Definition at line 71 of file main/main.c.

+ +
+
+ +

◆ g_adc_task_handle

+ +
+
+ + + + + +
+ + + + +
TaskHandle_t g_adc_task_handle
+
+static
+
+ +

Definition at line 95 of file main/main.c.

+ +

Referenced by app_main(), and cdc_tx_task().

+ +
+
+ +

◆ g_cdc_task_handle

+ +
+
+ + + + + +
+ + + + +
TaskHandle_t g_cdc_task_handle
+
+static
+
+ +

Definition at line 94 of file main/main.c.

+ +

Referenced by app_main(), and cdc_tx_task().

+ +
+
+ +

◆ g_data_port

+ +
+
+ + + + + +
+ + + + +
tinyusb_cdcacm_itf_t g_data_port = TINYUSB_CDC_ACM_0
+
+static
+
+ +

Definition at line 93 of file main/main.c.

+ +

Referenced by app_main(), and cdc_tx_task().

+ +
+
+ +

◆ g_frameq

+ +
+
+ + + + + +
+ + + + +
QueueHandle_t g_frameq
+
+static
+
+ +

Definition at line 91 of file main/main.c.

+ +

Referenced by adc_fft_task(), app_main(), and cdc_tx_task().

+ +
+
+ +

◆ g_seq

+ +
+
+ + + + + +
+ + + + +
uint16_t g_seq
+
+static
+
+ +

Definition at line 92 of file main/main.c.

+ +

Referenced by adc_fft_task().

+ +
+
+ +

◆ TAG

+ +
+
+ + + + + +
+ + + + +
const char* TAG = "adc_fft"
+
+static
+
+ +

Definition at line 31 of file main/main.c.

+ +

Referenced by adc_calibration_init(), adc_fft_task(), app_init(), app_init(), app_main(), app_main(), apply_path(), audio_process_task(), audio_process_task(), audio_process_task(), audio_read_task(), audio_read_task(), audio_read_task(), bsp_spi_init(), bsp_spi_init(), buttons_process_task(), buttons_process_task(), buttons_process_task(), cdc_obj_check(), cdc_tx_task(), dsp_display_brightness_init(), dsp_display_brightness_init(), dsp_display_new(), dsps_ccorr_f32_ansi(), dsps_conv_f32_ansi(), dsps_cplx_gen_freq_get(), dsps_cplx_gen_freq_set(), dsps_cplx_gen_init(), dsps_cplx_gen_phase_get(), dsps_cplx_gen_phase_set(), dsps_cplx_gen_set(), dsps_gen_bitrev2r_table(), dsps_gen_bitrev4r_table(), dsps_sfdr_f32(), dsps_snr_f32(), esp_tusb_deinit_console(), esp_tusb_init_console(), esp_vfs_tusb_cdc_register(), esp_vfs_tusb_cdc_unregister(), init_3d_matrix_struct(), init_3d_matrix_struct(), led_strip_clear(), led_strip_del(), led_strip_new_rmt_device(), led_strip_new_rmt_device(), led_strip_new_spi_device(), led_strip_refresh(), led_strip_rmt_del(), led_strip_rmt_del(), led_strip_rmt_refresh(), led_strip_rmt_refresh(), led_strip_rmt_set_pixel(), led_strip_rmt_set_pixel(), led_strip_rmt_set_pixel_rgbw(), led_strip_set_pixel(), led_strip_set_pixel_hsv(), led_strip_set_pixel_rgbw(), led_strip_spi_del(), led_strip_spi_refresh(), led_strip_spi_set_pixel(), led_strip_spi_set_pixel_rgbw(), microphone_read_task(), microphone_read_task(), redirect_std_streams_to(), restore_std_streams(), ringbuf_mux_take(), rmt_new_led_strip_encoder(), safe_cdcacm_write_flush(), tinyusb_cdc_deinit(), tinyusb_cdc_init(), tinyusb_cdcacm_read(), tinyusb_cdcacm_register_callback(), tinyusb_cdcacm_unregister_callback(), tinyusb_cdcacm_write_flush(), tinyusb_driver_install(), tud_cdc_line_state_cb(), tud_cdc_rx_cb(), tud_descriptor_string_cb(), tusb_cdc_acm_init(), tusb_cdc_comm_init(), tusb_cdc_data_init(), tusb_cdc_deinit_comm(), tusb_cdc_deinit_data(), tusb_device_task(), tusb_run_task(), tusb_set_descriptor(), tusb_stop_task(), wave_gen_init(), wave_gen_sdm_start(), wave_gen_start(), wave_gen_stop(), and wave_gen_task().

+ +
+
+ +

◆ win

+ +
+
+ + + + + +
+ + + + +
float* win = NULL
+
+static
+
+ +

Definition at line 61 of file main/main.c.

+ +

Referenced by app_main(), and apply_window().

+ +
+
+
+
+ +
+ + + + diff --git a/docs/html/main_2main_8c.js b/docs/html/main_2main_8c.js new file mode 100644 index 0000000..d0774eb --- /dev/null +++ b/docs/html/main_2main_8c.js @@ -0,0 +1,51 @@ +var main_2main_8c = +[ + [ "frame_wire_t", "structframe__wire__t.html", "structframe__wire__t" ], + [ "ADC_SPS", "main_2main_8c.html#af9e6ae3407d9ab0f6bd3dd462fcb2345", null ], + [ "ADC_TASK_STACK_SIZE", "main_2main_8c.html#a377c24b1f380ae2a13dd1c3313567913", null ], + [ "CDC_TX_TASK_STACK_SIZE", "main_2main_8c.html#a60b36744b9da669e8629317acd4e6fd6", null ], + [ "CHANNELS", "main_2main_8c.html#a19b7f1b22403d61234a92decaeb6953a", null ], + [ "FFT_SIZE", "main_2main_8c.html#a636ddc19af00bc87969a07c88331f105", null ], + [ "FRAME_HEADER_SIZE", "main_2main_8c.html#a6a4e3b4099bd5e93bfec5835b2379eb8", null ], + [ "FRAME_MAGIC_0", "main_2main_8c.html#aeda1ad755248963a27d6c282164b4724", null ], + [ "FRAME_MAGIC_1", "main_2main_8c.html#aaca3e7640d985dc55af56487e37f105b", null ], + [ "FRAME_MAGIC_2", "main_2main_8c.html#a09a7577a104d094dd885851b897b4aa0", null ], + [ "FRAME_MAGIC_3", "main_2main_8c.html#a4acd1c89be09591777903b8be932274a", null ], + [ "FRAME_PAYLOAD_SIZE", "main_2main_8c.html#a42ad5cf624da44187bacf6c10b6f2d15", null ], + [ "FRAME_TOTAL_SIZE", "main_2main_8c.html#a06dc433027dad301290ae7d2c26eb886", null ], + [ "FRAME_VERSION", "main_2main_8c.html#a5ff22fad1290140a5061518c2ac4d336", null ], + [ "LED_STRIP_RMT_RES_HZ", "main_2main_8c.html#aecaf3f695131a8da4a755b8e490b8c9f", null ], + [ "OPTIMIZE_O2", "main_2main_8c.html#a79f5e158770403af281abc4df07760cc", null ], + [ "SAMPLE_MAX", "main_2main_8c.html#a82743e3343eacf1b8ba333e6d198b654", null ], + [ "SPIKE_DB_THRESHOLD", "main_2main_8c.html#ada4cf28e6e7f3977811f46eb71a8ba38", null ], + [ "SPIKE_MIN_AVG_LINEAR", "main_2main_8c.html#a4318a4d968d6367965c23525307e3a18", null ], + [ "SPIKE_RATIO_THRESHOLD", "main_2main_8c.html#a3dd104e27fc259ceca202ec77390ccee", null ], + [ "__attribute__", "main_2main_8c.html#ab898071398b359603a35c202e9c65f3b", null ], + [ "adc_calibration_init", "main_2main_8c.html#aab52a3d83223de794687d57813a5099e", null ], + [ "adc_fft_task", "main_2main_8c.html#aa4dd1082f901d0e72c33ab791e774158", null ], + [ "app_main", "main_2main_8c.html#a630544a7f0a2cc40d8a7fefab7e2fe70", null ], + [ "apply_complex_cutoff", "main_2main_8c.html#a04a97cb61dd06bd5e2a15f3b80b134fc", null ], + [ "apply_window", "main_2main_8c.html#a977caf721d1a48319bf966739332b9d5", null ], + [ "build_frame", "main_2main_8c.html#a820a3865c8d10711e576870a886f5875", null ], + [ "cdc_tx_task", "main_2main_8c.html#ad159bf0147cc4f5288bae8edf3a846e5", null ], + [ "cfg_atten", "main_2main_8c.html#ae21970c9cc814c282cd9e7bba97c6e02", null ], + [ "frame_crc32", "main_2main_8c.html#ae8e1abb3bbe00cc09343f89b55a03324", null ], + [ "perform_fft", "main_2main_8c.html#ab89052be374967a50f397269b6eec1c6", null ], + [ "safe_cdcacm_write_flush", "main_2main_8c.html#adcd8f7518fef8e05fa85c0afaa299c3a", null ], + [ "sample_to_centered", "main_2main_8c.html#a49681a73daa6b957bcab0adae536a3cc", null ], + [ "sample_to_volts", "main_2main_8c.html#ae7f34c0256ef6d0bc6faca260f7041b1", null ], + [ "write_u16_le", "main_2main_8c.html#a6e60394bf8e92ca191c3f7e94724e3b2", null ], + [ "write_u32_le", "main_2main_8c.html#a2185935dcabbab8cd5781d57844535af", null ], + [ "write_u64_le", "main_2main_8c.html#af8adfaadd7f2cd184529b42110fc492a", null ], + [ "cali_handle", "main_2main_8c.html#a997dd7de8753821d8b46c62e9b4bb656", null ], + [ "ch0", "main_2main_8c.html#a3e2b15336d04c8b79a0b00255d689c78", null ], + [ "ch1", "main_2main_8c.html#ac08cd9bafe4a5ff78d9b438d80531b95", null ], + [ "frame_payload_t", "main_2main_8c.html#a1038215c9502fe099ad44ff260c9f949", null ], + [ "g_adc_task_handle", "main_2main_8c.html#af01f92adb5749b2dd209697a4fcf29c9", null ], + [ "g_cdc_task_handle", "main_2main_8c.html#a8b1ccc8a74449f3b3f8310a0cc32a50d", null ], + [ "g_data_port", "main_2main_8c.html#aafd5271c38936e153c9f0214dec8db85", null ], + [ "g_frameq", "main_2main_8c.html#a19661afc33d86552c15b1c04789c54f5", null ], + [ "g_seq", "main_2main_8c.html#afdf719bab629bf62f04b7c3c915b54d9", null ], + [ "TAG", "main_2main_8c.html#a5a85b9c772bbeb480b209a3e6ea92b4c", null ], + [ "win", "main_2main_8c.html#a6eba552959e4e0facb6e702e1183f819", null ] +]; \ No newline at end of file diff --git a/docs/html/main_2main_8c__incl.md5 b/docs/html/main_2main_8c__incl.md5 new file mode 100644 index 0000000..411d27b --- /dev/null +++ b/docs/html/main_2main_8c__incl.md5 @@ -0,0 +1 @@ +738dee49ede56ed1c309714edb65eed9 \ No newline at end of file diff --git a/docs/html/main_2main_8c__incl.svg b/docs/html/main_2main_8c__incl.svg new file mode 100644 index 0000000..aa61369 --- /dev/null +++ b/docs/html/main_2main_8c__incl.svg @@ -0,0 +1,1888 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +main.c + + +Node1 + + +main.c + + + + + +Node2 + + +assert.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +stdio.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +FreeRTOS.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_adc/adc_cali.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_adc/adc_cali_scheme.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_adc/adc_continuous.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +esp_adc/adc_filter.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +esp_attr.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_crc.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +esp_dsp.h + + + + + +Node1->Node13 + + + + + + + + +Node17 + + +esp_err.h + + + + + +Node1->Node17 + + + + + + + + +Node25 + + +esp_log.h + + + + + +Node1->Node25 + + + + + + + + +Node82 + + +esp_heap_caps.h + + + + + +Node1->Node82 + + + + + + + + +Node83 + + +esp_timer.h + + + + + +Node1->Node83 + + + + + + + + +Node84 + + +freertos/queue.h + + + + + +Node1->Node84 + + + + + + + + +Node85 + + +freertos/semphr.h + + + + + +Node1->Node85 + + + + + + + + +Node86 + + +freertos/task.h + + + + + +Node1->Node86 + + + + + + + + +Node87 + + +led_strip.h + + + + + +Node1->Node87 + + + + + + + + +Node93 + + +string.h + + + + + +Node1->Node93 + + + + + + + + +Node94 + + +tinyusb.h + + + + + +Node1->Node94 + + + + + + + + +Node99 + + +tusb_cdc_acm.h + + + + + +Node1->Node99 + + + + + + + + +Node14 + + +dsp_common.h + + + + + +Node13->Node14 + + + + + + + + +Node22 + + +dsp_types.h + + + + + +Node13->Node22 + + + + + + + + +Node24 + + +dsps_dotprod.h + + + + + +Node13->Node24 + + + + + + + + +Node28 + + +dsps_math.h + + + + + +Node13->Node28 + + + + + + + + +Node40 + + +dsps_fir.h + + + + + +Node13->Node40 + + + + + + + + +Node42 + + +dsps_resampler.h + + + + + +Node13->Node42 + + + + + + + + +Node43 + + +dsps_biquad.h + + + + + +Node13->Node43 + + + + + + + + +Node45 + + +dsps_biquad_gen.h + + + + + +Node13->Node45 + + + + + + + + +Node46 + + +dsps_wind.h + + + + + +Node13->Node46 + + + + + + + + +Node53 + + +dsps_conv.h + + + + + +Node13->Node53 + + + + + + + + +Node55 + + +dsps_corr.h + + + + + +Node13->Node55 + + + + + + + + +Node56 + + +dsps_d_gen.h + + + + + +Node13->Node56 + + + + + + + + +Node57 + + +dsps_h_gen.h + + + + + +Node13->Node57 + + + + + + + + +Node58 + + +dsps_tone_gen.h + + + + + +Node13->Node58 + + + + + + + + +Node59 + + +dsps_snr.h + + + + + +Node13->Node59 + + + + + + + + +Node60 + + +dsps_sfdr.h + + + + + +Node13->Node60 + + + + + + + + +Node61 + + +dsps_fft2r.h + + + + + +Node13->Node61 + + + + + + + + +Node64 + + +dsps_fft4r.h + + + + + +Node13->Node64 + + + + + + + + +Node66 + + +dsps_dct.h + + + + + +Node13->Node66 + + + + + + + + +Node67 + + +dspm_matrix.h + + + + + +Node13->Node67 + + + + + + + + +Node78 + + +dsps_view.h + + + + + +Node13->Node78 + + + + + + + + +Node79 + + +dspi_dotprod.h + + + + + +Node13->Node79 + + + + + + + + +Node81 + + +dspi_conv.h + + + + + +Node13->Node81 + + + + + + + + +Node14->Node4 + + + + + + + + +Node15 + + +stdbool.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsp_err.h + + + + + +Node14->Node16 + + + + + + + + +Node20 + + +esp_idf_version.h + + + + + +Node14->Node20 + + + + + + + + +Node21 + + +x86intrin.h + + + + + +Node14->Node21 + + + + + + + + +Node16->Node4 + + + + + + + + +Node16->Node17 + + + + + + + + +Node22->Node4 + + + + + + + + +Node22->Node15 + + + + + + + + +Node23 + + +inttypes.h + + + + + +Node22->Node23 + + + + + + + + +Node24->Node16 + + + + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +dsps_dotprod_platform.h + + + + + +Node24->Node26 + + + + + + + + +Node29 + + +dsps_add.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_sub.h + + + + + +Node28->Node31 + + + + + + + + +Node33 + + +dsps_mul.h + + + + + +Node28->Node33 + + + + + + + + +Node35 + + +dsps_addc.h + + + + + +Node28->Node35 + + + + + + + + +Node37 + + +dsps_mulc.h + + + + + +Node28->Node37 + + + + + + + + +Node39 + + +dsps_sqrt.h + + + + + +Node28->Node39 + + + + + + + + +Node29->Node16 + + + + + + + + +Node31->Node16 + + + + + + + + +Node33->Node16 + + + + + + + + +Node35->Node16 + + + + + + + + +Node37->Node16 + + + + + + + + +Node39->Node16 + + + + + + + + +Node40->Node14 + + + + + + + + +Node40->Node16 + + + + + + + + +Node41 + + +dsps_fir_platform.h + + + + + +Node40->Node41 + + + + + + + + +Node42->Node16 + + + + + + + + +Node42->Node40 + + + + + + + + +Node43->Node16 + + + + + + + + +Node44 + + +dsps_biquad_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node45->Node16 + + + + + + + + +Node47 + + +dsps_wind_hann.h + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +dsps_wind_blackman.h + + + + + +Node46->Node48 + + + + + + + + +Node49 + + +dsps_wind_blackman +_harris.h + + + + + +Node46->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node46->Node50 + + + + + + + + +Node51 + + +dsps_wind_nuttall.h + + + + + +Node46->Node51 + + + + + + + + +Node52 + + +dsps_wind_flat_top.h + + + + + +Node46->Node52 + + + + + + + + +Node53->Node16 + + + + + + + + +Node55->Node16 + + + + + + + + +Node56->Node16 + + + + + + + + +Node57->Node16 + + + + + + + + +Node58->Node16 + + + + + + + + +Node59->Node16 + + + + + + + + +Node60->Node16 + + + + + + + + +Node61->Node16 + + + + + + + + +Node64->Node16 + + + + + + + + +Node66->Node16 + + + + + + + + +Node78->Node16 + + + + + + + + +Node79->Node16 + + + + + + + + +Node79->Node22 + + + + + + + + +Node79->Node25 + + + + + + + + +Node81->Node16 + + + + + + + + +Node81->Node22 + + + + + + + + +Node87->Node4 + + + + + + + + +Node87->Node17 + + + + + + + + +Node87->Node20 + + + + + + + + +Node88 + + +led_strip_rmt.h + + + + + +Node87->Node88 + + + + + + + + +Node91 + + +led_strip_spi.h + + + + + +Node87->Node91 + + + + + + + + +Node88->Node4 + + + + + + + + +Node88->Node17 + + + + + + + + +Node88->Node20 + + + + + + + + +Node91->Node4 + + + + + + + + +Node91->Node17 + + + + + + + + +Node94->Node15 + + + + + + + + +Node94->Node17 + + + + + + + + +Node95 + + +tusb.h + + + + + +Node94->Node95 + + + + + + + + +Node96 + + +tusb_option.h + + + + + +Node94->Node96 + + + + + + + + +Node97 + + +tusb_config.h + + + + + +Node94->Node97 + + + + + + + + +Node98 + + +tinyusb_types.h + + + + + +Node94->Node98 + + + + + + + + +Node97->Node96 + + + + + + + + +Node99->Node4 + + + + + + + + +Node99->Node85 + + + + + + + + +Node99->Node94 + + + + + + + + +Node99->Node95 + + + + + + + + +Node100 + + +freertos/FreeRTOS.h + + + + + +Node99->Node100 + + + + + + + + +Node101 + + +freertos/timers.h + + + + + +Node99->Node101 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c__incl_org.svg b/docs/html/main_2main_8c__incl_org.svg new file mode 100644 index 0000000..2c3e787 --- /dev/null +++ b/docs/html/main_2main_8c__incl_org.svg @@ -0,0 +1,1805 @@ + + + + + + +main.c + + +Node1 + + +main.c + + + + + +Node2 + + +assert.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +stdio.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +FreeRTOS.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +esp_adc/adc_cali.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_adc/adc_cali_scheme.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +esp_adc/adc_continuous.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +esp_adc/adc_filter.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +esp_attr.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +esp_crc.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +esp_dsp.h + + + + + +Node1->Node13 + + + + + + + + +Node17 + + +esp_err.h + + + + + +Node1->Node17 + + + + + + + + +Node25 + + +esp_log.h + + + + + +Node1->Node25 + + + + + + + + +Node82 + + +esp_heap_caps.h + + + + + +Node1->Node82 + + + + + + + + +Node83 + + +esp_timer.h + + + + + +Node1->Node83 + + + + + + + + +Node84 + + +freertos/queue.h + + + + + +Node1->Node84 + + + + + + + + +Node85 + + +freertos/semphr.h + + + + + +Node1->Node85 + + + + + + + + +Node86 + + +freertos/task.h + + + + + +Node1->Node86 + + + + + + + + +Node87 + + +led_strip.h + + + + + +Node1->Node87 + + + + + + + + +Node93 + + +string.h + + + + + +Node1->Node93 + + + + + + + + +Node94 + + +tinyusb.h + + + + + +Node1->Node94 + + + + + + + + +Node99 + + +tusb_cdc_acm.h + + + + + +Node1->Node99 + + + + + + + + +Node14 + + +dsp_common.h + + + + + +Node13->Node14 + + + + + + + + +Node22 + + +dsp_types.h + + + + + +Node13->Node22 + + + + + + + + +Node24 + + +dsps_dotprod.h + + + + + +Node13->Node24 + + + + + + + + +Node28 + + +dsps_math.h + + + + + +Node13->Node28 + + + + + + + + +Node40 + + +dsps_fir.h + + + + + +Node13->Node40 + + + + + + + + +Node42 + + +dsps_resampler.h + + + + + +Node13->Node42 + + + + + + + + +Node43 + + +dsps_biquad.h + + + + + +Node13->Node43 + + + + + + + + +Node45 + + +dsps_biquad_gen.h + + + + + +Node13->Node45 + + + + + + + + +Node46 + + +dsps_wind.h + + + + + +Node13->Node46 + + + + + + + + +Node53 + + +dsps_conv.h + + + + + +Node13->Node53 + + + + + + + + +Node55 + + +dsps_corr.h + + + + + +Node13->Node55 + + + + + + + + +Node56 + + +dsps_d_gen.h + + + + + +Node13->Node56 + + + + + + + + +Node57 + + +dsps_h_gen.h + + + + + +Node13->Node57 + + + + + + + + +Node58 + + +dsps_tone_gen.h + + + + + +Node13->Node58 + + + + + + + + +Node59 + + +dsps_snr.h + + + + + +Node13->Node59 + + + + + + + + +Node60 + + +dsps_sfdr.h + + + + + +Node13->Node60 + + + + + + + + +Node61 + + +dsps_fft2r.h + + + + + +Node13->Node61 + + + + + + + + +Node64 + + +dsps_fft4r.h + + + + + +Node13->Node64 + + + + + + + + +Node66 + + +dsps_dct.h + + + + + +Node13->Node66 + + + + + + + + +Node67 + + +dspm_matrix.h + + + + + +Node13->Node67 + + + + + + + + +Node78 + + +dsps_view.h + + + + + +Node13->Node78 + + + + + + + + +Node79 + + +dspi_dotprod.h + + + + + +Node13->Node79 + + + + + + + + +Node81 + + +dspi_conv.h + + + + + +Node13->Node81 + + + + + + + + +Node14->Node4 + + + + + + + + +Node15 + + +stdbool.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +dsp_err.h + + + + + +Node14->Node16 + + + + + + + + +Node20 + + +esp_idf_version.h + + + + + +Node14->Node20 + + + + + + + + +Node21 + + +x86intrin.h + + + + + +Node14->Node21 + + + + + + + + +Node16->Node4 + + + + + + + + +Node16->Node17 + + + + + + + + +Node22->Node4 + + + + + + + + +Node22->Node15 + + + + + + + + +Node23 + + +inttypes.h + + + + + +Node22->Node23 + + + + + + + + +Node24->Node16 + + + + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +dsps_dotprod_platform.h + + + + + +Node24->Node26 + + + + + + + + +Node29 + + +dsps_add.h + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +dsps_sub.h + + + + + +Node28->Node31 + + + + + + + + +Node33 + + +dsps_mul.h + + + + + +Node28->Node33 + + + + + + + + +Node35 + + +dsps_addc.h + + + + + +Node28->Node35 + + + + + + + + +Node37 + + +dsps_mulc.h + + + + + +Node28->Node37 + + + + + + + + +Node39 + + +dsps_sqrt.h + + + + + +Node28->Node39 + + + + + + + + +Node29->Node16 + + + + + + + + +Node31->Node16 + + + + + + + + +Node33->Node16 + + + + + + + + +Node35->Node16 + + + + + + + + +Node37->Node16 + + + + + + + + +Node39->Node16 + + + + + + + + +Node40->Node14 + + + + + + + + +Node40->Node16 + + + + + + + + +Node41 + + +dsps_fir_platform.h + + + + + +Node40->Node41 + + + + + + + + +Node42->Node16 + + + + + + + + +Node42->Node40 + + + + + + + + +Node43->Node16 + + + + + + + + +Node44 + + +dsps_biquad_platform.h + + + + + +Node43->Node44 + + + + + + + + +Node45->Node16 + + + + + + + + +Node47 + + +dsps_wind_hann.h + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +dsps_wind_blackman.h + + + + + +Node46->Node48 + + + + + + + + +Node49 + + +dsps_wind_blackman +_harris.h + + + + + +Node46->Node49 + + + + + + + + +Node50 + + +dsps_wind_blackman +_nuttall.h + + + + + +Node46->Node50 + + + + + + + + +Node51 + + +dsps_wind_nuttall.h + + + + + +Node46->Node51 + + + + + + + + +Node52 + + +dsps_wind_flat_top.h + + + + + +Node46->Node52 + + + + + + + + +Node53->Node16 + + + + + + + + +Node55->Node16 + + + + + + + + +Node56->Node16 + + + + + + + + +Node57->Node16 + + + + + + + + +Node58->Node16 + + + + + + + + +Node59->Node16 + + + + + + + + +Node60->Node16 + + + + + + + + +Node61->Node16 + + + + + + + + +Node64->Node16 + + + + + + + + +Node66->Node16 + + + + + + + + +Node78->Node16 + + + + + + + + +Node79->Node16 + + + + + + + + +Node79->Node22 + + + + + + + + +Node79->Node25 + + + + + + + + +Node81->Node16 + + + + + + + + +Node81->Node22 + + + + + + + + +Node87->Node4 + + + + + + + + +Node87->Node17 + + + + + + + + +Node87->Node20 + + + + + + + + +Node88 + + +led_strip_rmt.h + + + + + +Node87->Node88 + + + + + + + + +Node91 + + +led_strip_spi.h + + + + + +Node87->Node91 + + + + + + + + +Node88->Node4 + + + + + + + + +Node88->Node17 + + + + + + + + +Node88->Node20 + + + + + + + + +Node91->Node4 + + + + + + + + +Node91->Node17 + + + + + + + + +Node94->Node15 + + + + + + + + +Node94->Node17 + + + + + + + + +Node95 + + +tusb.h + + + + + +Node94->Node95 + + + + + + + + +Node96 + + +tusb_option.h + + + + + +Node94->Node96 + + + + + + + + +Node97 + + +tusb_config.h + + + + + +Node94->Node97 + + + + + + + + +Node98 + + +tinyusb_types.h + + + + + +Node94->Node98 + + + + + + + + +Node97->Node96 + + + + + + + + +Node99->Node4 + + + + + + + + +Node99->Node85 + + + + + + + + +Node99->Node94 + + + + + + + + +Node99->Node95 + + + + + + + + +Node100 + + +freertos/FreeRTOS.h + + + + + +Node99->Node100 + + + + + + + + +Node101 + + +freertos/timers.h + + + + + +Node99->Node101 + + + + + + + + diff --git a/docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph.md5 b/docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph.md5 new file mode 100644 index 0000000..d40452f --- /dev/null +++ b/docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph.md5 @@ -0,0 +1 @@ +52307aeeae1997c81ac0fb7802aae42b \ No newline at end of file diff --git a/docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph.svg b/docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph.svg new file mode 100644 index 0000000..0c1706b --- /dev/null +++ b/docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + +write_u32_le + + +Node1 + + +write_u32_le + + + + + +Node2 + + +build_frame + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +write_u64_le + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +adc_fft_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5->Node2 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph_org.svg b/docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph_org.svg new file mode 100644 index 0000000..9b31d97 --- /dev/null +++ b/docs/html/main_2main_8c_a2185935dcabbab8cd5781d57844535af_icgraph_org.svg @@ -0,0 +1,102 @@ + + + + + + +write_u32_le + + +Node1 + + +write_u32_le + + + + + +Node2 + + +build_frame + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +write_u64_le + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +adc_fft_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + +Node5->Node2 + + + + + + + + diff --git a/docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph.md5 b/docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph.md5 new file mode 100644 index 0000000..35c6d6c --- /dev/null +++ b/docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph.md5 @@ -0,0 +1 @@ +144bedb903b773e6df1038fabc79b399 \ No newline at end of file diff --git a/docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph.svg b/docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph.svg new file mode 100644 index 0000000..9ba5ff0 --- /dev/null +++ b/docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +sample_to_centered + + +Node1 + + +sample_to_centered + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph_org.svg b/docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph_org.svg new file mode 100644 index 0000000..59fe363 --- /dev/null +++ b/docs/html/main_2main_8c_a49681a73daa6b957bcab0adae536a3cc_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +sample_to_centered + + +Node1 + + +sample_to_centered + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 b/docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 new file mode 100644 index 0000000..243f085 --- /dev/null +++ b/docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.md5 @@ -0,0 +1 @@ +1d81ea1a9111b184fd88a1a70c4eab0c \ No newline at end of file diff --git a/docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg b/docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg new file mode 100644 index 0000000..255690b --- /dev/null +++ b/docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph.svg @@ -0,0 +1,1108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +cdc_tx_task + + + + + +Node1->Node13 + + + + + + + + +Node23 + + +dsps_fft4r_init_fc32 + + + + + +Node1->Node23 + + + + + + + + +Node25 + + +dsps_wind_blackman_f32 + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node1->Node26 + + + + + + + + +Node27 + + +dsps_wind_blackman +_nuttall_f32 + + + + + +Node1->Node27 + + + + + + + + +Node28 + + +dsps_wind_flat_top_f32 + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +dsps_wind_hann_f32 + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +dsps_wind_nuttall_f32 + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +tinyusb_driver_install + + + + + +Node1->Node31 + + + + + + + + +Node35 + + +tusb_cdc_acm_init + + + + + +Node1->Node35 + + + + + + + + +Node46 + + +wave_gen_init + + + + + +Node1->Node46 + + + + + + + + +Node47 + + +wave_gen_sdm_start + + + + + +Node1->Node47 + + + + + + + + +Node48 + + +wave_gen_set_type + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +wave_gen_set_volume + + + + + +Node1->Node49 + + + + + + + + +Node50 + + +wave_gen_start + + + + + +Node1->Node50 + + + + + + + + +Node3 + + +adc_calibration_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +apply_window + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +build_frame + + + + + +Node2->Node5 + + + + + + + + +Node10 + + +cfg_atten + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +perform_fft + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +sample_to_centered + + + + + +Node2->Node12 + + + + + + + + +Node6 + + +frame_crc32 + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +write_u16_le + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +write_u32_le + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +write_u64_le + + + + + +Node5->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node14 + + +led_strip_refresh + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +led_strip_set_pixel + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +safe_cdcacm_write_flush + + + + + +Node13->Node16 + + + + + + + + +Node21 + + +tinyusb_cdcacm_write +_queue + + + + + +Node13->Node21 + + + + + + + + +Node22 + + +tusb_cdc_acm_initialized + + + + + +Node13->Node22 + + + + + + + + +Node17 + + +tinyusb_cdcacm_write +_flush + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +get_acm + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +tinyusb_cdc_get_intf + + + + + +Node18->Node19 + + + + + + + + +Node21->Node18 + + + + + + + + +Node22->Node18 + + + + + + + + +Node24 + + +dsp_power_of_two + + + + + +Node23->Node24 + + + + + + + + +Node32 + + +tusb_run_task + + + + + +Node31->Node32 + + + + + + + + +Node34 + + +tusb_set_descriptor + + + + + +Node31->Node34 + + + + + + + + +Node33 + + +tusb_device_task + + + + + +Node32->Node33 + + + + + + + + +Node35->Node18 + + + + + + + + +Node36 + + +alloc_obj + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +free_obj + + + + + +Node35->Node37 + + + + + + + + +Node38 + + +tinyusb_cdc_deinit + + + + + +Node35->Node38 + + + + + + + + +Node42 + + +tinyusb_cdc_init + + + + + +Node35->Node42 + + + + + + + + +Node45 + + +tinyusb_cdcacm_register +_callback + + + + + +Node35->Node45 + + + + + + + + +Node36->Node19 + + + + + + + + +Node37->Node19 + + + + + + + + +Node39 + + +cdc_obj_check + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +tusb_cdc_deinit_comm + + + + + +Node38->Node40 + + + + + + + + +Node41 + + +tusb_cdc_deinit_data + + + + + +Node38->Node41 + + + + + + + + +Node39->Node19 + + + + + + + + +Node40->Node39 + + + + + + + + +Node41->Node39 + + + + + + + + +Node42->Node39 + + + + + + + + +Node43 + + +tusb_cdc_comm_init + + + + + +Node42->Node43 + + + + + + + + +Node44 + + +tusb_cdc_data_init + + + + + +Node42->Node44 + + + + + + + + +Node43->Node39 + + + + + + + + +Node44->Node39 + + + + + + + + +Node45->Node18 + + + + + + + + +Node51 + + +wave_gen_task + + + + + +Node50->Node51 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg b/docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg new file mode 100644 index 0000000..18c5e0c --- /dev/null +++ b/docs/html/main_2main_8c_a630544a7f0a2cc40d8a7fefab7e2fe70_cgraph_org.svg @@ -0,0 +1,1025 @@ + + + + + + +app_main + + +Node1 + + +app_main + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +cdc_tx_task + + + + + +Node1->Node13 + + + + + + + + +Node23 + + +dsps_fft4r_init_fc32 + + + + + +Node1->Node23 + + + + + + + + +Node25 + + +dsps_wind_blackman_f32 + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +dsps_wind_blackman +_harris_f32 + + + + + +Node1->Node26 + + + + + + + + +Node27 + + +dsps_wind_blackman +_nuttall_f32 + + + + + +Node1->Node27 + + + + + + + + +Node28 + + +dsps_wind_flat_top_f32 + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +dsps_wind_hann_f32 + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +dsps_wind_nuttall_f32 + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +tinyusb_driver_install + + + + + +Node1->Node31 + + + + + + + + +Node35 + + +tusb_cdc_acm_init + + + + + +Node1->Node35 + + + + + + + + +Node46 + + +wave_gen_init + + + + + +Node1->Node46 + + + + + + + + +Node47 + + +wave_gen_sdm_start + + + + + +Node1->Node47 + + + + + + + + +Node48 + + +wave_gen_set_type + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +wave_gen_set_volume + + + + + +Node1->Node49 + + + + + + + + +Node50 + + +wave_gen_start + + + + + +Node1->Node50 + + + + + + + + +Node3 + + +adc_calibration_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +apply_window + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +build_frame + + + + + +Node2->Node5 + + + + + + + + +Node10 + + +cfg_atten + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +perform_fft + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +sample_to_centered + + + + + +Node2->Node12 + + + + + + + + +Node6 + + +frame_crc32 + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +write_u16_le + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +write_u32_le + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +write_u64_le + + + + + +Node5->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node14 + + +led_strip_refresh + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +led_strip_set_pixel + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +safe_cdcacm_write_flush + + + + + +Node13->Node16 + + + + + + + + +Node21 + + +tinyusb_cdcacm_write +_queue + + + + + +Node13->Node21 + + + + + + + + +Node22 + + +tusb_cdc_acm_initialized + + + + + +Node13->Node22 + + + + + + + + +Node17 + + +tinyusb_cdcacm_write +_flush + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +get_acm + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +tinyusb_cdc_get_intf + + + + + +Node18->Node19 + + + + + + + + +Node21->Node18 + + + + + + + + +Node22->Node18 + + + + + + + + +Node24 + + +dsp_power_of_two + + + + + +Node23->Node24 + + + + + + + + +Node32 + + +tusb_run_task + + + + + +Node31->Node32 + + + + + + + + +Node34 + + +tusb_set_descriptor + + + + + +Node31->Node34 + + + + + + + + +Node33 + + +tusb_device_task + + + + + +Node32->Node33 + + + + + + + + +Node35->Node18 + + + + + + + + +Node36 + + +alloc_obj + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +free_obj + + + + + +Node35->Node37 + + + + + + + + +Node38 + + +tinyusb_cdc_deinit + + + + + +Node35->Node38 + + + + + + + + +Node42 + + +tinyusb_cdc_init + + + + + +Node35->Node42 + + + + + + + + +Node45 + + +tinyusb_cdcacm_register +_callback + + + + + +Node35->Node45 + + + + + + + + +Node36->Node19 + + + + + + + + +Node37->Node19 + + + + + + + + +Node39 + + +cdc_obj_check + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +tusb_cdc_deinit_comm + + + + + +Node38->Node40 + + + + + + + + +Node41 + + +tusb_cdc_deinit_data + + + + + +Node38->Node41 + + + + + + + + +Node39->Node19 + + + + + + + + +Node40->Node39 + + + + + + + + +Node41->Node39 + + + + + + + + +Node42->Node39 + + + + + + + + +Node43 + + +tusb_cdc_comm_init + + + + + +Node42->Node43 + + + + + + + + +Node44 + + +tusb_cdc_data_init + + + + + +Node42->Node44 + + + + + + + + +Node43->Node39 + + + + + + + + +Node44->Node39 + + + + + + + + +Node45->Node18 + + + + + + + + +Node51 + + +wave_gen_task + + + + + +Node50->Node51 + + + + + + + + diff --git a/docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph.md5 b/docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph.md5 new file mode 100644 index 0000000..ac7e9ff --- /dev/null +++ b/docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph.md5 @@ -0,0 +1 @@ +a6b6c574b1dc3fd3543fddf426f9747e \ No newline at end of file diff --git a/docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph.svg b/docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph.svg new file mode 100644 index 0000000..ef6d25d --- /dev/null +++ b/docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +write_u16_le + + +Node1 + + +write_u16_le + + + + + +Node2 + + +build_frame + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +adc_fft_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph_org.svg b/docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph_org.svg new file mode 100644 index 0000000..1368eee --- /dev/null +++ b/docs/html/main_2main_8c_a6e60394bf8e92ca191c3f7e94724e3b2_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +write_u16_le + + +Node1 + + +write_u16_le + + + + + +Node2 + + +build_frame + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +adc_fft_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph.md5 b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph.md5 new file mode 100644 index 0000000..d5677e3 --- /dev/null +++ b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph.md5 @@ -0,0 +1 @@ +88f07a35a9458bf3dad0bb8d815c8d18 \ No newline at end of file diff --git a/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph.svg b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph.svg new file mode 100644 index 0000000..b89a5dc --- /dev/null +++ b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + +build_frame + + +Node1 + + +build_frame + + + + + +Node2 + + +frame_crc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +write_u16_le + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +write_u32_le + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +write_u64_le + + + + + +Node1->Node5 + + + + + + + + +Node5->Node4 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph_org.svg b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph_org.svg new file mode 100644 index 0000000..3e2d7c8 --- /dev/null +++ b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_cgraph_org.svg @@ -0,0 +1,102 @@ + + + + + + +build_frame + + +Node1 + + +build_frame + + + + + +Node2 + + +frame_crc32 + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +write_u16_le + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +write_u32_le + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +write_u64_le + + + + + +Node1->Node5 + + + + + + + + +Node5->Node4 + + + + + + + + diff --git a/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph.md5 b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph.md5 new file mode 100644 index 0000000..d0e6350 --- /dev/null +++ b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph.md5 @@ -0,0 +1 @@ +ac2ff7ae1b145cc8c22b0d8b79129e98 \ No newline at end of file diff --git a/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph.svg b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph.svg new file mode 100644 index 0000000..7edba68 --- /dev/null +++ b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +build_frame + + +Node1 + + +build_frame + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph_org.svg b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph_org.svg new file mode 100644 index 0000000..fe9937b --- /dev/null +++ b/docs/html/main_2main_8c_a820a3865c8d10711e576870a886f5875_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +build_frame + + +Node1 + + +build_frame + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph.md5 b/docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph.md5 new file mode 100644 index 0000000..b45d4f2 --- /dev/null +++ b/docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph.md5 @@ -0,0 +1 @@ +d6e584598057e096a03cf80e490c597f \ No newline at end of file diff --git a/docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph.svg b/docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph.svg new file mode 100644 index 0000000..9e7879f --- /dev/null +++ b/docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +apply_window + + +Node1 + + +apply_window + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph_org.svg b/docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph_org.svg new file mode 100644 index 0000000..ba73229 --- /dev/null +++ b/docs/html/main_2main_8c_a977caf721d1a48319bf966739332b9d5_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +apply_window + + +Node1 + + +apply_window + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph.md5 b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph.md5 new file mode 100644 index 0000000..7e2f8cc --- /dev/null +++ b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph.md5 @@ -0,0 +1 @@ +4d7d6b525273ff11542c64c3a72af37c \ No newline at end of file diff --git a/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph.svg b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph.svg new file mode 100644 index 0000000..9f711f4 --- /dev/null +++ b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + +adc_fft_task + + +Node1 + + +adc_fft_task + + + + + +Node2 + + +adc_calibration_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +apply_window + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +build_frame + + + + + +Node1->Node4 + + + + + + + + +Node9 + + +cfg_atten + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +perform_fft + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +sample_to_centered + + + + + +Node1->Node11 + + + + + + + + +Node5 + + +frame_crc32 + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +write_u16_le + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +write_u32_le + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +write_u64_le + + + + + +Node4->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph_org.svg b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph_org.svg new file mode 100644 index 0000000..b4f2f79 --- /dev/null +++ b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_cgraph_org.svg @@ -0,0 +1,210 @@ + + + + + + +adc_fft_task + + +Node1 + + +adc_fft_task + + + + + +Node2 + + +adc_calibration_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +apply_window + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +build_frame + + + + + +Node1->Node4 + + + + + + + + +Node9 + + +cfg_atten + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +perform_fft + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +sample_to_centered + + + + + +Node1->Node11 + + + + + + + + +Node5 + + +frame_crc32 + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +write_u16_le + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +write_u32_le + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +write_u64_le + + + + + +Node4->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + diff --git a/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph.md5 b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph.md5 new file mode 100644 index 0000000..9cac155 --- /dev/null +++ b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph.md5 @@ -0,0 +1 @@ +b959e02c5cd56af63000295b011d03f7 \ No newline at end of file diff --git a/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph.svg b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph.svg new file mode 100644 index 0000000..da51bbf --- /dev/null +++ b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +adc_fft_task + + +Node1 + + +adc_fft_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph_org.svg b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph_org.svg new file mode 100644 index 0000000..1ebce68 --- /dev/null +++ b/docs/html/main_2main_8c_aa4dd1082f901d0e72c33ab791e774158_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +adc_fft_task + + +Node1 + + +adc_fft_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph.md5 b/docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph.md5 new file mode 100644 index 0000000..0b188aa --- /dev/null +++ b/docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph.md5 @@ -0,0 +1 @@ +aaf1319a3e457a0f32f2a09a92229faa \ No newline at end of file diff --git a/docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph.svg b/docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph.svg new file mode 100644 index 0000000..b9658cc --- /dev/null +++ b/docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +adc_calibration_init + + +Node1 + + +adc_calibration_init + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph_org.svg b/docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph_org.svg new file mode 100644 index 0000000..68300e2 --- /dev/null +++ b/docs/html/main_2main_8c_aab52a3d83223de794687d57813a5099e_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +adc_calibration_init + + +Node1 + + +adc_calibration_init + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph.md5 b/docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph.md5 new file mode 100644 index 0000000..edb6696 --- /dev/null +++ b/docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph.md5 @@ -0,0 +1 @@ +1341fdae799d142baed527d16d24650b \ No newline at end of file diff --git a/docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph.svg b/docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph.svg new file mode 100644 index 0000000..f6f783c --- /dev/null +++ b/docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +perform_fft + + +Node1 + + +perform_fft + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph_org.svg b/docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph_org.svg new file mode 100644 index 0000000..13edaa7 --- /dev/null +++ b/docs/html/main_2main_8c_ab89052be374967a50f397269b6eec1c6_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +perform_fft + + +Node1 + + +perform_fft + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph.md5 b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph.md5 new file mode 100644 index 0000000..045a369 --- /dev/null +++ b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph.md5 @@ -0,0 +1 @@ +1734262cb2ba471226fcad76428a9943 \ No newline at end of file diff --git a/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph.svg b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph.svg new file mode 100644 index 0000000..712e050 --- /dev/null +++ b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + +__attribute__ + + +Node1 + + +__attribute__ + + + + + +Node1->Node1 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph_org.svg b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph_org.svg new file mode 100644 index 0000000..900f884 --- /dev/null +++ b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_cgraph_org.svg @@ -0,0 +1,30 @@ + + + + + + +__attribute__ + + +Node1 + + +__attribute__ + + + + + +Node1->Node1 + + + + + + + + diff --git a/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph.md5 b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph.md5 new file mode 100644 index 0000000..537444c --- /dev/null +++ b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph.md5 @@ -0,0 +1 @@ +7790b9a68df737e1b9b0760c9a4ac030 \ No newline at end of file diff --git a/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph.svg b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph.svg new file mode 100644 index 0000000..1566265 --- /dev/null +++ b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + +__attribute__ + + +Node1 + + +__attribute__ + + + + + +Node1->Node1 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph_org.svg b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph_org.svg new file mode 100644 index 0000000..a45409b --- /dev/null +++ b/docs/html/main_2main_8c_ab898071398b359603a35c202e9c65f3b_icgraph_org.svg @@ -0,0 +1,30 @@ + + + + + + +__attribute__ + + +Node1 + + +__attribute__ + + + + + +Node1->Node1 + + + + + + + + diff --git a/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph.md5 b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph.md5 new file mode 100644 index 0000000..8b1798c --- /dev/null +++ b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph.md5 @@ -0,0 +1 @@ +a24f6bd4f97c7374d1ac49a63e578eae \ No newline at end of file diff --git a/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph.svg b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph.svg new file mode 100644 index 0000000..18e3092 --- /dev/null +++ b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph.svg @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +cdc_tx_task + + +Node1 + + +cdc_tx_task + + + + + +Node2 + + +led_strip_refresh + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_set_pixel + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +safe_cdcacm_write_flush + + + + + +Node1->Node4 + + + + + + + + +Node9 + + +tinyusb_cdcacm_write +_queue + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +tusb_cdc_acm_initialized + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +tinyusb_cdcacm_write +_flush + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +get_acm + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +tud_cdc_n_write_occupied + + + + + +Node5->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph_org.svg b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph_org.svg new file mode 100644 index 0000000..937b8fa --- /dev/null +++ b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_cgraph_org.svg @@ -0,0 +1,185 @@ + + + + + + +cdc_tx_task + + +Node1 + + +cdc_tx_task + + + + + +Node2 + + +led_strip_refresh + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +led_strip_set_pixel + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +safe_cdcacm_write_flush + + + + + +Node1->Node4 + + + + + + + + +Node9 + + +tinyusb_cdcacm_write +_queue + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +tusb_cdc_acm_initialized + + + + + +Node1->Node10 + + + + + + + + +Node5 + + +tinyusb_cdcacm_write +_flush + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +get_acm + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +tud_cdc_n_write_occupied + + + + + +Node5->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10->Node6 + + + + + + + + diff --git a/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph.md5 b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph.md5 new file mode 100644 index 0000000..0a0038b --- /dev/null +++ b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph.md5 @@ -0,0 +1 @@ +820d2ade4c120e838badfa4761ddba91 \ No newline at end of file diff --git a/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph.svg b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph.svg new file mode 100644 index 0000000..1882f50 --- /dev/null +++ b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +cdc_tx_task + + +Node1 + + +cdc_tx_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph_org.svg b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph_org.svg new file mode 100644 index 0000000..dd29063 --- /dev/null +++ b/docs/html/main_2main_8c_ad159bf0147cc4f5288bae8edf3a846e5_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +cdc_tx_task + + +Node1 + + +cdc_tx_task + + + + + +Node2 + + +app_main + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph.md5 b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph.md5 new file mode 100644 index 0000000..be66003 --- /dev/null +++ b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph.md5 @@ -0,0 +1 @@ +3b7468cb1b7bfa0b4cd1399b287ad74a \ No newline at end of file diff --git a/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph.svg b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph.svg new file mode 100644 index 0000000..3756b1e --- /dev/null +++ b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph.svg @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +safe_cdcacm_write_flush + + +Node1 + + +safe_cdcacm_write_flush + + + + + +Node2 + + +tinyusb_cdcacm_write +_flush + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +get_acm + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +tud_cdc_n_write_occupied + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +tinyusb_cdc_get_intf + + + + + +Node3->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph_org.svg b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph_org.svg new file mode 100644 index 0000000..304556c --- /dev/null +++ b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_cgraph_org.svg @@ -0,0 +1,94 @@ + + + + + + +safe_cdcacm_write_flush + + +Node1 + + +safe_cdcacm_write_flush + + + + + +Node2 + + +tinyusb_cdcacm_write +_flush + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +get_acm + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +tud_cdc_n_write_occupied + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +tinyusb_cdc_get_intf + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph.md5 b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph.md5 new file mode 100644 index 0000000..846f59d --- /dev/null +++ b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph.md5 @@ -0,0 +1 @@ +53445635ff950a0740c3ad046f961607 \ No newline at end of file diff --git a/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph.svg b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph.svg new file mode 100644 index 0000000..44f3dcd --- /dev/null +++ b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +safe_cdcacm_write_flush + + +Node1 + + +safe_cdcacm_write_flush + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph_org.svg b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph_org.svg new file mode 100644 index 0000000..72b7524 --- /dev/null +++ b/docs/html/main_2main_8c_adcd8f7518fef8e05fa85c0afaa299c3a_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +safe_cdcacm_write_flush + + +Node1 + + +safe_cdcacm_write_flush + + + + + +Node2 + + +cdc_tx_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph.md5 b/docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph.md5 new file mode 100644 index 0000000..d771a21 --- /dev/null +++ b/docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph.md5 @@ -0,0 +1 @@ +98f980beecf0123826c72bf7a48e5885 \ No newline at end of file diff --git a/docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph.svg b/docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph.svg new file mode 100644 index 0000000..5bc921e --- /dev/null +++ b/docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +cfg_atten + + +Node1 + + +cfg_atten + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph_org.svg b/docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph_org.svg new file mode 100644 index 0000000..46dc6fb --- /dev/null +++ b/docs/html/main_2main_8c_ae21970c9cc814c282cd9e7bba97c6e02_icgraph_org.svg @@ -0,0 +1,57 @@ + + + + + + +cfg_atten + + +Node1 + + +cfg_atten + + + + + +Node2 + + +adc_fft_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +app_main + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph.md5 b/docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph.md5 new file mode 100644 index 0000000..3036cb5 --- /dev/null +++ b/docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph.md5 @@ -0,0 +1 @@ +ecb23dbaf70162aba96a6f36fde709a2 \ No newline at end of file diff --git a/docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph.svg b/docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph.svg new file mode 100644 index 0000000..0e89683 --- /dev/null +++ b/docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +frame_crc32 + + +Node1 + + +frame_crc32 + + + + + +Node2 + + +build_frame + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +adc_fft_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph_org.svg b/docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph_org.svg new file mode 100644 index 0000000..777e4e2 --- /dev/null +++ b/docs/html/main_2main_8c_ae8e1abb3bbe00cc09343f89b55a03324_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +frame_crc32 + + +Node1 + + +frame_crc32 + + + + + +Node2 + + +build_frame + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +adc_fft_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph.md5 b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph.md5 new file mode 100644 index 0000000..9d8d8f8 --- /dev/null +++ b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph.md5 @@ -0,0 +1 @@ +32b10cc2662816c5bc8ec2e044c3ed66 \ No newline at end of file diff --git a/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph.svg b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph.svg new file mode 100644 index 0000000..87c0f36 --- /dev/null +++ b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +write_u64_le + + +Node1 + + +write_u64_le + + + + + +Node2 + + +write_u32_le + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph_org.svg b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph_org.svg new file mode 100644 index 0000000..49f4bf6 --- /dev/null +++ b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_cgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +write_u64_le + + +Node1 + + +write_u64_le + + + + + +Node2 + + +write_u32_le + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph.md5 b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph.md5 new file mode 100644 index 0000000..6cfb3bc --- /dev/null +++ b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph.md5 @@ -0,0 +1 @@ +89f3f449e4fcd6f0e4b83b23139ada51 \ No newline at end of file diff --git a/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph.svg b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph.svg new file mode 100644 index 0000000..18a508f --- /dev/null +++ b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +write_u64_le + + +Node1 + + +write_u64_le + + + + + +Node2 + + +build_frame + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +adc_fft_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + + + + + + diff --git a/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph_org.svg b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph_org.svg new file mode 100644 index 0000000..85533a5 --- /dev/null +++ b/docs/html/main_2main_8c_af8adfaadd7f2cd184529b42110fc492a_icgraph_org.svg @@ -0,0 +1,75 @@ + + + + + + +write_u64_le + + +Node1 + + +write_u64_le + + + + + +Node2 + + +build_frame + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +adc_fft_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +app_main + + + + + +Node3->Node4 + + + + + + + + diff --git a/docs/html/main_2main_8c_source.html b/docs/html/main_2main_8c_source.html new file mode 100644 index 0000000..20415e8 --- /dev/null +++ b/docs/html/main_2main_8c_source.html @@ -0,0 +1,1096 @@ + + + + + + + +ESP-IDF Firmware: main.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main/main.c
+
+
+Go to the documentation of this file.
1#include <assert.h>
+
2#include <math.h>
+
3#include <stdint.h>
+
4#include <stdio.h>
+
5#include "FreeRTOS.h"
+
6
+
7#include "esp_adc/adc_cali.h"
+
8#include "esp_adc/adc_cali_scheme.h"
+
9#include "esp_adc/adc_continuous.h"
+
10#include "esp_adc/adc_filter.h"
+
11#include "esp_attr.h"
+
12#include "esp_crc.h"
+
13#include "esp_dsp.h"
+
14#include "esp_err.h"
+
15#include "esp_heap_caps.h"
+
16#include "esp_log.h"
+
17#include "esp_timer.h"
+
18#include "freertos/queue.h"
+
19#include "freertos/semphr.h"
+
20#include "freertos/task.h"
+
21#include "led_strip.h"
+
22#include "string.h"
+
23#include "tinyusb.h"
+
24#include "tusb_cdc_acm.h"
+
25
+
26#if CONFIG_ENABLE_I2S_WAVE_GEN || CONFIG_ENABLE_SDM_WAVE_GEN
+
27#include "wave_gen.h"
+
28#endif
+
29
+
30
+
31static const char *TAG = "adc_fft";
+
32
+
33#if defined(__GNUC__) && !defined(__clang__)
+
34#define OPTIMIZE_O2 __attribute__((optimize("O2")))
+
35#else
+
36#define OPTIMIZE_O2
+
37#endif
+
38
+
39#define FFT_SIZE CONFIG_ADC_FFT_SIZE
+
40#define ADC_SPS CONFIG_ADC_FS
+
41
+
42/* Build invariants: transport builds must not modify spectra. */
+
43#if CONFIG_FFT_BUILD_TRANSPORT
+
44#if CONFIG_ADC_ENABLE_WINDOW || CONFIG_OUTPUT_TOPK_ENABLE || \
+
45 (CONFIG_OUTPUT_CUTOFF_HZ > 0) || CONFIG_ADC_IIR_FILTER_ENABLE
+
46#error "Transport build forbids windowing/top-K/cutoff/IIR filtering"
+
47#endif
+
48#endif
+
49
+
50#define CHANNELS 2
+
51#define SAMPLE_MAX 4096
+
52
+
53#define LED_STRIP_RMT_RES_HZ (10 * 1000 * 1000)
+
54
+
55#define SPIKE_DB_THRESHOLD 20.0f
+
56#define SPIKE_RATIO_THRESHOLD 8.0f
+
57#define SPIKE_MIN_AVG_LINEAR 1e-7f
+
58
+
59static float *ch0 = NULL;
+
60static float *ch1 = NULL;
+
61static float *win = NULL;
+
62
+
+
63static adc_cali_handle_t cali_handle;
+
64
+
65typedef struct __attribute__((packed)) {
+
66 uint64_t t_ms;
+
67 uint32_t sps;
+
68 uint32_t fft;
+
69 char label[4];
+
70 float data[FFT_SIZE];
+ +
+
72
+
73#define FRAME_MAGIC_0 0xF0 // "FOOD"
+
74#define FRAME_MAGIC_1 0x0D // "FOOD"
+
75#define FRAME_MAGIC_2 0xF0 // "FOOD"
+
76#define FRAME_MAGIC_3 0x0D // "FOOD"
+
77#define FRAME_VERSION 0x02 // Version 2: uint64_t timestamp
+
78#define FRAME_HEADER_SIZE 9u // 4 magic + 1 version + 2 seq + 2 payload length
+
79#define FRAME_PAYLOAD_SIZE (sizeof(frame_payload_t)) // Real data
+
+
80#define FRAME_TOTAL_SIZE \
+
81 (FRAME_HEADER_SIZE + FRAME_PAYLOAD_SIZE + 4u) // +4 for CRC32
+
+
82_Static_assert(FRAME_PAYLOAD_SIZE <= UINT16_MAX,
+
83 "payload length must fit in uint16");
+
84_Static_assert((FRAME_PAYLOAD_SIZE % 4u) == 0u,
+
85 "payload must stay 32-bit aligned");
+
86
+
+
87typedef struct {
+ + +
+
90
+
91static QueueHandle_t g_frameq;
+
92static uint16_t g_seq;
+ +
94static TaskHandle_t g_cdc_task_handle;
+
95static TaskHandle_t g_adc_task_handle;
+
96
+
97#if CONFIG_STATUS_NEOPIXEL_ENABLE
+
98static led_strip_handle_t g_led_strip;
+
99static SemaphoreHandle_t g_led_lock;
+
100#endif
+
101
+
102// Task stack size: 4096 words (~16 KB). CDC TX uses small locals and no large
+
103// stack arrays; 4K words leaves comfortable headroom for TinyUSB calls.
+
104#define CDC_TX_TASK_STACK_SIZE 4096
+
105// FFT producer task stack size: 8192 words (~32 KB). FFT math runs in-place on
+
106// globals; stack usage is modest but we keep extra headroom for IDF/DSP calls.
+
107#define ADC_TASK_STACK_SIZE 8192
+
108
+
+
109static inline void write_u16_le(uint8_t *dst, uint16_t value) {
+
110 dst[0] = (uint8_t)(value & 0xFFu);
+
111 dst[1] = (uint8_t)((value >> 8) & 0xFFu);
+
112}
+
+
113
+
+
114static inline void write_u32_le(uint8_t *dst, uint32_t value) {
+
115 dst[0] = (uint8_t)(value & 0xFFu);
+
116 dst[1] = (uint8_t)((value >> 8) & 0xFFu);
+
117 dst[2] = (uint8_t)((value >> 16) & 0xFFu);
+
118 dst[3] = (uint8_t)((value >> 24) & 0xFFu);
+
119}
+
+
120
+
+
121static inline void write_u64_le(uint8_t *dst, uint64_t value) {
+
122 write_u32_le(dst, (uint32_t)(value & 0xFFFFFFFFu));
+
123 write_u32_le(dst + 4, (uint32_t)((value >> 32) & 0xFFFFFFFFu));
+
124}
+
+
125
+
+
126static uint32_t frame_crc32(const uint8_t *data, size_t len) {
+
127 return esp_crc32_le(0, data, len);
+
128}
+
+
129
+
+
130static void build_frame(frame_wire_t *out, const float *data,
+
131 const char label[4], uint64_t t_ms, uint32_t sps,
+
132 uint16_t seq) {
+
133 uint8_t *dst = out->bytes;
+
134 dst[0] = FRAME_MAGIC_0;
+
135 dst[1] = FRAME_MAGIC_1;
+
136 dst[2] = FRAME_MAGIC_2;
+
137 dst[3] = FRAME_MAGIC_3;
+
138 dst[4] = FRAME_VERSION;
+
139 write_u16_le(dst + 5, seq);
+
140 write_u16_le(dst + 7, (uint16_t)FRAME_PAYLOAD_SIZE);
+
141
+
142 size_t off = FRAME_HEADER_SIZE;
+
143 write_u64_le(dst + off, t_ms);
+
144 off += sizeof(uint64_t);
+
145 write_u32_le(dst + off, sps);
+
146 off += sizeof(uint32_t);
+
147 write_u32_le(dst + off, FFT_SIZE);
+
148 off += sizeof(uint32_t);
+
149 memcpy(dst + off, label, 4);
+
150 off += 4;
+
151 memcpy(dst + off, data, sizeof(float) * FFT_SIZE);
+
152 off += sizeof(float) * FFT_SIZE;
+
153
+
154 uint32_t crc = frame_crc32(dst, FRAME_HEADER_SIZE + FRAME_PAYLOAD_SIZE);
+
155 write_u32_le(dst + off, crc);
+
156}
+
+
157
+
158#if CONFIG_DIAG_CDC_ENABLE
+
159typedef struct {
+
160 uint64_t total_bytes_sent; /* lifetime */
+
161 uint32_t window_bytes; /* bytes in current window */
+
162 uint64_t window_start_ms;
+
163 uint32_t wa_min;
+
164 uint32_t wa_max;
+
165 uint64_t wa_sum;
+
166 uint32_t wa_count;
+
167} diag_cdc_t;
+
168static diag_cdc_t s_diag_cdc;
+
169
+
170static void diag_cdc_reset_window(uint64_t now_ms)
+
171{
+
172 s_diag_cdc.window_bytes = 0;
+
173 s_diag_cdc.window_start_ms = now_ms;
+
174 s_diag_cdc.wa_min = UINT32_MAX;
+
175 s_diag_cdc.wa_max = 0;
+
176 s_diag_cdc.wa_sum = 0;
+
177 s_diag_cdc.wa_count = 0;
+
178}
+
179
+
180static void diag_cdc_sample_wa(uint32_t v)
+
181{
+
182 if (v < s_diag_cdc.wa_min) s_diag_cdc.wa_min = v;
+
183 if (v > s_diag_cdc.wa_max) s_diag_cdc.wa_max = v;
+
184 s_diag_cdc.wa_sum += v;
+
185 s_diag_cdc.wa_count++;
+
186}
+
187
+
188static void diag_cdc_on_queued(size_t q)
+
189{
+
190 s_diag_cdc.total_bytes_sent += q;
+
191 s_diag_cdc.window_bytes += (uint32_t)q;
+
192}
+
193
+
194static void diag_cdc_maybe_log(uint64_t now_ms)
+
195{
+
196 const uint64_t interval_ms = (uint64_t)CONFIG_DIAG_CDC_LOG_INTERVAL_S * 1000ULL;
+
197 if (now_ms < s_diag_cdc.window_start_ms + interval_ms) return;
+
198
+
199 uint64_t elapsed = now_ms - s_diag_cdc.window_start_ms;
+
200 float bps = elapsed ? (s_diag_cdc.window_bytes * 1000.0f) / (float)elapsed : 0.0f;
+
201 uint32_t wa_avg = s_diag_cdc.wa_count ? (uint32_t)(s_diag_cdc.wa_sum / s_diag_cdc.wa_count) : 0;
+
202
+
203 ESP_LOGI(TAG, "CDC diag: bytes_sec=%.1f B/s window=%llums total=%llu bytes, wa[min/avg/max]=%u/%u/%u count=%u",
+
204 bps, (unsigned long long)elapsed,
+
205 (unsigned long long)s_diag_cdc.total_bytes_sent,
+
206 (unsigned)s_diag_cdc.wa_min == UINT32_MAX ? 0 : (unsigned)s_diag_cdc.wa_min,
+
207 (unsigned)wa_avg,
+
208 (unsigned)s_diag_cdc.wa_max,
+
209 (unsigned)s_diag_cdc.wa_count);
+
210
+
211 /* reset window */
+
212 diag_cdc_reset_window(now_ms);
+
213}
+
214#endif /* CONFIG_DIAG_CDC_ENABLE */
+
215
+
216/* Helper: bounded retry flush with small exponential backoff.
+
217 * Returns true on success, false if all retries failed or port disconnected.
+
218 * This avoids tight-loop logging from tinyusb when the host is transiently
+
219 * unable to accept data.
+
220 */
+
+
221static bool safe_cdcacm_write_flush(tinyusb_cdcacm_itf_t port, int max_retries)
+
222{
+
223 if (!tud_cdc_n_connected((uint8_t)port)) {
+
224 return false;
+
225 }
+
226
+
227 const int base_delay_ms = 100;
+
228 uint64_t now_ms = 0;
+
229 static uint64_t last_flush_log_ms = 0;
+
230
+
231 for (int attempt = 0; attempt < max_retries; ++attempt) {
+
232 /* Increase flush timeout to 1000ms to allow large buffers (32KB) to drain
+
233 * at minimum USB speeds (335KB/s -> ~96ms), with margin for host latency.
+
234 */
+
235 esp_err_t err = tinyusb_cdcacm_write_flush(port, 1000);
+
236 if (err == ESP_OK) {
+
237 return true;
+
238 }
+
239 if (!tud_cdc_n_connected((uint8_t)port)) {
+
240 return false;
+
241 }
+
242 vTaskDelay(pdMS_TO_TICKS(base_delay_ms << attempt));
+
243 }
+
244
+
245 /* Rate-limit the warning to once per second to avoid spam. */
+
246 now_ms = esp_timer_get_time() / 1000ULL;
+
247 if (now_ms > last_flush_log_ms + 1000ULL) {
+
248 ESP_LOGW(TAG, "CDC flush failed after %d retries", max_retries);
+
249 last_flush_log_ms = now_ms;
+
250 }
+
251 return false;
+
252}
+
+
253
+
+
254static void cdc_tx_task(void *arg) {
+
255#if 1
+
256 static frame_wire_t frm;
+
257
+
258 const size_t max_chunk = 512;
+
259 const uint32_t wait_step_ms = 2;
+
260 /* Increase timeout significantly for large FFT sizes to prevent frame drops
+
261 * that cause stream desynchronization. For FFT=4096, frame interval is ~100ms;
+
262 * allow up to 10 seconds for host processing/backpressure.
+
263 */
+
264 const uint32_t wait_budget_ms = 10000;
+
265
+
266
+
267#if CONFIG_DIAG_CDC_ENABLE
+
268 /* initialize diagnostic window at task start */
+
269 diag_cdc_reset_window(esp_timer_get_time() / 1000ULL);
+
270 uint64_t last_stack_log_ms = esp_timer_get_time() / 1000ULL;
+
271#endif
+
272 while (1) {
+
273 if (xQueueReceive(g_frameq, &frm, portMAX_DELAY) == pdTRUE) {
+ +
275 !tud_cdc_n_connected((uint8_t)g_data_port)) {
+
276 /* Host not connected: sleep longer to avoid starving idle/other tasks
+
277 */
+
278 vTaskDelay(pdMS_TO_TICKS(100));
+
279 continue;
+
280 }
+
281
+
282 /* Send in bounded chunks, waiting briefly for space if needed. */
+
283 size_t sent = 0;
+
284 uint32_t waited_ms = 0;
+
285 while (sent < FRAME_TOTAL_SIZE) {
+
286 if (!tud_cdc_n_connected((uint8_t)g_data_port)) {
+
287 break;
+
288 }
+
289
+
290 size_t chunk = FRAME_TOTAL_SIZE - sent;
+
291 if (chunk > max_chunk) {
+
292 chunk = max_chunk;
+
293 }
+
294
+
295 uint32_t wa = tud_cdc_n_write_available((uint8_t)g_data_port);
+
296#if CONFIG_DIAG_CDC_ENABLE && CONFIG_DIAG_CDC_SAMPLE_WRITE_AVAILABLE
+
297 diag_cdc_sample_wa(wa);
+
298#endif
+
299 if (wa < chunk) {
+
300 if (waited_ms >= wait_budget_ms) {
+
301 ESP_LOGW(TAG, "CDC TX backpressure (%u ms), dropping frame",
+
302 (unsigned)waited_ms);
+
303 break;
+
304 }
+
305 vTaskDelay(pdMS_TO_TICKS(wait_step_ms));
+
306 waited_ms += wait_step_ms;
+
307 continue;
+
308 }
+
309
+
310 size_t queued =
+
311 tinyusb_cdcacm_write_queue(g_data_port, frm.bytes + sent, chunk);
+
312 if (queued == 0) {
+
313 if (waited_ms >= wait_budget_ms) {
+
314 ESP_LOGW(TAG, "CDC TX stalled (%u ms), dropping frame",
+
315 (unsigned)waited_ms);
+
316 break;
+
317 }
+
318 vTaskDelay(pdMS_TO_TICKS(wait_step_ms));
+
319 waited_ms += wait_step_ms;
+
320 continue;
+
321 }
+
322#if CONFIG_DIAG_CDC_ENABLE
+
323 diag_cdc_on_queued(queued);
+
324#endif
+
325 sent += queued;
+
326 }
+
327
+
328 if (sent < FRAME_TOTAL_SIZE) {
+
329 ESP_LOGW(TAG, "CDC send dropped %u bytes",
+
330 (unsigned)(FRAME_TOTAL_SIZE - sent));
+
331#if CONFIG_DIAG_CDC_ENABLE
+
332 /* Report diagnostics even when a frame is dropped. */
+
333 uint64_t now_ms = esp_timer_get_time() / 1000ULL;
+
334 diag_cdc_maybe_log(now_ms);
+
335#endif
+
336 continue;
+
337 }
+
338
+ +
340 ESP_LOGD(TAG, "CDC flush timeout (non-fatal)");
+
341 }
+
342#if CONFIG_STATUS_NEOPIXEL_ENABLE
+
343 if (g_led_strip) {
+
344 if (!g_led_lock ||
+
345 xSemaphoreTake(g_led_lock, pdMS_TO_TICKS(10)) == pdTRUE) {
+
346 uint8_t b = (uint8_t)CONFIG_STATUS_NEOPIXEL_BRIGHTNESS;
+
347 ESP_ERROR_CHECK(led_strip_set_pixel(g_led_strip, 0, 0, b, 0));
+
348 ESP_ERROR_CHECK(led_strip_refresh(g_led_strip));
+
349 if (g_led_lock) {
+
350 xSemaphoreGive(g_led_lock);
+
351 }
+
352 }
+
353 }
+
354#endif
+
355#if CONFIG_DIAG_CDC_ENABLE
+
356 /* periodic summary log (non-blocking) */
+
357 uint64_t now_ms = esp_timer_get_time() / 1000ULL;
+
358 diag_cdc_maybe_log(now_ms);
+
359
+
360 if (now_ms > last_stack_log_ms + 5000ULL) {
+
361 UBaseType_t cdc_hwm = uxTaskGetStackHighWaterMark(g_cdc_task_handle);
+
362 UBaseType_t adc_hwm = uxTaskGetStackHighWaterMark(g_adc_task_handle);
+
363 ESP_LOGI(TAG, "Stack HWM: cdc_tx=%lu words, adc_fft=%lu words",
+
364 (unsigned long)cdc_hwm, (unsigned long)adc_hwm);
+
365 last_stack_log_ms = now_ms;
+
366 }
+
367#endif
+
368 }
+
369 }
+
370}
+
+
371#endif
+
372
+
373#if CONFIG_STATUS_NEOPIXEL_ENABLE
+
374static void status_led_init(void) {
+
375 g_led_lock = xSemaphoreCreateMutex();
+
376 led_strip_config_t strip_config = {
+
377 .strip_gpio_num = CONFIG_STATUS_NEOPIXEL_GPIO,
+
378 .max_leds = 1,
+
379 .led_pixel_format = LED_PIXEL_FORMAT_GRB,
+
380 .led_model = LED_MODEL_WS2812,
+
381 .flags.invert_out = false,
+
382 };
+
383 led_strip_rmt_config_t rmt_config = {
+
384 .clk_src = RMT_CLK_SRC_DEFAULT,
+
385 .resolution_hz = LED_STRIP_RMT_RES_HZ,
+
386 .flags.with_dma = false,
+
387 };
+
388 ESP_ERROR_CHECK(
+
389 led_strip_new_rmt_device(&strip_config, &rmt_config, &g_led_strip));
+
390}
+
391
+
392static void status_led_set(uint8_t r, uint8_t g, uint8_t b) {
+
393 if (!g_led_strip) {
+
394 return;
+
395 }
+
396 if (g_led_lock && xSemaphoreTake(g_led_lock, pdMS_TO_TICKS(10)) != pdTRUE) {
+
397 return;
+
398 }
+
399 uint8_t scale = (uint8_t)CONFIG_STATUS_NEOPIXEL_BRIGHTNESS;
+
400 uint8_t r_s = (uint8_t)((r * scale) / 255u);
+
401 uint8_t g_s = (uint8_t)((g * scale) / 255u);
+
402 uint8_t b_s = (uint8_t)((b * scale) / 255u);
+
403 ESP_ERROR_CHECK(led_strip_set_pixel(g_led_strip, 0, r_s, g_s, b_s));
+
404 ESP_ERROR_CHECK(led_strip_refresh(g_led_strip));
+
405 if (g_led_lock) {
+
406 xSemaphoreGive(g_led_lock);
+
407 }
+
408}
+
409#endif
+
410
+
+
411bool adc_calibration_init(adc_unit_t unit, adc_atten_t atten) {
+
412 adc_cali_curve_fitting_config_t cali_config = {
+
413 .unit_id = unit,
+
414 .atten = atten,
+
415 .bitwidth = ADC_BITWIDTH_12,
+
416 };
+
417 if (adc_cali_create_scheme_curve_fitting(&cali_config, &cali_handle) ==
+
418 ESP_OK) {
+
419 ESP_LOGI(TAG, "ADC calibration ready (curve fitting)");
+
420 return true;
+
421 }
+
422 ESP_LOGW(TAG, "ADC calibration not available; raw counts will be used");
+
423 return false;
+
424}
+
+
425
+
+
426static inline float sample_to_volts(uint16_t raw, bool calibrated) {
+
427 if (calibrated) {
+
428 int mv = 0;
+
429 if (adc_cali_raw_to_voltage(cali_handle, raw, &mv) == ESP_OK) {
+
430 return (float)mv / 1000.0f;
+
431 }
+
432 }
+
433 return (float)raw; // fallback raw counts
+
434}
+
+
435
+
+
436static inline float sample_to_centered(uint16_t raw, bool calibrated,
+
437 int midpoint_mv) {
+
438 if (calibrated) {
+
439 int mv = 0;
+
440 if (adc_cali_raw_to_voltage(cali_handle, raw, &mv) == ESP_OK) {
+
441 return ((float)(mv - midpoint_mv)) / 1000.0f;
+
442 }
+
443 }
+
444 return (float)raw - 2048.0f; // 12-bit midpoint
+
445}
+
+
446
+
+
447OPTIMIZE_O2 static void apply_window(float *buf) {
+
448 for (int i = 0; i < FFT_SIZE; i++) {
+
449 buf[i] *= win[i];
+
450 }
+
451}
+
+
452
+
+
453OPTIMIZE_O2 static void perform_fft(float *buf) {
+
454 dsps_fft4r_fc32(buf, FFT_SIZE >> 1);
+
455 dsps_bit_rev4r_fc32(buf, FFT_SIZE >> 1);
+
456 dsps_cplx2real_fc32(buf, FFT_SIZE >> 1);
+
457}
+
+
458
+
+
459OPTIMIZE_O2 static void apply_complex_cutoff(float *buf, uint32_t sps) {
+
460#if CONFIG_OUTPUT_CUTOFF_HZ > 0
+
461 uint32_t cutoff_hz = (uint32_t)CONFIG_OUTPUT_CUTOFF_HZ;
+
462 uint32_t max_bin = (cutoff_hz * (uint64_t)FFT_SIZE) / sps;
+
463 if (max_bin >= FFT_SIZE / 2) {
+
464 return;
+
465 }
+
466 if (max_bin < FFT_SIZE / 2) {
+
467 buf[1] = 0.0f; // Nyquist packed at index 1
+
468 }
+
469 for (uint32_t k = max_bin + 1; k < FFT_SIZE / 2; k++) {
+
470 buf[2 * k] = 0.0f;
+
471 buf[2 * k + 1] = 0.0f;
+
472 }
+
473#endif
+
474}
+
+
475
+
+
476static adc_atten_t cfg_atten(void) {
+
477#if CONFIG_ADC_ATTEN_DB_0
+
478 return ADC_ATTEN_DB_0;
+
479#elif CONFIG_ADC_ATTEN_DB_2_5
+
480 return ADC_ATTEN_DB_2_5;
+
481#elif CONFIG_ADC_ATTEN_DB_6
+
482 return ADC_ATTEN_DB_6;
+
483#else
+
484 return ADC_ATTEN_DB_12;
+
485#endif
+
486}
+
+
487
+
+
488static void adc_fft_task(void *arg) {
+
489 adc_atten_t atten = cfg_atten();
+
490 bool calibrated = adc_calibration_init(ADC_UNIT_1, atten);
+
491 int midpoint_mv = 0;
+
492 if (calibrated) {
+
493 (void)adc_cali_raw_to_voltage(cali_handle, 2048, &midpoint_mv);
+
494 }
+
495
+
496 /* ADC decode diagnostics: validates that DMA words are parsed as expected
+
497 * (unit/channel/bitwidth). If ADC output format mismatches parsing, these
+
498 * counters will look obviously wrong (e.g., few accepted samples, many
+
499 * skipped/other channels).
+
500 */
+
501 uint64_t last_adc_diag_ms = esp_timer_get_time() / 1000ULL;
+
502 uint32_t diag_reads = 0;
+
503 uint32_t diag_out_bytes = 0;
+
504 uint32_t diag_accept_ch0 = 0;
+
505 uint32_t diag_accept_ch1 = 0;
+
506 uint32_t diag_skip_unit = 0;
+
507 uint32_t diag_other_chan = 0;
+
508
+
509 adc_continuous_handle_t adc_handle = NULL;
+
510 adc_continuous_handle_cfg_t handle_cfg = {
+
511 .max_store_buf_size =
+
512 FFT_SIZE * CHANNELS * sizeof(adc_digi_output_data_t),
+
513 .conv_frame_size = 512,
+
514 };
+
515 ESP_ERROR_CHECK(adc_continuous_new_handle(&handle_cfg, &adc_handle));
+
516
+
517 uint32_t sample_rate = ADC_SPS;
+
518#if defined(CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH)
+
519 if (sample_rate > CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH) {
+
520 ESP_LOGW(TAG, "ADC_SPS=%u above SOC max %u; clamping", sample_rate,
+
521 (unsigned)CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH);
+
522 sample_rate = CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH;
+
523 }
+
524#endif
+
525#if defined(CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW)
+
526 if (sample_rate < CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW) {
+
527 ESP_LOGW(TAG, "ADC_SPS=%u below SOC min %u; clamping", sample_rate,
+
528 (unsigned)CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW);
+
529 sample_rate = CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW;
+
530 }
+
531#endif
+
532
+
533 /* Per-channel sampling rate: adc_continuous divides sample_freq_hz by the
+
534 * pattern length. With two channels, each gets half the configured rate. */
+
535 const uint32_t per_channel_sps = sample_rate / CHANNELS;
+
536
+
537 adc_digi_pattern_config_t pattern[CHANNELS] = {0};
+
538 pattern[0].atten = atten;
+
539 pattern[0].channel = CONFIG_ADC_CH0;
+
540 pattern[0].unit = ADC_UNIT_1;
+
541 pattern[0].bit_width = ADC_BITWIDTH_12;
+
542 pattern[1].atten = atten;
+
543 pattern[1].channel = CONFIG_ADC_CH1;
+
544 pattern[1].unit = ADC_UNIT_1;
+
545 pattern[1].bit_width = ADC_BITWIDTH_12;
+
546
+
547 adc_continuous_config_t dig_cfg = {
+
548 .sample_freq_hz = sample_rate,
+
549 .conv_mode = ADC_CONV_SINGLE_UNIT_1,
+
550 /* Must match adc_digi_output_data_t parsing below (p->type2.*). */
+
551 .format = ADC_DIGI_OUTPUT_FORMAT_TYPE2,
+
552 .pattern_num = CHANNELS,
+
553 .adc_pattern = pattern,
+
554 };
+
555 ESP_ERROR_CHECK(adc_continuous_config(adc_handle, &dig_cfg));
+
556
+
557#if CONFIG_ADC_IIR_FILTER_ENABLE
+
558 adc_digi_iir_filter_t coeff = ADC_DIGI_IIR_FILTER_COEFF_2;
+
559#if CONFIG_ADC_IIR_FILTER_COEFF_4
+
560 coeff = ADC_DIGI_IIR_FILTER_COEFF_4;
+
561#elif CONFIG_ADC_IIR_FILTER_COEFF_8
+
562 coeff = ADC_DIGI_IIR_FILTER_COEFF_8;
+
563#elif CONFIG_ADC_IIR_FILTER_COEFF_16
+
564 coeff = ADC_DIGI_IIR_FILTER_COEFF_16;
+
565#elif CONFIG_ADC_IIR_FILTER_COEFF_64
+
566 coeff = ADC_DIGI_IIR_FILTER_COEFF_64;
+
567#endif
+
568 adc_continuous_iir_filter_config_t filter_cfg = {
+
569 .unit = ADC_UNIT_1,
+
570 .coeff = coeff,
+
571 };
+
572 adc_iir_filter_handle_t iir_handle = NULL;
+
573 ESP_ERROR_CHECK(
+
574 adc_new_continuous_iir_filter(adc_handle, &filter_cfg, &iir_handle));
+
575 ESP_ERROR_CHECK(adc_continuous_iir_filter_enable(iir_handle));
+
576 ESP_LOGI(TAG, "ADC IIR Filter enabled");
+
577#endif
+
578
+
579 ESP_ERROR_CHECK(adc_continuous_start(adc_handle));
+
580
+
581 ESP_LOGI(TAG,
+
582 "Sampling ADC1 CH%d (GPIO%d) and CH%d (GPIO%d) at %u sps/ch, FFT %d",
+
583 CONFIG_ADC_CH0, CONFIG_ADC_CH0 + 1, CONFIG_ADC_CH1,
+
584 CONFIG_ADC_CH1 + 1, (unsigned)per_channel_sps, FFT_SIZE);
+
585
+
586 // Reduce DMA buffer size to save Internal RAM; we loop to fill the FFT buffer anyway.
+
587 const size_t read_len = 2048 * sizeof(adc_digi_output_data_t);
+
588 uint8_t *raw = heap_caps_aligned_alloc(16, read_len,
+
589 MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL);
+
590 if (!raw) {
+
591 raw = heap_caps_aligned_alloc(16, read_len, MALLOC_CAP_DMA);
+
592 }
+
593 if (!raw) {
+
594 ESP_LOGE(TAG, "Failed to reserve DMA buffer (%zu bytes)", read_len);
+
595 vTaskDelete(NULL);
+
596 return;
+
597 }
+
598
+
599 static frame_wire_t frame;
+
600 while (1) {
+
601#if CONFIG_STATUS_NEOPIXEL_ENABLE
+
602 status_led_set(0, 0, 255);
+
603#endif
+
604 int count0 = 0;
+
605 int count1 = 0;
+
606 float sum0 = 0.0f;
+
607 float sum1 = 0.0f;
+
608 while (count0 < FFT_SIZE || count1 < FFT_SIZE) {
+
609 uint32_t out_len = 0;
+
610 esp_err_t ret = adc_continuous_read(adc_handle, raw, read_len, &out_len,
+
611 pdMS_TO_TICKS(100));
+
612 if (ret == ESP_ERR_TIMEOUT) {
+
613 continue;
+
614 }
+
615 if (ret != ESP_OK) {
+
616 ESP_LOGW(TAG, "adc_continuous_read returned %s", esp_err_to_name(ret));
+
617 vTaskDelay(pdMS_TO_TICKS(1));
+
618 continue;
+
619 }
+
620
+
621 /* Per-read diagnostics. */
+
622 diag_reads++;
+
623 diag_out_bytes += out_len;
+
624
+
625 for (uint32_t i = 0; i + sizeof(adc_digi_output_data_t) <= out_len;
+
626 i += sizeof(adc_digi_output_data_t)) {
+
627 adc_digi_output_data_t *p = (adc_digi_output_data_t *)&raw[i];
+
628 if (p->type2.unit != ADC_UNIT_1) {
+
629 diag_skip_unit++;
+
630 continue;
+
631 }
+
632 if (p->type2.channel == CONFIG_ADC_CH0 && count0 < FFT_SIZE) {
+
633 float val = sample_to_centered(p->type2.data, calibrated, midpoint_mv);
+
634 ch0[count0++] = val;
+
635 sum0 += val;
+
636 diag_accept_ch0++;
+
637 } else if (p->type2.channel == CONFIG_ADC_CH1 && count1 < FFT_SIZE) {
+
638 float val = sample_to_centered(p->type2.data, calibrated, midpoint_mv);
+
639 ch1[count1++] = val;
+
640 sum1 += val;
+
641 diag_accept_ch1++;
+
642 } else {
+
643 diag_other_chan++;
+
644 }
+
645 }
+
646
+
647 /* Rate-limit to avoid log spam. */
+
648 uint64_t now_ms = esp_timer_get_time() / 1000ULL;
+
649 if (now_ms > last_adc_diag_ms + 2000ULL) {
+
650 ESP_LOGI(TAG,
+
651 "ADC diag (2s): reads=%u out=%uB accept[ch0/ch1]=%u/%u skip_unit=%u other_chan=%u",
+
652 (unsigned)diag_reads, (unsigned)diag_out_bytes,
+
653 (unsigned)diag_accept_ch0, (unsigned)diag_accept_ch1,
+
654 (unsigned)diag_skip_unit, (unsigned)diag_other_chan);
+
655 diag_reads = 0;
+
656 diag_out_bytes = 0;
+
657 diag_accept_ch0 = 0;
+
658 diag_accept_ch1 = 0;
+
659 diag_skip_unit = 0;
+
660 diag_other_chan = 0;
+
661 last_adc_diag_ms = now_ms;
+
662 }
+
663 }
+
664
+
665 /* Dynamic DC bias removal: subtract current block mean */
+
666 float mean0 = (float)(sum0 / FFT_SIZE);
+
667 float mean1 = (float)(sum1 / FFT_SIZE);
+
668 for (int i = 0; i < FFT_SIZE; i++) {
+
669 ch0[i] -= mean0;
+
670 ch1[i] -= mean1;
+
671 }
+
672
+
673#if CONFIG_ADC_ENABLE_WINDOW
+ + +
676#endif
+ + +
679
+
680 // apply_complex_cutoff(ch0, per_channel_sps);
+
681 // apply_complex_cutoff(ch1, per_channel_sps);
+
682
+
683 uint64_t now_ms = esp_timer_get_time() / 1000ULL;
+
684
+
685 build_frame(&frame, ch0, "ch0", now_ms, per_channel_sps, g_seq++);
+
686 if (xQueueSend(g_frameq, &frame, portMAX_DELAY) != pdTRUE) {
+
687 ESP_LOGW(TAG, "Frame queue send failed (ch0)");
+
688 }
+
689
+
690 build_frame(&frame, ch1, "ch1", now_ms, per_channel_sps, g_seq++);
+
691 if (xQueueSend(g_frameq, &frame, portMAX_DELAY) != pdTRUE) {
+
692 ESP_LOGW(TAG, "Frame queue send failed (ch1)");
+
693 }
+
694 }
+
695}
+
+
696
+
697#if CONFIG_ENABLE_I2S_WAVE_GEN
+
698static void sweep_task(void *arg) {
+
699 const float f_start = 33.0f;
+
700 const float f_end = 3333.0f;
+
701 const float duration_sec = 9.0f;
+
702 const int update_ms = 50;
+
703
+
704 // Linear sweep step
+
705 const float step = (f_end - f_start) / (duration_sec * (1000.0f / update_ms));
+
706
+
707 float freq = f_start;
+
708 while (1) {
+
709 wave_gen_set_freq(freq);
+
710 vTaskDelay(pdMS_TO_TICKS(update_ms));
+
711
+
712 freq += step;
+
713 if (freq > f_end) {
+
714 freq = f_start;
+
715 }
+
716 }
+
717}
+
718#endif
+
719
+
+
720void app_main(void) {
+
721#if CONFIG_STATUS_NEOPIXEL_ENABLE
+
722 status_led_init();
+
723 status_led_set(255, 0, 0);
+
724#endif
+
725 tinyusb_config_t tusb_cfg = {
+
726 .device_descriptor = NULL,
+
727 .string_descriptor = NULL,
+
728 .external_phy = false,
+
729 };
+
730 ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg));
+
731
+
732#if CONFIG_TINYUSB_CDC_COUNT > 1
+ +
734#else
+ +
736#endif
+
737
+
738 tinyusb_config_cdcacm_t cdc_cfg_data = {
+
739 .usb_dev = TINYUSB_USBDEV_0,
+
740 .cdc_port = g_data_port,
+
741 .rx_unread_buf_sz = CONFIG_TINYUSB_CDC_RX_BUFSIZE,
+
742 .callback_rx = NULL,
+
743 .callback_rx_wanted_char = NULL,
+
744 .callback_line_state_changed = NULL,
+
745 .callback_line_coding_changed = NULL,
+
746 };
+
747 ESP_ERROR_CHECK(tusb_cdc_acm_init(&cdc_cfg_data));
+
748
+
749
+
750#if CONFIG_ENABLE_I2S_WAVE_GEN
+
751 // Initialize Wave Gen
+
752 // Using GPIO 15-18 to avoid VDD_SPI (GPIO 11) and ADC1 interference
+
753 wave_gen_config_t wg_cfg = {
+
754 .mck_io_num = -1, // SCK disconnected (PCM5102 internal generation)
+
755 .bck_io_num = 16,
+
756 .ws_io_num = 17,
+
757 .data_out_num = 18,
+
758 .sample_rate = 44100,
+
759 };
+
760 ESP_ERROR_CHECK(wave_gen_init(&wg_cfg));
+
761 // wave_gen_set_freq(33.0f); // Controlled by sweep_task
+ + +
764 ESP_ERROR_CHECK(wave_gen_start());
+
765#endif
+
766
+
767#if CONFIG_ENABLE_SDM_WAVE_GEN
+
768 ESP_ERROR_CHECK(wave_gen_sdm_start());
+
769#endif
+
770
+
771 size_t fft_mem_sz = FFT_SIZE * sizeof(float);
+
772 ch0 = heap_caps_aligned_alloc(16, fft_mem_sz, MALLOC_CAP_SPIRAM);
+
773 ch1 = heap_caps_aligned_alloc(16, fft_mem_sz, MALLOC_CAP_SPIRAM);
+
774 win = heap_caps_aligned_alloc(16, fft_mem_sz, MALLOC_CAP_SPIRAM);
+
775
+
776 if (!ch0 || !ch1 || !win) {
+
777 ESP_LOGE(TAG, "Failed to allocate FFT buffers");
+
778 abort();
+
779 }
+
780
+
781 /* Initialize DSP before any task can call FFT/window code. */
+
782 ESP_ERROR_CHECK(dsps_fft4r_init_fc32(NULL, FFT_SIZE >> 1));
+
783#if CONFIG_ADC_ENABLE_WINDOW
+
784#if CONFIG_ADC_WINDOW_HANN
+ +
786#elif CONFIG_ADC_WINDOW_BLACKMAN
+ +
788#elif CONFIG_ADC_WINDOW_BLACKMAN_HARRIS
+ +
790#elif CONFIG_ADC_WINDOW_BLACKMAN_NUTTALL
+ +
792#elif CONFIG_ADC_WINDOW_NUTTALL
+ +
794#elif CONFIG_ADC_WINDOW_FLAT_TOP
+ +
796#else
+
797 for (int i = 0; i < FFT_SIZE; i++) {
+
798 win[i] = 1.0f;
+
799 }
+
800#endif
+
801#endif
+
802
+
803
+
804#if CONFIG_ENABLE_I2S_WAVE_GEN
+
805 xTaskCreate(sweep_task, "sweep", 2048, NULL, 5, NULL);
+
806#endif
+
807
+
808 g_frameq = xQueueCreate(
+
809 2,
+
810 sizeof(frame_wire_t));
+
811 assert(g_frameq);
+
812
+
813 const BaseType_t tusb_core = 0;
+
814#if CONFIG_FREERTOS_UNICORE
+
815 const BaseType_t adc_core = 0;
+
816#else
+
817 const BaseType_t adc_core = 1;
+
818#endif
+
819
+
820 xTaskCreatePinnedToCore(
+ +
822 "cdc_tx",
+ +
824 NULL,
+
825 8,
+ +
827 tusb_core);
+
828
+
829
+
830
+
831
+
832 xTaskCreatePinnedToCore(
+ +
834 "adc_fft",
+ +
836 NULL,
+
837 8,
+ +
839 adc_core);
+
840
+
841 xTaskCreatePinnedToCore(
+ +
843 "adc_fft",
+ +
845 NULL,
+
846 8,
+ +
848 adc_core
+
849 );
+
850
+
851 xTaskCreatePinnedToCore(adc_fft_task,"adc_fft",ADC_TASK_STACK_SIZE,NULL,8,&g_adc_task_handle,adc_core);
+
852
+
853
+
854 // Tasks run indefinitely; app_main can return.
+
855}
+
+
856
+
857
+
#define dsps_bit_rev4r_fc32
Definition dsps_fft4r.h:184
+
#define dsps_cplx2real_fc32
Definition dsps_fft4r.h:185
+
#define dsps_fft4r_fc32
Definition dsps_fft4r.h:182
+
esp_err_t dsps_fft4r_init_fc32(float *fft_table_buff, int max_fft_size)
init fft tables
+
void dsps_wind_blackman_f32(float *window, int len)
Blackman window.
+
void dsps_wind_blackman_harris_f32(float *window, int len)
Blackman-Harris window.
+
void dsps_wind_blackman_nuttall_f32(float *window, int len)
Blackman-Nuttall window.
+
void dsps_wind_flat_top_f32(float *window, int len)
Flat-Top window.
+
void dsps_wind_hann_f32(float *window, int len)
Hann window.
+
void dsps_wind_nuttall_f32(float *window, int len)
Nuttall window.
+ + + +
int esp_err_t
Definition esp_err.h:21
+
#define ESP_OK
Definition esp_err.h:23
+ +
#define ESP_LOGD
Definition esp_log.h:22
+ +
esp_err_t led_strip_refresh(led_strip_handle_t strip)
Refresh memory colors to LEDs.
+
esp_err_t led_strip_set_pixel(led_strip_handle_t strip, uint32_t index, uint32_t red, uint32_t green, uint32_t blue)
Set RGB for a specific pixel.
+
esp_err_t led_strip_new_rmt_device(const led_strip_config_t *led_config, const led_strip_rmt_config_t *rmt_config, led_strip_handle_t *ret_strip)
Create LED strip based on RMT TX channel.
+
@ LED_MODEL_WS2812
+
@ LED_PIXEL_FORMAT_GRB
+
struct led_strip_t * led_strip_handle_t
LED strip handle.
+
static void apply_complex_cutoff(float *buf, uint32_t sps)
Definition main/main.c:459
+
#define FRAME_TOTAL_SIZE
Definition main/main.c:80
+
#define FRAME_MAGIC_2
Definition main/main.c:75
+
frame_payload_t
Definition main/main.c:71
+
static QueueHandle_t g_frameq
Definition main/main.c:91
+
#define CHANNELS
Definition main/main.c:50
+
static void write_u32_le(uint8_t *dst, uint32_t value)
Definition main/main.c:114
+
#define ADC_TASK_STACK_SIZE
Definition main/main.c:107
+
static float * ch0
Definition main/main.c:59
+
#define FRAME_PAYLOAD_SIZE
Definition main/main.c:79
+
static float sample_to_centered(uint16_t raw, bool calibrated, int midpoint_mv)
Definition main/main.c:436
+
#define FRAME_MAGIC_3
Definition main/main.c:76
+
static const char * TAG
Definition main/main.c:31
+
#define FRAME_VERSION
Definition main/main.c:77
+
#define CDC_TX_TASK_STACK_SIZE
Definition main/main.c:104
+
void app_main(void)
Definition main/main.c:720
+
#define FFT_SIZE
Definition main/main.c:39
+
#define FRAME_HEADER_SIZE
Definition main/main.c:78
+
static void write_u16_le(uint8_t *dst, uint16_t value)
Definition main/main.c:109
+
static float * win
Definition main/main.c:61
+
#define OPTIMIZE_O2
Definition main/main.c:36
+
static void build_frame(frame_wire_t *out, const float *data, const char label[4], uint64_t t_ms, uint32_t sps, uint16_t seq)
Definition main/main.c:130
+
static TaskHandle_t g_cdc_task_handle
Definition main/main.c:94
+
static void apply_window(float *buf)
Definition main/main.c:447
+
static adc_cali_handle_t cali_handle
Definition main/main.c:63
+
static void adc_fft_task(void *arg)
Definition main/main.c:488
+
bool adc_calibration_init(adc_unit_t unit, adc_atten_t atten)
Definition main/main.c:411
+
#define FRAME_MAGIC_1
Definition main/main.c:74
+
static tinyusb_cdcacm_itf_t g_data_port
Definition main/main.c:93
+
static void perform_fft(float *buf)
Definition main/main.c:453
+
struct __attribute__((packed))
Definition main/main.c:65
+
static float * ch1
Definition main/main.c:60
+
static void cdc_tx_task(void *arg)
Definition main/main.c:254
+
static bool safe_cdcacm_write_flush(tinyusb_cdcacm_itf_t port, int max_retries)
Definition main/main.c:221
+
static adc_atten_t cfg_atten(void)
Definition main/main.c:476
+
static float sample_to_volts(uint16_t raw, bool calibrated)
Definition main/main.c:426
+
static uint32_t frame_crc32(const uint8_t *data, size_t len)
Definition main/main.c:126
+
#define LED_STRIP_RMT_RES_HZ
Definition main/main.c:53
+
#define FRAME_MAGIC_0
Definition main/main.c:73
+
static TaskHandle_t g_adc_task_handle
Definition main/main.c:95
+
static void write_u64_le(uint8_t *dst, uint64_t value)
Definition main/main.c:121
+
#define ADC_SPS
Definition main/main.c:40
+
static uint16_t g_seq
Definition main/main.c:92
+ +
uint8_t bytes[(9u+(sizeof(frame_payload_t))+4u)]
Definition main/main.c:88
+
LED Strip Configuration.
+
LED Strip RMT specific configuration.
+
Configuration structure for CDC-ACM.
+
Configuration structure of the TinyUSB core.
Definition tinyusb.h:29
+
Configuration structure for Wave Generator.
Definition wave_gen.h:22
+
static float data[128 *2]
Definition test_fft2r.c:34
+
const int k
Definition test_mmult.c:18
+ +
esp_err_t tinyusb_driver_install(const tinyusb_config_t *config)
This is an all-in-one helper function, including:
Definition tinyusb.c:32
+
@ TINYUSB_USBDEV_0
+ +
size_t tinyusb_cdcacm_write_queue(tinyusb_cdcacm_itf_t itf, const uint8_t *in_buf, size_t in_size)
Write data to write buffer from a byte array.
+
bool tusb_cdc_acm_initialized(tinyusb_cdcacm_itf_t itf)
Check if the ACM initialized.
+
esp_err_t tusb_cdc_acm_init(const tinyusb_config_cdcacm_t *cfg)
Initialize CDC ACM. Initialization will be finished with the tud_cdc_line_state_cb callback.
+
tinyusb_cdcacm_itf_t
CDC ports available to setup.
+
@ TINYUSB_CDC_ACM_1
+
@ TINYUSB_CDC_ACM_0
+
esp_err_t tinyusb_cdcacm_write_flush(tinyusb_cdcacm_itf_t itf, uint32_t timeout_ticks)
Send all data from a write buffer. Use tinyusb_cdcacm_write_queue to add data to the buffer.
+ +
void wave_gen_set_type(wave_type_t type)
Set the waveform type.
Definition wave_gen.c:291
+
void wave_gen_set_freq(float freq_hz)
Set the frequency of the generated wave.
Definition wave_gen.c:284
+
esp_err_t wave_gen_init(const wave_gen_config_t *config)
Initialize the Wave Generator component.
Definition wave_gen.c:213
+
esp_err_t wave_gen_start(void)
Start the wave generation task.
Definition wave_gen.c:253
+
@ WAVE_TYPE_SINE
Definition wave_gen.h:13
+
esp_err_t wave_gen_sdm_start(void)
Start the SDM sine generator (uses CONFIG_SDM_* settings).
Definition wave_gen.c:303
+
void wave_gen_set_volume(float volume)
Set the output volume/amplitude.
Definition wave_gen.c:296
+
+
+
+ + + + diff --git a/docs/html/mat_8cpp.html b/docs/html/mat_8cpp.html new file mode 100644 index 0000000..06832e7 --- /dev/null +++ b/docs/html/mat_8cpp.html @@ -0,0 +1,151 @@ + + + + + + + +ESP-IDF Firmware: mat.cpp File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mat.cpp File Reference
+
+
+
#include <stdexcept>
+#include <string.h>
+#include "mat.h"
+#include "esp_log.h"
+#include "dsps_math.h"
+#include "dspm_matrix.h"
+#include <math.h>
+#include <cmath>
+#include <inttypes.h>
+
+Include dependency graph for mat.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

namespace  dspm
 DSP matrix namespace.
+ + + + + + + + + + + + + + +

+Functions

Mat dspm::operator+ (const Mat &A, const Mat &B)
Mat dspm::operator+ (const Mat &A, float C)
bool dspm::operator== (const Mat &A, const Mat &B)
Mat dspm::operator- (const Mat &A, const Mat &B)
Mat dspm::operator- (const Mat &A, float C)
Mat dspm::operator* (const Mat &A, const Mat &B)
Mat dspm::operator* (const Mat &A, float C)
Mat dspm::operator* (float C, const Mat &A)
Mat dspm::operator/ (const Mat &A, float C)
Mat dspm::operator/ (const Mat &A, const Mat &B)
ostream & dspm::operator<< (ostream &os, const Mat &m)
ostream & dspm::operator<< (ostream &os, const Mat::Rect &rect)
istream & dspm::operator>> (istream &is, Mat &m)
+
+
+ +
+ + + + diff --git a/docs/html/mat_8cpp.js b/docs/html/mat_8cpp.js new file mode 100644 index 0000000..274874b --- /dev/null +++ b/docs/html/mat_8cpp.js @@ -0,0 +1,16 @@ +var mat_8cpp = +[ + [ "dspm::operator*", "namespacedspm.html#ae917fe8f86576dd7910f03eb61437e2b", null ], + [ "dspm::operator*", "namespacedspm.html#a9dda7a626ce98d9f0c6a549e1d20c9e7", null ], + [ "dspm::operator*", "namespacedspm.html#af1ae97b7704e35daf0e81f30c5d6a670", null ], + [ "dspm::operator+", "namespacedspm.html#a9e61877ac5a71dfe72b6d85cee437a1b", null ], + [ "dspm::operator+", "namespacedspm.html#a60b6050a432c55594d01ba71eb61f492", null ], + [ "dspm::operator-", "namespacedspm.html#a90069a63779cb3f9acd4133d712398f1", null ], + [ "dspm::operator-", "namespacedspm.html#ae0180388dc6621f4acacdd272ee3ddef", null ], + [ "dspm::operator/", "namespacedspm.html#a847e2edb3c51ec3c008829192d57ecd0", null ], + [ "dspm::operator/", "namespacedspm.html#ae1aec93ec60c16f62b010e6b8091a327", null ], + [ "dspm::operator<<", "namespacedspm.html#a797ac55a6a9b656655bf426ac6cdd5e8", null ], + [ "dspm::operator<<", "namespacedspm.html#a8242a0916e6819fa972ef8c120fff9e1", null ], + [ "dspm::operator==", "namespacedspm.html#acd29dc39f4582a2da0245381f3025939", null ], + [ "dspm::operator>>", "namespacedspm.html#a935b48b0c13e1334b68ec6b9e30835d3", null ] +]; \ No newline at end of file diff --git a/docs/html/mat_8cpp__incl.md5 b/docs/html/mat_8cpp__incl.md5 new file mode 100644 index 0000000..86064c8 --- /dev/null +++ b/docs/html/mat_8cpp__incl.md5 @@ -0,0 +1 @@ +f5d43a6182536fd1075a28f9a1bc359b \ No newline at end of file diff --git a/docs/html/mat_8cpp__incl.svg b/docs/html/mat_8cpp__incl.svg new file mode 100644 index 0000000..a27c553 --- /dev/null +++ b/docs/html/mat_8cpp__incl.svg @@ -0,0 +1,788 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +mat.cpp + + +Node1 + + +mat.cpp + + + + + +Node2 + + +stdexcept + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mat.h + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +esp_log.h + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dsps_math.h + + + + + +Node1->Node8 + + + + + + + + +Node25 + + +dspm_matrix.h + + + + + +Node1->Node25 + + + + + + + + +Node36 + + +math.h + + + + + +Node1->Node36 + + + + + + + + +Node37 + + +cmath + + + + + +Node1->Node37 + + + + + + + + +Node38 + + +inttypes.h + + + + + +Node1->Node38 + + + + + + + + +Node5 + + +iostream + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +stdlib.h + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +dsps_add.h + + + + + +Node8->Node9 + + + + + + + + +Node16 + + +dsps_sub.h + + + + + +Node8->Node16 + + + + + + + + +Node18 + + +dsps_mul.h + + + + + +Node8->Node18 + + + + + + + + +Node20 + + +dsps_addc.h + + + + + +Node8->Node20 + + + + + + + + +Node22 + + +dsps_mulc.h + + + + + +Node8->Node22 + + + + + + + + +Node24 + + +dsps_sqrt.h + + + + + +Node8->Node24 + + + + + + + + +Node10 + + +dsp_err.h + + + + + +Node9->Node10 + + + + + + + + +Node14 + + +dsps_add_platform.h + + + + + +Node9->Node14 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +dsps_sub_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node10 + + + + + + + + +Node19 + + +dsps_mul_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20->Node10 + + + + + + + + +Node21 + + +dsps_addc_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node22->Node10 + + + + + + + + +Node23 + + +dsps_mulc_platform.h + + + + + +Node22->Node23 + + + + + + + + +Node24->Node10 + + + + + + + + +Node26 + + +dspm_add.h + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +dspm_addc.h + + + + + +Node25->Node28 + + + + + + + + +Node30 + + +dspm_mult.h + + + + + +Node25->Node30 + + + + + + + + +Node32 + + +dspm_mulc.h + + + + + +Node25->Node32 + + + + + + + + +Node34 + + +dspm_sub.h + + + + + +Node25->Node34 + + + + + + + + +Node26->Node10 + + + + + + + + +Node27 + + +dspm_add_platform.h + + + + + +Node26->Node27 + + + + + + + + +Node28->Node10 + + + + + + + + +Node29 + + +dspm_addc_platform.h + + + + + +Node28->Node29 + + + + + + + + +Node30->Node10 + + + + + + + + +Node31 + + +dspm_mult_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node32->Node10 + + + + + + + + +Node33 + + +dspm_mulc_platform.h + + + + + +Node32->Node33 + + + + + + + + +Node34->Node10 + + + + + + + + +Node35 + + +dspm_sub_platform.h + + + + + +Node34->Node35 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/mat_8cpp__incl_org.svg b/docs/html/mat_8cpp__incl_org.svg new file mode 100644 index 0000000..4e78dc4 --- /dev/null +++ b/docs/html/mat_8cpp__incl_org.svg @@ -0,0 +1,705 @@ + + + + + + +mat.cpp + + +Node1 + + +mat.cpp + + + + + +Node2 + + +stdexcept + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +mat.h + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +esp_log.h + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +dsps_math.h + + + + + +Node1->Node8 + + + + + + + + +Node25 + + +dspm_matrix.h + + + + + +Node1->Node25 + + + + + + + + +Node36 + + +math.h + + + + + +Node1->Node36 + + + + + + + + +Node37 + + +cmath + + + + + +Node1->Node37 + + + + + + + + +Node38 + + +inttypes.h + + + + + +Node1->Node38 + + + + + + + + +Node5 + + +iostream + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +stdlib.h + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +dsps_add.h + + + + + +Node8->Node9 + + + + + + + + +Node16 + + +dsps_sub.h + + + + + +Node8->Node16 + + + + + + + + +Node18 + + +dsps_mul.h + + + + + +Node8->Node18 + + + + + + + + +Node20 + + +dsps_addc.h + + + + + +Node8->Node20 + + + + + + + + +Node22 + + +dsps_mulc.h + + + + + +Node8->Node22 + + + + + + + + +Node24 + + +dsps_sqrt.h + + + + + +Node8->Node24 + + + + + + + + +Node10 + + +dsp_err.h + + + + + +Node9->Node10 + + + + + + + + +Node14 + + +dsps_add_platform.h + + + + + +Node9->Node14 + + + + + + + + +Node16->Node10 + + + + + + + + +Node17 + + +dsps_sub_platform.h + + + + + +Node16->Node17 + + + + + + + + +Node18->Node10 + + + + + + + + +Node19 + + +dsps_mul_platform.h + + + + + +Node18->Node19 + + + + + + + + +Node20->Node10 + + + + + + + + +Node21 + + +dsps_addc_platform.h + + + + + +Node20->Node21 + + + + + + + + +Node22->Node10 + + + + + + + + +Node23 + + +dsps_mulc_platform.h + + + + + +Node22->Node23 + + + + + + + + +Node24->Node10 + + + + + + + + +Node26 + + +dspm_add.h + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +dspm_addc.h + + + + + +Node25->Node28 + + + + + + + + +Node30 + + +dspm_mult.h + + + + + +Node25->Node30 + + + + + + + + +Node32 + + +dspm_mulc.h + + + + + +Node25->Node32 + + + + + + + + +Node34 + + +dspm_sub.h + + + + + +Node25->Node34 + + + + + + + + +Node26->Node10 + + + + + + + + +Node27 + + +dspm_add_platform.h + + + + + +Node26->Node27 + + + + + + + + +Node28->Node10 + + + + + + + + +Node29 + + +dspm_addc_platform.h + + + + + +Node28->Node29 + + + + + + + + +Node30->Node10 + + + + + + + + +Node31 + + +dspm_mult_platform.h + + + + + +Node30->Node31 + + + + + + + + +Node32->Node10 + + + + + + + + +Node33 + + +dspm_mulc_platform.h + + + + + +Node32->Node33 + + + + + + + + +Node34->Node10 + + + + + + + + +Node35 + + +dspm_sub_platform.h + + + + + +Node34->Node35 + + + + + + + + diff --git a/docs/html/mat_8cpp_source.html b/docs/html/mat_8cpp_source.html new file mode 100644 index 0000000..fa7839c --- /dev/null +++ b/docs/html/mat_8cpp_source.html @@ -0,0 +1,1347 @@ + + + + + + + +ESP-IDF Firmware: mat.cpp Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mat.cpp
+
+
+Go to the documentation of this file.
1// Copyright 2018-2023 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#include <stdexcept>
+
16#include <string.h>
+
17#include "mat.h"
+
18#include "esp_log.h"
+
19
+
20#include "dsps_math.h"
+
21#include "dspm_matrix.h"
+
22#include <math.h>
+
23#include <cmath>
+
24#include <inttypes.h>
+
25
+
26
+
27
+
28using std::ostream;
+
29using std::istream;
+
30using std::endl;
+
31
+
32namespace dspm {
+
33
+
34float Mat::abs_tol = 1e-10;
+
35
+
+
36Mat::Rect::Rect(int x, int y, int width, int height)
+
37{
+
38 this->x = x;
+
39 this->y = y;
+
40 this->width = width;
+
41 this->height = height;
+
42}
+
+
43
+
+
44void Mat::Rect::resizeRect(int x, int y, int width, int height)
+
45{
+
46 this->x = x;
+
47 this->y = y;
+
48 this->width = width;
+
49 this->height = height;
+
50}
+
+
51
+
+ +
53{
+
54 return this->width * this->height;
+
55}
+
+
56
+
+
57Mat::Mat(float *data, int roi_rows, int roi_cols, int stride)
+
58{
+
59 this->rows = roi_rows;
+
60 this->cols = roi_cols;
+
61 this->stride = stride;
+
62 this->padding = stride - roi_cols;
+
63 this->length = this->rows * this->cols;
+
64 this->sub_matrix = true;
+
65 this->ext_buff = true;
+
66 this->data = data;
+
67}
+
+
68
+
+ +
70{
+
71 ESP_LOGD("Mat", "Mat(%i, %i)", rows, cols);
+
72 this->rows = rows;
+
73 this->cols = cols;
+
74 this->sub_matrix = false;
+
75 this->stride = cols;
+
76 this->padding = 0;
+
77 allocate();
+
78 memset(this->data, 0, this->length * sizeof(float));
+
79}
+
+
80
+
+
81Mat::Mat(float *data, int rows, int cols)
+
82{
+
83 ESP_LOGD("Mat", "Mat(data, %i, %i)", rows, cols);
+
84 this->rows = rows;
+
85 this->cols = cols;
+
86 this->sub_matrix = false;
+
87 this->stride = cols;
+
88 this->padding = 0;
+
89 this->length = this->rows * this->cols;
+
90 allocate();
+
91 this->ext_buff = false;
+
92 for (size_t i = 0; i < this->length; i++) {
+
93 this->data[i] = data[i];
+
94 }
+
95}
+
+
96
+
97
+
+ +
99{
+
100 this->rows = 1;
+
101 this->cols = 1;
+
102 this->sub_matrix = false;
+
103 this->stride = cols;
+
104 this->padding = 0;
+
105 ESP_LOGD("Mat", "Mat()");
+
106
+
107 allocate();
+
108 this->data[0] = 0;
+
109}
+
+
110
+
+ +
112{
+
113 ESP_LOGD("Mat", "~Mat(%i, %i), ext_buff=%i, data = %p", this->rows, this->cols, this->ext_buff, this->data);
+
114 if (false == this->ext_buff) {
+
115 delete[] data;
+
116 }
+
117}
+
+
118
+
+ +
120{
+
121 this->rows = m.rows;
+
122 this->cols = m.cols;
+
123 this->padding = m.padding;
+
124 this->stride = m.stride;
+
125 this->data = m.data;
+
126 this->sub_matrix = m.sub_matrix;
+
127
+
128 if (m.sub_matrix) {
+
129 this->length = m.length;
+
130 this->data = m.data;
+
131 this->ext_buff = true;
+
132 } else {
+
133 allocate();
+
134 memcpy(this->data, m.data, this->length * sizeof(float));
+
135 }
+
136}
+
+
137
+
+
138Mat Mat::getROI(int startRow, int startCol, int roiRows, int roiCols, int stride)
+
139{
+
140 Mat result(this->data, roiRows, roiCols, 0);
+
141
+
142 if ((startRow + roiRows) > this->rows) {
+
143 return result;
+
144 }
+
145 if ((startCol + roiCols) > this->cols) {
+
146 return result;
+
147 }
+
148
+
149 const int ptr_move = startRow * this->cols + startCol;
+
150 float *new_data_ptr = this->data + ptr_move;
+
151
+
152 result.data = new_data_ptr;
+
153 result.stride = stride;
+
154 result.padding = result.stride - result.cols;
+
155 return result;
+
156}
+
+
157
+
+ +
159{
+
160 return (getROI(rect.y, rect.x, rect.height, rect.width, this->cols));
+
161}
+
+
162
+
+
163Mat Mat::getROI(int startRow, int startCol, int roiRows, int roiCols)
+
164{
+
165 return (getROI(startRow, startCol, roiRows, roiCols, this->cols));
+
166}
+
+
167
+
+
168void Mat::Copy(const Mat &src, int row_pos, int col_pos)
+
169{
+
170 if ((row_pos + src.rows) > this->rows) {
+
171 return;
+
172 }
+
173 if ((col_pos + src.cols) > this->cols) {
+
174 return;
+
175 }
+
176
+
177 for (size_t r = 0; r < src.rows; r++) {
+
178 memcpy(&this->data[(r + row_pos) * this->stride + col_pos], &src.data[r * src.cols], src.cols * sizeof(float));
+
179 }
+
180}
+
+
181
+
+
182void Mat::CopyHead(const Mat &src)
+
183{
+
184 if (!this->ext_buff) {
+
185 delete[] this->data;
+
186 }
+
187 this->rows = src.rows;
+
188 this->cols = src.cols;
+
189 this->length = src.length;
+
190 this->padding = src.padding;
+
191 this->stride = src.stride;
+
192 this->data = src.data;
+
193 this->ext_buff = src.ext_buff;
+
194 this->sub_matrix = src.sub_matrix;
+
195}
+
+
196
+
+ +
198{
+
199 std::cout << "rows " << this->rows << std::endl;
+
200 std::cout << "cols " << this->cols << std::endl;
+
201 std::cout << "lenght " << this->length << std::endl;
+
202 std::cout << "data " << this->data << std::endl;
+
203 std::cout << "ext_buff " << this->ext_buff << std::endl;
+
204 std::cout << "sub_mat " << this->sub_matrix << std::endl;
+
205 std::cout << "stride " << this->stride << std::endl;
+
206 std::cout << "padding " << this->padding << std::endl << std::endl;
+
207}
+
+
208
+
+
209Mat Mat::Get(int row_start, int row_size, int col_start, int col_size)
+
210{
+
211 Mat result(row_size, col_size);
+
212
+
213 if ((row_start + row_size) > this->rows) {
+
214 return result;
+
215 }
+
216 if ((col_start + col_size) > this->cols) {
+
217 return result;
+
218 }
+
219
+
220 for (size_t r = 0; r < result.rows; r++) {
+
221 memcpy(&result.data[r * result.cols], &this->data[(r + row_start) * this->stride + col_start], result.cols * sizeof(float));
+
222 }
+
223 return result;
+
224}
+
+
225
+
+ +
227{
+
228 return (Get(rect.y, rect.height, rect.x, rect.width));
+
229}
+
+
230
+
+ +
232{
+
233 if (this == &m) {
+
234 return *this;
+
235 }
+
236
+
237 // matrix dimensions not equal
+
238 if (this->rows != m.rows || this->cols != m.cols) {
+
239 // left operand is a sub-matrix - error
+
240 if (this->sub_matrix) {
+
241 ESP_LOGE("Mat", "operator = Error for sub-matrices: operands matrices dimensions %dx%d and %dx%d do not match", this->rows, this->cols, m.rows, m.cols);
+
242 return *this;
+
243 }
+
244 if (!this->ext_buff) {
+
245 delete[] this->data;
+
246 }
+
247 this->ext_buff = false;
+
248 this->rows = m.rows;
+
249 this->cols = m.cols;
+
250 this->stride = this->cols;
+
251 this->padding = 0;
+
252 this->sub_matrix = false;
+
253 allocate();
+
254 }
+
255
+
256 for (int row = 0; row < this->rows; row++) {
+
257 memcpy(this->data + (row * this->stride), m.data + (row * m.stride), this->cols * sizeof(float));
+
258 }
+
259 return *this;
+
260}
+
+
261
+
+ +
263{
+
264 if ((this->rows != m.rows) || (this->cols != m.cols)) {
+
265 ESP_LOGW("Mat", "operator += Error: matrices do not have equal dimensions");
+
266 return *this;
+
267 }
+
268
+
269 if (this->sub_matrix || m.sub_matrix) {
+
270 dspm_add_f32(this->data, m.data, this->data, this->rows, this->cols, this->padding, m.padding, this->padding, 1, 1, 1);
+
271 } else {
+
272 dsps_add_f32(this->data, m.data, this->data, this->length, 1, 1, 1);
+
273 }
+
274 return *this;
+
275}
+
+
276
+
+ +
278{
+
279 if (this->sub_matrix) {
+
280 dspm_addc_f32(this->data, this->data, C, this->rows, this->cols, this->padding, this->padding, 1, 1);
+
281 } else {
+
282 dsps_addc_f32_ansi(this->data, this->data, this->length, C, 1, 1);
+
283 }
+
284 return *this;
+
285}
+
+
286
+
+ +
288{
+
289 if ((this->rows != m.rows) || (this->cols != m.cols)) {
+
290 ESP_LOGW("Mat", "operator -= Error: matrices do not have equal dimensions");
+
291 return *this;
+
292 }
+
293
+
294 if (this->sub_matrix || m.sub_matrix) {
+
295 dspm_sub_f32(this->data, m.data, this->data, this->rows, this->cols, this->padding, m.padding, this->padding, 1, 1, 1);
+
296 } else {
+
297 dsps_sub_f32(this->data, m.data, this->data, this->length, 1, 1, 1);
+
298 }
+
299 return *this;
+
300}
+
+
301
+
+ +
303{
+
304 if (this->sub_matrix) {
+
305 dspm_addc_f32(this->data, this->data, -C, this->rows, this->cols, this->padding, this->padding, 1, 1);
+
306 } else {
+
307 dsps_addc_f32_ansi(this->data, this->data, this->length, -C, 1, 1);
+
308 }
+
309 return *this;
+
310}
+
+
311
+
+ +
313{
+
314 if (this->cols != m.rows) {
+
315 ESP_LOGW("Mat", "operator *= Error: matrices do not have equal dimensions");
+
316 return *this;
+
317 }
+
318
+
319 if (this->sub_matrix || m.sub_matrix) {
+
320 Mat temp = this->Get(0, this->rows, 0, this->cols);
+
321 dspm_mult_ex_f32(temp.data, m.data, this->data, temp.rows, temp.cols, m.cols, temp.padding, m.padding, this->padding);
+
322 } else {
+
323 Mat temp = *this;
+
324 dspm_mult_f32(temp.data, m.data, this->data, temp.rows, temp.cols, m.cols);
+
325 }
+
326 return (*this);
+
327}
+
+
328
+
+ +
330{
+
331 if (this->sub_matrix) {
+
332 dspm_mulc_f32(this->data, this->data, num, this->rows, this->cols, this->padding, this->padding, 1, 1);
+
333 } else {
+
334 dsps_mulc_f32_ansi(this->data, this->data, this->length, num, 1, 1);
+
335 }
+
336 return *this;
+
337}
+
+
338
+
+ +
340{
+
341 if ((this->rows != B.rows) || (this->cols != B.cols)) {
+
342 ESP_LOGW("Mat", "operator /= Error: matrices do not have equal dimensions");
+
343 return *this;
+
344 }
+
345
+
346 for (int row = 0; row < this->rows; row++) {
+
347 for (int col = 0; col < this->cols; col++) {
+
348 (*this)(row, col) = (*this)(row, col) / B(row, col);
+
349 }
+
350 }
+
351 return (*this);
+
352}
+
+
353
+
+ +
355{
+
356 if (this->sub_matrix) {
+
357 dspm_mulc_f32(this->data, this->data, 1 / num, this->rows, this->cols, this->padding, this->padding, 1, 1);
+
358 } else {
+
359 dsps_mulc_f32_ansi(this->data, this->data, this->length, 1 / num, 1, 1);
+
360 }
+
361 return *this;
+
362}
+
+
363
+
+ +
365{
+
366 Mat temp(*this);
+
367 return expHelper(temp, num);
+
368}
+
+
369
+
+
370void Mat::swapRows(int r1, int r2)
+
371{
+
372 if ((this->rows <= r1) || (this->rows <= r2)) {
+
373 ESP_LOGW("Mat", "swapRows Error: row %d or %d out of matrix row %d range", r1, r2, this->rows);
+
374 } else {
+
375 for (int i = 0; i < this->cols; i++) {
+
376 float temp = this->data[r1 * this->stride + i];
+
377 this->data[r1 * this->stride + i] = this->data[r2 * this->stride + i];
+
378 this->data[r2 * this->stride + i] = temp;
+
379 }
+
380 }
+
381}
+
+
382
+
+ +
384{
+
385 Mat ret(this->cols, this->rows);
+
386 for (int i = 0; i < this->rows; ++i) {
+
387 for (int j = 0; j < this->cols; ++j) {
+
388 ret(j, i) = this->data[i * this->stride + j];
+
389 }
+
390 }
+
391 return ret;
+
392}
+
+
393
+
+
394Mat Mat::eye(int size)
+
395{
+
396 Mat temp(size, size);
+
397 for (int i = 0; i < temp.rows; ++i) {
+
398 for (int j = 0; j < temp.cols; ++j) {
+
399 if (i == j) {
+
400 temp(i, j) = 1;
+
401 } else {
+
402 temp(i, j) = 0;
+
403 }
+
404 }
+
405 }
+
406 return temp;
+
407}
+
+
408
+
+
409Mat Mat::ones(int size)
+
410{
+
411 return (ones(size, size));
+
412}
+
+
413
+
+ +
415{
+
416 Mat temp(rows, cols);
+
417 for (int row = 0; row < temp.rows; ++row) {
+
418 for (int col = 0; col < temp.cols; ++col) {
+
419 temp(row, col) = 1;
+
420 }
+
421 }
+
422 return temp;
+
423}
+
+
424
+
+ +
426{
+
427 for (int row = 0; row < this->rows; row++) {
+
428 memset(this->data + (row * this->stride), 0, this->cols * sizeof(float));
+
429 }
+
430}
+
+
431
+
432// Duplicate to Get method
+
+
433Mat Mat::block(int startRow, int startCol, int blockRows, int blockCols)
+
434{
+
435 Mat result(blockRows, blockCols);
+
436 for (int i = 0; i < blockRows; ++i) {
+
437 for (int j = 0; j < blockCols; ++j) {
+
438 result(i, j) = (*this)(startRow + i, startCol + j);
+
439 }
+
440 }
+
441 return result;
+
442}
+
+
443
+
+ +
445{
+
446 float sqr_norm = 0;
+
447 for (int i = 0; i < this->rows; ++i) {
+
448 for (int j = 0; j < this->cols; ++j) {
+
449 sqr_norm += (*this)(i, j) * (*this)(i, j);
+
450 }
+
451 }
+
452 sqr_norm = 1 / sqrtf(sqr_norm);
+
453 *this *= sqr_norm;
+
454}
+
+
455
+
+
456float Mat::norm(void)
+
457{
+
458 float sqr_norm = 0;
+
459 for (int i = 0; i < this->rows; ++i) {
+
460 for (int j = 0; j < this->cols; ++j) {
+
461 sqr_norm += (*this)(i, j) * (*this)(i, j);
+
462 }
+
463 }
+
464 sqr_norm = sqrtf(sqr_norm);
+
465 return sqr_norm;
+
466}
+
+
467
+
+ +
469{
+
470 // Gaussian elimination
+
471 for (int i = 0; i < A.rows; ++i) {
+
472 if (A(i, i) == 0) {
+
473 // pivot 0 - error
+
474 ESP_LOGW("Mat", "Error: the coefficient matrix has 0 as a pivot. Please fix the input and try again.");
+
475 Mat err_result(0, 0);
+
476 return err_result;
+
477 }
+
478 float a_ii = 1 / A(i, i);
+
479 for (int j = i + 1; j < A.rows; ++j) {
+
480 float a_ji = A(j, i) * a_ii;
+
481 for (int k = i + 1; k < A.cols; ++k) {
+
482 A(j, k) -= A(i, k) * a_ji;
+
483 if ((A(j, k) < abs_tol) && (A(j, k) > -1 * abs_tol)) {
+
484 A(j, k) = 0;
+
485 }
+
486 }
+
487 b(j, 0) -= b(i, 0) * a_ji;
+
488 if (A(j, 0) < abs_tol && A(j, 0) > -1 * abs_tol) {
+
489 A(j, 0) = 0;
+
490 }
+
491 A(j, i) = 0;
+
492 }
+
493 }
+
494
+
495 // Back substitution
+
496 Mat x(b.rows, 1);
+
497 x((x.rows - 1), 0) = b((x.rows - 1), 0) / A((x.rows - 1), (x.rows - 1));
+
498 if (x((x.rows - 1), 0) < abs_tol && x((x.rows - 1), 0) > -1 * abs_tol) {
+
499 x((x.rows - 1), 0) = 0;
+
500 }
+
501 for (int i = x.rows - 2; i >= 0; --i) {
+
502 float sum = 0;
+
503 for (int j = i + 1; j < x.rows; ++j) {
+
504 sum += A(i, j) * x(j, 0);
+
505 }
+
506 x(i, 0) = (b(i, 0) - sum) / A(i, i);
+
507 if (x(i, 0) < abs_tol && x(i, 0) > -1 * abs_tol) {
+
508 x(i, 0) = 0;
+
509 }
+
510 }
+
511 return x;
+
512}
+
+
513
+
+ +
515{
+
516 // optimized Gaussian elimination
+
517 int bandsBelow = (k - 1) / 2;
+
518 for (int i = 0; i < A.rows; ++i) {
+
519 if (A(i, i) == 0) {
+
520 // pivot 0 - error
+
521 ESP_LOGW("Mat", "Error: the coefficient matrix has 0 as a pivot. Please fix the input and try again.");
+
522 Mat err_result(b.rows, 1);
+
523 memset(err_result.data, 0, b.rows * sizeof(float));
+
524 return err_result;
+
525 }
+
526 float a_ii = 1 / A(i, i);
+
527 for (int j = i + 1; j < A.rows && j <= i + bandsBelow; ++j) {
+
528 int k = i + 1;
+
529 while ((k < A.cols) && (fabs(A(j, k)) > abs_tol)) {
+
530 A(j, k) -= A(i, k) * (A(j, i) * a_ii);
+
531 k++;
+
532 }
+
533 b(j, 0) -= b(i, 0) * (A(j, i) * a_ii);
+
534 A(j, i) = 0;
+
535 }
+
536 }
+
537
+
538 // Back substitution
+
539 Mat x(b.rows, 1);
+
540 x((x.rows - 1), 0) = b((x.rows - 1), 0) / A((x.rows - 1), (x.rows - 1));
+
541 for (int i = x.rows - 2; i >= 0; --i) {
+
542 float sum = 0;
+
543 for (int j = i + 1; j < x.rows; ++j) {
+
544 sum += A(i, j) * x(j, 0);
+
545 }
+
546 x(i, 0) = (b(i, 0) - sum) / A(i, i);
+
547 }
+
548
+
549 return x;
+
550}
+
+
551
+
+ +
553{
+
554 int n = A.cols + 1;
+
555
+
556 Mat result(y.rows, 1);
+
557
+
558 Mat g_m = Mat::augment(A, y);
+
559 for (int j = 0; j < A.cols; j++) {
+
560 float g_jj = 1 / g_m(j, j);
+
561 for (int i = 0; i < A.cols; i++) {
+
562 if (i != j) {
+
563 float c = g_m(i, j) * g_jj;
+
564 for (int k = 0; k < n; k++) {
+
565 g_m(i, k) = g_m(i, k) - c * g_m(j, k);
+
566 }
+
567 }
+
568 }
+
569 }
+
570 for (int i = 0; i < A.rows; i++) {
+
571 result(i, 0) = g_m(i, A.cols) / g_m(i, i);
+
572 }
+
573 return result;
+
574}
+
+
575
+
+ +
577{
+
578 float sum = 0;
+
579 for (int i = 0; i < a.rows; ++i) {
+
580 sum += (a(i, 0) * b(i, 0));
+
581 }
+
582 return sum;
+
583}
+
+
584
+
+ +
586{
+
587 Mat AB(A.rows, A.cols + B.cols);
+
588 for (int i = 0; i < AB.rows; ++i) {
+
589 for (int j = 0; j < AB.cols; ++j) {
+
590 if (j < A.cols) {
+
591 AB(i, j) = A(i, j);
+
592 } else {
+
593 AB(i, j) = B(i, j - A.cols);
+
594 }
+
595 }
+
596 }
+
597 return AB;
+
598}
+
+
599
+
+ +
601{
+
602 Mat Ab(*this);
+
603 int rows = Ab.rows;
+
604 int cols = Ab.cols;
+
605 int Acols = cols - 1;
+
606
+
607 int i = 0; // row tracker
+
608 int j = 0; // column tracker
+
609
+
610 // iterate through the rows
+
611 while (i < rows) {
+
612 // find a pivot for the row
+
613 bool pivot_found = false;
+
614 while (j < Acols && !pivot_found) {
+
615 if (Ab(i, j) != 0) { // pivot not equal to 0
+
616 pivot_found = true;
+
617 } else { // check for a possible swap
+
618 int max_row = i;
+
619 float max_val = 0;
+
620 for (int k = i + 1; k < rows; ++k) {
+
621 float cur_abs = Ab(k, j) >= 0 ? Ab(k, j) : -1 * Ab(k, j);
+
622 if (cur_abs > max_val) {
+
623 max_row = k;
+
624 max_val = cur_abs;
+
625 }
+
626 }
+
627 if (max_row != i) {
+
628 Ab.swapRows(max_row, i);
+
629 pivot_found = true;
+
630 } else {
+
631 j++;
+
632 }
+
633 }
+
634 }
+
635
+
636 // perform elimination as normal if pivot was found
+
637 if (pivot_found) {
+
638 for (int t = i + 1; t < rows; ++t) {
+
639 for (int s = j + 1; s < cols; ++s) {
+
640 Ab(t, s) = Ab(t, s) - Ab(i, s) * (Ab(t, j) / Ab(i, j));
+
641 if (Ab(t, s) < abs_tol && Ab(t, s) > -1 * abs_tol) {
+
642 Ab(t, s) = 0;
+
643 }
+
644 }
+
645 Ab(t, j) = 0;
+
646 }
+
647 }
+
648
+
649 i++;
+
650 j++;
+
651 }
+
652
+
653 return Ab;
+
654}
+
+
655
+
+ +
657{
+
658 Mat R(*this);
+
659 int rows = R.rows;
+
660 int cols = R.cols;
+
661
+
662 int i = rows - 1; // row tracker
+
663 int j = cols - 2; // column tracker
+
664
+
665 // iterate through every row
+
666 while (i >= 0) {
+
667 // find the pivot column
+
668 int k = j - 1;
+
669 while (k >= 0) {
+
670 if (R(i, k) != 0) {
+
671 j = k;
+
672 }
+
673 k--;
+
674 }
+
675
+
676 // zero out elements above pivots if pivot not 0
+
677 if (R(i, j) != 0) {
+
678 for (int t = i - 1; t >= 0; --t) {
+
679 for (int s = 0; s < cols; ++s) {
+
680 if (s != j) {
+
681 R(t, s) = R(t, s) - R(i, s) * (R(t, j) / R(i, j));
+
682 if (R(t, s) < abs_tol && R(t, s) > -1 * abs_tol) {
+
683 R(t, s) = 0;
+
684 }
+
685 }
+
686 }
+
687 R(t, j) = 0;
+
688 }
+
689
+
690 // divide row by pivot
+
691 for (int k = j + 1; k < cols; ++k) {
+
692 R(i, k) = R(i, k) / R(i, j);
+
693 if (R(i, k) < abs_tol && R(i, k) > -1 * abs_tol) {
+
694 R(i, k) = 0;
+
695 }
+
696 }
+
697 R(i, j) = 1;
+
698 }
+
699
+
700 i--;
+
701 j--;
+
702 }
+
703
+
704 return R;
+
705}
+
+
706
+
+ +
708{
+
709 Mat I = Mat::eye(this->rows);
+
710 Mat AI = Mat::augment(*this, I);
+
711 Mat U = AI.gaussianEliminate();
+
712 Mat IAInverse = U.rowReduceFromGaussian();
+
713 Mat AInverse(this->rows, this->cols);
+
714 for (int i = 0; i < this->rows; ++i) {
+
715 for (int j = 0; j < this->cols; ++j) {
+
716 AInverse(i, j) = IAInverse(i, j + this->cols);
+
717 }
+
718 }
+
719 return AInverse;
+
720}
+
+
721
+
+
722Mat Mat::cofactor(int row, int col, int n)
+
723{
+
724 int i = 0, j = 0;
+
725 Mat result(n, n);
+
726 // Looping for each element of the matrix
+
727 for (int r = 0; r < n; r++) {
+
728 for (int c = 0; c < n; c++) {
+
729 // Copying into temporary matrix only those element
+
730 // which are not in given row and column
+
731 if (r != row && c != col) {
+
732 result(i, j++) = (*this)(r, c);
+
733
+
734 // Row is filled, so increase row index and
+
735 // reset col index
+
736 if (j == this->rows - 1) {
+
737 j = 0;
+
738 i++;
+
739 }
+
740 }
+
741 }
+
742 }
+
743 return result;
+
744}
+
+
745
+
+
746float Mat::det(int n)
+
747{
+
748 // Base case : if matrix contains single element
+
749 if (n == 1) {
+
750 return (*this)(0, 0);
+
751 }
+
752
+
753 float det = 1.0;
+
754 Mat *temp = new Mat(n, n);
+
755 *temp = *this;
+
756
+
757 for (int i = 0; i < n; i++) {
+
758 int pivot = i;
+
759 for (int j = i + 1; j < n; j++) {
+
760 if (std::abs((*temp)(j, i)) > std::abs((*temp)(pivot, i))) {
+
761 pivot = j;
+
762 }
+
763 }
+
764 if (pivot != i) {
+
765 temp->swapRows(i, pivot);
+
766 det *= -1;
+
767 }
+
768 if ((*temp)(i, i) == 0) {
+
769 return 0;
+
770 }
+
771 det *= (*temp)(i, i);
+
772 for (int j = i + 1; j < n; j++) {
+
773 float factor = (*temp)(j, i) / (*temp)(i, i);
+
774 for (int k = i + 1; k < n; k++) {
+
775 (*temp)(j, k) -= factor * (*temp)(i, k);
+
776 }
+
777 }
+
778 }
+
779 delete temp;
+
780 return det;
+
781}
+
+
782
+
+ +
784{
+
785 Mat adj(this->rows, this->cols);
+
786 if (this->rows == 1) {
+
787 adj(0, 0) = 1;
+
788 return adj;
+
789 }
+
790
+
791 // temp is used to store cofactors of A(,)
+
792 int sign = 1;
+
793 Mat temp(this->rows, this->cols);
+
794
+
795 for (int i = 0; i < this->rows; i++) {
+
796 for (int j = 0; j < this->cols; j++) {
+
797 // Get cofactor of A(i,j)
+
798 temp = this->cofactor( i, j, this->rows);
+
799
+
800 // sign of adj(j,i) positive if sum of row
+
801 // and column indexes is even.
+
802 sign = ((i + j) % 2 == 0) ? 1 : -1;
+
803
+
804 // Interchanging rows and columns to get the
+
805 // transpose of the cofactor matrix
+
806 adj(j, i) = (sign) * (temp.det(this->rows - 1));
+
807 }
+
808 }
+
809 return adj;
+
810}
+
+
811
+
+ +
813{
+
814 Mat result(this->rows, this->cols);
+
815 // Find determinant of matrix
+
816 float det = this->det(this->rows);
+
817 if (det == 0) {
+
818 //std::cout << "Singular matrix, can't find its inverse";
+
819 return result;
+
820 }
+
821
+
822 // Find adjoint
+
823 Mat adj = this->adjoint();
+
824
+
825 // Find Inverse using formula "inverse(A) = adj(A)/det(A)"
+
826 for (int i = 0; i < this->rows; i++)
+
827 for (int j = 0; j < this->cols; j++) {
+
828 result(i, j) = adj(i, j) / float(det);
+
829 }
+
830
+
831 return result;
+
832}
+
+
833
+
+ +
835{
+
836 this->ext_buff = false;
+
837 this->length = this->rows * this->cols;
+
838 data = new float[this->length];
+
839 ESP_LOGD("Mat", "allocate(%i) = %p", this->length, this->data);
+
840}
+
+
841
+
+
842Mat Mat::expHelper(const Mat &m, int num)
+
843{
+
844 if (num == 0) {
+
845 return Mat::eye(m.rows);
+
846 } else if (num == 1) {
+
847 return m;
+
848 } else if (num % 2 == 0) { // num is even
+
849 return expHelper(m * m, num / 2);
+
850 } else { // num is odd
+
851 return m * expHelper(m * m, (num - 1) / 2);
+
852 }
+
853}
+
+
854
+
+
855Mat operator+(const Mat &m1, const Mat &m2)
+
856{
+
857 if ((m1.rows != m2.rows) || (m1.cols != m2.cols)) {
+
858 ESP_LOGW("Mat", "operator + Error: matrices do not have equal dimensions");
+
859 Mat err_ret;
+
860 return err_ret;
+
861 }
+
862
+
863 if (m1.sub_matrix || m2.sub_matrix) {
+
864 Mat temp(m1.rows, m2.cols);
+
865 dspm_add_f32(m1.data, m2.data, temp.data, m1.rows, m1.cols, m1.padding, m2.padding, temp.padding, 1, 1, 1);
+
866 return temp;
+
867 } else {
+
868 Mat temp(m1);
+
869 return (temp += m2);
+
870 }
+
871}
+
+
872
+
+
873Mat operator+(const Mat &m, float C)
+
874{
+
875 if (m.sub_matrix) {
+
876 Mat temp(m.rows, m.cols);
+
877 dspm_addc_f32(m.data, temp.data, C, m.rows, m.cols, m.padding, temp.padding, 1, 1);
+
878 return temp;
+
879 } else {
+
880 Mat temp(m);
+
881 return (temp += C);
+
882 }
+
883}
+
+
884
+
+
885bool operator==(const Mat &m1, const Mat &m2)
+
886{
+
887 if ((m1.cols != m2.cols) || (m1.rows != m2.rows)) {
+
888 return false;
+
889 }
+
890
+
891 for (int row = 0; row < m1.rows; row++) {
+
892 for (int col = 0; col < m1.cols; col++) {
+
893 if (m1(row, col) != m2(row, col)) {
+
894 ESP_LOGW("Mat", "operator == Error: %i %i, m1.data=%f, m2.data=%f \n", row, col, m1(row, col), m2(row, col));
+
895 return false;
+
896 }
+
897 }
+
898 }
+
899
+
900 return true;
+
901}
+
+
902
+
+
903Mat operator-(const Mat &m1, const Mat &m2)
+
904{
+
905 if ((m1.rows != m2.rows) || (m1.cols != m2.cols)) {
+
906 ESP_LOGW("Mat", "operator - Error: matrices do not have equal dimensions");
+
907 Mat err_ret;
+
908 return err_ret;
+
909 }
+
910
+
911 if (m1.sub_matrix || m2.sub_matrix) {
+
912 Mat temp(m1.rows, m1.cols);
+
913 dspm_sub_f32(m1.data, m2.data, temp.data, m1.rows, m1.cols, m1.padding, m2.padding, temp.padding, 1, 1, 1);
+
914 return temp;
+
915 } else {
+
916 Mat temp(m1);
+
917 return (temp -= m2);
+
918 }
+
919}
+
+
920
+
+
921Mat operator-(const Mat &m, float C)
+
922{
+
923 if (m.sub_matrix) {
+
924 Mat temp(m.rows, m.cols);
+
925 dspm_addc_f32(m.data, temp.data, -C, m.rows, m.cols, m.padding, temp.padding, 1, 1);
+
926 return temp;
+
927 } else {
+
928 Mat temp(m);
+
929 return (temp -= C);
+
930 }
+
931}
+
+
932
+
+
933Mat operator*(const Mat &m1, const Mat &m2)
+
934{
+
935 if (m1.cols != m2.rows) {
+
936 ESP_LOGW("Mat", "operator * Error: matrices do not have correct dimensions");
+
937 Mat err_ret;
+
938 return err_ret;
+
939 }
+
940 Mat temp(m1.rows, m2.cols);
+
941
+
942 if (m1.sub_matrix || m2.sub_matrix) {
+
943 dspm_mult_ex_f32(m1.data, m2.data, temp.data, m1.rows, m1.cols, m2.cols, m1.padding, m2.padding, temp.padding);
+
944 } else {
+
945 dspm_mult_f32(m1.data, m2.data, temp.data, m1.rows, m1.cols, m2.cols);
+
946 }
+
947
+
948 return temp;
+
949
+
950}
+
+
951
+
+
952Mat operator*(const Mat &m, float num)
+
953{
+
954 if (m.sub_matrix) {
+
955 Mat temp(m.rows, m.cols);
+
956 dspm_mulc_f32(m.data, temp.data, num, m.rows, m.cols, m.padding, temp.padding, 1, 1);
+
957 return temp;
+
958 } else {
+
959 Mat temp(m);
+
960 return (temp *= num);
+
961 }
+
962}
+
+
963
+
+
964Mat operator*(float num, const Mat &m)
+
965{
+
966 return (m * num);
+
967}
+
+
968
+
+
969Mat operator/(const Mat &m, float num)
+
970{
+
971 if (m.sub_matrix) {
+
972 Mat temp(m.rows, m.cols);
+
973 dspm_mulc_f32(m.data, temp.data, 1 / num, m.rows, m.cols, m.padding, temp.padding, 1, 1);
+
974 return temp;
+
975 } else {
+
976 Mat temp(m);
+
977 return (temp /= num);
+
978 }
+
979}
+
+
980
+
+
981Mat operator/(const Mat &A, const Mat &B)
+
982{
+
983 if ((A.rows != B.rows) || (A.cols != B.cols)) {
+
984 ESP_LOGW("Mat", "Operator + Error: matrices do not have equal dimensions");
+
985 Mat err_ret;
+
986 return err_ret;
+
987 }
+
988
+
989 Mat temp(A.rows, A.cols);
+
990 for (int row = 0; row < A.rows; row++) {
+
991 for (int col = 0; col < A.cols; col++) {
+
992 temp(row, col) = A(row, col) / B(row, col);
+
993 }
+
994 }
+
995 return temp;
+
996}
+
+
997
+
+
998ostream &operator<<(ostream &os, const Mat &m)
+
999{
+
1000 for (int i = 0; i < m.rows; ++i) {
+
1001 os << m(i, 0);
+
1002 for (int j = 1; j < m.cols; ++j) {
+
1003 os << " " << m(i, j);
+
1004 }
+
1005 os << endl;
+
1006 }
+
1007 return os;
+
1008}
+
+
1009
+
+
1010ostream &operator<<(ostream &os, const Mat::Rect &rect)
+
1011{
+
1012 os << "row start " << rect.y << endl;
+
1013 os << "col start " << rect.x << endl;
+
1014 os << "row count " << rect.height << endl;
+
1015 os << "col count " << rect.width << endl;
+
1016
+
1017 return os;
+
1018}
+
+
1019
+
+
1020istream &operator>>(istream &is, Mat &m)
+
1021{
+
1022 for (int i = 0; i < m.rows; ++i) {
+
1023 for (int j = 0; j < m.cols; ++j) {
+
1024 is >> m(i, j);
+
1025 }
+
1026 }
+
1027 return is;
+
1028}
+
+
1029
+
1030}
+
Matrix.
Definition mat.h:30
+
Mat Get(int row_start, int row_size, int col_start, int col_size)
Definition mat.cpp:209
+
Mat & operator+=(const Mat &A)
Definition mat.cpp:262
+
float det(int n)
Definition mat.cpp:746
+
static float abs_tol
Definition mat.h:39
+
Mat operator^(int C)
Definition mat.cpp:364
+
Mat rowReduceFromGaussian()
Definition mat.cpp:656
+
static Mat ones(int size)
Definition mat.cpp:409
+
void PrintHead(void)
print matrix header
Definition mat.cpp:197
+
int stride
Definition mat.h:35
+
Mat adjoint()
Definition mat.cpp:783
+
float * data
Definition mat.h:37
+
void normalize(void)
Definition mat.cpp:444
+
float norm(void)
Definition mat.cpp:456
+
Mat pinv()
Definition mat.cpp:707
+
Mat()
Definition mat.cpp:98
+
static float dotProduct(Mat A, Mat B)
Dotproduct of two vectors.
Definition mat.cpp:576
+
int cols
Definition mat.h:34
+
Mat(int rows, int cols)
Definition mat.cpp:69
+
bool ext_buff
Definition mat.h:40
+
void clear(void)
Definition mat.cpp:425
+
Mat & operator=(const Mat &src)
Definition mat.cpp:231
+
Mat & operator*=(const Mat &A)
Definition mat.cpp:312
+
int length
Definition mat.h:38
+
static Mat eye(int size)
Definition mat.cpp:394
+
Mat expHelper(const Mat &m, int num)
Definition mat.cpp:842
+
Mat block(int startRow, int startCol, int blockRows, int blockCols)
Definition mat.cpp:433
+
virtual ~Mat()
Definition mat.cpp:111
+
static Mat bandSolve(Mat A, Mat b, int k)
Band solve the matrix.
Definition mat.cpp:514
+
bool sub_matrix
Definition mat.h:41
+
int padding
Definition mat.h:36
+
void Copy(const Mat &src, int row_pos, int col_pos)
Definition mat.cpp:168
+
void swapRows(int row1, int row2)
Definition mat.cpp:370
+
void CopyHead(const Mat &src)
copy header of matrix
Definition mat.cpp:182
+
Mat getROI(int startRow, int startCol, int roiRows, int roiCols)
Create a subset of matrix as ROI (Region of Interest).
Definition mat.cpp:163
+
void allocate()
Definition mat.cpp:834
+
int rows
Definition mat.h:33
+
Mat & operator/=(float C)
Definition mat.cpp:354
+
Mat gaussianEliminate()
Gaussian Elimination.
Definition mat.cpp:600
+
static Mat augment(Mat A, Mat B)
Augmented matrices.
Definition mat.cpp:585
+
static Mat solve(Mat A, Mat b)
Solve the matrix.
Definition mat.cpp:468
+
Mat cofactor(int row, int col, int n)
Definition mat.cpp:722
+
Mat t()
Definition mat.cpp:383
+
static Mat roots(Mat A, Mat y)
Solve the matrix.
Definition mat.cpp:552
+
Mat inverse()
Definition mat.cpp:812
+
Mat & operator-=(const Mat &A)
Definition mat.cpp:287
+
#define dspm_add_f32
Definition dspm_add.h:62
+
#define dspm_addc_f32
Definition dspm_addc.h:57
+ +
#define dspm_mulc_f32
Definition dspm_mulc.h:57
+
#define dspm_mult_ex_f32
Definition dspm_mult.h:226
+
#define dspm_mult_f32
Definition dspm_mult.h:221
+
#define dspm_sub_f32
Definition dspm_sub.h:58
+
#define dsps_add_f32
Definition dsps_add.h:84
+
esp_err_t dsps_addc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
add constant
+ +
esp_err_t dsps_mulc_f32_ansi(const float *input, float *output, int len, float C, int step_in, int step_out)
multiply constant
+
#define dsps_sub_f32
Definition dsps_sub.h:82
+ +
#define ESP_LOGD
Definition esp_log.h:22
+ +
DSP matrix namespace.
Definition mat.h:24
+
std::istream & operator>>(std::istream &is, Mat &m)
+
std::ostream & operator<<(std::ostream &os, const Mat &m)
+
Mat operator-(const Mat &A, const Mat &B)
Definition mat.cpp:903
+
Mat operator+(const Mat &A, const Mat &B)
Definition mat.cpp:855
+
bool operator==(const Mat &A, const Mat &B)
Definition mat.cpp:885
+
Mat operator/(const Mat &A, float C)
Definition mat.cpp:969
+
Mat operator*(const Mat &A, const Mat &B)
Definition mat.cpp:933
+
Rectangular area.
Definition mat.h:48
+
int width
Definition mat.h:51
+ + +
int height
Definition mat.h:52
+
void resizeRect(int x, int y, int width, int height)
Resize rect area.
Definition mat.cpp:44
+
Rect(int x=0, int y=0, int width=0, int height=0)
Constructor with initialization to 0.
Definition mat.cpp:36
+
int areaRect(void)
Get amount of elements in the rect area.
Definition mat.cpp:52
+
float y[1024]
Definition test_fir.c:11
+
float x[1024]
Definition test_fir.c:10
+
float C[4][16]
Definition test_mmult.c:22
+
const int m
Definition test_mmult.c:16
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/mat_8h.html b/docs/html/mat_8h.html new file mode 100644 index 0000000..0a58d24 --- /dev/null +++ b/docs/html/mat_8h.html @@ -0,0 +1,155 @@ + + + + + + + +ESP-IDF Firmware: mat.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mat.h File Reference
+
+
+
#include <iostream>
+
+Include dependency graph for mat.h:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

class  dspm::Mat
 Matrix. More...
struct  dspm::Mat::Rect
 Rectangular area. More...
+ + + +

+Namespaces

namespace  dspm
 DSP matrix namespace.
+ + + + + + + + + + + + + + +

+Functions

std::ostream & dspm::operator<< (std::ostream &os, const Mat &m)
std::ostream & dspm::operator<< (std::ostream &os, const Mat::Rect &rect)
std::istream & dspm::operator>> (std::istream &is, Mat &m)
Mat dspm::operator+ (const Mat &A, const Mat &B)
Mat dspm::operator+ (const Mat &A, float C)
Mat dspm::operator- (const Mat &A, const Mat &B)
Mat dspm::operator- (const Mat &A, float C)
Mat dspm::operator* (const Mat &A, const Mat &B)
Mat dspm::operator* (const Mat &A, float C)
Mat dspm::operator* (float C, const Mat &A)
Mat dspm::operator/ (const Mat &A, float C)
Mat dspm::operator/ (const Mat &A, const Mat &B)
bool dspm::operator== (const Mat &A, const Mat &B)
+
+
+ +
+ + + + diff --git a/docs/html/mat_8h.js b/docs/html/mat_8h.js new file mode 100644 index 0000000..5c031d4 --- /dev/null +++ b/docs/html/mat_8h.js @@ -0,0 +1,18 @@ +var mat_8h = +[ + [ "dspm::Mat", "classdspm_1_1_mat.html", "classdspm_1_1_mat" ], + [ "dspm::Mat::Rect", "structdspm_1_1_mat_1_1_rect.html", "structdspm_1_1_mat_1_1_rect" ], + [ "dspm::operator*", "namespacedspm.html#ae917fe8f86576dd7910f03eb61437e2b", null ], + [ "dspm::operator*", "namespacedspm.html#a9dda7a626ce98d9f0c6a549e1d20c9e7", null ], + [ "dspm::operator*", "namespacedspm.html#af1ae97b7704e35daf0e81f30c5d6a670", null ], + [ "dspm::operator+", "namespacedspm.html#a9e61877ac5a71dfe72b6d85cee437a1b", null ], + [ "dspm::operator+", "namespacedspm.html#a60b6050a432c55594d01ba71eb61f492", null ], + [ "dspm::operator-", "namespacedspm.html#a90069a63779cb3f9acd4133d712398f1", null ], + [ "dspm::operator-", "namespacedspm.html#ae0180388dc6621f4acacdd272ee3ddef", null ], + [ "dspm::operator/", "namespacedspm.html#a847e2edb3c51ec3c008829192d57ecd0", null ], + [ "dspm::operator/", "namespacedspm.html#ae1aec93ec60c16f62b010e6b8091a327", null ], + [ "dspm::operator<<", "namespacedspm.html#a53928c165fbf2bfb4b7387e680125306", null ], + [ "dspm::operator<<", "namespacedspm.html#a8b7f02ff03b133b0096e508ea3d7ec48", null ], + [ "dspm::operator==", "namespacedspm.html#acd29dc39f4582a2da0245381f3025939", null ], + [ "dspm::operator>>", "namespacedspm.html#a1918ace983ea835d484d844f565e9b15", null ] +]; \ No newline at end of file diff --git a/docs/html/mat_8h__dep__incl.md5 b/docs/html/mat_8h__dep__incl.md5 new file mode 100644 index 0000000..e55e5c9 --- /dev/null +++ b/docs/html/mat_8h__dep__incl.md5 @@ -0,0 +1 @@ +f288bfdbfaba6d0cf063638a656eaf1f \ No newline at end of file diff --git a/docs/html/mat_8h__dep__incl.svg b/docs/html/mat_8h__dep__incl.svg new file mode 100644 index 0000000..60e52d3 --- /dev/null +++ b/docs/html/mat_8h__dep__incl.svg @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +mat.h + + +Node1 + + +mat.h + + + + + +Node2 + + +ekf.h + + + + + +Node1->Node2 + + + + + + + + +Node16 + + +mat.cpp + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +ekf.cpp + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf_imu13states.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +ekf_imu13states.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +graphics_support.h + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +graphics_support.h + + + + + +Node4->Node8 + + + + + + + + +Node10 + + +graphics_support.h + + + + + +Node4->Node10 + + + + + + + + +Node12 + + +kalman_filter_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +kalman_filter_demo.cpp + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +kalman_filter_demo.cpp + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +kalman_filter_demo.cpp + + + + + +Node4->Node15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/mat_8h__dep__incl_org.svg b/docs/html/mat_8h__dep__incl_org.svg new file mode 100644 index 0000000..5e3068d --- /dev/null +++ b/docs/html/mat_8h__dep__incl_org.svg @@ -0,0 +1,237 @@ + + + + + + +mat.h + + +Node1 + + +mat.h + + + + + +Node2 + + +ekf.h + + + + + +Node1->Node2 + + + + + + + + +Node16 + + +mat.cpp + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +ekf.cpp + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +ekf_imu13states.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +ekf_imu13states.cpp + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +graphics_support.h + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +graphics_support.h + + + + + +Node4->Node8 + + + + + + + + +Node10 + + +graphics_support.h + + + + + +Node4->Node10 + + + + + + + + +Node12 + + +kalman_filter_demo.cpp + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +kalman_filter_demo.cpp + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +kalman_filter_demo.cpp + + + + + +Node4->Node14 + + + + + + + + +Node15 + + +kalman_filter_demo.cpp + + + + + +Node4->Node15 + + + + + + + + diff --git a/docs/html/mat_8h__incl.md5 b/docs/html/mat_8h__incl.md5 new file mode 100644 index 0000000..603e63c --- /dev/null +++ b/docs/html/mat_8h__incl.md5 @@ -0,0 +1 @@ +45a6dfc5f47a8f8d9ab1db12b7ca6e9d \ No newline at end of file diff --git a/docs/html/mat_8h__incl.svg b/docs/html/mat_8h__incl.svg new file mode 100644 index 0000000..20f72bc --- /dev/null +++ b/docs/html/mat_8h__incl.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +mat.h + + +Node1 + + +mat.h + + + + + +Node2 + + +iostream + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/html/mat_8h__incl_org.svg b/docs/html/mat_8h__incl_org.svg new file mode 100644 index 0000000..d41e2d4 --- /dev/null +++ b/docs/html/mat_8h__incl_org.svg @@ -0,0 +1,39 @@ + + + + + + +mat.h + + +Node1 + + +mat.h + + + + + +Node2 + + +iostream + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/html/mat_8h_source.html b/docs/html/mat_8h_source.html new file mode 100644 index 0000000..d694fc3 --- /dev/null +++ b/docs/html/mat_8h_source.html @@ -0,0 +1,350 @@ + + + + + + + +ESP-IDF Firmware: mat.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ESP-IDF Firmware +
+
Firmware architecture and call graph
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mat.h
+
+
+Go to the documentation of this file.
1// Copyright 2018-2023 Espressif Systems (Shanghai) PTE LTD
+
2//
+
3// Licensed under the Apache License, Version 2.0 (the "License");
+
4// you may not use this file except in compliance with the License.
+
5// You may obtain a copy of the License at
+
6//
+
7// http://www.apache.org/licenses/LICENSE-2.0
+
8//
+
9// Unless required by applicable law or agreed to in writing, software
+
10// distributed under the License is distributed on an "AS IS" BASIS,
+
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
12// See the License for the specific language governing permissions and
+
13// limitations under the License.
+
14
+
15#ifndef _dspm_mat_h_
+
16#define _dspm_mat_h_
+
17#include <iostream>
+
18
+
+
24namespace dspm {
+
+
30class Mat {
+
31public:
+
32
+
33 int rows;
+
34 int cols;
+
35 int stride;
+
36 int padding;
+
37 float *data;
+
38 int length;
+
39 static float abs_tol;
+
40 bool ext_buff;
+ +
42
+
+
48 struct Rect {
+
49 int x;
+
50 int y;
+
51 int width;
+
52 int height;
+
53
+
62 Rect(int x = 0, int y = 0, int width = 0, int height = 0);
+
63
+
72 void resizeRect(int x, int y, int width, int height);
+
73
+
77 int areaRect(void);
+
78 };
+
+
79
+
85 Mat(int rows, int cols);
+
92 Mat(float *data, int rows, int cols);
+
93
+
101 Mat(float *data, int rows, int cols, int stride);
+
102
+
106 Mat();
+
107 virtual ~Mat();
+
108
+
117 Mat(const Mat &src);
+
118
+
130 Mat getROI(int startRow, int startCol, int roiRows, int roiCols);
+
131
+
144 Mat getROI(int startRow, int startCol, int roiRows, int roiCols, int stride);
+
145
+
154 Mat getROI(const Mat::Rect &rect);
+
155
+
162 void Copy(const Mat &src, int row_pos, int col_pos);
+
163
+
170 void CopyHead(const Mat &src);
+
171
+
178 void PrintHead(void);
+
179
+
190 Mat Get(int row_start, int row_size, int col_start, int col_size);
+
191
+
198 Mat Get(const Mat::Rect &rect);
+
199
+
208 Mat &operator=(const Mat &src);
+
209
+
+
218 inline float &operator()(int row, int col)
+
219 {
+
220 return data[row * this->stride + col];
+
221 }
+
+
222
+
+
230 inline const float &operator()(int row, int col) const
+
231 {
+
232 return data[row * this->stride + col];
+
233 }
+
+
234
+
244 Mat &operator+=(const Mat &A);
+
245
+
255 Mat &operator+=(float C);
+
265 Mat &operator-=(const Mat &A);
+
266
+
276 Mat &operator-=(float C);
+
277
+
287 Mat &operator*=(const Mat &A);
+
297 Mat &operator*=(float C);
+
307 Mat &operator/=(float C);
+
316 Mat &operator/=(const Mat &B);
+
325 Mat operator^(int C);
+
326
+
332 void swapRows(int row1, int row2);
+
340 Mat t();
+
341
+
351 static Mat eye(int size);
+
352
+
362 static Mat ones(int size);
+
363
+
374 static Mat ones(int rows, int cols);
+
375
+
387 Mat block(int startRow, int startCol, int blockRows, int blockCols);
+
388
+
394 void normalize(void);
+
395
+
403 float norm(void);
+
404
+
409 void clear(void);
+
410
+
422 static Mat solve(Mat A, Mat b);
+
435 static Mat bandSolve(Mat A, Mat b, int k);
+
447 static Mat roots(Mat A, Mat y);
+
448
+
460 static float dotProduct(Mat A, Mat B);
+
461
+
473 static Mat augment(Mat A, Mat B);
+ +
483
+ +
491
+
498 Mat inverse();
+
499
+
506 Mat pinv();
+
507
+
515 float det(int n);
+
516private:
+
517 Mat cofactor(int row, int col, int n);
+
518 Mat adjoint();
+
519
+
520 void allocate(); // Allocate buffer
+
521 Mat expHelper(const Mat &m, int num);
+
522};
+
+
523
+
531std::ostream &operator<<(std::ostream &os, const Mat &m);
+
532
+
541std::ostream &operator<<(std::ostream &os, const Mat::Rect &rect);
+
542
+
551std::istream &operator>>(std::istream &is, Mat &m);
+
552
+
563Mat operator+(const Mat &A, const Mat &B);
+
574Mat operator+(const Mat &A, float C);
+
575
+
586Mat operator-(const Mat &A, const Mat &B);
+
597Mat operator-(const Mat &A, float C);
+
598
+
609Mat operator*(const Mat &A, const Mat &B);
+
610
+
621Mat operator*(const Mat &A, float C);
+
622
+
633Mat operator*(float C, const Mat &A);
+
634
+
645Mat operator/(const Mat &A, float C);
+
646
+
656Mat operator/(const Mat &A, const Mat &B);
+
657
+
668bool operator==(const Mat &A, const Mat &B);
+
669
+
670}
+
+
671#endif //_dspm_mat_h_
+
Matrix.
Definition mat.h:30
+
Mat Get(int row_start, int row_size, int col_start, int col_size)
Definition mat.cpp:209
+
Mat & operator+=(const Mat &A)
Definition mat.cpp:262
+
float det(int n)
Definition mat.cpp:746
+
static float abs_tol
Definition mat.h:39
+
Mat operator^(int C)
Definition mat.cpp:364
+
Mat rowReduceFromGaussian()
Definition mat.cpp:656
+
static Mat ones(int size)
Definition mat.cpp:409
+
void PrintHead(void)
print matrix header
Definition mat.cpp:197
+
int stride
Definition mat.h:35
+
Mat adjoint()
Definition mat.cpp:783
+
float * data
Definition mat.h:37
+
void normalize(void)
Definition mat.cpp:444
+
float norm(void)
Definition mat.cpp:456
+
Mat pinv()
Definition mat.cpp:707
+
Mat()
Definition mat.cpp:98
+
static float dotProduct(Mat A, Mat B)
Dotproduct of two vectors.
Definition mat.cpp:576
+
int cols
Definition mat.h:34
+
Mat(int rows, int cols)
Definition mat.cpp:69
+
bool ext_buff
Definition mat.h:40
+
void clear(void)
Definition mat.cpp:425
+
Mat & operator=(const Mat &src)
Definition mat.cpp:231
+
Mat & operator*=(const Mat &A)
Definition mat.cpp:312
+
int length
Definition mat.h:38
+
static Mat eye(int size)
Definition mat.cpp:394
+
Mat expHelper(const Mat &m, int num)
Definition mat.cpp:842
+
Mat block(int startRow, int startCol, int blockRows, int blockCols)
Definition mat.cpp:433
+
virtual ~Mat()
Definition mat.cpp:111
+
static Mat bandSolve(Mat A, Mat b, int k)
Band solve the matrix.
Definition mat.cpp:514
+
bool sub_matrix
Definition mat.h:41
+
int padding
Definition mat.h:36
+
void Copy(const Mat &src, int row_pos, int col_pos)
Definition mat.cpp:168
+
void swapRows(int row1, int row2)
Definition mat.cpp:370
+
void CopyHead(const Mat &src)
copy header of matrix
Definition mat.cpp:182
+
Mat getROI(int startRow, int startCol, int roiRows, int roiCols)
Create a subset of matrix as ROI (Region of Interest).
Definition mat.cpp:163
+
void allocate()
Definition mat.cpp:834
+
int rows
Definition mat.h:33
+
Mat & operator/=(float C)
Definition mat.cpp:354
+
float & operator()(int row, int col)
Definition mat.h:218
+
Mat gaussianEliminate()
Gaussian Elimination.
Definition mat.cpp:600
+
static Mat augment(Mat A, Mat B)
Augmented matrices.
Definition mat.cpp:585
+
static Mat solve(Mat A, Mat b)
Solve the matrix.
Definition mat.cpp:468
+
const float & operator()(int row, int col) const
Definition mat.h:230
+
Mat cofactor(int row, int col, int n)
Definition mat.cpp:722
+
Mat t()
Definition mat.cpp:383
+
static Mat roots(Mat A, Mat y)
Solve the matrix.
Definition mat.cpp:552
+
Mat inverse()
Definition mat.cpp:812
+
Mat & operator-=(const Mat &A)
Definition mat.cpp:287
+
DSP matrix namespace.
Definition mat.h:24
+
std::istream & operator>>(std::istream &is, Mat &m)
+
std::ostream & operator<<(std::ostream &os, const Mat &m)
+
Mat operator-(const Mat &A, const Mat &B)
Definition mat.cpp:903
+
Mat operator+(const Mat &A, const Mat &B)
Definition mat.cpp:855
+
bool operator==(const Mat &A, const Mat &B)
Definition mat.cpp:885
+
Mat operator/(const Mat &A, float C)
Definition mat.cpp:969
+
Mat operator*(const Mat &A, const Mat &B)
Definition mat.cpp:933
+
Rectangular area.
Definition mat.h:48
+
int width
Definition mat.h:51
+ + +
int height
Definition mat.h:52
+
void resizeRect(int x, int y, int width, int height)
Resize rect area.
Definition mat.cpp:44
+
Rect(int x=0, int y=0, int width=0, int height=0)
Constructor with initialization to 0.
Definition mat.cpp:36
+
int areaRect(void)
Get amount of elements in the rect area.
Definition mat.cpp:52
+
float y[1024]
Definition test_fir.c:11
+
float C[4][16]
Definition test_mmult.c:22
+
const int m
Definition test_mmult.c:16
+
float B[8][16]
Definition test_mmult.c:21
+
float A[4][8]
Definition test_mmult.c:20
+
const int n
Definition test_mmult.c:17
+
const int k
Definition test_mmult.c:18
+
+
+
+ + + + diff --git a/docs/html/menu.js b/docs/html/menu.js new file mode 100644 index 0000000..15f9c52 --- /dev/null +++ b/docs/html/menu.js @@ -0,0 +1,131 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { + function makeTree(data,relPath) { + let result=''; + if ('children' in data) { + result+='
    '; + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + let searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
'+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'+ + '
'+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + $('#main-menu').append('
  • '); + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; + if ($mainMenuState.length) { + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(treeview); + } + // animate mobile menu + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = () => $menu.css('display', 'block'); + $menu.hide().slideDown(options); + } else { + options['complete'] = () => $menu.css('display', 'none'); + $menu.show().slideUp(options); + } + }); + // set default menu visibility + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js new file mode 100644 index 0000000..b4de631 --- /dev/null +++ b/docs/html/menudata.js @@ -0,0 +1,216 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html"}, +{text:"Functions",url:"namespacemembers_func.html"}]}]}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"k",url:"functions_k.html#index_k"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"q",url:"functions_q.html#index_q"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"v",url:"functions_v.html#index_v"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"x",url:"functions_x.html#index_x"}, +{text:"y",url:"functions_y.html#index_y"}, +{text:"~",url:"functions_~.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func.html#index_b"}, +{text:"c",url:"functions_func.html#index_c"}, +{text:"d",url:"functions_func.html#index_d"}, +{text:"e",url:"functions_func.html#index_e"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"l",url:"functions_func.html#index_l"}, +{text:"m",url:"functions_func.html#index_m"}, +{text:"n",url:"functions_func.html#index_n"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"q",url:"functions_func.html#index_q"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"t",url:"functions_func.html#index_t"}, +{text:"u",url:"functions_func.html#index_u"}, +{text:"~",url:"functions_func.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars.html#index_b"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"e",url:"functions_vars.html#index_e"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"g",url:"functions_vars.html#index_g"}, +{text:"h",url:"functions_vars.html#index_h"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"k",url:"functions_vars.html#index_k"}, +{text:"l",url:"functions_vars.html#index_l"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"n",url:"functions_vars.html#index_n"}, +{text:"o",url:"functions_vars.html#index_o"}, +{text:"p",url:"functions_vars.html#index_p"}, +{text:"q",url:"functions_vars.html#index_q"}, +{text:"r",url:"functions_vars.html#index_r"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}, +{text:"u",url:"functions_vars.html#index_u"}, +{text:"v",url:"functions_vars.html#index_v"}, +{text:"w",url:"functions_vars.html#index_w"}, +{text:"x",url:"functions_vars.html#index_x"}, +{text:"y",url:"functions_vars.html#index_y"}]}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"Globals",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"_",url:"globals.html#index__5F"}, +{text:"a",url:"globals_a.html#index_a"}, +{text:"b",url:"globals_b.html#index_b"}, +{text:"c",url:"globals_c.html#index_c"}, +{text:"d",url:"globals_d.html#index_d"}, +{text:"e",url:"globals_e.html#index_e"}, +{text:"f",url:"globals_f.html#index_f"}, +{text:"g",url:"globals_g.html#index_g"}, +{text:"h",url:"globals_h.html#index_h"}, +{text:"i",url:"globals_i.html#index_i"}, +{text:"k",url:"globals_k.html#index_k"}, +{text:"l",url:"globals_l.html#index_l"}, +{text:"m",url:"globals_m.html#index_m"}, +{text:"n",url:"globals_n.html#index_n"}, +{text:"o",url:"globals_o.html#index_o"}, +{text:"p",url:"globals_p.html#index_p"}, +{text:"q",url:"globals_q.html#index_q"}, +{text:"r",url:"globals_r.html#index_r"}, +{text:"s",url:"globals_s.html#index_s"}, +{text:"t",url:"globals_t.html#index_t"}, +{text:"u",url:"globals_u.html#index_u"}, +{text:"v",url:"globals_v.html#index_v"}, +{text:"w",url:"globals_w.html#index_w"}, +{text:"x",url:"globals_x.html#index_x"}, +{text:"y",url:"globals_y.html#index_y"}]}, +{text:"Functions",url:"globals_func.html",children:[ +{text:"_",url:"globals_func.html#index__5F"}, +{text:"a",url:"globals_func_a.html#index_a"}, +{text:"b",url:"globals_func_b.html#index_b"}, +{text:"c",url:"globals_func_c.html#index_c"}, +{text:"d",url:"globals_func_d.html#index_d"}, +{text:"e",url:"globals_func_e.html#index_e"}, +{text:"f",url:"globals_func_f.html#index_f"}, +{text:"g",url:"globals_func_g.html#index_g"}, +{text:"i",url:"globals_func_i.html#index_i"}, +{text:"k",url:"globals_func_k.html#index_k"}, +{text:"l",url:"globals_func_l.html#index_l"}, +{text:"m",url:"globals_func_m.html#index_m"}, +{text:"p",url:"globals_func_p.html#index_p"}, +{text:"r",url:"globals_func_r.html#index_r"}, +{text:"s",url:"globals_func_s.html#index_s"}, +{text:"t",url:"globals_func_t.html#index_t"}, +{text:"u",url:"globals_func_u.html#index_u"}, +{text:"v",url:"globals_func_v.html#index_v"}, +{text:"w",url:"globals_func_w.html#index_w"}, +{text:"x",url:"globals_func_x.html#index_x"}]}, +{text:"Variables",url:"globals_vars.html",children:[ +{text:"_",url:"globals_vars.html#index__5F"}, +{text:"a",url:"globals_vars_a.html#index_a"}, +{text:"b",url:"globals_vars_b.html#index_b"}, +{text:"c",url:"globals_vars_c.html#index_c"}, +{text:"d",url:"globals_vars_d.html#index_d"}, +{text:"e",url:"globals_vars_e.html#index_e"}, +{text:"f",url:"globals_vars_f.html#index_f"}, +{text:"g",url:"globals_vars_g.html#index_g"}, +{text:"h",url:"globals_vars_h.html#index_h"}, +{text:"i",url:"globals_vars_i.html#index_i"}, +{text:"k",url:"globals_vars_k.html#index_k"}, +{text:"l",url:"globals_vars_l.html#index_l"}, +{text:"m",url:"globals_vars_m.html#index_m"}, +{text:"n",url:"globals_vars_n.html#index_n"}, +{text:"o",url:"globals_vars_o.html#index_o"}, +{text:"p",url:"globals_vars_p.html#index_p"}, +{text:"r",url:"globals_vars_r.html#index_r"}, +{text:"s",url:"globals_vars_s.html#index_s"}, +{text:"t",url:"globals_vars_t.html#index_t"}, +{text:"w",url:"globals_vars_w.html#index_w"}, +{text:"x",url:"globals_vars_x.html#index_x"}, +{text:"y",url:"globals_vars_y.html#index_y"}]}, +{text:"Typedefs",url:"globals_type.html"}, +{text:"Enumerations",url:"globals_enum.html"}, +{text:"Enumerator",url:"globals_eval.html",children:[ +{text:"a",url:"globals_eval.html#index_a"}, +{text:"b",url:"globals_eval.html#index_b"}, +{text:"c",url:"globals_eval.html#index_c"}, +{text:"e",url:"globals_eval.html#index_e"}, +{text:"f",url:"globals_eval.html#index_f"}, +{text:"i",url:"globals_eval.html#index_i"}, +{text:"l",url:"globals_eval.html#index_l"}, +{text:"s",url:"globals_eval.html#index_s"}, +{text:"t",url:"globals_eval.html#index_t"}, +{text:"w",url:"globals_eval.html#index_w"}]}, +{text:"Macros",url:"globals_defs.html",children:[ +{text:"_",url:"globals_defs.html#index__5F"}, +{text:"a",url:"globals_defs_a.html#index_a"}, +{text:"b",url:"globals_defs_b.html#index_b"}, +{text:"c",url:"globals_defs_c.html#index_c"}, +{text:"d",url:"globals_defs_d.html#index_d"}, +{text:"e",url:"globals_defs_e.html#index_e"}, +{text:"f",url:"globals_defs_f.html#index_f"}, +{text:"i",url:"globals_defs_i.html#index_i"}, +{text:"k",url:"globals_defs_k.html#index_k"}, +{text:"l",url:"globals_defs_l.html#index_l"}, +{text:"m",url:"globals_defs_m.html#index_m"}, +{text:"n",url:"globals_defs_n.html#index_n"}, +{text:"o",url:"globals_defs_o.html#index_o"}, +{text:"p",url:"globals_defs_p.html#index_p"}, +{text:"q",url:"globals_defs_q.html#index_q"}, +{text:"r",url:"globals_defs_r.html#index_r"}, +{text:"s",url:"globals_defs_s.html#index_s"}, +{text:"t",url:"globals_defs_t.html#index_t"}, +{text:"u",url:"globals_defs_u.html#index_u"}, +{text:"v",url:"globals_defs_v.html#index_v"}, +{text:"w",url:"globals_defs_w.html#index_w"}, +{text:"x",url:"globals_defs_x.html#index_x"}, +{text:"y",url:"globals_defs_y.html#index_y"}]}]}]}]} diff --git a/docs/html/namespacedspm.html b/docs/html/namespacedspm.html new file mode 100644 index 0000000..2862d7d --- /dev/null +++ b/docs/html/namespacedspm.html @@ -0,0 +1,869 @@ + + + + + + + +ESP-IDF Firmware: dspm Namespace Reference + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    ESP-IDF Firmware +
    +
    Firmware architecture and call graph
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dspm Namespace Reference
    +
    +
    + +

    DSP matrix namespace. +More...

    + + + + +

    +Data Structures

    class  Mat
     Matrix. More...
    + + + + + + + + + + + + + + + + + +

    +Functions

    std::ostream & operator<< (std::ostream &os, const Mat &m)
    std::ostream & operator<< (std::ostream &os, const Mat::Rect &rect)
    std::istream & operator>> (std::istream &is, Mat &m)
    Mat operator+ (const Mat &A, const Mat &B)
    Mat operator+ (const Mat &A, float C)
    Mat operator- (const Mat &A, const Mat &B)
    Mat operator- (const Mat &A, float C)
    Mat operator* (const Mat &A, const Mat &B)
    Mat operator* (const Mat &A, float C)
    Mat operator* (float C, const Mat &A)
    Mat operator/ (const Mat &A, float C)
    Mat operator/ (const Mat &A, const Mat &B)
    bool operator== (const Mat &A, const Mat &B)
    ostream & operator<< (ostream &os, const Mat &m)
    ostream & operator<< (ostream &os, const Mat::Rect &rect)
    istream & operator>> (istream &is, Mat &m)
    +

    Detailed Description

    +

    DSP matrix namespace.

    +

    DSP library matrix namespace.

    +

    Function Documentation

    + +

    ◆ operator*() [1/3]

    + +
    +
    + + + + + + + + + + + +
    Mat dspm::operator* (const Mat & A,
    const Mat & B )
    +
    +
      +
    • operator, multiplication of two matrices. The operator use DSP optimized implementation of multiplication.
    • +
    +
    Parameters
    + + + +
    [in]AInput matrix A
    [in]BInput matrix B
    +
    +
    +
    Returns
      +
    • result matrix A*B
    • +
    +
    + +

    Definition at line 933 of file mat.cpp.

    +
    934{
    +
    935 if (m1.cols != m2.rows) {
    +
    936 ESP_LOGW("Mat", "operator * Error: matrices do not have correct dimensions");
    +
    937 Mat err_ret;
    +
    938 return err_ret;
    +
    939 }
    +
    940 Mat temp(m1.rows, m2.cols);
    +
    941
    +
    942 if (m1.sub_matrix || m2.sub_matrix) {
    +
    943 dspm_mult_ex_f32(m1.data, m2.data, temp.data, m1.rows, m1.cols, m2.cols, m1.padding, m2.padding, temp.padding);
    +
    944 } else {
    +
    945 dspm_mult_f32(m1.data, m2.data, temp.data, m1.rows, m1.cols, m2.cols);
    +
    946 }
    +
    947
    +
    948 return temp;
    +
    949
    +
    950}
    +
    Matrix.
    Definition mat.h:30
    +
    #define dspm_mult_ex_f32
    Definition dspm_mult.h:226
    +
    #define dspm_mult_f32
    Definition dspm_mult.h:221
    +
    +

    References dspm::Mat::cols, dspm::Mat::data, dspm_mult_ex_f32, dspm_mult_f32, dspm::Mat::padding, dspm::Mat::rows, and dspm::Mat::sub_matrix.

    + +
    +
    + +

    ◆ operator*() [2/3]

    + +
    +
    + + + + + + + + + + + +
    Mat dspm::operator* (const Mat & A,
    float C )
    +
    +
      +
    • operator, multiplication of matrix with constant The operator use DSP optimized implementation of multiplication.
    • +
    +
    Parameters
    + + + +
    [in]AInput matrix A
    [in]Cfloating point value
    +
    +
    +
    Returns
      +
    • result matrix A*B
    • +
    +
    + +

    Definition at line 952 of file mat.cpp.

    +
    953{
    +
    954 if (m.sub_matrix) {
    +
    955 Mat temp(m.rows, m.cols);
    +
    956 dspm_mulc_f32(m.data, temp.data, num, m.rows, m.cols, m.padding, temp.padding, 1, 1);
    +
    957 return temp;
    +
    958 } else {
    +
    959 Mat temp(m);
    +
    960 return (temp *= num);
    +
    961 }
    +
    962}
    +
    #define dspm_mulc_f32
    Definition dspm_mulc.h:57
    +
    const int m
    Definition test_mmult.c:16
    +
    +

    References dspm::Mat::data, dspm_mulc_f32, m, and dspm::Mat::padding.

    + +
    +
    + +

    ◆ operator*() [3/3]

    + +
    +
    + + + + + + + + + + + +
    Mat dspm::operator* (float C,
    const Mat & A )
    +
    +
      +
    • operator, multiplication of matrix with constant The operator use DSP optimized implementation of multiplication.
    • +
    +
    Parameters
    + + + +
    [in]Cfloating point value
    [in]AInput matrix A
    +
    +
    +
    Returns
      +
    • result matrix A*B
    • +
    +
    + +

    Definition at line 964 of file mat.cpp.

    +
    965{
    +
    966 return (m * num);
    +
    967}
    +
    +

    References m.

    + +
    +
    + +

    ◆ operator+() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Mat dspm::operator+ (const Mat & A,
    const Mat & B )
    +
    +
      +
    • operator, sum of two matrices The operator use DSP optimized implementation of multiplication.
    • +
    +
    Parameters
    + + + +
    [in]AInput matrix A
    [in]BInput matrix B
    +
    +
    +
    Returns
      +
    • result matrix A+B
    • +
    +
    + +

    Definition at line 855 of file mat.cpp.

    +
    856{
    +
    857 if ((m1.rows != m2.rows) || (m1.cols != m2.cols)) {
    +
    858 ESP_LOGW("Mat", "operator + Error: matrices do not have equal dimensions");
    +
    859 Mat err_ret;
    +
    860 return err_ret;
    +
    861 }
    +
    862
    +
    863 if (m1.sub_matrix || m2.sub_matrix) {
    +
    864 Mat temp(m1.rows, m2.cols);
    +
    865 dspm_add_f32(m1.data, m2.data, temp.data, m1.rows, m1.cols, m1.padding, m2.padding, temp.padding, 1, 1, 1);
    +
    866 return temp;
    +
    867 } else {
    +
    868 Mat temp(m1);
    +
    869 return (temp += m2);
    +
    870 }
    +
    871}
    +
    #define dspm_add_f32
    Definition dspm_add.h:62
    +
    +

    References dspm::Mat::cols, dspm::Mat::data, dspm_add_f32, dspm::Mat::padding, dspm::Mat::rows, and dspm::Mat::sub_matrix.

    + +
    +
    + +

    ◆ operator+() [2/2]

    + +
    +
    + + + + + + + + + + + +
    Mat dspm::operator+ (const Mat & A,
    float C )
    +
    +
      +
    • operator, sum of matrix with constant The operator use DSP optimized implementation of multiplication.
    • +
    +
    Parameters
    + + + +
    [in]AInput matrix A
    [in]CInput constant
    +
    +
    +
    Returns
      +
    • result matrix A+C
    • +
    +
    + +

    Definition at line 873 of file mat.cpp.

    +
    874{
    +
    875 if (m.sub_matrix) {
    +
    876 Mat temp(m.rows, m.cols);
    +
    877 dspm_addc_f32(m.data, temp.data, C, m.rows, m.cols, m.padding, temp.padding, 1, 1);
    +
    878 return temp;
    +
    879 } else {
    +
    880 Mat temp(m);
    +
    881 return (temp += C);
    +
    882 }
    +
    883}
    +
    #define dspm_addc_f32
    Definition dspm_addc.h:57
    +
    float C[4][16]
    Definition test_mmult.c:22
    +
    +

    References C, dspm::Mat::data, dspm_addc_f32, m, and dspm::Mat::padding.

    + +
    +
    + +

    ◆ operator-() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Mat dspm::operator- (const Mat & A,
    const Mat & B )
    +
    +
      +
    • operator, subtraction of two matrices The operator use DSP optimized implementation of multiplication.
    • +
    +
    Parameters
    + + + +
    [in]AInput matrix A
    [in]BInput matrix B
    +
    +
    +
    Returns
      +
    • result matrix A-B
    • +
    +
    + +

    Definition at line 903 of file mat.cpp.

    +
    904{
    +
    905 if ((m1.rows != m2.rows) || (m1.cols != m2.cols)) {
    +
    906 ESP_LOGW("Mat", "operator - Error: matrices do not have equal dimensions");
    +
    907 Mat err_ret;
    +
    908 return err_ret;
    +
    909 }
    +
    910
    +
    911 if (m1.sub_matrix || m2.sub_matrix) {
    +
    912 Mat temp(m1.rows, m1.cols);
    +
    913 dspm_sub_f32(m1.data, m2.data, temp.data, m1.rows, m1.cols, m1.padding, m2.padding, temp.padding, 1, 1, 1);
    +
    914 return temp;
    +
    915 } else {
    +
    916 Mat temp(m1);
    +
    917 return (temp -= m2);
    +
    918 }
    +
    919}
    +
    #define dspm_sub_f32
    Definition dspm_sub.h:58
    +
    +

    References dspm::Mat::cols, dspm::Mat::data, dspm_sub_f32, dspm::Mat::padding, dspm::Mat::rows, and dspm::Mat::sub_matrix.

    + +
    +
    + +

    ◆ operator-() [2/2]

    + +
    +
    + + + + + + + + + + + +
    Mat dspm::operator- (const Mat & A,
    float C )
    +
    +
      +
    • operator, sum of matrix with constant The operator use DSP optimized implementation of multiplication.
    • +
    +
    Parameters
    + + + +
    [in]AInput matrix A
    [in]CInput constant
    +
    +
    +
    Returns
      +
    • result matrix A+C
    • +
    +
    + +

    Definition at line 921 of file mat.cpp.

    +
    922{
    +
    923 if (m.sub_matrix) {
    +
    924 Mat temp(m.rows, m.cols);
    +
    925 dspm_addc_f32(m.data, temp.data, -C, m.rows, m.cols, m.padding, temp.padding, 1, 1);
    +
    926 return temp;
    +
    927 } else {
    +
    928 Mat temp(m);
    +
    929 return (temp -= C);
    +
    930 }
    +
    931}
    +
    +

    References C, dspm::Mat::data, dspm_addc_f32, m, and dspm::Mat::padding.

    + +
    +
    + +

    ◆ operator/() [1/2]

    + +
    +
    + + + + + + + + + + + +
    Mat dspm::operator/ (const Mat & A,
    const Mat & B )
    +
    +

    / operator, divide matrix A by matrix B

    +
    Parameters
    + + + +
    [in]AInput matrix A
    [in]BInput matrix B
    +
    +
    +
    Returns
      +
    • result matrix C, where C[i,j] = A[i,j]/B[i,j]
    • +
    +
    + +

    Definition at line 981 of file mat.cpp.

    +
    982{
    +
    983 if ((A.rows != B.rows) || (A.cols != B.cols)) {
    +
    984 ESP_LOGW("Mat", "Operator + Error: matrices do not have equal dimensions");
    +
    985 Mat err_ret;
    +
    986 return err_ret;
    +
    987 }
    +
    988
    +
    989 Mat temp(A.rows, A.cols);
    +
    990 for (int row = 0; row < A.rows; row++) {
    +
    991 for (int col = 0; col < A.cols; col++) {
    +
    992 temp(row, col) = A(row, col) / B(row, col);
    +
    993 }
    +
    994 }
    +
    995 return temp;
    +
    996}
    +
    float B[8][16]
    Definition test_mmult.c:21
    +
    float A[4][8]
    Definition test_mmult.c:20
    +
    +

    References A, and B.

    + +
    +
    + +

    ◆ operator/() [2/2]

    + +
    +
    + + + + + + + + + + + +
    Mat dspm::operator/ (const Mat & A,
    float C )
    +
    +

    / operator, divide of matrix by constant The operator use DSP optimized implementation of multiplication.

    +
    Parameters
    + + + +
    [in]AInput matrix A
    [in]Cfloating point value
    +
    +
    +
    Returns
      +
    • result matrix A*B
    • +
    +
    + +

    Definition at line 969 of file mat.cpp.

    +
    970{
    +
    971 if (m.sub_matrix) {
    +
    972 Mat temp(m.rows, m.cols);
    +
    973 dspm_mulc_f32(m.data, temp.data, 1 / num, m.rows, m.cols, m.padding, temp.padding, 1, 1);
    +
    974 return temp;
    +
    975 } else {
    +
    976 Mat temp(m);
    +
    977 return (temp /= num);
    +
    978 }
    +
    979}
    +
    +

    References dspm::Mat::data, dspm_mulc_f32, m, and dspm::Mat::padding.

    + +
    +
    + +

    ◆ operator<<() [1/4]

    + +
    +
    + + + + + + + + + + + +
    ostream & dspm::operator<< (ostream & os,
    const Mat & m )
    +
    + +

    Definition at line 998 of file mat.cpp.

    +
    999{
    +
    1000 for (int i = 0; i < m.rows; ++i) {
    +
    1001 os << m(i, 0);
    +
    1002 for (int j = 1; j < m.cols; ++j) {
    +
    1003 os << " " << m(i, j);
    +
    1004 }
    +
    1005 os << endl;
    +
    1006 }
    +
    1007 return os;
    +
    1008}
    +
    +

    References m.

    + +
    +
    + +

    ◆ operator<<() [2/4]

    + +
    +
    + + + + + + + + + + + +
    ostream & dspm::operator<< (ostream & os,
    const Mat::Rect & rect )
    +
    + +

    Definition at line 1010 of file mat.cpp.

    +
    1011{
    +
    1012 os << "row start " << rect.y << endl;
    +
    1013 os << "col start " << rect.x << endl;
    +
    1014 os << "row count " << rect.height << endl;
    +
    1015 os << "col count " << rect.width << endl;
    +
    1016
    +
    1017 return os;
    +
    1018}
    +
    int width
    Definition mat.h:51
    + + +
    int height
    Definition mat.h:52
    +
    +

    References dspm::Mat::Rect::height, dspm::Mat::Rect::width, dspm::Mat::Rect::x, and dspm::Mat::Rect::y.

    + +
    +
    + +

    ◆ operator<<() [3/4]

    + +
    +
    + + + + + + + + + + + +
    std::ostream & dspm::operator<< (std::ostream & os,
    const Mat & m )
    +
    +

    Print matrix to the standard iostream.

    Parameters
    + + + +
    [in]osoutput stream
    [in]mmatrix to print
    +
    +
    +
    Returns
      +
    • output stream
    • +
    +
    + +

    References m.

    + +
    +
    + +

    ◆ operator<<() [4/4]

    + +
    +
    + + + + + + + + + + + +
    std::ostream & dspm::operator<< (std::ostream & os,
    const Mat::Rect & rect )
    +
    +

    Print rectangular ROI to the standard iostream.

    Parameters
    + + + +
    [in]osoutput stream
    [in]rectROI
    +
    +
    +
    Returns
      +
    • output stream
    • +
    +
    + +
    +
    + +

    ◆ operator==()

    + +
    +
    + + + + + + + + + + + +
    bool dspm::operator== (const Mat & A,
    const Mat & B )
    +
    +

    == operator, compare two matrices

    +
    Parameters
    + + + +
    [in]AInput matrix A
    [in]BInput matrix B
    +
    +
    +
    Returns
      +
    • true if matrices are the same
    • +
    • false if matrices are different
    • +
    +
    + +

    Definition at line 885 of file mat.cpp.

    +
    886{
    +
    887 if ((m1.cols != m2.cols) || (m1.rows != m2.rows)) {
    +
    888 return false;
    +
    889 }
    +
    890
    +
    891 for (int row = 0; row < m1.rows; row++) {
    +
    892 for (int col = 0; col < m1.cols; col++) {
    +
    893 if (m1(row, col) != m2(row, col)) {
    +
    894 ESP_LOGW("Mat", "operator == Error: %i %i, m1.data=%f, m2.data=%f \n", row, col, m1(row, col), m2(row, col));
    +
    895 return false;
    +
    896 }
    +
    897 }
    +
    898 }
    +
    899
    +
    900 return true;
    +
    901}
    +
    +

    References dspm::Mat::cols, and dspm::Mat::rows.

    + +
    +
    + +

    ◆ operator>>() [1/2]

    + +
    +
    + + + + + + + + + + + +
    istream & dspm::operator>> (istream & is,
    Mat & m )
    +
    + +

    Definition at line 1020 of file mat.cpp.

    +
    1021{
    +
    1022 for (int i = 0; i < m.rows; ++i) {
    +
    1023 for (int j = 0; j < m.cols; ++j) {
    +
    1024 is >> m(i, j);
    +
    1025 }
    +
    1026 }
    +
    1027 return is;
    +
    1028}
    +
    +

    References m.

    + +
    +
    + +

    ◆ operator>>() [2/2]

    + +
    +
    + + + + + + + + + + + +
    std::istream & dspm::operator>> (std::istream & is,
    Mat & m )
    +
    +

    Fill the matrix from iostream.

    Parameters
    + + + +
    [in]isinput stream
    [in]mmatrix to fill
    +
    +
    +
    Returns
      +
    • input stream
    • +
    +
    + +

    References A, B, C, and m.

    + +
    +
    +
    +
    + +
    + + + + diff --git a/docs/html/namespacedspm.js b/docs/html/namespacedspm.js new file mode 100644 index 0000000..9299ea7 --- /dev/null +++ b/docs/html/namespacedspm.js @@ -0,0 +1,20 @@ +var namespacedspm = +[ + [ "Mat", "classdspm_1_1_mat.html", "classdspm_1_1_mat" ], + [ "operator*", "namespacedspm.html#ae917fe8f86576dd7910f03eb61437e2b", null ], + [ "operator*", "namespacedspm.html#a9dda7a626ce98d9f0c6a549e1d20c9e7", null ], + [ "operator*", "namespacedspm.html#af1ae97b7704e35daf0e81f30c5d6a670", null ], + [ "operator+", "namespacedspm.html#a9e61877ac5a71dfe72b6d85cee437a1b", null ], + [ "operator+", "namespacedspm.html#a60b6050a432c55594d01ba71eb61f492", null ], + [ "operator-", "namespacedspm.html#a90069a63779cb3f9acd4133d712398f1", null ], + [ "operator-", "namespacedspm.html#ae0180388dc6621f4acacdd272ee3ddef", null ], + [ "operator/", "namespacedspm.html#a847e2edb3c51ec3c008829192d57ecd0", null ], + [ "operator/", "namespacedspm.html#ae1aec93ec60c16f62b010e6b8091a327", null ], + [ "operator<<", "namespacedspm.html#a797ac55a6a9b656655bf426ac6cdd5e8", null ], + [ "operator<<", "namespacedspm.html#a8242a0916e6819fa972ef8c120fff9e1", null ], + [ "operator<<", "namespacedspm.html#a53928c165fbf2bfb4b7387e680125306", null ], + [ "operator<<", "namespacedspm.html#a8b7f02ff03b133b0096e508ea3d7ec48", null ], + [ "operator==", "namespacedspm.html#acd29dc39f4582a2da0245381f3025939", null ], + [ "operator>>", "namespacedspm.html#a935b48b0c13e1334b68ec6b9e30835d3", null ], + [ "operator>>", "namespacedspm.html#a1918ace983ea835d484d844f565e9b15", null ] +]; \ No newline at end of file diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html new file mode 100644 index 0000000..13aefb6 --- /dev/null +++ b/docs/html/namespacemembers.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Namespace Members + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    ESP-IDF Firmware +
    +
    Firmware architecture and call graph
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
      +
    • operator*() : dspm
    • +
    • operator+() : dspm
    • +
    • operator-() : dspm
    • +
    • operator/() : dspm
    • +
    • operator<<() : dspm
    • +
    • operator==() : dspm
    • +
    • operator>>() : dspm
    • +
    +
    +
    +
    + + + + diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html new file mode 100644 index 0000000..ebce0ba --- /dev/null +++ b/docs/html/namespacemembers_func.html @@ -0,0 +1,111 @@ + + + + + + + +ESP-IDF Firmware: Namespace Members + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    ESP-IDF Firmware +
    +
    Firmware architecture and call graph
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
      +
    • operator*() : dspm
    • +
    • operator+() : dspm
    • +
    • operator-() : dspm
    • +
    • operator/() : dspm
    • +
    • operator<<() : dspm
    • +
    • operator==() : dspm
    • +
    • operator>>() : dspm
    • +
    +
    +
    +
    + + + + diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html new file mode 100644 index 0000000..9bcc366 --- /dev/null +++ b/docs/html/namespaces.html @@ -0,0 +1,110 @@ + + + + + + + +ESP-IDF Firmware: Namespace List + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    ESP-IDF Firmware +
    +
    Firmware architecture and call graph
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Namespace List
    +
    +
    +
    Here is a list of all namespaces with brief descriptions:
    + + +
     NdspmDSP matrix namespace
    +
    +
    +
    +
    + + + + diff --git a/docs/html/namespaces_dup.js b/docs/html/namespaces_dup.js new file mode 100644 index 0000000..d8d86da --- /dev/null +++ b/docs/html/namespaces_dup.js @@ -0,0 +1,4 @@ +var namespaces_dup = +[ + [ "dspm", "namespacedspm.html", "namespacedspm" ] +]; \ No newline at end of file diff --git a/docs/html/navtree.css b/docs/html/navtree.css new file mode 100644 index 0000000..0ea3a07 --- /dev/null +++ b/docs/html/navtree.css @@ -0,0 +1,327 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0; + padding:0; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + position: relative; + background-color: var(--nav-menu-active-bg); + border-radius: 0 6px 6px 0; + /*margin-right: 5px;*/ +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); + line-height: 22px; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--page-link-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin: 0 6px 0 -5px; + padding: 0 0 0 5px; + height: 22px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + transition: opacity 0.5s ease; + background-color: var(--nav-splitbar-bg-color); + opacity:0; + cursor:col-resize; + height:100%; + right:0; + top:0; + width:6px; + position: relative; +} + +.ui-resizable-e:after { + content: ''; + display: block; + top: 50%; + left: 1px; + width: 2px; + height: 15px; + border-left: 1px solid var(--nav-splitbar-handle-color); + border-right: 1px solid var(--nav-splitbar-handle-color); + position: absolute; +} + +.ui-resizable-e:hover { + opacity: 1; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ + scrollbar-width: thin; + border-right: 1px solid var(--nav-border-color); + padding-left: 5px; +} + +#nav-sync { + position:absolute; + top:0px; + right:0px; + z-index:1; +} + +#nav-sync img { + opacity:0.3; +} + +div.nav-sync-icon { + position: relative; + width: 24px; + height: 17px; + left: -6px; + top: -1px; + opacity: 0.7; + display: inline-block; + background-color: var(--sync-icon-background-color); + border: 1px solid var(--sync-icon-border-color); + box-sizing: content-box; +} + +div.nav-sync-icon:hover { + background-color: var(--sync-icon-selected-background-color); + opacity: 1.0; +} + +div.nav-sync-icon.active:after { + content: ''; + background-color: var(--sync-icon-background-color); + border-top: 2px solid var(--sync-icon-color); + position: absolute; + width: 16px; + height: 0px; + top: 7px; + left: 4px; +} + +div.nav-sync-icon.active:hover:after { + border-top: 2px solid var(--sync-icon-selected-color); +} + +span.sync-icon-left { + position: absolute; + padding: 0; + margin: 0; + top: 3px; + left: 4px; + display: inline-block; + width: 8px; + height: 8px; + border-left: 2px solid var(--sync-icon-color); + border-top: 2px solid var(--sync-icon-color); + transform: rotate(-45deg); +} + +span.sync-icon-right { + position: absolute; + padding: 0; + margin: 0; + top: 3px; + left: 10px; + display: inline-block; + width: 8px; + height: 8px; + border-right: 2px solid var(--sync-icon-color); + border-bottom: 2px solid var(--sync-icon-color); + transform: rotate(-45deg); +} + +div.nav-sync-icon:hover span.sync-icon-left { + border-left: 2px solid var(--sync-icon-selected-color); + border-top: 2px solid var(--sync-icon-selected-color); +} + +div.nav-sync-icon:hover span.sync-icon-right { + border-right: 2px solid var(--sync-icon-selected-color); + border-bottom: 2px solid var(--sync-icon-selected-color); +} + +#nav-path ul { + border-top: 1px solid var(--nav-breadcrumb-separator-color); +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + +/*---------------------------*/ +#container { + display: grid; + grid-template-columns: auto auto; + overflow: hidden; +} + +#page-nav { + background: var(--nav-background-color); + display: block; + width: 250px; + box-sizing: content-box; + position: relative; + border-left: 1px solid var(--nav-border-color); +} + +#page-nav-tree { + display: inline-block; +} + +#page-nav-resize-handle { + transition: opacity 0.5s ease; + background-color: var(--nav-splitbar-bg-color); + opacity:0; + cursor:col-resize; + height:100%; + right:0; + top:0; + width:6px; + position: relative; + z-index: 1; + user-select: none; +} + +#page-nav-resize-handle:after { + content: ''; + display: block; + top: 50%; + left: 1px; + width: 2px; + height: 15px; + border-left: 1px solid var(--nav-splitbar-handle-color); + border-right: 1px solid var(--nav-splitbar-handle-color); + position: absolute; +} + +#page-nav-resize-handle.dragging, +#page-nav-resize-handle:hover { + opacity: 1; +} + +#page-nav-contents { + padding: 0; + margin: 0; + display: block; + top: 0; + left: 0; + height: 100%; + width: 100%; + position: absolute; + overflow: auto; + scrollbar-width: thin; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +ul.page-outline, +ul.page-outline ul { + text-indent: 0; + list-style: none outside none; + padding: 0 0 0 4px; +} + +ul.page-outline { + margin: 0 4px 4px 6px; +} + +ul.page-outline div.item { + font: 12px var(--font-family-nav); + line-height: 22px; +} + +ul.page-outline li { + white-space: nowrap; +} + +ul.page-outline li.vis { + background-color: var(--nav-breadcrumb-active-bg); +} + +#container.resizing { + cursor: col-resize; + user-select: none; +} diff --git a/docs/html/navtree.js b/docs/html/navtree.js new file mode 100644 index 0000000..fac8d01 --- /dev/null +++ b/docs/html/navtree.js @@ -0,0 +1,901 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initNavTree(toroot,relpath,allMembersFile) { + let navTreeSubIndices = []; + const ARROW_DOWN = ''; + const ARROW_RIGHT = ''; + const NAVPATH_COOKIE_NAME = ''+'navpath'; + const fullSidebar = typeof page_layout!=='undefined' && page_layout==1; + + function getScrollBarWidth () { + let outer = $('
    ').css({visibility: 'hidden', width: 100, overflow: 'scroll', scrollbarWidth: 'thin'}).appendTo('body'); + let widthWithScroll = $('
    ').css({width: '100%'}).appendTo(outer).outerWidth(); + outer.remove(); + return 100 - widthWithScroll; + } + const scrollbarWidth = getScrollBarWidth(); + + function adjustSyncIconPosition() { + if (!fullSidebar) { + const nt = document.getElementById("nav-tree"); + const hasVerticalScrollbar = nt.scrollHeight > nt.clientHeight; + $("#nav-sync").css({right:parseInt(hasVerticalScrollbar?scrollbarWidth:0)}); + } + } + + const getData = function(varName) { + const i = varName.lastIndexOf('/'); + const n = i>=0 ? varName.substring(i+1) : varName; + const e = n.replace(/-/g,'_'); + return window[e]; + } + + const stripPath = function(uri) { + return uri.substring(uri.lastIndexOf('/')+1); + } + + const stripPath2 = function(uri) { + const i = uri.lastIndexOf('/'); + const s = uri.substring(i+1); + const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; + } + + const hashValue = function() { + return $(location).attr('hash').substring(1).replace(/[^\w-]/g,''); + } + + const hashUrl = function() { + return '#'+hashValue(); + } + + const pathName = function() { + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, ''); + } + + const storeLink = function(link) { + if (!$("#nav-sync").hasClass('sync')) { + Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0); + } + } + + const deleteLink = function() { + Cookie.eraseSetting(NAVPATH_COOKIE_NAME); + } + + const cachedLink = function() { + return Cookie.readSetting(NAVPATH_COOKIE_NAME,''); + } + + const getScript = function(scriptName,func) { + const head = document.getElementsByTagName("head")[0]; + const script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = function() { func(); adjustSyncIconPosition(); } + script.src = scriptName+'.js'; + head.appendChild(script); + } + + const createIndent = function(o,domNode,node) { + let level=-1; + let n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + const imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=ARROW_RIGHT; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast",adjustSyncIconPosition); + $(node.plus_img.childNodes[0]).removeClass('opened').addClass('closed'); + node.expanded = false; + } else { + expandNode(o, node, false, true); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + let span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } + } + + let animationInProgress = false; + + const gotoAnchor = function(anchor,aname) { + let pos, docContent = $('#doc-content'); + let ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || + ancParent.is(':header')) { + pos = ancParent.offset().top; + } else if (anchor.position()) { + pos = anchor.offset().top; + } + if (pos) { + const dcOffset = docContent.offset().top; + const dcHeight = docContent.height(); + const dcScrHeight = docContent[0].scrollHeight + const dcScrTop = docContent.scrollTop(); + let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop)); + animationInProgress = true; + docContent.animate({ + scrollTop: pos + dcScrTop - dcOffset + },Math.max(50,Math.min(500,dist)),function() { + animationInProgress=false; + if (anchor.parent().attr('class')=='memItemLeft') { + let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname') { + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype') { + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + }); + } + } + + function htmlToNode(html) { + const template = document.createElement('template'); + template.innerHTML = html; + const nNodes = template.content.childNodes.length; + if (nNodes !== 1) { + throw new Error(`html parameter must represent a single node; got ${nNodes}. `); + } + return template.content.firstChild; + } + + const newNode = function(o, po, text, link, childrenData, lastNode) { + const node = { + children : [], + childrenData : childrenData, + depth : po.depth + 1, + relpath : po.relpath, + isLast : lastNode, + li : document.createElement("li"), + parentNode : po, + itemDiv : document.createElement("div"), + labelSpan : document.createElement("span"), + expanded : false, + childrenUL : null, + getChildrenUL : function() { + if (!this.childrenUL) { + this.childrenUL = document.createElement("ul"); + this.childrenUL.className = "children_ul"; + this.childrenUL.style.display = "none"; + this.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }, + }; + + node.itemDiv.className = "item"; + node.labelSpan.className = "label"; + createIndent(o,node.itemDiv,node); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + const a = document.createElement("a"); + node.labelSpan.appendChild(a); + po.getChildrenUL().appendChild(node.li); + a.appendChild(htmlToNode(''+text+'')); + if (link) { + let url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + const aname = '#'+link.split('#')[1]; + const srcPage = stripPath(pathName()); + const targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : aname; + a.onclick = function() { + storeLink(link); + aPPar = $(a).parent().parent(); + if (!aPPar.hasClass('selected')) { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + aPPar.addClass('selected'); + aPPar.attr('id','selected'); + } + const anchor = $(aname); + gotoAnchor(anchor,aname); + }; + } else { + a.href = url; + a.onclick = () => storeLink(link); + } + } else if (childrenData != null) { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + return node; + } + + const showRoot = function() { + const headerHeight = $("#top").height(); + const footerHeight = $("#nav-path").height(); + const windowHeight = $(window).height() - headerHeight - footerHeight; + (function() { // retry until we can scroll to the selected item + try { + const navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); + } + + const expandNode = function(o, node, imm, setFocus) { + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + expandNode(o, node, imm, setFocus); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast",adjustSyncIconPosition); + $(node.plus_img.childNodes[0]).addClass('opened').removeClass('closed'); + node.expanded = true; + if (setFocus) { + $(node.expandToggle).focus(); + } + } + } + } + + const glowEffect = function(n,duration) { + n.addClass('glow').delay(duration).queue(function(next) { + $(this).removeClass('glow');next(); + }); + } + + const highlightAnchor = function() { + const aname = hashUrl(); + const anchor = $(aname); + gotoAnchor(anchor,aname); + } + + const selectAndHighlight = function(hash,n) { + let a; + if (hash) { + const link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + let topOffset=5; + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + showRoot(); + } + + const showNode = function(o, node, index, hash) { + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + showNode(o,node,index,hash); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + $(node.plus_img.childNodes[0]).removeClass('closed').addClass('opened'); + node.expanded = true; + const n = node.children[o.breadcrumbs[index]]; + if (index+10) { // try root page without hash as fallback + gotoUrl(o,root,'',relpath); + } else { + o.breadcrumbs = $.extend(true, [], nti); + if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index + navTo(o,NAVTREE[0][1],"",relpath); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + if (o.breadcrumbs) { + o.breadcrumbs.unshift(0); // add 0 for root node + showNode(o, o.node, 0, hash); + } + } + } + + const gotoUrl = function(o,root,hash,relpath) { + const url=root+hash; + let i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function() { + navTreeSubIndices[i] = window['NAVTREEINDEX'+i]; + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } + } + + const navTo = function(o,root,hash,relpath) { + const link = cachedLink(); + if (link) { + const parts = link.split('#'); + root = parts[0]; + hash = parts.length>1 ? '#'+parts[1].replace(/[^\w-]/g,'') : ''; + } + if (hash.match(/^#l\d+$/)) { + const anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + gotoUrl(o,root,hash,relpath); + } + + const showSyncOff = function(n,relpath) { + n.html(''); + } + + const showSyncOn = function(n,relpath) { + n.html(''); + } + + const o = { + toroot : toroot, + node : { + childrenData : NAVTREE, + children : [], + childrenUL : document.createElement("ul"), + getChildrenUL : function() { return this.childrenUL }, + li : document.getElementById("nav-tree-contents"), + depth : 0, + relpath : relpath, + expanded : false, + isLast : true, + plus_img : document.createElement("span"), + }, + }; + o.node.li.appendChild(o.node.childrenUL); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = ARROW_RIGHT; + + const navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + + navSync.click(() => { + const navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } + }); + + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + + $(window).bind('hashchange', () => { + if (!animationInProgress) { + if (window.location.hash && window.location.hash.length>1) { + let a; + if ($(location).attr('hash')) { + const clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ try to keep right panel width + const shrinkLeft = Math.min(deficit, leftPanelWidth-minPanelWidth); + leftPanelWidth -= shrinkLeft; + const remainingDeficit = deficit - shrinkLeft; + const shrinkRight = Math.min(remainingDeficit, rightPanelWidth-minPanelWidth); + rightPanelWidth -= shrinkRight; + } else { // dragging right handle -> try to keep left panel width + const shrinkRight = Math.min(deficit, rightPanelWidth-minPanelWidth); + rightPanelWidth -= shrinkRight; + const remainingDeficit = deficit - shrinkRight; + const shrinkLeft = Math.min(remainingDeficit, leftPanelWidth-minPanelWidth); + leftPanelWidth -= shrinkLeft; + } + } else { + rightPanelWidth = pagenav.length ? Math.max(minPanelWidth,rightPanelWidth) : 0; + leftPanelWidth = Math.max(minPanelWidth,leftPanelWidth); + } + return { leftPanelWidth, rightPanelWidth } + } + + function updateWidths(sidenavWidth,pagenavWidth,dragLeft) + { + const widths = constrainPanelWidths(sidenavWidth,pagenavWidth,dragLeft); + const widthStr = parseFloat(widths.leftPanelWidth)+"px"; + content.css({marginLeft:widthStr}); + if (fullSidebar) { + footer.css({marginLeft:widthStr}); + if (mainnav) { + mainnav.css({marginLeft:widthStr}); + } + } + sidenav.css({width:widthStr}); + if (pagenav.length) { + container.css({gridTemplateColumns:'auto '+parseFloat(widths.rightPanelWidth)+'px'}); + if (!dragLeft) { + pagenav.css({width:parseFloat(widths.rightPanelWidth-1)+'px'}); + } + } + return widths; + } + + function resizeWidth(dragLeft) { + const sidenavWidth = $(sidenav).outerWidth()-barWidth; + let pagenavWidth = pagenav.length ? $(pagenav).outerWidth() : 0; + const widths = updateWidths(sidenavWidth,pagenavWidth,dragLeft); + Cookie.writeSetting(RESIZE_COOKIE_NAME,widths.leftPanelWidth-barWidth); + if (pagenav.length) { + Cookie.writeSetting(PAGENAV_COOKIE_NAME,widths.rightPanelWidth); + } + } + + function restoreWidth(sidenavWidth,pagenavWidth) { + updateWidths(sidenavWidth,pagenavWidth,false); + showHideNavBar(); + } + + function resizeHeight() { + const headerHeight = header.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight; + const footerHeight = footer.outerHeight(); + let navtreeHeight,sideNavHeight; + if (!fullSidebar) { + contentHeight = windowHeight - headerHeight - footerHeight - 1; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (fullSidebar) { + contentHeight = windowHeight - footerHeight - 1; + navtreeHeight = windowHeight - headerHeight - 1; + sideNavHeight = windowHeight - 1; + if (mainnav) { + contentHeight -= mainnav.outerHeight(); + } + } + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + content.css({height:contentHeight + "px"}); + resizeWidth(false); + showHideNavBar(); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + header = $("#top"); + content = $("#doc-content"); + footer = $("#nav-path"); + sidenav = $("#side-nav"); + if (document.getElementById('main-nav')) { + mainnav = $("#main-nav"); + } + navtree = $("#nav-tree"); + pagenav = $("#page-nav"); + container = $("#container"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(true); } }); + $(sidenav).resizable({ minWidth: 0 }); + if (pagenav.length) { + pagehandle = $("#page-nav-resize-handle"); + pagehandle.on('mousedown touchstart',function(e) { + $('body').addClass('resizing'); + pagehandle.addClass('dragging'); + $(document).on('mousemove touchmove',function(e) { + const clientX = e.clientX || e.originalEvent.touches[0].clientX; + let pagenavWidth = container[0].offsetWidth-clientX+barWidth/2; + const sidenavWidth = sidenav.width(); + const widths = constrainPanelWidths(sidenavWidth,pagenavWidth,false); + container.css({gridTemplateColumns:'auto '+parseFloat(widths.rightPanelWidth)+'px'}); + pagenav.css({width:parseFloat(widths.rightPanelWidth-1)+'px'}); + content.css({marginLeft:parseFloat(widths.leftPanelWidth)+'px'}); + Cookie.writeSetting(PAGENAV_COOKIE_NAME,pagenavWidth); + }); + $(document).on('mouseup touchend', function(e) { + $('body').removeClass('resizing'); + pagehandle.removeClass('dragging'); + $(document).off('mousemove mouseup touchmove touchend'); + }); + }); + } else { + container.css({gridTemplateColumns:'auto'}); + } + const width = parseInt(Cookie.readSetting(RESIZE_COOKIE_NAME,250)); + const pagenavWidth = parseInt(Cookie.readSetting(PAGENAV_COOKIE_NAME,250)); + if (width) { restoreWidth(width+barWidth,pagenavWidth); } else { resizeWidth(); } + const url = location.href; + const i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + const _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(window).ready(function() { + let lastWidth = -1; + let lastHeight = -1; + $(window).resize(function() { + const newWidth = $(this).width(), newHeight = $(this).height(); + if (newWidth!=lastWidth || newHeight!=lastHeight) { + resizeHeight(); + navtree_trampoline.updateContentTop(); + lastWidth = newWidth; + lastHeight = newHeight; + } + }); + resizeHeight(); + lastWidth = $(window).width(); + lastHeight = $(window).height(); + content.scroll(function() { + navtree_trampoline.updateContentTop(); + }); + }); + } + + + function initPageToc() { + const topMapping = []; + const toc_contents = $('#page-nav-contents'); + const content=$('